vibe-squire 2.2.1 → 2.3.1
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/status/dto/status-snapshot.dto.d.ts +1 -0
- package/dist/status/dto/status-snapshot.dto.js +7 -0
- package/dist/status/dto/status-snapshot.dto.js.map +1 -1
- package/dist/status/status-snapshot.schema.d.ts +1 -0
- package/dist/status/status-snapshot.schema.js +1 -0
- package/dist/status/status-snapshot.schema.js.map +1 -1
- package/dist/status/status.controller.d.ts +1 -0
- package/dist/status/status.service.d.ts +2 -0
- package/dist/status/status.service.js +32 -3
- package/dist/status/status.service.js.map +1 -1
- package/dist/sync/triage-live-state.queries.d.ts +6 -0
- package/dist/sync/triage-live-state.queries.js +27 -0
- package/dist/sync/triage-live-state.queries.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/ui/activity-api.controller.js +3 -20
- package/dist/ui/activity-api.controller.js.map +1 -1
- package/dist/ui/public/operator-activity.js +68 -6
- package/dist/ui/public/operator-shell.js +93 -0
- package/dist/ui/public/operator.css +37 -1
- package/dist/ui/ui-presenter.d.ts +2 -4
- package/dist/ui/ui-presenter.js.map +1 -1
- package/dist/ui/views/partials/nav.hbs +1 -1
- package/package.json +1 -1
|
@@ -17,6 +17,7 @@ const common_1 = require("@nestjs/common");
|
|
|
17
17
|
const swagger_1 = require("@nestjs/swagger");
|
|
18
18
|
const prisma_service_1 = require("../prisma/prisma.service");
|
|
19
19
|
const poll_run_history_service_1 = require("../sync/poll-run-history.service");
|
|
20
|
+
const triage_live_state_queries_1 = require("../sync/triage-live-state.queries");
|
|
20
21
|
const ui_presenter_1 = require("./ui-presenter");
|
|
21
22
|
const DEFAULT_LIMIT = 40;
|
|
22
23
|
const MAX_LIMIT = 100;
|
|
@@ -37,27 +38,9 @@ let ActivityApiController = class ActivityApiController {
|
|
|
37
38
|
}
|
|
38
39
|
const rows = await this.pollRunHistory.listRecentForUi(limit);
|
|
39
40
|
const allPrUrls = new Set(rows.flatMap((r) => r.items.map((i) => i.prUrl)));
|
|
40
|
-
const
|
|
41
|
-
allPrUrls.size > 0
|
|
42
|
-
? this.prisma.syncedPullRequest.findMany({
|
|
43
|
-
where: { prUrl: { in: [...allPrUrls] } },
|
|
44
|
-
select: { prUrl: true },
|
|
45
|
-
})
|
|
46
|
-
: [],
|
|
47
|
-
allPrUrls.size > 0
|
|
48
|
-
? this.prisma.declinedPullRequest.findMany({
|
|
49
|
-
where: { prUrl: { in: [...allPrUrls] } },
|
|
50
|
-
select: { prUrl: true },
|
|
51
|
-
})
|
|
52
|
-
: [],
|
|
53
|
-
]);
|
|
54
|
-
const acceptedPrUrls = new Set(syncedRows.map((r) => r.prUrl));
|
|
55
|
-
const declinedPrUrls = new Set(declinedRows.map((r) => r.prUrl));
|
|
41
|
+
const live = await (0, triage_live_state_queries_1.fetchTriageLiveState)(this.prisma, allPrUrls);
|
|
56
42
|
return {
|
|
57
|
-
runs: (0, ui_presenter_1.presentActivityRunsForView)(rows,
|
|
58
|
-
acceptedPrUrls,
|
|
59
|
-
declinedPrUrls,
|
|
60
|
-
}),
|
|
43
|
+
runs: (0, ui_presenter_1.presentActivityRunsForView)(rows, live),
|
|
61
44
|
};
|
|
62
45
|
}
|
|
63
46
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-api.controller.js","sourceRoot":"","sources":["../../src/ui/activity-api.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwD;AACxD,6CAAuE;AACvE,6DAAyD;AACzD,+EAAyE;AACzE,iDAA4D;AAE5D,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,SAAS,GAAG,GAAG,CAAC;AAIf,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAEb;IACA;IAFnB,YACmB,cAAqC,EACrC,MAAqB;QADrB,mBAAc,GAAd,cAAc,CAAuB;QACrC,WAAM,GAAN,MAAM,CAAe;IACrC,CAAC;IAUE,AAAN,KAAK,CAAC,IAAI,CAAiB,QAAiB;QAC1C,IAAI,KAAK,GAAG,aAAa,CAAC;QAC1B,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACxC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"activity-api.controller.js","sourceRoot":"","sources":["../../src/ui/activity-api.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwD;AACxD,6CAAuE;AACvE,6DAAyD;AACzD,+EAAyE;AACzE,iFAAyE;AACzE,iDAA4D;AAE5D,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,SAAS,GAAG,GAAG,CAAC;AAIf,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAEb;IACA;IAFnB,YACmB,cAAqC,EACrC,MAAqB;QADrB,mBAAc,GAAd,cAAc,CAAuB;QACrC,WAAM,GAAN,MAAM,CAAe;IACrC,CAAC;IAUE,AAAN,KAAK,CAAC,IAAI,CAAiB,QAAiB;QAC1C,IAAI,KAAK,GAAG,aAAa,CAAC;QAC1B,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACxC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,IAAI,GAAG,MAAM,IAAA,gDAAoB,EAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAEhE,OAAO;YACL,IAAI,EAAE,IAAA,yCAA0B,EAAC,IAAI,EAAE,IAAI,CAAC;SAC7C,CAAC;IACJ,CAAC;CACF,CAAA;AA9BY,sDAAqB;AAc1B;IARL,IAAA,YAAG,EAAC,MAAM,CAAC;IACX,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,qDAAqD;KAC/D,CAAC;IACD,IAAA,uBAAa,EAAC;QACb,WAAW,EACT,6EAA6E;KAChF,CAAC;IACU,WAAA,IAAA,cAAK,EAAC,OAAO,CAAC,CAAA;;;;iDAezB;gCA7BU,qBAAqB;IAFjC,IAAA,iBAAO,EAAC,UAAU,CAAC;IACnB,IAAA,mBAAU,EAAC,cAAc,CAAC;qCAGU,gDAAqB;QAC7B,8BAAa;GAH7B,qBAAqB,CA8BjC"}
|
|
@@ -130,10 +130,16 @@
|
|
|
130
130
|
return '';
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
-
function renderItemsTable(items) {
|
|
133
|
+
function renderItemsTable(items, opts) {
|
|
134
134
|
if (!items || !items.length) return '';
|
|
135
|
+
var highlight = opts && opts.highlight;
|
|
135
136
|
applyOptimistic(items);
|
|
136
137
|
var sorted = sortItemsForTriage(items);
|
|
138
|
+
var hasTriageable =
|
|
139
|
+
highlight &&
|
|
140
|
+
sorted.some(function (it) {
|
|
141
|
+
return isTriageable(effectiveOf(it));
|
|
142
|
+
});
|
|
137
143
|
var rows = sorted
|
|
138
144
|
.map(function (it) {
|
|
139
145
|
var detailParts = [];
|
|
@@ -190,10 +196,16 @@
|
|
|
190
196
|
})
|
|
191
197
|
.join('');
|
|
192
198
|
return (
|
|
193
|
-
'<details class="activity-details"
|
|
199
|
+
'<details class="activity-details"' +
|
|
200
|
+
(hasTriageable ? ' open' : '') +
|
|
201
|
+
'>' +
|
|
194
202
|
'<summary class="activity-details-summary">PR details (' +
|
|
195
203
|
items.length +
|
|
196
|
-
')
|
|
204
|
+
')' +
|
|
205
|
+
(hasTriageable
|
|
206
|
+
? ' · <span class="triage-attention-hint">needs attention</span>'
|
|
207
|
+
: '') +
|
|
208
|
+
'</summary>' +
|
|
197
209
|
'<div class="table-wrap activity-items-wrap">' +
|
|
198
210
|
'<table class="data-table activity-items-table">' +
|
|
199
211
|
'<thead><tr><th>PR</th><th>Repo</th><th>Outcome</th><th>Detail</th></tr></thead>' +
|
|
@@ -203,7 +215,8 @@
|
|
|
203
215
|
);
|
|
204
216
|
}
|
|
205
217
|
|
|
206
|
-
function renderRun(r) {
|
|
218
|
+
function renderRun(r, opts) {
|
|
219
|
+
var highlight = opts && opts.highlight;
|
|
207
220
|
var meta =
|
|
208
221
|
'<div class="activity-run-meta">' +
|
|
209
222
|
'<span class="activity-run-time mono">' +
|
|
@@ -265,7 +278,9 @@
|
|
|
265
278
|
'</p>';
|
|
266
279
|
}
|
|
267
280
|
|
|
268
|
-
var details = r.itemCount
|
|
281
|
+
var details = r.itemCount
|
|
282
|
+
? renderItemsTable(r.items, { highlight: highlight })
|
|
283
|
+
: '';
|
|
269
284
|
|
|
270
285
|
return (
|
|
271
286
|
'<div class="card activity-run">' +
|
|
@@ -278,6 +293,44 @@
|
|
|
278
293
|
);
|
|
279
294
|
}
|
|
280
295
|
|
|
296
|
+
function findLatestCompletedRun(runs) {
|
|
297
|
+
for (var i = 0; i < runs.length; i++) {
|
|
298
|
+
if (runs[i].phase === 'completed') return runs[i];
|
|
299
|
+
}
|
|
300
|
+
return null;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
function countTriageableInRun(run) {
|
|
304
|
+
if (!run) return 0;
|
|
305
|
+
var items = run.items || [];
|
|
306
|
+
var seen = {};
|
|
307
|
+
var count = 0;
|
|
308
|
+
for (var i = 0; i < items.length; i++) {
|
|
309
|
+
var eff = items[i].effectiveDecision || items[i].decision;
|
|
310
|
+
if (isTriageable(eff) && !seen[items[i].prUrl]) {
|
|
311
|
+
seen[items[i].prUrl] = true;
|
|
312
|
+
count++;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
return count;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
function renderTriageBanner(latestRun) {
|
|
319
|
+
if (!latestRun) return '';
|
|
320
|
+
applyOptimistic(latestRun.items || []);
|
|
321
|
+
var count = countTriageableInRun(latestRun);
|
|
322
|
+
if (count === 0) return '';
|
|
323
|
+
return (
|
|
324
|
+
'<div class="banner banner-triage-attention">' +
|
|
325
|
+
'<strong>' +
|
|
326
|
+
count +
|
|
327
|
+
' PR' +
|
|
328
|
+
(count === 1 ? '' : 's') +
|
|
329
|
+
'</strong> awaiting your review or decline decision.' +
|
|
330
|
+
'</div>'
|
|
331
|
+
);
|
|
332
|
+
}
|
|
333
|
+
|
|
281
334
|
function renderRuns(runs) {
|
|
282
335
|
if (!runs || !runs.length) {
|
|
283
336
|
return (
|
|
@@ -286,7 +339,16 @@
|
|
|
286
339
|
'</div>'
|
|
287
340
|
);
|
|
288
341
|
}
|
|
289
|
-
|
|
342
|
+
var latestCompleted = findLatestCompletedRun(runs);
|
|
343
|
+
var latestId = latestCompleted && latestCompleted.id;
|
|
344
|
+
return (
|
|
345
|
+
renderTriageBanner(latestCompleted) +
|
|
346
|
+
runs
|
|
347
|
+
.map(function (r) {
|
|
348
|
+
return renderRun(r, { highlight: r.id === latestId });
|
|
349
|
+
})
|
|
350
|
+
.join('')
|
|
351
|
+
);
|
|
290
352
|
}
|
|
291
353
|
|
|
292
354
|
var pollTimer = null;
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
var SSE_EVENT =
|
|
5
5
|
VS.STATUS_SNAPSHOT_EVENT || g.__VS_SSE_EVENT__ || 'vibesquire:status-snapshot';
|
|
6
6
|
var stateEl = document.getElementById('nav-sse-state');
|
|
7
|
+
var badgeEl = document.getElementById('nav-triage-badge');
|
|
7
8
|
|
|
8
9
|
function setSse(s) {
|
|
9
10
|
if (!stateEl) return;
|
|
@@ -11,6 +12,87 @@
|
|
|
11
12
|
stateEl.className = 'sse sse-' + s;
|
|
12
13
|
}
|
|
13
14
|
|
|
15
|
+
/* ── Nav badge ── */
|
|
16
|
+
|
|
17
|
+
function updateTriageBadge(count) {
|
|
18
|
+
if (!badgeEl) return;
|
|
19
|
+
if (count > 0) {
|
|
20
|
+
badgeEl.textContent = String(count);
|
|
21
|
+
badgeEl.hidden = false;
|
|
22
|
+
} else {
|
|
23
|
+
badgeEl.textContent = '';
|
|
24
|
+
badgeEl.hidden = true;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/* ── Web Notifications ── */
|
|
29
|
+
|
|
30
|
+
var lastNotifiedTriageKey = '';
|
|
31
|
+
|
|
32
|
+
function requestNotificationPermission() {
|
|
33
|
+
if (!('Notification' in g)) return;
|
|
34
|
+
if (Notification.permission === 'default') {
|
|
35
|
+
Notification.requestPermission();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function maybeNotifyTriage(count) {
|
|
40
|
+
if (!('Notification' in g) || Notification.permission !== 'granted') return;
|
|
41
|
+
if (count <= 0) {
|
|
42
|
+
lastNotifiedTriageKey = '';
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
var key = String(count);
|
|
46
|
+
if (key === lastNotifiedTriageKey) return;
|
|
47
|
+
lastNotifiedTriageKey = key;
|
|
48
|
+
new Notification('vibe-squire: PRs need triage', {
|
|
49
|
+
body: count + ' PR(s) awaiting your review or decline decision',
|
|
50
|
+
icon: '/ui/assets/favicon.svg',
|
|
51
|
+
tag: 'vs-triage',
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/* ── Favicon notification dot ── */
|
|
56
|
+
|
|
57
|
+
var faviconLink = document.querySelector('link[rel="icon"]');
|
|
58
|
+
var baseFaviconImg = null;
|
|
59
|
+
var faviconCanvas = null;
|
|
60
|
+
var faviconReady = false;
|
|
61
|
+
var lastFaviconHasDot = false;
|
|
62
|
+
|
|
63
|
+
(function initFavicon() {
|
|
64
|
+
if (!faviconLink) return;
|
|
65
|
+
var img = new Image();
|
|
66
|
+
img.onload = function () {
|
|
67
|
+
baseFaviconImg = img;
|
|
68
|
+
faviconCanvas = document.createElement('canvas');
|
|
69
|
+
faviconCanvas.width = 32;
|
|
70
|
+
faviconCanvas.height = 32;
|
|
71
|
+
faviconReady = true;
|
|
72
|
+
};
|
|
73
|
+
img.src = '/ui/assets/favicon.svg';
|
|
74
|
+
})();
|
|
75
|
+
|
|
76
|
+
function setFaviconDot(show) {
|
|
77
|
+
if (!faviconReady || show === lastFaviconHasDot) return;
|
|
78
|
+
lastFaviconHasDot = show;
|
|
79
|
+
var ctx = faviconCanvas.getContext('2d');
|
|
80
|
+
ctx.clearRect(0, 0, 32, 32);
|
|
81
|
+
ctx.drawImage(baseFaviconImg, 0, 0, 32, 32);
|
|
82
|
+
if (show) {
|
|
83
|
+
ctx.beginPath();
|
|
84
|
+
ctx.arc(25, 7, 6, 0, 2 * Math.PI);
|
|
85
|
+
ctx.fillStyle = '#c9a227';
|
|
86
|
+
ctx.fill();
|
|
87
|
+
ctx.lineWidth = 1.5;
|
|
88
|
+
ctx.strokeStyle = '#121815';
|
|
89
|
+
ctx.stroke();
|
|
90
|
+
}
|
|
91
|
+
faviconLink.href = faviconCanvas.toDataURL('image/png');
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/* ── Snapshot dispatch ── */
|
|
95
|
+
|
|
14
96
|
function publishSnapshot(snap) {
|
|
15
97
|
if (!snap || typeof snap !== 'object') return;
|
|
16
98
|
try {
|
|
@@ -18,9 +100,18 @@
|
|
|
18
100
|
} catch {
|
|
19
101
|
/* ignore */
|
|
20
102
|
}
|
|
103
|
+
var triageCount =
|
|
104
|
+
typeof snap.pending_triage_count === 'number'
|
|
105
|
+
? snap.pending_triage_count
|
|
106
|
+
: 0;
|
|
107
|
+
updateTriageBadge(triageCount);
|
|
108
|
+
maybeNotifyTriage(triageCount);
|
|
109
|
+
setFaviconDot(triageCount > 0);
|
|
21
110
|
g.dispatchEvent(new CustomEvent(SSE_EVENT, { detail: snap }));
|
|
22
111
|
}
|
|
23
112
|
|
|
113
|
+
/* ── SSE connection ── */
|
|
114
|
+
|
|
24
115
|
var es = new EventSource('/api/status/stream');
|
|
25
116
|
setSse('connecting');
|
|
26
117
|
es.onopen = function () {
|
|
@@ -40,4 +131,6 @@
|
|
|
40
131
|
/* ignore */
|
|
41
132
|
}
|
|
42
133
|
};
|
|
134
|
+
|
|
135
|
+
requestNotificationPermission();
|
|
43
136
|
})();
|
|
@@ -145,6 +145,23 @@ code {
|
|
|
145
145
|
color: var(--accent);
|
|
146
146
|
}
|
|
147
147
|
|
|
148
|
+
.nav-badge {
|
|
149
|
+
display: inline-flex;
|
|
150
|
+
align-items: center;
|
|
151
|
+
justify-content: center;
|
|
152
|
+
min-width: 1.25rem;
|
|
153
|
+
height: 1.25rem;
|
|
154
|
+
padding: 0 0.35rem;
|
|
155
|
+
border-radius: 999px;
|
|
156
|
+
background: var(--warn);
|
|
157
|
+
color: var(--bg);
|
|
158
|
+
font-size: 0.7rem;
|
|
159
|
+
font-weight: 700;
|
|
160
|
+
font-family: var(--mono);
|
|
161
|
+
margin-left: 0.4rem;
|
|
162
|
+
vertical-align: middle;
|
|
163
|
+
}
|
|
164
|
+
|
|
148
165
|
.nav-foot {
|
|
149
166
|
margin-top: auto;
|
|
150
167
|
font-size: 0.72rem;
|
|
@@ -707,7 +724,8 @@ textarea.input {
|
|
|
707
724
|
|
|
708
725
|
/* Triage rows */
|
|
709
726
|
.triage-pending-row {
|
|
710
|
-
background: rgba(
|
|
727
|
+
background: rgba(201, 162, 39, 0.09);
|
|
728
|
+
border-left: 3px solid var(--warn);
|
|
711
729
|
}
|
|
712
730
|
|
|
713
731
|
.triage-declined-row {
|
|
@@ -719,3 +737,21 @@ textarea.input {
|
|
|
719
737
|
gap: 0.35rem;
|
|
720
738
|
flex-wrap: wrap;
|
|
721
739
|
}
|
|
740
|
+
|
|
741
|
+
.triage-attention-hint {
|
|
742
|
+
color: var(--warn);
|
|
743
|
+
font-weight: 600;
|
|
744
|
+
font-size: 0.82rem;
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
/* Triage attention banner */
|
|
748
|
+
.banner-triage-attention {
|
|
749
|
+
background: rgba(201, 162, 39, 0.12);
|
|
750
|
+
border: 1px solid rgba(201, 162, 39, 0.3);
|
|
751
|
+
border-left: 3px solid var(--warn);
|
|
752
|
+
color: var(--text-strong);
|
|
753
|
+
padding: 0.65rem 1rem;
|
|
754
|
+
border-radius: 6px;
|
|
755
|
+
font-size: 0.9rem;
|
|
756
|
+
margin-bottom: 1rem;
|
|
757
|
+
}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import type { SetupEvaluation } from '../setup/setup-evaluation.service';
|
|
2
2
|
import type { PollRunHistoryService } from '../sync/poll-run-history.service';
|
|
3
3
|
import type { UiNavEntry } from '../ports/ui-nav.types';
|
|
4
|
+
import type { TriageLiveState } from '../sync/triage-live-state.queries';
|
|
5
|
+
export type { TriageLiveState } from '../sync/triage-live-state.queries';
|
|
4
6
|
export type PollRunRowForActivity = Awaited<ReturnType<PollRunHistoryService['listRecentForUi']>>[number];
|
|
5
|
-
export type TriageLiveState = {
|
|
6
|
-
acceptedPrUrls: ReadonlySet<string>;
|
|
7
|
-
declinedPrUrls: ReadonlySet<string>;
|
|
8
|
-
};
|
|
9
7
|
export type ActivityItem = {
|
|
10
8
|
prUrl: string;
|
|
11
9
|
githubRepo: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-presenter.js","sourceRoot":"","sources":["../../src/ui/ui-presenter.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ui-presenter.js","sourceRoot":"","sources":["../../src/ui/ui-presenter.ts"],"names":[],"mappings":"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"}
|