@indigoai-us/hq-cli 5.219.0 → 5.221.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 +25 -0
- package/dist/command-catalog.generated.d.ts +37 -0
- package/dist/command-catalog.generated.js +48 -0
- package/dist/commands/lanes-checks.d.ts +36 -2
- package/dist/commands/lanes-checks.js +67 -9
- package/dist/commands/lanes-report.d.ts +11 -0
- package/dist/commands/lanes-report.js +330 -0
- package/dist/commands/lanes.d.ts +2 -1
- package/dist/commands/lanes.js +82 -57
- package/dist/lib/flag-registry-worker-mode-cache.d.ts +13 -0
- package/dist/lib/flag-registry-worker-mode-cache.js +146 -0
- package/dist/lib/flag-registry-worker-source.generated.d.ts +2 -0
- package/dist/lib/flag-registry-worker-source.generated.js +3 -0
- package/dist/lib/flag-registry.d.ts +4 -1
- package/dist/lib/flag-registry.js +100 -9
- package/dist/lib/lanes/questions.d.ts +9 -1
- package/dist/lib/lanes/questions.js +84 -5
- package/dist/lib/lanes/reconcile.js +2 -4
- package/dist/lib/lanes/timestamp.d.ts +3 -0
- package/dist/lib/lanes/timestamp.js +26 -0
- package/dist/lib/lanes/tracker-report-state.d.ts +10 -0
- package/dist/lib/lanes/tracker-report-state.js +124 -0
- package/dist/lib/lanes/tracker-report.d.ts +203 -0
- package/dist/lib/lanes/tracker-report.js +522 -0
- package/dist/lib/lanes/watcher.js +13 -7
- package/dist/sentry.js +41 -0
- package/package.json +5 -2
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import type { QuestionBody } from "./questions.js";
|
|
2
|
+
import type { QuestionRecord } from "./types.js";
|
|
3
|
+
import type { TrackerRecord } from "./tracker-store.js";
|
|
4
|
+
export type ReportStoryStatus = "queued" | "in_progress" | "review" | "done" | "dropped";
|
|
5
|
+
export type ReportAudience = "owner" | "operator" | "lane";
|
|
6
|
+
export type ApprovalState = "proposal" | "approved";
|
|
7
|
+
export interface TrackerReportRecord extends TrackerRecord {
|
|
8
|
+
/** Absolute path of the validated on-disk record; used only in errors. */
|
|
9
|
+
source_path: string;
|
|
10
|
+
}
|
|
11
|
+
export interface TrackerReportStory {
|
|
12
|
+
id: string;
|
|
13
|
+
title: string;
|
|
14
|
+
status: ReportStoryStatus;
|
|
15
|
+
references?: string[];
|
|
16
|
+
updated_at?: string;
|
|
17
|
+
source_path: string;
|
|
18
|
+
}
|
|
19
|
+
export interface TrackerReportIssue {
|
|
20
|
+
path: string;
|
|
21
|
+
field: string;
|
|
22
|
+
message: string;
|
|
23
|
+
story_id?: string;
|
|
24
|
+
record_id?: string;
|
|
25
|
+
question_id?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface TrackerReportPullRequest {
|
|
28
|
+
number: string;
|
|
29
|
+
title: string;
|
|
30
|
+
merged_at: string;
|
|
31
|
+
source_path: string;
|
|
32
|
+
}
|
|
33
|
+
export interface TrackerReportRelease {
|
|
34
|
+
version: string;
|
|
35
|
+
released_at: string;
|
|
36
|
+
source_path: string;
|
|
37
|
+
}
|
|
38
|
+
export interface TrackerReportQuestion {
|
|
39
|
+
record: QuestionRecord;
|
|
40
|
+
/** Loaded through the existing company-checked question body reader. */
|
|
41
|
+
body: QuestionBody;
|
|
42
|
+
current_audience: ReportAudience;
|
|
43
|
+
source_path: string;
|
|
44
|
+
}
|
|
45
|
+
export interface TrackerReportTeamInput {
|
|
46
|
+
company: string;
|
|
47
|
+
team: string;
|
|
48
|
+
project_id: string;
|
|
49
|
+
stories: readonly TrackerReportStory[];
|
|
50
|
+
pull_requests: readonly TrackerReportPullRequest[];
|
|
51
|
+
releases: readonly TrackerReportRelease[];
|
|
52
|
+
blockers: readonly TrackerReportRecord[];
|
|
53
|
+
kpis: readonly TrackerReportRecord[];
|
|
54
|
+
okrs: readonly TrackerReportRecord[];
|
|
55
|
+
directives: readonly TrackerReportRecord[];
|
|
56
|
+
questions: readonly TrackerReportQuestion[];
|
|
57
|
+
errors?: readonly TrackerReportIssue[];
|
|
58
|
+
}
|
|
59
|
+
export interface TrackerReportInput {
|
|
60
|
+
company: string;
|
|
61
|
+
generated_at: string;
|
|
62
|
+
since: string;
|
|
63
|
+
since_source: "explicit" | "previous_report" | "first_run";
|
|
64
|
+
teams: readonly TrackerReportTeamInput[];
|
|
65
|
+
}
|
|
66
|
+
export interface ReportTimedStory {
|
|
67
|
+
id: string;
|
|
68
|
+
title: string;
|
|
69
|
+
at: string;
|
|
70
|
+
references: string[];
|
|
71
|
+
}
|
|
72
|
+
export interface ReportPullRequest {
|
|
73
|
+
number: string;
|
|
74
|
+
title: string;
|
|
75
|
+
merged_at: string;
|
|
76
|
+
}
|
|
77
|
+
export interface ReportRelease {
|
|
78
|
+
version: string;
|
|
79
|
+
released_at: string;
|
|
80
|
+
}
|
|
81
|
+
export interface ReportKpiValue {
|
|
82
|
+
kpi_id: string;
|
|
83
|
+
name: string;
|
|
84
|
+
at: string;
|
|
85
|
+
value: number;
|
|
86
|
+
unit: string;
|
|
87
|
+
source: string;
|
|
88
|
+
}
|
|
89
|
+
export interface ReportQuestion {
|
|
90
|
+
question_id: string;
|
|
91
|
+
question: string;
|
|
92
|
+
asked_at: string;
|
|
93
|
+
audience: ReportAudience;
|
|
94
|
+
options: string[];
|
|
95
|
+
recommended?: string;
|
|
96
|
+
answer?: {
|
|
97
|
+
choice: string;
|
|
98
|
+
answered_at: string;
|
|
99
|
+
answered_by: string;
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
export interface ReportBlocker {
|
|
103
|
+
id: string;
|
|
104
|
+
story_id: string;
|
|
105
|
+
what: string;
|
|
106
|
+
waiting_on: string;
|
|
107
|
+
next_step: string;
|
|
108
|
+
opened_at: string;
|
|
109
|
+
}
|
|
110
|
+
export interface ReportDirective {
|
|
111
|
+
id: string;
|
|
112
|
+
text: string;
|
|
113
|
+
date: string;
|
|
114
|
+
acknowledgements: Array<{
|
|
115
|
+
team: string;
|
|
116
|
+
lane_id: string;
|
|
117
|
+
at: string;
|
|
118
|
+
}>;
|
|
119
|
+
}
|
|
120
|
+
export interface TrackerOwnerTeamReport {
|
|
121
|
+
team: string;
|
|
122
|
+
project_id: string;
|
|
123
|
+
errors: TrackerReportIssue[];
|
|
124
|
+
progress: {
|
|
125
|
+
stories_moved_to_done: ReportTimedStory[];
|
|
126
|
+
pull_requests_merged: ReportPullRequest[];
|
|
127
|
+
releases: ReportRelease[];
|
|
128
|
+
kpi_values: ReportKpiValue[];
|
|
129
|
+
};
|
|
130
|
+
questions_waiting_on_owner: ReportQuestion[];
|
|
131
|
+
open_blockers: ReportBlocker[];
|
|
132
|
+
decisions: {
|
|
133
|
+
directives: ReportDirective[];
|
|
134
|
+
answered_questions: ReportQuestion[];
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
export interface TrackerOwnerReport {
|
|
138
|
+
schema_version: "hq-lanes-owner-report.v1";
|
|
139
|
+
company: string;
|
|
140
|
+
generated_at: string;
|
|
141
|
+
since: string;
|
|
142
|
+
since_source: TrackerReportInput["since_source"];
|
|
143
|
+
teams: TrackerOwnerTeamReport[];
|
|
144
|
+
}
|
|
145
|
+
export interface TrackerTeamKpi {
|
|
146
|
+
id: string;
|
|
147
|
+
name: string;
|
|
148
|
+
definition: string;
|
|
149
|
+
unit: string;
|
|
150
|
+
target: number;
|
|
151
|
+
direction: "up" | "down";
|
|
152
|
+
status: ApprovalState;
|
|
153
|
+
latest_value: {
|
|
154
|
+
at: string;
|
|
155
|
+
value: number;
|
|
156
|
+
source: string;
|
|
157
|
+
} | null;
|
|
158
|
+
recent_values: Array<{
|
|
159
|
+
at: string;
|
|
160
|
+
value: number;
|
|
161
|
+
source: string;
|
|
162
|
+
}>;
|
|
163
|
+
trend: "improving" | "regressing" | "flat" | "insufficient_data";
|
|
164
|
+
}
|
|
165
|
+
export interface TrackerTeamOkr {
|
|
166
|
+
id: string;
|
|
167
|
+
objective: string;
|
|
168
|
+
period: string;
|
|
169
|
+
status: ApprovalState;
|
|
170
|
+
key_results: Array<{
|
|
171
|
+
text: string;
|
|
172
|
+
kpi_id: string;
|
|
173
|
+
target: number;
|
|
174
|
+
}>;
|
|
175
|
+
}
|
|
176
|
+
export interface TrackerTeamPage {
|
|
177
|
+
schema_version: "hq-lanes-team-page.v1";
|
|
178
|
+
company: string;
|
|
179
|
+
team: string;
|
|
180
|
+
project_id: string;
|
|
181
|
+
since: string;
|
|
182
|
+
errors: TrackerReportIssue[];
|
|
183
|
+
okrs: TrackerTeamOkr[];
|
|
184
|
+
kpis: TrackerTeamKpi[];
|
|
185
|
+
work_in_progress: Array<{
|
|
186
|
+
id: string;
|
|
187
|
+
title: string;
|
|
188
|
+
status: ReportStoryStatus;
|
|
189
|
+
references: string[];
|
|
190
|
+
}>;
|
|
191
|
+
work_done_since: ReportTimedStory[];
|
|
192
|
+
blockers: ReportBlocker[];
|
|
193
|
+
questions: ReportQuestion[];
|
|
194
|
+
}
|
|
195
|
+
/** Pure report projection. The caller owns loading, tenant checks, body reads and report-time persistence. */
|
|
196
|
+
export declare function buildTrackerOwnerReport(input: TrackerReportInput): TrackerOwnerReport;
|
|
197
|
+
/** Pure team page projection for already loaded, company-checked records. */
|
|
198
|
+
export declare function buildTrackerTeamPage(team: TrackerReportTeamInput, company: string, sinceValue: string, generatedAtValue: string): TrackerTeamPage;
|
|
199
|
+
/** Human-readable owner report, rendered without editing after the command runs. */
|
|
200
|
+
export declare function renderTrackerOwnerReportText(report: TrackerOwnerReport): string;
|
|
201
|
+
/** Human-readable team page, with proposal status visible beside each objective and KPI. */
|
|
202
|
+
export declare function renderTrackerTeamPageText(page: TrackerTeamPage): string;
|
|
203
|
+
//# sourceMappingURL=tracker-report.d.ts.map
|