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,12 @@
1
+ import { type RepoContext } from './context.js';
2
+ export interface ExecResult {
3
+ stdout: string;
4
+ stderr: string;
5
+ exitCode: number;
6
+ }
7
+ /** Execute gh and return parsed JSON. */
8
+ export declare function ghJson<T = unknown>(args: string[], ctx?: RepoContext): Promise<T>;
9
+ /** Execute gh and return raw stdout. */
10
+ export declare function ghExec(args: string[], ctx?: RepoContext): Promise<string>;
11
+ /** Execute gh, returning stdout + stderr without throwing on non-zero exit. */
12
+ export declare function ghRaw(args: string[], ctx?: RepoContext): Promise<ExecResult>;
package/dist/src/gh.js ADDED
@@ -0,0 +1,54 @@
1
+ import { execFile } from 'node:child_process';
2
+ import { AxiError, ghNotInstalledError, mapGhError } from './errors.js';
3
+ function buildArgs(args, ctx) {
4
+ const out = [...args];
5
+ // Append --repo for flag/env sources (git remote is auto-detected by gh)
6
+ if (ctx && ctx.source !== 'git') {
7
+ out.push('--repo', ctx.nwo);
8
+ }
9
+ return out;
10
+ }
11
+ const MAX_BUFFER_BYTES = 10 * 1024 * 1024; // 10 MB
12
+ function run(args) {
13
+ return new Promise((resolve) => {
14
+ execFile('gh', args, { maxBuffer: MAX_BUFFER_BYTES }, (error, stdout, stderr) => {
15
+ if (error && error.code === 'ENOENT') {
16
+ resolve({ stdout: '', stderr: 'ENOENT', exitCode: 127 });
17
+ return;
18
+ }
19
+ const exitCode = error ? error.code ?? 1 : 0;
20
+ resolve({ stdout: stdout ?? '', stderr: stderr ?? '', exitCode: typeof exitCode === 'number' ? exitCode : 1 });
21
+ });
22
+ });
23
+ }
24
+ /** Execute gh and return parsed JSON. */
25
+ export async function ghJson(args, ctx) {
26
+ const result = await run(buildArgs(args, ctx));
27
+ if (result.stderr === 'ENOENT')
28
+ throw ghNotInstalledError();
29
+ if (result.exitCode !== 0)
30
+ throw mapGhError(result.stderr, result.exitCode);
31
+ try {
32
+ return JSON.parse(result.stdout);
33
+ }
34
+ catch {
35
+ throw new AxiError(`Unexpected gh output: ${result.stdout.slice(0, 200)}`, 'UNKNOWN');
36
+ }
37
+ }
38
+ /** Execute gh and return raw stdout. */
39
+ export async function ghExec(args, ctx) {
40
+ const result = await run(buildArgs(args, ctx));
41
+ if (result.stderr === 'ENOENT')
42
+ throw ghNotInstalledError();
43
+ if (result.exitCode !== 0)
44
+ throw mapGhError(result.stderr, result.exitCode);
45
+ return result.stdout;
46
+ }
47
+ /** Execute gh, returning stdout + stderr without throwing on non-zero exit. */
48
+ export async function ghRaw(args, ctx) {
49
+ const result = await run(buildArgs(args, ctx));
50
+ if (result.stderr === 'ENOENT')
51
+ throw ghNotInstalledError();
52
+ return result;
53
+ }
54
+ //# sourceMappingURL=gh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gh.js","sourceRoot":"","sources":["../../src/gh.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { RepoContext } from './context.js';
2
+ interface SuggestionContext {
3
+ domain: string;
4
+ action: string;
5
+ state?: string;
6
+ isEmpty?: boolean;
7
+ /** The entity number/id/tag for substitution */
8
+ id?: string | number;
9
+ repo?: RepoContext;
10
+ }
11
+ export declare function getSuggestions(ctx: SuggestionContext): string[];
12
+ export {};
@@ -0,0 +1,431 @@
1
+ function repoFlag(ctx) {
2
+ if (ctx.repo && ctx.repo.source !== 'git') {
3
+ return ` -R ${ctx.repo.nwo}`;
4
+ }
5
+ return '';
6
+ }
7
+ const table = [
8
+ // Home
9
+ {
10
+ match: (c) => c.domain === 'home',
11
+ lines: (c) => [
12
+ `Run \`gh-axi <command> <subcommand>\` — commands: issue, pr, run, release, repo, label`,
13
+ ],
14
+ },
15
+ // Issue list
16
+ {
17
+ match: (c) => c.domain === 'issue' && c.action === 'list' && !c.isEmpty,
18
+ lines: (c) => [
19
+ `Run \`gh-axi${repoFlag(c)} issue view <number>\` to view details`,
20
+ `Run \`gh-axi${repoFlag(c)} issue create --title "..." --body "..."\` to create`,
21
+ ],
22
+ },
23
+ {
24
+ match: (c) => c.domain === 'issue' && c.action === 'list' && c.isEmpty === true,
25
+ lines: (c) => [
26
+ `Run \`gh-axi${repoFlag(c)} issue create --title "..." --body "..."\` to create an issue`,
27
+ `Run \`gh-axi${repoFlag(c)} issue list --state closed\` to see closed issues`,
28
+ ],
29
+ },
30
+ // Issue view
31
+ {
32
+ match: (c) => c.domain === 'issue' && c.action === 'view' && c.state === 'open',
33
+ lines: (c) => [
34
+ `Run \`gh-axi${repoFlag(c)} issue comment ${c.id} --body "..."\` to comment`,
35
+ `Run \`gh-axi${repoFlag(c)} issue close ${c.id}\` to close`,
36
+ `Run \`gh-axi${repoFlag(c)} issue edit ${c.id} --add-assignee <user>\` to assign`,
37
+ `Run \`gh-axi search prs "${c.id}"${c.repo ? ` --repo ${c.repo.nwo}` : ''}\` to find PRs referencing this issue`,
38
+ ],
39
+ },
40
+ {
41
+ match: (c) => c.domain === 'issue' && c.action === 'view' && c.state === 'closed',
42
+ lines: (c) => [
43
+ `Run \`gh-axi${repoFlag(c)} issue reopen ${c.id}\` to reopen`,
44
+ `Run \`gh-axi${repoFlag(c)} issue comment ${c.id} --body "..."\` to comment`,
45
+ `Run \`gh-axi search prs "${c.id}"${c.repo ? ` --repo ${c.repo.nwo}` : ''}\` to find PRs referencing this issue`,
46
+ ],
47
+ },
48
+ // Issue create
49
+ {
50
+ match: (c) => c.domain === 'issue' && c.action === 'create',
51
+ lines: (c) => [
52
+ `Run \`gh-axi${repoFlag(c)} issue view ${c.id}\` to see the full issue`,
53
+ `Run \`gh-axi${repoFlag(c)} issue edit ${c.id} --add-label <label>\` to label`,
54
+ ],
55
+ },
56
+ // Issue close
57
+ {
58
+ match: (c) => c.domain === 'issue' && c.action === 'close',
59
+ lines: (c) => [
60
+ `Run \`gh-axi${repoFlag(c)} issue reopen ${c.id}\` to reopen`,
61
+ ],
62
+ },
63
+ // Issue reopen
64
+ {
65
+ match: (c) => c.domain === 'issue' && c.action === 'reopen',
66
+ lines: (c) => [
67
+ `Run \`gh-axi${repoFlag(c)} issue close ${c.id}\` to close`,
68
+ `Run \`gh-axi${repoFlag(c)} issue view ${c.id}\` to see details`,
69
+ ],
70
+ },
71
+ // Issue edit
72
+ {
73
+ match: (c) => c.domain === 'issue' && c.action === 'edit',
74
+ lines: (c) => [
75
+ `Run \`gh-axi${repoFlag(c)} issue view ${c.id}\` to see updated issue`,
76
+ ],
77
+ },
78
+ // Issue comment
79
+ {
80
+ match: (c) => c.domain === 'issue' && c.action === 'comment',
81
+ lines: (c) => [
82
+ `Run \`gh-axi${repoFlag(c)} issue view ${c.id} --comments\` to see all comments`,
83
+ ],
84
+ },
85
+ // Issue delete
86
+ {
87
+ match: (c) => c.domain === 'issue' && c.action === 'delete',
88
+ lines: (c) => [
89
+ `Run \`gh-axi${repoFlag(c)} issue list\` to see remaining issues`,
90
+ ],
91
+ },
92
+ // Issue lock/unlock/pin/unpin
93
+ {
94
+ match: (c) => c.domain === 'issue' && ['lock', 'unlock', 'pin', 'unpin'].includes(c.action),
95
+ lines: (c) => [
96
+ `Run \`gh-axi${repoFlag(c)} issue view ${c.id}\` to see issue details`,
97
+ ],
98
+ },
99
+ // Issue transfer
100
+ {
101
+ match: (c) => c.domain === 'issue' && c.action === 'transfer',
102
+ lines: () => [],
103
+ },
104
+ // PR list
105
+ {
106
+ match: (c) => c.domain === 'pr' && c.action === 'list' && !c.isEmpty,
107
+ lines: (c) => [
108
+ `Run \`gh-axi${repoFlag(c)} pr view <number>\` to view details`,
109
+ `Run \`gh-axi${repoFlag(c)} pr create --title "..." --body "..."\` to create`,
110
+ ],
111
+ },
112
+ {
113
+ match: (c) => c.domain === 'pr' && c.action === 'list' && c.isEmpty === true,
114
+ lines: (c) => [
115
+ `Run \`gh-axi${repoFlag(c)} pr create --title "..." --body "..."\` to create a PR`,
116
+ `Run \`gh-axi${repoFlag(c)} pr list --state closed\` to see closed PRs`,
117
+ ],
118
+ },
119
+ // PR view
120
+ {
121
+ match: (c) => c.domain === 'pr' && c.action === 'view' && c.state === 'open',
122
+ lines: (c) => [
123
+ `Run \`gh-axi${repoFlag(c)} pr checks ${c.id}\` to see CI status`,
124
+ `Run \`gh-axi${repoFlag(c)} pr review ${c.id} --approve\` to approve`,
125
+ `Run \`gh-axi${repoFlag(c)} pr merge ${c.id}\` to merge`,
126
+ ],
127
+ },
128
+ {
129
+ match: (c) => c.domain === 'pr' && c.action === 'view' && c.state === 'closed',
130
+ lines: (c) => [
131
+ `Run \`gh-axi${repoFlag(c)} pr reopen ${c.id}\` to reopen`,
132
+ ],
133
+ },
134
+ {
135
+ match: (c) => c.domain === 'pr' && c.action === 'view' && c.state === 'merged',
136
+ lines: (c) => [
137
+ `Run \`gh-axi${repoFlag(c)} pr revert ${c.id}\` to revert`,
138
+ ],
139
+ },
140
+ // PR create
141
+ {
142
+ match: (c) => c.domain === 'pr' && c.action === 'create',
143
+ lines: (c) => [
144
+ `Run \`gh-axi${repoFlag(c)} pr view ${c.id}\` to see the full PR`,
145
+ `Run \`gh-axi${repoFlag(c)} pr checks ${c.id}\` to monitor CI`,
146
+ ],
147
+ },
148
+ // PR close
149
+ {
150
+ match: (c) => c.domain === 'pr' && c.action === 'close',
151
+ lines: (c) => [
152
+ `Run \`gh-axi${repoFlag(c)} pr reopen ${c.id}\` to reopen`,
153
+ ],
154
+ },
155
+ // PR merge
156
+ {
157
+ match: (c) => c.domain === 'pr' && c.action === 'merge',
158
+ lines: (c) => [
159
+ `Run \`gh-axi${repoFlag(c)} pr revert ${c.id}\` to revert if needed`,
160
+ ],
161
+ },
162
+ // PR review
163
+ {
164
+ match: (c) => c.domain === 'pr' && c.action === 'review',
165
+ lines: (c) => [
166
+ `Run \`gh-axi${repoFlag(c)} pr view ${c.id}\` to see PR details`,
167
+ ],
168
+ },
169
+ // PR checks
170
+ {
171
+ match: (c) => c.domain === 'pr' && c.action === 'checks',
172
+ lines: (c) => [
173
+ `Run \`gh-axi${repoFlag(c)} pr view ${c.id}\` to see PR details`,
174
+ `Run \`gh-axi${repoFlag(c)} pr merge ${c.id}\` to merge when ready`,
175
+ ],
176
+ },
177
+ // PR diff
178
+ {
179
+ match: (c) => c.domain === 'pr' && c.action === 'diff',
180
+ lines: (c) => [
181
+ `Run \`gh-axi${repoFlag(c)} pr review ${c.id} --approve\` to approve`,
182
+ ],
183
+ },
184
+ // PR checkout
185
+ {
186
+ match: (c) => c.domain === 'pr' && c.action === 'checkout',
187
+ lines: () => [],
188
+ },
189
+ // PR ready
190
+ {
191
+ match: (c) => c.domain === 'pr' && c.action === 'ready',
192
+ lines: (c) => [
193
+ `Run \`gh-axi${repoFlag(c)} pr view ${c.id}\` to see PR status`,
194
+ ],
195
+ },
196
+ // PR reopen
197
+ {
198
+ match: (c) => c.domain === 'pr' && c.action === 'reopen',
199
+ lines: (c) => [
200
+ `Run \`gh-axi${repoFlag(c)} pr view ${c.id}\` to see PR details`,
201
+ ],
202
+ },
203
+ // PR comment
204
+ {
205
+ match: (c) => c.domain === 'pr' && c.action === 'comment',
206
+ lines: (c) => [
207
+ `Run \`gh-axi${repoFlag(c)} pr view ${c.id} --comments\` to see all comments`,
208
+ ],
209
+ },
210
+ // PR update-branch
211
+ {
212
+ match: (c) => c.domain === 'pr' && c.action === 'update-branch',
213
+ lines: (c) => [
214
+ `Run \`gh-axi${repoFlag(c)} pr checks ${c.id}\` to monitor CI after update`,
215
+ ],
216
+ },
217
+ // PR revert
218
+ {
219
+ match: (c) => c.domain === 'pr' && c.action === 'revert',
220
+ lines: (c) => [
221
+ `Run \`gh-axi${repoFlag(c)} pr view ${c.id}\` to see the revert PR`,
222
+ ],
223
+ },
224
+ // Run list
225
+ {
226
+ match: (c) => c.domain === 'run' && c.action === 'list',
227
+ lines: (c) => [
228
+ `Run \`gh-axi${repoFlag(c)} run view <id>\` to view details`,
229
+ ],
230
+ },
231
+ // Run view
232
+ {
233
+ match: (c) => c.domain === 'run' && c.action === 'view' && c.state === 'completed',
234
+ lines: (c) => [
235
+ `Run \`gh-axi${repoFlag(c)} run rerun ${c.id}\` to rerun`,
236
+ `Run \`gh-axi${repoFlag(c)} run view ${c.id} --log-failed\` to see failure logs`,
237
+ ],
238
+ },
239
+ {
240
+ match: (c) => c.domain === 'run' && c.action === 'view' && c.state === 'in_progress',
241
+ lines: (c) => [
242
+ `Run \`gh-axi${repoFlag(c)} run watch ${c.id}\` to watch until completion`,
243
+ `Run \`gh-axi${repoFlag(c)} run cancel ${c.id}\` to cancel`,
244
+ ],
245
+ },
246
+ {
247
+ match: (c) => c.domain === 'run' && c.action === 'view',
248
+ lines: (c) => [
249
+ `Run \`gh-axi${repoFlag(c)} run view ${c.id} --log\` to see full logs`,
250
+ ],
251
+ },
252
+ // Run rerun/cancel/delete
253
+ {
254
+ match: (c) => c.domain === 'run' && c.action === 'rerun',
255
+ lines: (c) => [
256
+ `Run \`gh-axi${repoFlag(c)} run watch ${c.id}\` to monitor progress`,
257
+ ],
258
+ },
259
+ {
260
+ match: (c) => c.domain === 'run' && c.action === 'cancel',
261
+ lines: (c) => [
262
+ `Run \`gh-axi${repoFlag(c)} run view ${c.id}\` to see final state`,
263
+ ],
264
+ },
265
+ {
266
+ match: (c) => c.domain === 'run' && c.action === 'delete',
267
+ lines: (c) => [
268
+ `Run \`gh-axi${repoFlag(c)} run list\` to see remaining runs`,
269
+ ],
270
+ },
271
+ // Run watch
272
+ {
273
+ match: (c) => c.domain === 'run' && c.action === 'watch',
274
+ lines: (c) => [
275
+ `Run \`gh-axi${repoFlag(c)} run view ${c.id}\` to see details`,
276
+ ],
277
+ },
278
+ // Run download
279
+ {
280
+ match: (c) => c.domain === 'run' && c.action === 'download',
281
+ lines: () => [],
282
+ },
283
+ // Workflow list
284
+ {
285
+ match: (c) => c.domain === 'workflow' && c.action === 'list',
286
+ lines: (c) => [
287
+ `Run \`gh-axi${repoFlag(c)} workflow view <id>\` to view details`,
288
+ `Run \`gh-axi${repoFlag(c)} workflow run <id>\` to trigger a run`,
289
+ ],
290
+ },
291
+ // Workflow view
292
+ {
293
+ match: (c) => c.domain === 'workflow' && c.action === 'view',
294
+ lines: (c) => [
295
+ `Run \`gh-axi${repoFlag(c)} workflow run ${c.id}\` to trigger`,
296
+ `Run \`gh-axi${repoFlag(c)} run list --workflow ${c.id}\` to see past runs`,
297
+ ],
298
+ },
299
+ // Workflow run
300
+ {
301
+ match: (c) => c.domain === 'workflow' && c.action === 'run',
302
+ lines: (c) => [
303
+ `Run \`gh-axi${repoFlag(c)} run list\` to see triggered run`,
304
+ ],
305
+ },
306
+ // Workflow enable/disable
307
+ {
308
+ match: (c) => c.domain === 'workflow' && ['enable', 'disable'].includes(c.action),
309
+ lines: (c) => [
310
+ `Run \`gh-axi${repoFlag(c)} workflow list\` to see all workflows`,
311
+ ],
312
+ },
313
+ // Release list
314
+ {
315
+ match: (c) => c.domain === 'release' && c.action === 'list',
316
+ lines: (c) => [
317
+ `Run \`gh-axi${repoFlag(c)} release view <tag>\` to view details`,
318
+ `Run \`gh-axi${repoFlag(c)} release create <tag>\` to create a release`,
319
+ ],
320
+ },
321
+ // Release view
322
+ {
323
+ match: (c) => c.domain === 'release' && c.action === 'view',
324
+ lines: (c) => [
325
+ `Run \`gh-axi${repoFlag(c)} release download ${c.id}\` to download assets`,
326
+ `Run \`gh-axi${repoFlag(c)} release edit ${c.id}\` to edit`,
327
+ ],
328
+ },
329
+ // Release create
330
+ {
331
+ match: (c) => c.domain === 'release' && c.action === 'create',
332
+ lines: (c) => [
333
+ `Run \`gh-axi${repoFlag(c)} release view ${c.id}\` to view the release`,
334
+ `Run \`gh-axi${repoFlag(c)} release upload ${c.id} <files...>\` to upload assets`,
335
+ ],
336
+ },
337
+ // Release edit/delete
338
+ {
339
+ match: (c) => c.domain === 'release' && c.action === 'edit',
340
+ lines: (c) => [
341
+ `Run \`gh-axi${repoFlag(c)} release view ${c.id}\` to see updated release`,
342
+ ],
343
+ },
344
+ {
345
+ match: (c) => c.domain === 'release' && c.action === 'delete',
346
+ lines: (c) => [
347
+ `Run \`gh-axi${repoFlag(c)} release list\` to see remaining releases`,
348
+ ],
349
+ },
350
+ // Release download/upload
351
+ {
352
+ match: (c) => c.domain === 'release' && c.action === 'download',
353
+ lines: () => [],
354
+ },
355
+ {
356
+ match: (c) => c.domain === 'release' && c.action === 'upload',
357
+ lines: (c) => [
358
+ `Run \`gh-axi${repoFlag(c)} release view ${c.id}\` to see all assets`,
359
+ ],
360
+ },
361
+ // Repo view
362
+ {
363
+ match: (c) => c.domain === 'repo' && c.action === 'view',
364
+ lines: (c) => [
365
+ `Run \`gh-axi${repoFlag(c)} issue list\` to see issues`,
366
+ `Run \`gh-axi${repoFlag(c)} pr list\` to see pull requests`,
367
+ ],
368
+ },
369
+ // Repo create
370
+ {
371
+ match: (c) => c.domain === 'repo' && c.action === 'create',
372
+ lines: () => [],
373
+ },
374
+ // Repo list
375
+ {
376
+ match: (c) => c.domain === 'repo' && c.action === 'list',
377
+ lines: () => [
378
+ `Run \`gh-axi repo view -R <owner/name>\` to view a repository`,
379
+ ],
380
+ },
381
+ // Repo edit/clone/fork
382
+ {
383
+ match: (c) => c.domain === 'repo' && ['edit', 'clone', 'fork'].includes(c.action),
384
+ lines: () => [],
385
+ },
386
+ // Label list
387
+ {
388
+ match: (c) => c.domain === 'label' && c.action === 'list',
389
+ lines: (c) => [
390
+ `Run \`gh-axi${repoFlag(c)} label create --name "..." --color "..."\` to create a label`,
391
+ ],
392
+ },
393
+ // Label create/edit/delete
394
+ {
395
+ match: (c) => c.domain === 'label' && c.action === 'create',
396
+ lines: (c) => [
397
+ `Run \`gh-axi${repoFlag(c)} label list\` to see all labels`,
398
+ ],
399
+ },
400
+ {
401
+ match: (c) => c.domain === 'label' && c.action === 'edit',
402
+ lines: (c) => [
403
+ `Run \`gh-axi${repoFlag(c)} label list\` to see all labels`,
404
+ ],
405
+ },
406
+ {
407
+ match: (c) => c.domain === 'label' && c.action === 'delete',
408
+ lines: (c) => [
409
+ `Run \`gh-axi${repoFlag(c)} label list\` to see remaining labels`,
410
+ ],
411
+ },
412
+ // Search
413
+ {
414
+ match: (c) => c.domain === 'search',
415
+ lines: () => [],
416
+ },
417
+ // API
418
+ {
419
+ match: (c) => c.domain === 'api',
420
+ lines: () => [],
421
+ },
422
+ ];
423
+ export function getSuggestions(ctx) {
424
+ for (const entry of table) {
425
+ if (entry.match(ctx)) {
426
+ return entry.lines(ctx);
427
+ }
428
+ }
429
+ return [];
430
+ }
431
+ //# sourceMappingURL=suggestions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suggestions.js","sourceRoot":"","sources":["../../src/suggestions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Field extractor definitions for transforming gh JSON into flat TOON-friendly objects.
3
+ */
4
+ export type FieldDef = {
5
+ type: 'field';
6
+ key: string;
7
+ as?: string;
8
+ } | {
9
+ type: 'pluck';
10
+ key: string;
11
+ subkey: string;
12
+ as?: string;
13
+ } | {
14
+ type: 'joinArray';
15
+ key: string;
16
+ subkey: string;
17
+ as?: string;
18
+ empty?: string;
19
+ } | {
20
+ type: 'relativeTime';
21
+ key: string;
22
+ as?: string;
23
+ } | {
24
+ type: 'boolYesNo';
25
+ key: string;
26
+ as?: string;
27
+ } | {
28
+ type: 'mapEnum';
29
+ key: string;
30
+ map: Record<string, string>;
31
+ fallback?: string;
32
+ as?: string;
33
+ } | {
34
+ type: 'lower';
35
+ key: string;
36
+ as?: string;
37
+ } | {
38
+ type: 'checksSummary';
39
+ key: string;
40
+ as?: string;
41
+ } | {
42
+ type: 'custom';
43
+ as: string;
44
+ fn: (item: any) => any;
45
+ };
46
+ export declare function field(key: string, as?: string): FieldDef;
47
+ export declare function pluck(key: string, subkey: string, as?: string): FieldDef;
48
+ export declare function joinArray(key: string, subkey: string, as?: string, empty?: string): FieldDef;
49
+ export declare function relativeTime(key: string, as?: string): FieldDef;
50
+ export declare function boolYesNo(key: string, as?: string): FieldDef;
51
+ export declare function mapEnum(key: string, map: Record<string, string>, fallback?: string, as?: string): FieldDef;
52
+ export declare function lower(key: string, as?: string): FieldDef;
53
+ export declare function checksSummary(key: string, as?: string): FieldDef;
54
+ export declare function custom(as: string, fn: (item: any) => any): FieldDef;
55
+ export declare function extract(item: Record<string, any>, schema: FieldDef[]): Record<string, unknown>;
56
+ /** Render a labeled list of items as TOON. */
57
+ export declare function renderList(label: string, items: Record<string, any>[], schema: FieldDef[]): string;
58
+ /** Render a single labeled detail object as TOON. */
59
+ export declare function renderDetail(label: string, item: Record<string, any>, schema: FieldDef[]): string;
60
+ /** Render help suggestions (manual formatting — encode() inlines primitive arrays). */
61
+ export declare function renderHelp(lines: string[]): string;
62
+ /** Render an error in TOON format. */
63
+ export declare function renderError(message: string, code: string, suggestions?: string[]): string;
64
+ /** Combine multiple TOON blocks into a single output string. */
65
+ export declare function renderOutput(blocks: string[]): string;