@hanfour.huang/caliber 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +667 -0
- package/dist/analyzers/section.d.ts +9 -0
- package/dist/analyzers/section.d.ts.map +1 -0
- package/dist/analyzers/section.js +503 -0
- package/dist/analyzers/section.js.map +1 -0
- package/dist/analyzers/usage.d.ts +3 -0
- package/dist/analyzers/usage.d.ts.map +1 -0
- package/dist/analyzers/usage.js +141 -0
- package/dist/analyzers/usage.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +295 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +19 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +156 -0
- package/dist/config.js.map +1 -0
- package/dist/data-quality.d.ts +3 -0
- package/dist/data-quality.d.ts.map +1 -0
- package/dist/data-quality.js +54 -0
- package/dist/data-quality.js.map +1 -0
- package/dist/extractors/claude-code.d.ts +6 -0
- package/dist/extractors/claude-code.d.ts.map +1 -0
- package/dist/extractors/claude-code.js +216 -0
- package/dist/extractors/claude-code.js.map +1 -0
- package/dist/extractors/codex.d.ts +5 -0
- package/dist/extractors/codex.d.ts.map +1 -0
- package/dist/extractors/codex.js +184 -0
- package/dist/extractors/codex.js.map +1 -0
- package/dist/i18n.d.ts +53 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +163 -0
- package/dist/i18n.js.map +1 -0
- package/dist/period.d.ts +5 -0
- package/dist/period.d.ts.map +1 -0
- package/dist/period.js +25 -0
- package/dist/period.js.map +1 -0
- package/dist/reporters/report.d.ts +7 -0
- package/dist/reporters/report.d.ts.map +1 -0
- package/dist/reporters/report.js +440 -0
- package/dist/reporters/report.js.map +1 -0
- package/dist/standard.d.ts +5 -0
- package/dist/standard.d.ts.map +1 -0
- package/dist/standard.js +98 -0
- package/dist/standard.js.map +1 -0
- package/dist/types.d.ts +216 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +3 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +17 -0
- package/dist/utils.js.map +1 -0
- package/package.json +59 -0
- package/templates/eval-standard.json +174 -0
package/dist/i18n.js
ADDED
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
const DICTS = {
|
|
2
|
+
en: {
|
|
3
|
+
reportTitle: "Evaluation Report",
|
|
4
|
+
summaryTitle: "Management Summary",
|
|
5
|
+
usageTitle: "Usage Overview",
|
|
6
|
+
scoreTitle: "Score Recommendation",
|
|
7
|
+
observations: "Observations",
|
|
8
|
+
recommendations: "Recommendations",
|
|
9
|
+
usageEvidence: "Usage Evidence",
|
|
10
|
+
scoreEvidence: "Score Evidence",
|
|
11
|
+
dataWarnings: "Data Quality Warnings",
|
|
12
|
+
generated: "Generated",
|
|
13
|
+
period: "Period",
|
|
14
|
+
engineer: "Engineer",
|
|
15
|
+
department: "Department",
|
|
16
|
+
sessions: "Sessions",
|
|
17
|
+
tokens: "Tokens",
|
|
18
|
+
duration: "Duration",
|
|
19
|
+
activeDays: "Active Days",
|
|
20
|
+
estimatedCost: "Estimated Cost",
|
|
21
|
+
models: "Models",
|
|
22
|
+
topProjects: "Top Projects",
|
|
23
|
+
topTools: "Top Tools",
|
|
24
|
+
noCodexSessions: "No Codex sessions found.",
|
|
25
|
+
scoringSourceNote: "Scoring uses Claude Code facets/conversations plus Codex thread metadata, user prompt history, and tool/error logs.",
|
|
26
|
+
atAGlance: "At a Glance",
|
|
27
|
+
usageStats: "Usage Stats",
|
|
28
|
+
sections: "Sections",
|
|
29
|
+
reportWritten: "Report written to",
|
|
30
|
+
standardLabel: "Standard",
|
|
31
|
+
extractingLabel: "Extracting data from",
|
|
32
|
+
claudeLabel: "Claude Code",
|
|
33
|
+
codexLabel: "Codex",
|
|
34
|
+
dataWarningsCount: "Data warnings",
|
|
35
|
+
configTitle: "Caliber Configuration",
|
|
36
|
+
configFile: "Config file",
|
|
37
|
+
defaultLabel: "(default)",
|
|
38
|
+
customLabel: "(custom)",
|
|
39
|
+
configReset: "Configuration reset to defaults.",
|
|
40
|
+
setOk: "Set",
|
|
41
|
+
defaultStandardExported: "Default standard exported to",
|
|
42
|
+
defaultStandardHint: "Edit this file to create your custom evaluation standard.",
|
|
43
|
+
},
|
|
44
|
+
"zh-TW": {
|
|
45
|
+
reportTitle: "評核報告",
|
|
46
|
+
summaryTitle: "管理摘要",
|
|
47
|
+
usageTitle: "使用概覽",
|
|
48
|
+
scoreTitle: "分值建議",
|
|
49
|
+
observations: "觀察",
|
|
50
|
+
recommendations: "建議",
|
|
51
|
+
usageEvidence: "使用證據",
|
|
52
|
+
scoreEvidence: "評分證據",
|
|
53
|
+
dataWarnings: "資料品質警告",
|
|
54
|
+
generated: "產出時間",
|
|
55
|
+
period: "期間",
|
|
56
|
+
engineer: "工程師",
|
|
57
|
+
department: "部門",
|
|
58
|
+
sessions: "Sessions",
|
|
59
|
+
tokens: "Tokens",
|
|
60
|
+
duration: "使用時長",
|
|
61
|
+
activeDays: "活躍天數",
|
|
62
|
+
estimatedCost: "預估成本",
|
|
63
|
+
models: "模型分布",
|
|
64
|
+
topProjects: "主要專案",
|
|
65
|
+
topTools: "主要工具",
|
|
66
|
+
noCodexSessions: "未找到 Codex sessions。",
|
|
67
|
+
scoringSourceNote: "評分依據包含 Claude Code facets / conversations,以及 Codex thread metadata、user prompt history、tool / error logs。",
|
|
68
|
+
atAGlance: "快速總覽",
|
|
69
|
+
usageStats: "使用統計",
|
|
70
|
+
sections: "評核項目",
|
|
71
|
+
reportWritten: "報告已寫入",
|
|
72
|
+
standardLabel: "評核標準",
|
|
73
|
+
extractingLabel: "正在擷取資料",
|
|
74
|
+
claudeLabel: "Claude Code",
|
|
75
|
+
codexLabel: "Codex",
|
|
76
|
+
dataWarningsCount: "資料警告",
|
|
77
|
+
configTitle: "Caliber 設定",
|
|
78
|
+
configFile: "設定檔",
|
|
79
|
+
defaultLabel: "(預設)",
|
|
80
|
+
customLabel: "(自訂)",
|
|
81
|
+
configReset: "設定已重設為預設值。",
|
|
82
|
+
setOk: "已設定",
|
|
83
|
+
defaultStandardExported: "預設標準已匯出至",
|
|
84
|
+
defaultStandardHint: "請編輯此檔案來建立自訂評核標準。",
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
export function t(locale) {
|
|
88
|
+
return DICTS[locale];
|
|
89
|
+
}
|
|
90
|
+
export function localizeHeadline(locale, superiorCount, sectionCount) {
|
|
91
|
+
if (locale === "zh-TW") {
|
|
92
|
+
if (superiorCount === sectionCount)
|
|
93
|
+
return "整體 KPI 證據完整,所有評核項目皆達卓越。";
|
|
94
|
+
if (superiorCount > 0)
|
|
95
|
+
return "KPI 證據呈現混合狀態,部分項目達卓越,但仍有補強空間。";
|
|
96
|
+
return "KPI 證據目前停留在標準水位,仍需更強的決策與風險控管證據。";
|
|
97
|
+
}
|
|
98
|
+
if (superiorCount === sectionCount) {
|
|
99
|
+
return "Overall KPI posture is strong across all configured sections.";
|
|
100
|
+
}
|
|
101
|
+
if (superiorCount > 0) {
|
|
102
|
+
return "KPI evidence is mixed: some sections are superior, but not all.";
|
|
103
|
+
}
|
|
104
|
+
return "KPI evidence remains at standard level; stronger decision and risk evidence is needed.";
|
|
105
|
+
}
|
|
106
|
+
export function localizeOverallAssessment(locale, since, until, report, superiorCount, sectionCount) {
|
|
107
|
+
if (locale === "zh-TW") {
|
|
108
|
+
return `分析期間為 ${since} 至 ${until}。共分析 ${report.claudeCode.totalSessions} 個 Claude Code sessions 與 ${report.codex.totalSessions} 個 Codex threads,其中 ${sectionCount} 個評核項目中有 ${superiorCount} 個達到 120%。`;
|
|
109
|
+
}
|
|
110
|
+
return `Period ${since} to ${until}. ${report.claudeCode.totalSessions} Claude Code sessions and ${report.codex.totalSessions} Codex threads were analyzed. ${superiorCount}/${sectionCount} sections reached Superior (120%).`;
|
|
111
|
+
}
|
|
112
|
+
export function localizeObservationTokens(locale, report) {
|
|
113
|
+
if (locale === "zh-TW") {
|
|
114
|
+
return [
|
|
115
|
+
`Claude Code tokens:${(report.claudeCode.totalInputTokens + report.claudeCode.totalOutputTokens).toLocaleString("zh-TW")}。`,
|
|
116
|
+
`Codex tokens:${report.codex.totalTokensUsed.toLocaleString("zh-TW")}。`,
|
|
117
|
+
];
|
|
118
|
+
}
|
|
119
|
+
return [
|
|
120
|
+
`Claude Code tokens: ${(report.claudeCode.totalInputTokens + report.claudeCode.totalOutputTokens).toLocaleString("en-US")}.`,
|
|
121
|
+
`Codex tokens: ${report.codex.totalTokensUsed.toLocaleString("en-US")}.`,
|
|
122
|
+
];
|
|
123
|
+
}
|
|
124
|
+
export function localizeSectionScoreLine(locale, section) {
|
|
125
|
+
if (locale === "zh-TW") {
|
|
126
|
+
return `${section.name}:${section.score}%(${section.label})。`;
|
|
127
|
+
}
|
|
128
|
+
return `${section.name}: ${section.score}% (${section.label}).`;
|
|
129
|
+
}
|
|
130
|
+
export function localizeRecommendations(locale, sections) {
|
|
131
|
+
const recommendations = [];
|
|
132
|
+
if (sections.some((section) => section.id === "interaction" && section.score <= 100)) {
|
|
133
|
+
recommendations.push(locale === "zh-TW"
|
|
134
|
+
? "建議補強互動決策證據,例如更明確的方案比較、多輪選擇與修正脈絡。"
|
|
135
|
+
: "Strengthen interaction evidence with clearer decision comparisons, iterative choices, and explicit corrections.");
|
|
136
|
+
}
|
|
137
|
+
if (sections.some((section) => section.id === "riskControl" && section.score <= 100)) {
|
|
138
|
+
recommendations.push(locale === "zh-TW"
|
|
139
|
+
? "建議補強風險控管證據,例如更明確的安全、效能與防錯討論。"
|
|
140
|
+
: "Strengthen risk-control evidence with explicit security, performance, and bug-prevention discussions.");
|
|
141
|
+
}
|
|
142
|
+
if (recommendations.length === 0) {
|
|
143
|
+
recommendations.push(locale === "zh-TW"
|
|
144
|
+
? "請維持目前的證據品質,並持續記錄決策與風險控管 reasoning。"
|
|
145
|
+
: "Maintain current evidence quality and continue documenting decision and risk-control reasoning.");
|
|
146
|
+
}
|
|
147
|
+
return recommendations;
|
|
148
|
+
}
|
|
149
|
+
export function localizeWarningLabel(locale, warning) {
|
|
150
|
+
if (locale === "zh-TW") {
|
|
151
|
+
if (warning.severity === "missing")
|
|
152
|
+
return "缺失";
|
|
153
|
+
if (warning.severity === "error")
|
|
154
|
+
return "錯誤";
|
|
155
|
+
return "部分缺失";
|
|
156
|
+
}
|
|
157
|
+
if (warning.severity === "missing")
|
|
158
|
+
return "MISSING";
|
|
159
|
+
if (warning.severity === "error")
|
|
160
|
+
return "ERROR";
|
|
161
|
+
return "PARTIAL";
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=i18n.js.map
|
package/dist/i18n.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"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"}
|
package/dist/period.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"period.d.ts","sourceRoot":"","sources":["../src/period.ts"],"names":[],"mappings":"AAEA,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,GAAG,WAAW,EAC/B,QAAQ,EAAE,OAAO,GAChB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAyBlC"}
|
package/dist/period.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import dayjs from "dayjs";
|
|
2
|
+
export function resolvePresetPeriod(preset, previous) {
|
|
3
|
+
if (preset === "monthly") {
|
|
4
|
+
const base = previous ? dayjs().subtract(1, "month") : dayjs();
|
|
5
|
+
return {
|
|
6
|
+
since: base.startOf("month").format("YYYY-MM-DD"),
|
|
7
|
+
until: (previous ? base.endOf("month") : dayjs()).format("YYYY-MM-DD"),
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
const now = dayjs();
|
|
11
|
+
const month = now.month();
|
|
12
|
+
const quarterStartMonth = Math.floor(month / 3) * 3;
|
|
13
|
+
let start = now.month(quarterStartMonth).startOf("month");
|
|
14
|
+
let end = now;
|
|
15
|
+
if (previous) {
|
|
16
|
+
end = start.subtract(1, "day").endOf("day");
|
|
17
|
+
const previousQuarterStartMonth = Math.floor(end.month() / 3) * 3;
|
|
18
|
+
start = end.month(previousQuarterStartMonth).startOf("month");
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
since: start.format("YYYY-MM-DD"),
|
|
22
|
+
until: end.format("YYYY-MM-DD"),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=period.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"period.js","sourceRoot":"","sources":["../src/period.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,mBAAmB,CACjC,MAA+B,EAC/B,QAAiB;IAEjB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC/D,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;YACjD,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;SACvE,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC;IACpB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;IAC1B,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACpD,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1D,IAAI,GAAG,GAAG,GAAG,CAAC;IAEd,IAAI,QAAQ,EAAE,CAAC;QACb,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,yBAAyB,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAClE,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE,CAAC;IAED,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC;QACjC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;KAChC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { EvalReport } from "../types.js";
|
|
2
|
+
import { type AppLocale } from "../i18n.js";
|
|
3
|
+
export declare function renderTextReport(report: EvalReport, locale: AppLocale): string;
|
|
4
|
+
export declare function renderJsonReport(report: EvalReport): string;
|
|
5
|
+
export declare function renderMarkdownReport(report: EvalReport, locale: AppLocale): string;
|
|
6
|
+
export declare function renderHtmlReport(report: EvalReport, locale: AppLocale): string;
|
|
7
|
+
//# sourceMappingURL=report.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/reporters/report.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAqB,MAAM,aAAa,CAAC;AACjE,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAsDrE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CA+H9E;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAE3D;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CA0FlF;AAmDD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CAsI9E"}
|