@github-tools/sdk 1.1.0 → 1.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.
@@ -0,0 +1,692 @@
1
+ import { ApprovalConfig, GithubToolPreset } from "./index.mjs";
2
+ import * as ai from "ai";
3
+ import { ToolLoopAgent, ToolLoopAgentSettings } from "ai";
4
+ import { Octokit, Octokit as Octokit$1 } from "octokit";
5
+
6
+ //#region src/client.d.ts
7
+ declare function createOctokit(token: string): Octokit;
8
+ //#endregion
9
+ //#region src/types.d.ts
10
+ type ToolOptions = {
11
+ needsApproval?: boolean;
12
+ };
13
+ //#endregion
14
+ //#region src/tools/repository.d.ts
15
+ declare const getRepository: (token: string) => ai.Tool<{
16
+ owner: string;
17
+ repo: string;
18
+ }, {
19
+ name: string;
20
+ fullName: string;
21
+ description: string | null;
22
+ url: string;
23
+ defaultBranch: string;
24
+ stars: number;
25
+ forks: number;
26
+ openIssues: number;
27
+ language: string | null;
28
+ private: boolean;
29
+ createdAt: string;
30
+ updatedAt: string;
31
+ }>;
32
+ declare const listBranches: (token: string) => ai.Tool<{
33
+ owner: string;
34
+ repo: string;
35
+ perPage: number;
36
+ }, {
37
+ name: string;
38
+ sha: string;
39
+ protected: boolean;
40
+ }[]>;
41
+ declare const getFileContent: (token: string) => ai.Tool<{
42
+ owner: string;
43
+ repo: string;
44
+ path: string;
45
+ ref?: string | undefined;
46
+ }, {
47
+ type: string;
48
+ entries: {
49
+ name: string;
50
+ type: "file" | "dir" | "submodule" | "symlink";
51
+ path: string;
52
+ }[];
53
+ path?: undefined;
54
+ sha?: undefined;
55
+ size?: undefined;
56
+ content?: undefined;
57
+ } | {
58
+ type: "submodule" | "symlink";
59
+ path: string;
60
+ entries?: undefined;
61
+ sha?: undefined;
62
+ size?: undefined;
63
+ content?: undefined;
64
+ } | {
65
+ type: string;
66
+ path: string;
67
+ sha: string;
68
+ size: number;
69
+ content: string;
70
+ entries?: undefined;
71
+ }>;
72
+ declare const createBranch: (token: string, {
73
+ needsApproval
74
+ }?: ToolOptions) => ai.Tool<{
75
+ owner: string;
76
+ repo: string;
77
+ branch: string;
78
+ from?: string | undefined;
79
+ }, {
80
+ ref: string;
81
+ sha: string;
82
+ url: string;
83
+ }>;
84
+ declare const forkRepository: (token: string, {
85
+ needsApproval
86
+ }?: ToolOptions) => ai.Tool<{
87
+ owner: string;
88
+ repo: string;
89
+ organization?: string | undefined;
90
+ name?: string | undefined;
91
+ }, {
92
+ name: string;
93
+ fullName: string;
94
+ url: string;
95
+ cloneUrl: string;
96
+ sshUrl: string;
97
+ defaultBranch: string;
98
+ private: boolean;
99
+ parent: {
100
+ fullName: string;
101
+ url: string;
102
+ } | null;
103
+ }>;
104
+ declare const createRepository: (token: string, {
105
+ needsApproval
106
+ }?: ToolOptions) => ai.Tool<{
107
+ name: string;
108
+ isPrivate: boolean;
109
+ autoInit: boolean;
110
+ description?: string | undefined;
111
+ gitignoreTemplate?: string | undefined;
112
+ licenseTemplate?: string | undefined;
113
+ org?: string | undefined;
114
+ }, {
115
+ name: string;
116
+ fullName: string;
117
+ description: string | null;
118
+ url: string;
119
+ cloneUrl: string;
120
+ sshUrl: string;
121
+ defaultBranch: string;
122
+ private: boolean;
123
+ createdAt: string;
124
+ }>;
125
+ declare const createOrUpdateFile: (token: string, {
126
+ needsApproval
127
+ }?: ToolOptions) => ai.Tool<{
128
+ owner: string;
129
+ repo: string;
130
+ path: string;
131
+ message: string;
132
+ content: string;
133
+ branch?: string | undefined;
134
+ sha?: string | undefined;
135
+ }, {
136
+ path: string | undefined;
137
+ sha: string | undefined;
138
+ commitSha: string | undefined;
139
+ commitUrl: string | undefined;
140
+ }>;
141
+ //#endregion
142
+ //#region src/tools/pull-requests.d.ts
143
+ declare const listPullRequests: (token: string) => ai.Tool<{
144
+ owner: string;
145
+ repo: string;
146
+ state: "open" | "closed" | "all";
147
+ perPage: number;
148
+ }, {
149
+ number: number;
150
+ title: string;
151
+ state: string;
152
+ url: string;
153
+ author: string | undefined;
154
+ branch: string;
155
+ base: string;
156
+ draft: boolean | undefined;
157
+ createdAt: string;
158
+ updatedAt: string;
159
+ }[]>;
160
+ declare const getPullRequest: (token: string) => ai.Tool<{
161
+ owner: string;
162
+ repo: string;
163
+ pullNumber: number;
164
+ }, {
165
+ number: number;
166
+ title: string;
167
+ body: string | null;
168
+ state: "open" | "closed";
169
+ url: string;
170
+ author: string;
171
+ branch: string;
172
+ base: string;
173
+ draft: boolean | undefined;
174
+ merged: boolean;
175
+ mergeable: boolean | null;
176
+ additions: number;
177
+ deletions: number;
178
+ changedFiles: number;
179
+ createdAt: string;
180
+ updatedAt: string;
181
+ mergedAt: string | null;
182
+ }>;
183
+ declare const createPullRequest: (token: string, {
184
+ needsApproval
185
+ }?: ToolOptions) => ai.Tool<{
186
+ owner: string;
187
+ repo: string;
188
+ title: string;
189
+ head: string;
190
+ base: string;
191
+ draft: boolean;
192
+ body?: string | undefined;
193
+ }, {
194
+ number: number;
195
+ title: string;
196
+ url: string;
197
+ state: "open" | "closed";
198
+ draft: boolean | undefined;
199
+ branch: string;
200
+ base: string;
201
+ }>;
202
+ declare const mergePullRequest: (token: string, {
203
+ needsApproval
204
+ }?: ToolOptions) => ai.Tool<{
205
+ owner: string;
206
+ repo: string;
207
+ pullNumber: number;
208
+ mergeMethod: "merge" | "squash" | "rebase";
209
+ commitTitle?: string | undefined;
210
+ commitMessage?: string | undefined;
211
+ }, {
212
+ merged: boolean;
213
+ message: string;
214
+ sha: string;
215
+ }>;
216
+ declare const addPullRequestComment: (token: string, {
217
+ needsApproval
218
+ }?: ToolOptions) => ai.Tool<{
219
+ owner: string;
220
+ repo: string;
221
+ pullNumber: number;
222
+ body: string;
223
+ }, {
224
+ id: number;
225
+ url: string;
226
+ body: string | undefined;
227
+ author: string | undefined;
228
+ createdAt: string;
229
+ }>;
230
+ //#endregion
231
+ //#region src/tools/issues.d.ts
232
+ declare const listIssues: (token: string) => ai.Tool<{
233
+ owner: string;
234
+ repo: string;
235
+ state: "open" | "closed" | "all";
236
+ perPage: number;
237
+ labels?: string | undefined;
238
+ }, {
239
+ number: number;
240
+ title: string;
241
+ state: string;
242
+ url: string;
243
+ author: string | undefined;
244
+ labels: (string | undefined)[];
245
+ createdAt: string;
246
+ updatedAt: string;
247
+ }[]>;
248
+ declare const getIssue: (token: string) => ai.Tool<{
249
+ owner: string;
250
+ repo: string;
251
+ issueNumber: number;
252
+ }, {
253
+ number: number;
254
+ title: string;
255
+ body: string | null | undefined;
256
+ state: string;
257
+ url: string;
258
+ author: string | undefined;
259
+ assignees: string[] | undefined;
260
+ labels: (string | undefined)[];
261
+ comments: number;
262
+ createdAt: string;
263
+ updatedAt: string;
264
+ closedAt: string | null;
265
+ }>;
266
+ declare const createIssue: (token: string, {
267
+ needsApproval
268
+ }?: ToolOptions) => ai.Tool<{
269
+ owner: string;
270
+ repo: string;
271
+ title: string;
272
+ body?: string | undefined;
273
+ labels?: string[] | undefined;
274
+ assignees?: string[] | undefined;
275
+ }, {
276
+ number: number;
277
+ title: string;
278
+ url: string;
279
+ state: string;
280
+ labels: (string | undefined)[];
281
+ }>;
282
+ declare const addIssueComment: (token: string, {
283
+ needsApproval
284
+ }?: ToolOptions) => ai.Tool<{
285
+ owner: string;
286
+ repo: string;
287
+ issueNumber: number;
288
+ body: string;
289
+ }, {
290
+ id: number;
291
+ url: string;
292
+ body: string | undefined;
293
+ author: string | undefined;
294
+ createdAt: string;
295
+ }>;
296
+ declare const closeIssue: (token: string, {
297
+ needsApproval
298
+ }?: ToolOptions) => ai.Tool<{
299
+ owner: string;
300
+ repo: string;
301
+ issueNumber: number;
302
+ stateReason: "completed" | "not_planned";
303
+ }, {
304
+ number: number;
305
+ title: string;
306
+ state: string;
307
+ url: string;
308
+ closedAt: string | null;
309
+ }>;
310
+ //#endregion
311
+ //#region src/tools/search.d.ts
312
+ declare const searchCode: (token: string) => ai.Tool<{
313
+ query: string;
314
+ perPage: number;
315
+ }, {
316
+ totalCount: number;
317
+ items: {
318
+ name: string;
319
+ path: string;
320
+ url: string;
321
+ repository: string;
322
+ sha: string;
323
+ }[];
324
+ }>;
325
+ declare const searchRepositories: (token: string) => ai.Tool<{
326
+ query: string;
327
+ perPage: number;
328
+ order: "asc" | "desc";
329
+ sort?: "stars" | "forks" | "help-wanted-issues" | "updated" | undefined;
330
+ }, {
331
+ totalCount: number;
332
+ items: {
333
+ name: string;
334
+ fullName: string;
335
+ description: string | null;
336
+ url: string;
337
+ stars: number;
338
+ forks: number;
339
+ language: string | null;
340
+ topics: string[] | undefined;
341
+ }[];
342
+ }>;
343
+ //#endregion
344
+ //#region src/tools/commits.d.ts
345
+ declare const listCommits: (token: string) => ai.Tool<{
346
+ owner: string;
347
+ repo: string;
348
+ perPage: number;
349
+ path?: string | undefined;
350
+ sha?: string | undefined;
351
+ author?: string | undefined;
352
+ since?: string | undefined;
353
+ until?: string | undefined;
354
+ }, {
355
+ sha: string;
356
+ message: string;
357
+ author: string | undefined;
358
+ authorLogin: string | undefined;
359
+ date: string | undefined;
360
+ url: string;
361
+ }[]>;
362
+ declare const getCommit: (token: string) => ai.Tool<{
363
+ owner: string;
364
+ repo: string;
365
+ ref: string;
366
+ }, {
367
+ sha: string;
368
+ message: string;
369
+ author: string | undefined;
370
+ authorLogin: string | undefined;
371
+ date: string | undefined;
372
+ url: string;
373
+ stats: {
374
+ additions: number | undefined;
375
+ deletions: number | undefined;
376
+ total: number | undefined;
377
+ } | null;
378
+ files: {
379
+ filename: string;
380
+ status: "added" | "removed" | "modified" | "renamed" | "copied" | "changed" | "unchanged";
381
+ additions: number;
382
+ deletions: number;
383
+ patch: string | undefined;
384
+ }[] | undefined;
385
+ }>;
386
+ declare const getBlame: (token: string) => ai.Tool<{
387
+ owner: string;
388
+ repo: string;
389
+ path: string;
390
+ ref?: string | undefined;
391
+ line?: number | undefined;
392
+ lineStart?: number | undefined;
393
+ lineEnd?: number | undefined;
394
+ }, {
395
+ error: string;
396
+ ref?: undefined;
397
+ tipSha?: undefined;
398
+ path?: undefined;
399
+ rangeCount?: undefined;
400
+ ranges?: undefined;
401
+ } | {
402
+ ref: string;
403
+ tipSha: string;
404
+ path: string;
405
+ rangeCount: number;
406
+ ranges: {
407
+ startingLine: number;
408
+ endingLine: number;
409
+ age: number;
410
+ commit: {
411
+ sha: string;
412
+ abbreviatedSha: string;
413
+ messageHeadline: string;
414
+ authoredDate: string;
415
+ url: string;
416
+ authorName: string | null;
417
+ authorEmail: string | null;
418
+ authorLogin: string | null;
419
+ };
420
+ }[];
421
+ error?: undefined;
422
+ }>;
423
+ //#endregion
424
+ //#region src/tools/gists.d.ts
425
+ declare const listGists: (token: string) => ai.Tool<{
426
+ perPage: number;
427
+ page: number;
428
+ username?: string | undefined;
429
+ }, {
430
+ id: string;
431
+ description: string | null;
432
+ public: boolean;
433
+ url: string;
434
+ files: string[];
435
+ owner: string | undefined;
436
+ comments: number;
437
+ createdAt: string;
438
+ updatedAt: string;
439
+ }[]>;
440
+ declare const getGist: (token: string) => ai.Tool<{
441
+ gistId: string;
442
+ }, {
443
+ id: string | undefined;
444
+ description: string | null | undefined;
445
+ public: boolean | undefined;
446
+ url: string | undefined;
447
+ owner: string | undefined;
448
+ files: {
449
+ filename: string | undefined;
450
+ language: string | undefined;
451
+ size: number | undefined;
452
+ content: string | undefined;
453
+ }[];
454
+ comments: number | undefined;
455
+ createdAt: string | undefined;
456
+ updatedAt: string | undefined;
457
+ }>;
458
+ declare const listGistComments: (token: string) => ai.Tool<{
459
+ gistId: string;
460
+ perPage: number;
461
+ page: number;
462
+ }, {
463
+ id: number;
464
+ body: string;
465
+ author: string | undefined;
466
+ url: string;
467
+ createdAt: string;
468
+ updatedAt: string;
469
+ }[]>;
470
+ declare const createGist: (token: string, {
471
+ needsApproval
472
+ }?: ToolOptions) => ai.Tool<{
473
+ files: Record<string, {
474
+ content: string;
475
+ }>;
476
+ isPublic: boolean;
477
+ description?: string | undefined;
478
+ }, {
479
+ id: string | undefined;
480
+ description: string | null | undefined;
481
+ public: boolean | undefined;
482
+ url: string | undefined;
483
+ files: string[];
484
+ owner: string | undefined;
485
+ }>;
486
+ declare const updateGist: (token: string, {
487
+ needsApproval
488
+ }?: ToolOptions) => ai.Tool<{
489
+ gistId: string;
490
+ description?: string | undefined;
491
+ files?: Record<string, {
492
+ content: string;
493
+ }> | undefined;
494
+ filesToDelete?: string[] | undefined;
495
+ }, {
496
+ id: string | undefined;
497
+ description: string | null | undefined;
498
+ url: string | undefined;
499
+ files: string[];
500
+ }>;
501
+ declare const deleteGist: (token: string, {
502
+ needsApproval
503
+ }?: ToolOptions) => ai.Tool<{
504
+ gistId: string;
505
+ }, {
506
+ deleted: boolean;
507
+ gistId: string;
508
+ }>;
509
+ declare const createGistComment: (token: string, {
510
+ needsApproval
511
+ }?: ToolOptions) => ai.Tool<{
512
+ gistId: string;
513
+ body: string;
514
+ }, {
515
+ id: number;
516
+ url: string;
517
+ body: string;
518
+ author: string | undefined;
519
+ createdAt: string;
520
+ }>;
521
+ //#endregion
522
+ //#region src/tools/workflows.d.ts
523
+ declare const listWorkflows: (token: string) => ai.Tool<{
524
+ owner: string;
525
+ repo: string;
526
+ perPage: number;
527
+ page: number;
528
+ }, {
529
+ totalCount: number;
530
+ workflows: {
531
+ id: number;
532
+ name: string;
533
+ path: string;
534
+ state: "active" | "deleted" | "disabled_fork" | "disabled_inactivity" | "disabled_manually";
535
+ url: string;
536
+ createdAt: string;
537
+ updatedAt: string;
538
+ }[];
539
+ }>;
540
+ declare const listWorkflowRuns: (token: string) => ai.Tool<{
541
+ owner: string;
542
+ repo: string;
543
+ perPage: number;
544
+ page: number;
545
+ workflowId?: string | number | undefined;
546
+ branch?: string | undefined;
547
+ event?: string | undefined;
548
+ status?: "success" | "completed" | "action_required" | "cancelled" | "failure" | "neutral" | "skipped" | "stale" | "timed_out" | "in_progress" | "queued" | "requested" | "waiting" | "pending" | undefined;
549
+ }, {
550
+ totalCount: number;
551
+ runs: {
552
+ id: number;
553
+ name: string | null | undefined;
554
+ status: string | null;
555
+ conclusion: string | null;
556
+ branch: string | null;
557
+ event: string;
558
+ url: string;
559
+ actor: string | undefined;
560
+ createdAt: string;
561
+ updatedAt: string;
562
+ runNumber: number;
563
+ runAttempt: number | undefined;
564
+ }[];
565
+ }>;
566
+ declare const getWorkflowRun: (token: string) => ai.Tool<{
567
+ owner: string;
568
+ repo: string;
569
+ runId: number;
570
+ }, {
571
+ id: number;
572
+ name: string | null | undefined;
573
+ status: string | null;
574
+ conclusion: string | null;
575
+ branch: string | null;
576
+ sha: string;
577
+ event: string;
578
+ url: string;
579
+ actor: string | undefined;
580
+ runNumber: number;
581
+ runAttempt: number | undefined;
582
+ createdAt: string;
583
+ updatedAt: string;
584
+ runStartedAt: string | undefined;
585
+ }>;
586
+ declare const listWorkflowJobs: (token: string) => ai.Tool<{
587
+ owner: string;
588
+ repo: string;
589
+ runId: number;
590
+ filter: "all" | "latest";
591
+ perPage: number;
592
+ page: number;
593
+ }, {
594
+ totalCount: number;
595
+ jobs: {
596
+ id: number;
597
+ name: string;
598
+ status: "completed" | "in_progress" | "queued" | "requested" | "waiting" | "pending";
599
+ conclusion: "success" | "action_required" | "cancelled" | "failure" | "neutral" | "skipped" | "timed_out" | null;
600
+ url: string | null;
601
+ startedAt: string;
602
+ completedAt: string | null;
603
+ runnerName: string | null;
604
+ steps: {
605
+ name: string;
606
+ status: "completed" | "in_progress" | "queued";
607
+ conclusion: string | null;
608
+ number: number;
609
+ startedAt: string | null | undefined;
610
+ completedAt: string | null | undefined;
611
+ }[] | undefined;
612
+ }[];
613
+ }>;
614
+ declare const triggerWorkflow: (token: string, {
615
+ needsApproval
616
+ }?: ToolOptions) => ai.Tool<{
617
+ owner: string;
618
+ repo: string;
619
+ workflowId: string | number;
620
+ ref: string;
621
+ inputs?: Record<string, string> | undefined;
622
+ }, {
623
+ triggered: boolean;
624
+ workflowId: string | number;
625
+ ref: string;
626
+ }>;
627
+ declare const cancelWorkflowRun: (token: string, {
628
+ needsApproval
629
+ }?: ToolOptions) => ai.Tool<{
630
+ owner: string;
631
+ repo: string;
632
+ runId: number;
633
+ }, {
634
+ cancelled: boolean;
635
+ runId: number;
636
+ }>;
637
+ declare const rerunWorkflowRun: (token: string, {
638
+ needsApproval
639
+ }?: ToolOptions) => ai.Tool<{
640
+ owner: string;
641
+ repo: string;
642
+ runId: number;
643
+ onlyFailedJobs: boolean;
644
+ }, {
645
+ rerun: boolean;
646
+ runId: number;
647
+ onlyFailedJobs: boolean;
648
+ }>;
649
+ //#endregion
650
+ //#region src/agents.d.ts
651
+ type AgentOptions = Omit<ToolLoopAgentSettings, 'model' | 'tools' | 'instructions'>;
652
+ type CreateGithubAgentOptions = AgentOptions & {
653
+ model: ToolLoopAgentSettings['model'];
654
+ /**
655
+ * GitHub personal access token.
656
+ * Falls back to `process.env.GITHUB_TOKEN` when omitted.
657
+ */
658
+ token?: string;
659
+ preset?: GithubToolPreset | GithubToolPreset[];
660
+ requireApproval?: ApprovalConfig;
661
+ instructions?: string;
662
+ additionalInstructions?: string;
663
+ };
664
+ /**
665
+ * Create a pre-configured GitHub agent powered by the AI SDK's `ToolLoopAgent`.
666
+ *
667
+ * Returns a `ToolLoopAgent` instance with `.generate()` and `.stream()` methods.
668
+ *
669
+ * @example
670
+ * ```ts
671
+ * import { createGithubAgent } from '@github-tools/sdk'
672
+ *
673
+ * const agent = createGithubAgent({
674
+ * model: 'anthropic/claude-sonnet-4.6',
675
+ * token: process.env.GITHUB_TOKEN!,
676
+ * preset: 'code-review',
677
+ * })
678
+ *
679
+ * const result = await agent.generate({ prompt: 'Review PR #42 on vercel/ai' })
680
+ * ```
681
+ */
682
+ declare function createGithubAgent({
683
+ token,
684
+ preset,
685
+ requireApproval,
686
+ instructions,
687
+ additionalInstructions,
688
+ ...agentOptions
689
+ }: CreateGithubAgentOptions): ToolLoopAgent<never, {}, never>;
690
+ //#endregion
691
+ export { listPullRequests as A, ToolOptions as B, closeIssue as C, addPullRequestComment as D, listIssues as E, forkRepository as F, getFileContent as I, getRepository as L, createBranch as M, createOrUpdateFile as N, createPullRequest as O, createRepository as P, listBranches as R, addIssueComment as S, getIssue as T, createOctokit as V, getBlame as _, listWorkflowJobs as a, searchCode as b, rerunWorkflowRun as c, createGistComment as d, deleteGist as f, updateGist as g, listGists as h, getWorkflowRun as i, mergePullRequest as j, getPullRequest as k, triggerWorkflow as l, listGistComments as m, createGithubAgent as n, listWorkflowRuns as o, getGist as p, cancelWorkflowRun as r, listWorkflows as s, CreateGithubAgentOptions as t, createGist as u, getCommit as v, createIssue as w, searchRepositories as x, listCommits as y, Octokit$1 as z };
692
+ //# sourceMappingURL=agents-CnwdZ0Wk.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents-CnwdZ0Wk.d.mts","names":[],"sources":["../src/client.ts","../src/types.ts","../src/tools/repository.ts","../src/tools/pull-requests.ts","../src/tools/issues.ts","../src/tools/search.ts","../src/tools/commits.ts","../src/tools/gists.ts","../src/tools/workflows.ts","../src/agents.ts"],"mappings":"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"}