@hcrosse/opencode-pr-tracker 0.4.1 → 0.4.2

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.
package/dist/server.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  // src/server.ts
3
3
  import { Plugin } from "@opencode/plugin/effect";
4
- import { Context as Context7, Effect as Effect13, Layer as Layer7, Option as Option17, Schedule, Schema as Schema15, Stream as Stream2 } from "effect";
4
+ import { Context as Context7, Effect as Effect14, Layer as Layer7, Option as Option18, Schedule, Schema as Schema15, Stream as Stream2 } from "effect";
5
5
 
6
6
  // src/adapters/github/Client.ts
7
7
  import { Array as Arr3, Effect as Effect4, Layer as Layer3, Option as Option6, Redacted as Redacted2, Result as Result4, Schema as Schema7 } from "effect";
@@ -685,7 +685,7 @@ function layer4(storage) {
685
685
  }
686
686
 
687
687
  // src/application/Monitor.ts
688
- import { Context as Context6, Effect as Effect9, Layer as Layer6, Option as Option13, PubSub, Ref as Ref2, Result as Result7, Stream } from "effect";
688
+ import { Context as Context6, Effect as Effect10, Layer as Layer6, Option as Option14, PubSub, Ref as Ref2, Result as Result7, Stream } from "effect";
689
689
 
690
690
  // src/application/FetchQueue.ts
691
691
  import { Deferred, Effect as Effect6, Exit, Option as Option9 } from "effect";
@@ -779,7 +779,42 @@ import { Clock, Effect as Effect7 } from "effect";
779
779
  var currentMillis = Effect7.map(Clock.currentTimeMillis, Math.floor);
780
780
 
781
781
  // src/application/Tracker.ts
782
- import { Array as Arr6, Context as Context5, Effect as Effect8, Layer as Layer5, Option as Option12, Schema as Schema11, Semaphore } from "effect";
782
+ import { Array as Arr6, Context as Context5, Effect as Effect9, Layer as Layer5, Option as Option13, Schema as Schema11 } from "effect";
783
+
784
+ // src/application/SessionLocks.ts
785
+ import { Effect as Effect8, Option as Option12, Semaphore } from "effect";
786
+
787
+ class SessionLocks {
788
+ locks = new Map;
789
+ get held() {
790
+ return this.locks.size;
791
+ }
792
+ run(sessionID, effect) {
793
+ return Effect8.uninterruptibleMask((restore) => Effect8.suspend(() => restore(this.enter(sessionID).withPermit(effect)).pipe(Effect8.ensuring(Effect8.sync(() => {
794
+ this.leave(sessionID);
795
+ })))));
796
+ }
797
+ enter(sessionID) {
798
+ const { semaphore, users } = this.locks.get(sessionID) ?? {
799
+ semaphore: Semaphore.makeUnsafe(1),
800
+ users: 0
801
+ };
802
+ this.locks.set(sessionID, { semaphore, users: users + 1 });
803
+ return semaphore;
804
+ }
805
+ leave(sessionID) {
806
+ const current = Option12.fromUndefinedOr(this.locks.get(sessionID));
807
+ if (Option12.isNone(current))
808
+ return;
809
+ const { semaphore, users } = current.value;
810
+ if (users === 1)
811
+ this.locks.delete(sessionID);
812
+ else
813
+ this.locks.set(sessionID, { semaphore, users: users - 1 });
814
+ }
815
+ }
816
+
817
+ // src/application/Tracker.ts
783
818
  class PullRequestUnavailable extends Schema11.TaggedError()("PullRequestUnavailable", { diagnostic: Diagnostic, url: Schema11.String }) {
784
819
  }
785
820
 
@@ -792,34 +827,26 @@ class Tracker extends Context5.Service()("opencode-pr-tracker/Tracker") {
792
827
  }
