@newpeak/barista-cli 0.2.200 → 0.2.205
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/commands/liberica/teams/fp-config/index.d.ts +3 -0
- package/dist/commands/liberica/teams/fp-config/index.d.ts.map +1 -0
- package/dist/commands/liberica/teams/fp-config/index.js +15 -0
- package/dist/commands/liberica/teams/fp-config/index.js.map +1 -0
- package/dist/commands/liberica/teams/fp-config/list.d.ts +3 -0
- package/dist/commands/liberica/teams/fp-config/list.d.ts.map +1 -0
- package/dist/commands/liberica/teams/fp-config/list.js +43 -0
- package/dist/commands/liberica/teams/fp-config/list.js.map +1 -0
- package/dist/commands/liberica/teams/fp-config/reset.d.ts +3 -0
- package/dist/commands/liberica/teams/fp-config/reset.d.ts.map +1 -0
- package/dist/commands/liberica/teams/fp-config/reset.js +48 -0
- package/dist/commands/liberica/teams/fp-config/reset.js.map +1 -0
- package/dist/commands/liberica/teams/fp-config/set-project.d.ts +3 -0
- package/dist/commands/liberica/teams/fp-config/set-project.d.ts.map +1 -0
- package/dist/commands/liberica/teams/fp-config/set-project.js +56 -0
- package/dist/commands/liberica/teams/fp-config/set-project.js.map +1 -0
- package/dist/commands/liberica/teams/fp-config/set-team.d.ts +3 -0
- package/dist/commands/liberica/teams/fp-config/set-team.d.ts.map +1 -0
- package/dist/commands/liberica/teams/fp-config/set-team.js +65 -0
- package/dist/commands/liberica/teams/fp-config/set-team.js.map +1 -0
- package/dist/commands/liberica/teams/index.d.ts.map +1 -1
- package/dist/commands/liberica/teams/index.js +2 -0
- package/dist/commands/liberica/teams/index.js.map +1 -1
- package/dist/commands/liberica/teams/issues/fp-calibrate.d.ts +4 -0
- package/dist/commands/liberica/teams/issues/fp-calibrate.d.ts.map +1 -0
- package/dist/commands/liberica/teams/issues/fp-calibrate.js +175 -0
- package/dist/commands/liberica/teams/issues/fp-calibrate.js.map +1 -0
- package/dist/commands/liberica/teams/issues/fp-guide.d.ts +3 -0
- package/dist/commands/liberica/teams/issues/fp-guide.d.ts.map +1 -0
- package/dist/commands/liberica/teams/issues/fp-guide.js +199 -0
- package/dist/commands/liberica/teams/issues/fp-guide.js.map +1 -0
- package/dist/commands/liberica/teams/issues/fp-stats.d.ts +3 -0
- package/dist/commands/liberica/teams/issues/fp-stats.d.ts.map +1 -0
- package/dist/commands/liberica/teams/issues/fp-stats.js +126 -0
- package/dist/commands/liberica/teams/issues/fp-stats.js.map +1 -0
- package/dist/commands/liberica/teams/issues/index.d.ts.map +1 -1
- package/dist/commands/liberica/teams/issues/index.js +10 -0
- package/dist/commands/liberica/teams/issues/index.js.map +1 -1
- package/dist/core/api/client.d.ts +6 -0
- package/dist/core/api/client.d.ts.map +1 -1
- package/dist/core/api/client.js +67 -4
- package/dist/core/api/client.js.map +1 -1
- package/dist/types/fp-config.d.ts +35 -0
- package/dist/types/fp-config.d.ts.map +1 -0
- package/dist/types/fp-config.js +2 -0
- package/dist/types/fp-config.js.map +1 -0
- package/dist/types/fp-evaluation.d.ts +5 -2
- package/dist/types/fp-evaluation.d.ts.map +1 -1
- package/package.json +1 -1
- package/skills/barista-cli/data/commands.json +35 -1
- package/skills/barista-cli/data/commands.yaml +26 -1
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { shouldUseJson } from '../../../../utils/output.js';
|
|
3
|
+
function getSectionContent(sectionId) {
|
|
4
|
+
const sections = {
|
|
5
|
+
component: {
|
|
6
|
+
id: 'component',
|
|
7
|
+
title: 'NESMA Function Point Component Identification',
|
|
8
|
+
content: `NESMA defines five function point component types for measuring software size:
|
|
9
|
+
|
|
10
|
+
Internal Logical Files (ILF)
|
|
11
|
+
An ILF is a user-identifiable group of logically related data or control
|
|
12
|
+
information maintained by the application. It is an internally stored file
|
|
13
|
+
that is modified (created, updated, deleted) through Elementary Processes.
|
|
14
|
+
|
|
15
|
+
External Interface Files (EIF)
|
|
16
|
+
An EIF is a user-identifiable group of logically related data referenced
|
|
17
|
+
by the application but maintained by another application. It is read-only
|
|
18
|
+
from the perspective of the current application.
|
|
19
|
+
|
|
20
|
+
External Inputs (EI)
|
|
21
|
+
An EI is an Elementary Process that processes data or control information
|
|
22
|
+
from outside the application boundary. It maintains one or more ILFs or
|
|
23
|
+
alters system behavior.
|
|
24
|
+
|
|
25
|
+
External Outputs (EO)
|
|
26
|
+
An EO is an Elementary Process that sends data or control information
|
|
27
|
+
outside the application boundary. It involves calculations or derived data.
|
|
28
|
+
|
|
29
|
+
External Queries (EQ)
|
|
30
|
+
An EQ is an Elementary Process that sends data or control information
|
|
31
|
+
outside the application boundary. It retrieves data without calculations
|
|
32
|
+
or derived data.
|
|
33
|
+
|
|
34
|
+
Decision Tree (simplified):
|
|
35
|
+
1. Does the process maintain an ILF?
|
|
36
|
+
- Yes → Is the data derived? → Yes = EO, No = EI
|
|
37
|
+
- No → Is the application boundary crossed?
|
|
38
|
+
→ Yes = EQ, No = Not FP-countable
|
|
39
|
+
|
|
40
|
+
ERP Business Scenario Examples:
|
|
41
|
+
- ILF: Customer Master, Material Master, Sales Order Header
|
|
42
|
+
- EIF: Customer Credit Rating (from external system)
|
|
43
|
+
- EI: Create Sales Order, Post Goods Receipt, Confirm Production
|
|
44
|
+
- EO: Monthly Billing Report, Inventory Aging Analysis
|
|
45
|
+
- EQ: Check Stock Level, Lookup Customer Balance`,
|
|
46
|
+
},
|
|
47
|
+
matrix: {
|
|
48
|
+
id: 'matrix',
|
|
49
|
+
title: 'NESMA Complexity Matrix (Estimated Method)',
|
|
50
|
+
content: `The complexity of each function type is determined by the number of
|
|
51
|
+
Data Element Types (DETs) and Record Element Types (RETs) or
|
|
52
|
+
File Types Referenced (FTRs).
|
|
53
|
+
|
|
54
|
+
ILF/EIF Complexity (DET × RET):
|
|
55
|
+
1-19 DETs 20-50 DETs 51+ DETs
|
|
56
|
+
1 RET LOW LOW AVERAGE
|
|
57
|
+
2-5 RETs LOW AVERAGE HIGH
|
|
58
|
+
6+ RETs AVERAGE HIGH HIGH
|
|
59
|
+
|
|
60
|
+
EI Complexity (DET × FTR):
|
|
61
|
+
1-4 DETs 5-15 DETs 16+ DETs
|
|
62
|
+
0-1 FTRs LOW LOW AVERAGE
|
|
63
|
+
2 FTRs LOW AVERAGE HIGH
|
|
64
|
+
3+ FTRs AVERAGE HIGH HIGH
|
|
65
|
+
|
|
66
|
+
EO/EQ Complexity (DET × FTR):
|
|
67
|
+
1-5 DETs 6-19 DETs 20+ DETs
|
|
68
|
+
0-1 FTRs LOW LOW AVERAGE
|
|
69
|
+
2-3 FTRs LOW AVERAGE HIGH
|
|
70
|
+
4+ FTRs AVERAGE HIGH HIGH
|
|
71
|
+
|
|
72
|
+
Complexity Weights:
|
|
73
|
+
Component LOW AVERAGE HIGH
|
|
74
|
+
ILF 7 10 15
|
|
75
|
+
EIF 5 7 10
|
|
76
|
+
EI 4 5 7
|
|
77
|
+
EO 3 4 6
|
|
78
|
+
EQ 3 4 6`,
|
|
79
|
+
},
|
|
80
|
+
method: {
|
|
81
|
+
id: 'method',
|
|
82
|
+
title: 'NESMA Counting Methods',
|
|
83
|
+
content: `NESMA defines three counting methods with increasing precision:
|
|
84
|
+
|
|
85
|
+
1. Indicative Function Point Analysis (快速估算)
|
|
86
|
+
Uses only ILF and EIF counts. No DET/RET analysis needed.
|
|
87
|
+
|
|
88
|
+
Formula: FP = (35 × #ILF) + (15 × #EIF)
|
|
89
|
+
|
|
90
|
+
Best for: Early-stage scoping, feasibility studies, budget estimation
|
|
91
|
+
Accuracy: +/- 25% typically
|
|
92
|
+
|
|
93
|
+
2. Estimated Function Point Analysis (标准估算)
|
|
94
|
+
Classifies each component as LOW, AVERAGE, or HIGH using
|
|
95
|
+
the complexity matrix. Most commonly used method.
|
|
96
|
+
|
|
97
|
+
Formula: FP = Sum of all component weights
|
|
98
|
+
= (ILF_low × 7) + (ILF_avg × 10) + (ILF_high × 15) + ...
|
|
99
|
+
|
|
100
|
+
Best for: Project planning, pricing, baseline measurement
|
|
101
|
+
Accuracy: +/- 15% typically
|
|
102
|
+
|
|
103
|
+
3. Detailed Function Point Analysis (详细计数)
|
|
104
|
+
Full DET/RET (or DET/FTR) counting for every component.
|
|
105
|
+
Each component's complexity is individually determined.
|
|
106
|
+
|
|
107
|
+
Best for: Fixed-price contracts, regulatory compliance
|
|
108
|
+
Accuracy: +/- 5% typically
|
|
109
|
+
|
|
110
|
+
Method Selection Guide:
|
|
111
|
+
Phase Recommended Method
|
|
112
|
+
--------------------------------------------
|
|
113
|
+
Feasibility/Scoping Indicative
|
|
114
|
+
Project Planning Estimated
|
|
115
|
+
Pricing/Contract Estimated or Detailed
|
|
116
|
+
Acceptance Testing Detailed
|
|
117
|
+
Benchmarking Estimated`,
|
|
118
|
+
},
|
|
119
|
+
example: {
|
|
120
|
+
id: 'example',
|
|
121
|
+
title: 'NESMA Enhancement Project Example',
|
|
122
|
+
content: `Enhancement Function Point Analysis (EFPA) measures the size of changes
|
|
123
|
+
to an existing application.
|
|
124
|
+
|
|
125
|
+
EFPA Formula:
|
|
126
|
+
EFP = ADDED + CHANGED + DELETED
|
|
127
|
+
|
|
128
|
+
Where:
|
|
129
|
+
ADDED = Function points of new components added
|
|
130
|
+
CHANGED = Function points of changed components × Impact Factor
|
|
131
|
+
DELETED = Function points of deleted components
|
|
132
|
+
|
|
133
|
+
Impact Factor:
|
|
134
|
+
Determines how much of a component was changed:
|
|
135
|
+
|
|
136
|
+
Impact Level Factor Description
|
|
137
|
+
--------------------------------------------
|
|
138
|
+
Low 0.25 1-2 data elements changed, no structural change
|
|
139
|
+
Average 0.50 3-10 data elements or minor structural change
|
|
140
|
+
High 0.75 Significant structural change, >10 data elements
|
|
141
|
+
Complete 1.00 Component completely replaced
|
|
142
|
+
|
|
143
|
+
Example Scenario: Modify Customer Management Module
|
|
144
|
+
|
|
145
|
+
ADDED:
|
|
146
|
+
- New field "Preferred Language" in Customer Master (ILF): 7 FP
|
|
147
|
+
- New "Customer Preference" sub-screen (EO): 4 FP
|
|
148
|
+
- Total ADDED: 11 FP
|
|
149
|
+
|
|
150
|
+
CHANGED:
|
|
151
|
+
- Customer Search (EQ): Improved search criteria
|
|
152
|
+
- Pre: 3 FP, Post: 4 FP, Impact: AVERAGE (0.50)
|
|
153
|
+
- CHANGED = 4 × 0.50 = 2 FP
|
|
154
|
+
- Total CHANGED: 2 FP
|
|
155
|
+
|
|
156
|
+
DELETED:
|
|
157
|
+
- Legacy "Customer Group" report (EO): 3 FP
|
|
158
|
+
|
|
159
|
+
EFPA = 11 + 2 + 3 = 16 FP
|
|
160
|
+
|
|
161
|
+
PDR-Based Effort Estimation:
|
|
162
|
+
Effort (hours) = FP × PDR (Process Delivery Rate)
|
|
163
|
+
|
|
164
|
+
Example: 16 FP × 8.5 hours/FP = 136 hours (approximately 17 person-days)`,
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
return sections[sectionId] || sections.component;
|
|
168
|
+
}
|
|
169
|
+
function getAllSections() {
|
|
170
|
+
return ['component', 'matrix', 'method', 'example'].map(id => getSectionContent(id));
|
|
171
|
+
}
|
|
172
|
+
export function createFpGuideCommand() {
|
|
173
|
+
const cmd = new Command('fp-guide');
|
|
174
|
+
cmd.description('NESMA function point evaluation methodology reference guide');
|
|
175
|
+
cmd.option('--section <id>', 'Section to display: component, matrix, method, example');
|
|
176
|
+
cmd.option('--json', 'Output as JSON');
|
|
177
|
+
cmd.action(async (options) => {
|
|
178
|
+
const outputJson = shouldUseJson(options);
|
|
179
|
+
let sections;
|
|
180
|
+
if (options.section) {
|
|
181
|
+
sections = [getSectionContent(options.section)];
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
sections = getAllSections();
|
|
185
|
+
}
|
|
186
|
+
if (outputJson) {
|
|
187
|
+
console.log(JSON.stringify({ sections }, null, 2));
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
for (const section of sections) {
|
|
191
|
+
console.log(`\n═══ ${section.title} ═══\n`);
|
|
192
|
+
console.log(section.content);
|
|
193
|
+
}
|
|
194
|
+
console.log();
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
return cmd;
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=fp-guide.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fp-guide.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/issues/fp-guide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAQ5D,SAAS,iBAAiB,CAAC,SAAiB;IAC1C,MAAM,QAAQ,GAAiC;QAC7C,SAAS,EAAE;YACT,EAAE,EAAE,WAAW;YACf,KAAK,EAAE,+CAA+C;YACtD,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qDAqCsC;SAChD;QAED,MAAM,EAAE;YACN,EAAE,EAAE,QAAQ;YACZ,KAAK,EAAE,4CAA4C;YACnD,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;0CA4B2B;SACrC;QAED,MAAM,EAAE;YACN,EAAE,EAAE,QAAQ;YACZ,KAAK,EAAE,wBAAwB;YAC/B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAkCqB;SAC/B;QAED,OAAO,EAAE;YACP,EAAE,EAAE,SAAS;YACb,KAAK,EAAE,mCAAmC;YAC1C,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6EA0C8D;SACxE;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC;AACnD,CAAC;AAED,SAAS,cAAc;IACrB,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IACpC,GAAG,CAAC,WAAW,CAAC,6DAA6D,CAAC,CAAC;IAE/E,GAAG,CAAC,MAAM,CAAC,gBAAgB,EAAE,wDAAwD,CAAC,CAAC;IACvF,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAEvC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAC3B,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAE1C,IAAI,QAAwB,CAAC;QAC7B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,QAAQ,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,cAAc,EAAE,CAAC;QAC9B,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fp-stats.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/issues/fp-stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8BpC,wBAAgB,oBAAoB,IAAI,OAAO,CA4G9C"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { configManager } from '../../../../core/config/manager.js';
|
|
4
|
+
import { apiClient } from '../../../../core/api/client.js';
|
|
5
|
+
import { shouldUseJson } from '../../../../utils/output.js';
|
|
6
|
+
function getLoadCheckLabel(status) {
|
|
7
|
+
switch (status) {
|
|
8
|
+
case 'overload': return '超载';
|
|
9
|
+
case 'underload': return '不足';
|
|
10
|
+
case 'normal': return '正常';
|
|
11
|
+
default: return '无数据';
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
function formatModuleStats(moduleStats) {
|
|
15
|
+
if (!moduleStats || moduleStats.length === 0)
|
|
16
|
+
return '无';
|
|
17
|
+
return moduleStats.map(m => `${m.projectName || '未知'}: ${m.count ?? 0} issues, ${m.fpActual ?? m.fpEstimate ?? 0} FP`).join(' | ');
|
|
18
|
+
}
|
|
19
|
+
function formatDeviationWarnings(warnings) {
|
|
20
|
+
if (!warnings || warnings.length === 0)
|
|
21
|
+
return '无';
|
|
22
|
+
return warnings.map(w => `${w.teamIssueCode || ''} ${w.issueTitle || ''} (偏差: ${w.deviationPercent?.toFixed(1) ?? '?'}%)`).join('\n ');
|
|
23
|
+
}
|
|
24
|
+
export function createFpStatsCommand() {
|
|
25
|
+
const cmd = new Command('fp-stats');
|
|
26
|
+
cmd.description('FP multi-dimensional statistics and time series analysis');
|
|
27
|
+
cmd.option('--project-id <id>', 'Filter by project ID');
|
|
28
|
+
cmd.option('--tag <tag>', 'Filter by tag');
|
|
29
|
+
cmd.option('--from <date>', 'Start date (YYYY-MM-DD)');
|
|
30
|
+
cmd.option('--to <date>', 'End date (YYYY-MM-DD)');
|
|
31
|
+
cmd.option('--by-day', 'Group by day');
|
|
32
|
+
cmd.option('--by-week', 'Group by week');
|
|
33
|
+
cmd.option('--by-month', 'Group by month');
|
|
34
|
+
cmd.option('--health', 'Include team load health check');
|
|
35
|
+
cmd.option('--json', 'Output as JSON');
|
|
36
|
+
cmd.action(async (options) => {
|
|
37
|
+
const context = configManager.getCurrentContext();
|
|
38
|
+
const environment = options.env || context.environment;
|
|
39
|
+
const tenant = options.tenant || context.tenant;
|
|
40
|
+
const outputJson = shouldUseJson(options);
|
|
41
|
+
const params = {};
|
|
42
|
+
if (options.projectId)
|
|
43
|
+
params.projectId = options.projectId;
|
|
44
|
+
if (options.tag)
|
|
45
|
+
params.tag = options.tag;
|
|
46
|
+
if (options.from)
|
|
47
|
+
params.startDate = options.from;
|
|
48
|
+
if (options.to)
|
|
49
|
+
params.endDate = options.to;
|
|
50
|
+
if (options.byDay)
|
|
51
|
+
params.groupBy = 'day';
|
|
52
|
+
else if (options.byWeek)
|
|
53
|
+
params.groupBy = 'week';
|
|
54
|
+
else if (options.byMonth)
|
|
55
|
+
params.groupBy = 'month';
|
|
56
|
+
const response = await apiClient.fpStats(environment, tenant, params);
|
|
57
|
+
if (!response.success) {
|
|
58
|
+
if (outputJson) {
|
|
59
|
+
console.log(JSON.stringify(response));
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
console.error(chalk.red(`\n✗ Error: ${response.error?.message || 'Unknown error'}\n`));
|
|
63
|
+
}
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
const data = response.data || {};
|
|
67
|
+
if (outputJson) {
|
|
68
|
+
const output = { success: true, data: {} };
|
|
69
|
+
const d = output.data;
|
|
70
|
+
d.totalIssues = data.totalIssues;
|
|
71
|
+
d.totalFpEstimate = data.totalFpEstimate;
|
|
72
|
+
d.totalFpActual = data.totalFpActual;
|
|
73
|
+
d.avgFpEstimate = data.avgFpEstimate;
|
|
74
|
+
d.avgFpActual = data.avgFpActual;
|
|
75
|
+
d.deviationThreshold = data.deviationThreshold;
|
|
76
|
+
if (options.health || data.loadCheckStatus) {
|
|
77
|
+
d.loadCheckStatus = data.loadCheckStatus;
|
|
78
|
+
d.estimatedWorkDays = data.estimatedWorkDays;
|
|
79
|
+
}
|
|
80
|
+
d.datePoints = data.datePoints || [];
|
|
81
|
+
d.moduleStats = data.moduleStats || [];
|
|
82
|
+
d.deviationWarnings = data.deviationWarnings || [];
|
|
83
|
+
if (d.datePoints && Array.isArray(d.datePoints) && d.datePoints.length > 0) {
|
|
84
|
+
d.hasTimeBuckets = true;
|
|
85
|
+
}
|
|
86
|
+
console.log(JSON.stringify(output, null, 2));
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
console.log(chalk.bold('\n=== FP Statistics ===\n'));
|
|
90
|
+
console.log(` ${chalk.cyan('Total Issues:')} ${data.totalIssues ?? 0}`);
|
|
91
|
+
console.log(` ${chalk.cyan('Total FP Estimate:')} ${data.totalFpEstimate ?? 0}`);
|
|
92
|
+
console.log(` ${chalk.cyan('Total FP Actual:')} ${data.totalFpActual ?? 0}`);
|
|
93
|
+
console.log(` ${chalk.cyan('Avg FP Estimate:')} ${data.avgFpEstimate != null ? Number(data.avgFpEstimate).toFixed(1) : '-'}`);
|
|
94
|
+
console.log(` ${chalk.cyan('Avg FP Actual:')} ${data.avgFpActual != null ? Number(data.avgFpActual).toFixed(1) : '-'}`);
|
|
95
|
+
console.log(` ${chalk.cyan('Threshold:')} ${data.deviationThreshold != null ? (Number(data.deviationThreshold) * 100).toFixed(0) + '%' : '20%'}`);
|
|
96
|
+
if (options.health || data.loadCheckStatus) {
|
|
97
|
+
const loadStatus = data.loadCheckStatus;
|
|
98
|
+
const workDays = data.estimatedWorkDays;
|
|
99
|
+
console.log(` ${chalk.cyan('Load Check:')} ${getLoadCheckLabel(loadStatus)}`);
|
|
100
|
+
if (workDays != null) {
|
|
101
|
+
console.log(` ${chalk.cyan('Est. Work Days:')} ${workDays}`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
const datePoints = data.datePoints;
|
|
105
|
+
if (datePoints && datePoints.length > 0) {
|
|
106
|
+
console.log(` ${chalk.cyan('Time Series:')} ${datePoints.length} data points`);
|
|
107
|
+
const recent = datePoints.slice(-3);
|
|
108
|
+
for (const dp of recent) {
|
|
109
|
+
console.log(` ${dp.datePoint || '-'}: ${dp.count ?? 0} issues, ${dp.fpActual ?? dp.fpEstimate ?? 0} FP`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
const moduleStats = data.moduleStats;
|
|
113
|
+
if (moduleStats && moduleStats.length > 0) {
|
|
114
|
+
console.log(` ${chalk.cyan('By Module:')} ${formatModuleStats(moduleStats)}`);
|
|
115
|
+
}
|
|
116
|
+
const deviationWarnings = data.deviationWarnings;
|
|
117
|
+
if (deviationWarnings && deviationWarnings.length > 0) {
|
|
118
|
+
console.log(` ${chalk.yellow('Deviation Warnings:')}`);
|
|
119
|
+
console.log(` ${formatDeviationWarnings(deviationWarnings)}`);
|
|
120
|
+
}
|
|
121
|
+
console.log();
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
return cmd;
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=fp-stats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fp-stats.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/issues/fp-stats.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/issues/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/issues/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC,wBAAgB,uBAAuB,IAAI,OAAO,CAgCjD"}
|
|
@@ -11,6 +11,9 @@ import { createFpEstimateCommand } from './fp-estimate.js';
|
|
|
11
11
|
import { createFpActualCommand } from './fp-actual.js';
|
|
12
12
|
import { createFpReviewCommand } from './fp-review.js';
|
|
13
13
|
import { createFpSummaryCommand } from './fp-summary.js';
|
|
14
|
+
import { createFpGuideCommand } from './fp-guide.js';
|
|
15
|
+
import { createFpCalibrateStatusCommand, createFpCalibrateSuggestCommand } from './fp-calibrate.js';
|
|
16
|
+
import { createFpStatsCommand } from './fp-stats.js';
|
|
14
17
|
export function createTeamIssuesCommand() {
|
|
15
18
|
const issuesCommand = new Command('issues');
|
|
16
19
|
issuesCommand.description('Manage team issues');
|
|
@@ -29,6 +32,13 @@ export function createTeamIssuesCommand() {
|
|
|
29
32
|
issuesCommand.addCommand(createFpActualCommand());
|
|
30
33
|
issuesCommand.addCommand(createFpReviewCommand());
|
|
31
34
|
issuesCommand.addCommand(createFpSummaryCommand());
|
|
35
|
+
issuesCommand.addCommand(createFpGuideCommand());
|
|
36
|
+
const fpCalibrateCommand = new Command('fp-calibrate');
|
|
37
|
+
fpCalibrateCommand.description('Team PDR calibration (status + suggest)');
|
|
38
|
+
fpCalibrateCommand.addCommand(createFpCalibrateStatusCommand());
|
|
39
|
+
fpCalibrateCommand.addCommand(createFpCalibrateSuggestCommand());
|
|
40
|
+
issuesCommand.addCommand(fpCalibrateCommand);
|
|
41
|
+
issuesCommand.addCommand(createFpStatsCommand());
|
|
32
42
|
return issuesCommand;
|
|
33
43
|
}
|
|
34
44
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/issues/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,gCAAgC,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,iCAAiC,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/teams/issues/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,gCAAgC,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,iCAAiC,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,8BAA8B,EAAE,+BAA+B,EAAE,MAAM,mBAAmB,CAAC;AACpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,MAAM,UAAU,uBAAuB;IACrC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5C,aAAa,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAEhD,aAAa,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,CAAC;IACvD,aAAa,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAC;IACtD,aAAa,CAAC,UAAU,CAAC,4BAA4B,EAAE,CAAC,CAAC;IACzD,aAAa,CAAC,UAAU,CAAC,4BAA4B,EAAE,CAAC,CAAC;IACzD,aAAa,CAAC,UAAU,CAAC,4BAA4B,EAAE,CAAC,CAAC;IACzD,aAAa,CAAC,UAAU,CAAC,2BAA2B,EAAE,CAAC,CAAC;IAExD,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IAC9C,cAAc,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;IACpD,cAAc,CAAC,UAAU,CAAC,gCAAgC,EAAE,CAAC,CAAC;IAC9D,cAAc,CAAC,UAAU,CAAC,iCAAiC,EAAE,CAAC,CAAC;IAC/D,aAAa,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAEzC,aAAa,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACpD,aAAa,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAClD,aAAa,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAClD,aAAa,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACnD,aAAa,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAEjD,MAAM,kBAAkB,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IACvD,kBAAkB,CAAC,WAAW,CAAC,yCAAyC,CAAC,CAAC;IAC1E,kBAAkB,CAAC,UAAU,CAAC,8BAA8B,EAAE,CAAC,CAAC;IAChE,kBAAkB,CAAC,UAAU,CAAC,+BAA+B,EAAE,CAAC,CAAC;IACjE,aAAa,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAE7C,aAAa,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAEjD,OAAO,aAAa,CAAC;AACvB,CAAC"}
|
|
@@ -67,6 +67,8 @@ import { WorkerGroupQueryParams, WorkerGroupApiResponse, WorkerGroupCreateReques
|
|
|
67
67
|
import { JobTypeApiResponse } from '../../types/job-type.js';
|
|
68
68
|
import { LeaderboardApiResponse, MappingApiResponse, EntryApiResponse, CalculateApiResponse, LeaderboardQueryParams, MappingQueryParams, CreateLeaderboardRequest, UpdateLeaderboardRequest, AddMappingRequest, ImportEntriesRequest } from '../../types/leaderboard.js';
|
|
69
69
|
import type { FpApiResponse, FpEstimateRequest, FpActualRequest, FpReviewRequest, FpSummaryQueryParams, FpStatsQueryParams } from '../../types/fp-evaluation.js';
|
|
70
|
+
import type { FpConfigRequest, FpConfigApiResponse } from '../../types/fp-config.js';
|
|
71
|
+
import type { FpPdrCalibrationParams } from '../../types/fp-evaluation.js';
|
|
70
72
|
export interface LoginResponse {
|
|
71
73
|
token: string;
|
|
72
74
|
expiresAt?: string;
|
|
@@ -965,6 +967,10 @@ export declare const apiClient: {
|
|
|
965
967
|
fpReview(environment: Environment, tenant: string, data: FpReviewRequest): Promise<FpApiResponse>;
|
|
966
968
|
fpSummary(environment: Environment, tenant: string, params?: FpSummaryQueryParams): Promise<FpApiResponse>;
|
|
967
969
|
fpStats(environment: Environment, tenant: string, params?: FpStatsQueryParams): Promise<FpApiResponse>;
|
|
970
|
+
fpPdrCalibration(environment: Environment, tenant: string, params?: FpPdrCalibrationParams): Promise<FpApiResponse>;
|
|
971
|
+
fpConfigGet(environment: Environment, tenant: string): Promise<FpConfigApiResponse>;
|
|
972
|
+
fpConfigSet(environment: Environment, tenant: string, data: FpConfigRequest): Promise<FpConfigApiResponse>;
|
|
973
|
+
fpConfigReset(environment: Environment, tenant: string): Promise<FpConfigApiResponse>;
|
|
968
974
|
};
|
|
969
975
|
interface ExtractApiErrorContext {
|
|
970
976
|
tenant?: string;
|