github-issue-tower-defence-management 1.134.0 → 1.135.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/README.md +5 -4
- package/bin/adapter/entry-points/cli/index.js +11 -1
- package/bin/adapter/entry-points/cli/index.js.map +1 -1
- package/bin/adapter/entry-points/cli/projectConfig.js +21 -0
- package/bin/adapter/entry-points/cli/projectConfig.js.map +1 -1
- package/bin/adapter/entry-points/console/dashboardComposeService.js +18 -0
- package/bin/adapter/entry-points/console/dashboardComposeService.js.map +1 -1
- package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js +81 -54
- package/bin/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.js.map +1 -1
- package/bin/adapter/entry-points/handlers/machineStatusWriter.js +6 -0
- package/bin/adapter/entry-points/handlers/machineStatusWriter.js.map +1 -1
- package/bin/adapter/repositories/ProcHostMetricsRepository.js +4 -0
- package/bin/adapter/repositories/ProcHostMetricsRepository.js.map +1 -1
- package/bin/domain/usecases/dashboard/ComposeDashboardUseCase.js +26 -4
- package/bin/domain/usecases/dashboard/ComposeDashboardUseCase.js.map +1 -1
- package/package.json +1 -1
- package/src/adapter/entry-points/cli/index.test.ts +42 -1
- package/src/adapter/entry-points/cli/index.ts +20 -1
- package/src/adapter/entry-points/cli/projectConfig.test.ts +75 -0
- package/src/adapter/entry-points/cli/projectConfig.ts +31 -0
- package/src/adapter/entry-points/console/dashboardComposeService.test.ts +32 -0
- package/src/adapter/entry-points/console/dashboardComposeService.ts +20 -0
- package/src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.test.ts +66 -0
- package/src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts +7 -1
- package/src/adapter/entry-points/handlers/machineStatusWriter.test.ts +61 -0
- package/src/adapter/entry-points/handlers/machineStatusWriter.ts +17 -0
- package/src/adapter/repositories/ProcHostMetricsRepository.test.ts +25 -0
- package/src/adapter/repositories/ProcHostMetricsRepository.ts +5 -0
- package/src/adapter/repositories/issue/ApiV3CheerioRestIssueRepository.test.ts +26 -3
- package/src/domain/usecases/dashboard/ComposeDashboardUseCase.test.ts +55 -0
- package/src/domain/usecases/dashboard/ComposeDashboardUseCase.ts +34 -5
- package/types/adapter/entry-points/cli/index.d.ts.map +1 -1
- package/types/adapter/entry-points/cli/projectConfig.d.ts +5 -0
- package/types/adapter/entry-points/cli/projectConfig.d.ts.map +1 -1
- package/types/adapter/entry-points/console/dashboardComposeService.d.ts.map +1 -1
- package/types/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.d.ts +1 -1
- package/types/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.d.ts.map +1 -1
- package/types/adapter/entry-points/handlers/machineStatusWriter.d.ts +7 -0
- package/types/adapter/entry-points/handlers/machineStatusWriter.d.ts.map +1 -1
- package/types/adapter/repositories/ProcHostMetricsRepository.d.ts +1 -0
- package/types/adapter/repositories/ProcHostMetricsRepository.d.ts.map +1 -1
- package/types/domain/usecases/dashboard/ComposeDashboardUseCase.d.ts +6 -1
- package/types/domain/usecases/dashboard/ComposeDashboardUseCase.d.ts.map +1 -1
- package/types/index.d.ts +1 -1
|
@@ -2107,7 +2107,7 @@ describe('ApiV3CheerioRestIssueRepository', () => {
|
|
|
2107
2107
|
fetchSpy: FetchSpy,
|
|
2108
2108
|
predicate: (url: string, body: string) => boolean,
|
|
2109
2109
|
): number =>
|
|
2110
|
-
fetchSpy.mock.calls.filter(([input, init]) =>
|
|
2110
|
+
fetchSpy.mock.calls.filter(([input, init]: Parameters<typeof fetch>) =>
|
|
2111
2111
|
predicate(requestUrlOf(input), requestBodyOf(init)),
|
|
2112
2112
|
).length;
|
|
2113
2113
|
|
|
@@ -2287,6 +2287,28 @@ describe('ApiV3CheerioRestIssueRepository', () => {
|
|
|
2287
2287
|
expect(result?.isCiStateSuccess).toBe(true);
|
|
2288
2288
|
expect(result?.isPassedAllCiJob).toBe(true);
|
|
2289
2289
|
});
|
|
2290
|
+
|
|
2291
|
+
it('returns isCiStateSuccess true when check run conclusions are neutral or skipped', async () => {
|
|
2292
|
+
mockFetchRoutes({
|
|
2293
|
+
slimPullRequest: () => buildSlimPullRequestResponse(),
|
|
2294
|
+
checkRuns: () => ({
|
|
2295
|
+
total_count: 2,
|
|
2296
|
+
check_runs: [
|
|
2297
|
+
{ id: 100, name: 'lint', conclusion: 'neutral' },
|
|
2298
|
+
{ id: 200, name: 'docs', conclusion: 'skipped' },
|
|
2299
|
+
],
|
|
2300
|
+
}),
|
|
2301
|
+
});
|
|
2302
|
+
|
|
2303
|
+
const { repository } = createApiV3CheerioRestIssueRepository();
|
|
2304
|
+
const result = await repository.getOpenPullRequest(
|
|
2305
|
+
'https://github.com/HiromiShikata/test-repository/pull/31',
|
|
2306
|
+
);
|
|
2307
|
+
|
|
2308
|
+
expect(result).not.toBeNull();
|
|
2309
|
+
expect(result?.isCiStateSuccess).toBe(true);
|
|
2310
|
+
expect(result?.isPassedAllCiJob).toBe(true);
|
|
2311
|
+
});
|
|
2290
2312
|
});
|
|
2291
2313
|
|
|
2292
2314
|
describe('getOpenPullRequest required check resolution via REST', () => {
|
|
@@ -2625,13 +2647,14 @@ describe('ApiV3CheerioRestIssueRepository', () => {
|
|
|
2625
2647
|
),
|
|
2626
2648
|
).toBe(2);
|
|
2627
2649
|
const secondSlimCall = fetchSpy.mock.calls
|
|
2628
|
-
.map(([input, init]) =>
|
|
2650
|
+
.map(([input, init]): GraphqlRequestBody | null =>
|
|
2629
2651
|
requestUrlOf(input) === 'https://api.github.com/graphql'
|
|
2630
2652
|
? parseGraphqlRequestBody(init)
|
|
2631
2653
|
: null,
|
|
2632
2654
|
)
|
|
2633
2655
|
.filter(
|
|
2634
|
-
(body)
|
|
2656
|
+
(body): body is GraphqlRequestBody =>
|
|
2657
|
+
body !== null && body.query.includes('headRefOid'),
|
|
2635
2658
|
)[1];
|
|
2636
2659
|
expect(secondSlimCall?.variables.reviewThreadsAfter).toBe('cursor-1');
|
|
2637
2660
|
});
|
|
@@ -120,6 +120,61 @@ describe('formatMachineStatusLines', () => {
|
|
|
120
120
|
).toEqual(['M55% C62% D?% cy13', 'LA 16 23 40']);
|
|
121
121
|
});
|
|
122
122
|
|
|
123
|
+
it('renders each configured partition as title and percent on a disk line', () => {
|
|
124
|
+
expect(
|
|
125
|
+
formatMachineStatusLines({
|
|
126
|
+
memPct: 55,
|
|
127
|
+
cpuPct: 62,
|
|
128
|
+
diskPct: 89,
|
|
129
|
+
disks: [
|
|
130
|
+
{ title: 'D', pct: 89 },
|
|
131
|
+
{ title: 'S', pct: 41 },
|
|
132
|
+
],
|
|
133
|
+
load: [16, 23, 40],
|
|
134
|
+
cycleMinutes: 13,
|
|
135
|
+
}),
|
|
136
|
+
).toEqual(['M55% C62% cy13', 'D89% S41%', 'LA 16 23 40']);
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
it('wraps partitions onto a second disk line when they exceed the width budget', () => {
|
|
140
|
+
const lines = formatMachineStatusLines({
|
|
141
|
+
memPct: 55,
|
|
142
|
+
cpuPct: 62,
|
|
143
|
+
diskPct: 89,
|
|
144
|
+
disks: [
|
|
145
|
+
{ title: 'D', pct: 100 },
|
|
146
|
+
{ title: 'S', pct: 100 },
|
|
147
|
+
{ title: 'A', pct: 100 },
|
|
148
|
+
{ title: 'B', pct: 100 },
|
|
149
|
+
{ title: 'C', pct: 100 },
|
|
150
|
+
{ title: 'E', pct: 100 },
|
|
151
|
+
{ title: 'F', pct: 100 },
|
|
152
|
+
],
|
|
153
|
+
load: [16, 23, 40],
|
|
154
|
+
cycleMinutes: 13,
|
|
155
|
+
});
|
|
156
|
+
expect(lines[0]).toBe('M55% C62% cy13');
|
|
157
|
+
expect(lines[lines.length - 1]).toBe('LA 16 23 40');
|
|
158
|
+
expect(lines.length).toBeGreaterThan(3);
|
|
159
|
+
for (const line of lines) {
|
|
160
|
+
expect(codePointLength(line)).toBeLessThanOrEqual(
|
|
161
|
+
PROJECT_ROW_WIDTH_BUDGET,
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
it('renders the single disk percent when no disks list is present', () => {
|
|
167
|
+
expect(
|
|
168
|
+
formatMachineStatusLines({
|
|
169
|
+
memPct: 55,
|
|
170
|
+
cpuPct: 62,
|
|
171
|
+
diskPct: 89,
|
|
172
|
+
load: [16, 23, 40],
|
|
173
|
+
cycleMinutes: 13,
|
|
174
|
+
}),
|
|
175
|
+
).toEqual(['M55% C62% D89% cy13', 'LA 16 23 40']);
|
|
176
|
+
});
|
|
177
|
+
|
|
123
178
|
it('keeps both lines within the 32 character width budget at worst case', () => {
|
|
124
179
|
const lines = formatMachineStatusLines({
|
|
125
180
|
memPct: 100,
|
|
@@ -8,10 +8,16 @@ export type ComposeDashboardProject = {
|
|
|
8
8
|
row: DashboardRow | null;
|
|
9
9
|
};
|
|
10
10
|
|
|
11
|
+
export type ComposeDashboardDisk = {
|
|
12
|
+
title: string;
|
|
13
|
+
pct: number;
|
|
14
|
+
};
|
|
15
|
+
|
|
11
16
|
export type ComposeDashboardMachineStatus = {
|
|
12
17
|
memPct: number | null;
|
|
13
18
|
cpuPct: number | null;
|
|
14
19
|
diskPct: number | null;
|
|
20
|
+
disks?: ComposeDashboardDisk[] | null;
|
|
15
21
|
load: [number, number, number] | null;
|
|
16
22
|
cycleMinutes: number | null;
|
|
17
23
|
};
|
|
@@ -98,9 +104,27 @@ export const formatResetCountdown = (totalSeconds: number): string => {
|
|
|
98
104
|
)}`;
|
|
99
105
|
};
|
|
100
106
|
|
|
107
|
+
const packTokensWithinBudget = (tokens: string[]): string[] => {
|
|
108
|
+
const lines: string[] = [];
|
|
109
|
+
let current = '';
|
|
110
|
+
for (const token of tokens) {
|
|
111
|
+
const candidate = current === '' ? token : `${current} ${token}`;
|
|
112
|
+
if (current !== '' && candidate.length > PROJECT_ROW_WIDTH_BUDGET) {
|
|
113
|
+
lines.push(current);
|
|
114
|
+
current = token;
|
|
115
|
+
} else {
|
|
116
|
+
current = candidate;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
if (current !== '') {
|
|
120
|
+
lines.push(current);
|
|
121
|
+
}
|
|
122
|
+
return lines;
|
|
123
|
+
};
|
|
124
|
+
|
|
101
125
|
export const formatMachineStatusLines = (
|
|
102
126
|
machineStatus: ComposeDashboardMachineStatus | null,
|
|
103
|
-
): [
|
|
127
|
+
): string[] => {
|
|
104
128
|
const memText =
|
|
105
129
|
machineStatus !== null && machineStatus.memPct !== null
|
|
106
130
|
? `${machineStatus.memPct}%`
|
|
@@ -121,10 +145,15 @@ export const formatMachineStatusLines = (
|
|
|
121
145
|
machineStatus !== null && machineStatus.cycleMinutes !== null
|
|
122
146
|
? `cy${machineStatus.cycleMinutes}`
|
|
123
147
|
: 'cy-';
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
148
|
+
const loadLine = `LA ${oneMinute} ${fiveMinute} ${fifteenMinute}`;
|
|
149
|
+
const disks =
|
|
150
|
+
machineStatus !== null && machineStatus.disks ? machineStatus.disks : null;
|
|
151
|
+
if (disks !== null && disks.length > 0) {
|
|
152
|
+
const diskTokens = disks.map((disk) => `${disk.title}${disk.pct}%`);
|
|
153
|
+
const diskLines = packTokensWithinBudget(diskTokens);
|
|
154
|
+
return [`M${memText} C${cpuText} ${cycle}`, ...diskLines, loadLine];
|
|
155
|
+
}
|
|
156
|
+
return [`M${memText} C${cpuText} D${diskText} ${cycle}`, loadLine];
|
|
128
157
|
};
|
|
129
158
|
|
|
130
159
|
const capThreeDigits = (value: number): string =>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,UAAU,EACV,cAAc,EACd,wBAAwB,EACxB,YAAY,EACZ,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,UAAU,EACV,cAAc,EACd,wBAAwB,EACxB,YAAY,EACZ,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAgJzB,eAAO,MAAM,OAAO,SAAgB,CAAC"}
|
|
@@ -21,6 +21,11 @@ export type ConfigFile = {
|
|
|
21
21
|
changeTargetPathAliases?: Record<string, string>;
|
|
22
22
|
consoleAccessToken?: string;
|
|
23
23
|
consoleProjects?: Record<string, string>;
|
|
24
|
+
disks?: DiskConfig[];
|
|
25
|
+
};
|
|
26
|
+
export type DiskConfig = {
|
|
27
|
+
title: string;
|
|
28
|
+
mountpoint: string;
|
|
24
29
|
};
|
|
25
30
|
export declare const isRecord: (value: unknown) => value is Record<string, unknown>;
|
|
26
31
|
export declare const loadConfigFile: (configFilePath: string) => ConfigFile;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectConfig.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/projectConfig.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,gCAAgC,CAAC,EAAE,MAAM,CAAC;IAC1C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"projectConfig.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/projectConfig.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,gCAAgC,CAAC,EAAE,MAAM,CAAC;IAC1C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAsDF,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CACH,CAAC;AA4CvE,eAAO,MAAM,cAAc,GAAI,gBAAgB,MAAM,KAAG,UA+DvD,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,QAAQ,MAAM,EACd,aAAa,MAAM,KAClB,UAuEF,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,YAAY,UAAU,EACtB,cAAc,UAAU,EACxB,iBAAiB,UAAU,KAC1B,UA4ED,CAAC;AAkBH,eAAO,MAAM,kBAAkB,GAC7B,YAAY,MAAM,EAClB,OAAO,MAAM,KACZ,OAAO,CAAC,MAAM,GAAG,IAAI,CAoDvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboardComposeService.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/console/dashboardComposeService.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"dashboardComposeService.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/console/dashboardComposeService.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,qBAAqB,EAItB,MAAM,4DAA4D,CAAC;AAQpE,MAAM,MAAM,uBAAuB,GAAG;IACpC,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAiKF,eAAO,MAAM,0BAA0B,GACrC,SAAS,uBAAuB,KAC/B,qBAYF,CAAC;AAUF,eAAO,MAAM,4BAA4B,GACvC,SAAS,uBAAuB,KAC/B,OAYF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,SAAS,uBAAuB,KAC/B,MACqE,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Issue } from '../../../domain/entities/Issue';
|
|
2
2
|
import { Project } from '../../../domain/entities/Project';
|
|
3
3
|
export declare class HandleScheduledEventUseCaseHandler {
|
|
4
|
-
handle: (configFilePath: string, _verbose: boolean) => Promise<{
|
|
4
|
+
handle: (configFilePath: string, _verbose: boolean, inTmuxProjectOrderOverride?: string[] | null) => Promise<{
|
|
5
5
|
project: Project;
|
|
6
6
|
issues: Issue[];
|
|
7
7
|
cacheUsed: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HandleScheduledEventUseCaseHandler.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAiD3D,qBAAa,kCAAkC;IAC7C,MAAM,GACJ,gBAAgB,MAAM,EACtB,UAAU,OAAO,
|
|
1
|
+
{"version":3,"file":"HandleScheduledEventUseCaseHandler.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/HandleScheduledEventUseCaseHandler.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAiD3D,qBAAa,kCAAkC;IAC7C,MAAM,GACJ,gBAAgB,MAAM,EACtB,UAAU,OAAO,EACjB,6BAA4B,MAAM,EAAE,GAAG,IAAW,KACjD,OAAO,CAAC;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,eAAe,EAAE,IAAI,EAAE,CAAC;KACzB,GAAG,IAAI,CAAC,CAulBP;CACH"}
|
|
@@ -1,14 +1,21 @@
|
|
|
1
|
+
import { DiskConfig } from '../cli/projectConfig';
|
|
1
2
|
import { ProcHostMetricsRepository } from '../../repositories/ProcHostMetricsRepository';
|
|
2
3
|
export type MachineStatusWriterParams = {
|
|
3
4
|
dashboardDataDir: string | null | undefined;
|
|
4
5
|
allIssuesCacheDir: string | null | undefined;
|
|
6
|
+
disks?: DiskConfig[] | null;
|
|
5
7
|
hostMetricsRepository?: ProcHostMetricsRepository;
|
|
6
8
|
now?: Date;
|
|
7
9
|
};
|
|
10
|
+
export type MachineStatusDisk = {
|
|
11
|
+
title: string;
|
|
12
|
+
pct: number;
|
|
13
|
+
};
|
|
8
14
|
export type MachineStatusFile = {
|
|
9
15
|
memPct: number;
|
|
10
16
|
cpuPct: number;
|
|
11
17
|
diskPct: number;
|
|
18
|
+
disks?: MachineStatusDisk[];
|
|
12
19
|
load: [number, number, number];
|
|
13
20
|
cycleMinutes: number | null;
|
|
14
21
|
lastFetchedAt: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"machineStatusWriter.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/machineStatusWriter.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,yBAAyB,EAE1B,MAAM,8CAA8C,CAAC;AAEtD,MAAM,MAAM,yBAAyB,GAAG;IACtC,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5C,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7C,qBAAqB,CAAC,EAAE,yBAAyB,CAAC;IAClD,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAgCF,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,yBAAyB,KAChC,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"machineStatusWriter.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/machineStatusWriter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EACL,yBAAyB,EAE1B,MAAM,8CAA8C,CAAC;AAEtD,MAAM,MAAM,yBAAyB,GAAG;IACtC,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5C,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7C,KAAK,CAAC,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAC5B,qBAAqB,CAAC,EAAE,yBAAyB,CAAC;IAClD,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC5B,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAgCF,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,yBAAyB,KAChC,OAAO,CAAC,IAAI,CA6Cd,CAAC"}
|
|
@@ -28,5 +28,6 @@ export declare class ProcHostMetricsRepository {
|
|
|
28
28
|
readCpuUsedPercent: () => Promise<number>;
|
|
29
29
|
readLoadAverages: () => LoadAverages;
|
|
30
30
|
readDiskUsedPercent: () => number;
|
|
31
|
+
readDiskUsedPercentForMountpoint: (mountpoint: string) => number;
|
|
31
32
|
}
|
|
32
33
|
//# sourceMappingURL=ProcHostMetricsRepository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProcHostMetricsRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/ProcHostMetricsRepository.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAMF,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,aAAa,MAAM,KAAG,MA2B5D,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,KAAG,SAiBjD,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,OAAO,SAAS,EAChB,QAAQ,SAAS,KAChB,MAQF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,MAAM,EACd,OAAO,MAAM,EACb,QAAQ,MAAM,KACb,MAOF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,aAAa,MAAM,KAAG,YAavD,CAAC;AAEF,eAAO,MAAM,+BAA+B,GAC1C,sBAAsB,MAAM,GAAG,IAAI,EACnC,qBAAqB,MAAM,GAAG,IAAI,KACjC,MAAM,GAAG,IAUX,CAAC;AAEF,qBAAa,yBAAyB;IAElC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAMtB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAU/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAjBR,aAAa,GAAE,MAA+B,EAC9C,KAAK,GAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAK1D,EACa,cAAc,GAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,UAStD,EACgB,QAAQ,GAAE,MAA0B;IAGvD,qBAAqB,QAAO,MAAM,CAG9B;IAEJ,kBAAkB,QAAa,OAAO,CAAC,MAAM,CAAC,CAS5C;IAEF,gBAAgB,QAAO,YAAY,CAG/B;IAEJ,mBAAmB,QAAO,MAAM,CAG9B;CACH"}
|
|
1
|
+
{"version":3,"file":"ProcHostMetricsRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/ProcHostMetricsRepository.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAMF,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,aAAa,MAAM,KAAG,MA2B5D,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,KAAG,SAiBjD,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,OAAO,SAAS,EAChB,QAAQ,SAAS,KAChB,MAQF,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,MAAM,EACd,OAAO,MAAM,EACb,QAAQ,MAAM,KACb,MAOF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,aAAa,MAAM,KAAG,YAavD,CAAC;AAEF,eAAO,MAAM,+BAA+B,GAC1C,sBAAsB,MAAM,GAAG,IAAI,EACnC,qBAAqB,MAAM,GAAG,IAAI,KACjC,MAAM,GAAG,IAUX,CAAC;AAEF,qBAAa,yBAAyB;IAElC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAMtB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAU/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAjBR,aAAa,GAAE,MAA+B,EAC9C,KAAK,GAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAK1D,EACa,cAAc,GAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,UAStD,EACgB,QAAQ,GAAE,MAA0B;IAGvD,qBAAqB,QAAO,MAAM,CAG9B;IAEJ,kBAAkB,QAAa,OAAO,CAAC,MAAM,CAAC,CAS5C;IAEF,gBAAgB,QAAO,YAAY,CAG/B;IAEJ,mBAAmB,QAAO,MAAM,CAG9B;IAEF,gCAAgC,GAAI,YAAY,MAAM,KAAG,MAAM,CAG7D;CACH"}
|
|
@@ -5,10 +5,15 @@ export type ComposeDashboardProject = {
|
|
|
5
5
|
code: string;
|
|
6
6
|
row: DashboardRow | null;
|
|
7
7
|
};
|
|
8
|
+
export type ComposeDashboardDisk = {
|
|
9
|
+
title: string;
|
|
10
|
+
pct: number;
|
|
11
|
+
};
|
|
8
12
|
export type ComposeDashboardMachineStatus = {
|
|
9
13
|
memPct: number | null;
|
|
10
14
|
cpuPct: number | null;
|
|
11
15
|
diskPct: number | null;
|
|
16
|
+
disks?: ComposeDashboardDisk[] | null;
|
|
12
17
|
load: [number, number, number] | null;
|
|
13
18
|
cycleMinutes: number | null;
|
|
14
19
|
};
|
|
@@ -19,7 +24,7 @@ export type ComposeDashboardInput = {
|
|
|
19
24
|
};
|
|
20
25
|
export declare const roundHalfToEven: (value: number) => number;
|
|
21
26
|
export declare const formatResetCountdown: (totalSeconds: number) => string;
|
|
22
|
-
export declare const formatMachineStatusLines: (machineStatus: ComposeDashboardMachineStatus | null) => [
|
|
27
|
+
export declare const formatMachineStatusLines: (machineStatus: ComposeDashboardMachineStatus | null) => string[];
|
|
23
28
|
export declare const formatProjectHeaderLine: () => string;
|
|
24
29
|
export declare const formatProjectRowLine: (project: ComposeDashboardProject) => string;
|
|
25
30
|
export declare const formatTokenRowLine: (token: TokenStatus) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComposeDashboardUseCase.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/dashboard/ComposeDashboardUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAoB,MAAM,8BAA8B,CAAC;AAE7E,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,YAAY,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACtC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,uBAAuB,EAAE,CAAC;IACpC,aAAa,EAAE,6BAA6B,GAAG,IAAI,CAAC;IACpD,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB,CAAC;AAmDF,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,KAAG,MAU/C,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,cAAc,MAAM,KAAG,MAa3D,CAAC;
|
|
1
|
+
{"version":3,"file":"ComposeDashboardUseCase.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/dashboard/ComposeDashboardUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAoB,MAAM,8BAA8B,CAAC;AAE7E,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,YAAY,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAC;IACtC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACtC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,uBAAuB,EAAE,CAAC;IACpC,aAAa,EAAE,6BAA6B,GAAG,IAAI,CAAC;IACpD,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB,CAAC;AAmDF,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,KAAG,MAU/C,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,cAAc,MAAM,KAAG,MAa3D,CAAC;AAoBF,eAAO,MAAM,wBAAwB,GACnC,eAAe,6BAA6B,GAAG,IAAI,KAClD,MAAM,EA8BR,CAAC;AAKF,eAAO,MAAM,uBAAuB,QAAO,MAM1C,CAAC;AAkBF,eAAO,MAAM,oBAAoB,GAC/B,SAAS,uBAAuB,KAC/B,MAQF,CAAC;AA6BF,eAAO,MAAM,kBAAkB,GAAI,OAAO,WAAW,KAAG,MAcvD,CAAC;AAKF,qBAAa,uBAAuB;IAClC,GAAG,GAAI,OAAO,qBAAqB,KAAG,MAAM,CAW1C;CACH"}
|
package/types/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { getStoryObjectMap } from './adapter/entry-points/function/getStoryObjec
|
|
|
2
2
|
export declare const hello: (name: string) => string;
|
|
3
3
|
export { Project } from './domain/entities/Project';
|
|
4
4
|
export { Issue } from './domain/entities/Issue';
|
|
5
|
-
export declare const scheduledEvent: (configFilePath: string, _verbose: boolean) => Promise<{
|
|
5
|
+
export declare const scheduledEvent: (configFilePath: string, _verbose: boolean, inTmuxProjectOrderOverride?: string[] | null) => Promise<{
|
|
6
6
|
project: import("./domain/entities/Project").Project;
|
|
7
7
|
issues: import("./domain/entities/Issue").Issue[];
|
|
8
8
|
cacheUsed: boolean;
|