@knpkv/codecommit-core 0.4.0 → 0.5.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/AwsClient/getDifferences.d.ts +16 -0
- package/dist/AwsClient/getDifferences.d.ts.map +1 -0
- package/dist/AwsClient/getDifferences.js +22 -0
- package/dist/AwsClient/getDifferences.js.map +1 -0
- package/dist/AwsClient/getPullRequest.d.ts.map +1 -1
- package/dist/AwsClient/getPullRequest.js +28 -7
- package/dist/AwsClient/getPullRequest.js.map +1 -1
- package/dist/AwsClient/getPullRequests.d.ts.map +1 -1
- package/dist/AwsClient/getPullRequests.js +31 -13
- package/dist/AwsClient/getPullRequests.js.map +1 -1
- package/dist/AwsClient/index.d.ts +21 -13
- package/dist/AwsClient/index.d.ts.map +1 -1
- package/dist/AwsClient/index.js +3 -1
- package/dist/AwsClient/index.js.map +1 -1
- package/dist/AwsClient/internal.d.ts +23 -0
- package/dist/AwsClient/internal.d.ts.map +1 -1
- package/dist/AwsClient/internal.js +4 -1
- package/dist/AwsClient/internal.js.map +1 -1
- package/dist/CacheService/Database.d.ts.map +1 -1
- package/dist/CacheService/Database.js +13 -1
- package/dist/CacheService/Database.js.map +1 -1
- package/dist/CacheService/EventsHub.d.ts +24 -4
- package/dist/CacheService/EventsHub.d.ts.map +1 -1
- package/dist/CacheService/EventsHub.js.map +1 -1
- package/dist/CacheService/index.d.ts +5 -2
- package/dist/CacheService/index.d.ts.map +1 -1
- package/dist/CacheService/index.js +3 -1
- package/dist/CacheService/index.js.map +1 -1
- package/dist/CacheService/migrations/0005_add_sandboxes.d.ts +5 -0
- package/dist/CacheService/migrations/0005_add_sandboxes.d.ts.map +1 -0
- package/dist/CacheService/migrations/0005_add_sandboxes.js +23 -0
- package/dist/CacheService/migrations/0005_add_sandboxes.js.map +1 -0
- package/dist/CacheService/migrations/0006_sandbox_logs.d.ts +5 -0
- package/dist/CacheService/migrations/0006_sandbox_logs.d.ts.map +1 -0
- package/dist/CacheService/migrations/0006_sandbox_logs.js +7 -0
- package/dist/CacheService/migrations/0006_sandbox_logs.js.map +1 -0
- package/dist/CacheService/migrations/0007_stats_columns.d.ts +5 -0
- package/dist/CacheService/migrations/0007_stats_columns.d.ts.map +1 -0
- package/dist/CacheService/migrations/0007_stats_columns.js +13 -0
- package/dist/CacheService/migrations/0007_stats_columns.js.map +1 -0
- package/dist/CacheService/migrations/0008_merged_by.d.ts +5 -0
- package/dist/CacheService/migrations/0008_merged_by.d.ts.map +1 -0
- package/dist/CacheService/migrations/0008_merged_by.js +4 -0
- package/dist/CacheService/migrations/0008_merged_by.js.map +1 -0
- package/dist/CacheService/migrations/0009_approved_by.d.ts +5 -0
- package/dist/CacheService/migrations/0009_approved_by.d.ts.map +1 -0
- package/dist/CacheService/migrations/0009_approved_by.js +4 -0
- package/dist/CacheService/migrations/0009_approved_by.js.map +1 -0
- package/dist/CacheService/migrations/0010_commented_by.d.ts +5 -0
- package/dist/CacheService/migrations/0010_commented_by.d.ts.map +1 -0
- package/dist/CacheService/migrations/0010_commented_by.js +4 -0
- package/dist/CacheService/migrations/0010_commented_by.js.map +1 -0
- package/dist/CacheService/repos/PullRequestRepo/index.d.ts +132 -0
- package/dist/CacheService/repos/PullRequestRepo/index.d.ts.map +1 -0
- package/dist/CacheService/repos/PullRequestRepo/index.js +35 -0
- package/dist/CacheService/repos/PullRequestRepo/index.js.map +1 -0
- package/dist/CacheService/repos/PullRequestRepo/internal.d.ts +72 -0
- package/dist/CacheService/repos/PullRequestRepo/internal.d.ts.map +1 -0
- package/dist/CacheService/repos/PullRequestRepo/internal.js +69 -0
- package/dist/CacheService/repos/PullRequestRepo/internal.js.map +1 -0
- package/dist/CacheService/repos/PullRequestRepo/mutations.d.ts +24 -0
- package/dist/CacheService/repos/PullRequestRepo/mutations.d.ts.map +1 -0
- package/dist/CacheService/repos/PullRequestRepo/mutations.js +94 -0
- package/dist/CacheService/repos/PullRequestRepo/mutations.js.map +1 -0
- package/dist/CacheService/repos/PullRequestRepo/queries.d.ts +113 -0
- package/dist/CacheService/repos/PullRequestRepo/queries.d.ts.map +1 -0
- package/dist/CacheService/repos/PullRequestRepo/queries.js +89 -0
- package/dist/CacheService/repos/PullRequestRepo/queries.js.map +1 -0
- package/dist/CacheService/repos/SandboxRepo.d.ts +116 -0
- package/dist/CacheService/repos/SandboxRepo.d.ts.map +1 -0
- package/dist/CacheService/repos/SandboxRepo.js +88 -0
- package/dist/CacheService/repos/SandboxRepo.js.map +1 -0
- package/dist/CacheService/repos/StatsRepo/index.d.ts +93 -0
- package/dist/CacheService/repos/StatsRepo/index.d.ts.map +1 -0
- package/dist/CacheService/repos/StatsRepo/index.js +41 -0
- package/dist/CacheService/repos/StatsRepo/index.js.map +1 -0
- package/dist/CacheService/repos/StatsRepo/internal.d.ts +120 -0
- package/dist/CacheService/repos/StatsRepo/internal.d.ts.map +1 -0
- package/dist/CacheService/repos/StatsRepo/internal.js +34 -0
- package/dist/CacheService/repos/StatsRepo/internal.js.map +1 -0
- package/dist/CacheService/repos/StatsRepo/queries.d.ts +42 -0
- package/dist/CacheService/repos/StatsRepo/queries.d.ts.map +1 -0
- package/dist/CacheService/repos/StatsRepo/queries.js +182 -0
- package/dist/CacheService/repos/StatsRepo/queries.js.map +1 -0
- package/dist/CacheService/repos/StatsRepo/reviewerData.d.ts +47 -0
- package/dist/CacheService/repos/StatsRepo/reviewerData.d.ts.map +1 -0
- package/dist/CacheService/repos/StatsRepo/reviewerData.js +172 -0
- package/dist/CacheService/repos/StatsRepo/reviewerData.js.map +1 -0
- package/dist/ConfigService/index.d.ts +1 -1
- package/dist/ConfigService/index.d.ts.map +1 -1
- package/dist/ConfigService/index.js +1 -1
- package/dist/ConfigService/index.js.map +1 -1
- package/dist/ConfigService/internal.d.ts +98 -0
- package/dist/ConfigService/internal.d.ts.map +1 -1
- package/dist/ConfigService/internal.js +16 -1
- package/dist/ConfigService/internal.js.map +1 -1
- package/dist/ConfigService/load.d.ts +15 -0
- package/dist/ConfigService/load.d.ts.map +1 -1
- package/dist/ConfigService/load.js +10 -3
- package/dist/ConfigService/load.js.map +1 -1
- package/dist/ConfigService/reset.d.ts.map +1 -1
- package/dist/ConfigService/reset.js +3 -2
- package/dist/ConfigService/reset.js.map +1 -1
- package/dist/DateUtils.d.ts +28 -0
- package/dist/DateUtils.d.ts.map +1 -1
- package/dist/DateUtils.js +69 -1
- package/dist/DateUtils.js.map +1 -1
- package/dist/Domain.d.ts +87 -5
- package/dist/Domain.d.ts.map +1 -1
- package/dist/Domain.js +38 -5
- package/dist/Domain.js.map +1 -1
- package/dist/Errors.d.ts +28 -1
- package/dist/Errors.d.ts.map +1 -1
- package/dist/Errors.js +22 -1
- package/dist/Errors.js.map +1 -1
- package/dist/PRService/index.d.ts +3 -3
- package/dist/PRService/index.d.ts.map +1 -1
- package/dist/PRService/index.js +1 -1
- package/dist/PRService/index.js.map +1 -1
- package/dist/PRService/internal.d.ts +24 -2
- package/dist/PRService/internal.d.ts.map +1 -1
- package/dist/PRService/internal.js +23 -8
- package/dist/PRService/internal.js.map +1 -1
- package/dist/PRService/refresh.d.ts +1 -1
- package/dist/PRService/refresh.d.ts.map +1 -1
- package/dist/PRService/refresh.js +2 -0
- package/dist/PRService/refresh.js.map +1 -1
- package/dist/PRService/refreshDiffs.d.ts +16 -0
- package/dist/PRService/refreshDiffs.d.ts.map +1 -0
- package/dist/PRService/refreshDiffs.js +54 -0
- package/dist/PRService/refreshDiffs.js.map +1 -0
- package/dist/PRService/refreshEnrich.d.ts +1 -1
- package/dist/PRService/refreshEnrich.d.ts.map +1 -1
- package/dist/PRService/refreshEnrich.js +3 -1
- package/dist/PRService/refreshEnrich.js.map +1 -1
- package/dist/PRService/refreshFetch.d.ts +1 -1
- package/dist/PRService/refreshFetch.d.ts.map +1 -1
- package/dist/PRService/refreshFetch.js +12 -3
- package/dist/PRService/refreshFetch.js.map +1 -1
- package/dist/PRService/refreshHistory.d.ts +19 -0
- package/dist/PRService/refreshHistory.d.ts.map +1 -0
- package/dist/PRService/refreshHistory.js +110 -0
- package/dist/PRService/refreshHistory.js.map +1 -0
- package/dist/PRService/refreshResolve.d.ts +1 -1
- package/dist/PRService/refreshResolve.d.ts.map +1 -1
- package/dist/PRService/refreshResolve.js +1 -1
- package/dist/PRService/refreshResolve.js.map +1 -1
- package/dist/PRService/refreshScore.d.ts +1 -1
- package/dist/PRService/refreshScore.d.ts.map +1 -1
- package/dist/PRService/refreshScore.js +1 -1
- package/dist/PRService/refreshScore.js.map +1 -1
- package/dist/PRService/refreshSinglePR.d.ts +1 -1
- package/dist/PRService/refreshSinglePR.d.ts.map +1 -1
- package/dist/PRService/refreshSinglePR.js +4 -3
- package/dist/PRService/refreshSinglePR.js.map +1 -1
- package/dist/SandboxService/DockerService.d.ts +57 -0
- package/dist/SandboxService/DockerService.d.ts.map +1 -0
- package/dist/SandboxService/DockerService.js +83 -0
- package/dist/SandboxService/DockerService.js.map +1 -0
- package/dist/SandboxService/PluginService.d.ts +38 -0
- package/dist/SandboxService/PluginService.d.ts.map +1 -0
- package/dist/SandboxService/PluginService.js +26 -0
- package/dist/SandboxService/PluginService.js.map +1 -0
- package/dist/SandboxService/SandboxService.d.ts +102 -0
- package/dist/SandboxService/SandboxService.d.ts.map +1 -0
- package/dist/SandboxService/SandboxService.js +272 -0
- package/dist/SandboxService/SandboxService.js.map +1 -0
- package/dist/SandboxService/index.d.ts +13 -0
- package/dist/SandboxService/index.d.ts.map +1 -0
- package/dist/SandboxService/index.js +10 -0
- package/dist/SandboxService/index.js.map +1 -0
- package/dist/SandboxService/plugins/ClaudeCodePlugin.d.ts +18 -0
- package/dist/SandboxService/plugins/ClaudeCodePlugin.d.ts.map +1 -0
- package/dist/SandboxService/plugins/ClaudeCodePlugin.js +24 -0
- package/dist/SandboxService/plugins/ClaudeCodePlugin.js.map +1 -0
- package/dist/StatsService/WeeklyStats.d.ts +174 -0
- package/dist/StatsService/WeeklyStats.d.ts.map +1 -0
- package/dist/StatsService/WeeklyStats.js +110 -0
- package/dist/StatsService/WeeklyStats.js.map +1 -0
- package/dist/StatsService/index.d.ts +45 -0
- package/dist/StatsService/index.d.ts.map +1 -0
- package/dist/StatsService/index.js +145 -0
- package/dist/StatsService/index.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/CacheService/repos/PullRequestRepo.d.ts +0 -112
- package/dist/CacheService/repos/PullRequestRepo.d.ts.map +0 -1
- package/dist/CacheService/repos/PullRequestRepo.js +0 -146
- package/dist/CacheService/repos/PullRequestRepo.js.map +0 -1
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { Effect, Schema } from "effect";
|
|
2
|
+
import { cacheError, extractComments, LocationsFromJson, whereFilters } from "./internal.js";
|
|
3
|
+
export const reviewerData = (sql) => (weekStart, weekEnd, filters) => {
|
|
4
|
+
const f = whereFilters(sql, filters);
|
|
5
|
+
const fJoin = whereFilters(sql, filters, "p");
|
|
6
|
+
return Effect.all({
|
|
7
|
+
prs: sql `
|
|
8
|
+
SELECT id, title, author, aws_account_id, repository_name, creation_date, closed_at,
|
|
9
|
+
COALESCE(closed_at, last_modified_date) as last_modified_date, is_approved, status, merged_by, approved_by
|
|
10
|
+
FROM pull_requests
|
|
11
|
+
WHERE COALESCE(closed_at, last_modified_date) >= ${weekStart} AND COALESCE(closed_at, last_modified_date) < ${weekEnd}
|
|
12
|
+
AND status != 'CLOSED'
|
|
13
|
+
${f.repo} ${f.author} ${f.account}
|
|
14
|
+
`,
|
|
15
|
+
comments: sql `
|
|
16
|
+
SELECT c.pull_request_id, c.aws_account_id, c.locations_json
|
|
17
|
+
FROM pr_comments c
|
|
18
|
+
INNER JOIN pull_requests p ON p.id = c.pull_request_id AND p.aws_account_id = c.aws_account_id
|
|
19
|
+
WHERE COALESCE(p.closed_at, p.last_modified_date) >= ${weekStart} AND COALESCE(p.closed_at, p.last_modified_date) < ${weekEnd}
|
|
20
|
+
AND p.status != 'CLOSED'
|
|
21
|
+
${fJoin.repo} ${fJoin.author} ${fJoin.account}
|
|
22
|
+
`
|
|
23
|
+
}).pipe(Effect.flatMap(({ comments, prs }) => Effect.gen(function* () {
|
|
24
|
+
const prAuthors = new Map(prs.map((p) => [
|
|
25
|
+
`${p.awsAccountId}:${p.id}`,
|
|
26
|
+
{
|
|
27
|
+
id: p.id,
|
|
28
|
+
title: p.title,
|
|
29
|
+
author: p.author,
|
|
30
|
+
repositoryName: p.repositoryName,
|
|
31
|
+
awsAccountId: p.awsAccountId,
|
|
32
|
+
creationDate: new Date(p.creationDate),
|
|
33
|
+
closedAt: p.closedAt ? new Date(p.closedAt) : null,
|
|
34
|
+
lastModifiedDate: new Date(p.lastModifiedDate),
|
|
35
|
+
isApproved: p.isApproved === 1,
|
|
36
|
+
isMerged: p.status === "MERGED",
|
|
37
|
+
mergedBy: p.mergedBy,
|
|
38
|
+
approvedBy: p.approvedBy
|
|
39
|
+
? p.approvedBy.split(",").map((s) => s.trim()).filter((s) => s && s !== p.author)
|
|
40
|
+
: []
|
|
41
|
+
}
|
|
42
|
+
]));
|
|
43
|
+
// Top approvers — from approved_by column (comma-separated names)
|
|
44
|
+
const approverCounts = new Map();
|
|
45
|
+
for (const p of prs) {
|
|
46
|
+
if (p.approvedBy) {
|
|
47
|
+
for (const name of p.approvedBy.split(",")) {
|
|
48
|
+
const trimmed = name.trim();
|
|
49
|
+
if (trimmed && trimmed !== p.author) {
|
|
50
|
+
approverCounts.set(trimmed, (approverCounts.get(trimmed) ?? 0) + 1);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
const reviewerCounts = new Map();
|
|
56
|
+
const firstReviewDeltas = [];
|
|
57
|
+
const firstReviewDetails = [];
|
|
58
|
+
const feedbackDeltas = [];
|
|
59
|
+
const feedbackDetails = [];
|
|
60
|
+
const prsWithCommentReview = new Set();
|
|
61
|
+
const wsMs = new Date(weekStart).getTime();
|
|
62
|
+
const weMs = new Date(weekEnd).getTime();
|
|
63
|
+
const fmtTs = (d) => d.toISOString().slice(0, 16).replace("T", " ");
|
|
64
|
+
for (const row of comments) {
|
|
65
|
+
const key = `${row.awsAccountId}:${row.pullRequestId}`;
|
|
66
|
+
const prInfo = prAuthors.get(key);
|
|
67
|
+
if (!prInfo)
|
|
68
|
+
continue;
|
|
69
|
+
const parsed = yield* Schema.decodeUnknown(LocationsFromJson)(row.locationsJson).pipe(Effect.catchAll(() => Effect.succeed([])));
|
|
70
|
+
const allComments = extractComments(parsed);
|
|
71
|
+
const sorted = [...allComments].sort((a, b) => a.creationDate.getTime() - b.creationDate.getTime());
|
|
72
|
+
// Filter to week range
|
|
73
|
+
const inWeek = sorted.filter((c) => c.creationDate.getTime() >= wsMs && c.creationDate.getTime() < weMs);
|
|
74
|
+
// Top reviewers — comments in this week (exclude self-reviews)
|
|
75
|
+
for (const c of inWeek) {
|
|
76
|
+
if (c.author !== prInfo.author) {
|
|
77
|
+
reviewerCounts.set(c.author, (reviewerCounts.get(c.author) ?? 0) + 1);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// (mergedBy-based approver counting moved above comment loop)
|
|
81
|
+
// Time to first review (comment action)
|
|
82
|
+
const firstReview = sorted.find((c) => c.author !== prInfo.author);
|
|
83
|
+
if (firstReview) {
|
|
84
|
+
prsWithCommentReview.add(key);
|
|
85
|
+
const durationMs = firstReview.creationDate.getTime() - prInfo.creationDate.getTime();
|
|
86
|
+
firstReviewDeltas.push(durationMs);
|
|
87
|
+
firstReviewDetails.push({
|
|
88
|
+
prId: prInfo.id,
|
|
89
|
+
prTitle: prInfo.title,
|
|
90
|
+
author: prInfo.author,
|
|
91
|
+
repositoryName: prInfo.repositoryName,
|
|
92
|
+
awsAccountId: prInfo.awsAccountId,
|
|
93
|
+
durationMs,
|
|
94
|
+
fromLabel: fmtTs(prInfo.creationDate),
|
|
95
|
+
toLabel: `${fmtTs(firstReview.creationDate)} (${firstReview.author})`
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
// Time to address feedback (review comment → next author reply)
|
|
99
|
+
const prFeedbackDeltas = [];
|
|
100
|
+
let firstFeedbackFrom;
|
|
101
|
+
let lastFeedbackTo;
|
|
102
|
+
for (let i = 0; i < sorted.length; i++) {
|
|
103
|
+
if (sorted[i].author !== prInfo.author) {
|
|
104
|
+
const nextAuthorReply = sorted.slice(i + 1).find((c) => c.author === prInfo.author);
|
|
105
|
+
if (nextAuthorReply) {
|
|
106
|
+
const dMs = nextAuthorReply.creationDate.getTime() - sorted[i].creationDate.getTime();
|
|
107
|
+
feedbackDeltas.push(dMs);
|
|
108
|
+
prFeedbackDeltas.push(dMs);
|
|
109
|
+
if (!firstFeedbackFrom)
|
|
110
|
+
firstFeedbackFrom = sorted[i].creationDate;
|
|
111
|
+
lastFeedbackTo = nextAuthorReply.creationDate;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
if (prFeedbackDeltas.length > 0) {
|
|
116
|
+
const avgMs = prFeedbackDeltas.reduce((a, b) => a + b, 0) / prFeedbackDeltas.length;
|
|
117
|
+
feedbackDetails.push({
|
|
118
|
+
prId: prInfo.id,
|
|
119
|
+
prTitle: prInfo.title,
|
|
120
|
+
author: prInfo.author,
|
|
121
|
+
repositoryName: prInfo.repositoryName,
|
|
122
|
+
awsAccountId: prInfo.awsAccountId,
|
|
123
|
+
durationMs: avgMs,
|
|
124
|
+
fromLabel: `${fmtTs(firstFeedbackFrom)} (${prFeedbackDeltas.length} rounds)`,
|
|
125
|
+
toLabel: fmtTs(lastFeedbackTo)
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
// Approve-only first review: PRs approved by non-author but without non-author comments
|
|
130
|
+
for (const [key, prInfo] of prAuthors) {
|
|
131
|
+
if (prsWithCommentReview.has(key))
|
|
132
|
+
continue;
|
|
133
|
+
if (prInfo.approvedBy.length === 0)
|
|
134
|
+
continue;
|
|
135
|
+
// Use closed_at (merge time) as proxy for approval time
|
|
136
|
+
const reviewDate = prInfo.closedAt ?? prInfo.lastModifiedDate;
|
|
137
|
+
const durationMs = reviewDate.getTime() - prInfo.creationDate.getTime();
|
|
138
|
+
if (durationMs <= 0)
|
|
139
|
+
continue;
|
|
140
|
+
firstReviewDeltas.push(durationMs);
|
|
141
|
+
firstReviewDetails.push({
|
|
142
|
+
prId: prInfo.id,
|
|
143
|
+
prTitle: prInfo.title,
|
|
144
|
+
author: prInfo.author,
|
|
145
|
+
repositoryName: prInfo.repositoryName,
|
|
146
|
+
awsAccountId: prInfo.awsAccountId,
|
|
147
|
+
durationMs,
|
|
148
|
+
fromLabel: fmtTs(prInfo.creationDate),
|
|
149
|
+
toLabel: `${fmtTs(reviewDate)} (approved: ${prInfo.approvedBy[0]})`
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
const topReviewers = [...reviewerCounts.entries()]
|
|
153
|
+
.map(([author, commentCount]) => ({ author, commentCount }))
|
|
154
|
+
.sort((a, b) => b.commentCount - a.commentCount)
|
|
155
|
+
.slice(0, 10);
|
|
156
|
+
const topApprovers = [...approverCounts.entries()]
|
|
157
|
+
.map(([author, approvalCount]) => ({ author, approvalCount }))
|
|
158
|
+
.sort((a, b) => b.approvalCount - a.approvalCount)
|
|
159
|
+
.slice(0, 10);
|
|
160
|
+
const avg = (arr) => arr.length > 0 ? arr.reduce((a, b) => a + b, 0) / arr.length : null;
|
|
161
|
+
return {
|
|
162
|
+
topReviewers,
|
|
163
|
+
topApprovers,
|
|
164
|
+
avgTimeToFirstReview: avg(firstReviewDeltas),
|
|
165
|
+
avgTimeToMerge: null, // computed separately from PR dates
|
|
166
|
+
avgTimeToAddressFeedback: avg(feedbackDeltas),
|
|
167
|
+
firstReviewDetails,
|
|
168
|
+
feedbackDetails
|
|
169
|
+
};
|
|
170
|
+
}).pipe(Effect.withSpan("StatsRepo.reviewerData.compute"))), cacheError("reviewerData"));
|
|
171
|
+
};
|
|
172
|
+
//# sourceMappingURL=reviewerData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reviewerData.js","sourceRoot":"","sources":["../../../../src/CacheService/repos/StatsRepo/reviewerData.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ import { ConfigError, ProfileDetectionError } from "../Errors.js";
|
|
|
11
11
|
import type { ConfigParseError } from "../Errors.js";
|
|
12
12
|
import type { DetectedProfile, TuiConfig } from "./internal.js";
|
|
13
13
|
import type { ConfigValidationResult } from "./validate.js";
|
|
14
|
-
export { AccountConfig, DetectedProfile, TuiConfig } from "./internal.js";
|
|
14
|
+
export { AccountConfig, defaultSandboxConfig, DetectedProfile, SandboxConfig, TuiConfig } from "./internal.js";
|
|
15
15
|
export { ConfigValidationResult } from "./validate.js";
|
|
16
16
|
declare const ConfigService_base: Context.TagClass<ConfigService, "@knpkv/codecommit-core/ConfigService", {
|
|
17
17
|
readonly load: Effect.Effect<TuiConfig, ConfigError | ConfigParseError>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ConfigService/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAU,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAGpD,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAK/D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAG3D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ConfigService/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAU,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAGpD,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAK/D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAG3D,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9G,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;;mBASnC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,GAAG,gBAAgB,CAAC;mBACxD,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC;6BAC7C,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,qBAAqB,CAAC;4BACrE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC;qBACzC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC;oBACnC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,GAAG,qBAAqB,CAAC;uBAC1D,MAAM,CAAC,MAAM,CAAC,sBAAsB,EAAE,WAAW,CAAC;;AATzE,qBAAa,aAAc,SAAQ,kBAWhC;CAAG;AAoCN,eAAO,MAAM,iBAAiB,kFAsBQ,CAAA"}
|
|
@@ -8,7 +8,7 @@ import { makeLoad } from "./load.js";
|
|
|
8
8
|
import { makeReset } from "./reset.js";
|
|
9
9
|
import { save } from "./save.js";
|
|
10
10
|
import { validate } from "./validate.js";
|
|
11
|
-
export { AccountConfig, DetectedProfile, TuiConfig } from "./internal.js";
|
|
11
|
+
export { AccountConfig, defaultSandboxConfig, DetectedProfile, SandboxConfig, TuiConfig } from "./internal.js";
|
|
12
12
|
export { ConfigValidationResult } from "./validate.js";
|
|
13
13
|
// ---------------------------------------------------------------------------
|
|
14
14
|
// Service Definition
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ConfigService/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAEjE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ConfigService/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,55 @@ declare const DetectedProfile_base: Schema.Class<DetectedProfile, {
|
|
|
21
21
|
}, {}, {}>;
|
|
22
22
|
export declare class DetectedProfile extends DetectedProfile_base {
|
|
23
23
|
}
|
|
24
|
+
export declare const SandboxConfig: Schema.Struct<{
|
|
25
|
+
image: Schema.optionalWith<typeof Schema.String, {
|
|
26
|
+
default: () => string;
|
|
27
|
+
}>;
|
|
28
|
+
extensions: Schema.optionalWith<Schema.Array$<typeof Schema.String>, {
|
|
29
|
+
default: () => Array<string>;
|
|
30
|
+
}>;
|
|
31
|
+
setupCommands: Schema.optionalWith<Schema.Array$<typeof Schema.String>, {
|
|
32
|
+
default: () => Array<string>;
|
|
33
|
+
}>;
|
|
34
|
+
env: Schema.optionalWith<Schema.Record$<typeof Schema.String, typeof Schema.String>, {
|
|
35
|
+
default: () => Record<string, string>;
|
|
36
|
+
}>;
|
|
37
|
+
enableClaudeCode: Schema.optionalWith<typeof Schema.Boolean, {
|
|
38
|
+
default: () => true;
|
|
39
|
+
}>;
|
|
40
|
+
volumeMounts: Schema.optionalWith<Schema.Array$<Schema.Struct<{
|
|
41
|
+
hostPath: typeof Schema.String;
|
|
42
|
+
containerPath: typeof Schema.String;
|
|
43
|
+
readonly: Schema.optionalWith<typeof Schema.Boolean, {
|
|
44
|
+
default: () => false;
|
|
45
|
+
}>;
|
|
46
|
+
}>>, {
|
|
47
|
+
default: () => Array<{
|
|
48
|
+
hostPath: string;
|
|
49
|
+
containerPath: string;
|
|
50
|
+
readonly: boolean;
|
|
51
|
+
}>;
|
|
52
|
+
}>;
|
|
53
|
+
cloneDepth: Schema.optionalWith<Schema.filter<Schema.filter<typeof Schema.Number>>, {
|
|
54
|
+
default: () => number;
|
|
55
|
+
}>;
|
|
56
|
+
}>;
|
|
57
|
+
export type SandboxConfig = typeof SandboxConfig.Type;
|
|
58
|
+
export declare const defaultSandboxConfig: {
|
|
59
|
+
readonly image: string;
|
|
60
|
+
readonly extensions: readonly string[];
|
|
61
|
+
readonly setupCommands: readonly string[];
|
|
62
|
+
readonly env: {
|
|
63
|
+
readonly [x: string]: string;
|
|
64
|
+
};
|
|
65
|
+
readonly enableClaudeCode: boolean;
|
|
66
|
+
readonly volumeMounts: readonly {
|
|
67
|
+
readonly hostPath: string;
|
|
68
|
+
readonly containerPath: string;
|
|
69
|
+
readonly readonly: boolean;
|
|
70
|
+
}[];
|
|
71
|
+
readonly cloneDepth: number;
|
|
72
|
+
};
|
|
24
73
|
export declare const AccountConfig: Schema.Struct<{
|
|
25
74
|
profile: Schema.brand<typeof Schema.String, "AwsProfileName">;
|
|
26
75
|
regions: Schema.optionalWith<Schema.Array$<Schema.brand<typeof Schema.String, "AwsRegion">>, {
|
|
@@ -50,6 +99,55 @@ export declare const TuiConfig: Schema.Struct<{
|
|
|
50
99
|
refreshIntervalSeconds: Schema.optionalWith<typeof Schema.Number, {
|
|
51
100
|
default: () => number;
|
|
52
101
|
}>;
|
|
102
|
+
sandbox: Schema.optionalWith<Schema.Struct<{
|
|
103
|
+
image: Schema.optionalWith<typeof Schema.String, {
|
|
104
|
+
default: () => string;
|
|
105
|
+
}>;
|
|
106
|
+
extensions: Schema.optionalWith<Schema.Array$<typeof Schema.String>, {
|
|
107
|
+
default: () => Array<string>;
|
|
108
|
+
}>;
|
|
109
|
+
setupCommands: Schema.optionalWith<Schema.Array$<typeof Schema.String>, {
|
|
110
|
+
default: () => Array<string>;
|
|
111
|
+
}>;
|
|
112
|
+
env: Schema.optionalWith<Schema.Record$<typeof Schema.String, typeof Schema.String>, {
|
|
113
|
+
default: () => Record<string, string>;
|
|
114
|
+
}>;
|
|
115
|
+
enableClaudeCode: Schema.optionalWith<typeof Schema.Boolean, {
|
|
116
|
+
default: () => true;
|
|
117
|
+
}>;
|
|
118
|
+
volumeMounts: Schema.optionalWith<Schema.Array$<Schema.Struct<{
|
|
119
|
+
hostPath: typeof Schema.String;
|
|
120
|
+
containerPath: typeof Schema.String;
|
|
121
|
+
readonly: Schema.optionalWith<typeof Schema.Boolean, {
|
|
122
|
+
default: () => false;
|
|
123
|
+
}>;
|
|
124
|
+
}>>, {
|
|
125
|
+
default: () => Array<{
|
|
126
|
+
hostPath: string;
|
|
127
|
+
containerPath: string;
|
|
128
|
+
readonly: boolean;
|
|
129
|
+
}>;
|
|
130
|
+
}>;
|
|
131
|
+
cloneDepth: Schema.optionalWith<Schema.filter<Schema.filter<typeof Schema.Number>>, {
|
|
132
|
+
default: () => number;
|
|
133
|
+
}>;
|
|
134
|
+
}>, {
|
|
135
|
+
default: () => {
|
|
136
|
+
readonly image: string;
|
|
137
|
+
readonly extensions: readonly string[];
|
|
138
|
+
readonly setupCommands: readonly string[];
|
|
139
|
+
readonly env: {
|
|
140
|
+
readonly [x: string]: string;
|
|
141
|
+
};
|
|
142
|
+
readonly enableClaudeCode: boolean;
|
|
143
|
+
readonly volumeMounts: readonly {
|
|
144
|
+
readonly hostPath: string;
|
|
145
|
+
readonly containerPath: string;
|
|
146
|
+
readonly readonly: boolean;
|
|
147
|
+
}[];
|
|
148
|
+
readonly cloneDepth: number;
|
|
149
|
+
};
|
|
150
|
+
}>;
|
|
53
151
|
}>;
|
|
54
152
|
export type TuiConfig = typeof TuiConfig.Type;
|
|
55
153
|
export declare const parseAwsConfig: (content: string) => ReadonlyArray<DetectedProfile>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/ConfigService/internal.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAgB,OAAO,EAAgB,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEpE,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;;;;;;;;;;;;;;;;AAMtE,qBAAa,eAAgB,SAAQ,oBAGnC;CAAG;AAEL,eAAO,MAAM,aAAa;;;;;;;;EAIxB,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAA;AAErD,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/ConfigService/internal.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAgB,OAAO,EAAgB,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEpE,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;;;;;;;;;;;;;;;;AAMtE,qBAAa,eAAgB,SAAQ,oBAGnC;CAAG;AAEL,eAAO,MAAM,aAAa;;;;;uBAEgE,KAAK,CAAC,MAAM,CAAC;;;uBACV,KAAK,CAAC,MAAM,CAAC;;;uBAEzD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;;;;;;;;;;;uBAUxB,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,aAAa,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,OAAO,CAAA;SAAE,CAAC;;;;;EAOlH,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAA;AAErD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;CAAuC,CAAA;AAExE,eAAO,MAAM,aAAa;;;;;;;;EAIxB,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAA;AAErD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;2BAlCoE,KAAK,CAAC,MAAM,CAAC;;;2BACV,KAAK,CAAC,MAAM,CAAC;;;2BAEzD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;;;;;;;;;;;2BAUxB,KAAK,CAAC;gBAAE,QAAQ,EAAE,MAAM,CAAC;gBAAC,aAAa,EAAE,MAAM,CAAC;gBAAC,QAAQ,EAAE,OAAO,CAAA;aAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;EA2BlH,CAAA;AAEF,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAA;AAqC7C,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,KAAG,aAAa,CAAC,eAAe,CAK3E,CAAA;;yBASsB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC;uBACpC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC;;AAJnE,qBAAa,WAAY,SAAQ,gBAM9B;CAAG"}
|
|
@@ -8,6 +8,20 @@ export class DetectedProfile extends Schema.Class("DetectedProfile")({
|
|
|
8
8
|
region: Schema.optionalWith(AwsRegion, { exact: true })
|
|
9
9
|
}) {
|
|
10
10
|
}
|
|
11
|
+
export const SandboxConfig = Schema.Struct({
|
|
12
|
+
image: Schema.String.pipe(Schema.optionalWith({ default: () => "codercom/code-server:latest" })),
|
|
13
|
+
extensions: Schema.Array(Schema.String).pipe(Schema.optionalWith({ default: () => [] })),
|
|
14
|
+
setupCommands: Schema.Array(Schema.String).pipe(Schema.optionalWith({ default: () => [] })),
|
|
15
|
+
env: Schema.Record({ key: Schema.String, value: Schema.String }).pipe(Schema.optionalWith({ default: () => ({}) })),
|
|
16
|
+
enableClaudeCode: Schema.Boolean.pipe(Schema.optionalWith({ default: () => true })),
|
|
17
|
+
volumeMounts: Schema.Array(Schema.Struct({
|
|
18
|
+
hostPath: Schema.String,
|
|
19
|
+
containerPath: Schema.String,
|
|
20
|
+
readonly: Schema.Boolean.pipe(Schema.optionalWith({ default: () => false }))
|
|
21
|
+
})).pipe(Schema.optionalWith({ default: () => [] })),
|
|
22
|
+
cloneDepth: Schema.Number.pipe(Schema.int(), Schema.greaterThanOrEqualTo(0), Schema.optionalWith({ default: () => 0 }))
|
|
23
|
+
});
|
|
24
|
+
export const defaultSandboxConfig = Schema.decodeSync(SandboxConfig)({});
|
|
11
25
|
export const AccountConfig = Schema.Struct({
|
|
12
26
|
profile: AwsProfileName,
|
|
13
27
|
regions: Schema.Array(AwsRegion).pipe(Schema.optionalWith({ default: () => ["us-east-1"] })),
|
|
@@ -17,7 +31,8 @@ export const TuiConfig = Schema.Struct({
|
|
|
17
31
|
accounts: Schema.Array(AccountConfig),
|
|
18
32
|
autoDetect: Schema.Boolean.pipe(Schema.optionalWith({ default: () => true })),
|
|
19
33
|
autoRefresh: Schema.Boolean.pipe(Schema.optionalWith({ default: () => true })),
|
|
20
|
-
refreshIntervalSeconds: Schema.Number.pipe(Schema.optionalWith({ default: () => 300 }))
|
|
34
|
+
refreshIntervalSeconds: Schema.Number.pipe(Schema.optionalWith({ default: () => 300 })),
|
|
35
|
+
sandbox: SandboxConfig.pipe(Schema.optionalWith({ default: () => Schema.decodeSync(SandboxConfig)({}) }))
|
|
21
36
|
});
|
|
22
37
|
// ---------------------------------------------------------------------------
|
|
23
38
|
// INI Parsing (Schema-validated)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/ConfigService/internal.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACpE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAGxD,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,MAAM,OAAO,eAAgB,SAAQ,MAAM,CAAC,KAAK,CAAkB,iBAAiB,CAAC,CAAC;IACpF,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;IAClD,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CACxD,CAAC;CAAG;AAEL,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,cAAc;IACvB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,WAAwB,CAAC,EAAE,CAAC,CAAC;IACzG,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;CAC3E,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7E,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9E,sBAAsB,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/ConfigService/internal.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,5 +16,20 @@ export declare const makeLoad: (detectProfiles: Effect.Effect<ReadonlyArray<Dete
|
|
|
16
16
|
readonly autoDetect: boolean;
|
|
17
17
|
readonly autoRefresh: boolean;
|
|
18
18
|
readonly refreshIntervalSeconds: number;
|
|
19
|
+
readonly sandbox: {
|
|
20
|
+
readonly image: string;
|
|
21
|
+
readonly extensions: readonly string[];
|
|
22
|
+
readonly setupCommands: readonly string[];
|
|
23
|
+
readonly env: {
|
|
24
|
+
readonly [x: string]: string;
|
|
25
|
+
};
|
|
26
|
+
readonly enableClaudeCode: boolean;
|
|
27
|
+
readonly volumeMounts: readonly {
|
|
28
|
+
readonly hostPath: string;
|
|
29
|
+
readonly containerPath: string;
|
|
30
|
+
readonly readonly: boolean;
|
|
31
|
+
}[];
|
|
32
|
+
readonly cloneDepth: number;
|
|
33
|
+
};
|
|
19
34
|
}, ConfigError | ConfigParseError, FileSystem.FileSystem | ConfigPaths | Path.Path>;
|
|
20
35
|
//# sourceMappingURL=load.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../src/ConfigService/load.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../src/ConfigService/load.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,EAAE,WAAW,EAAwB,KAAK,eAAe,EAAa,MAAM,eAAe,CAAA;AAElG,eAAO,MAAM,QAAQ,GACnB,gBAAgB,MAAM,CAAC,MAAM,CAC3B,aAAa,CAAC,eAAe,CAAC,EAC9B,qBAAqB,EACrB,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,WAAW,CAChD;;;;;;;;;;;;;;;;;;;;;;;;mFA8D6C,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FileSystem } from "@effect/platform";
|
|
2
2
|
import { Effect, Schema } from "effect";
|
|
3
3
|
import { ConfigError, ConfigParseError } from "../Errors.js";
|
|
4
|
-
import { ConfigPaths, TuiConfig } from "./internal.js";
|
|
4
|
+
import { ConfigPaths, defaultSandboxConfig, TuiConfig } from "./internal.js";
|
|
5
5
|
export const makeLoad = (detectProfiles) => Effect.gen(function* () {
|
|
6
6
|
const fs = yield* FileSystem.FileSystem;
|
|
7
7
|
const paths = yield* ConfigPaths;
|
|
@@ -18,10 +18,17 @@ export const makeLoad = (detectProfiles) => Effect.gen(function* () {
|
|
|
18
18
|
})),
|
|
19
19
|
autoDetect: true,
|
|
20
20
|
autoRefresh: true,
|
|
21
|
-
refreshIntervalSeconds: 300
|
|
21
|
+
refreshIntervalSeconds: 300,
|
|
22
|
+
sandbox: defaultSandboxConfig
|
|
22
23
|
};
|
|
23
24
|
}
|
|
24
|
-
return {
|
|
25
|
+
return {
|
|
26
|
+
accounts: [],
|
|
27
|
+
autoDetect: true,
|
|
28
|
+
autoRefresh: true,
|
|
29
|
+
refreshIntervalSeconds: 300,
|
|
30
|
+
sandbox: defaultSandboxConfig
|
|
31
|
+
};
|
|
25
32
|
}
|
|
26
33
|
const content = yield* fs.readFileString(configPath).pipe(Effect.mapError((e) => new ConfigError({ message: "Failed to read config file", cause: e })));
|
|
27
34
|
const config = yield* Schema.decodeUnknown(Schema.parseJson(TuiConfig))(content).pipe(Effect.mapError((cause) => new ConfigParseError({ path: configPath, cause })));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/ConfigService/load.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE5D,OAAO,EAAE,WAAW,EAAwB,SAAS,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/ConfigService/load.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../src/ConfigService/reset.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAEtE,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../src/ConfigService/reset.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAEtE,OAAO,EAAE,WAAW,EAAwB,KAAK,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,eAAe,CAAA;AAGvG,eAAO,MAAM,SAAS,GACpB,gBAAgB,MAAM,CAAC,MAAM,CAC3B,aAAa,CAAC,eAAe,CAAC,EAC9B,qBAAqB,EACrB,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,WAAW,CAChD,KACA,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,WAAW,CAkCvC,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FileSystem } from "@effect/platform";
|
|
2
2
|
import { Effect } from "effect";
|
|
3
3
|
import { backup } from "./backup.js";
|
|
4
|
-
import { ConfigPaths } from "./internal.js";
|
|
4
|
+
import { ConfigPaths, defaultSandboxConfig } from "./internal.js";
|
|
5
5
|
import { save } from "./save.js";
|
|
6
6
|
export const makeReset = (detectProfiles) => Effect.gen(function* () {
|
|
7
7
|
const fs = yield* FileSystem.FileSystem;
|
|
@@ -20,7 +20,8 @@ export const makeReset = (detectProfiles) => Effect.gen(function* () {
|
|
|
20
20
|
})),
|
|
21
21
|
autoDetect: true,
|
|
22
22
|
autoRefresh: true,
|
|
23
|
-
refreshIntervalSeconds: 300
|
|
23
|
+
refreshIntervalSeconds: 300,
|
|
24
|
+
sandbox: defaultSandboxConfig
|
|
24
25
|
};
|
|
25
26
|
yield* save(config);
|
|
26
27
|
return config;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reset.js","sourceRoot":"","sources":["../../src/ConfigService/reset.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,WAAW,EAAwC,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"reset.js","sourceRoot":"","sources":["../../src/ConfigService/reset.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAwC,MAAM,eAAe,CAAA;AACvG,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,cAIC,EACuF,EAAE,CAC1F,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAA;IACvC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,WAAW,CAAA;IAChC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,CAAA;IAE1C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAC9C,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAC7C,CAAA;IAED,IAAI,MAAM,EAAE,CAAC;QACX,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAChB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAC5F,CAAA;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,IAAI,CACzC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAoC,CAAC,CAAC,CAC5E,CAAA;IAED,MAAM,MAAM,GAAc;QACxB,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7B,OAAO,EAAE,CAAC,CAAC,IAAI;YACf,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;YACnC,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,IAAI;QACjB,sBAAsB,EAAE,GAAG;QAC3B,OAAO,EAAE,oBAAoB;KAC9B,CAAA;IAED,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACnB,OAAO,MAAM,CAAA;AACf,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAA"}
|
package/dist/DateUtils.d.ts
CHANGED
|
@@ -1,4 +1,32 @@
|
|
|
1
|
+
import { Option } from "effect";
|
|
1
2
|
export declare const formatDate: (date: Date) => string;
|
|
2
3
|
export declare const formatDateTime: (date: Date) => string;
|
|
3
4
|
export declare const formatRelativeTime: (date: Date, now: Date, prefix?: string) => string;
|
|
5
|
+
export interface WeekRange {
|
|
6
|
+
readonly week: string;
|
|
7
|
+
readonly start: Date;
|
|
8
|
+
readonly end: Date;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Parse an ISO week string (e.g. "2026-W09") into a date range.
|
|
12
|
+
* Returns None if the string is malformed.
|
|
13
|
+
*/
|
|
14
|
+
export declare const parseISOWeek: (week: string) => Option.Option<WeekRange>;
|
|
15
|
+
/**
|
|
16
|
+
* Get the ISO week string for a given date.
|
|
17
|
+
*/
|
|
18
|
+
export declare const toISOWeek: (date: Date) => string;
|
|
19
|
+
/**
|
|
20
|
+
* Format a week range as a human-readable label.
|
|
21
|
+
* e.g. "W09 2026 · Feb 24 – Mar 2"
|
|
22
|
+
*/
|
|
23
|
+
export declare const formatWeekLabel: (range: WeekRange) => string;
|
|
24
|
+
/**
|
|
25
|
+
* Format duration in milliseconds to a human-readable string.
|
|
26
|
+
*/
|
|
27
|
+
export declare const formatDuration: (ms: number) => string;
|
|
28
|
+
/**
|
|
29
|
+
* Compute the median of a numeric array. Returns null for empty arrays.
|
|
30
|
+
*/
|
|
31
|
+
export declare const median: (arr: ReadonlyArray<number>) => number | null;
|
|
4
32
|
//# sourceMappingURL=DateUtils.d.ts.map
|
package/dist/DateUtils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateUtils.d.ts","sourceRoot":"","sources":["../src/DateUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DateUtils.d.ts","sourceRoot":"","sources":["../src/DateUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEhD,eAAO,MAAM,UAAU,GAAI,MAAM,IAAI,KAAG,MAKvC,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,MAAM,IAAI,KAAG,MAI3C,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,MAAM,IAAI,EAAE,KAAK,IAAI,EAAE,eAAkB,KAAG,MAS9E,CAAA;AAMD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAA;IACpB,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAA;CACnB;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAclE,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,GAAI,MAAM,IAAI,KAAG,MAOtC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,SAAS,KAAG,MAUlD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,IAAI,MAAM,KAAG,MAO3C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,KAAK,aAAa,CAAC,MAAM,CAAC,KAAG,MAAM,GAAG,IAK5D,CAAA"}
|
package/dist/DateUtils.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Match } from "effect";
|
|
1
|
+
import { Duration, Match, Option } from "effect";
|
|
2
2
|
export const formatDate = (date) => {
|
|
3
3
|
const d = date.getDate().toString().padStart(2, "0");
|
|
4
4
|
const m = (date.getMonth() + 1).toString().padStart(2, "0");
|
|
@@ -14,4 +14,72 @@ export const formatRelativeTime = (date, now, prefix = "Updated") => {
|
|
|
14
14
|
const seconds = Math.max(0, Math.floor((now.getTime() - date.getTime()) / 1000));
|
|
15
15
|
return Match.value(seconds).pipe(Match.when((s) => s < 60, (s) => `${prefix} ${s}s ago`), Match.when((s) => s < 3600, (s) => `${prefix} ${Math.floor(s / 60)}m ago`), Match.when((s) => s < 86400, (s) => `${prefix} ${Math.floor(s / 3600)}h ago`), Match.orElse(() => `${prefix} on ${formatDate(date)}`));
|
|
16
16
|
};
|
|
17
|
+
/**
|
|
18
|
+
* Parse an ISO week string (e.g. "2026-W09") into a date range.
|
|
19
|
+
* Returns None if the string is malformed.
|
|
20
|
+
*/
|
|
21
|
+
export const parseISOWeek = (week) => {
|
|
22
|
+
const match = /^(\d{4})-W(\d{2})$/.exec(week);
|
|
23
|
+
if (!match)
|
|
24
|
+
return Option.none();
|
|
25
|
+
const year = parseInt(match[1], 10);
|
|
26
|
+
const weekNum = parseInt(match[2], 10);
|
|
27
|
+
if (weekNum < 1 || weekNum > 53)
|
|
28
|
+
return Option.none();
|
|
29
|
+
// Jan 4 is always in week 1 (ISO 8601)
|
|
30
|
+
const jan4 = new Date(Date.UTC(year, 0, 4));
|
|
31
|
+
const dayOfWeek = jan4.getUTCDay() || 7; // Monday=1 ... Sunday=7
|
|
32
|
+
const monday = new Date(jan4.getTime() + ((weekNum - 1) * 7 - (dayOfWeek - 1)) * 86400000);
|
|
33
|
+
const nextMonday = new Date(monday.getTime() + 7 * 86400000);
|
|
34
|
+
return Option.some({ week, start: monday, end: nextMonday });
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Get the ISO week string for a given date.
|
|
38
|
+
*/
|
|
39
|
+
export const toISOWeek = (date) => {
|
|
40
|
+
const d = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));
|
|
41
|
+
const dayNum = d.getUTCDay() || 7;
|
|
42
|
+
d.setUTCDate(d.getUTCDate() + 4 - dayNum); // Thursday of the week
|
|
43
|
+
const yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
|
|
44
|
+
const weekNum = Math.ceil(((d.getTime() - yearStart.getTime()) / 86400000 + 1) / 7);
|
|
45
|
+
return `${d.getUTCFullYear()}-W${weekNum.toString().padStart(2, "0")}`;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Format a week range as a human-readable label.
|
|
49
|
+
* e.g. "W09 2026 · Feb 24 – Mar 2"
|
|
50
|
+
*/
|
|
51
|
+
export const formatWeekLabel = (range) => {
|
|
52
|
+
const w = range.week.split("-W");
|
|
53
|
+
const startMonth = range.start.toLocaleString("en-US", { month: "short", timeZone: "UTC" });
|
|
54
|
+
const endMonth = range.end.toLocaleString("en-US", { month: "short", timeZone: "UTC" });
|
|
55
|
+
const startDay = range.start.getUTCDate();
|
|
56
|
+
const endDay = range.end.getUTCDate();
|
|
57
|
+
const datePart = startMonth === endMonth
|
|
58
|
+
? `${startMonth} ${startDay} – ${endDay}`
|
|
59
|
+
: `${startMonth} ${startDay} – ${endMonth} ${endDay}`;
|
|
60
|
+
return `W${w[1]} ${w[0]} · ${datePart}`;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Format duration in milliseconds to a human-readable string.
|
|
64
|
+
*/
|
|
65
|
+
export const formatDuration = (ms) => {
|
|
66
|
+
const d = Duration.millis(ms);
|
|
67
|
+
const hours = Duration.toHours(d);
|
|
68
|
+
if (hours < 1)
|
|
69
|
+
return `${Math.round(hours * 60)}m`;
|
|
70
|
+
if (hours < 24)
|
|
71
|
+
return `${Math.floor(hours)}h`;
|
|
72
|
+
const days = Math.round(hours / 24 * 10) / 10;
|
|
73
|
+
return `${days}d`;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Compute the median of a numeric array. Returns null for empty arrays.
|
|
77
|
+
*/
|
|
78
|
+
export const median = (arr) => {
|
|
79
|
+
if (arr.length === 0)
|
|
80
|
+
return null;
|
|
81
|
+
const sorted = [...arr].sort((a, b) => a - b);
|
|
82
|
+
const mid = Math.floor(sorted.length / 2);
|
|
83
|
+
return sorted.length % 2 !== 0 ? sorted[mid] : (sorted[mid - 1] + sorted[mid]) / 2;
|
|
84
|
+
};
|
|
17
85
|
//# sourceMappingURL=DateUtils.js.map
|