gh-axi 0.1.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.
Files changed (63) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +46 -0
  3. package/dist/bin/gh-axg.d.ts +2 -0
  4. package/dist/bin/gh-axg.js +4 -0
  5. package/dist/bin/gh-axg.js.map +1 -0
  6. package/dist/bin/gh-axi.d.ts +2 -0
  7. package/dist/bin/gh-axi.js +4 -0
  8. package/dist/bin/gh-axi.js.map +1 -0
  9. package/dist/src/args.d.ts +16 -0
  10. package/dist/src/args.js +66 -0
  11. package/dist/src/args.js.map +1 -0
  12. package/dist/src/body.d.ts +14 -0
  13. package/dist/src/body.js +44 -0
  14. package/dist/src/body.js.map +1 -0
  15. package/dist/src/cli.d.ts +1 -0
  16. package/dist/src/cli.js +112 -0
  17. package/dist/src/cli.js.map +1 -0
  18. package/dist/src/commands/api.d.ts +3 -0
  19. package/dist/src/commands/api.js +144 -0
  20. package/dist/src/commands/api.js.map +1 -0
  21. package/dist/src/commands/home.d.ts +3 -0
  22. package/dist/src/commands/home.js +42 -0
  23. package/dist/src/commands/home.js.map +1 -0
  24. package/dist/src/commands/issue.d.ts +3 -0
  25. package/dist/src/commands/issue.js +432 -0
  26. package/dist/src/commands/issue.js.map +1 -0
  27. package/dist/src/commands/label.d.ts +3 -0
  28. package/dist/src/commands/label.js +121 -0
  29. package/dist/src/commands/label.js.map +1 -0
  30. package/dist/src/commands/pr.d.ts +3 -0
  31. package/dist/src/commands/pr.js +544 -0
  32. package/dist/src/commands/pr.js.map +1 -0
  33. package/dist/src/commands/release.d.ts +3 -0
  34. package/dist/src/commands/release.js +209 -0
  35. package/dist/src/commands/release.js.map +1 -0
  36. package/dist/src/commands/repo.d.ts +3 -0
  37. package/dist/src/commands/repo.js +182 -0
  38. package/dist/src/commands/repo.js.map +1 -0
  39. package/dist/src/commands/run.d.ts +3 -0
  40. package/dist/src/commands/run.js +218 -0
  41. package/dist/src/commands/run.js.map +1 -0
  42. package/dist/src/commands/search.d.ts +3 -0
  43. package/dist/src/commands/search.js +295 -0
  44. package/dist/src/commands/search.js.map +1 -0
  45. package/dist/src/commands/workflow.d.ts +3 -0
  46. package/dist/src/commands/workflow.js +126 -0
  47. package/dist/src/commands/workflow.js.map +1 -0
  48. package/dist/src/context.d.ts +13 -0
  49. package/dist/src/context.js +48 -0
  50. package/dist/src/context.js.map +1 -0
  51. package/dist/src/errors.d.ts +8 -0
  52. package/dist/src/errors.js +84 -0
  53. package/dist/src/errors.js.map +1 -0
  54. package/dist/src/gh.d.ts +12 -0
  55. package/dist/src/gh.js +54 -0
  56. package/dist/src/gh.js.map +1 -0
  57. package/dist/src/suggestions.d.ts +12 -0
  58. package/dist/src/suggestions.js +431 -0
  59. package/dist/src/suggestions.js.map +1 -0
  60. package/dist/src/toon.d.ts +65 -0
  61. package/dist/src/toon.js +151 -0
  62. package/dist/src/toon.js.map +1 -0
  63. package/package.json +50 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/commands/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { RepoContext } from '../context.js';