793
828
  function discovered(ref, result) {
794
829
  if (result._tag === "Failed")
795
- return Effect8.fail(new PullRequestUnavailable({ diagnostic: result.diagnostic, url: ref.url }));
830
+ return Effect9.fail(new PullRequestUnavailable({ diagnostic: result.diagnostic, url: ref.url }));
796
831
  const { report } = result;
797
- return Option12.match(report.membership, {
798
- onNone: () => Effect8.fail(new StackIncomplete({ url: ref.url })),
799
- onSome: (membership) => Effect8.succeed({
832
+ return Option13.match(report.membership, {
833
+ onNone: () => Effect9.fail(new StackIncomplete({ url: ref.url })),
834
+ onSome: (membership) => Effect9.succeed({
800
835
  report,
801
836
  stack: membership._tag === "Stack" ? membership.members : Arr6.of(ref)
802
837
  })
803
838
  });
804
839
  }
805
- function sessionLocks() {
806
- const locks = new Map;
807
- return (sessionID) => (effect) => Effect8.suspend(() => {
808
- const lock = locks.get(sessionID) ?? Semaphore.makeUnsafe(1);
809
- locks.set(sessionID, lock);
810
- return lock.withPermit(effect);
811
- });
812
- }
813
840
  function resolve({ github }, input, directory) {
814
- return input._tag === "Reference" ? Effect8.succeed(input.ref) : github.pullRequestInRepository(directory, input.number);
841
+ return input._tag === "Reference" ? Effect9.succeed(input.ref) : github.pullRequestInRepository(directory, input.number);
815
842
  }
816
- var attachTo = Effect8.fn("Tracker.attach")(function* (services, sessionID, target) {
843
+ var attachTo = Effect9.fn("Tracker.attach")(function* (services, sessionID, target) {
817
844
  const ref = yield* resolve(services, target.input, target.directory);
818
845
  const reports = yield* services.github.fetch([ref]);
819
846
  const missing = { _tag: "Failed", diagnostic: "NotFound" };
820
847
  const { report, stack } = yield* discovered(ref, reports.get(ref.url) ?? missing);
821
848
  const current = yield* services.repository.load(sessionID);
822
- const change = yield* Effect8.fromResult(attach(current, stack, yield* currentMillis));
849
+ const change = yield* Effect9.fromResult(attach(current, stack, yield* currentMillis));
823
850
  if (change.changed)
824
851
  yield* services.repository.save(sessionID, change.tracking);
825
852
  return {
@@ -830,20 +857,20 @@ var attachTo = Effect8.fn("Tracker.attach")(function* (services, sessionID, targ
830
857
  tracking: change.tracking
831
858
  };
832
859
  });
833
- var detachFrom = Effect8.fn("Tracker.detach")(function* ({ repository }, sessionID, input) {
860
+ var detachFrom = Effect9.fn("Tracker.detach")(function* ({ repository }, sessionID, input) {
834
861
  const current = yield* repository.load(sessionID);
835
- const removal = input._tag === "Reference" ? detach(current, input.ref) : yield* Effect8.fromResult(detachNumber(current, input.number));
836
- if (Option12.isSome(removal.removed))
862
+ const removal = input._tag === "Reference" ? detach(current, input.ref) : yield* Effect9.fromResult(detachNumber(current, input.number));
863
+ if (Option13.isSome(removal.removed))
837
864
  yield* repository.save(sessionID, removal.tracking);
838
865
  return removal;
839
866
  });
840
- var layer5 = Layer5.effect(Tracker, Effect8.gen(function* () {
867
+ var layer5 = Layer5.effect(Tracker, Effect9.gen(function* () {
841
868
  const services = { github: yield* GitHub, repository: yield* TrackingRepository };
842
- const locked = sessionLocks();
869
+ const locks = new SessionLocks;
843
870
  return Tracker.of({
844
- attach: (sessionID, input, directory) => locked(sessionID)(attachTo(services, sessionID, { directory, input })),
845
- detach: (sessionID, input) => locked(sessionID)(detachFrom(services, sessionID, input)),
846
- forget: (sessionID) => locked(sessionID)(services.repository.remove(sessionID)),
871
+ attach: (sessionID, input, directory) => locks.run(sessionID, attachTo(services, sessionID, { directory, input })),
872
+ detach: (sessionID, input) => locks.run(sessionID, detachFrom(services, sessionID, input)),
873
+ forget: (sessionID) => locks.run(sessionID, services.repository.remove(sessionID)),
847
874
  list: (sessionID) => services.repository.load(sessionID)
848
875
  });
849
876
  }));
@@ -862,7 +889,7 @@ function entryOf(known, attachment) {
862
889
  }
863
890
  var urlsOf = (tracking) => tracking.map((attachment) => attachment.ref.url);
864
891
  function remember(cache, results) {
865
- return Effect9.gen(function* () {
892
+ return Effect10.gen(function* () {
866
893
  const now = yield* currentMillis;
867
894
  yield* Ref2.update(cache.known, (current) => {
868
895
  const next = new Map(current);
@@ -873,28 +900,28 @@ function remember(cache, results) {
873
900
  });
874
901
  }
875
902
  function update(cache, refs) {
876
- return Effect9.gen(function* () {
877
- const outcome = yield* Effect9.result(cache.github.fetch(refs));
903
+ return Effect10.gen(function* () {
904
+ const outcome = yield* Effect10.result(cache.github.fetch(refs));
878
905
  const results = Result7.isSuccess(outcome) ? outcome.success : new Map(refs.map((ref) => [ref.url, { _tag: "Failed", diagnostic: outcome.failure.diagnostic }]));
879
906
  yield* remember(cache, results);
880
907
  });
881
908
  }
882
909
  function viewOf(state, sessionID) {
883
- return Effect9.gen(function* () {
910
+ return Effect10.gen(function* () {
884
911
  const tracking = yield* state.tracker.list(sessionID);
885
912
  const current = yield* Ref2.get(state.known);
886
913
  return { entries: tracking.map((attachment) => entryOf(current, attachment)), sessionID };
887
914
  });
888
915
  }
889
916
  function publish(state, sessionID) {
890
- return viewOf(state, sessionID).pipe(Effect9.flatMap((view) => PubSub.publish(state.published, view)), Effect9.ignore);
917
+ return viewOf(state, sessionID).pipe(Effect10.flatMap((view) => PubSub.publish(state.published, view)), Effect10.ignore);
891
918
  }
892
919
  var use = (state, sessionID) => Ref2.update(state.working, (sessions) => new Set(sessions).add(sessionID));
893
920
  function poll(state) {
894
- return Effect9.gen(function* () {
921
+ return Effect10.gen(function* () {
895
922
  const sessions = [...yield* Ref2.get(state.working)];
896
923
  const known = yield* Ref2.get(state.known);
897
- const trackings = yield* Effect9.forEach(sessions, (sessionID) => state.tracker.list(sessionID).pipe(Effect9.orElseSucceed(() => [])));
924
+ const trackings = yield* Effect10.forEach(sessions, (sessionID) => state.tracker.list(sessionID).pipe(Effect10.orElseSucceed(() => [])));
898
925
  const attached = new Map(trackings.flat().map((attachment) => [attachment.ref.url, attachment.ref]));
899
926
  const now = yield* currentMillis;
900
927
  const current = yield* Ref2.get(state.known);
@@ -905,30 +932,30 @@ function poll(state) {
905
932
  yield* state.fetch(due);
906
933
  const dueUrls = new Set(due.map((ref) => ref.url));
907
934
  const affected = sessions.filter((_, index) => urlsOf(trackings[index] ?? []).some((url) => dueUrls.has(url)));
908
- yield* Effect9.forEach(affected, (sessionID) => publish(state, sessionID), {
935
+ yield* Effect10.forEach(affected, (sessionID) => publish(state, sessionID), {
909
936
  discard: true
910
937
  });
911
938
  });
912
939
  }
913
940
  function fetchAndShow(state, sessionID, select) {
914
- return Effect9.gen(function* () {
941
+ return Effect10.gen(function* () {
915
942
  yield* use(state, sessionID);
916
943
  const tracking = yield* state.tracker.list(sessionID);
917
944
  const known = yield* Ref2.get(state.known);
918
- yield* state.fetch(tracking.map((attachment) => attachment.ref).filter((ref) => select(Option13.fromNullishOr(known.get(ref.url)))));
945
+ yield* state.fetch(tracking.map((attachment) => attachment.ref).filter((ref) => select(Option14.fromNullishOr(known.get(ref.url)))));
919
946
  const view = yield* viewOf(state, sessionID);
920
947
  yield* PubSub.publish(state.published, view);
921
948
  return view;
922
949
  });
923
950
  }
924
- var refreshable = (known) => Option13.isSome(Option13.getOrElse(known, () => unknown).dueAt);
925
- var notYetKnown = (known) => Option13.isNone(known);
926
- var layer6 = Layer6.effect(Monitor, Effect9.gen(function* () {
951
+ var refreshable = (known) => Option14.isSome(Option14.getOrElse(known, () => unknown).dueAt);
952
+ var notYetKnown = (known) => Option14.isNone(known);
953
+ var layer6 = Layer6.effect(Monitor, Effect10.gen(function* () {
927
954
  const cache = {
928
955
  github: yield* GitHub,
929
956
  known: yield* Ref2.make(new Map)
930
957
  };
931
- const queue = new FetchQueue((refs) => update(cache, refs), yield* Effect9.scope);
958
+ const queue = new FetchQueue((refs) => update(cache, refs), yield* Effect10.scope);
932
959
  const state = {
933
960
  fetch: (refs) => queue.fetch(refs),
934
961
  github: cache.github,
@@ -941,10 +968,10 @@ var layer6 = Layer6.effect(Monitor, Effect9.gen(function* () {
941
968
  changes: Stream.fromPubSub(state.published),
942
969
  forget: (sessionID) => Ref2.update(state.working, (sessions) => new Set([...sessions].filter((id) => id !== sessionID))),
943
970
  poll: poll(state),
944
- attached: (sessionID, ref, report) => Effect9.andThen(remember(cache, new Map([[ref.url, { _tag: "Reported", report }]])), fetchAndShow(state, sessionID, notYetKnown)),
971
+ attached: (sessionID, ref, report) => Effect10.andThen(remember(cache, new Map([[ref.url, { _tag: "Reported", report }]])), fetchAndShow(state, sessionID, notYetKnown)),
945
972
  refresh: (sessionID) => fetchAndShow(state, sessionID, refreshable),
946
973
  show: (sessionID) => fetchAndShow(state, sessionID, notYetKnown),
947
- view: (sessionID) => Effect9.andThen(use(state, sessionID), viewOf(state, sessionID))
974
+ view: (sessionID) => Effect10.andThen(use(state, sessionID), viewOf(state, sessionID))
948
975
  });
949
976
  }));
950
977
 
@@ -953,7 +980,7 @@ import { Rpc } from "@opencode/plugin/rpc";
953
980
  import { Schema as Schema13 } from "effect";
954
981
 
955
982
  // src/domain/StackLayout.ts
956
- import { Array as Arr7, Option as Option14, Schema as Schema12 } from "effect";
983
+ import { Array as Arr7, Option as Option15, Schema as Schema12 } from "effect";
957
984
  var Membership = Schema12.Union([
958
985
  Schema12.TaggedStruct("Standalone", {}),
959
986
  Schema12.TaggedStruct("Stack", {
@@ -961,12 +988,12 @@ var Membership = Schema12.Union([
961
988
  members: Schema12.NonEmptyArray(PullRequestRef)
962
989
  })
963
990
  ]);
964
- var stackOf = (entry) => Option14.filter(entry.membership, (membership) => membership._tag === "Stack");
991
+ var stackOf = (entry) => Option15.filter(entry.membership, (membership) => membership._tag === "Stack");
965
992
  var urlsOf2 = (stack) => stack.members.map((member) => member.url);
966
993
  function reportsById(entries) {
967
994
  const byId = new Map;
968
995
  for (const [index, entry] of entries.entries()) {
969
- for (const stack of Option14.toArray(stackOf(entry))) {
996
+ for (const stack of Option15.toArray(stackOf(entry))) {
970
997
  byId.set(stack.id, [...byId.get(stack.id) ?? [], { index, stack, url: entry.ref.url }]);
971
998
  }
972
999
  }
@@ -982,7 +1009,7 @@ function claims(byId) {
982
1009
  return claimed;
983
1010
  }
984
1011
  function agrees(reports, entries, claimed) {
985
- const members = Option14.match(Arr7.head(reports), {
1012
+ const members = Option15.match(Arr7.head(reports), {
986
1013
  onNone: () => [],
987
1014
  onSome: (report) => urlsOf2(report.stack)
988
1015
  });
@@ -1000,15 +1027,15 @@ function placements(reports) {
1000
1027
  }));
1001
1028
  const adjacent = Arr7.zipWith(placed, placed.slice(1), (before, after) => after.index === before.index + 1 && after.position > before.position);
1002
1029
  const ordered = placed.every((member) => member.position >= 0) && adjacent.every(Boolean);
1003
- return ordered ? Option14.some(placed) : Option14.none();
1030
+ return ordered ? Option15.some(placed) : Option15.none();
1004
1031
  }
1005
1032
  function consistentStacks(entries) {
1006
1033
  const byId = reportsById(entries);
1007
1034
  const claimed = claims(byId);
1008
1035
  const places = new Map;
1009
1036
  for (const reports of byId.values()) {
1010
- const placed = agrees(reports, entries, claimed) ? placements(reports) : Option14.none();
1011
- for (const group of Option14.toArray(placed)) {
1037
+ const placed = agrees(reports, entries, claimed) ? placements(reports) : Option15.none();
1038
+ for (const group of Option15.toArray(placed)) {
1012
1039
  for (const [step, current] of group.entries()) {
1013
1040
  places.set(current.index, {
1014
1041
  attached: group.length,
@@ -1038,7 +1065,7 @@ function connector(place) {
1038
1065
  return place.current.position < place.current.size - 1 ? "open" : "none";
1039
1066
  }
1040
1067
  function stackRows(entry, place) {
1041
- const skipped = Option14.match(place.previous, {
1068
+ const skipped = Option15.match(place.previous, {
1042
1069
  onNone: () => 0,
1043
1070
  onSome: (before) => place.current.position - before.position - 1
1044
1071
  });
@@ -1052,7 +1079,7 @@ function stackRows(entry, place) {
1052
1079
  }
1053
1080
  function layout(entries) {
1054
1081
  const places = consistentStacks(entries);
1055
- return entries.flatMap((entry, index) => Option14.match(Option14.fromNullishOr(places.get(index)), {
1082
+ return entries.flatMap((entry, index) => Option15.match(Option15.fromNullishOr(places.get(index)), {
1056
1083
  onNone: () => [{ _tag: "PullRequest", connector: "none", entry, marker: "bullet" }],
1057
1084
  onSome: (place) => stackRows(entry, place)
1058
1085
  }));
@@ -1108,10 +1135,10 @@ var PullRequestTracker = Rpc.define({
1108
1135
  });
1109
1136
 
1110
1137
  // src/server/Requests.ts
1111
- import { Effect as Effect10, Option as Option16 } from "effect";
1138
+ import { Effect as Effect11, Option as Option17 } from "effect";
1112
1139
 
1113
1140
  // src/messages.ts
1114
- import { Match as Match2, Option as Option15 } from "effect";
1141
+ import { Match as Match2, Option as Option16 } from "effect";
1115
1142
  var diagnosticMessages = {
1116
1143
  AuthenticationRequired: "GitHub needs you to sign in: run `gh auth login`, or set GH_TOKEN.",
1117
1144
  GitHubCliMissing: "Install the GitHub CLI (`gh`), or set GH_TOKEN.",
@@ -1142,7 +1169,7 @@ function attachedMessage(attached) {
1142
1169
  return attached.stackSize > 1 ? `Attached ${label} with the rest of its Stack (${String(attached.stackSize)} pull requests).` : `Attached ${label}.`;
1143
1170
  }
1144
1171
  function detachedMessage(removal, target) {
1145
- return Option15.match(removal.removed, {
1172
+ return Option16.match(removal.removed, {
1146
1173
  onNone: () => `${target} is not attached.`,
1147
1174
  onSome: (ref) => `Detached ${ref.label}.`
1148
1175
  });
@@ -1153,7 +1180,7 @@ function toView(view, layout) {
1153
1180
  return {
1154
1181
  entries: view.entries.map((entry) => ({
1155
1182
  attachedAt: entry.attachedAt,
1156
- membership: Option16.getOrNull(entry.membership),
1183
+ membership: Option17.getOrNull(entry.membership),
1157
1184
  ref: entry.ref,
1158
1185
  status: entry.status
1159
1186
  })),
@@ -1161,15 +1188,15 @@ function toView(view, layout) {
1161
1188
  sessionID: view.sessionID
1162
1189
  };
1163
1190
  }
1164
- var parseTarget = (target) => Effect10.fromResult(parsePullRequestInput(target));
1191
+ var parseTarget = (target) => Effect11.fromResult(parsePullRequestInput(target));
1165
1192
  function requests({ monitor, tracker }, settings) {
1166
1193
  return {
1167
- attach: (sessionID, target) => Effect10.gen(function* () {
1194
+ attach: (sessionID, target) => Effect11.gen(function* () {
1168
1195
  const attached = yield* tracker.attach(sessionID, yield* parseTarget(target), settings.directory);
1169
1196
  const view = yield* monitor.attached(sessionID, attached.ref, attached.report);
1170
1197
  return { message: attachedMessage(attached), view: toView(view, settings.layout) };
1171
1198
  }),
1172
- detach: (sessionID, target) => Effect10.gen(function* () {
1199
+ detach: (sessionID, target) => Effect11.gen(function* () {
1173
1200
  const removal = yield* tracker.detach(sessionID, yield* parseTarget(target));
1174
1201
  const view = yield* monitor.show(sessionID);
1175
1202
  return { message: detachedMessage(removal, target), view: toView(view, settings.layout) };
@@ -1178,21 +1205,21 @@ function requests({ monitor, tracker }, settings) {
1178
1205
  }
1179
1206
 
1180
1207
  // src/server/Rpc.ts
1181
- import { Effect as Effect11 } from "effect";
1208
+ import { Effect as Effect12 } from "effect";
1182
1209
  function handlers(services, settings) {
1183
1210
  const viewOf = (view) => toView(view, settings.layout);
1184
1211
  const { attach, detach } = requests(services, settings);
1185
1212
  return {
1186
- attach: ({ sessionID, target }, context) => attach(sessionID, target).pipe(Effect11.mapError(failureMessage), Effect11.mapError((message) => context.error("rejected", message, { message }))),
1187
- detach: ({ sessionID, target }, context) => detach(sessionID, target).pipe(Effect11.mapError(failureMessage), Effect11.mapError((message) => context.error("rejected", message, { message }))),
1188
- list: ({ sessionID }, context) => services.monitor.view(sessionID).pipe(Effect11.map(viewOf), Effect11.mapError(failureMessage), Effect11.mapError((message) => context.error("rejected", message, { message }))),
1189
- refresh: ({ sessionID }, context) => services.monitor.refresh(sessionID).pipe(Effect11.map(viewOf), Effect11.mapError(failureMessage), Effect11.mapError((message) => context.error("rejected", message, { message })))
1213
+ attach: ({ sessionID, target }, context) => attach(sessionID, target).pipe(Effect12.mapError(failureMessage), Effect12.mapError((message) => context.error("rejected", message, { message }))),
1214
+ detach: ({ sessionID, target }, context) => detach(sessionID, target).pipe(Effect12.mapError(failureMessage), Effect12.mapError((message) => context.error("rejected", message, { message }))),
1215
+ list: ({ sessionID }, context) => services.monitor.view(sessionID).pipe(Effect12.map(viewOf), Effect12.mapError(failureMessage), Effect12.mapError((message) => context.error("rejected", message, { message }))),
1216
+ refresh: ({ sessionID }, context) => services.monitor.refresh(sessionID).pipe(Effect12.map(viewOf), Effect12.mapError(failureMessage), Effect12.mapError((message) => context.error("rejected", message, { message })))
1190
1217
  };
1191
1218
  }
1192
1219
 
1193
1220
  // src/server/Tools.ts
1194
1221
  import { Tool } from "@opencode/schema/tool";
1195
- import { Effect as Effect12, Schema as Schema14 } from "effect";
1222
+ import { Effect as Effect13, Schema as Schema14 } from "effect";
1196
1223
 
1197
1224
  // src/domain/Appearance.ts
1198
1225
  import { Match as Match3 } from "effect";
@@ -1253,17 +1280,17 @@ var NoArguments = Schema14.Struct({});
1253
1280
  var asToolError = (failure) => new Tool.Error({ message: failureMessage(failure) });
1254
1281
  var listTool = ({ monitor }) => ({
1255
1282
  description: "List the pull requests attached to this session, with their status.",
1256
- execute: (_input, context) => monitor.view(context.sessionID).pipe(Effect12.map((view) => ({
1283
+ execute: (_input, context) => monitor.view(context.sessionID).pipe(Effect13.map((view) => ({
1257
1284
  content: view.entries.length === 0 ? "No pull requests are attached to this session." : view.entries.map((entry) => `- ${entry.ref.url} (${appearance(entry.status).label})`).join(`
1258
1285
  `)
1259
- })), Effect12.mapError(asToolError)),
1286
+ })), Effect13.mapError(asToolError)),
1260
1287
  input: NoArguments,
1261
1288
  name: "list",
1262
1289
  options
1263
1290
  });
1264
1291
  var changeTool = (name, description, change) => ({
1265
1292
  description,
1266
- execute: (argument, context) => change(context.sessionID, targetOf(argument)).pipe(Effect12.map((changed) => ({ content: changed.message })), Effect12.mapError(asToolError)),
1293
+ execute: (argument, context) => change(context.sessionID, targetOf(argument)).pipe(Effect13.map((changed) => ({ content: changed.message })), Effect13.mapError(asToolError)),
1267
1294
  input: PullRequestArgument,
1268
1295
  name,
1269
1296
  options
@@ -1284,13 +1311,13 @@ function registerTools(tools, services, settings) {
1284
1311
  // src/server.ts
1285
1312
  var pollInterval = "1 second";
1286
1313
  var Options = Schema15.Struct({ layout: Layout });
1287
- var layoutOf = (options) => Option17.match(Schema15.decodeUnknownOption(Options)(options), {
1314
+ var layoutOf = (options) => Option18.match(Schema15.decodeUnknownOption(Options)(options), {
1288
1315
  onNone: () => "default",
1289
1316
  onSome: ({ layout }) => layout
1290
1317
  });
1291
- var forgetDeletedSessions = (ctx, services) => ctx.event.subscribe().pipe(Stream2.runForEach((event) => event.type === "session.deleted" ? Effect13.andThen(services.tracker.forget(event.data.sessionID), services.monitor.forget(event.data.sessionID)) : Effect13.void), Effect13.ignore);
1318
+ var forgetDeletedSessions = (ctx, services) => ctx.event.subscribe().pipe(Stream2.runForEach((event) => event.type === "session.deleted" ? Effect14.andThen(services.tracker.forget(event.data.sessionID), services.monitor.forget(event.data.sessionID)) : Effect14.void), Effect14.ignore);
1292
1319
  var server_default = Plugin.define({
1293
- effect: (ctx) => Effect13.gen(function* () {
1320
+ effect: (ctx) => Effect14.gen(function* () {
1294
1321
  const application = layer6.pipe(Layer7.provideMerge(layer5), Layer7.provide([live, layer4(ctx.storage)]));
1295
1322
  const context = yield* Layer7.build(application);
1296
1323
  const services = {
@@ -1301,11 +1328,11 @@ var server_default = Plugin.define({
1301
1328
  directory: ctx.location.directory,
1302
1329
  layout: layoutOf(ctx.options)
1303
1330
  };
1304
- const registration = yield* ctx.rpc.register(PullRequestTracker, handlers(services, settings)).pipe(Effect13.orDie);
1331
+ const registration = yield* ctx.rpc.register(PullRequestTracker, handlers(services, settings)).pipe(Effect14.orDie);
1305
1332
  yield* registerTools(ctx.tool, services, settings);
1306
- yield* Effect13.forkScoped(forgetDeletedSessions(ctx, services));
1307
- yield* Effect13.forkScoped(Effect13.repeat(services.monitor.poll, Schedule.spaced(pollInterval)));
1308
- yield* services.monitor.changes.pipe(Stream2.runForEach((view) => registration.events.emit("updated", toView(view, settings.layout)).pipe(Effect13.ignore)), Effect13.forkScoped);
1333
+ yield* Effect14.forkScoped(forgetDeletedSessions(ctx, services));
1334
+ yield* Effect14.forkScoped(Effect14.repeat(services.monitor.poll, Schedule.spaced(pollInterval)));
1335
+ yield* services.monitor.changes.pipe(Stream2.runForEach((view) => registration.events.emit("updated", toView(view, settings.layout)).pipe(Effect14.ignore)), Effect14.forkScoped);
1309
1336
  }),
1310
1337
  id: "opencode-pr-tracker"
1311
1338
  });
@@ -1313,4 +1340,4 @@ export {
1313
1340
  server_default as default
1314
1341
  };
1315
1342
 
1316
- //# debugId=2C26781E1C009A7864756E2164756E21
1343
+ //# debugId=7CB75665EE3FC22164756E2164756E21
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/server.ts", "../src/adapters/github/Client.ts", "../src/ports/GitHub.ts", "../src/domain/Snapshot.ts", "../src/domain/PullRequest.ts", "../src/adapters/Command.ts", "../src/adapters/github/Query.ts", "../src/adapters/github/Repository.ts", "../src/adapters/github/Response.ts", "../src/domain/Checks.ts", "../src/adapters/github/Token.ts", "../src/adapters/Storage.ts", "../src/domain/Tracking.ts", "../src/ports/TrackingRepository.ts", "../src/application/Monitor.ts", "../src/application/FetchQueue.ts", "../src/application/Known.ts", "../src/domain/RefreshPolicy.ts", "../src/application/Time.ts", "../src/application/Tracker.ts", "../src/rpc.ts", "../src/domain/StackLayout.ts", "../src/server/Requests.ts", "../src/messages.ts", "../src/server/Rpc.ts", "../src/server/Tools.ts", "../src/domain/Appearance.ts"],
3
+ "sources": ["../src/server.ts", "../src/adapters/github/Client.ts", "../src/ports/GitHub.ts", "../src/domain/Snapshot.ts", "../src/domain/PullRequest.ts", "../src/adapters/Command.ts", "../src/adapters/github/Query.ts", "../src/adapters/github/Repository.ts", "../src/adapters/github/Response.ts", "../src/domain/Checks.ts", "../src/adapters/github/Token.ts", "../src/adapters/Storage.ts", "../src/domain/Tracking.ts", "../src/ports/TrackingRepository.ts", "../src/application/Monitor.ts", "../src/application/FetchQueue.ts", "../src/application/Known.ts", "../src/domain/RefreshPolicy.ts", "../src/application/Time.ts", "../src/application/Tracker.ts", "../src/application/SessionLocks.ts", "../src/rpc.ts", "../src/domain/StackLayout.ts", "../src/server/Requests.ts", "../src/messages.ts", "../src/server/Rpc.ts", "../src/server/Tools.ts", "../src/domain/Appearance.ts"],
4
4
  "sourcesContent": [
5
5
  "import { Plugin } from \"@opencode/plugin/effect\"\nimport { Context, Effect, Layer, Option, Schedule, Schema, Stream } from \"effect\"\n\nimport { live as githubLive } from \"./adapters/github/Client.ts\"\nimport { layer as storageLayer } from \"./adapters/Storage.ts\"\nimport { Monitor, layer as monitorLayer } from \"./application/Monitor.ts\"\nimport { Tracker, layer as trackerLayer } from \"./application/Tracker.ts\"\nimport { Layout, PullRequestTracker } from \"./rpc.ts\"\nimport { toView, type Services, type Settings } from \"./server/Requests.ts\"\nimport { handlers } from \"./server/Rpc.ts\"\nimport { registerTools } from \"./server/Tools.ts\"\n\nconst pollInterval = \"1 second\"\n\nconst Options = Schema.Struct({ layout: Layout })\n\n/** The sidebar layout from the plugin options; anything but \"compact\" is the default. */\nconst layoutOf = (options: Plugin.Context[\"options\"]): Layout =>\n Option.match(Schema.decodeUnknownOption(Options)(options), {\n onNone: () => \"default\",\n onSome: ({ layout }) => layout,\n })\n\n/** Forgets a session everywhere once OpenCode deletes it. Every plugin instance sees the event. */\nconst forgetDeletedSessions = (ctx: Plugin.Context, services: Services): Effect.Effect<void> =>\n ctx.event.subscribe().pipe(\n Stream.runForEach((event) =>\n event.type === \"session.deleted\"\n ? Effect.andThen(\n services.tracker.forget(event.data.sessionID),\n services.monitor.forget(event.data.sessionID),\n )\n : Effect.void,\n ),\n Effect.ignore,\n )\n\nexport default Plugin.define({\n effect: (ctx) =>\n Effect.gen(function* () {\n const application = monitorLayer.pipe(\n Layer.provideMerge(trackerLayer),\n Layer.provide([githubLive, storageLayer(ctx.storage)]),\n )\n\n const context = yield* Layer.build(application)\n\n const services: Services = {\n monitor: Context.get(context, Monitor),\n tracker: Context.get(context, Tracker),\n }\n\n const settings: Settings = {\n directory: ctx.location.directory,\n layout: layoutOf(ctx.options),\n }\n\n const registration = yield* ctx.rpc\n .register(PullRequestTracker, handlers(services, settings))\n .pipe(Effect.orDie)\n\n yield* registerTools(ctx.tool, services, settings)\n yield* Effect.forkScoped(forgetDeletedSessions(ctx, services))\n yield* Effect.forkScoped(Effect.repeat(services.monitor.poll, Schedule.spaced(pollInterval)))\n yield* services.monitor.changes.pipe(\n Stream.runForEach((view) =>\n registration.events.emit(\"updated\", toView(view, settings.layout)).pipe(Effect.ignore),\n ),\n Effect.forkScoped,\n )\n }),\n id: \"opencode-pr-tracker\",\n})\n",
6
6
  "import { Array as Arr, Effect, Layer, Option, Redacted, Result, Schema } from \"effect\"\nimport { FetchHttpClient, HttpClient, HttpClientRequest } from \"effect/unstable/http\"\n\nimport type { PullRequestRef } from \"../../domain/PullRequest.ts\"\nimport type { Diagnostic } from \"../../domain/Snapshot.ts\"\nimport { GitHub, GitHubFailure, maximumBatch, type ItemResult } from \"../../ports/GitHub.ts\"\nimport { CommandRunner, layer as commandLayer } from \"../Command.ts\"\nimport { alias, batch, continuation } from \"./Query.ts\"\nimport { resolveInRepository } from \"./Repository.ts\"\nimport {\n combined,\n Contexts,\n PullRequestNode,\n toReport,\n type BatchOutcome,\n type ContextNode,\n type Entry,\n} from \"./Response.ts\"\nimport { Token, layer as tokenLayer } from \"./Token.ts\"\n\nconst endpoint = \"https://api.github.com/graphql\"\n\nconst GraphQlError = Schema.Struct({\n path: Schema.optional(Schema.Array(Schema.Union([Schema.String, Schema.Number]))),\n type: Schema.optional(Schema.String),\n})\n\nconst Envelope = Schema.Struct({\n data: Schema.optional(Schema.NullOr(Schema.Record(Schema.String, Schema.Unknown))),\n errors: Schema.optional(Schema.Array(GraphQlError)),\n})\n\ntype Envelope = typeof Envelope.Type\n\nconst ContinuationData = Schema.Struct({\n resource: Schema.Struct({ statusCheckRollup: Schema.Struct({ contexts: Contexts }) }),\n})\n\nconst failure = (diagnostic: Diagnostic): GitHubFailure => new GitHubFailure({ diagnostic })\n\n/** A 401 from GitHub: the cached token may be stale. */\nclass Unauthorized extends Schema.TaggedError<Unauthorized>()(\"Unauthorized\", {}) {}\n\nconst failed = (diagnostic: Diagnostic): ItemResult => ({ _tag: \"Failed\", diagnostic })\n\nconst decodeEnvelope = Schema.decodeUnknownEffect(Envelope)\n\ntype Variables = Readonly<Record<string, string>>\n\n/** Posts one GraphQL document and decodes GitHub's response envelope. */\ntype Post = (query: string, variables: Variables) => Effect.Effect<Envelope, GitHubFailure>\n\n/** Posts one GraphQL document. A 401 refreshes the token and retries once. */\nconst makePost = Effect.fn(\"makePost\")(function* (): Effect.fn.Return<\n Post,\n never,\n HttpClient.HttpClient | Token\n> {\n const http = yield* HttpClient.HttpClient\n const token = yield* Token\n\n const attempt = Effect.fn(\"attempt\")(function* (query: string, variables: Variables) {\n const bearer = yield* token.get\n\n const request = HttpClientRequest.post(endpoint).pipe(\n HttpClientRequest.bearerToken(Redacted.value(bearer)),\n HttpClientRequest.bodyJsonUnsafe({ query, variables }),\n )\n\n const response = yield* http\n .execute(request)\n .pipe(Effect.mapError(() => failure(\"GitHubUnavailable\")))\n\n if (response.status === 401) return yield* new Unauthorized()\n\n if (response.status < 200 || response.status >= 300) return yield* failure(\"GitHubUnavailable\")\n\n const body = yield* response.json.pipe(Effect.mapError(() => failure(\"InvalidResponse\")))\n\n return yield* decodeEnvelope(body).pipe(Effect.mapError(() => failure(\"InvalidResponse\")))\n })\n\n return (query: string, variables: Variables): Effect.Effect<Envelope, GitHubFailure> =>\n attempt(query, variables).pipe(\n Effect.catchTag(\"Unauthorized\", () =>\n Effect.andThen(token.invalidate, attempt(query, variables)),\n ),\n Effect.catchTag(\"Unauthorized\", () => Effect.fail(failure(\"AuthenticationRequired\"))),\n )\n})\n\n/** Every check context for a pull request, following continuation pages. */\nconst allContexts = Effect.fn(\"allContexts\")(function* (post: Post, node: PullRequestNode) {\n const collected: ContextNode[] = []\n const followed = new Set<string>()\n let page = Option.map(Option.fromNullishOr(node.statusCheckRollup), (rollup) => rollup.contexts)\n\n while (Option.isSome(page)) {\n collected.push(...page.value.nodes)\n\n if (!page.value.pageInfo.hasNextPage) break\n\n // A claimed next page needs a new cursor, or CI would be judged on part or paging never end.\n const after = page.value.pageInfo.endCursor ?? \"\"\n\n if (after === \"\" || followed.has(after)) return yield* failure(\"InvalidResponse\")\n\n followed.add(after)\n\n const envelope = yield* post(continuation(), { cursor: after, url: node.url })\n\n if ((envelope.errors ?? []).length > 0) return yield* failure(\"InvalidResponse\")\n\n const data = yield* Schema.decodeUnknownEffect(ContinuationData)(envelope.data).pipe(\n Effect.mapError(() => failure(\"InvalidResponse\")),\n )\n\n page = Option.some(data.resource.statusCheckRollup.contexts)\n }\n\n return collected\n})\n\n/** GraphQL error types meaning the pull request does not exist or this token cannot see it. */\nconst inaccessible = new Set([\"NOT_FOUND\", \"FORBIDDEN\"])\n\n/** Errors for `key`, or naming no alias, fail it; only its own inaccessible errors mean missing. */\nfunction aliasFailure(request: Batch, key: string): Option.Option<Diagnostic> {\n const diagnostics = (request.envelope.errors ?? []).flatMap((error): Diagnostic[] => {\n const root = String((error.path ?? [])[0] ?? \"\")\n\n if (root === key) return [inaccessible.has(error.type ?? \"\") ? \"NotFound\" : \"InvalidResponse\"]\n\n return request.aliases.has(root) ? [] : [\"InvalidResponse\"]\n })\n\n if (diagnostics.length === 0) return Option.none()\n\n return Option.some(diagnostics.includes(\"InvalidResponse\") ? \"InvalidResponse\" : \"NotFound\")\n}\n\ninterface Batch {\n readonly post: Post\n readonly envelope: Envelope\n /** The aliases of this batch's pull requests. */\n readonly aliases: ReadonlySet<string>\n}\n\nconst itemResult = Effect.fn(\"itemResult\")(function* (\n request: Batch,\n ref: PullRequestRef,\n key: string,\n) {\n const { envelope, post } = request\n const reported = aliasFailure(request, key)\n const raw = Option.fromNullishOr((envelope.data ?? {})[key])\n\n if (Option.isSome(reported)) return failed(reported.value)\n\n if (Option.isNone(raw)) return failed(\"NotFound\")\n\n const node = Schema.decodeUnknownOption(PullRequestNode)(raw.value)\n\n if (Option.isNone(node)) return failed(\"InvalidResponse\")\n\n const contexts = yield* Effect.result(allContexts(post, node.value))\n\n if (Result.isFailure(contexts)) return failed(contexts.failure.diagnostic)\n\n return {\n _tag: \"Reported\",\n report: toReport(ref, node.value, contexts.success),\n } satisfies ItemResult\n})\n\nconst fetchBatch = Effect.fn(\"fetchBatch\")(function* (post: Post, refs: readonly PullRequestRef[]) {\n const variables = Object.fromEntries(refs.map((ref, index) => [alias(index), ref.url]))\n const envelope = yield* post(batch(refs.length), variables)\n\n // GitHub answers a request it could not run at all, such as a rate-limited one, without data.\n if (Option.isNone(Option.fromNullishOr(envelope.data))) return yield* failure(\"GitHubUnavailable\")\n\n const results = yield* Effect.forEach(\n refs,\n (ref, index) =>\n itemResult({ aliases: new Set(Object.keys(variables)), envelope, post }, ref, alias(index)),\n {\n concurrency: 4,\n },\n )\n\n return Arr.zip(\n refs.map((ref) => ref.url),\n results,\n )\n})\n\n/** A batch's results; when the whole batch failed, a failure for each of its pull requests. */\nconst outcomeOf = (post: Post, refs: readonly PullRequestRef[]): Effect.Effect<BatchOutcome> =>\n Effect.gen(function* () {\n const result = yield* Effect.result(fetchBatch(post, refs))\n\n if (Result.isSuccess(result)) return { entries: result.success, failure: Option.none() }\n\n const { diagnostic } = result.failure\n\n return {\n entries: refs.map((ref): Entry => [ref.url, { _tag: \"Failed\", diagnostic }]),\n failure: Option.some(diagnostic),\n }\n })\n\n/** The GitHub port over GraphQL. Requires an HTTP client, a token source, and `gh`. */\nexport const layer = Layer.effect(\n GitHub,\n Effect.gen(function* () {\n const post = yield* makePost()\n const runner = yield* CommandRunner\n\n return GitHub.of({\n fetch: (refs) => {\n const batches = Arr.chunksOf(\n Arr.dedupeWith(refs, (left, right) => left.url === right.url),\n maximumBatch,\n )\n\n return Effect.forEach(batches, (refsInBatch: readonly PullRequestRef[]) =>\n outcomeOf(post, refsInBatch),\n ).pipe(\n Effect.flatMap((outcomes: readonly BatchOutcome[]) =>\n Effect.fromResult(combined(outcomes)),\n ),\n Effect.mapError(failure),\n )\n },\n pullRequestInRepository: (directory, number) =>\n resolveInRepository(directory, number).pipe(Effect.provideService(CommandRunner, runner)),\n })\n }),\n)\n\n/** The GitHub port over `api.github.com`, with tokens from the environment or `gh`. */\nexport const live = layer.pipe(\n Layer.provide(tokenLayer),\n Layer.provide([commandLayer, FetchHttpClient.layer]),\n)\n",
@@ -21,7 +21,8 @@
21
21
  "/** What the monitor knows about one pull request, and when to ask GitHub again. */\nimport { Duration, Option } from \"effect\"\n\nimport type { PullRequestRef } from \"../domain/PullRequest.ts\"\nimport { nextRefresh } from \"../domain/RefreshPolicy.ts\"\nimport { failed, pending, succeeded, type Status } from \"../domain/Snapshot.ts\"\nimport type { Membership } from \"../domain/StackLayout.ts\"\nimport type { ItemResult } from \"../ports/GitHub.ts\"\n\nexport interface Known {\n readonly status: Status\n readonly membership: Option.Option<Membership>\n /** When to refresh next; none once refreshing can no longer change anything. */\n readonly dueAt: Option.Option<number>\n}\n\nexport const unknown: Known = { dueAt: Option.some(0), membership: Option.none(), status: pending }\n\nexport function afterRefresh(previous: Known, result: ItemResult, now: number): Known {\n const status =\n result._tag === \"Reported\"\n ? succeeded(result.report.snapshot)\n : failed(previous.status, result.diagnostic, now)\n\n const membership = result._tag === \"Reported\" ? result.report.membership : previous.membership\n\n return {\n dueAt: Option.map(nextRefresh(status), (delay) => now + Duration.toMillis(delay)),\n membership,\n status,\n }\n}\n\nexport const isDue = (\n known: ReadonlyMap<string, Known>,\n now: number,\n ref: PullRequestRef,\n): boolean =>\n Option.match((known.get(ref.url) ?? unknown).dueAt, {\n onNone: () => false,\n onSome: (at: number) => at <= now,\n })\n\n/**\n * `entries` without pull requests that no session in use has attached, as of the `before`\n * snapshot. Entries that changed since were recorded for attachments newer than the snapshot.\n */\nexport function withoutUnattached(\n entries: ReadonlyMap<string, Known>,\n before: ReadonlyMap<string, Known>,\n attached: ReadonlyMap<string, PullRequestRef>,\n): ReadonlyMap<string, Known> {\n return new Map(\n [...entries].filter(\n ([url, entry]: readonly [string, Known]) => attached.has(url) || entry !== before.get(url),\n ),\n )\n}\n",
22
22
  "import { Duration, Option } from \"effect\"\n\nimport type { Status } from \"./Snapshot.ts\"\n\nexport const refreshInterval = Duration.seconds(15)\n\n/** When to refresh a pull request next. Merged pull requests never change, so they stop. */\nexport function nextRefresh(status: Status): Option.Option<Duration.Duration> {\n const merged =\n (status._tag === \"Fresh\" || status._tag === \"Stale\") && status.snapshot.state._tag === \"Merged\"\n\n return merged ? Option.none() : Option.some(refreshInterval)\n}\n",
23
23
  "import { Clock, Effect } from \"effect\"\n\n/**\n * The current time in whole epoch milliseconds. `Clock` promises only a number, and OpenCode's\n * clock reports fractions, but attachment and failure times are stored as integers.\n */\nexport const currentMillis: Effect.Effect<number> = Effect.map(Clock.currentTimeMillis, Math.floor)\n",
24
- "import { Array as Arr, Context, Effect, Layer, Option, Schema, Semaphore } from \"effect\"\n\nimport type { PullRequestInput, PullRequestRef } from \"../domain/PullRequest.ts\"\nimport { Diagnostic } from \"../domain/Snapshot.ts\"\nimport {\n attach,\n detach,\n detachNumber,\n type AmbiguousPullRequestNumber,\n type AttachmentLimitReached,\n type Removal,\n type Tracking,\n} from \"../domain/Tracking.ts\"\nimport {\n GitHub,\n type GitHubApi,\n type GitHubFailure,\n type ItemResult,\n type Report,\n type RepositoryUnavailable,\n} from \"../ports/GitHub.ts\"\nimport {\n TrackingRepository,\n type StoredStateInvalid,\n type TrackingRepositoryApi,\n} from \"../ports/TrackingRepository.ts\"\nimport { currentMillis } from \"./Time.ts\"\n\n/** GitHub could not report the pull request being attached. */\nexport class PullRequestUnavailable extends Schema.TaggedError<PullRequestUnavailable>()(\n \"PullRequestUnavailable\",\n { diagnostic: Diagnostic, url: Schema.String },\n) {}\n\n/** GitHub reported only part of the pull request's Stack, so attaching all of it is impossible. */\nexport class StackIncomplete extends Schema.TaggedError<StackIncomplete>()(\"StackIncomplete\", {\n url: Schema.String,\n}) {}\n\nexport type AttachFailure =\n | AttachmentLimitReached\n | StackIncomplete\n | GitHubFailure\n | PullRequestUnavailable\n | RepositoryUnavailable\n | StoredStateInvalid\n\nexport interface Attached {\n /** The pull request that was named; its Stack may have brought others with it. */\n readonly ref: PullRequestRef\n /** What GitHub reported for it while attaching. */\n readonly report: Report\n readonly changed: boolean\n /** How many pull requests the named one's Stack has, itself included. */\n readonly stackSize: number\n readonly tracking: Tracking\n}\n\nexport interface TrackerApi {\n readonly list: (sessionID: string) => Effect.Effect<Tracking, StoredStateInvalid>\n /** Attaches a pull request, with its whole Stack. A bare number is resolved in `directory`. */\n readonly attach: (\n sessionID: string,\n input: PullRequestInput,\n directory: string,\n ) => Effect.Effect<Attached, AttachFailure>\n readonly detach: (\n sessionID: string,\n input: PullRequestInput,\n ) => Effect.Effect<Removal, StoredStateInvalid | AmbiguousPullRequestNumber>\n /** Removes everything stored for a session. Safe to repeat. */\n readonly forget: (sessionID: string) => Effect.Effect<void>\n}\n\nexport class Tracker extends Context.Service<Tracker, TrackerApi>()(\n \"opencode-pr-tracker/Tracker\",\n) {}\n\ninterface Discovered {\n readonly report: Report\n /** The pull request's Stack, bottom first; just the pull request when it has none. */\n readonly stack: Arr.NonEmptyReadonlyArray<PullRequestRef>\n}\n\nfunction discovered(\n ref: PullRequestRef,\n result: ItemResult,\n): Effect.Effect<Discovered, PullRequestUnavailable | StackIncomplete> {\n if (result._tag === \"Failed\")\n return Effect.fail(new PullRequestUnavailable({ diagnostic: result.diagnostic, url: ref.url }))\n\n const { report } = result\n\n return Option.match(report.membership, {\n onNone: () => Effect.fail(new StackIncomplete({ url: ref.url })),\n onSome: (membership) =>\n Effect.succeed({\n report,\n stack: membership._tag === \"Stack\" ? membership.members : Arr.of(ref),\n }),\n })\n}\n\n/** Runs one session's operations one at a time, in the order they were requested. */\nfunction sessionLocks(): (\n sessionID: string,\n) => <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R> {\n const locks = new Map<string, Semaphore.Semaphore>()\n\n return (sessionID) => (effect) =>\n Effect.suspend(() => {\n const lock = locks.get(sessionID) ?? Semaphore.makeUnsafe(1)\n\n locks.set(sessionID, lock)\n\n return lock.withPermit(effect)\n })\n}\n\ninterface Services {\n readonly github: GitHubApi\n readonly repository: TrackingRepositoryApi\n}\n\nfunction resolve(\n { github }: Services,\n input: PullRequestInput,\n directory: string,\n): Effect.Effect<PullRequestRef, GitHubFailure | RepositoryUnavailable> {\n return input._tag === \"Reference\"\n ? Effect.succeed(input.ref)\n : github.pullRequestInRepository(directory, input.number)\n}\n\nconst attachTo = Effect.fn(\"Tracker.attach\")(function* (\n services: Services,\n sessionID: string,\n target: Readonly<{ input: PullRequestInput; directory: string }>,\n) {\n const ref = yield* resolve(services, target.input, target.directory)\n const reports = yield* services.github.fetch([ref])\n const missing: ItemResult = { _tag: \"Failed\", diagnostic: \"NotFound\" }\n const { report, stack } = yield* discovered(ref, reports.get(ref.url) ?? missing)\n const current = yield* services.repository.load(sessionID)\n const change = yield* Effect.fromResult(attach(current, stack, yield* currentMillis))\n\n if (change.changed) yield* services.repository.save(sessionID, change.tracking)\n\n return {\n changed: change.changed,\n ref,\n report,\n stackSize: stack.length,\n tracking: change.tracking,\n }\n})\n\nconst detachFrom = Effect.fn(\"Tracker.detach\")(function* (\n { repository }: Services,\n sessionID: string,\n input: PullRequestInput,\n) {\n const current = yield* repository.load(sessionID)\n\n const removal: Removal =\n input._tag === \"Reference\"\n ? detach(current, input.ref)\n : yield* Effect.fromResult(detachNumber(current, input.number))\n\n if (Option.isSome(removal.removed)) yield* repository.save(sessionID, removal.tracking)\n\n return removal\n})\n\nexport const layer = Layer.effect(\n Tracker,\n Effect.gen(function* () {\n const services: Services = { github: yield* GitHub, repository: yield* TrackingRepository }\n const locked = sessionLocks()\n\n return Tracker.of({\n attach: (sessionID, input, directory) =>\n locked(sessionID)(attachTo(services, sessionID, { directory, input })),\n detach: (sessionID, input) => locked(sessionID)(detachFrom(services, sessionID, input)),\n forget: (sessionID) => locked(sessionID)(services.repository.remove(sessionID)),\n list: (sessionID) => services.repository.load(sessionID),\n })\n }),\n)\n",
24
+ "import { Array as Arr, Context, Effect, Layer, Option, Schema } from \"effect\"\n\nimport type { PullRequestInput, PullRequestRef } from \"../domain/PullRequest.ts\"\nimport { Diagnostic } from \"../domain/Snapshot.ts\"\nimport {\n attach,\n detach,\n detachNumber,\n type AmbiguousPullRequestNumber,\n type AttachmentLimitReached,\n type Removal,\n type Tracking,\n} from \"../domain/Tracking.ts\"\nimport {\n GitHub,\n type GitHubApi,\n type GitHubFailure,\n type ItemResult,\n type Report,\n type RepositoryUnavailable,\n} from \"../ports/GitHub.ts\"\nimport {\n TrackingRepository,\n type StoredStateInvalid,\n type TrackingRepositoryApi,\n} from \"../ports/TrackingRepository.ts\"\nimport { SessionLocks } from \"./SessionLocks.ts\"\nimport { currentMillis } from \"./Time.ts\"\n\n/** GitHub could not report the pull request being attached. */\nexport class PullRequestUnavailable extends Schema.TaggedError<PullRequestUnavailable>()(\n \"PullRequestUnavailable\",\n { diagnostic: Diagnostic, url: Schema.String },\n) {}\n\n/** GitHub reported only part of the pull request's Stack, so attaching all of it is impossible. */\nexport class StackIncomplete extends Schema.TaggedError<StackIncomplete>()(\"StackIncomplete\", {\n url: Schema.String,\n}) {}\n\nexport type AttachFailure =\n | AttachmentLimitReached\n | StackIncomplete\n | GitHubFailure\n | PullRequestUnavailable\n | RepositoryUnavailable\n | StoredStateInvalid\n\nexport interface Attached {\n /** The pull request that was named; its Stack may have brought others with it. */\n readonly ref: PullRequestRef\n /** What GitHub reported for it while attaching. */\n readonly report: Report\n readonly changed: boolean\n /** How many pull requests the named one's Stack has, itself included. */\n readonly stackSize: number\n readonly tracking: Tracking\n}\n\nexport interface TrackerApi {\n readonly list: (sessionID: string) => Effect.Effect<Tracking, StoredStateInvalid>\n /** Attaches a pull request, with its whole Stack. A bare number is resolved in `directory`. */\n readonly attach: (\n sessionID: string,\n input: PullRequestInput,\n directory: string,\n ) => Effect.Effect<Attached, AttachFailure>\n readonly detach: (\n sessionID: string,\n input: PullRequestInput,\n ) => Effect.Effect<Removal, StoredStateInvalid | AmbiguousPullRequestNumber>\n /** Removes everything stored for a session. Safe to repeat. */\n readonly forget: (sessionID: string) => Effect.Effect<void>\n}\n\nexport class Tracker extends Context.Service<Tracker, TrackerApi>()(\n \"opencode-pr-tracker/Tracker\",\n) {}\n\ninterface Discovered {\n readonly report: Report\n /** The pull request's Stack, bottom first; just the pull request when it has none. */\n readonly stack: Arr.NonEmptyReadonlyArray<PullRequestRef>\n}\n\nfunction discovered(\n ref: PullRequestRef,\n result: ItemResult,\n): Effect.Effect<Discovered, PullRequestUnavailable | StackIncomplete> {\n if (result._tag === \"Failed\")\n return Effect.fail(new PullRequestUnavailable({ diagnostic: result.diagnostic, url: ref.url }))\n\n const { report } = result\n\n return Option.match(report.membership, {\n onNone: () => Effect.fail(new StackIncomplete({ url: ref.url })),\n onSome: (membership) =>\n Effect.succeed({\n report,\n stack: membership._tag === \"Stack\" ? membership.members : Arr.of(ref),\n }),\n })\n}\n\ninterface Services {\n readonly github: GitHubApi\n readonly repository: TrackingRepositoryApi\n}\n\nfunction resolve(\n { github }: Services,\n input: PullRequestInput,\n directory: string,\n): Effect.Effect<PullRequestRef, GitHubFailure | RepositoryUnavailable> {\n return input._tag === \"Reference\"\n ? Effect.succeed(input.ref)\n : github.pullRequestInRepository(directory, input.number)\n}\n\nconst attachTo = Effect.fn(\"Tracker.attach\")(function* (\n services: Services,\n sessionID: string,\n target: Readonly<{ input: PullRequestInput; directory: string }>,\n) {\n const ref = yield* resolve(services, target.input, target.directory)\n const reports = yield* services.github.fetch([ref])\n const missing: ItemResult = { _tag: \"Failed\", diagnostic: \"NotFound\" }\n const { report, stack } = yield* discovered(ref, reports.get(ref.url) ?? missing)\n const current = yield* services.repository.load(sessionID)\n const change = yield* Effect.fromResult(attach(current, stack, yield* currentMillis))\n\n if (change.changed) yield* services.repository.save(sessionID, change.tracking)\n\n return {\n changed: change.changed,\n ref,\n report,\n stackSize: stack.length,\n tracking: change.tracking,\n }\n})\n\nconst detachFrom = Effect.fn(\"Tracker.detach\")(function* (\n { repository }: Services,\n sessionID: string,\n input: PullRequestInput,\n) {\n const current = yield* repository.load(sessionID)\n\n const removal: Removal =\n input._tag === \"Reference\"\n ? detach(current, input.ref)\n : yield* Effect.fromResult(detachNumber(current, input.number))\n\n if (Option.isSome(removal.removed)) yield* repository.save(sessionID, removal.tracking)\n\n return removal\n})\n\nexport const layer = Layer.effect(\n Tracker,\n Effect.gen(function* () {\n const services: Services = { github: yield* GitHub, repository: yield* TrackingRepository }\n const locks = new SessionLocks()\n\n return Tracker.of({\n attach: (sessionID, input, directory) =>\n locks.run(sessionID, attachTo(services, sessionID, { directory, input })),\n detach: (sessionID, input) => locks.run(sessionID, detachFrom(services, sessionID, input)),\n forget: (sessionID) => locks.run(sessionID, services.repository.remove(sessionID)),\n list: (sessionID) => services.repository.load(sessionID),\n })\n }),\n)\n",
25
+ "import { Effect, Option, Semaphore } from \"effect\"\n\ninterface SessionLock {\n readonly semaphore: Semaphore.Semaphore\n /** Operations queued or running on this lock. */\n readonly users: number\n}\n\n/**\n * Runs each session's operations one at a time. A session's lock is dropped once no operation\n * holds or awaits it; dropping it earlier would let a new operation create a second lock and\n * overlap operations still queued on the first.\n */\nexport class SessionLocks {\n private readonly locks = new Map<string, SessionLock>()\n\n /** How many sessions have operations queued or running. */\n public get held(): number {\n return this.locks.size\n }\n\n public run<A, E, R>(sessionID: string, effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R> {\n return Effect.uninterruptibleMask((restore) =>\n Effect.suspend(() =>\n restore(this.enter(sessionID).withPermit(effect)).pipe(\n Effect.ensuring(\n Effect.sync(() => {\n this.leave(sessionID)\n }),\n ),\n ),\n ),\n )\n }\n\n private enter(sessionID: string): Semaphore.Semaphore {\n const { semaphore, users } = this.locks.get(sessionID) ?? {\n semaphore: Semaphore.makeUnsafe(1),\n users: 0,\n }\n\n this.locks.set(sessionID, { semaphore, users: users + 1 })\n\n return semaphore\n }\n\n private leave(sessionID: string): void {\n const current = Option.fromUndefinedOr(this.locks.get(sessionID))\n\n if (Option.isNone(current)) return\n\n const { semaphore, users } = current.value\n\n if (users === 1) this.locks.delete(sessionID)\n else this.locks.set(sessionID, { semaphore, users: users - 1 })\n }\n}\n",
25
26
  "/**\n * The RPC contract between the server plugin and its clients, including the terminal plugin.\n * Schemas are Standard Schema so both Effect and Promise clients can use them.\n */\nimport { Rpc } from \"@opencode/plugin/rpc\"\nimport { Schema, type StandardSchema } from \"effect\"\n\nimport { PullRequestRef } from \"./domain/PullRequest.ts\"\nimport { Status } from \"./domain/Snapshot.ts\"\nimport { Membership } from \"./domain/StackLayout.ts\"\n\nexport const Layout = Schema.Literals([\"default\", \"compact\"])\n\nexport type Layout = typeof Layout.Type\n\nexport const EntryView = Schema.Struct({\n attachedAt: Schema.Int,\n membership: Schema.NullOr(Membership),\n ref: PullRequestRef,\n status: Status,\n})\n\nexport type EntryView = typeof EntryView.Type\n\n/** A session's attached pull requests, in display order, with the configured sidebar layout. */\nexport const View = Schema.Struct({\n entries: Schema.Array(EntryView),\n layout: Layout,\n sessionID: Schema.String,\n})\n\nexport type View = typeof View.Type\n\n/** A view as clients receive it: plain JSON data. */\nexport type ViewData = typeof View.Encoded\n\nconst Session = Schema.Struct({ sessionID: Schema.String })\n\n/** A pull request URL, with or without `https://`, or a number in the session's repository. */\nconst Target = Schema.Struct({ sessionID: Schema.String, target: Schema.String })\n\n/** The outcome of a change, with a message for the person who asked, and the session's new view. */\nexport const Changed = Schema.Struct({ message: Schema.String, view: View })\n\nexport type Changed = typeof Changed.Type\n\n/** A request that could not be carried out, with a message for the person who made it. */\nconst Rejected = Schema.Struct({ message: Schema.String })\n\n/**\n * The wire form of `schema`: plain JSON data, validated by the plugin's own copy of Effect.\n * OpenCode would handle an Effect schema with its own copy, which can reject values this one\n * accepts, and it sends only JSON, so decoded values such as class instances cannot cross.\n */\nfunction portable<S extends Schema.Top>(\n schema: S,\n): StandardSchema.StandardSchemaV1<S[\"Encoded\"], S[\"Encoded\"]> {\n return { \"~standard\": Schema.toStandardSchemaV1(Schema.toEncoded(schema))[\"~standard\"] }\n}\n\nexport const PullRequestTracker = Rpc.define({\n events: {\n updated: { schema: portable(View) },\n },\n id: \"opencode-pr-tracker\",\n methods: {\n attach: {\n errors: { rejected: portable(Rejected) },\n input: portable(Target),\n output: portable(Changed),\n },\n detach: {\n errors: { rejected: portable(Rejected) },\n input: portable(Target),\n output: portable(Changed),\n },\n list: {\n errors: { rejected: portable(Rejected) },\n input: portable(Session),\n output: portable(View),\n },\n refresh: {\n errors: { rejected: portable(Rejected) },\n input: portable(Session),\n output: portable(View),\n },\n },\n})\n\nexport type PullRequestTracker = typeof PullRequestTracker\n",
26
27
  "import { Array as Arr, Option, Schema } from \"effect\"\n\nimport { PullRequestRef } from \"./PullRequest.ts\"\n\n/** GitHub Stack membership. Members are listed bottom to top. */\nexport const Membership = Schema.Union([\n Schema.TaggedStruct(\"Standalone\", {}),\n Schema.TaggedStruct(\"Stack\", {\n id: Schema.String,\n members: Schema.NonEmptyArray(PullRequestRef),\n }),\n])\n\nexport type Membership = typeof Membership.Type\n\ntype StackMembership = Extract<Membership, { readonly _tag: \"Stack\" }>\n\nexport interface Entry {\n readonly ref: PullRequestRef\n readonly membership: Option.Option<Membership>\n}\n\n/** `first`, `middle` and `last` draw a Stack's boundary; `bullet` is an ordinary pull request. */\nexport type Marker = \"bullet\" | \"first\" | \"middle\" | \"last\"\n\n/** How the line under a row continues: to the next attached member, to unattached members, or not. */\nexport type Connector = \"continues\" | \"open\" | \"none\"\n\nexport type Row<E extends Entry> =\n | {\n readonly _tag: \"PullRequest\"\n readonly entry: E\n readonly marker: Marker\n readonly connector: Connector\n }\n | { readonly _tag: \"Gap\"; readonly count: number }\n\ninterface Placed {\n readonly index: number\n readonly position: number\n readonly size: number\n}\n\n/** Where one entry sits within its Stack's attached members. */\ninterface Place {\n readonly current: Placed\n readonly previous: Option.Option<Placed>\n readonly first: boolean\n readonly last: boolean\n readonly attached: number\n}\n\ninterface Reported {\n readonly index: number\n readonly url: string\n readonly stack: StackMembership\n}\n\nconst stackOf = (entry: Entry): Option.Option<StackMembership> =>\n Option.filter(entry.membership, (membership) => membership._tag === \"Stack\")\n\nconst urlsOf = (stack: StackMembership): string[] => stack.members.map((member) => member.url)\n\nfunction reportsById(entries: readonly Entry[]): Map<string, Reported[]> {\n const byId = new Map<string, Reported[]>()\n\n for (const [index, entry] of entries.entries()) {\n for (const stack of Option.toArray(stackOf(entry))) {\n byId.set(stack.id, [...(byId.get(stack.id) ?? []), { index, stack, url: entry.ref.url }])\n }\n }\n\n return byId\n}\n\n/** Every Stack ID that lists each pull request, across all reported memberships. */\nfunction claims(byId: ReadonlyMap<string, readonly Reported[]>): Map<string, Set<string>> {\n const claimed = new Map<string, Set<string>>()\n\n for (const [id, reports] of byId) {\n for (const url of reports.flatMap((report) => urlsOf(report.stack))) {\n claimed.set(url, new Set([...(claimed.get(url) ?? []), id]))\n }\n }\n\n return claimed\n}\n\nfunction agrees(\n reports: readonly Reported[],\n entries: readonly Entry[],\n claimed: ReadonlyMap<string, ReadonlySet<string>>,\n): boolean {\n const members = Option.match(Arr.head(reports), {\n onNone: (): string[] => [],\n onSome: (report) => urlsOf(report.stack),\n })\n\n const listed = new Set(members)\n const attachedMembers = entries.filter((entry) => listed.has(entry.ref.url))\n\n return (\n listed.size === members.length &&\n reports.every((report) => urlsOf(report.stack).join(\"\\n\") === members.join(\"\\n\")) &&\n members.every((url) => (claimed.get(url) ?? new Set()).size === 1) &&\n attachedMembers.length === reports.length\n )\n}\n\nfunction placements(reports: readonly Reported[]): Option.Option<Placed[]> {\n const placed = reports.map((report) => ({\n index: report.index,\n position: urlsOf(report.stack).indexOf(report.url),\n size: report.stack.members.length,\n }))\n\n const adjacent = Arr.zipWith(\n placed,\n placed.slice(1),\n (before: Placed, after: Placed) =>\n after.index === before.index + 1 && after.position > before.position,\n )\n\n const ordered = placed.every((member: Placed) => member.position >= 0) && adjacent.every(Boolean)\n\n return ordered ? Option.some(placed) : Option.none()\n}\n\n/** Each entry that belongs to a consistent Stack, with its place among the attached members. */\nfunction consistentStacks(entries: readonly Entry[]): Map<number, Place> {\n const byId = reportsById(entries)\n const claimed = claims(byId)\n const places = new Map<number, Place>()\n\n for (const reports of byId.values()) {\n const placed = agrees(reports, entries, claimed) ? placements(reports) : Option.none()\n\n for (const group of Option.toArray(placed)) {\n for (const [step, current] of group.entries()) {\n places.set(current.index, {\n attached: group.length,\n current,\n first: step === 0,\n last: step === group.length - 1,\n previous: Arr.get(group, step - 1),\n })\n }\n }\n }\n\n return places\n}\n\nfunction marker(place: Place): Marker {\n const { current } = place\n\n if (place.attached === 1 && current.size > 1) return \"middle\"\n\n if (place.first && current.position === 0) return \"first\"\n\n if (place.last && current.position === current.size - 1) return \"last\"\n\n return \"middle\"\n}\n\nfunction connector(place: Place): Connector {\n if (!place.last) return \"continues\"\n\n return place.current.position < place.current.size - 1 ? \"open\" : \"none\"\n}\n\nfunction stackRows<E extends Entry>(entry: E, place: Place): Row<E>[] {\n const skipped = Option.match(place.previous, {\n onNone: () => 0,\n onSome: (before) => place.current.position - before.position - 1,\n })\n\n const row: Row<E> = {\n _tag: \"PullRequest\",\n connector: connector(place),\n entry,\n marker: marker(place),\n }\n\n return skipped > 0 ? [{ _tag: \"Gap\", count: skipped }, row] : [row]\n}\n\n/** Sidebar rows in attachment order, with Stack markers and gaps where membership is consistent. */\nexport function layout<E extends Entry>(entries: readonly E[]): Row<E>[] {\n const places = consistentStacks(entries)\n\n return entries.flatMap((entry, index) =>\n Option.match(Option.fromNullishOr(places.get(index)), {\n onNone: (): Row<E>[] => [{ _tag: \"PullRequest\", connector: \"none\", entry, marker: \"bullet\" }],\n onSome: (place) => stackRows(entry, place),\n }),\n )\n}\n",
27
28
  "/** Requests to change a session's attachments, shared by the RPC methods and the agent tools. */\nimport { Effect, Option } from \"effect\"\n\nimport type { MonitorApi, SessionView } from \"../application/Monitor.ts\"\nimport type { TrackerApi } from \"../application/Tracker.ts\"\nimport { parsePullRequestInput, type PullRequestInput } from \"../domain/PullRequest.ts\"\nimport { attachedMessage, detachedMessage, type RequestFailure } from \"../messages.ts\"\nimport type { Changed, Layout, View } from \"../rpc.ts\"\n\nexport interface Services {\n readonly tracker: TrackerApi\n readonly monitor: MonitorApi\n}\n\nexport interface Settings {\n readonly layout: Layout\n /** Where this plugin instance runs; bare pull request numbers resolve in its repository. */\n readonly directory: string\n}\n\nexport function toView(view: SessionView, layout: Layout): View {\n return {\n entries: view.entries.map((entry) => ({\n attachedAt: entry.attachedAt,\n membership: Option.getOrNull(entry.membership),\n ref: entry.ref,\n status: entry.status,\n })),\n layout,\n sessionID: view.sessionID,\n }\n}\n\nconst parseTarget = (target: string): Effect.Effect<PullRequestInput, RequestFailure> =>\n Effect.fromResult(parsePullRequestInput(target))\n\n/** Changes a session's attachments for `target` and reports the change. */\nexport type Change = (sessionID: string, target: string) => Effect.Effect<Changed, RequestFailure>\n\nexport interface Requests {\n /**\n * Attaches `target`, with its Stack, then publishes the session's view. Only Stack members not yet\n * known are fetched; `target` itself was fetched while attaching.\n */\n readonly attach: Change\n /** Detaches `target`, then publishes the session's view, fetching only statuses not yet known. */\n readonly detach: Change\n}\n\nexport function requests({ monitor, tracker }: Services, settings: Settings): Requests {\n return {\n attach: (sessionID, target) =>\n Effect.gen(function* () {\n const attached = yield* tracker.attach(\n sessionID,\n yield* parseTarget(target),\n settings.directory,\n )\n\n const view = yield* monitor.attached(sessionID, attached.ref, attached.report)\n\n return { message: attachedMessage(attached), view: toView(view, settings.layout) }\n }),\n detach: (sessionID, target) =>\n Effect.gen(function* () {\n const removal = yield* tracker.detach(sessionID, yield* parseTarget(target))\n const view = yield* monitor.show(sessionID)\n\n return { message: detachedMessage(removal, target), view: toView(view, settings.layout) }\n }),\n }\n}\n",
@@ -30,7 +31,7 @@
30
31
  "import type { ToolDomain } from \"@opencode/plugin/effect/tool\"\nimport { Tool } from \"@opencode/schema/tool\"\nimport { Effect, Schema, type Scope } from \"effect\"\n\nimport { appearance } from \"../domain/Appearance.ts\"\nimport { failureMessage, type RequestFailure } from \"../messages.ts\"\nimport { requests, type Change, type Services, type Settings } from \"./Requests.ts\"\n\nconst options = { codemode: true, namespace: \"pr\", pinned: true } as const\n\n/** A pull request URL or number. Agents may pass the number as text or as a JSON integer. */\nexport const PullRequestArgument = Schema.Struct({\n pull_request: Schema.Union([Schema.String, Schema.Int]).annotate({\n description:\n \"A pull request URL, such as github.com/owner/repository/pull/123, or a number in this repository\",\n }),\n})\n\nexport type PullRequestArgument = typeof PullRequestArgument.Type\n\ntype PullRequestArgumentSchema = typeof PullRequestArgument\n\n/** The argument as the text the tracker parses. */\nexport const targetOf = ({ pull_request }: PullRequestArgument): string => String(pull_request)\n\nconst NoArguments = Schema.Struct({})\n\ntype NoArguments = typeof NoArguments\n\nconst asToolError = (failure: RequestFailure): Tool.Error =>\n new Tool.Error({ message: failureMessage(failure) })\n\nconst listTool = ({ monitor }: Services): Tool.Info<NoArguments> => ({\n description: \"List the pull requests attached to this session, with their status.\",\n execute: (_input, context) =>\n monitor.view(context.sessionID).pipe(\n Effect.map((view) => ({\n content:\n view.entries.length === 0\n ? \"No pull requests are attached to this session.\"\n : view.entries\n .map((entry) => `- ${entry.ref.url} (${appearance(entry.status).label})`)\n .join(\"\\n\"),\n })),\n Effect.mapError(asToolError),\n ),\n input: NoArguments,\n name: \"list\",\n options,\n})\n\nconst changeTool = (\n name: string,\n description: string,\n change: Change,\n): Tool.Info<PullRequestArgumentSchema> => ({\n description,\n execute: (argument, context) =>\n change(context.sessionID, targetOf(argument)).pipe(\n Effect.map((changed) => ({ content: changed.message })),\n Effect.mapError(asToolError),\n ),\n input: PullRequestArgument,\n name,\n options,\n})\n\n/** Registers the `pr` tools, which act on the calling session. */\nexport function registerTools(\n tools: ToolDomain,\n services: Services,\n settings: Settings,\n): Effect.Effect<unknown, never, Scope.Scope> {\n return tools.transform((editor) => {\n editor.namespace({\n description: \"Pull requests attached to this session and shown in its sidebar\",\n name: \"pr\",\n })\n const changes = requests(services, settings)\n\n editor.add(listTool(services))\n editor.add(\n changeTool(\n \"attach\",\n \"Attach a pull request to this session. Attaching a GitHub Stack member attaches the whole Stack.\",\n changes.attach,\n ),\n )\n editor.add(\n changeTool(\n \"detach\",\n \"Detach a pull request from this session. Other members of its Stack stay attached.\",\n changes.detach,\n ),\n )\n })\n}\n",
31
32
  "import { Match } from \"effect\"\n\nimport type { Diagnostic, PullRequestState, Status } from \"./Snapshot.ts\"\n\nexport type Tone = \"green\" | \"yellow\" | \"red\" | \"purple\" | \"gray\"\n\nexport interface Appearance {\n readonly tone: Tone\n readonly label: string\n readonly strikethrough: boolean\n readonly stale: boolean\n}\n\ntype Open = Extract<PullRequestState, { readonly _tag: \"Open\" }>\n\nconst diagnosticLabels: Record<Diagnostic, string> = {\n AuthenticationRequired: \"authenticate\",\n GitHubCliMissing: \"install gh\",\n GitHubUnavailable: \"GitHub unavailable\",\n InvalidResponse: \"invalid response\",\n NotFound: \"inaccessible\",\n}\n\nconst shown = (tone: Tone, label: string, strikethrough = false): Appearance => ({\n label,\n stale: false,\n strikethrough,\n tone,\n})\n\n/** Precedence: conflict, failed CI, draft, pending CI, behind, then passed or no checks. */\nfunction openAppearance(open: Open): Appearance {\n if (open.mergeability === \"conflicting\") return shown(\"red\", \"conflict\")\n\n if (open.ci === \"failed\") return shown(\"red\", \"failed\")\n\n if (open.draft) return shown(\"gray\", \"draft\")\n\n if (open.ci === \"pending\") return shown(\"yellow\", \"pending\")\n\n if (open.behind) return shown(\"yellow\", \"behind\")\n\n return open.ci === \"passed\" ? shown(\"green\", \"passed\") : shown(\"gray\", \"no checks\")\n}\n\nfunction stateAppearance(state: PullRequestState): Appearance {\n return Match.valueTags(state, {\n Closed: () => shown(\"red\", \"closed\", true),\n Merged: () => shown(\"purple\", \"merged\", true),\n Open: openAppearance,\n })\n}\n\nfunction markStale(fresh: Appearance): Appearance {\n return { label: fresh.label, stale: true, strikethrough: fresh.strikethrough, tone: fresh.tone }\n}\n\nexport function appearance(status: Status): Appearance {\n return Match.valueTags(status, {\n Fresh: ({ snapshot }) => stateAppearance(snapshot.state),\n Pending: () => shown(\"gray\", \"unavailable\"),\n Stale: ({ snapshot }) => markStale(stateAppearance(snapshot.state)),\n Unavailable: ({ diagnostic }) => shown(\"gray\", diagnosticLabels[diagnostic]),\n })\n}\n"
32
33
  ],
33
- "mappings": "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",
34
- "debugId": "2C26781E1C009A7864756E2164756E21",
34
+ "mappings": "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",
35
+ "debugId": "7CB75665EE3FC22164756E2164756E21",
35
36
  "names": []
36
37
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@hcrosse/opencode-pr-tracker",
4
- "version": "0.4.1",
4
+ "version": "0.4.2",
5
5
  "description": "Track GitHub pull requests in the OpenCode sidebar.",
6
6
  "homepage": "https://github.com/hcrosse/opencode-pr-tracker#readme",
7
7
  "bugs": {