@llm4ts/flow 0.10.1 → 0.12.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.
@@ -1,15 +1,22 @@
1
- import * as Duration from "effect/Duration";
2
1
  import * as Effect from "effect/Effect";
3
- import * as Redacted from "effect/Redacted";
4
2
  import * as Schema from "effect/Schema";
5
3
  import { Capabilities } from "@llm4ts/core/Capability";
6
4
  import { ProcessError } from "./FlowError.js";
7
5
  import { guarded } from "./CapabilityGuard.js";
8
- export class AdoRequest extends Schema.Class("AdoRequest")({
9
- method: Schema.String,
10
- url: Schema.String,
11
- body: Schema.optionalKey(Schema.String),
12
- contentType: Schema.String.pipe(Schema.withConstructorDefault(Effect.succeed("application/json")))
6
+ // Azure DevOps through the `az` CLI (ADR 0011), the sibling of GitHubTool's
7
+ // `gh` protocol: pure args builders, schema-decoded `--output json`, and
8
+ // capability guards around a ProcessExecutor. Credentials belong to the CLI
9
+ // (`az devops login`, or AZURE_DEVOPS_EXT_PAT in the process environment)
10
+ // this module never reads, holds, or forwards a PAT, so no secret can reach
11
+ // argv, a log line, or a persisted plan.
12
+ export class AdoConfig extends Schema.Class("AdoConfig")({
13
+ orgUrl: Schema.String,
14
+ project: Schema.String,
15
+ repository: Schema.String,
16
+ // Only `az devops invoke` (the comments REST resource, which has no
17
+ // first-class `az boards` verb) needs an explicit API version; every
18
+ // other call is a versioned CLI command.
19
+ apiVersion: Schema.String.pipe(Schema.withConstructorDefault(Effect.succeed("7.1-preview")))
13
20
  }) {
14
21
  }
15
22
  export class WorkItem extends Schema.Class("WorkItem")({
@@ -18,7 +25,16 @@ export class WorkItem extends Schema.Class("WorkItem")({
18
25
  description: Schema.String,
19
26
  acceptanceCriteria: Schema.String,
20
27
  state: Schema.String,
21
- tags: Schema.Array(Schema.String)
28
+ tags: Schema.Array(Schema.String),
29
+ createdBy: Schema.String,
30
+ changedDate: Schema.String
31
+ }) {
32
+ }
33
+ export class WorkItemComment extends Schema.Class("WorkItemComment")({
34
+ id: Schema.Int,
35
+ author: Schema.String,
36
+ text: Schema.String,
37
+ createdDate: Schema.String
22
38
  }) {
23
39
  }
24
40
  export class AdoPullRequest extends Schema.Class("AdoPullRequest")({
@@ -28,136 +44,372 @@ export class AdoPullRequest extends Schema.Class("AdoPullRequest")({
28
44
  webUrl: Schema.String
29
45
  }) {
30
46
  }
31
- export class AdoConfig extends Schema.Class("AdoConfig")({
32
- orgUrl: Schema.String,
33
- project: Schema.String,
34
- repository: Schema.String,
35
- pat: Schema.Redacted(Schema.String, {
36
- disallowJsonEncode: true
37
- }),
38
- apiVersion: Schema.String.pipe(Schema.withConstructorDefault(Effect.succeed("7.1")))
39
- }) {
40
- }
41
- const encodeBase64 = (value) => {
42
- const alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
43
- const bytes = new TextEncoder().encode(value);
44
- let encoded = "";
45
- for (let index = 0; index < bytes.length; index += 3) {
46
- const first = bytes[index] ?? 0;
47
- const second = bytes[index + 1];
48
- const third = bytes[index + 2];
49
- const bits = (first << 16) | ((second ?? 0) << 8) | (third ?? 0);
50
- encoded += alphabet[(bits >>> 18) & 63] ?? "";
51
- encoded += alphabet[(bits >>> 12) & 63] ?? "";
52
- encoded += second === undefined ? "=" : (alphabet[(bits >>> 6) & 63] ?? "");
53
- encoded += third === undefined ? "=" : (alphabet[bits & 63] ?? "");
54
- }
55
- return encoded;
47
+ // Azure DevOps branch policies are the analogue of GitHub's check rollup.
48
+ // There is no policy status for a timed-out run, so the outcome set is the
49
+ // GitHub one minus "TimedOut".
50
+ export const PolicyOutcome = Schema.Literals(["Success", "Failure", "Pending"]);
51
+ export const WorkItemState = Schema.Literals(["open", "closed", "all"]);
52
+ // `refs/heads/x` and `x` both name a branch across the Azure DevOps
53
+ // surface; the CLI wants the short form, so every ref is normalized once
54
+ // on the way into argv.
55
+ export const branchName = (ref) => ref.trim().replace(/^refs\/heads\//, "");
56
+ const org = (config) => [
57
+ "--org",
58
+ config.orgUrl,
59
+ // Without this the CLI probes the working directory's git remote and
60
+ // silently retargets another organization; a library must not guess.
61
+ "--detect",
62
+ "false"
63
+ ];
64
+ const json = ["--output", "json"];
65
+ // ---------------------------------------------------------------------------
66
+ // Work item argv
67
+ // ---------------------------------------------------------------------------
68
+ export const workItemShowArgs = (config, id) => [
69
+ "boards",
70
+ "work-item",
71
+ "show",
72
+ "--id",
73
+ String(id),
74
+ ...org(config),
75
+ ...json
76
+ ];
77
+ export const fieldArgs = (fields) => {
78
+ const pairs = Object.entries(fields).map(([name, value]) => `${name}=${value}`);
79
+ return pairs.length === 0 ? [] : ["--fields", ...pairs];
56
80
  };
57
- export const authorizationHeader = (config) => ({
58
- Authorization: `Basic ${encodeBase64(`:${Redacted.value(config.pat)}`)}`
59
- });
60
- const witBase = (config) => `${config.orgUrl}/${config.project}/_apis/wit`;
61
- const gitBase = (config) => `${config.orgUrl}/${config.project}/_apis/git/repositories/${config.repository}`;
62
- const patchOperations = (fields) => Object.entries(fields).map(([name, value]) => ({
63
- op: "add",
64
- path: `/fields/${name}`,
65
- value
66
- }));
67
- export const readWorkItemRequest = (config, id) => AdoRequest.make({
68
- method: "GET",
69
- url: `${witBase(config)}/workitems/${id}?$expand=relations&api-version=${config.apiVersion}`
81
+ export const workItemUpdateArgs = (config, id, fields) => [
82
+ "boards",
83
+ "work-item",
84
+ "update",
85
+ "--id",
86
+ String(id),
87
+ ...fieldArgs(fields),
88
+ ...org(config),
89
+ ...json
90
+ ];
91
+ export const workItemCommentArgs = (config, id, text) => [
92
+ "boards",
93
+ "work-item",
94
+ "update",
95
+ "--id",
96
+ String(id),
97
+ "--discussion",
98
+ text,
99
+ ...org(config),
100
+ ...json
101
+ ];
102
+ export const workItemCreateArgs = (config, workItemType, title, description, tags) => [
103
+ "boards",
104
+ "work-item",
105
+ "create",
106
+ "--title",
107
+ title,
108
+ "--type",
109
+ workItemType,
110
+ "--description",
111
+ description,
112
+ "--project",
113
+ config.project,
114
+ ...fieldArgs(tags.length === 0 ? {} : { "System.Tags": tags.join("; ") }),
115
+ ...org(config),
116
+ ...json
117
+ ];
118
+ export const commentsArgs = (config, id) => [
119
+ "devops",
120
+ "invoke",
121
+ "--area",
122
+ "wit",
123
+ "--resource",
124
+ "comments",
125
+ "--route-parameters",
126
+ `project=${config.project}`,
127
+ `workItemId=${String(id)}`,
128
+ "--api-version",
129
+ config.apiVersion,
130
+ ...org(config),
131
+ ...json
132
+ ];
133
+ // ---------------------------------------------------------------------------
134
+ // WIQL
135
+ // ---------------------------------------------------------------------------
136
+ // WIQL string literals are single-quoted; a quote inside a value is escaped
137
+ // by doubling it. Every caller-supplied value goes through here so a tag
138
+ // like "won't fix" cannot terminate the literal and rewrite the query.
139
+ export const quoteWiql = (value) => `'${value.replace(/'/g, "''")}'`;
140
+ export const workItemFields = [
141
+ "System.Id",
142
+ "System.Title",
143
+ "System.Description",
144
+ "System.State",
145
+ "System.Tags",
146
+ "System.CreatedBy",
147
+ "System.ChangedDate",
148
+ "Microsoft.VSTS.Common.AcceptanceCriteria"
149
+ ];
150
+ export const wiqlFor = (filter) => {
151
+ const clauses = [
152
+ "[System.TeamProject] = @project",
153
+ ...(filter.state === "all"
154
+ ? []
155
+ : filter.state === "closed"
156
+ ? ["[System.State] = 'Closed'"]
157
+ : ["[System.State] <> 'Closed'"]),
158
+ ...(filter.tags ?? []).map((tag) => `[System.Tags] CONTAINS ${quoteWiql(tag)}`),
159
+ ...(filter.assignedTo === undefined
160
+ ? []
161
+ : [`[System.AssignedTo] = ${quoteWiql(filter.assignedTo)}`])
162
+ ];
163
+ const select = workItemFields.map((name) => `[${name}]`).join(", ");
164
+ return (`SELECT TOP ${String(filter.limit ?? 100)} ${select} FROM WorkItems ` +
165
+ `WHERE ${clauses.join(" AND ")} ORDER BY [System.Id] ASC`);
166
+ };
167
+ export const queryArgs = (config, wiql) => [
168
+ "boards",
169
+ "query",
170
+ "--wiql",
171
+ wiql,
172
+ "--project",
173
+ config.project,
174
+ ...org(config),
175
+ ...json
176
+ ];
177
+ // ---------------------------------------------------------------------------
178
+ // Pull request argv
179
+ // ---------------------------------------------------------------------------
180
+ export const prCreateArgs = (config, sourceRef, targetRef, title, description, draft = false) => [
181
+ "repos",
182
+ "pr",
183
+ "create",
184
+ "--repository",
185
+ config.repository,
186
+ "--project",
187
+ config.project,
188
+ "--source-branch",
189
+ branchName(sourceRef),
190
+ "--target-branch",
191
+ branchName(targetRef),
192
+ "--title",
193
+ title,
194
+ "--description",
195
+ description,
196
+ ...(draft ? ["--draft", "true"] : []),
197
+ ...org(config),
198
+ ...json
199
+ ];
200
+ export const prListArgs = (config, sourceRef) => [
201
+ "repos",
202
+ "pr",
203
+ "list",
204
+ "--repository",
205
+ config.repository,
206
+ "--project",
207
+ config.project,
208
+ "--status",
209
+ "active",
210
+ ...(sourceRef === undefined ? [] : ["--source-branch", branchName(sourceRef)]),
211
+ ...org(config),
212
+ ...json
213
+ ];
214
+ export const prUpdateArgs = (config, id, title, description) => [
215
+ "repos",
216
+ "pr",
217
+ "update",
218
+ "--id",
219
+ String(id),
220
+ "--title",
221
+ title,
222
+ "--description",
223
+ description,
224
+ ...org(config),
225
+ ...json
226
+ ];
227
+ export const prCommentArgs = (config, id, text) => [
228
+ "repos",
229
+ "pr",
230
+ "thread",
231
+ "create",
232
+ "--id",
233
+ String(id),
234
+ "--content",
235
+ text,
236
+ "--project",
237
+ config.project,
238
+ ...org(config),
239
+ ...json
240
+ ];
241
+ export const prPolicyArgs = (config, id) => [
242
+ "repos",
243
+ "pr",
244
+ "policy",
245
+ "list",
246
+ "--id",
247
+ String(id),
248
+ ...org(config),
249
+ ...json
250
+ ];
251
+ export const prCompleteArgs = (config, id, squash, deleteSourceBranch) => [
252
+ "repos",
253
+ "pr",
254
+ "update",
255
+ "--id",
256
+ String(id),
257
+ "--status",
258
+ "completed",
259
+ "--squash",
260
+ squash ? "true" : "false",
261
+ "--delete-source-branch",
262
+ deleteSourceBranch ? "true" : "false",
263
+ ...org(config),
264
+ ...json
265
+ ];
266
+ // ---------------------------------------------------------------------------
267
+ // Parsing
268
+ // ---------------------------------------------------------------------------
269
+ // System.CreatedBy is an identity object on current API versions and a bare
270
+ // display string on older ones; both decode to the display name.
271
+ const Identity = Schema.Union([
272
+ Schema.String,
273
+ Schema.Struct({
274
+ displayName: Schema.optionalKey(Schema.String),
275
+ uniqueName: Schema.optionalKey(Schema.String)
276
+ })
277
+ ]);
278
+ const identityName = (value) => value === undefined
279
+ ? ""
280
+ : typeof value === "string"
281
+ ? value
282
+ : (value.displayName ?? value.uniqueName ?? "");
283
+ const AdoFields = Schema.Struct({
284
+ "System.Title": Schema.optionalKey(Schema.String),
285
+ "System.Description": Schema.optionalKey(Schema.String),
286
+ "System.State": Schema.optionalKey(Schema.String),
287
+ "System.Tags": Schema.optionalKey(Schema.String),
288
+ "System.CreatedBy": Schema.optionalKey(Identity),
289
+ "System.ChangedDate": Schema.optionalKey(Schema.String),
290
+ "Microsoft.VSTS.Common.AcceptanceCriteria": Schema.optionalKey(Schema.String)
70
291
  });
71
- export const wiqlRequest = (config, query) => AdoRequest.make({
72
- method: "POST",
73
- url: `${witBase(config)}/wiql?api-version=${config.apiVersion}`,
74
- body: JSON.stringify({ query })
292
+ const AdoWorkItem = Schema.Struct({
293
+ id: Schema.Int,
294
+ fields: AdoFields
75
295
  });
76
- export const setFieldsRequest = (config, id, fields) => AdoRequest.make({
77
- method: "PATCH",
78
- url: `${witBase(config)}/workitems/${id}?api-version=${config.apiVersion}`,
79
- body: JSON.stringify(patchOperations(fields)),
80
- contentType: "application/json-patch+json"
296
+ export const parseTags = (raw) => raw
297
+ .split(";")
298
+ .map((tag) => tag.trim())
299
+ .filter((tag) => tag.length > 0);
300
+ const toWorkItem = (item) => WorkItem.make({
301
+ id: item.id,
302
+ title: item.fields["System.Title"] ?? "",
303
+ description: item.fields["System.Description"] ?? "",
304
+ acceptanceCriteria: item.fields["Microsoft.VSTS.Common.AcceptanceCriteria"] ?? "",
305
+ state: item.fields["System.State"] ?? "",
306
+ tags: parseTags(item.fields["System.Tags"] ?? ""),
307
+ createdBy: identityName(item.fields["System.CreatedBy"]),
308
+ changedDate: item.fields["System.ChangedDate"] ?? ""
81
309
  });
82
- export const createPullRequestRequest = (config, sourceRef, targetRef, title, description) => AdoRequest.make({
83
- method: "POST",
84
- url: `${gitBase(config)}/pullrequests?api-version=${config.apiVersion}`,
85
- body: JSON.stringify({
86
- sourceRefName: sourceRef,
87
- targetRefName: targetRef,
88
- title,
89
- description
90
- })
310
+ const decodeFailure = (message) => (error) => ProcessError.make({ message, detail: String(error) });
311
+ export const parseWorkItem = (payload) => Schema.decodeUnknownEffect(Schema.fromJsonString(AdoWorkItem))(payload).pipe(Effect.map(toWorkItem), Effect.mapError(decodeFailure("az boards work-item show")));
312
+ // `az boards query` flattens the WIQL result into a work-item array, so a
313
+ // queue poll is a single call rather than a fan-out over ids.
314
+ export const parseWorkItems = (payload) => Schema.decodeUnknownEffect(Schema.fromJsonString(Schema.Array(AdoWorkItem)))(payload).pipe(Effect.map((items) => items.map(toWorkItem)), Effect.mapError(decodeFailure("az boards query")));
315
+ export const parseWorkItemIds = (payload) => parseWorkItems(payload).pipe(Effect.map((items) => items.map((item) => item.id)));
316
+ const AdoComments = Schema.Struct({
317
+ comments: Schema.Array(Schema.Struct({
318
+ id: Schema.Int,
319
+ text: Schema.optionalKey(Schema.String),
320
+ createdBy: Schema.optionalKey(Identity),
321
+ createdDate: Schema.optionalKey(Schema.String)
322
+ })).pipe(Schema.withConstructorDefault(Effect.succeed(Object.freeze([]))))
91
323
  });
92
- const field = (fields, name) => {
93
- const value = fields[name];
94
- return typeof value === "string" ? value : "";
95
- };
96
- export const parseWorkItem = (json) => Schema.decodeUnknownEffect(Schema.fromJsonString(Schema.Struct({
97
- id: Schema.Int,
98
- fields: Schema.Record(Schema.String, Schema.Json)
99
- })))(json).pipe(Effect.map((item) => {
100
- const tags = field(item.fields, "System.Tags")
101
- .split(";")
102
- .map((tag) => tag.trim())
103
- .filter((tag) => tag.length > 0);
104
- return WorkItem.make({
105
- id: item.id,
106
- title: field(item.fields, "System.Title"),
107
- description: field(item.fields, "System.Description"),
108
- acceptanceCriteria: field(item.fields, "Microsoft.VSTS.Common.AcceptanceCriteria"),
109
- state: field(item.fields, "System.State"),
110
- tags
111
- });
112
- }), Effect.mapError((error) => ProcessError.make({
113
- message: "ado parse work item",
114
- detail: String(error)
115
- })));
116
- export const parseWiqlIds = (json) => Schema.decodeUnknownEffect(Schema.fromJsonString(Schema.Struct({
117
- workItems: Schema.Array(Schema.Struct({
118
- id: Schema.Int
119
- }))
120
- })))(json).pipe(Effect.map((result) => result.workItems.map((item) => item.id)), Effect.mapError((error) => ProcessError.make({
121
- message: "ado parse wiql",
122
- detail: String(error)
123
- })));
124
- export const parsePullRequest = (config, json) => Schema.decodeUnknownEffect(Schema.fromJsonString(Schema.Struct({
324
+ export const parseComments = (payload) => Schema.decodeUnknownEffect(Schema.fromJsonString(AdoComments))(payload).pipe(Effect.map((parsed) => parsed.comments.map((comment) => WorkItemComment.make({
325
+ id: comment.id,
326
+ author: identityName(comment.createdBy),
327
+ text: comment.text ?? "",
328
+ createdDate: comment.createdDate ?? ""
329
+ }))), Effect.mapError(decodeFailure("az devops invoke wit comments")));
330
+ const AdoPr = Schema.Struct({
125
331
  pullRequestId: Schema.Int,
126
332
  repository: Schema.Struct({
127
333
  id: Schema.String,
128
- project: Schema.Struct({
129
- id: Schema.String
130
- })
334
+ project: Schema.Struct({ id: Schema.String })
131
335
  })
132
- })))(json).pipe(Effect.map((result) => AdoPullRequest.make({
133
- id: result.pullRequestId,
134
- repoId: result.repository.id,
135
- projectId: result.repository.project.id,
336
+ });
337
+ const toPullRequest = (config, pr) => AdoPullRequest.make({
338
+ id: pr.pullRequestId,
339
+ repoId: pr.repository.id,
340
+ projectId: pr.repository.project.id,
136
341
  webUrl: `${config.orgUrl}/${config.project}/_git/` +
137
- `${config.repository}/pullrequest/${result.pullRequestId}`
138
- })), Effect.mapError((error) => ProcessError.make({
139
- message: "ado parse pull request",
140
- detail: String(error)
141
- })));
142
- export const makeAzureDevOpsTool = (config, http, events, timeout = Duration.seconds(30)) => {
143
- const run = (request) => http
144
- .send(request.method, request.url, request.body, authorizationHeader(config), request.contentType, timeout)
145
- .pipe(Effect.mapError((error) => ProcessError.make({
146
- message: `ado ${request.method} ${request.url}`,
147
- detail: error.message
148
- })));
342
+ `${config.repository}/pullrequest/${String(pr.pullRequestId)}`
343
+ });
344
+ export const parsePullRequest = (config, payload) => Schema.decodeUnknownEffect(Schema.fromJsonString(AdoPr))(payload).pipe(Effect.map((pr) => toPullRequest(config, pr)), Effect.mapError(decodeFailure("az repos pr")));
345
+ export const parsePullRequests = (config, payload) => Schema.decodeUnknownEffect(Schema.fromJsonString(Schema.Array(AdoPr)))(payload).pipe(Effect.map((prs) => prs.map((pr) => toPullRequest(config, pr))), Effect.mapError(decodeFailure("az repos pr list")));
346
+ const AdoPolicies = Schema.Array(Schema.Struct({
347
+ status: Schema.optionalKey(Schema.String)
348
+ }));
349
+ // Policy evaluation statuses: queued/running are still deciding, and
350
+ // rejected/broken have already decided against the PR.
351
+ export const outcomeFromPolicies = (payload) => Schema.decodeUnknownEffect(Schema.fromJsonString(AdoPolicies))(payload).pipe(Effect.map((policies) => {
352
+ const statuses = policies.map((policy) => policy.status?.toLowerCase() ?? "");
353
+ return statuses.some((value) => ["queued", "running"].includes(value))
354
+ ? "Pending"
355
+ : statuses.some((value) => ["rejected", "broken"].includes(value))
356
+ ? "Failure"
357
+ : "Success";
358
+ }), Effect.mapError(decodeFailure("az repos pr policy list")));
359
+ const output = (result) => result.stdout.join("\n").trim();
360
+ export const mergeTags = (current, add, remove) => {
361
+ const removed = new Set(remove.map((tag) => tag.toLowerCase()));
362
+ const kept = current.filter((tag) => !removed.has(tag.toLowerCase()));
363
+ const present = new Set(kept.map((tag) => tag.toLowerCase()));
364
+ const added = add.filter((tag) => !present.has(tag.toLowerCase()) && !removed.has(tag.toLowerCase()));
365
+ return [...kept, ...added];
366
+ };
367
+ export const makeAzureDevOpsTool = (config, process, workDir, events) => {
368
+ const run = (args) => process.run(["az", ...args], workDir, {}).pipe(Effect.mapError((error) => ProcessError.make({ message: `az ${args.join(" ")}`, detail: error.message })), Effect.flatMap((result) => result.exitCode === 0
369
+ ? Effect.succeed(output(result))
370
+ : Effect.fail(ProcessError.make({
371
+ message: `az ${args.join(" ")}`,
372
+ detail: [...result.stdout, ...result.stderr].join("\n").trim() ||
373
+ `exit code ${result.exitCode}`
374
+ }))));
149
375
  const read = (operation, effect) => guarded(Capabilities.AdoRead, operation, events, effect);
150
376
  const write = (operation, effect) => guarded(Capabilities.AdoWrite, operation, events, effect);
151
- const setFields = (id, fields) => write("ado setFields", run(setFieldsRequest(config, id, fields)).pipe(Effect.asVoid));
377
+ const readWorkItem = (id) => read("ado readWorkItem", run(workItemShowArgs(config, id)).pipe(Effect.flatMap(parseWorkItem)));
378
+ const setFields = (id, fields) => write("ado setFields", run(workItemUpdateArgs(config, id, fields)).pipe(Effect.asVoid));
379
+ const listPrs = (sourceRef) => run(prListArgs(config, sourceRef)).pipe(Effect.flatMap((payload) => parsePullRequests(config, payload)));
152
380
  return {
153
- readWorkItem: (id) => read("ado readWorkItem", run(readWorkItemRequest(config, id)).pipe(Effect.flatMap(parseWorkItem))),
154
- wiqlIds: (query) => read("ado wiql", run(wiqlRequest(config, query)).pipe(Effect.flatMap(parseWiqlIds))),
381
+ readWorkItem,
382
+ listWorkItems: (filter = {}) => read("ado listWorkItems", run(queryArgs(config, wiqlFor(filter))).pipe(Effect.flatMap(parseWorkItems))),
383
+ wiqlIds: (query) => read("ado wiql", run(queryArgs(config, query)).pipe(Effect.flatMap(parseWorkItemIds))),
384
+ readComments: (id) => read("ado readComments", run(commentsArgs(config, id)).pipe(Effect.flatMap(parseComments))),
155
385
  setFields,
156
386
  setState: (id, state) => setFields(id, { "System.State": state }),
157
- setAcceptanceCriteria: (id, text) => setFields(id, {
158
- "Microsoft.VSTS.Common.AcceptanceCriteria": text
159
- }),
160
- createPr: (sourceRef, targetRef, title, body) => write("ado createPr", run(createPullRequestRequest(config, sourceRef, targetRef, title, body)).pipe(Effect.flatMap((json) => parsePullRequest(config, json))))
387
+ setAcceptanceCriteria: (id, text) => setFields(id, { "Microsoft.VSTS.Common.AcceptanceCriteria": text }),
388
+ editTags: (id, add, remove) => add.length === 0 && remove.length === 0
389
+ ? Effect.void
390
+ : readWorkItem(id).pipe(Effect.flatMap((item) => {
391
+ const next = mergeTags(item.tags, add, remove);
392
+ return next.length === item.tags.length &&
393
+ next.every((tag, index) => tag === item.tags[index])
394
+ ? Effect.void
395
+ : setFields(id, { "System.Tags": next.join("; ") });
396
+ })),
397
+ writeComment: (id, text) => write("ado writeComment", run(workItemCommentArgs(config, id, text)).pipe(Effect.asVoid)),
398
+ createWorkItem: (workItemType, title, description, tags = []) => write("ado createWorkItem", run(workItemCreateArgs(config, workItemType, title, description, tags)).pipe(Effect.flatMap(parseWorkItem))),
399
+ createPr: (sourceRef, targetRef, title, body, draft = false) => write("ado createPr",
400
+ // An active PR for the branch already IS the deliverable; creating a
401
+ // second one would fail on the server and lose the first's reviews.
402
+ Effect.flatMap(listPrs(sourceRef), (existing) => {
403
+ const open = existing[0];
404
+ return open !== undefined
405
+ ? Effect.succeed(open)
406
+ : run(prCreateArgs(config, sourceRef, targetRef, title, body, draft)).pipe(Effect.flatMap((payload) => parsePullRequest(config, payload)));
407
+ })),
408
+ openPrForBranch: (sourceRef) => read("ado listPrs", listPrs(sourceRef).pipe(Effect.map((prs) => prs[0]))),
409
+ updatePr: (pr, title, body) => write("ado updatePr", run(prUpdateArgs(config, pr.id, title, body)).pipe(Effect.asVoid)),
410
+ writePrComment: (pr, body) => write("ado writePrComment", run(prCommentArgs(config, pr.id, body)).pipe(Effect.asVoid)),
411
+ prPolicies: (pr) => read("ado prPolicies", run(prPolicyArgs(config, pr.id)).pipe(Effect.flatMap(outcomeFromPolicies))),
412
+ completePr: (pr, squash = true, deleteSourceBranch = true) => write("ado completePr", run(prCompleteArgs(config, pr.id, squash, deleteSourceBranch)).pipe(Effect.asVoid))
161
413
  };
162
414
  };
163
415
  //# sourceMappingURL=AzureDevOpsTool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AzureDevOpsTool.js","sourceRoot":"","sources":["../src/AzureDevOpsTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AzureDevOpsTool.js","sourceRoot":"","sources":["../src/AzureDevOpsTool.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.10.1",
3
+ "version": "0.12.0",
4
4
  "description": "Effect-native LLM workflow, persistence, review, and repository automation",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -83,7 +83,7 @@
83
83
  "typescript"
84
84
  ],
85
85
  "dependencies": {
86
- "@llm4ts/core": "0.10.1"
86
+ "@llm4ts/core": "0.12.0"
87
87
  },
88
88
  "peerDependencies": {
89
89
  "effect": "4.0.0-beta.102"