ghagga 3.2.0 → 3.3.0
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/commands/index-cmd.d.ts +49 -0
- package/dist/commands/index-cmd.d.ts.map +1 -0
- package/dist/commands/index-cmd.js +367 -0
- package/dist/commands/index-cmd.js.map +1 -0
- package/dist/commands/index-cmd.test.d.ts +17 -0
- package/dist/commands/index-cmd.test.d.ts.map +1 -0
- package/dist/commands/index-cmd.test.js +541 -0
- package/dist/commands/index-cmd.test.js.map +1 -0
- package/dist/commands/indexer-registry.d.ts +93 -0
- package/dist/commands/indexer-registry.d.ts.map +1 -0
- package/dist/commands/indexer-registry.js +342 -0
- package/dist/commands/indexer-registry.js.map +1 -0
- package/dist/commands/indexer-registry.test.d.ts +10 -0
- package/dist/commands/indexer-registry.test.d.ts.map +1 -0
- package/dist/commands/indexer-registry.test.js +538 -0
- package/dist/commands/indexer-registry.test.js.map +1 -0
- package/dist/commands/review-blast-radius.test.d.ts +13 -0
- package/dist/commands/review-blast-radius.test.d.ts.map +1 -0
- package/dist/commands/review-blast-radius.test.js +179 -0
- package/dist/commands/review-blast-radius.test.js.map +1 -0
- package/dist/commands/review.d.ts +112 -1
- package/dist/commands/review.d.ts.map +1 -1
- package/dist/commands/review.js +264 -2
- package/dist/commands/review.js.map +1 -1
- package/dist/commands/review.test.js +290 -0
- package/dist/commands/review.test.js.map +1 -1
- package/dist/commands/triage.d.ts +14 -0
- package/dist/commands/triage.d.ts.map +1 -0
- package/dist/commands/triage.js +153 -0
- package/dist/commands/triage.js.map +1 -0
- package/dist/commands/triage.test.d.ts +8 -0
- package/dist/commands/triage.test.d.ts.map +1 -0
- package/dist/commands/triage.test.js +184 -0
- package/dist/commands/triage.test.js.map +1 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -1
- package/package.json +4 -3
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ghagga triage` command group — thin CLI wiring around
|
|
3
|
+
* `ghagga-triage-engine`'s engine facade (config-driven code-aware issue
|
|
4
|
+
* triage with a local human-approval queue). All logic lives in the
|
|
5
|
+
* package; this file only parses args and calls the right engine function.
|
|
6
|
+
*
|
|
7
|
+
* SAFETY: triage NEVER posts by itself. A comment reaches the forge ONLY
|
|
8
|
+
* via `approve`, which a human runs explicitly (CLI or the `serve` web UI),
|
|
9
|
+
* and only the (edited) client reply is posted — see
|
|
10
|
+
* `ghagga-triage-engine`'s queue/approval.ts for the enforced guarantee.
|
|
11
|
+
*/
|
|
12
|
+
import { Command } from 'commander';
|
|
13
|
+
export declare const triageCommand: Command;
|
|
14
|
+
//# sourceMappingURL=triage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"triage.d.ts","sourceRoot":"","sources":["../../src/commands/triage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0DpC,eAAO,MAAM,aAAa,SAEzB,CAAC"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ghagga triage` command group — thin CLI wiring around
|
|
3
|
+
* `ghagga-triage-engine`'s engine facade (config-driven code-aware issue
|
|
4
|
+
* triage with a local human-approval queue). All logic lives in the
|
|
5
|
+
* package; this file only parses args and calls the right engine function.
|
|
6
|
+
*
|
|
7
|
+
* SAFETY: triage NEVER posts by itself. A comment reaches the forge ONLY
|
|
8
|
+
* via `approve`, which a human runs explicitly (CLI or the `serve` web UI),
|
|
9
|
+
* and only the (edited) client reply is posted — see
|
|
10
|
+
* `ghagga-triage-engine`'s queue/approval.ts for the enforced guarantee.
|
|
11
|
+
*/
|
|
12
|
+
import { Command } from 'commander';
|
|
13
|
+
import { createCLIBridgeGenerateFn } from 'ghagga-core';
|
|
14
|
+
import { approveIssue, editDraft, listQueue, loadConfig, rejectIssue, resolveConfigPath, showDraft, startTriageServer, triageIssue, triageNew, } from 'ghagga-triage-engine';
|
|
15
|
+
import * as tui from '../ui/tui.js';
|
|
16
|
+
/**
|
|
17
|
+
* Fallback model for the (opt-in) live-app reproduction agentic loop, used
|
|
18
|
+
* when the config's `models.reproduce` field is absent. Matches the model
|
|
19
|
+
* used during the reproduce() PoC.
|
|
20
|
+
*/
|
|
21
|
+
const DEFAULT_REPRODUCE_MODEL = 'opencode-go/kimi-k2.7-code';
|
|
22
|
+
/**
|
|
23
|
+
* Resolves the TriageConfig + generateFns from `--config` (or its defaults).
|
|
24
|
+
*
|
|
25
|
+
* `reproduce: true` additionally wires a `reproduceGenerateFn`, which makes
|
|
26
|
+
* `triageIssue` attempt a live-app reproduction (browser + LLM agentic loop)
|
|
27
|
+
* before triaging. Opt-in only — see the `--reproduce` flag on `triage <iid>`.
|
|
28
|
+
*/
|
|
29
|
+
function resolveEngineOptions(configPath, opts = {}) {
|
|
30
|
+
const path = resolveConfigPath({ explicitPath: configPath });
|
|
31
|
+
const config = loadConfig(path);
|
|
32
|
+
return {
|
|
33
|
+
config,
|
|
34
|
+
rerankGenerateFn: createCLIBridgeGenerateFn({
|
|
35
|
+
preferredCLI: 'opencode',
|
|
36
|
+
cliModel: config.models.rerank,
|
|
37
|
+
}),
|
|
38
|
+
analysisGenerateFn: createCLIBridgeGenerateFn({
|
|
39
|
+
preferredCLI: 'opencode',
|
|
40
|
+
cliModel: config.models.analysis,
|
|
41
|
+
}),
|
|
42
|
+
...(opts.reproduce
|
|
43
|
+
? {
|
|
44
|
+
reproduceGenerateFn: createCLIBridgeGenerateFn({
|
|
45
|
+
preferredCLI: 'opencode',
|
|
46
|
+
cliModel: config.models?.reproduce ?? DEFAULT_REPRODUCE_MODEL,
|
|
47
|
+
}),
|
|
48
|
+
}
|
|
49
|
+
: {}),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export const triageCommand = new Command('triage').description('Code-aware issue triage with a local human-approval queue (never auto-posts)');
|
|
53
|
+
triageCommand.option('--config <path>', 'Path to the triage config file (default: ./.ghagga/triage.config.json)');
|
|
54
|
+
// ─── triage <iid> | --new ───────────────────────────────────────
|
|
55
|
+
triageCommand
|
|
56
|
+
.command('triage [iid]')
|
|
57
|
+
.description('Triage one issue by iid, or every new issue not already queued with --new')
|
|
58
|
+
.option('--new', 'Triage every issue returned by the forge that is not already queued')
|
|
59
|
+
.option('--reproduce', 'Attempt a live-app reproduction before triaging this issue (single-issue only: ' +
|
|
60
|
+
'launches a browser + costs LLM calls, so it is ignored with --new)')
|
|
61
|
+
.action(async (iid, opts) => {
|
|
62
|
+
const configPath = triageCommand.opts().config;
|
|
63
|
+
if (opts.new) {
|
|
64
|
+
if (opts.reproduce) {
|
|
65
|
+
tui.log.warn('--reproduce is ignored with --new (too slow/costly across many issues). ' +
|
|
66
|
+
'Reproduce per-issue instead: ghagga triage triage <iid> --reproduce');
|
|
67
|
+
}
|
|
68
|
+
const options = resolveEngineOptions(configPath);
|
|
69
|
+
const drafts = await triageNew(options);
|
|
70
|
+
tui.log.success(`Triaged ${drafts.length} new issue(s).`);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (!iid) {
|
|
74
|
+
tui.log.error('Usage: ghagga triage triage <iid> | ghagga triage triage --new');
|
|
75
|
+
process.exitCode = 1;
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const options = resolveEngineOptions(configPath, { reproduce: opts.reproduce });
|
|
79
|
+
const draft = await triageIssue(options, iid);
|
|
80
|
+
tui.log.success(`#${iid} triaged -> ${draft.status} (queued for review).`);
|
|
81
|
+
});
|
|
82
|
+
// ─── list ───────────────────────────────────────────────────────
|
|
83
|
+
triageCommand
|
|
84
|
+
.command('list')
|
|
85
|
+
.description('List the local approval queue')
|
|
86
|
+
.action(() => {
|
|
87
|
+
const options = resolveEngineOptions(triageCommand.opts().config);
|
|
88
|
+
const queue = listQueue(options);
|
|
89
|
+
const drafts = Object.values(queue);
|
|
90
|
+
if (!drafts.length) {
|
|
91
|
+
tui.log.info('Queue is empty.');
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
for (const draft of drafts) {
|
|
95
|
+
tui.log.message(`#${draft.issueIid} [${draft.status}]`);
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
// ─── show <iid> ─────────────────────────────────────────────────
|
|
99
|
+
triageCommand
|
|
100
|
+
.command('show <iid>')
|
|
101
|
+
.description('Show a queued draft in full (technical analysis + client reply)')
|
|
102
|
+
.action((iid) => {
|
|
103
|
+
const options = resolveEngineOptions(triageCommand.opts().config);
|
|
104
|
+
const draft = showDraft(options, iid);
|
|
105
|
+
tui.log.message(`#${draft.issueIid} status=${draft.status}`);
|
|
106
|
+
tui.log.message('--- technical analysis (internal, NEVER posted) ---');
|
|
107
|
+
tui.log.message(draft.report);
|
|
108
|
+
tui.log.message('--- client reply (what gets posted on approve) ---');
|
|
109
|
+
tui.log.message(draft.clientReply);
|
|
110
|
+
});
|
|
111
|
+
// ─── edit <iid> ─────────────────────────────────────────────────
|
|
112
|
+
triageCommand
|
|
113
|
+
.command('edit <iid>')
|
|
114
|
+
.description('Edit the client reply of a queued draft')
|
|
115
|
+
.requiredOption('--reply <text>', 'New client-reply text')
|
|
116
|
+
.action((iid, opts) => {
|
|
117
|
+
const options = resolveEngineOptions(triageCommand.opts().config);
|
|
118
|
+
editDraft(options, iid, opts.reply);
|
|
119
|
+
tui.log.success(`#${iid} client reply updated.`);
|
|
120
|
+
});
|
|
121
|
+
// ─── approve <iid> ──────────────────────────────────────────────
|
|
122
|
+
triageCommand
|
|
123
|
+
.command('approve <iid>')
|
|
124
|
+
.description('Approve a queued draft and post the client reply to the forge')
|
|
125
|
+
.option('--reply <text>', 'Override the client reply text before posting')
|
|
126
|
+
.action(async (iid, opts) => {
|
|
127
|
+
const options = resolveEngineOptions(triageCommand.opts().config);
|
|
128
|
+
const result = await approveIssue(options, iid, opts.reply);
|
|
129
|
+
if (result.posted) {
|
|
130
|
+
tui.log.success(`#${iid} posted to ${options.config.forge} and marked POSTED.`);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
tui.log.info(`#${iid} was already POSTED — no repost.`);
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
// ─── reject <iid> ───────────────────────────────────────────────
|
|
137
|
+
triageCommand
|
|
138
|
+
.command('reject <iid>')
|
|
139
|
+
.description('Reject a queued draft (never posts)')
|
|
140
|
+
.action((iid) => {
|
|
141
|
+
const options = resolveEngineOptions(triageCommand.opts().config);
|
|
142
|
+
rejectIssue(options, iid);
|
|
143
|
+
tui.log.success(`#${iid} rejected — nothing was posted.`);
|
|
144
|
+
});
|
|
145
|
+
// ─── serve [port] ───────────────────────────────────────────────
|
|
146
|
+
triageCommand
|
|
147
|
+
.command('serve [port]')
|
|
148
|
+
.description('Start the local web review UI (default port 4599)')
|
|
149
|
+
.action((port) => {
|
|
150
|
+
const options = resolveEngineOptions(triageCommand.opts().config);
|
|
151
|
+
startTriageServer(options, port ? Number(port) : undefined);
|
|
152
|
+
});
|
|
153
|
+
//# sourceMappingURL=triage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"triage.js","sourceRoot":"","sources":["../../src/commands/triage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ghagga triage` command tests — arg parsing dispatches to the right
|
|
3
|
+
* engine function. The engine and config-loading modules are mocked; this
|
|
4
|
+
* file verifies WIRING only (the engine itself is tested in
|
|
5
|
+
* packages/triage-engine).
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=triage.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"triage.test.d.ts","sourceRoot":"","sources":["../../src/commands/triage.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ghagga triage` command tests — arg parsing dispatches to the right
|
|
3
|
+
* engine function. The engine and config-loading modules are mocked; this
|
|
4
|
+
* file verifies WIRING only (the engine itself is tested in
|
|
5
|
+
* packages/triage-engine).
|
|
6
|
+
*/
|
|
7
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
8
|
+
// ─── Mocks ─────────────────────────────────────────────────────
|
|
9
|
+
const mockTriageIssue = vi.fn();
|
|
10
|
+
const mockTriageNew = vi.fn();
|
|
11
|
+
const mockListQueue = vi.fn();
|
|
12
|
+
const mockShowDraft = vi.fn();
|
|
13
|
+
const mockEditDraft = vi.fn();
|
|
14
|
+
const mockApproveIssue = vi.fn();
|
|
15
|
+
const mockRejectIssue = vi.fn();
|
|
16
|
+
const mockStartTriageServer = vi.fn();
|
|
17
|
+
const mockLoadConfig = vi.fn();
|
|
18
|
+
const mockResolveConfigPath = vi.fn();
|
|
19
|
+
vi.mock('ghagga-triage-engine', () => ({
|
|
20
|
+
triageIssue: (...args) => mockTriageIssue(...args),
|
|
21
|
+
triageNew: (...args) => mockTriageNew(...args),
|
|
22
|
+
listQueue: (...args) => mockListQueue(...args),
|
|
23
|
+
showDraft: (...args) => mockShowDraft(...args),
|
|
24
|
+
editDraft: (...args) => mockEditDraft(...args),
|
|
25
|
+
approveIssue: (...args) => mockApproveIssue(...args),
|
|
26
|
+
rejectIssue: (...args) => mockRejectIssue(...args),
|
|
27
|
+
startTriageServer: (...args) => mockStartTriageServer(...args),
|
|
28
|
+
loadConfig: (...args) => mockLoadConfig(...args),
|
|
29
|
+
resolveConfigPath: (...args) => mockResolveConfigPath(...args),
|
|
30
|
+
}));
|
|
31
|
+
vi.mock('ghagga-core', () => ({
|
|
32
|
+
createCLIBridgeGenerateFn: vi.fn(() => vi.fn()),
|
|
33
|
+
}));
|
|
34
|
+
vi.mock('../ui/tui.js', () => ({
|
|
35
|
+
log: {
|
|
36
|
+
info: vi.fn(),
|
|
37
|
+
message: vi.fn(),
|
|
38
|
+
success: vi.fn(),
|
|
39
|
+
warn: vi.fn(),
|
|
40
|
+
error: vi.fn(),
|
|
41
|
+
step: vi.fn(),
|
|
42
|
+
},
|
|
43
|
+
}));
|
|
44
|
+
const BASE_CONFIG = {
|
|
45
|
+
forge: 'gitlab',
|
|
46
|
+
repo: 'acme/widgets',
|
|
47
|
+
codeRoot: '/tmp/repo',
|
|
48
|
+
language: 'go',
|
|
49
|
+
graphExpand: false,
|
|
50
|
+
models: { rerank: 'r-model', analysis: 'a-model' },
|
|
51
|
+
};
|
|
52
|
+
describe('ghagga triage command', () => {
|
|
53
|
+
beforeEach(async () => {
|
|
54
|
+
vi.clearAllMocks();
|
|
55
|
+
mockResolveConfigPath.mockReturnValue('/tmp/repo/.ghagga/triage.config.json');
|
|
56
|
+
mockLoadConfig.mockReturnValue(BASE_CONFIG);
|
|
57
|
+
});
|
|
58
|
+
async function loadCommand() {
|
|
59
|
+
const mod = await import('./triage.js');
|
|
60
|
+
return mod.triageCommand;
|
|
61
|
+
}
|
|
62
|
+
it('dispatches "triage <iid>" to triageIssue with the resolved config', async () => {
|
|
63
|
+
mockTriageIssue.mockResolvedValue({ issueIid: '42', status: 'PENDING_APPROVAL' });
|
|
64
|
+
const triageCommand = await loadCommand();
|
|
65
|
+
await triageCommand.parseAsync(['triage', '42'], { from: 'user' });
|
|
66
|
+
expect(mockTriageIssue).toHaveBeenCalledTimes(1);
|
|
67
|
+
const [options, iid] = mockTriageIssue.mock.calls[0];
|
|
68
|
+
expect(iid).toBe('42');
|
|
69
|
+
expect(options.config).toEqual(BASE_CONFIG);
|
|
70
|
+
});
|
|
71
|
+
it('dispatches "triage --new" to triageNew', async () => {
|
|
72
|
+
mockTriageNew.mockResolvedValue([]);
|
|
73
|
+
const triageCommand = await loadCommand();
|
|
74
|
+
await triageCommand.parseAsync(['triage', '--new'], { from: 'user' });
|
|
75
|
+
expect(mockTriageNew).toHaveBeenCalledTimes(1);
|
|
76
|
+
expect(mockTriageIssue).not.toHaveBeenCalled();
|
|
77
|
+
});
|
|
78
|
+
it('"triage <iid>" without --reproduce does NOT add reproduceGenerateFn to EngineOptions', async () => {
|
|
79
|
+
mockTriageIssue.mockResolvedValue({ issueIid: '42', status: 'PENDING_APPROVAL' });
|
|
80
|
+
const triageCommand = await loadCommand();
|
|
81
|
+
await triageCommand.parseAsync(['triage', '42'], { from: 'user' });
|
|
82
|
+
const [options] = mockTriageIssue.mock.calls[0];
|
|
83
|
+
expect(options.reproduceGenerateFn).toBeUndefined();
|
|
84
|
+
});
|
|
85
|
+
it('"triage <iid> --reproduce" adds a reproduceGenerateFn to EngineOptions', async () => {
|
|
86
|
+
mockTriageIssue.mockResolvedValue({ issueIid: '42', status: 'PENDING_APPROVAL' });
|
|
87
|
+
const triageCommand = await loadCommand();
|
|
88
|
+
await triageCommand.parseAsync(['triage', '42', '--reproduce'], { from: 'user' });
|
|
89
|
+
const [options] = mockTriageIssue.mock.calls[0];
|
|
90
|
+
expect(options.reproduceGenerateFn).toBeTypeOf('function');
|
|
91
|
+
});
|
|
92
|
+
it('"triage <iid> --reproduce" uses config.models.reproduce as cliModel when set', async () => {
|
|
93
|
+
mockLoadConfig.mockReturnValue({
|
|
94
|
+
...BASE_CONFIG,
|
|
95
|
+
models: { ...BASE_CONFIG.models, reproduce: 'configured/reproduce-model' },
|
|
96
|
+
});
|
|
97
|
+
mockTriageIssue.mockResolvedValue({ issueIid: '42', status: 'PENDING_APPROVAL' });
|
|
98
|
+
const triageCommand = await loadCommand();
|
|
99
|
+
await triageCommand.parseAsync(['triage', '42', '--reproduce'], { from: 'user' });
|
|
100
|
+
const { createCLIBridgeGenerateFn } = await import('ghagga-core');
|
|
101
|
+
expect(createCLIBridgeGenerateFn).toHaveBeenCalledWith(expect.objectContaining({ cliModel: 'configured/reproduce-model' }));
|
|
102
|
+
});
|
|
103
|
+
it('"triage <iid> --reproduce" falls back to the default model when config.models.reproduce is absent', async () => {
|
|
104
|
+
mockTriageIssue.mockResolvedValue({ issueIid: '42', status: 'PENDING_APPROVAL' });
|
|
105
|
+
const triageCommand = await loadCommand();
|
|
106
|
+
await triageCommand.parseAsync(['triage', '42', '--reproduce'], { from: 'user' });
|
|
107
|
+
const { createCLIBridgeGenerateFn } = await import('ghagga-core');
|
|
108
|
+
expect(createCLIBridgeGenerateFn).toHaveBeenCalledWith(expect.objectContaining({ cliModel: 'opencode-go/kimi-k2.7-code' }));
|
|
109
|
+
});
|
|
110
|
+
it('"triage --new --reproduce" ignores --reproduce (too slow/costly across many issues) and warns', async () => {
|
|
111
|
+
mockTriageNew.mockResolvedValue([]);
|
|
112
|
+
const triageCommand = await loadCommand();
|
|
113
|
+
await triageCommand.parseAsync(['triage', '--new', '--reproduce'], { from: 'user' });
|
|
114
|
+
expect(mockTriageNew).toHaveBeenCalledTimes(1);
|
|
115
|
+
const [options] = mockTriageNew.mock.calls[0];
|
|
116
|
+
expect(options.reproduceGenerateFn).toBeUndefined();
|
|
117
|
+
const tui = await import('../ui/tui.js');
|
|
118
|
+
expect(tui.log.warn).toHaveBeenCalledWith(expect.stringContaining('--reproduce'));
|
|
119
|
+
});
|
|
120
|
+
it('dispatches "list" to listQueue', async () => {
|
|
121
|
+
mockListQueue.mockReturnValue({});
|
|
122
|
+
const triageCommand = await loadCommand();
|
|
123
|
+
await triageCommand.parseAsync(['list'], { from: 'user' });
|
|
124
|
+
expect(mockListQueue).toHaveBeenCalledTimes(1);
|
|
125
|
+
});
|
|
126
|
+
it('dispatches "show <iid>" to showDraft', async () => {
|
|
127
|
+
mockShowDraft.mockReturnValue({
|
|
128
|
+
issueIid: '42',
|
|
129
|
+
status: 'PENDING_APPROVAL',
|
|
130
|
+
report: 'r',
|
|
131
|
+
clientReply: 'c',
|
|
132
|
+
});
|
|
133
|
+
const triageCommand = await loadCommand();
|
|
134
|
+
await triageCommand.parseAsync(['show', '42'], { from: 'user' });
|
|
135
|
+
expect(mockShowDraft).toHaveBeenCalledWith(expect.anything(), '42');
|
|
136
|
+
});
|
|
137
|
+
it('dispatches "edit <iid> --reply <text>" to editDraft with the given text', async () => {
|
|
138
|
+
mockEditDraft.mockReturnValue({ issueIid: '42', clientReply: 'new text' });
|
|
139
|
+
const triageCommand = await loadCommand();
|
|
140
|
+
await triageCommand.parseAsync(['edit', '42', '--reply', 'new text'], { from: 'user' });
|
|
141
|
+
expect(mockEditDraft).toHaveBeenCalledWith(expect.anything(), '42', 'new text');
|
|
142
|
+
});
|
|
143
|
+
it('dispatches "approve <iid>" to approveIssue and NEVER calls reject/triageIssue', async () => {
|
|
144
|
+
mockApproveIssue.mockResolvedValue({ posted: true, draft: { status: 'POSTED' }, queue: {} });
|
|
145
|
+
const triageCommand = await loadCommand();
|
|
146
|
+
await triageCommand.parseAsync(['approve', '42'], { from: 'user' });
|
|
147
|
+
expect(mockApproveIssue).toHaveBeenCalledWith(expect.anything(), '42', undefined);
|
|
148
|
+
expect(mockRejectIssue).not.toHaveBeenCalled();
|
|
149
|
+
expect(mockTriageIssue).not.toHaveBeenCalled();
|
|
150
|
+
});
|
|
151
|
+
it('"approve <iid> --reply <text>" forwards the edited reply', async () => {
|
|
152
|
+
mockApproveIssue.mockResolvedValue({ posted: true, draft: { status: 'POSTED' }, queue: {} });
|
|
153
|
+
const triageCommand = await loadCommand();
|
|
154
|
+
await triageCommand.parseAsync(['approve', '42', '--reply', 'final text'], { from: 'user' });
|
|
155
|
+
expect(mockApproveIssue).toHaveBeenCalledWith(expect.anything(), '42', 'final text');
|
|
156
|
+
});
|
|
157
|
+
it('dispatches "reject <iid>" to rejectIssue and NEVER calls approveIssue', async () => {
|
|
158
|
+
mockRejectIssue.mockReturnValue({ issueIid: '42', status: 'REJECTED' });
|
|
159
|
+
const triageCommand = await loadCommand();
|
|
160
|
+
await triageCommand.parseAsync(['reject', '42'], { from: 'user' });
|
|
161
|
+
expect(mockRejectIssue).toHaveBeenCalledWith(expect.anything(), '42');
|
|
162
|
+
expect(mockApproveIssue).not.toHaveBeenCalled();
|
|
163
|
+
});
|
|
164
|
+
it('dispatches "serve [port]" to startTriageServer with the parsed port', async () => {
|
|
165
|
+
mockStartTriageServer.mockReturnValue({ close: vi.fn() });
|
|
166
|
+
const triageCommand = await loadCommand();
|
|
167
|
+
await triageCommand.parseAsync(['serve', '5000'], { from: 'user' });
|
|
168
|
+
expect(mockStartTriageServer).toHaveBeenCalledWith(expect.anything(), 5000);
|
|
169
|
+
});
|
|
170
|
+
it('serve with no port arg lets startTriageServer use its own default', async () => {
|
|
171
|
+
mockStartTriageServer.mockReturnValue({ close: vi.fn() });
|
|
172
|
+
const triageCommand = await loadCommand();
|
|
173
|
+
await triageCommand.parseAsync(['serve'], { from: 'user' });
|
|
174
|
+
expect(mockStartTriageServer).toHaveBeenCalledWith(expect.anything(), undefined);
|
|
175
|
+
});
|
|
176
|
+
it('resolves the config path from --config on the parent command', async () => {
|
|
177
|
+
mockListQueue.mockReturnValue({});
|
|
178
|
+
const triageCommand = await loadCommand();
|
|
179
|
+
await triageCommand.parseAsync(['--config', '/custom/path.json', 'list'], { from: 'user' });
|
|
180
|
+
expect(mockResolveConfigPath).toHaveBeenCalledWith({ explicitPath: '/custom/path.json' });
|
|
181
|
+
expect(mockLoadConfig).toHaveBeenCalledWith('/tmp/repo/.ghagga/triage.config.json');
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
//# sourceMappingURL=triage.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"triage.test.js","sourceRoot":"","sources":["../../src/commands/triage.test.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -29,11 +29,13 @@ import { dismissCommand } from './commands/dismiss.js';
|
|
|
29
29
|
import { feedbackCommand } from './commands/feedback.js';
|
|
30
30
|
import { healthCommand } from './commands/health.js';
|
|
31
31
|
import { hooksCommand } from './commands/hooks/index.js';
|
|
32
|
+
import { indexCommand } from './commands/index-cmd.js';
|
|
32
33
|
import { loginCommand } from './commands/login.js';
|
|
33
34
|
import { logoutCommand } from './commands/logout.js';
|
|
34
35
|
import { memoryCommand } from './commands/memory/index.js';
|
|
35
36
|
import { reviewCommand } from './commands/review.js';
|
|
36
37
|
import { statusCommand } from './commands/status.js';
|
|
38
|
+
import { triageCommand } from './commands/triage.js';
|
|
37
39
|
import { getStoredToken, loadConfig } from './lib/config.js';
|
|
38
40
|
import { isLegacyProvider } from './lib/providers.js';
|
|
39
41
|
import * as tui from './ui/tui.js';
|
|
@@ -95,6 +97,7 @@ program
|
|
|
95
97
|
.option('--enable-tool <name>', 'Force-enable a specific tool (repeatable)', collect, [])
|
|
96
98
|
.option('--list-tools', 'List all available analysis tools and exit')
|
|
97
99
|
.option('--no-memory', 'Disable review memory')
|
|
100
|
+
.option('--no-blast-radius', 'Disable blast-radius filtering (auto-enabled when .ghagga/graph.json exists)')
|
|
98
101
|
.option('-c, --config <path>', 'Path to .ghagga.json config file')
|
|
99
102
|
.option('-v, --verbose', 'Show detailed progress during review')
|
|
100
103
|
.option('--staged', 'Review only staged changes (for pre-commit hooks)')
|
|
@@ -245,6 +248,7 @@ program
|
|
|
245
248
|
trivy: options.trivy,
|
|
246
249
|
cpd: options.cpd,
|
|
247
250
|
memory: options.memory,
|
|
251
|
+
blastRadius: options.blastRadius,
|
|
248
252
|
memoryBackend: options.memoryBackend,
|
|
249
253
|
config: options.config,
|
|
250
254
|
verbose: options.verbose ?? false,
|
|
@@ -299,8 +303,39 @@ program
|
|
|
299
303
|
save: options.save ?? false,
|
|
300
304
|
});
|
|
301
305
|
});
|
|
306
|
+
// ─── Index ──────────────────────────────────────────────────────
|
|
307
|
+
program
|
|
308
|
+
.command('index')
|
|
309
|
+
.description('Build the dependency graph consumed by blast-radius/review (.ghagga/graph.json). ' +
|
|
310
|
+
'SCIP-backed cross-file resolution across 8 languages: stable — Go, TypeScript/JavaScript, ' +
|
|
311
|
+
'Rust (captured fixtures, CI-validated); Python is stable (entry shipped, fixture capture ' +
|
|
312
|
+
'deferred — scip-python 0.6.6 emits 0 docs in some environments); heavy — Java, Kotlin ' +
|
|
313
|
+
'(scip-java needs a Maven/Gradle build); experimental — C# (scip-dotnet), PHP (scip-php). ' +
|
|
314
|
+
'Detects language markers at ANY depth (default 4 levels below repo root; override with ' +
|
|
315
|
+
'--marker-depth), not just repo root — each marker ' +
|
|
316
|
+
'directory is indexed independently and merged into one repo-relative graph (a Go marker ' +
|
|
317
|
+
'in apps/backend and another in services/worker both get indexed; two same-language marker ' +
|
|
318
|
+
"dirs never clobber each other's output). Vendored-tool directories (.tools, .ghagga, " +
|
|
319
|
+
'.worktrees, node_modules, vendor, .git, etc.) are always skipped. A marker nested deeper ' +
|
|
320
|
+
'than the depth bound is silently not detected — this is a known limitation, not a bug. ' +
|
|
321
|
+
'Per-marker-directory indexer runs are capped at 25 by ' +
|
|
322
|
+
'default (cheaper/stabler indexers run first, root-first within a maturity tier) — beyond ' +
|
|
323
|
+
'the cap, a warning names the skipped directories. scip-typescript is the one exception: ' +
|
|
324
|
+
'its own --infer-tsconfig walk already recursively discovers every nested TS/JS package ' +
|
|
325
|
+
'from repo root, so it always runs ONCE at repo root rather than once per nested marker dir. ' +
|
|
326
|
+
'A missing indexer/toolchain for a detected language warns and skips it rather than failing ' +
|
|
327
|
+
'the whole run; use --fallback-regex as the escape hatch when no language could be SCIP-indexed.')
|
|
328
|
+
.argument('[path]', 'Path to the repository', '.')
|
|
329
|
+
.option('--out <path>', 'Output path for graph.json, relative to the target repo')
|
|
330
|
+
.option('--fallback-regex', 'Use the regex-based indexer when no detected language could be SCIP-indexed')
|
|
331
|
+
.option('--marker-depth <n>', 'Maximum depth (repo root = 0) to walk when detecting nested language markers (positive integer, default: 4)')
|
|
332
|
+
.action(async (path, options) => {
|
|
333
|
+
await indexCommand(path, options);
|
|
334
|
+
});
|
|
302
335
|
// ─── Memory ─────────────────────────────────────────────────────
|
|
303
336
|
program.addCommand(memoryCommand);
|
|
337
|
+
// ─── Triage ─────────────────────────────────────────────────────
|
|
338
|
+
program.addCommand(triageCommand);
|
|
304
339
|
// ─── Dismiss ─────────────────────────────────────────────────────
|
|
305
340
|
program.addCommand(dismissCommand);
|
|
306
341
|
// ─── Feedback ────────────────────────────────────────────────────
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ghagga",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.3.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "AI-powered code review from the command line — free with GitHub Models",
|
|
@@ -43,8 +43,9 @@
|
|
|
43
43
|
"fts5-sql-bundle": "^1.0.2",
|
|
44
44
|
"commander": "^15.0.0",
|
|
45
45
|
"dotenv": "^17.4.2",
|
|
46
|
-
"ghagga-core": "3.
|
|
47
|
-
"ghagga-forge": "3.
|
|
46
|
+
"ghagga-core": "3.3.0",
|
|
47
|
+
"ghagga-forge": "3.3.0",
|
|
48
|
+
"ghagga-triage-engine": "0.2.0"
|
|
48
49
|
},
|
|
49
50
|
"devDependencies": {
|
|
50
51
|
"tsx": "^4.23.1",
|