2
+ export declare const SEARCH_HELP = "usage: gh-axi search <type> <query> [flags]\ntypes[5]:\n issues, prs, repos, commits, code\nflags{common}:\n --repo, --owner, --state, --label, --assignee, --author, --sort, --limit <n> (default 1000)\nflags{prs}:\n --draft, --review\nflags{repos}:\n --language, --stars (e.g. \">100\")";
3
+ export declare function searchCommand(args: string[], ctx?: RepoContext): Promise<string>;
@@ -0,0 +1,295 @@
1
+ import { ghJson } from '../gh.js';
2
+ import { AxiError } from '../errors.js';
3
+ import { getFlag, hasFlag } from '../args.js';
4
+ import { field, lower, pluck, relativeTime, joinArray, custom, renderList, renderHelp, renderOutput, renderError, } from '../toon.js';
5
+ import { getSuggestions } from '../suggestions.js';
6
+ const DEFAULT_SEARCH_LIMIT = '1000';
7
+ const DISPLAY_LIMIT = 30;
8
+ export const SEARCH_HELP = `usage: gh-axi search <type> <query> [flags]
9
+ types[5]:
10
+ issues, prs, repos, commits, code
11
+ flags{common}:
12
+ --repo, --owner, --state, --label, --assignee, --author, --sort, --limit <n> (default 1000)
13
+ flags{prs}:
14
+ --draft, --review
15
+ flags{repos}:
16
+ --language, --stars (e.g. ">100")`;
17
+ const issueSchema = [
18
+ field('number'),
19
+ field('title'),
20
+ pluck('repository', 'nameWithOwner', 'repo'),
21
+ lower('state'),
22
+ pluck('author', 'login', 'author'),
23
+ joinArray('labels', 'name', 'labels'),
24
+ relativeTime('createdAt', 'created'),
25
+ ];
26
+ const prSchema = [
27
+ field('number'),
28
+ field('title'),
29
+ pluck('repository', 'nameWithOwner', 'repo'),
30
+ lower('state'),
31
+ pluck('author', 'login', 'author'),
32
+ relativeTime('createdAt', 'created'),
33
+ ];
34
+ const repoSchema = [
35
+ field('fullName', 'name'),
36
+ field('description'),
37
+ field('stargazersCount', 'stars'),
38
+ field('forksCount', 'forks'),
39
+ field('language'),
40
+ relativeTime('updatedAt', 'updated'),
41
+ ];
42
+ const commitSchema = [
43
+ field('sha'),
44
+ custom('message', (item) => {
45
+ const commit = item.commit;
46
+ const message = commit?.message;
47
+ return typeof message === 'string' ? message.split('\n')[0] : '';
48
+ }),
49
+ pluck('repository', 'fullName', 'repo'),
50
+ pluck('author', 'login', 'author'),
51
+ custom('date', (item) => {
52
+ const commit = item.commit;
53
+ const author = commit?.author;
54
+ const d = author?.date;
55
+ if (!d || typeof d !== 'string')
56
+ return 'unknown';
57
+ const diffMs = Date.now() - new Date(d).getTime();
58
+ const diffH = Math.floor(diffMs / 3600000);
59
+ if (diffH < 1)
60
+ return 'just now';
61
+ if (diffH < 24)
62
+ return `${diffH}h ago`;
63
+ const diffD = Math.floor(diffH / 24);
64
+ return `${diffD}d ago`;
65
+ }),
66
+ ];
67
+ function extractQuery(args) {
68
+ // Collect positional args (not flags and not the subcommand)
69
+ const positionals = [];
70
+ let i = 1; // skip subcommand (issues/prs/repos/commits/code)
71
+ while (i < args.length) {
72
+ if (args[i].startsWith('--')) {
73
+ // Skip flag + value
74
+ i += 2;
75
+ }
76
+ else {
77
+ positionals.push(args[i]);
78
+ i++;
79
+ }
80
+ }
81
+ return positionals.join(' ');
82
+ }
83
+ async function searchIssues(args, ctx) {
84
+ const query = extractQuery(args);
85
+ if (!query)
86
+ throw new AxiError('Search query is required: gh-axi search issues <query>', 'VALIDATION_ERROR');
87
+ const limit = getFlag(args, '--limit') ?? DEFAULT_SEARCH_LIMIT;
88
+ const ghArgs = [
89
+ 'search', 'issues', query,
90
+ '--json', 'number,title,repository,state,author,labels,createdAt',
91
+ '--limit', limit,
92
+ ];
93
+ const repo = getFlag(args, '--repo') ?? ctx?.nwo;
94
+ if (repo)
95
+ ghArgs.push('--repo', repo);
96
+ const owner = getFlag(args, '--owner');
97
+ if (owner)
98
+ ghArgs.push('--owner', owner);
99
+ const state = getFlag(args, '--state');
100
+ if (state)
101
+ ghArgs.push('--state', state);
102
+ const label = getFlag(args, '--label');
103
+ if (label)
104
+ ghArgs.push('--label', label);
105
+ const assignee = getFlag(args, '--assignee');
106
+ if (assignee)
107
+ ghArgs.push('--assignee', assignee);
108
+ const author = getFlag(args, '--author');
109
+ if (author)
110
+ ghArgs.push('--author', author);
111
+ const sort = getFlag(args, '--sort');
112
+ if (sort)
113
+ ghArgs.push('--sort', sort);
114
+ const results = await ghJson(ghArgs);
115
+ const limitNum = parseInt(limit, 10);
116
+ const displayed = results.slice(0, DISPLAY_LIMIT);
117
+ const countLine = results.length === limitNum
118
+ ? `count: ${results.length}+ (GitHub search API limit reached)`
119
+ : results.length > DISPLAY_LIMIT
120
+ ? `count: ${results.length} (showing first ${DISPLAY_LIMIT})`
121
+ : `count: ${results.length}`;
122
+ const suggestions = getSuggestions({ domain: 'search', action: 'issues', repo: ctx });
123
+ return renderOutput([
124
+ countLine,
125
+ renderList('issues', displayed, issueSchema),
126
+ renderHelp(suggestions),
127
+ ]);
128
+ }
129
+ async function searchPrs(args, ctx) {
130
+ const query = extractQuery(args);
131
+ if (!query)
132
+ throw new AxiError('Search query is required: gh-axi search prs <query>', 'VALIDATION_ERROR');
133
+ const limit = getFlag(args, '--limit') ?? DEFAULT_SEARCH_LIMIT;
134
+ const ghArgs = [
135
+ 'search', 'prs', query,
136
+ '--json', 'number,title,repository,state,author,createdAt',
137
+ '--limit', limit,
138
+ ];
139
+ const repo = getFlag(args, '--repo') ?? ctx?.nwo;
140
+ if (repo)
141
+ ghArgs.push('--repo', repo);
142
+ const owner = getFlag(args, '--owner');
143
+ if (owner)
144
+ ghArgs.push('--owner', owner);
145
+ const state = getFlag(args, '--state');
146
+ if (state)
147
+ ghArgs.push('--state', state);
148
+ const label = getFlag(args, '--label');
149
+ if (label)
150
+ ghArgs.push('--label', label);
151
+ const assignee = getFlag(args, '--assignee');
152
+ if (assignee)
153
+ ghArgs.push('--assignee', assignee);
154
+ const author = getFlag(args, '--author');
155
+ if (author)
156
+ ghArgs.push('--author', author);
157
+ const sort = getFlag(args, '--sort');
158
+ if (sort)
159
+ ghArgs.push('--sort', sort);
160
+ if (hasFlag(args, '--draft'))
161
+ ghArgs.push('--draft');
162
+ const review = getFlag(args, '--review');
163
+ if (review)
164
+ ghArgs.push('--review', review);
165
+ const results = await ghJson(ghArgs);
166
+ const limitNum = parseInt(limit, 10);
167
+ const displayed = results.slice(0, DISPLAY_LIMIT);
168
+ const countLine = results.length === limitNum
169
+ ? `count: ${results.length}+ (GitHub search API limit reached)`
170
+ : results.length > DISPLAY_LIMIT
171
+ ? `count: ${results.length} (showing first ${DISPLAY_LIMIT})`
172
+ : `count: ${results.length}`;
173
+ const suggestions = getSuggestions({ domain: 'search', action: 'prs', repo: ctx });
174
+ return renderOutput([
175
+ countLine,
176
+ renderList('prs', displayed, prSchema),
177
+ renderHelp(suggestions),
178
+ ]);
179
+ }
180
+ async function searchRepos(args, ctx) {
181
+ const query = extractQuery(args);
182
+ if (!query)
183
+ throw new AxiError('Search query is required: gh-axi search repos <query>', 'VALIDATION_ERROR');
184
+ const limit = getFlag(args, '--limit') ?? DEFAULT_SEARCH_LIMIT;
185
+ const ghArgs = [
186
+ 'search', 'repos', query,
187
+ '--json', 'fullName,description,stargazersCount,forksCount,language,updatedAt',
188
+ '--limit', limit,
189
+ ];
190
+ const owner = getFlag(args, '--owner');
191
+ if (owner)
192
+ ghArgs.push('--owner', owner);
193
+ const language = getFlag(args, '--language');
194
+ if (language)
195
+ ghArgs.push('--language', language);
196
+ const stars = getFlag(args, '--stars');
197
+ if (stars)
198
+ ghArgs.push('--stars', stars);
199
+ const sort = getFlag(args, '--sort');
200
+ if (sort)
201
+ ghArgs.push('--sort', sort);
202
+ const results = await ghJson(ghArgs);
203
+ const suggestions = getSuggestions({ domain: 'search', action: 'repos', repo: ctx });
204
+ return renderOutput([
205
+ renderList('repos', results, repoSchema),
206
+ renderHelp(suggestions),
207
+ ]);
208
+ }
209
+ async function searchCommits(args, ctx) {
210
+ const query = extractQuery(args);
211
+ if (!query)
212
+ throw new AxiError('Search query is required: gh-axi search commits <query>', 'VALIDATION_ERROR');
213
+ const limit = getFlag(args, '--limit') ?? DEFAULT_SEARCH_LIMIT;
214
+ const ghArgs = [
215
+ 'search', 'commits', query,
216
+ '--json', 'sha,commit,repository,author',
217
+ '--limit', limit,
218
+ ];
219
+ const repo = getFlag(args, '--repo');
220
+ if (repo)
221
+ ghArgs.push('--repo', repo);
222
+ const owner = getFlag(args, '--owner');
223
+ if (owner)
224
+ ghArgs.push('--owner', owner);
225
+ const author = getFlag(args, '--author');
226
+ if (author)
227
+ ghArgs.push('--author', author);
228
+ const sort = getFlag(args, '--sort');
229
+ if (sort)
230
+ ghArgs.push('--sort', sort);
231
+ const results = await ghJson(ghArgs);
232
+ const suggestions = getSuggestions({ domain: 'search', action: 'commits', repo: ctx });
233
+ return renderOutput([
234
+ renderList('commits', results, commitSchema),
235
+ renderHelp(suggestions),
236
+ ]);
237
+ }
238
+ const codeSchema = [
239
+ field('path'),
240
+ pluck('repository', 'fullName', 'repo'),
241
+ custom('matches', (item) => {
242
+ const tm = item.textMatches;
243
+ if (!Array.isArray(tm) || tm.length === 0)
244
+ return 0;
245
+ return tm.length;
246
+ }),
247
+ ];
248
+ async function searchCode(args, ctx) {
249
+ const query = extractQuery(args);
250
+ if (!query)
251
+ throw new AxiError('Search query is required: gh-axi search code <query>', 'VALIDATION_ERROR');
252
+ const limit = getFlag(args, '--limit') ?? DEFAULT_SEARCH_LIMIT;
253
+ const ghArgs = [
254
+ 'search', 'code', query,
255
+ '--json', 'path,repository,textMatches',
256
+ '--limit', limit,
257
+ ];
258
+ const repo = getFlag(args, '--repo');
259
+ if (repo)
260
+ ghArgs.push('--repo', repo);
261
+ const owner = getFlag(args, '--owner');
262
+ if (owner)
263
+ ghArgs.push('--owner', owner);
264
+ const language = getFlag(args, '--language');
265
+ if (language)
266
+ ghArgs.push('--language', language);
267
+ const results = await ghJson(ghArgs);
268
+ const suggestions = getSuggestions({ domain: 'search', action: 'code', repo: ctx });
269
+ return renderOutput([
270
+ renderList('results', results, codeSchema),
271
+ renderHelp(suggestions),
272
+ ]);
273
+ }
274
+ export async function searchCommand(args, ctx) {
275
+ const sub = args[0];
276
+ if (sub === '--help' || sub === undefined)
277
+ return SEARCH_HELP;
278
+ switch (sub) {
279
+ case 'issues':
280
+ return searchIssues(args, ctx);
281
+ case 'prs':
282
+ return searchPrs(args, ctx);
283
+ case 'repos':
284
+ return searchRepos(args, ctx);
285
+ case 'commits':
286
+ return searchCommits(args, ctx);
287
+ case 'code':
288
+ return searchCode(args, ctx);
289
+ default:
290
+ return renderError(`Unknown search type: ${sub}`, 'VALIDATION_ERROR', [
291
+ 'Available types: issues, prs, repos, commits, code',
292
+ ]);
293
+ }
294
+ }
295
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/commands/search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { RepoContext } from '../context.js';
2
+ export declare const WORKFLOW_HELP = "usage: gh-axi workflow <subcommand> [flags]\nsubcommands[5]:\n list, view <id|name>, run <id|name>, enable <id|name>, disable <id|name>\nflags{list}:\n --limit <n> (default 20), --all\nflags{run}:\n --ref <git-ref>, --field <key=val> (repeatable)";
3
+ export declare function workflowCommand(args: string[], ctx?: RepoContext): Promise<string>;
@@ -0,0 +1,126 @@
1
+ import { encode } from '@toon-format/toon';
2
+ import { ghJson, ghExec } from '../gh.js';
3
+ import { AxiError } from '../errors.js';
4
+ import { getFlag, hasFlag, getAllFlags } from '../args.js';
5
+ import { field, lower, renderList, renderDetail, renderHelp, renderOutput, renderError, } from '../toon.js';
6
+ import { getSuggestions } from '../suggestions.js';
7
+ export const WORKFLOW_HELP = `usage: gh-axi workflow <subcommand> [flags]
8
+ subcommands[5]:
9
+ list, view <id|name>, run <id|name>, enable <id|name>, disable <id|name>
10
+ flags{list}:
11
+ --limit <n> (default 20), --all
12
+ flags{run}:
13
+ --ref <git-ref>, --field <key=val> (repeatable)`;
14
+ const listSchema = [
15
+ field('id'),
16
+ field('name'),
17
+ lower('state'),
18
+ field('path'),
19
+ ];
20
+ const viewSchema = [
21
+ field('id'),
22
+ field('name'),
23
+ lower('state'),
24
+ field('path'),
25
+ ];
26
+ async function listWorkflows(args, ctx) {
27
+ const limit = getFlag(args, '--limit') ?? '20';
28
+ const ghArgs = [
29
+ 'workflow', 'list',
30
+ '--json', 'id,name,state,path',
31
+ '--limit', limit,
32
+ ];
33
+ if (hasFlag(args, '--all'))
34
+ ghArgs.push('--all');
35
+ const workflows = await ghJson(ghArgs, ctx);
36
+ const isEmpty = workflows.length === 0;
37
+ const suggestions = getSuggestions({ domain: 'workflow', action: 'list', isEmpty, repo: ctx });
38
+ return renderOutput([
39
+ renderList('workflows', workflows, listSchema),
40
+ renderHelp(suggestions),
41
+ ]);
42
+ }
43
+ async function viewWorkflow(args, ctx) {
44
+ const positionals = args.filter((a) => !a.startsWith('--'));
45
+ const id = positionals[1];
46
+ if (!id)
47
+ throw new AxiError('Workflow ID or name is required: gh-axi workflow view <id|name>', 'VALIDATION_ERROR');
48
+ // gh workflow view doesn't support --json, so list all and filter
49
+ const workflows = await ghJson(['workflow', 'list', '--json', 'id,name,state,path', '--all'], ctx);
50
+ const match = workflows.find((w) => String(w.id) === id || w.name === id || (typeof w.name === 'string' && w.name.toLowerCase() === id.toLowerCase()));
51
+ if (!match)
52
+ throw new AxiError(`Workflow "${id}" not found`, 'NOT_FOUND');
53
+ const suggestions = getSuggestions({ domain: 'workflow', action: 'view', id, repo: ctx });
54
+ return renderOutput([
55
+ renderDetail('workflow', match, viewSchema),
56
+ renderHelp(suggestions),
57
+ ]);
58
+ }
59
+ async function runWorkflow(args, ctx) {
60
+ const positionals = args.filter((a) => !a.startsWith('--'));
61
+ const id = positionals[1];
62
+ if (!id)
63
+ throw new AxiError('Workflow ID or name is required: gh-axi workflow run <id|name>', 'VALIDATION_ERROR');
64
+ const ghArgs = ['workflow', 'run', id];
65
+ const ref = getFlag(args, '--ref');
66
+ if (ref)
67
+ ghArgs.push('--ref', ref);
68
+ const fields = getAllFlags(args, '--field');
69
+ for (const f of fields) {
70
+ ghArgs.push('--field', f);
71
+ }
72
+ await ghExec(ghArgs, ctx);
73
+ const suggestions = getSuggestions({ domain: 'workflow', action: 'run', id, repo: ctx });
74
+ return renderOutput([
75
+ encode({ triggered: 'ok', workflow: id }),
76
+ renderHelp(suggestions),
77
+ ]);
78
+ }
79
+ async function enableWorkflow(args, ctx) {
80
+ const positionals = args.filter((a) => !a.startsWith('--'));
81
+ const id = positionals[1];
82
+ if (!id)
83
+ throw new AxiError('Workflow ID or name is required: gh-axi workflow enable <id|name>', 'VALIDATION_ERROR');
84
+ // Idempotent: enable regardless of current state
85
+ await ghExec(['workflow', 'enable', id], ctx);
86
+ const suggestions = getSuggestions({ domain: 'workflow', action: 'enable', id, repo: ctx });
87
+ return renderOutput([
88
+ encode({ enable: 'ok', workflow: id }),
89
+ renderHelp(suggestions),
90
+ ]);
91
+ }
92
+ async function disableWorkflow(args, ctx) {
93
+ const positionals = args.filter((a) => !a.startsWith('--'));
94
+ const id = positionals[1];
95
+ if (!id)
96
+ throw new AxiError('Workflow ID or name is required: gh-axi workflow disable <id|name>', 'VALIDATION_ERROR');
97
+ // Idempotent: disable regardless of current state
98
+ await ghExec(['workflow', 'disable', id], ctx);
99
+ const suggestions = getSuggestions({ domain: 'workflow', action: 'disable', id, repo: ctx });
100
+ return renderOutput([
101
+ encode({ disable: 'ok', workflow: id }),
102
+ renderHelp(suggestions),
103
+ ]);
104
+ }
105
+ export async function workflowCommand(args, ctx) {
106
+ const sub = args[0];
107
+ if (sub === '--help' || sub === undefined)
108
+ return WORKFLOW_HELP;
109
+ switch (sub) {
110
+ case 'list':
111
+ return listWorkflows(args, ctx);
112
+ case 'view':
113
+ return viewWorkflow(args, ctx);
114
+ case 'run':
115
+ return runWorkflow(args, ctx);
116
+ case 'enable':
117
+ return enableWorkflow(args, ctx);
118
+ case 'disable':
119
+ return disableWorkflow(args, ctx);
120
+ default:
121
+ return renderError(`Unknown subcommand: ${sub}`, 'VALIDATION_ERROR', [
122
+ 'Available subcommands: list, view, run, enable, disable',
123
+ ]);
124
+ }
125
+ }
126
+ //# sourceMappingURL=workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../../src/commands/workflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export interface RepoContext {
2
+ owner: string;
3
+ name: string;
4
+ /** Full "OWNER/NAME" string */
5
+ nwo: string;
6
+ /** How the repo was resolved — determines whether to append --repo to gh calls */
7
+ source: 'flag' | 'env' | 'git';
8
+ }
9
+ /**
10
+ * Resolve the target repository.
11
+ * Priority: --repo flag > GH_REPO env > git remote origin.
12
+ */
13
+ export declare function resolveRepo(flagValue?: string): RepoContext | undefined;
@@ -0,0 +1,48 @@
1
+ import { execFileSync } from 'node:child_process';
2
+ /**
3
+ * Resolve the target repository.
4
+ * Priority: --repo flag > GH_REPO env > git remote origin.
5
+ */
6
+ export function resolveRepo(flagValue) {
7
+ if (flagValue) {
8
+ return parseNwo(flagValue, 'flag');
9
+ }
10
+ const envRepo = process.env['GH_REPO'];
11
+ if (envRepo) {
12
+ return parseNwo(envRepo, 'env');
13
+ }
14
+ try {
15
+ const url = execFileSync('git', ['remote', 'get-url', 'origin'], {
16
+ encoding: 'utf-8',
17
+ stdio: ['ignore', 'pipe', 'ignore'],
18
+ }).trim();
19
+ return parseRemoteUrl(url);
20
+ }
21
+ catch {
22
+ return undefined;
23
+ }
24
+ }
25
+ function parseNwo(nwo, source) {
26
+ const parts = nwo.split('/');
27
+ if (parts.length !== 2 || !parts[0] || !parts[1])
28
+ return undefined;
29
+ return { owner: parts[0], name: parts[1], nwo, source };
30
+ }
31
+ function parseRemoteUrl(url) {
32
+ // SSH: git@github.com:OWNER/NAME.git
33
+ const sshMatch = url.match(/github\.com[:/]([^/]+)\/([^/]+?)(?:\.git)?$/);
34
+ if (sshMatch) {
35
+ const owner = sshMatch[1];
36
+ const name = sshMatch[2];
37
+ return { owner, name, nwo: `${owner}/${name}`, source: 'git' };
38
+ }
39
+ // HTTPS: https://github.com/OWNER/NAME.git
40
+ const httpsMatch = url.match(/github\.com\/([^/]+)\/([^/]+?)(?:\.git)?$/);
41
+ if (httpsMatch) {
42
+ const owner = httpsMatch[1];
43
+ const name = httpsMatch[2];
44
+ return { owner, name, nwo: `${owner}/${name}`, source: 'git' };
45
+ }
46
+ return undefined;
47
+ }
48
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAWlD;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,SAAkB;IAC5C,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE;YAC/D,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW,EAAE,MAAsB;IACnD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACnE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AAC1D,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,qCAAqC;IACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC1E,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACzB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACjE,CAAC;IACD,2CAA2C;IAC3C,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC1E,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACjE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export type ErrorCode = 'REPO_NOT_FOUND' | 'NOT_FOUND' | 'AUTH_REQUIRED' | 'FORBIDDEN' | 'VALIDATION_ERROR' | 'GH_NOT_INSTALLED' | 'UNKNOWN';
2
+ export declare class AxiError extends Error {
3
+ readonly code: ErrorCode;
4
+ readonly suggestions: string[];
5
+ constructor(message: string, code: ErrorCode, suggestions?: string[]);
6
+ }
7
+ export declare function mapGhError(stderr: string, exitCode: number): AxiError;
8
+ export declare function ghNotInstalledError(): AxiError;
@@ -0,0 +1,84 @@
1
+ export class AxiError extends Error {
2
+ code;
3
+ suggestions;
4
+ constructor(message, code, suggestions = []) {
5
+ super(message);
6
+ this.code = code;
7
+ this.suggestions = suggestions;
8
+ this.name = 'AxiError';
9
+ }
10
+ }
11
+ const patterns = [
12
+ {
13
+ pattern: /Could not resolve to a Repository with the name '([^']+)'/,
14
+ code: 'REPO_NOT_FOUND',
15
+ message: (m) => `Repository "${m[1]}" not found`,
16
+ suggestions: () => ['Run `gh-axi repo list` to see your repositories'],
17
+ },
18
+ {
19
+ pattern: /Could not resolve to an? .+? with the number of (\d+)/,
20
+ code: 'NOT_FOUND',
21
+ message: (m) => `Item #${m[1]} does not exist in this repository`,
22
+ suggestions: () => [],
23
+ },
24
+ {
25
+ pattern: /issue (\d+) not found/i,
26
+ code: 'NOT_FOUND',
27
+ message: (m) => `Issue #${m[1]} does not exist`,
28
+ suggestions: () => [],
29
+ },
30
+ {
31
+ pattern: /pull request (\d+) not found/i,
32
+ code: 'NOT_FOUND',
33
+ message: (m) => `Pull request #${m[1]} does not exist`,
34
+ suggestions: () => [],
35
+ },
36
+ {
37
+ pattern: /release with tag "([^"]+)" not found/i,
38
+ code: 'NOT_FOUND',
39
+ message: (m) => `Release "${m[1]}" not found`,
40
+ suggestions: () => [`Run \`gh-axi release list\` to see available releases`],
41
+ },
42
+ {
43
+ pattern: /run (\d+) not found/i,
44
+ code: 'NOT_FOUND',
45
+ message: (m) => `Run ${m[1]} not found`,
46
+ suggestions: () => [`Run \`gh-axi run list\` to see recent runs`],
47
+ },
48
+ {
49
+ pattern: /gh auth login/,
50
+ code: 'AUTH_REQUIRED',
51
+ message: () => 'GitHub auth required — run `gh auth login` first',
52
+ },
53
+ {
54
+ pattern: /HTTP 403/,
55
+ code: 'FORBIDDEN',
56
+ message: () => 'Insufficient permissions for this action',
57
+ },
58
+ {
59
+ pattern: /HTTP 422/,
60
+ code: 'VALIDATION_ERROR',
61
+ message: (_m, stderr) => {
62
+ // Try to extract a meaningful message from the 422 body
63
+ const msgMatch = stderr.match(/"message"\s*:\s*"([^"]+)"/);
64
+ return msgMatch ? msgMatch[1] : 'Validation error';
65
+ },
66
+ },
67
+ ];
68
+ export function mapGhError(stderr, exitCode) {
69
+ for (const { pattern, code, message, suggestions } of patterns) {
70
+ const match = stderr.match(pattern);
71
+ if (match) {
72
+ return new AxiError(message(match, stderr), code, suggestions?.(match) ?? []);
73
+ }
74
+ }
75
+ // Generic not-found for any 404-like message
76
+ if (stderr.includes('not found') || stderr.includes('Not Found')) {
77
+ return new AxiError(stderr.trim().split('\n')[0], 'NOT_FOUND');
78
+ }
79
+ return new AxiError(stderr.trim().split('\n')[0] || `gh exited with code ${exitCode}`, 'UNKNOWN');
80
+ }
81
+ export function ghNotInstalledError() {
82
+ return new AxiError('gh CLI is not installed — see https://cli.github.com', 'GH_NOT_INSTALLED');
83
+ }
84
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,QAAS,SAAQ,KAAK;IAGf;IACA;IAHlB,YACE,OAAe,EACC,IAAe,EACf,cAAwB,EAAE;QAE1C,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,SAAI,GAAJ,IAAI,CAAW;QACf,gBAAW,GAAX,WAAW,CAAe;QAG1C,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AASD,MAAM,QAAQ,GAAmB;IAC/B;QACE,OAAO,EAAE,2DAA2D;QACpE,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,aAAa;QAChD,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,iDAAiD,CAAC;KACvE;IACD;QACE,OAAO,EAAE,uDAAuD;QAChE,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,oCAAoC;QACjE,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE;KACtB;IACD;QACE,OAAO,EAAE,wBAAwB;QACjC,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,iBAAiB;QAC/C,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE;KACtB;IACD;QACE,OAAO,EAAE,+BAA+B;QACxC,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB;QACtD,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE;KACtB;IACD;QACE,OAAO,EAAE,uCAAuC;QAChD,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,aAAa;QAC7C,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,uDAAuD,CAAC;KAC7E;IACD;QACE,OAAO,EAAE,sBAAsB;QAC/B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY;QACvC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,4CAA4C,CAAC;KAClE;IACD;QACE,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,GAAG,EAAE,CAAC,kDAAkD;KAClE;IACD;QACE,OAAO,EAAE,UAAU;QACnB,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,GAAG,EAAE,CAAC,0CAA0C;KAC1D;IACD;QACE,OAAO,EAAE,UAAU;QACnB,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE;YACtB,wDAAwD;YACxD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC3D,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACrD,CAAC;KACF;CACF,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,MAAc,EAAE,QAAgB;IACzD,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACjE,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,uBAAuB,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC;AACpG,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,QAAQ,CACjB,sDAAsD,EACtD,kBAAkB,CACnB,CAAC;AACJ,CAAC"}