@llm4ts/flow 0.3.0 → 0.4.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.
@@ -19,6 +19,32 @@ declare const Issue_base: Schema.Class<Issue, Schema.Struct<{
19
19
  }>, {}>;
20
20
  export declare class Issue extends Issue_base {
21
21
  }
22
+ declare const RepoRef_base: Schema.Class<RepoRef, Schema.Struct<{
23
+ readonly owner: Schema.String;
24
+ readonly repo: Schema.String;
25
+ }>, {}>;
26
+ export declare class RepoRef extends RepoRef_base {
27
+ get slug(): string;
28
+ }
29
+ export declare const IssueState: Schema.Literals<readonly ["open", "closed", "all"]>;
30
+ export type IssueState = typeof IssueState.Type;
31
+ export interface IssueListFilter {
32
+ readonly labels?: ReadonlyArray<string>;
33
+ readonly state?: IssueState;
34
+ readonly assignee?: string;
35
+ readonly limit?: number;
36
+ }
37
+ declare const IssueSummary_base: Schema.Class<IssueSummary, Schema.Struct<{
38
+ readonly number: Schema.Int;
39
+ readonly title: Schema.String;
40
+ readonly body: Schema.String;
41
+ readonly author: Schema.String;
42
+ readonly labels: Schema.$Array<Schema.String>;
43
+ readonly updatedAt: Schema.String;
44
+ }>, {}>;
45
+ export declare class IssueSummary extends IssueSummary_base {
46
+ ref(repo: RepoRef): IssueRef;
47
+ }
22
48
  declare const PullRequest_base: Schema.Class<PullRequest, Schema.Struct<{
23
49
  readonly owner: Schema.String;
24
50
  readonly repo: Schema.String;
@@ -36,9 +62,15 @@ export declare const prCreateArgs: (title: string, body: string, base: string |
36
62
  export declare const issueViewArgs: (ref: IssueRef) => ReadonlyArray<string>;
37
63
  export declare const issueCommentArgs: (ref: IssueRef, body: string) => ReadonlyArray<string>;
38
64
  export declare const prCommentArgs: (pr: PullRequest, body: string) => ReadonlyArray<string>;
65
+ export declare const issueListFields = "number,title,body,author,labels,updatedAt";
66
+ export declare const issueListArgs: (repo: RepoRef, filter: IssueListFilter) => ReadonlyArray<string>;
67
+ export declare const issueEditLabelsArgs: (ref: IssueRef, add: ReadonlyArray<string>, remove: ReadonlyArray<string>) => ReadonlyArray<string>;
68
+ export declare const issueAssignArgs: (ref: IssueRef, login: string) => ReadonlyArray<string>;
69
+ export declare const issueCloseArgs: (ref: IssueRef, comment?: string) => ReadonlyArray<string>;
39
70
  export declare const prPatchArgs: (pr: PullRequest, title: string, body: string) => ReadonlyArray<string>;
40
71
  export declare const prChecksArgs: (pr: PullRequest) => ReadonlyArray<string>;
41
72
  export declare const parseIssue: (json: string) => Effect.Effect<Issue, ProcessError>;
73
+ export declare const parseIssueList: (json: string) => Effect.Effect<ReadonlyArray<IssueSummary>, ProcessError>;
42
74
  export declare const outcomeFromChecksJson: (json: string) => Effect.Effect<BuildOutcome, ProcessError>;
43
75
  export interface GitHubToolShape {
44
76
  readonly createPr: (title: string, body: string, base?: string, draft?: boolean) => Effect.Effect<PullRequest, FlowError>;
@@ -47,6 +79,10 @@ export interface GitHubToolShape {
47
79
  readonly writePrComment: (pr: PullRequest, body: string) => Effect.Effect<void, FlowError>;
48
80
  readonly updatePr: (pr: PullRequest, title: string, body: string) => Effect.Effect<void, FlowError>;
49
81
  readonly prChecks: (pr: PullRequest) => Effect.Effect<BuildOutcome, FlowError>;
82
+ readonly listIssues: (repo: RepoRef, filter?: IssueListFilter) => Effect.Effect<ReadonlyArray<IssueSummary>, FlowError>;
83
+ readonly editIssueLabels: (ref: IssueRef, add: ReadonlyArray<string>, remove: ReadonlyArray<string>) => Effect.Effect<void, FlowError>;
84
+ readonly assignIssue: (ref: IssueRef, login: string) => Effect.Effect<void, FlowError>;
85
+ readonly closeIssue: (ref: IssueRef, comment?: string) => Effect.Effect<void, FlowError>;
50
86
  }
51
87
  export declare const makeGitHubTool: (process: ProcessExecutorShape, workDir: string, events: FlowEventsShape) => GitHubToolShape;
52
88
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"GitHubTool.d.ts","sourceRoot":"","sources":["../src/GitHubTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GitHubTool.d.ts","sourceRoot":"","sources":["../src/GitHubTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAAE,oBAAoB,EAAiB,MAAM,8BAA8B,CAAA;AACvF,OAAO,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;;;;;;AAGtD,qBAAa,QAAS,SAAQ,aAI5B;IACA,IAAI,QAAQ,IAAI,MAAM,CAErB;CACF;AAED,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,QAAQ,GAAG,SAQxD,CAAA;;;;;;AAED,qBAAa,KAAM,SAAQ,UAIzB;CAAG;;;;;AAEL,qBAAa,OAAQ,SAAQ,YAG3B;IACA,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF;AAED,eAAO,MAAM,UAAU,qDAA6C,CAAA;AACpE,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;AAE/C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAA;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;;;;;;;;;AAED,qBAAa,YAAa,SAAQ,iBAOhC;IACA,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ;CAG7B;;;;;;;AAED,qBAAa,WAAY,SAAQ,gBAK/B;IACA,IAAI,QAAQ,IAAI,MAAM,CAErB;CACF;AAED,eAAO,MAAM,YAAY,yEAAiE,CAAA;AAC1F,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;AAEnD,eAAO,MAAM,mBAAmB,GAAI,KAAK,MAAM,KAAG,WAAW,GAAG,SAa/D,CAAA;AAED,eAAO,MAAM,UAAU,UAAkD,CAAA;AAEzE,eAAO,MAAM,YAAY,GACvB,OAAO,MAAM,EACb,MAAM,MAAM,EACZ,MAAM,MAAM,GAAG,SAAS,EACxB,OAAO,OAAO,KACb,aAAa,CAAC,MAAM,CAStB,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,KAAK,QAAQ,KAAG,aAAa,CAAC,MAAM,CAQjE,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,KAAK,QAAQ,EAAE,MAAM,MAAM,KAAG,aAAa,CAAC,MAAM,CAQlF,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,IAAI,WAAW,EAAE,MAAM,MAAM,KAAG,aAAa,CAAC,MAAM,CAQjF,CAAA;AAED,eAAO,MAAM,eAAe,8CAA8C,CAAA;AAE1E,eAAO,MAAM,aAAa,GAAI,MAAM,OAAO,EAAE,QAAQ,eAAe,KAAG,aAAa,CAAC,MAAM,CAa1F,CAAA;AAED,eAAO,MAAM,mBAAmB,GAC9B,KAAK,QAAQ,EACb,KAAK,aAAa,CAAC,MAAM,CAAC,EAC1B,QAAQ,aAAa,CAAC,MAAM,CAAC,KAC5B,aAAa,CAAC,MAAM,CAQtB,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,KAAK,QAAQ,EAAE,OAAO,MAAM,KAAG,aAAa,CAAC,MAAM,CAQlF,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,KAAK,QAAQ,EAAE,UAAU,MAAM,KAAG,aAAa,CAAC,MAAM,CAOpF,CAAA;AAED,eAAO,MAAM,WAAW,GACtB,IAAI,WAAW,EACf,OAAO,MAAM,EACb,MAAM,MAAM,KACX,aAAa,CAAC,MAAM,CAStB,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,IAAI,WAAW,KAAG,aAAa,CAAC,MAAM,CAQlE,CAAA;AAuCD,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAgBxE,CAAA;AAEH,eAAO,MAAM,cAAc,GACzB,MAAM,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,YAAY,CAqBvD,CAAA;AAEH,eAAO,MAAM,qBAAqB,GAAI,MAAM,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,YAAY,CAsB1F,CAAA;AAEH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,CACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,OAAO,KACZ,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAC1C,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IACtE,QAAQ,CAAC,iBAAiB,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAC3F,QAAQ,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAC1F,QAAQ,CAAC,QAAQ,EAAE,CACjB,EAAE,EAAE,WAAW,EACf,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,KACT,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IACnC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;IAC9E,QAAQ,CAAC,UAAU,EAAE,CACnB,IAAI,EAAE,OAAO,EACb,MAAM,CAAC,EAAE,eAAe,KACrB,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,CAAA;IAC1D,QAAQ,CAAC,eAAe,EAAE,CACxB,GAAG,EAAE,QAAQ,EACb,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,EAC1B,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,KAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IACnC,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IACtF,QAAQ,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;CACzF;AAID,eAAO,MAAM,cAAc,GACzB,SAAS,oBAAoB,EAC7B,SAAS,MAAM,EACf,QAAQ,eAAe,KACtB,eAyGF,CAAA"}
@@ -27,6 +27,27 @@ export class Issue extends Schema.Class("Issue")({
27
27
  author: Schema.String
28
28
  }) {
29
29
  }
30
+ export class RepoRef extends Schema.Class("RepoRef")({
31
+ owner: Schema.String,
32
+ repo: Schema.String
33
+ }) {
34
+ get slug() {
35
+ return `${this.owner}/${this.repo}`;
36
+ }
37
+ }
38
+ export const IssueState = Schema.Literals(["open", "closed", "all"]);
39
+ export class IssueSummary extends Schema.Class("IssueSummary")({
40
+ number: Schema.Int,
41
+ title: Schema.String,
42
+ body: Schema.String,
43
+ author: Schema.String,
44
+ labels: Schema.Array(Schema.String),
45
+ updatedAt: Schema.String
46
+ }) {
47
+ ref(repo) {
48
+ return IssueRef.make({ owner: repo.owner, repo: repo.repo, number: this.number });
49
+ }
50
+ }
30
51
  export class PullRequest extends Schema.Class("PullRequest")({
31
52
  owner: Schema.String,
32
53
  repo: Schema.String,
@@ -90,6 +111,47 @@ export const prCommentArgs = (pr, body) => [
90
111
  "--body",
91
112
  body
92
113
  ];
114
+ export const issueListFields = "number,title,body,author,labels,updatedAt";
115
+ export const issueListArgs = (repo, filter) => [
116
+ "issue",
117
+ "list",
118
+ "--repo",
119
+ repo.slug,
120
+ "--state",
121
+ filter.state ?? "open",
122
+ ...(filter.labels ?? []).flatMap((label) => ["--label", label]),
123
+ ...(filter.assignee === undefined ? [] : ["--assignee", filter.assignee]),
124
+ "--limit",
125
+ String(filter.limit ?? 100),
126
+ "--json",
127
+ issueListFields
128
+ ];
129
+ export const issueEditLabelsArgs = (ref, add, remove) => [
130
+ "issue",
131
+ "edit",
132
+ String(ref.number),
133
+ "--repo",
134
+ `${ref.owner}/${ref.repo}`,
135
+ ...add.flatMap((label) => ["--add-label", label]),
136
+ ...remove.flatMap((label) => ["--remove-label", label])
137
+ ];
138
+ export const issueAssignArgs = (ref, login) => [
139
+ "issue",
140
+ "edit",
141
+ String(ref.number),
142
+ "--repo",
143
+ `${ref.owner}/${ref.repo}`,
144
+ "--add-assignee",
145
+ login
146
+ ];
147
+ export const issueCloseArgs = (ref, comment) => [
148
+ "issue",
149
+ "close",
150
+ String(ref.number),
151
+ "--repo",
152
+ `${ref.owner}/${ref.repo}`,
153
+ ...(comment === undefined ? [] : ["--comment", comment])
154
+ ];
93
155
  export const prPatchArgs = (pr, title, body) => [
94
156
  "api",
95
157
  "--method",
@@ -119,6 +181,19 @@ class GhIssue extends Schema.Class("GhIssue")({
119
181
  author: GhAuthor
120
182
  }) {
121
183
  }
184
+ class GhLabel extends Schema.Class("GhLabel")({
185
+ name: Schema.String
186
+ }) {
187
+ }
188
+ class GhIssueSummary extends Schema.Class("GhIssueSummary")({
189
+ number: Schema.Int,
190
+ title: Schema.String,
191
+ body: Schema.String,
192
+ author: GhAuthor,
193
+ labels: Schema.Array(GhLabel).pipe(Schema.withConstructorDefault(Effect.succeed(Object.freeze([])))),
194
+ updatedAt: Schema.String
195
+ }) {
196
+ }
122
197
  class GhCheck extends Schema.Class("GhCheck")({
123
198
  status: Schema.optionalKey(Schema.String),
124
199
  conclusion: Schema.optionalKey(Schema.String),
@@ -137,6 +212,17 @@ export const parseIssue = (json) => Schema.decodeUnknownEffect(Schema.fromJsonSt
137
212
  message: "gh issue view",
138
213
  detail: `invalid issue JSON: ${String(error)}`
139
214
  })));
215
+ export const parseIssueList = (json) => Schema.decodeUnknownEffect(Schema.fromJsonString(Schema.Array(GhIssueSummary)))(json).pipe(Effect.map((issues) => issues.map((issue) => new IssueSummary({
216
+ number: issue.number,
217
+ title: issue.title,
218
+ body: issue.body,
219
+ author: issue.author.login,
220
+ labels: issue.labels.map((label) => label.name),
221
+ updatedAt: issue.updatedAt
222
+ }))), Effect.mapError((error) => ProcessError.make({
223
+ message: "gh issue list",
224
+ detail: `invalid issue list JSON: ${String(error)}`
225
+ })));
140
226
  export const outcomeFromChecksJson = (json) => Schema.decodeUnknownEffect(Schema.fromJsonString(GhChecks))(json).pipe(Effect.map((parsed) => {
141
227
  const pending = parsed.statusCheckRollup.some((check) => (check.status !== undefined && check.status.toUpperCase() !== "COMPLETED") ||
142
228
  ["PENDING", "EXPECTED"].includes(check.state?.toUpperCase() ?? ""));
@@ -185,7 +271,13 @@ export const makeGitHubTool = (process, workDir, events) => {
185
271
  writeIssueComment: (ref, body) => write("gh issue comment", run(issueCommentArgs(ref, body)).pipe(Effect.asVoid)),
186
272
  writePrComment: (pr, body) => write("gh pr comment", run(prCommentArgs(pr, body)).pipe(Effect.asVoid)),
187
273
  updatePr: (pr, title, body) => write("gh pr edit", run(prPatchArgs(pr, title, body)).pipe(Effect.asVoid)),
188
- prChecks: (pr) => read("gh pr checks", run(prChecksArgs(pr)).pipe(Effect.flatMap((result) => outcomeFromChecksJson(output(result)))))
274
+ prChecks: (pr) => read("gh pr checks", run(prChecksArgs(pr)).pipe(Effect.flatMap((result) => outcomeFromChecksJson(output(result))))),
275
+ listIssues: (repo, filter = {}) => read("gh issue list", run(issueListArgs(repo, filter)).pipe(Effect.flatMap((result) => parseIssueList(output(result))))),
276
+ editIssueLabels: (ref, add, remove) => add.length === 0 && remove.length === 0
277
+ ? Effect.void
278
+ : write("gh issue edit", run(issueEditLabelsArgs(ref, add, remove)).pipe(Effect.asVoid)),
279
+ assignIssue: (ref, login) => write("gh issue edit", run(issueAssignArgs(ref, login)).pipe(Effect.asVoid)),
280
+ closeIssue: (ref, comment) => write("gh issue close", run(issueCloseArgs(ref, comment)).pipe(Effect.asVoid))
189
281
  };
190
282
  };
191
283
  //# sourceMappingURL=GitHubTool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GitHubTool.js","sourceRoot":"","sources":["../src/GitHubTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GitHubTool.js","sourceRoot":"","sources":["../src/GitHubTool.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@llm4ts/flow",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Effect-native LLM workflow, persistence, review, and repository automation",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -78,7 +78,7 @@
78
78
  "typescript"
79
79
  ],
80
80
  "dependencies": {
81
- "@llm4ts/core": "0.3.0"
81
+ "@llm4ts/core": "0.4.0"
82
82
  },
83
83
  "peerDependencies": {
84
84
  "effect": "^4.0.0-beta.102"
package/src/GitHubTool.ts CHANGED
@@ -32,6 +32,38 @@ export class Issue extends Schema.Class<Issue>("Issue")({
32
32
  author: Schema.String
33
33
  }) {}
34
34
 
35
+ export class RepoRef extends Schema.Class<RepoRef>("RepoRef")({
36
+ owner: Schema.String,
37
+ repo: Schema.String
38
+ }) {
39
+ get slug(): string {
40
+ return `${this.owner}/${this.repo}`
41
+ }
42
+ }
43
+
44
+ export const IssueState = Schema.Literals(["open", "closed", "all"])
45
+ export type IssueState = typeof IssueState.Type
46
+
47
+ export interface IssueListFilter {
48
+ readonly labels?: ReadonlyArray<string>
49
+ readonly state?: IssueState
50
+ readonly assignee?: string
51
+ readonly limit?: number
52
+ }
53
+
54
+ export class IssueSummary extends Schema.Class<IssueSummary>("IssueSummary")({
55
+ number: Schema.Int,
56
+ title: Schema.String,
57
+ body: Schema.String,
58
+ author: Schema.String,
59
+ labels: Schema.Array(Schema.String),
60
+ updatedAt: Schema.String
61
+ }) {
62
+ ref(repo: RepoRef): IssueRef {
63
+ return IssueRef.make({ owner: repo.owner, repo: repo.repo, number: this.number })
64
+ }
65
+ }
66
+
35
67
  export class PullRequest extends Schema.Class<PullRequest>("PullRequest")({
36
68
  owner: Schema.String,
37
69
  repo: Schema.String,
@@ -109,6 +141,56 @@ export const prCommentArgs = (pr: PullRequest, body: string): ReadonlyArray<stri
109
141
  body
110
142
  ]
111
143
 
144
+ export const issueListFields = "number,title,body,author,labels,updatedAt"
145
+
146
+ export const issueListArgs = (repo: RepoRef, filter: IssueListFilter): ReadonlyArray<string> => [
147
+ "issue",
148
+ "list",
149
+ "--repo",
150
+ repo.slug,
151
+ "--state",
152
+ filter.state ?? "open",
153
+ ...(filter.labels ?? []).flatMap((label) => ["--label", label]),
154
+ ...(filter.assignee === undefined ? [] : ["--assignee", filter.assignee]),
155
+ "--limit",
156
+ String(filter.limit ?? 100),
157
+ "--json",
158
+ issueListFields
159
+ ]
160
+
161
+ export const issueEditLabelsArgs = (
162
+ ref: IssueRef,
163
+ add: ReadonlyArray<string>,
164
+ remove: ReadonlyArray<string>
165
+ ): ReadonlyArray<string> => [
166
+ "issue",
167
+ "edit",
168
+ String(ref.number),
169
+ "--repo",
170
+ `${ref.owner}/${ref.repo}`,
171
+ ...add.flatMap((label) => ["--add-label", label]),
172
+ ...remove.flatMap((label) => ["--remove-label", label])
173
+ ]
174
+
175
+ export const issueAssignArgs = (ref: IssueRef, login: string): ReadonlyArray<string> => [
176
+ "issue",
177
+ "edit",
178
+ String(ref.number),
179
+ "--repo",
180
+ `${ref.owner}/${ref.repo}`,
181
+ "--add-assignee",
182
+ login
183
+ ]
184
+
185
+ export const issueCloseArgs = (ref: IssueRef, comment?: string): ReadonlyArray<string> => [
186
+ "issue",
187
+ "close",
188
+ String(ref.number),
189
+ "--repo",
190
+ `${ref.owner}/${ref.repo}`,
191
+ ...(comment === undefined ? [] : ["--comment", comment])
192
+ ]
193
+
112
194
  export const prPatchArgs = (
113
195
  pr: PullRequest,
114
196
  title: string,
@@ -144,6 +226,21 @@ class GhIssue extends Schema.Class<GhIssue>("GhIssue")({
144
226
  author: GhAuthor
145
227
  }) {}
146
228
 
229
+ class GhLabel extends Schema.Class<GhLabel>("GhLabel")({
230
+ name: Schema.String
231
+ }) {}
232
+
233
+ class GhIssueSummary extends Schema.Class<GhIssueSummary>("GhIssueSummary")({
234
+ number: Schema.Int,
235
+ title: Schema.String,
236
+ body: Schema.String,
237
+ author: GhAuthor,
238
+ labels: Schema.Array(GhLabel).pipe(
239
+ Schema.withConstructorDefault(Effect.succeed(Object.freeze([])))
240
+ ),
241
+ updatedAt: Schema.String
242
+ }) {}
243
+
147
244
  class GhCheck extends Schema.Class<GhCheck>("GhCheck")({
148
245
  status: Schema.optionalKey(Schema.String),
149
246
  conclusion: Schema.optionalKey(Schema.String),
@@ -174,6 +271,31 @@ export const parseIssue = (json: string): Effect.Effect<Issue, ProcessError> =>
174
271
  )
175
272
  )
176
273
 
274
+ export const parseIssueList = (
275
+ json: string
276
+ ): Effect.Effect<ReadonlyArray<IssueSummary>, ProcessError> =>
277
+ Schema.decodeUnknownEffect(Schema.fromJsonString(Schema.Array(GhIssueSummary)))(json).pipe(
278
+ Effect.map((issues) =>
279
+ issues.map(
280
+ (issue) =>
281
+ new IssueSummary({
282
+ number: issue.number,
283
+ title: issue.title,
284
+ body: issue.body,
285
+ author: issue.author.login,
286
+ labels: issue.labels.map((label) => label.name),
287
+ updatedAt: issue.updatedAt
288
+ })
289
+ )
290
+ ),
291
+ Effect.mapError((error) =>
292
+ ProcessError.make({
293
+ message: "gh issue list",
294
+ detail: `invalid issue list JSON: ${String(error)}`
295
+ })
296
+ )
297
+ )
298
+
177
299
  export const outcomeFromChecksJson = (json: string): Effect.Effect<BuildOutcome, ProcessError> =>
178
300
  Schema.decodeUnknownEffect(Schema.fromJsonString(GhChecks))(json).pipe(
179
301
  Effect.map((parsed) => {
@@ -214,6 +336,17 @@ export interface GitHubToolShape {
214
336
  body: string
215
337
  ) => Effect.Effect<void, FlowError>
216
338
  readonly prChecks: (pr: PullRequest) => Effect.Effect<BuildOutcome, FlowError>
339
+ readonly listIssues: (
340
+ repo: RepoRef,
341
+ filter?: IssueListFilter
342
+ ) => Effect.Effect<ReadonlyArray<IssueSummary>, FlowError>
343
+ readonly editIssueLabels: (
344
+ ref: IssueRef,
345
+ add: ReadonlyArray<string>,
346
+ remove: ReadonlyArray<string>
347
+ ) => Effect.Effect<void, FlowError>
348
+ readonly assignIssue: (ref: IssueRef, login: string) => Effect.Effect<void, FlowError>
349
+ readonly closeIssue: (ref: IssueRef, comment?: string) => Effect.Effect<void, FlowError>
217
350
  }
218
351
 
219
352
  const output = (result: ProcessResult): string => result.stdout.join("\n").trim()
@@ -310,6 +443,21 @@ export const makeGitHubTool = (
310
443
  run(prChecksArgs(pr)).pipe(
311
444
  Effect.flatMap((result) => outcomeFromChecksJson(output(result)))
312
445
  )
313
- )
446
+ ),
447
+ listIssues: (repo, filter = {}) =>
448
+ read(
449
+ "gh issue list",
450
+ run(issueListArgs(repo, filter)).pipe(
451
+ Effect.flatMap((result) => parseIssueList(output(result)))
452
+ )
453
+ ),
454
+ editIssueLabels: (ref, add, remove) =>
455
+ add.length === 0 && remove.length === 0
456
+ ? Effect.void
457
+ : write("gh issue edit", run(issueEditLabelsArgs(ref, add, remove)).pipe(Effect.asVoid)),
458
+ assignIssue: (ref, login) =>
459
+ write("gh issue edit", run(issueAssignArgs(ref, login)).pipe(Effect.asVoid)),
460
+ closeIssue: (ref, comment) =>
461
+ write("gh issue close", run(issueCloseArgs(ref, comment)).pipe(Effect.asVoid))
314
462
  }
315
463
  }