@lovelybunch/cli 1.0.9 → 1.0.11

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lovelybunch/cli",
3
- "version": "1.0.9",
3
+ "version": "1.0.11",
4
4
  "description": "Command-line interface for GAIT",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -32,9 +32,9 @@
32
32
  "test": "vitest run"
33
33
  },
34
34
  "dependencies": {
35
- "@lovelybunch/api": "^1.0.9",
36
- "@lovelybunch/core": "^1.0.7",
37
- "@lovelybunch/types": "^1.0.7",
35
+ "@lovelybunch/api": "^1.0.11",
36
+ "@lovelybunch/core": "^1.0.11",
37
+ "@lovelybunch/types": "^1.0.11",
38
38
  "chalk": "^5.3.0",
39
39
  "commander": "^11.1.0",
40
40
  "fuse.js": "^7.0.0",
@@ -47,5 +47,8 @@
47
47
  "@types/node": "^20.11.0",
48
48
  "typescript": "^5.3.3",
49
49
  "vitest": "^1.2.1"
50
- }
50
+ },
51
+ "keywords": ["cli", "command-line", "gait", "coconut"],
52
+ "author": "",
53
+ "license": "ISC"
51
54
  }
package/dist/cli.d.ts DELETED
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js DELETED
@@ -1,61 +0,0 @@
1
- #!/usr/bin/env node
2
- import { Command } from 'commander';
3
- import chalk from 'chalk';
4
- import { fileStorage } from '@lovelybunch/core';
5
- import { readFileSync } from 'fs';
6
- import { fileURLToPath } from 'url';
7
- import { dirname, join } from 'path';
8
- import { initCommand } from './commands/init.js';
9
- import { proposeCommand } from './commands/propose.js';
10
- import { listCommand } from './commands/list.js';
11
- import { showCommand } from './commands/show.js';
12
- import { serveCommand } from './commands/serve.js';
13
- import { agentCommand } from './commands/agent.js';
14
- import { implementCommand } from './commands/implement.js';
15
- const __filename = fileURLToPath(import.meta.url);
16
- const __dirname = dirname(__filename);
17
- // Read version from package.json
18
- let version = '1.0.0'; // fallback
19
- try {
20
- const packagePath = join(__dirname, '..', 'package.json');
21
- const packageJson = JSON.parse(readFileSync(packagePath, 'utf-8'));
22
- version = packageJson.version;
23
- }
24
- catch (error) {
25
- console.warn('Could not read package.json version, using fallback');
26
- }
27
- const program = new Command();
28
- program
29
- .name('gait')
30
- .description('GAIT - Agent-Native Source Control Management System')
31
- .version(version);
32
- // Add commands
33
- program.addCommand(initCommand);
34
- program.addCommand(proposeCommand);
35
- program.addCommand(listCommand);
36
- program.addCommand(showCommand);
37
- program.addCommand(serveCommand);
38
- program.addCommand(agentCommand);
39
- program.addCommand(implementCommand);
40
- // Global error handling
41
- program.hook('preAction', async (_thisCommand, actionCommand) => {
42
- const commandName = actionCommand.name();
43
- // Skip initialization check for 'init' command
44
- if (commandName === 'init') {
45
- return;
46
- }
47
- // Check if GAIT is initialized for other commands
48
- const isInitialized = await fileStorage.isInitialized();
49
- if (!isInitialized) {
50
- console.error(chalk.red('Error: GAIT is not initialized in this directory.'));
51
- console.error(chalk.yellow('Run "gait init" to initialize GAIT.'));
52
- process.exit(1);
53
- }
54
- });
55
- // Parse command line arguments
56
- program.parse(process.argv);
57
- // Show help if no command provided
58
- if (!process.argv.slice(2).length) {
59
- program.outputHelp();
60
- }
61
- //# sourceMappingURL=cli.js.map
package/dist/cli.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import { Command } from 'commander';
2
- declare const agent: Command;
3
- export { agent as agentCommand };
4
- //# sourceMappingURL=agent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,QAAA,MAAM,KAAK,SAAuB,CAAC;AAmPnC,OAAO,EAAE,KAAK,IAAI,YAAY,EAAE,CAAC"}
@@ -1,221 +0,0 @@
1
- import { Command } from 'commander';
2
- import chalk from 'chalk';
3
- import { fileStorage } from '@lovelybunch/core';
4
- const agent = new Command('agent');
5
- agent
6
- .description('Manage AI agents')
7
- .alias('agents');
8
- // List agents
9
- const listAgents = new Command('list');
10
- listAgents
11
- .description('List all agents')
12
- .alias('ls')
13
- .action(async () => {
14
- try {
15
- const agents = await fileStorage.loadAllAgents();
16
- if (agents.length === 0) {
17
- console.log(chalk.yellow('No agents found.'));
18
- console.log(chalk.gray('Use "gait agent create" to create your first agent.'));
19
- return;
20
- }
21
- console.log(chalk.bold(`Found ${agents.length} agent${agents.length === 1 ? '' : 's'}:\n`));
22
- agents.forEach(agent => {
23
- console.log(chalk.cyan(`${agent.id}`));
24
- console.log(` Name: ${agent.name}`);
25
- console.log(` Description: ${agent.description}`);
26
- if (agent.tools && agent.tools.length > 0) {
27
- console.log(` Tools: ${agent.tools.join(', ')}`);
28
- }
29
- else {
30
- console.log(` Tools: ${chalk.gray('All tools (inherited)')}`);
31
- }
32
- if (agent.metadata?.createdAt) {
33
- console.log(` Created: ${agent.metadata.createdAt.toLocaleDateString()}`);
34
- }
35
- console.log();
36
- });
37
- }
38
- catch (error) {
39
- console.error(chalk.red('Error listing agents:'), error.message);
40
- process.exit(1);
41
- }
42
- });
43
- // Show agent details
44
- const showAgent = new Command('show');
45
- showAgent
46
- .description('Show agent details')
47
- .argument('<id>', 'Agent ID')
48
- .action(async (id) => {
49
- try {
50
- const agentData = await fileStorage.loadAgent(id);
51
- if (!agentData) {
52
- console.error(chalk.red(`Agent '${id}' not found.`));
53
- process.exit(1);
54
- }
55
- console.log(chalk.bold.cyan(agentData.name));
56
- console.log(chalk.gray(`ID: ${agentData.id}`));
57
- console.log(chalk.gray(`Description: ${agentData.description}`));
58
- if (agentData.tools && agentData.tools.length > 0) {
59
- console.log(chalk.gray(`Tools: ${agentData.tools.join(', ')}`));
60
- }
61
- else {
62
- console.log(chalk.gray('Tools: All tools (inherited)'));
63
- }
64
- if (agentData.metadata?.createdAt) {
65
- console.log(chalk.gray(`Created: ${agentData.metadata.createdAt.toLocaleDateString()}`));
66
- }
67
- if (agentData.metadata?.updatedAt) {
68
- console.log(chalk.gray(`Updated: ${agentData.metadata.updatedAt.toLocaleDateString()}`));
69
- }
70
- if (agentData.content) {
71
- console.log(chalk.bold('\nInstructions:'));
72
- console.log(agentData.content);
73
- }
74
- }
75
- catch (error) {
76
- console.error(chalk.red('Error showing agent:'), error.message);
77
- process.exit(1);
78
- }
79
- });
80
- // Create agent
81
- const createAgent = new Command('create');
82
- createAgent
83
- .description('Create a new agent')
84
- .argument('<name>', 'Agent name')
85
- .argument('<description>', 'Agent description')
86
- .option('-t, --tools <tools>', 'Comma-separated list of tools')
87
- .option('-c, --content <content>', 'Agent instructions/system prompt')
88
- .option('-f, --file <file>', 'Read instructions from file')
89
- .action(async (name, description, options) => {
90
- try {
91
- let content = options.content;
92
- if (options.file) {
93
- const fs = await import('fs/promises');
94
- content = await fs.readFile(options.file, 'utf-8');
95
- }
96
- const tools = options.tools ? options.tools.split(',').map((t) => t.trim()) : undefined;
97
- const agent = {
98
- id: name.toLowerCase().replace(/[^a-z0-9]+/g, '-'),
99
- name,
100
- description,
101
- tools,
102
- content,
103
- metadata: {
104
- createdAt: new Date(),
105
- updatedAt: new Date(),
106
- author: { type: 'human', id: 'current-user', name: 'Current User' }
107
- }
108
- };
109
- // Check if agent already exists
110
- const existing = await fileStorage.loadAgent(agent.id);
111
- if (existing) {
112
- console.error(chalk.red(`Agent '${agent.id}' already exists.`));
113
- process.exit(1);
114
- }
115
- await fileStorage.saveAgent(agent);
116
- console.log(chalk.green(`✓ Agent '${agent.id}' created successfully.`));
117
- console.log(chalk.gray(` Name: ${agent.name}`));
118
- console.log(chalk.gray(` Description: ${agent.description}`));
119
- if (agent.tools) {
120
- console.log(chalk.gray(` Tools: ${agent.tools.join(', ')}`));
121
- }
122
- }
123
- catch (error) {
124
- console.error(chalk.red('Error creating agent:'), error.message);
125
- process.exit(1);
126
- }
127
- });
128
- // Update agent
129
- const updateAgent = new Command('update');
130
- updateAgent
131
- .description('Update an existing agent')
132
- .argument('<id>', 'Agent ID')
133
- .option('-n, --name <name>', 'New agent name')
134
- .option('-d, --description <description>', 'New description')
135
- .option('-t, --tools <tools>', 'Comma-separated list of tools')
136
- .option('-c, --content <content>', 'New agent instructions/system prompt')
137
- .option('-f, --file <file>', 'Read instructions from file')
138
- .action(async (id, options) => {
139
- try {
140
- const agent = await fileStorage.loadAgent(id);
141
- if (!agent) {
142
- console.error(chalk.red(`Agent '${id}' not found.`));
143
- process.exit(1);
144
- }
145
- let content = options.content || agent.content;
146
- if (options.file) {
147
- const fs = await import('fs/promises');
148
- content = await fs.readFile(options.file, 'utf-8');
149
- }
150
- const tools = options.tools ? options.tools.split(',').map((t) => t.trim()) : agent.tools;
151
- const updatedAgent = {
152
- ...agent,
153
- name: options.name || agent.name,
154
- description: options.description || agent.description,
155
- tools,
156
- content,
157
- metadata: {
158
- createdAt: agent.metadata?.createdAt || new Date(),
159
- author: agent.metadata?.author || { type: 'human', id: 'current-user', name: 'Current User' },
160
- ...agent.metadata,
161
- updatedAt: new Date()
162
- }
163
- };
164
- await fileStorage.saveAgent(updatedAgent);
165
- console.log(chalk.green(`✓ Agent '${id}' updated successfully.`));
166
- }
167
- catch (error) {
168
- console.error(chalk.red('Error updating agent:'), error.message);
169
- process.exit(1);
170
- }
171
- });
172
- // Delete agent
173
- const deleteAgent = new Command('delete');
174
- deleteAgent
175
- .description('Delete an agent')
176
- .argument('<id>', 'Agent ID')
177
- .option('-f, --force', 'Skip confirmation prompt')
178
- .action(async (id, options) => {
179
- try {
180
- const agent = await fileStorage.loadAgent(id);
181
- if (!agent) {
182
- console.error(chalk.red(`Agent '${id}' not found.`));
183
- process.exit(1);
184
- }
185
- if (!options.force) {
186
- const { default: inquirer } = await import('inquirer');
187
- const { confirm } = await inquirer.prompt([
188
- {
189
- type: 'confirm',
190
- name: 'confirm',
191
- message: `Are you sure you want to delete agent '${id}'?`,
192
- default: false
193
- }
194
- ]);
195
- if (!confirm) {
196
- console.log(chalk.yellow('Operation cancelled.'));
197
- return;
198
- }
199
- }
200
- const deleted = await fileStorage.deleteAgent(id);
201
- if (deleted) {
202
- console.log(chalk.green(`✓ Agent '${id}' deleted successfully.`));
203
- }
204
- else {
205
- console.error(chalk.red(`Failed to delete agent '${id}'.`));
206
- process.exit(1);
207
- }
208
- }
209
- catch (error) {
210
- console.error(chalk.red('Error deleting agent:'), error.message);
211
- process.exit(1);
212
- }
213
- });
214
- // Add subcommands
215
- agent.addCommand(listAgents);
216
- agent.addCommand(showAgent);
217
- agent.addCommand(createAgent);
218
- agent.addCommand(updateAgent);
219
- agent.addCommand(deleteAgent);
220
- export { agent as agentCommand };
221
- //# sourceMappingURL=agent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const implementCommand: Command;
3
- //# sourceMappingURL=implement.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"implement.d.ts","sourceRoot":"","sources":["../../src/commands/implement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,gBAAgB,SA2FzB,CAAC"}
@@ -1,90 +0,0 @@
1
- import { Command } from 'commander';
2
- import chalk from 'chalk';
3
- import { spawn } from 'child_process';
4
- import { fileStorage } from '@lovelybunch/core';
5
- export const implementCommand = new Command('implement')
6
- .description('Start implementing a proposal using an AI assistant in terminal mode')
7
- .argument('<proposal-id>', 'The proposal ID to implement (e.g., cp-1756262782987)')
8
- .option('--model <model>', 'AI model to use for implementation', 'claude')
9
- .action(async (proposalId, options) => {
10
- try {
11
- // Validate proposal exists
12
- const proposal = await fileStorage.loadProposal(proposalId);
13
- if (!proposal) {
14
- console.error(chalk.red(`❌ Proposal '${proposalId}' not found.`));
15
- process.exit(1);
16
- }
17
- console.log(chalk.blue(`🚀 Starting implementation of proposal: ${proposalId}`));
18
- console.log(chalk.gray(`📝 ${proposal.intent}`));
19
- console.log(chalk.gray(`🤖 Using model: ${options.model}`));
20
- console.log(chalk.gray(`💡 Tip: Use 'exit' to quit the implementation session\n`));
21
- // Determine which command to run based on model
22
- let command;
23
- let args;
24
- switch (options.model.toLowerCase()) {
25
- case 'claude':
26
- command = 'claude';
27
- args = ['code'];
28
- break;
29
- case 'gemini':
30
- // Assuming gemini CLI exists
31
- command = 'gemini';
32
- args = ['code'];
33
- break;
34
- case 'codex':
35
- // Assuming codex CLI exists
36
- command = 'codex';
37
- args = ['code'];
38
- break;
39
- default:
40
- console.error(chalk.red(`❌ Unsupported model: ${options.model}`));
41
- console.error(chalk.yellow('Supported models: claude, gemini, codex'));
42
- process.exit(1);
43
- }
44
- // Set environment variables for the AI assistant context
45
- const env = {
46
- ...process.env,
47
- GAIT_PROPOSAL_ID: proposalId,
48
- GAIT_PROPOSAL_INTENT: proposal.intent,
49
- GAIT_PROJECT_ROOT: process.cwd(),
50
- };
51
- // Start the AI assistant terminal session
52
- const child = spawn(command, args, {
53
- stdio: 'inherit',
54
- env,
55
- cwd: process.cwd(),
56
- });
57
- // Handle child process events
58
- child.on('error', (error) => {
59
- if (error.code === 'ENOENT') {
60
- console.error(chalk.red(`❌ Command '${command}' not found.`));
61
- console.error(chalk.yellow(`Please make sure ${options.model} CLI is installed and available in your PATH.`));
62
- }
63
- else {
64
- console.error(chalk.red(`❌ Error starting ${options.model}:`), error.message);
65
- }
66
- process.exit(1);
67
- });
68
- child.on('exit', (code) => {
69
- if (code === 0) {
70
- console.log(chalk.green(`✅ Implementation session completed successfully.`));
71
- }
72
- else {
73
- console.log(chalk.yellow(`⚠️ Implementation session ended with code ${code}.`));
74
- }
75
- });
76
- // Handle Ctrl+C gracefully
77
- process.on('SIGINT', () => {
78
- console.log(chalk.yellow('\n🛑 Terminating implementation session...'));
79
- child.kill('SIGINT');
80
- });
81
- process.on('SIGTERM', () => {
82
- child.kill('SIGTERM');
83
- });
84
- }
85
- catch (error) {
86
- console.error(chalk.red('❌ Error starting implementation:'), error.message);
87
- process.exit(1);
88
- }
89
- });
90
- //# sourceMappingURL=implement.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"implement.js","sourceRoot":"","sources":["../../src/commands/implement.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const initCommand: Command;
3
- //# sourceMappingURL=init.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,eAAO,MAAM,WAAW,SAoGpB,CAAC"}
@@ -1,100 +0,0 @@
1
- import { Command } from 'commander';
2
- import chalk from 'chalk';
3
- import ora from 'ora';
4
- import inquirer from 'inquirer';
5
- import { fileStorage } from '@lovelybunch/core';
6
- import path from 'path';
7
- export const initCommand = new Command('init')
8
- .description('Initialize GAIT in the current repository')
9
- .option('--name <name>', 'Repository name')
10
- .option('--description <description>', 'Repository description')
11
- .option('--force', 'Force initialization even if already initialized')
12
- .action(async (options) => {
13
- const spinner = ora('Initializing GAIT...').start();
14
- try {
15
- // Check if already initialized
16
- const isInitialized = await fileStorage.isInitialized();
17
- if (isInitialized && !options.force) {
18
- spinner.fail('GAIT is already initialized in this directory');
19
- console.log(chalk.yellow('Use --force to reinitialize'));
20
- process.exit(1);
21
- }
22
- // Gather configuration details
23
- let answers = {};
24
- // If all required options are provided, skip prompts
25
- if (options.name && options.description) {
26
- answers = {
27
- name: options.name,
28
- description: options.description,
29
- requireApproval: true,
30
- minApprovers: 1,
31
- };
32
- }
33
- else {
34
- spinner.stop();
35
- answers = await inquirer.prompt([
36
- {
37
- type: 'input',
38
- name: 'name',
39
- message: 'Repository name:',
40
- default: options.name || path.basename(process.cwd()),
41
- },
42
- {
43
- type: 'input',
44
- name: 'description',
45
- message: 'Repository description:',
46
- default: options.description || 'GAIT-managed repository',
47
- },
48
- {
49
- type: 'confirm',
50
- name: 'requireApproval',
51
- message: 'Require approval for changes?',
52
- default: true,
53
- },
54
- {
55
- type: 'number',
56
- name: 'minApprovers',
57
- message: 'Minimum number of approvers:',
58
- default: 1,
59
- when: (answers) => answers.requireApproval,
60
- },
61
- ]);
62
- }
63
- spinner.start('Creating GAIT configuration...');
64
- // Create configuration
65
- const config = {
66
- version: '1.0.0',
67
- repository: {
68
- name: answers.name,
69
- description: answers.description,
70
- },
71
- policies: {
72
- requireApproval: answers.requireApproval,
73
- minApprovers: answers.minApprovers || 1,
74
- allowSelfApproval: false,
75
- autoMerge: false,
76
- },
77
- storage: {
78
- type: 'file',
79
- path: '.gait',
80
- },
81
- };
82
- // Initialize storage
83
- await fileStorage.init();
84
- await fileStorage.saveConfig(config);
85
- spinner.succeed('GAIT initialized successfully!');
86
- console.log('\n' + chalk.green('✓') + ' Created .gait directory');
87
- console.log(chalk.green('✓') + ' Created configuration file');
88
- console.log(chalk.green('✓') + ' Repository ready for GAIT operations');
89
- console.log('\n' + chalk.cyan('Next steps:'));
90
- console.log(' • Create your first change proposal: ' + chalk.yellow('gait propose "Your intent"'));
91
- console.log(' • List proposals: ' + chalk.yellow('gait list'));
92
- console.log(' • View help: ' + chalk.yellow('gait --help'));
93
- }
94
- catch (error) {
95
- spinner.fail('Failed to initialize GAIT');
96
- console.error(chalk.red('Error:'), error);
97
- process.exit(1);
98
- }
99
- });
100
- //# sourceMappingURL=init.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const listCommand: Command;
3
- //# sourceMappingURL=list.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,eAAO,MAAM,WAAW,SAkIpB,CAAC"}
@@ -1,121 +0,0 @@
1
- import { Command } from 'commander';
2
- import chalk from 'chalk';
3
- import ora from 'ora';
4
- import { table } from 'table';
5
- import { cpManager, markdownStorage } from '@lovelybunch/core';
6
- import Fuse from 'fuse.js';
7
- export const listCommand = new Command('list')
8
- .description('List all Change Proposals')
9
- .option('-s, --status <status>', 'Filter by status (draft/proposed/in-review/approved/merged/rejected)')
10
- .option('-a, --author <author>', 'Filter by author name or email')
11
- .option('-q, --query <query>', 'Search proposals by content (fuzzy search)')
12
- .option('-l, --limit <number>', 'Limit number of results', '20')
13
- .action(async (options) => {
14
- const spinner = ora('Loading Change Proposals...').start();
15
- try {
16
- // Load proposals from storage
17
- const proposals = await markdownStorage.loadAllProposals();
18
- cpManager.import(proposals);
19
- // Apply filters
20
- const listOptions = {
21
- limit: parseInt(options.limit, 10),
22
- };
23
- if (options.status) {
24
- listOptions.status = options.status;
25
- }
26
- if (options.author) {
27
- listOptions.author = options.author;
28
- }
29
- let filteredProposals = cpManager.list(listOptions);
30
- // Apply search filter if provided
31
- if (options.query) {
32
- const fuse = new Fuse(filteredProposals, {
33
- keys: [
34
- { name: 'intent', weight: 0.4 },
35
- { name: 'id', weight: 0.3 },
36
- { name: 'author.name', weight: 0.2 },
37
- { name: 'metadata.tags', weight: 0.1 }
38
- ],
39
- threshold: 0.3,
40
- includeScore: true
41
- });
42
- const searchResults = fuse.search(options.query);
43
- filteredProposals = searchResults.map(result => result.item);
44
- }
45
- spinner.stop();
46
- if (filteredProposals.length === 0) {
47
- console.log(chalk.yellow('No Change Proposals found.'));
48
- if (options.status || options.author || options.query) {
49
- console.log(chalk.gray('Try adjusting your filters or search query.'));
50
- }
51
- else {
52
- console.log(chalk.gray('Create one with: gait propose "Your intent"'));
53
- }
54
- return;
55
- }
56
- // Prepare table data
57
- const tableData = [
58
- [
59
- chalk.bold('ID'),
60
- chalk.bold('Intent'),
61
- chalk.bold('Author'),
62
- chalk.bold('Status'),
63
- chalk.bold('Created'),
64
- ],
65
- ];
66
- for (const proposal of filteredProposals) {
67
- const intent = proposal.intent.length > 40
68
- ? proposal.intent.substring(0, 37) + '...'
69
- : proposal.intent;
70
- const statusColor = {
71
- draft: chalk.gray,
72
- proposed: chalk.blue,
73
- 'in-review': chalk.yellow,
74
- approved: chalk.green,
75
- merged: chalk.cyan,
76
- rejected: chalk.red,
77
- }[proposal.status] || chalk.white;
78
- tableData.push([
79
- chalk.cyan(proposal.id),
80
- intent,
81
- `${proposal.author.name}\n${chalk.gray(proposal.author.type)}`,
82
- statusColor(proposal.status.toUpperCase()),
83
- chalk.gray(proposal.metadata.createdAt.toLocaleDateString()),
84
- ]);
85
- }
86
- // Display table
87
- const tableConfig = {
88
- border: {
89
- topBody: chalk.gray('─'),
90
- topJoin: chalk.gray('┬'),
91
- topLeft: chalk.gray('┌'),
92
- topRight: chalk.gray('┐'),
93
- bottomBody: chalk.gray('─'),
94
- bottomJoin: chalk.gray('┴'),
95
- bottomLeft: chalk.gray('└'),
96
- bottomRight: chalk.gray('┘'),
97
- bodyLeft: chalk.gray('│'),
98
- bodyRight: chalk.gray('│'),
99
- bodyJoin: chalk.gray('│'),
100
- joinBody: chalk.gray('─'),
101
- joinLeft: chalk.gray('├'),
102
- joinRight: chalk.gray('┤'),
103
- joinJoin: chalk.gray('┼'),
104
- },
105
- };
106
- console.log('\n' + chalk.bold('Change Proposals'));
107
- console.log(table(tableData, tableConfig));
108
- console.log(chalk.gray(`Showing ${filteredProposals.length} of ${proposals.length} proposals`));
109
- if (filteredProposals.length > 0) {
110
- console.log('\n' + chalk.cyan('Actions:'));
111
- console.log(' • View details: ' + chalk.yellow('gait show <id>'));
112
- console.log(' • Create new: ' + chalk.yellow('gait propose "Your intent"'));
113
- }
114
- }
115
- catch (error) {
116
- spinner.fail('Failed to list Change Proposals');
117
- console.error(chalk.red('Error:'), error);
118
- process.exit(1);
119
- }
120
- });
121
- //# sourceMappingURL=list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const proposeCommand: Command;
3
- //# sourceMappingURL=propose.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"propose.d.ts","sourceRoot":"","sources":["../../src/commands/propose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,eAAO,MAAM,cAAc,SAwEvB,CAAC"}
@@ -1,70 +0,0 @@
1
- import { Command } from 'commander';
2
- import chalk from 'chalk';
3
- import ora from 'ora';
4
- import inquirer from 'inquirer';
5
- import { cpManager, markdownStorage } from '@lovelybunch/core';
6
- import os from 'os';
7
- export const proposeCommand = new Command('propose')
8
- .description('Create a new Change Proposal')
9
- .argument('<intent>', 'The intent of the change')
10
- .option('--author <name>', 'Author name')
11
- .option('--email <email>', 'Author email')
12
- .option('--type <type>', 'Author type (human/agent)', 'human')
13
- .action(async (intent, options) => {
14
- const spinner = ora('Creating Change Proposal...').start();
15
- try {
16
- // Load existing proposals
17
- spinner.text = 'Loading existing proposals...';
18
- const existingProposals = await markdownStorage.loadAllProposals();
19
- cpManager.import(existingProposals);
20
- // Get author information
21
- spinner.stop();
22
- const authorInfo = await inquirer.prompt([
23
- {
24
- type: 'input',
25
- name: 'name',
26
- message: 'Author name:',
27
- default: options.author || os.userInfo().username,
28
- when: !options.author,
29
- },
30
- {
31
- type: 'input',
32
- name: 'email',
33
- message: 'Author email:',
34
- default: options.email,
35
- when: !options.email,
36
- },
37
- ]);
38
- const author = {
39
- type: options.type === 'agent' ? 'agent' : 'human',
40
- id: authorInfo.email || options.email || `${authorInfo.name || options.author}@local`,
41
- name: authorInfo.name || options.author || os.userInfo().username,
42
- email: authorInfo.email || options.email,
43
- };
44
- spinner.start('Creating proposal...');
45
- // Create the proposal
46
- const proposal = cpManager.create({
47
- intent,
48
- author,
49
- });
50
- // Save to storage
51
- await markdownStorage.saveProposal(proposal);
52
- spinner.succeed(`Change Proposal created: ${chalk.cyan(proposal.id)}`);
53
- console.log('\n' + chalk.bold('Change Proposal Details:'));
54
- console.log(' ID: ' + chalk.cyan(proposal.id));
55
- console.log(' Intent: ' + chalk.white(proposal.intent));
56
- console.log(' Author: ' + chalk.white(`${author.name} (${author.type})`));
57
- console.log(' Status: ' + chalk.yellow(proposal.status));
58
- console.log(' Created: ' + chalk.gray(proposal.metadata.createdAt.toLocaleString()));
59
- console.log('\n' + chalk.cyan('Next steps:'));
60
- console.log(' • View proposal details: ' + chalk.yellow(`gait show ${proposal.id}`));
61
- console.log(' • Add plan steps: ' + chalk.yellow(`gait plan ${proposal.id}`));
62
- console.log(' • List all proposals: ' + chalk.yellow('gait list'));
63
- }
64
- catch (error) {
65
- spinner.fail('Failed to create Change Proposal');
66
- console.error(chalk.red('Error:'), error);
67
- process.exit(1);
68
- }
69
- });
70
- //# sourceMappingURL=propose.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"propose.js","sourceRoot":"","sources":["../../src/commands/propose.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const serveCommand: Command;
3
- //# sourceMappingURL=serve.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgEpC,eAAO,MAAM,YAAY,SA6DrB,CAAC"}
@@ -1,108 +0,0 @@
1
- import { Command } from 'commander';
2
- import chalk from 'chalk';
3
- import { createServer } from 'net';
4
- // Utility function to check if a port is available
5
- function isPortAvailable(port, host = 'localhost') {
6
- return new Promise((resolve) => {
7
- const server = createServer();
8
- server.listen(port, host, () => {
9
- server.close(() => {
10
- resolve(true);
11
- });
12
- });
13
- server.on('error', () => {
14
- resolve(false);
15
- });
16
- });
17
- }
18
- // Function to find a random available port
19
- async function findAvailablePort(host = 'localhost', startPort = 3000) {
20
- // Try the preferred port first
21
- if (await isPortAvailable(startPort, host)) {
22
- return startPort;
23
- }
24
- // If preferred port is taken, try random ports in a reasonable range
25
- for (let attempts = 0; attempts < 10; attempts++) {
26
- const randomPort = Math.floor(Math.random() * (65535 - 3001)) + 3001;
27
- if (await isPortAvailable(randomPort, host)) {
28
- return randomPort;
29
- }
30
- }
31
- // Fallback: let the system assign a port
32
- return new Promise((resolve, reject) => {
33
- const server = createServer();
34
- server.listen(0, host, () => {
35
- const port = server.address()?.port;
36
- server.close(() => {
37
- if (port) {
38
- resolve(port);
39
- }
40
- else {
41
- reject(new Error('Could not find an available port'));
42
- }
43
- });
44
- });
45
- });
46
- }
47
- // Function to open browser cross-platform
48
- function openBrowser(url) {
49
- const { spawn } = require('child_process');
50
- // Cross-platform browser opening
51
- const command = process.platform === 'darwin' ? 'open' :
52
- process.platform === 'win32' ? 'start' : 'xdg-open';
53
- spawn(command, [url], { detached: true, stdio: 'ignore' });
54
- console.log(chalk.blue(`🌐 Opening browser at ${url}`));
55
- }
56
- export const serveCommand = new Command('serve')
57
- .description('Start the GAIT web interface')
58
- .option('-p, --port <port>', 'Preferred port to run the server on (will find alternative if unavailable)', '3000')
59
- .option('--host <host>', 'Host to bind the server to', 'localhost')
60
- .option('--no-open', 'Prevent automatic browser opening', false)
61
- .action(async (options) => {
62
- console.log(chalk.blue('🚀 Starting GAIT web interface...'));
63
- try {
64
- // Set environment variables for Next.js
65
- const currentDir = process.cwd();
66
- console.log(chalk.blue(`🗂️ Serving data from: ${currentDir}/.gait`));
67
- process.env.GAIT_DATA_PATH = currentDir;
68
- // Find an available port
69
- const preferredPort = parseInt(options.port, 10);
70
- console.log(chalk.blue(`🔍 Finding available port...`));
71
- const availablePort = await findAvailablePort(options.host, preferredPort);
72
- if (availablePort !== preferredPort) {
73
- console.log(chalk.yellow(`⚠️ Port ${preferredPort} was unavailable, using port ${availablePort} instead`));
74
- }
75
- // Dynamic import to avoid issues with ES modules
76
- const { startServer } = await import('@lovelybunch/api');
77
- // Start the Hono API server with static frontend
78
- const server = await startServer({
79
- port: availablePort,
80
- host: options.host
81
- });
82
- const url = `http://${options.host}:${availablePort}`;
83
- console.log(chalk.green(`📱 Web interface running at ${url}`));
84
- // Open browser automatically unless explicitly disabled
85
- if (options.open !== false) {
86
- setTimeout(() => {
87
- openBrowser(url);
88
- }, 1000);
89
- }
90
- // Handle graceful shutdown
91
- process.on('SIGINT', () => {
92
- console.log(chalk.yellow('\n🛑 Shutting down GAIT web interface...'));
93
- server.close(() => {
94
- process.exit(0);
95
- });
96
- });
97
- process.on('SIGTERM', () => {
98
- server.close(() => {
99
- process.exit(0);
100
- });
101
- });
102
- }
103
- catch (error) {
104
- console.error(chalk.red('❌ Failed to start GAIT web interface:'), error);
105
- process.exit(1);
106
- }
107
- });
108
- //# sourceMappingURL=serve.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;AAEnC,mDAAmD;AACnD,SAAS,eAAe,CAAC,IAAY,EAAE,OAAe,WAAW;IAC/D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAE9B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;YAC7B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;gBAChB,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACtB,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,2CAA2C;AAC3C,KAAK,UAAU,iBAAiB,CAAC,OAAe,WAAW,EAAE,YAAoB,IAAI;IACnF,+BAA+B;IAC/B,IAAI,MAAM,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC;QAC3C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,qEAAqE;IACrE,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QACrE,IAAI,MAAM,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC;YAC5C,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE;YAC1B,MAAM,IAAI,GAAI,MAAM,CAAC,OAAO,EAAU,EAAE,IAAI,CAAC;YAC7C,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;gBAChB,IAAI,IAAI,EAAE,CAAC;oBACT,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC;gBACxD,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,0CAA0C;AAC1C,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAE3C,iCAAiC;IACjC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACzC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;IAEnE,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KAC7C,WAAW,CAAC,8BAA8B,CAAC;KAC3C,MAAM,CAAC,mBAAmB,EAAE,4EAA4E,EAAE,MAAM,CAAC;KACjH,MAAM,CAAC,eAAe,EAAE,4BAA4B,EAAE,WAAW,CAAC;KAClE,MAAM,CAAC,WAAW,EAAE,mCAAmC,EAAE,KAAK,CAAC;KAC/D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;IAE7D,IAAI,CAAC;QACH,wCAAwC;QACxC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,UAAU,QAAQ,CAAC,CAAC,CAAC;QAEvE,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,UAAU,CAAC;QAExC,yBAAyB;QACzB,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACxD,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAE3E,IAAI,aAAa,KAAK,aAAa,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,aAAa,gCAAgC,aAAa,UAAU,CAAC,CAAC,CAAC;QAC9G,CAAC;QAED,iDAAiD;QACjD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAEzD,iDAAiD;QACjD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;YAC/B,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,UAAU,OAAO,CAAC,IAAI,IAAI,aAAa,EAAE,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,+BAA+B,GAAG,EAAE,CAAC,CAAC,CAAC;QAE/D,wDAAwD;QACxD,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC3B,UAAU,CAAC,GAAG,EAAE;gBACd,WAAW,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC;QAED,2BAA2B;QAC3B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC,CAAC;YACtE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;gBAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACzB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;gBAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IAEL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,uCAAuC,CAAC,EAAE,KAAK,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const showCommand: Command;
3
- //# sourceMappingURL=show.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,WAAW,SAiIpB,CAAC"}
@@ -1,146 +0,0 @@
1
- import { Command } from 'commander';
2
- import chalk from 'chalk';
3
- import ora from 'ora';
4
- import { markdownStorage } from '@lovelybunch/core';
5
- export const showCommand = new Command('show')
6
- .description('Show details of a Change Proposal')
7
- .argument('<id>', 'Change Proposal ID')
8
- .option('--json', 'Output as JSON')
9
- .action(async (id, options) => {
10
- const spinner = ora('Loading Change Proposal...').start();
11
- try {
12
- // Load the specific proposal
13
- const proposal = await markdownStorage.loadProposal(id);
14
- spinner.stop();
15
- if (!proposal) {
16
- console.error(chalk.red(`Change Proposal '${id}' not found.`));
17
- console.log(chalk.gray('Use "gait list" to see all proposals.'));
18
- process.exit(1);
19
- }
20
- // Output as JSON if requested
21
- if (options.json) {
22
- console.log(JSON.stringify(proposal, null, 2));
23
- return;
24
- }
25
- // Display formatted output
26
- console.log('\n' + chalk.bold.underline('Change Proposal Details'));
27
- console.log();
28
- // Basic Information
29
- console.log(chalk.cyan('Basic Information:'));
30
- console.log(' ID: ' + chalk.white(proposal.id));
31
- console.log(' Intent: ' + chalk.white(proposal.intent));
32
- console.log(' Status: ' + getStatusColor(proposal.status)(proposal.status.toUpperCase()));
33
- console.log(' Created: ' + chalk.white(new Date(proposal.metadata.createdAt).toLocaleString()));
34
- console.log(' Updated: ' + chalk.white(new Date(proposal.metadata.updatedAt).toLocaleString()));
35
- // Author Information
36
- console.log('\n' + chalk.cyan('Author:'));
37
- console.log(' Name: ' + chalk.white(proposal.author.name));
38
- console.log(' Type: ' + chalk.white(proposal.author.type));
39
- if (proposal.author.email) {
40
- console.log(' Email: ' + chalk.white(proposal.author.email));
41
- }
42
- // Product Spec Reference
43
- if (proposal.productSpecRef) {
44
- console.log('\n' + chalk.cyan('Product Specification:'));
45
- console.log(' Reference: ' + chalk.white(proposal.productSpecRef));
46
- }
47
- // Plan Steps
48
- if (proposal.planSteps.length > 0) {
49
- console.log('\n' + chalk.cyan('Plan Steps:'));
50
- proposal.planSteps.forEach((step, index) => {
51
- const statusIcon = getStepStatusIcon(step.status);
52
- console.log(` ${index + 1}. ${statusIcon} ${step.description}`);
53
- if (step.command) {
54
- console.log(' Command: ' + chalk.gray(step.command));
55
- }
56
- if (step.executedAt) {
57
- console.log(' Executed: ' + chalk.gray(new Date(step.executedAt).toLocaleString()));
58
- }
59
- });
60
- }
61
- // Evidence
62
- if (proposal.evidence.length > 0) {
63
- console.log('\n' + chalk.cyan('Evidence:'));
64
- proposal.evidence.forEach((evidence) => {
65
- console.log(` • [${evidence.type}] ${evidence.description}`);
66
- console.log(' ' + chalk.gray(new Date(evidence.timestamp).toLocaleString()));
67
- });
68
- }
69
- // Feature Flags
70
- if (proposal.featureFlags.length > 0) {
71
- console.log('\n' + chalk.cyan('Feature Flags:'));
72
- proposal.featureFlags.forEach((flag) => {
73
- console.log(` • ${flag.name} (${flag.type})`);
74
- console.log(' Default: ' + chalk.gray(JSON.stringify(flag.defaultValue)));
75
- });
76
- }
77
- // Experiments
78
- if (proposal.experiments.length > 0) {
79
- console.log('\n' + chalk.cyan('Experiments:'));
80
- proposal.experiments.forEach((exp) => {
81
- console.log(` • ${exp.name} - ${exp.status}`);
82
- console.log(' Hypothesis: ' + chalk.gray(exp.hypothesis));
83
- });
84
- }
85
- // Release Plan
86
- console.log('\n' + chalk.cyan('Release Plan:'));
87
- console.log(' Strategy: ' + chalk.white(proposal.releasePlan.strategy));
88
- if (proposal.releasePlan.schedule) {
89
- console.log(' Schedule: ' + chalk.white(new Date(proposal.releasePlan.schedule).toLocaleString()));
90
- }
91
- // Metadata
92
- if (proposal.metadata.tags && proposal.metadata.tags.length > 0) {
93
- console.log('\n' + chalk.cyan('Tags:'));
94
- console.log(' ' + proposal.metadata.tags.map(tag => chalk.magenta(`#${tag}`)).join(' '));
95
- }
96
- if (proposal.metadata.priority) {
97
- console.log('\n' + chalk.cyan('Priority:') + ' ' + getPriorityColor(proposal.metadata.priority)(proposal.metadata.priority.toUpperCase()));
98
- }
99
- // AI Interactions
100
- if (proposal.metadata.aiInteractions.length > 0) {
101
- console.log('\n' + chalk.cyan('AI Interactions:'));
102
- console.log(' Count: ' + chalk.white(proposal.metadata.aiInteractions.length));
103
- const totalTokens = proposal.metadata.aiInteractions.reduce((sum, ai) => sum + ai.tokens.total, 0);
104
- console.log(' Total Tokens:' + chalk.white(totalTokens));
105
- }
106
- // Actions
107
- console.log('\n' + chalk.cyan('Actions:'));
108
- console.log(' • Update status: ' + chalk.yellow(`gait status ${proposal.id} <status>`));
109
- console.log(' • Add plan step: ' + chalk.yellow(`gait plan ${proposal.id}`));
110
- console.log(' • Delete proposal: ' + chalk.yellow(`gait delete ${proposal.id}`));
111
- }
112
- catch (error) {
113
- spinner.fail('Failed to load Change Proposal');
114
- console.error(chalk.red('Error:'), error);
115
- process.exit(1);
116
- }
117
- });
118
- function getStatusColor(status) {
119
- const colors = {
120
- draft: chalk.gray,
121
- proposed: chalk.blue,
122
- approved: chalk.green,
123
- merged: chalk.cyan,
124
- rejected: chalk.red,
125
- };
126
- return colors[status] || chalk.white;
127
- }
128
- function getStepStatusIcon(status) {
129
- const icons = {
130
- pending: chalk.gray('○'),
131
- 'in-progress': chalk.yellow('◐'),
132
- completed: chalk.green('●'),
133
- failed: chalk.red('✗'),
134
- };
135
- return icons[status] || chalk.gray('○');
136
- }
137
- function getPriorityColor(priority) {
138
- const colors = {
139
- low: chalk.gray,
140
- medium: chalk.yellow,
141
- high: chalk.magenta,
142
- critical: chalk.red,
143
- };
144
- return colors[priority] || chalk.white;
145
- }
146
- //# sourceMappingURL=show.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"show.js","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from './cli.js';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
package/dist/index.js DELETED
@@ -1,2 +0,0 @@
1
- export * from './cli.js';
2
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}