@ginkoai/cli 2.4.5 → 2.5.1
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/LICENSE +661 -21
- package/dist/analysis/deep-analyzer.js +7 -7
- package/dist/analysis/deep-analyzer.js.map +1 -1
- package/dist/analysis/project-analyzer.js +2 -2
- package/dist/analysis/project-analyzer.js.map +1 -1
- package/dist/commands/agent/status.d.ts.map +1 -1
- package/dist/commands/agent/status.js +2 -0
- package/dist/commands/agent/status.js.map +1 -1
- package/dist/commands/assign.d.ts.map +1 -1
- package/dist/commands/assign.js +2 -0
- package/dist/commands/assign.js.map +1 -1
- package/dist/commands/charter.js +3 -3
- package/dist/commands/charter.js.map +1 -1
- package/dist/commands/context/index.d.ts +28 -0
- package/dist/commands/context/index.d.ts.map +1 -0
- package/dist/commands/context/index.js +165 -0
- package/dist/commands/context/index.js.map +1 -0
- package/dist/commands/context/score.d.ts +34 -0
- package/dist/commands/context/score.d.ts.map +1 -0
- package/dist/commands/context/score.js +163 -0
- package/dist/commands/context/score.js.map +1 -0
- package/dist/commands/diff/diff-command.d.ts.map +1 -1
- package/dist/commands/diff/diff-command.js +2 -0
- package/dist/commands/diff/diff-command.js.map +1 -1
- package/dist/commands/epic/status.d.ts.map +1 -1
- package/dist/commands/epic/status.js +5 -0
- package/dist/commands/epic/status.js.map +1 -1
- package/dist/commands/graph/api-client.d.ts +130 -0
- package/dist/commands/graph/api-client.d.ts.map +1 -1
- package/dist/commands/graph/api-client.js +153 -0
- package/dist/commands/graph/api-client.js.map +1 -1
- package/dist/commands/graph/cleanup.d.ts.map +1 -1
- package/dist/commands/graph/cleanup.js +2 -0
- package/dist/commands/graph/cleanup.js.map +1 -1
- package/dist/commands/graph/explore.d.ts.map +1 -1
- package/dist/commands/graph/explore.js +2 -0
- package/dist/commands/graph/explore.js.map +1 -1
- package/dist/commands/graph/init.d.ts.map +1 -1
- package/dist/commands/graph/init.js +2 -4
- package/dist/commands/graph/init.js.map +1 -1
- package/dist/commands/graph/query.d.ts.map +1 -1
- package/dist/commands/graph/query.js +2 -0
- package/dist/commands/graph/query.js.map +1 -1
- package/dist/commands/graph/status.d.ts.map +1 -1
- package/dist/commands/graph/status.js +2 -0
- package/dist/commands/graph/status.js.map +1 -1
- package/dist/commands/handoff.d.ts.map +1 -1
- package/dist/commands/handoff.js +34 -0
- package/dist/commands/handoff.js.map +1 -1
- package/dist/commands/health.d.ts +15 -0
- package/dist/commands/health.d.ts.map +1 -0
- package/dist/commands/health.js +212 -0
- package/dist/commands/health.js.map +1 -0
- package/dist/commands/init-copilot.js +1 -1
- package/dist/commands/init-copilot.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +167 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/join/index.js +2 -2
- package/dist/commands/knowledge/create.d.ts.map +1 -1
- package/dist/commands/knowledge/create.js +2 -0
- package/dist/commands/knowledge/create.js.map +1 -1
- package/dist/commands/knowledge/graph.d.ts.map +1 -1
- package/dist/commands/knowledge/graph.js +2 -0
- package/dist/commands/knowledge/graph.js.map +1 -1
- package/dist/commands/knowledge/search.d.ts.map +1 -1
- package/dist/commands/knowledge/search.js +2 -0
- package/dist/commands/knowledge/search.js.map +1 -1
- package/dist/commands/log.d.ts.map +1 -1
- package/dist/commands/log.js +4 -3
- package/dist/commands/log.js.map +1 -1
- package/dist/commands/migrate/status-migration.d.ts.map +1 -1
- package/dist/commands/migrate/status-migration.js +2 -4
- package/dist/commands/migrate/status-migration.js.map +1 -1
- package/dist/commands/orchestrate.d.ts.map +1 -1
- package/dist/commands/orchestrate.js +2 -0
- package/dist/commands/orchestrate.js.map +1 -1
- package/dist/commands/pull/pull-command.d.ts.map +1 -1
- package/dist/commands/pull/pull-command.js +3 -1
- package/dist/commands/pull/pull-command.js.map +1 -1
- package/dist/commands/push/push-command.d.ts.map +1 -1
- package/dist/commands/push/push-command.js +5 -0
- package/dist/commands/push/push-command.js.map +1 -1
- package/dist/commands/ship.js +1 -1
- package/dist/commands/ship.js.map +1 -1
- package/dist/commands/sprint/create.d.ts +9 -5
- package/dist/commands/sprint/create.d.ts.map +1 -1
- package/dist/commands/sprint/create.js +226 -29
- package/dist/commands/sprint/create.js.map +1 -1
- package/dist/commands/sprint/index.d.ts.map +1 -1
- package/dist/commands/sprint/index.js +9 -5
- package/dist/commands/sprint/index.js.map +1 -1
- package/dist/commands/sprint/status.d.ts +3 -0
- package/dist/commands/sprint/status.d.ts.map +1 -1
- package/dist/commands/sprint/status.js +88 -2
- package/dist/commands/sprint/status.js.map +1 -1
- package/dist/commands/start/index.js +3 -3
- package/dist/commands/start/index.js.map +1 -1
- package/dist/commands/start/start-reflection.d.ts +5 -0
- package/dist/commands/start/start-reflection.d.ts.map +1 -1
- package/dist/commands/start/start-reflection.js +60 -11
- package/dist/commands/start/start-reflection.js.map +1 -1
- package/dist/commands/sync/node-syncer.d.ts +3 -1
- package/dist/commands/sync/node-syncer.d.ts.map +1 -1
- package/dist/commands/sync/node-syncer.js +13 -2
- package/dist/commands/sync/node-syncer.js.map +1 -1
- package/dist/commands/sync/sprint-syncer.d.ts.map +1 -1
- package/dist/commands/sync/sprint-syncer.js +2 -4
- package/dist/commands/sync/sprint-syncer.js.map +1 -1
- package/dist/commands/sync/sync-command.js +1 -1
- package/dist/commands/sync/sync-command.js.map +1 -1
- package/dist/commands/sync/team-sync.js +1 -1
- package/dist/commands/sync/types.d.ts +1 -1
- package/dist/commands/sync/types.d.ts.map +1 -1
- package/dist/commands/task/status.d.ts +1 -1
- package/dist/commands/task/status.d.ts.map +1 -1
- package/dist/commands/task/status.js +161 -6
- package/dist/commands/task/status.js.map +1 -1
- package/dist/commands/team/members.d.ts.map +1 -1
- package/dist/commands/team/members.js +4 -0
- package/dist/commands/team/members.js.map +1 -1
- package/dist/commands/team/projects.d.ts.map +1 -1
- package/dist/commands/team/projects.js +3 -0
- package/dist/commands/team/projects.js.map +1 -1
- package/dist/commands/team/status.d.ts.map +1 -1
- package/dist/commands/team/status.js +2 -0
- package/dist/commands/team/status.js.map +1 -1
- package/dist/index.js +12 -8
- package/dist/index.js.map +1 -1
- package/dist/lib/adoption-score.d.ts +1 -1
- package/dist/lib/adoption-score.d.ts.map +1 -1
- package/dist/lib/adoption-score.js +1 -0
- package/dist/lib/adoption-score.js.map +1 -1
- package/dist/lib/context-loader-events.d.ts +4 -4
- package/dist/lib/context-loader-events.d.ts.map +1 -1
- package/dist/lib/context-loader-events.js +69 -18
- package/dist/lib/context-loader-events.js.map +1 -1
- package/dist/lib/context-quality.d.ts +224 -0
- package/dist/lib/context-quality.d.ts.map +1 -0
- package/dist/lib/context-quality.js +363 -0
- package/dist/lib/context-quality.js.map +1 -0
- package/dist/lib/event-logger.d.ts.map +1 -1
- package/dist/lib/event-logger.js +2 -3
- package/dist/lib/event-logger.js.map +1 -1
- package/dist/lib/health-checker.d.ts +35 -0
- package/dist/lib/health-checker.d.ts.map +1 -0
- package/dist/lib/health-checker.js +473 -0
- package/dist/lib/health-checker.js.map +1 -0
- package/dist/lib/notification-hooks.js +1 -1
- package/dist/lib/notification-hooks.js.map +1 -1
- package/dist/lib/output-formatter.d.ts +48 -0
- package/dist/lib/output-formatter.d.ts.map +1 -1
- package/dist/lib/output-formatter.js +168 -4
- package/dist/lib/output-formatter.js.map +1 -1
- package/dist/lib/resumption-brief.d.ts +91 -0
- package/dist/lib/resumption-brief.d.ts.map +1 -0
- package/dist/lib/resumption-brief.js +344 -0
- package/dist/lib/resumption-brief.js.map +1 -0
- package/dist/lib/staleness-detector.js +1 -1
- package/dist/lib/state-cache.d.ts +43 -0
- package/dist/lib/state-cache.d.ts.map +1 -1
- package/dist/lib/state-cache.js +72 -0
- package/dist/lib/state-cache.js.map +1 -1
- package/dist/lib/sync/scanner.d.ts.map +1 -1
- package/dist/lib/sync/scanner.js +3 -5
- package/dist/lib/sync/scanner.js.map +1 -1
- package/dist/lib/targeted-coaching.js +2 -2
- package/dist/lib/task-parser.d.ts +34 -4
- package/dist/lib/task-parser.d.ts.map +1 -1
- package/dist/lib/task-parser.js +110 -4
- package/dist/lib/task-parser.js.map +1 -1
- package/dist/services/context-search.d.ts.map +1 -1
- package/dist/services/context-search.js +4 -2
- package/dist/services/context-search.js.map +1 -1
- package/dist/templates/ai-instructions-template.d.ts +11 -0
- package/dist/templates/ai-instructions-template.d.ts.map +1 -1
- package/dist/templates/ai-instructions-template.js +197 -0
- package/dist/templates/ai-instructions-template.js.map +1 -1
- package/dist/templates/commands/handoff.md +40 -0
- package/dist/templates/commands/quick.md +27 -0
- package/dist/templates/commands/ship.md +43 -0
- package/dist/templates/commands/start.md +15 -0
- package/dist/templates/commands/vibecheck.md +36 -0
- package/dist/templates/skills/ginko/SKILL.md +1 -8
- package/dist/templates/sprint-template.md +273 -0
- package/dist/utils/cloud-guard.d.ts +48 -0
- package/dist/utils/cloud-guard.d.ts.map +1 -0
- package/dist/utils/cloud-guard.js +107 -0
- package/dist/utils/cloud-guard.js.map +1 -0
- package/dist/utils/config-loader.d.ts +2 -2
- package/dist/utils/config-loader.js +2 -2
- package/dist/utils/helpers.d.ts.map +1 -1
- package/dist/utils/helpers.js +11 -10
- package/dist/utils/helpers.js.map +1 -1
- package/dist/utils/perf-logger.d.ts +100 -0
- package/dist/utils/perf-logger.d.ts.map +1 -0
- package/dist/utils/perf-logger.js +132 -0
- package/dist/utils/perf-logger.js.map +1 -0
- package/dist/utils/reference-parser.d.ts.map +1 -1
- package/dist/utils/reference-parser.js +3 -6
- package/dist/utils/reference-parser.js.map +1 -1
- package/package.json +4 -5
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileType: command
|
|
3
|
+
* @status: current
|
|
4
|
+
* @updated: 2026-02-05
|
|
5
|
+
* @tags: [cli, context, management, quality, epic-018]
|
|
6
|
+
* @related: [score.ts, ../../lib/context-quality.ts]
|
|
7
|
+
* @priority: medium
|
|
8
|
+
* @complexity: medium
|
|
9
|
+
* @dependencies: [commander, chalk, fs-extra]
|
|
10
|
+
*/
|
|
11
|
+
import { Command } from 'commander';
|
|
12
|
+
import chalk from 'chalk';
|
|
13
|
+
import fs from 'fs-extra';
|
|
14
|
+
import path from 'path';
|
|
15
|
+
import { getGinkoDir } from '../../utils/helpers.js';
|
|
16
|
+
import { scoreCommand } from './score.js';
|
|
17
|
+
/**
|
|
18
|
+
* Context command with subcommands for context management and quality scoring
|
|
19
|
+
*
|
|
20
|
+
* Usage:
|
|
21
|
+
* ginko context Show current context (default)
|
|
22
|
+
* ginko context --add <files> Add files to context
|
|
23
|
+
* ginko context --remove <files> Remove files from context
|
|
24
|
+
* ginko context score <scores> Score context quality (EPIC-018)
|
|
25
|
+
*/
|
|
26
|
+
export function createContextCommand() {
|
|
27
|
+
const context = new Command('context')
|
|
28
|
+
.description('Manage session context and quality scoring')
|
|
29
|
+
.addHelpText('after', `
|
|
30
|
+
${chalk.gray('Context Management:')}
|
|
31
|
+
${chalk.green('ginko context')} ${chalk.dim('Show current context')}
|
|
32
|
+
${chalk.green('ginko context --add')} <files> ${chalk.dim('Add files to context')}
|
|
33
|
+
${chalk.green('ginko context --remove')} <files> ${chalk.dim('Remove files from context')}
|
|
34
|
+
${chalk.green('ginko context --show')} ${chalk.dim('Show current context')}
|
|
35
|
+
|
|
36
|
+
${chalk.gray('Quality Scoring (EPIC-018):')}
|
|
37
|
+
${chalk.green('ginko context score')} <scores> ${chalk.dim('Score context quality')}
|
|
38
|
+
${chalk.green('ginko context score')} 8,7,9,6 ${chalk.dim('Score: D=8, I=7, L=9, H=6')}
|
|
39
|
+
|
|
40
|
+
${chalk.gray('Examples:')}
|
|
41
|
+
${chalk.green('ginko context --add src/index.ts')}
|
|
42
|
+
${chalk.green('ginko context score "direction=8, intent=7, location=9, history=6"')}
|
|
43
|
+
${chalk.green('ginko context score 8,7,9,6 --notes "Missing ADR refs"')}
|
|
44
|
+
`)
|
|
45
|
+
.option('-a, --add <files...>', 'Add files to context')
|
|
46
|
+
.option('-r, --remove <files...>', 'Remove files from context')
|
|
47
|
+
.option('-s, --show', 'Show current context')
|
|
48
|
+
.action(async (options) => {
|
|
49
|
+
await contextManagementCommand(options);
|
|
50
|
+
});
|
|
51
|
+
// Add score subcommand
|
|
52
|
+
context
|
|
53
|
+
.command('score [scores]')
|
|
54
|
+
.description('Score context quality after loading (EPIC-018 Sprint 1)')
|
|
55
|
+
.option('-d, --direction <score>', 'Direction score (0-10): Do I know what to do next?')
|
|
56
|
+
.option('-i, --intent <score>', 'Intent score (0-10): Do I understand WHY?')
|
|
57
|
+
.option('-l, --location <score>', 'Location score (0-10): Do I know WHERE to start?')
|
|
58
|
+
.option('-H, --history <score>', 'History score (0-10): Do I know WHAT was decided?')
|
|
59
|
+
.option('-n, --notes <notes>', 'Semicolon-separated notes about what\'s missing')
|
|
60
|
+
.option('--detailed', 'Show full breakdown with suggestions')
|
|
61
|
+
.option('--json', 'Output as JSON')
|
|
62
|
+
.option('--no-log', 'Score without logging to event stream')
|
|
63
|
+
.addHelpText('after', `
|
|
64
|
+
${chalk.gray('Dimensions (0-10 each):')}
|
|
65
|
+
${chalk.dim('Direction - Do I know what to do next?')}
|
|
66
|
+
${chalk.dim('Intent - Do I understand WHY?')}
|
|
67
|
+
${chalk.dim('Location - Do I know WHERE to start?')}
|
|
68
|
+
${chalk.dim('History - Do I know WHAT was decided?')}
|
|
69
|
+
|
|
70
|
+
${chalk.gray('Input Formats:')}
|
|
71
|
+
${chalk.dim('Named: "direction=8, intent=7, location=9, history=6"')}
|
|
72
|
+
${chalk.dim('Positional: "8,7,9,6" (order: direction, intent, location, history)')}
|
|
73
|
+
${chalk.dim('Options: --direction 8 --intent 7 --location 9 --history 6')}
|
|
74
|
+
|
|
75
|
+
${chalk.gray('Examples:')}
|
|
76
|
+
${chalk.green('ginko context score 8,7,9,6')}
|
|
77
|
+
${chalk.green('ginko context score "direction=8, intent=7, location=9, history=6"')}
|
|
78
|
+
${chalk.green('ginko context score --direction 8 --intent 7 --location 9 --history 6')}
|
|
79
|
+
${chalk.green('ginko context score 8,7,9,6 --notes "Missing ADR refs; Unclear entry point"')}
|
|
80
|
+
${chalk.green('ginko context score 8,7,9,6 --detailed')}
|
|
81
|
+
`)
|
|
82
|
+
.action(async (scores, options) => {
|
|
83
|
+
await scoreCommand(scores, options);
|
|
84
|
+
});
|
|
85
|
+
return context;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Original context management functionality
|
|
89
|
+
*/
|
|
90
|
+
async function contextManagementCommand(options) {
|
|
91
|
+
try {
|
|
92
|
+
const ginkoDir = await getGinkoDir();
|
|
93
|
+
const contextFile = path.join(ginkoDir, 'context', 'current.json');
|
|
94
|
+
// Load existing context
|
|
95
|
+
let contextData = {
|
|
96
|
+
files: [],
|
|
97
|
+
patterns: [],
|
|
98
|
+
boundaries: ['module']
|
|
99
|
+
};
|
|
100
|
+
if (await fs.pathExists(contextFile)) {
|
|
101
|
+
contextData = await fs.readJSON(contextFile);
|
|
102
|
+
}
|
|
103
|
+
// Handle operations
|
|
104
|
+
if (options.add) {
|
|
105
|
+
for (const pattern of options.add) {
|
|
106
|
+
if (!contextData.files.includes(pattern)) {
|
|
107
|
+
contextData.files.push(pattern);
|
|
108
|
+
console.log(chalk.green(`Added to context: ${pattern}`));
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
await fs.ensureDir(path.dirname(contextFile));
|
|
112
|
+
await fs.writeJSON(contextFile, contextData, { spaces: 2 });
|
|
113
|
+
}
|
|
114
|
+
if (options.remove) {
|
|
115
|
+
for (const pattern of options.remove) {
|
|
116
|
+
const index = contextData.files.indexOf(pattern);
|
|
117
|
+
if (index > -1) {
|
|
118
|
+
contextData.files.splice(index, 1);
|
|
119
|
+
console.log(chalk.yellow(`Removed from context: ${pattern}`));
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
await fs.writeJSON(contextFile, contextData, { spaces: 2 });
|
|
123
|
+
}
|
|
124
|
+
// Show context (default or explicit)
|
|
125
|
+
if (options.show || (!options.add && !options.remove)) {
|
|
126
|
+
console.log(chalk.green('\nCurrent Context\n'));
|
|
127
|
+
if (contextData.files.length === 0) {
|
|
128
|
+
console.log(chalk.dim('No files in context'));
|
|
129
|
+
console.log(chalk.dim('Add files with: ginko context --add <files>'));
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
console.log(chalk.cyan('Files:'));
|
|
133
|
+
contextData.files.forEach(file => {
|
|
134
|
+
console.log(` - ${file}`);
|
|
135
|
+
});
|
|
136
|
+
// Calculate estimated size
|
|
137
|
+
let totalSize = 0;
|
|
138
|
+
for (const file of contextData.files) {
|
|
139
|
+
if (await fs.pathExists(file)) {
|
|
140
|
+
const stats = await fs.stat(file);
|
|
141
|
+
totalSize += stats.size;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
console.log(chalk.dim(`\nEstimated size: ${Math.round(totalSize / 1024)}KB`));
|
|
145
|
+
console.log(chalk.dim('Note: Context stays local, never sent to servers'));
|
|
146
|
+
}
|
|
147
|
+
// Show rules
|
|
148
|
+
const rulesFile = path.join(ginkoDir, 'context', 'rules.md');
|
|
149
|
+
if (await fs.pathExists(rulesFile)) {
|
|
150
|
+
console.log(chalk.cyan('\nRules:'));
|
|
151
|
+
console.log(chalk.dim(' Defined in .ginko/context/rules.md'));
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
console.error(chalk.red('Error:'), error instanceof Error ? error.message : String(error));
|
|
157
|
+
process.exit(1);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
// Export for backward compatibility with direct imports
|
|
161
|
+
export async function contextCommand(options) {
|
|
162
|
+
return contextManagementCommand(options);
|
|
163
|
+
}
|
|
164
|
+
export default createContextCommand;
|
|
165
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/context/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileType: command
|
|
3
|
+
* @status: current
|
|
4
|
+
* @updated: 2026-02-05
|
|
5
|
+
* @tags: [cli, context, quality, scoring, epic-018, sprint-1]
|
|
6
|
+
* @related: [../../lib/context-quality.ts, ../log.ts]
|
|
7
|
+
* @priority: high
|
|
8
|
+
* @complexity: low
|
|
9
|
+
* @dependencies: [commander, chalk]
|
|
10
|
+
*/
|
|
11
|
+
interface ScoreOptions {
|
|
12
|
+
direction?: string;
|
|
13
|
+
intent?: string;
|
|
14
|
+
location?: string;
|
|
15
|
+
history?: string;
|
|
16
|
+
notes?: string;
|
|
17
|
+
detailed?: boolean;
|
|
18
|
+
json?: boolean;
|
|
19
|
+
log?: boolean;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Score context quality command
|
|
23
|
+
*
|
|
24
|
+
* Allows AI or humans to score how well-prepared they feel after context loads.
|
|
25
|
+
* Creates a feedback loop for synthesis improvement.
|
|
26
|
+
*
|
|
27
|
+
* Usage:
|
|
28
|
+
* ginko context score "direction=8, intent=7, location=9, history=6"
|
|
29
|
+
* ginko context score --direction 8 --intent 7 --location 9 --history 6
|
|
30
|
+
* ginko context score 8,7,9,6
|
|
31
|
+
*/
|
|
32
|
+
export declare function scoreCommand(scoreInput: string | undefined, options: ScoreOptions): Promise<void>;
|
|
33
|
+
export default scoreCommand;
|
|
34
|
+
//# sourceMappingURL=score.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"score.d.ts","sourceRoot":"","sources":["../../../src/commands/context/score.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAgBH,UAAU,YAAY;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAoHvG;AAuCD,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileType: command
|
|
3
|
+
* @status: current
|
|
4
|
+
* @updated: 2026-02-05
|
|
5
|
+
* @tags: [cli, context, quality, scoring, epic-018, sprint-1]
|
|
6
|
+
* @related: [../../lib/context-quality.ts, ../log.ts]
|
|
7
|
+
* @priority: high
|
|
8
|
+
* @complexity: low
|
|
9
|
+
* @dependencies: [commander, chalk]
|
|
10
|
+
*/
|
|
11
|
+
import chalk from 'chalk';
|
|
12
|
+
import { parseScoreString, createQualityFeedback, logContextQualityScore, formatScoreCompact, formatScoreDetailed, getQualityZone, getQualityColor, DIMENSION_INFO } from '../../lib/context-quality.js';
|
|
13
|
+
import { isAuthenticated } from '../../utils/auth-storage.js';
|
|
14
|
+
/**
|
|
15
|
+
* Score context quality command
|
|
16
|
+
*
|
|
17
|
+
* Allows AI or humans to score how well-prepared they feel after context loads.
|
|
18
|
+
* Creates a feedback loop for synthesis improvement.
|
|
19
|
+
*
|
|
20
|
+
* Usage:
|
|
21
|
+
* ginko context score "direction=8, intent=7, location=9, history=6"
|
|
22
|
+
* ginko context score --direction 8 --intent 7 --location 9 --history 6
|
|
23
|
+
* ginko context score 8,7,9,6
|
|
24
|
+
*/
|
|
25
|
+
export async function scoreCommand(scoreInput, options) {
|
|
26
|
+
try {
|
|
27
|
+
// Check authentication for optional graph logging (--no-log sets log: false)
|
|
28
|
+
const authenticated = await isAuthenticated();
|
|
29
|
+
const shouldLog = options.log !== false && authenticated;
|
|
30
|
+
let score;
|
|
31
|
+
// Parse score from input or options
|
|
32
|
+
if (scoreInput) {
|
|
33
|
+
// Parse from string input
|
|
34
|
+
score = parseScoreString(scoreInput, 'ai');
|
|
35
|
+
}
|
|
36
|
+
else if (options.direction && options.intent && options.location && options.history) {
|
|
37
|
+
// Parse from individual options
|
|
38
|
+
const direction = parseInt(options.direction, 10);
|
|
39
|
+
const intent = parseInt(options.intent, 10);
|
|
40
|
+
const location = parseInt(options.location, 10);
|
|
41
|
+
const history = parseInt(options.history, 10);
|
|
42
|
+
// Validate values
|
|
43
|
+
const values = [direction, intent, location, history];
|
|
44
|
+
for (const v of values) {
|
|
45
|
+
if (isNaN(v) || v < 0 || v > 10) {
|
|
46
|
+
console.error(chalk.red('Error: All dimension scores must be numbers between 0 and 10'));
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
const notes = options.notes ? options.notes.split(';').map(n => n.trim()) : undefined;
|
|
51
|
+
const feedback = createQualityFeedback({ direction, intent, location, history }, 'ai', notes);
|
|
52
|
+
score = feedback.score;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
// Show help if no input provided
|
|
56
|
+
showScoreHelp();
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
// Add notes if provided separately
|
|
60
|
+
if (options.notes && !score.notes) {
|
|
61
|
+
score.notes = options.notes.split(';').map(n => n.trim());
|
|
62
|
+
}
|
|
63
|
+
// Log the score (unless --no-log)
|
|
64
|
+
if (shouldLog) {
|
|
65
|
+
await logContextQualityScore(score);
|
|
66
|
+
}
|
|
67
|
+
// Output based on format
|
|
68
|
+
if (options.json) {
|
|
69
|
+
console.log(JSON.stringify(score, null, 2));
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
if (options.detailed) {
|
|
73
|
+
const feedback = createQualityFeedback({
|
|
74
|
+
direction: score.direction,
|
|
75
|
+
intent: score.intent,
|
|
76
|
+
location: score.location,
|
|
77
|
+
history: score.history
|
|
78
|
+
}, score.scoredBy, score.notes);
|
|
79
|
+
console.log('\n' + formatScoreDetailed(feedback));
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
// Compact output
|
|
83
|
+
const zone = getQualityZone(score.overall);
|
|
84
|
+
const colorName = getQualityColor(zone);
|
|
85
|
+
const colorFn = chalk[colorName];
|
|
86
|
+
console.log('');
|
|
87
|
+
console.log(colorFn(formatScoreCompact(score)));
|
|
88
|
+
// Show notes if present
|
|
89
|
+
if (score.notes && score.notes.length > 0) {
|
|
90
|
+
console.log(chalk.dim('\nNotes:'));
|
|
91
|
+
for (const note of score.notes) {
|
|
92
|
+
console.log(chalk.dim(` - ${note}`));
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// Show alert for low scores
|
|
96
|
+
if (score.overall < 7) {
|
|
97
|
+
console.log('');
|
|
98
|
+
console.log(chalk.yellow('Low score detected. Consider:'));
|
|
99
|
+
if (score.direction < 7) {
|
|
100
|
+
console.log(chalk.dim(` - Direction: ${DIMENSION_INFO.direction.improvementHint}`));
|
|
101
|
+
}
|
|
102
|
+
if (score.intent < 7) {
|
|
103
|
+
console.log(chalk.dim(` - Intent: ${DIMENSION_INFO.intent.improvementHint}`));
|
|
104
|
+
}
|
|
105
|
+
if (score.location < 7) {
|
|
106
|
+
console.log(chalk.dim(` - Location: ${DIMENSION_INFO.location.improvementHint}`));
|
|
107
|
+
}
|
|
108
|
+
if (score.history < 7) {
|
|
109
|
+
console.log(chalk.dim(` - History: ${DIMENSION_INFO.history.improvementHint}`));
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// Confirmation message
|
|
114
|
+
if (shouldLog) {
|
|
115
|
+
console.log('');
|
|
116
|
+
console.log(chalk.green('Context quality score logged.'));
|
|
117
|
+
}
|
|
118
|
+
console.log('');
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
if (error instanceof Error) {
|
|
122
|
+
console.error(chalk.red('Error:'), error.message);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
console.error(chalk.red('Error:'), String(error));
|
|
126
|
+
}
|
|
127
|
+
process.exit(1);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Show help for the score command
|
|
132
|
+
*/
|
|
133
|
+
function showScoreHelp() {
|
|
134
|
+
console.log(chalk.cyan('\nContext Quality Scoring (EPIC-018)\n'));
|
|
135
|
+
console.log(chalk.dim('Score how well-prepared you feel after context loads.\n'));
|
|
136
|
+
console.log(chalk.white('Dimensions (0-10 each):'));
|
|
137
|
+
console.log(chalk.dim(` Direction - ${DIMENSION_INFO.direction.question}`));
|
|
138
|
+
console.log(chalk.dim(` Intent - ${DIMENSION_INFO.intent.question}`));
|
|
139
|
+
console.log(chalk.dim(` Location - ${DIMENSION_INFO.location.question}`));
|
|
140
|
+
console.log(chalk.dim(` History - ${DIMENSION_INFO.history.question}`));
|
|
141
|
+
console.log('');
|
|
142
|
+
console.log(chalk.white('Usage:'));
|
|
143
|
+
console.log(chalk.dim(' ginko context score "direction=8, intent=7, location=9, history=6"'));
|
|
144
|
+
console.log(chalk.dim(' ginko context score 8,7,9,6'));
|
|
145
|
+
console.log(chalk.dim(' ginko context score --direction 8 --intent 7 --location 9 --history 6'));
|
|
146
|
+
console.log(chalk.dim(' ginko context score --direction 8 --intent 7 --location 9 --history 6 --notes "Missing ADR refs"'));
|
|
147
|
+
console.log('');
|
|
148
|
+
console.log(chalk.white('Options:'));
|
|
149
|
+
console.log(chalk.dim(' --detailed Show full breakdown with suggestions'));
|
|
150
|
+
console.log(chalk.dim(' --json Output as JSON'));
|
|
151
|
+
console.log(chalk.dim(' --no-log Score without logging to event stream'));
|
|
152
|
+
console.log(chalk.dim(' --notes Semicolon-separated notes about what\'s missing'));
|
|
153
|
+
console.log('');
|
|
154
|
+
console.log(chalk.white('Scoring Guide:'));
|
|
155
|
+
console.log(chalk.dim(' 9-10 Excellent - Crystal clear, ready to execute'));
|
|
156
|
+
console.log(chalk.dim(' 7-8 Good - Minor gaps acceptable'));
|
|
157
|
+
console.log(chalk.dim(' 5-6 Adequate - May need clarification'));
|
|
158
|
+
console.log(chalk.dim(' 3-4 Poor - Missing information'));
|
|
159
|
+
console.log(chalk.dim(' 0-2 Critical - Cannot proceed confidently'));
|
|
160
|
+
console.log('');
|
|
161
|
+
}
|
|
162
|
+
export default scoreCommand;
|
|
163
|
+
//# sourceMappingURL=score.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"score.js","sourceRoot":"","sources":["../../../src/commands/context/score.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff-command.d.ts","sourceRoot":"","sources":["../../../src/commands/diff/diff-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"diff-command.d.ts","sourceRoot":"","sources":["../../../src/commands/diff/diff-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAqBH,MAAM,WAAW,WAAW;IAC1B,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA6ED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA2GrE"}
|
|
@@ -24,6 +24,7 @@ import path from 'path';
|
|
|
24
24
|
import { GraphApiClient } from '../graph/api-client.js';
|
|
25
25
|
import { loadGraphConfig, isGraphInitialized } from '../graph/config.js';
|
|
26
26
|
import { getProjectRoot } from '../../utils/helpers.js';
|
|
27
|
+
import { requireCloud } from '../../utils/cloud-guard.js';
|
|
27
28
|
/**
|
|
28
29
|
* Find local file for an entity ID
|
|
29
30
|
*/
|
|
@@ -90,6 +91,7 @@ function computeDiff(localLines, graphLines) {
|
|
|
90
91
|
* Main diff command implementation
|
|
91
92
|
*/
|
|
92
93
|
export async function diffCommand(options) {
|
|
94
|
+
await requireCloud('diff');
|
|
93
95
|
// Parse entity path
|
|
94
96
|
const parts = options.entityPath.split('/');
|
|
95
97
|
if (parts.length < 2) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff-command.js","sourceRoot":"","sources":["../../../src/commands/diff/diff-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;;;GASG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"diff-command.js","sourceRoot":"","sources":["../../../src/commands/diff/diff-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/commands/epic/status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/commands/epic/status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+EpC,UAAU,iBAAiB;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,iBAAe,gBAAgB,CAC7B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAqBf;AAED;;GAEG;AACH,iBAAe,mBAAmB,CAChC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAqBf;AAED;;GAEG;AACH,iBAAe,gBAAgB,CAC7B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAqBf;AAED;;GAEG;AACH,iBAAe,eAAe,CAC5B,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAaf;AAMD;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,OAAO,CAqDlD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAkB1D;AAED,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,GAChB,CAAC"}
|
|
@@ -12,6 +12,7 @@ import { Command } from 'commander';
|
|
|
12
12
|
import chalk from 'chalk';
|
|
13
13
|
import { GraphApiClient } from '../graph/api-client.js';
|
|
14
14
|
import { getGraphId } from '../graph/config.js';
|
|
15
|
+
import { requireCloud } from '../../utils/cloud-guard.js';
|
|
15
16
|
// =============================================================================
|
|
16
17
|
// Helpers
|
|
17
18
|
// =============================================================================
|
|
@@ -84,6 +85,7 @@ function handleError(action, epicId, error) {
|
|
|
84
85
|
* Start epic (proposed -> active)
|
|
85
86
|
*/
|
|
86
87
|
async function startEpicCommand(epicId, options = {}) {
|
|
88
|
+
await requireCloud('epic start');
|
|
87
89
|
const graphId = await requireGraphId();
|
|
88
90
|
const client = new GraphApiClient();
|
|
89
91
|
const normalizedId = normalizeEpicId(epicId);
|
|
@@ -107,6 +109,7 @@ async function startEpicCommand(epicId, options = {}) {
|
|
|
107
109
|
* Complete epic (active -> complete)
|
|
108
110
|
*/
|
|
109
111
|
async function completeEpicCommand(epicId, options = {}) {
|
|
112
|
+
await requireCloud('epic complete');
|
|
110
113
|
const graphId = await requireGraphId();
|
|
111
114
|
const client = new GraphApiClient();
|
|
112
115
|
const normalizedId = normalizeEpicId(epicId);
|
|
@@ -130,6 +133,7 @@ async function completeEpicCommand(epicId, options = {}) {
|
|
|
130
133
|
* Pause epic (active -> paused)
|
|
131
134
|
*/
|
|
132
135
|
async function pauseEpicCommand(epicId, options = {}) {
|
|
136
|
+
await requireCloud('epic pause');
|
|
133
137
|
const graphId = await requireGraphId();
|
|
134
138
|
const client = new GraphApiClient();
|
|
135
139
|
const normalizedId = normalizeEpicId(epicId);
|
|
@@ -153,6 +157,7 @@ async function pauseEpicCommand(epicId, options = {}) {
|
|
|
153
157
|
* Show epic status
|
|
154
158
|
*/
|
|
155
159
|
async function showEpicCommand(epicId, options = {}) {
|
|
160
|
+
await requireCloud('epic show');
|
|
156
161
|
const graphId = await requireGraphId();
|
|
157
162
|
const client = new GraphApiClient();
|
|
158
163
|
const normalizedId = normalizeEpicId(epicId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/epic/status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAc,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/epic/status.ts"],"names":[],"mappings":"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"}
|