@ginkoai/cli 2.4.5 → 2.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.
Files changed (202) hide show
  1. package/LICENSE +661 -21
  2. package/dist/analysis/deep-analyzer.js +7 -7
  3. package/dist/analysis/deep-analyzer.js.map +1 -1
  4. package/dist/analysis/project-analyzer.js +2 -2
  5. package/dist/analysis/project-analyzer.js.map +1 -1
  6. package/dist/commands/agent/status.d.ts.map +1 -1
  7. package/dist/commands/agent/status.js +2 -0
  8. package/dist/commands/agent/status.js.map +1 -1
  9. package/dist/commands/assign.d.ts.map +1 -1
  10. package/dist/commands/assign.js +2 -0
  11. package/dist/commands/assign.js.map +1 -1
  12. package/dist/commands/charter.js +3 -3
  13. package/dist/commands/charter.js.map +1 -1
  14. package/dist/commands/context/index.d.ts +28 -0
  15. package/dist/commands/context/index.d.ts.map +1 -0
  16. package/dist/commands/context/index.js +165 -0
  17. package/dist/commands/context/index.js.map +1 -0
  18. package/dist/commands/context/score.d.ts +34 -0
  19. package/dist/commands/context/score.d.ts.map +1 -0
  20. package/dist/commands/context/score.js +163 -0
  21. package/dist/commands/context/score.js.map +1 -0
  22. package/dist/commands/diff/diff-command.d.ts.map +1 -1
  23. package/dist/commands/diff/diff-command.js +2 -0
  24. package/dist/commands/diff/diff-command.js.map +1 -1
  25. package/dist/commands/epic/status.d.ts.map +1 -1
  26. package/dist/commands/epic/status.js +5 -0
  27. package/dist/commands/epic/status.js.map +1 -1
  28. package/dist/commands/graph/api-client.d.ts +130 -0
  29. package/dist/commands/graph/api-client.d.ts.map +1 -1
  30. package/dist/commands/graph/api-client.js +153 -0
  31. package/dist/commands/graph/api-client.js.map +1 -1
  32. package/dist/commands/graph/cleanup.d.ts.map +1 -1
  33. package/dist/commands/graph/cleanup.js +2 -0
  34. package/dist/commands/graph/cleanup.js.map +1 -1
  35. package/dist/commands/graph/explore.d.ts.map +1 -1
  36. package/dist/commands/graph/explore.js +2 -0
  37. package/dist/commands/graph/explore.js.map +1 -1
  38. package/dist/commands/graph/init.d.ts.map +1 -1
  39. package/dist/commands/graph/init.js +2 -4
  40. package/dist/commands/graph/init.js.map +1 -1
  41. package/dist/commands/graph/query.d.ts.map +1 -1
  42. package/dist/commands/graph/query.js +2 -0
  43. package/dist/commands/graph/query.js.map +1 -1
  44. package/dist/commands/graph/status.d.ts.map +1 -1
  45. package/dist/commands/graph/status.js +2 -0
  46. package/dist/commands/graph/status.js.map +1 -1
  47. package/dist/commands/handoff.d.ts.map +1 -1
  48. package/dist/commands/handoff.js +34 -0
  49. package/dist/commands/handoff.js.map +1 -1
  50. package/dist/commands/health.d.ts +15 -0
  51. package/dist/commands/health.d.ts.map +1 -0
  52. package/dist/commands/health.js +212 -0
  53. package/dist/commands/health.js.map +1 -0
  54. package/dist/commands/init-copilot.js +1 -1
  55. package/dist/commands/init-copilot.js.map +1 -1
  56. package/dist/commands/init.d.ts.map +1 -1
  57. package/dist/commands/init.js +167 -2
  58. package/dist/commands/init.js.map +1 -1
  59. package/dist/commands/join/index.js +2 -2
  60. package/dist/commands/knowledge/create.d.ts.map +1 -1
  61. package/dist/commands/knowledge/create.js +2 -0
  62. package/dist/commands/knowledge/create.js.map +1 -1
  63. package/dist/commands/knowledge/graph.d.ts.map +1 -1
  64. package/dist/commands/knowledge/graph.js +2 -0
  65. package/dist/commands/knowledge/graph.js.map +1 -1
  66. package/dist/commands/knowledge/search.d.ts.map +1 -1
  67. package/dist/commands/knowledge/search.js +2 -0
  68. package/dist/commands/knowledge/search.js.map +1 -1
  69. package/dist/commands/log.d.ts.map +1 -1
  70. package/dist/commands/log.js +4 -3
  71. package/dist/commands/log.js.map +1 -1
  72. package/dist/commands/migrate/status-migration.d.ts.map +1 -1
  73. package/dist/commands/migrate/status-migration.js +2 -4
  74. package/dist/commands/migrate/status-migration.js.map +1 -1
  75. package/dist/commands/orchestrate.d.ts.map +1 -1
  76. package/dist/commands/orchestrate.js +2 -0
  77. package/dist/commands/orchestrate.js.map +1 -1
  78. package/dist/commands/pull/pull-command.d.ts.map +1 -1
  79. package/dist/commands/pull/pull-command.js +3 -1
  80. package/dist/commands/pull/pull-command.js.map +1 -1
  81. package/dist/commands/push/push-command.d.ts.map +1 -1
  82. package/dist/commands/push/push-command.js +5 -0
  83. package/dist/commands/push/push-command.js.map +1 -1
  84. package/dist/commands/ship.js +1 -1
  85. package/dist/commands/ship.js.map +1 -1
  86. package/dist/commands/sprint/create.d.ts +9 -5
  87. package/dist/commands/sprint/create.d.ts.map +1 -1
  88. package/dist/commands/sprint/create.js +226 -29
  89. package/dist/commands/sprint/create.js.map +1 -1
  90. package/dist/commands/sprint/index.d.ts.map +1 -1
  91. package/dist/commands/sprint/index.js +9 -5
  92. package/dist/commands/sprint/index.js.map +1 -1
  93. package/dist/commands/sprint/status.d.ts +3 -0
  94. package/dist/commands/sprint/status.d.ts.map +1 -1
  95. package/dist/commands/sprint/status.js +88 -2
  96. package/dist/commands/sprint/status.js.map +1 -1
  97. package/dist/commands/start/index.js +3 -3
  98. package/dist/commands/start/index.js.map +1 -1
  99. package/dist/commands/start/start-reflection.d.ts +5 -0
  100. package/dist/commands/start/start-reflection.d.ts.map +1 -1
  101. package/dist/commands/start/start-reflection.js +60 -11
  102. package/dist/commands/start/start-reflection.js.map +1 -1
  103. package/dist/commands/sync/node-syncer.d.ts +3 -1
  104. package/dist/commands/sync/node-syncer.d.ts.map +1 -1
  105. package/dist/commands/sync/node-syncer.js +13 -2
  106. package/dist/commands/sync/node-syncer.js.map +1 -1
  107. package/dist/commands/sync/sprint-syncer.d.ts.map +1 -1
  108. package/dist/commands/sync/sprint-syncer.js +2 -4
  109. package/dist/commands/sync/sprint-syncer.js.map +1 -1
  110. package/dist/commands/sync/sync-command.js +1 -1
  111. package/dist/commands/sync/sync-command.js.map +1 -1
  112. package/dist/commands/sync/team-sync.js +1 -1
  113. package/dist/commands/sync/types.d.ts +1 -1
  114. package/dist/commands/sync/types.d.ts.map +1 -1
  115. package/dist/commands/task/status.d.ts +1 -1
  116. package/dist/commands/task/status.d.ts.map +1 -1
  117. package/dist/commands/task/status.js +161 -6
  118. package/dist/commands/task/status.js.map +1 -1
  119. package/dist/commands/team/members.d.ts.map +1 -1
  120. package/dist/commands/team/members.js +4 -0
  121. package/dist/commands/team/members.js.map +1 -1
  122. package/dist/commands/team/projects.d.ts.map +1 -1
  123. package/dist/commands/team/projects.js +3 -0
  124. package/dist/commands/team/projects.js.map +1 -1
  125. package/dist/commands/team/status.d.ts.map +1 -1
  126. package/dist/commands/team/status.js +2 -0
  127. package/dist/commands/team/status.js.map +1 -1
  128. package/dist/index.js +12 -8
  129. package/dist/index.js.map +1 -1
  130. package/dist/lib/adoption-score.d.ts +1 -1
  131. package/dist/lib/adoption-score.d.ts.map +1 -1
  132. package/dist/lib/adoption-score.js +1 -0
  133. package/dist/lib/adoption-score.js.map +1 -1
  134. package/dist/lib/context-loader-events.d.ts +4 -4
  135. package/dist/lib/context-loader-events.d.ts.map +1 -1
  136. package/dist/lib/context-loader-events.js +69 -18
  137. package/dist/lib/context-loader-events.js.map +1 -1
  138. package/dist/lib/context-quality.d.ts +224 -0
  139. package/dist/lib/context-quality.d.ts.map +1 -0
  140. package/dist/lib/context-quality.js +363 -0
  141. package/dist/lib/context-quality.js.map +1 -0
  142. package/dist/lib/event-logger.d.ts.map +1 -1
  143. package/dist/lib/event-logger.js +2 -3
  144. package/dist/lib/event-logger.js.map +1 -1
  145. package/dist/lib/health-checker.d.ts +35 -0
  146. package/dist/lib/health-checker.d.ts.map +1 -0
  147. package/dist/lib/health-checker.js +473 -0
  148. package/dist/lib/health-checker.js.map +1 -0
  149. package/dist/lib/notification-hooks.js +1 -1
  150. package/dist/lib/notification-hooks.js.map +1 -1
  151. package/dist/lib/output-formatter.d.ts +48 -0
  152. package/dist/lib/output-formatter.d.ts.map +1 -1
  153. package/dist/lib/output-formatter.js +168 -4
  154. package/dist/lib/output-formatter.js.map +1 -1
  155. package/dist/lib/resumption-brief.d.ts +91 -0
  156. package/dist/lib/resumption-brief.d.ts.map +1 -0
  157. package/dist/lib/resumption-brief.js +344 -0
  158. package/dist/lib/resumption-brief.js.map +1 -0
  159. package/dist/lib/staleness-detector.js +1 -1
  160. package/dist/lib/state-cache.d.ts +43 -0
  161. package/dist/lib/state-cache.d.ts.map +1 -1
  162. package/dist/lib/state-cache.js +72 -0
  163. package/dist/lib/state-cache.js.map +1 -1
  164. package/dist/lib/sync/scanner.d.ts.map +1 -1
  165. package/dist/lib/sync/scanner.js +3 -5
  166. package/dist/lib/sync/scanner.js.map +1 -1
  167. package/dist/lib/targeted-coaching.js +2 -2
  168. package/dist/lib/task-parser.d.ts +34 -4
  169. package/dist/lib/task-parser.d.ts.map +1 -1
  170. package/dist/lib/task-parser.js +110 -4
  171. package/dist/lib/task-parser.js.map +1 -1
  172. package/dist/services/context-search.d.ts.map +1 -1
  173. package/dist/services/context-search.js +4 -2
  174. package/dist/services/context-search.js.map +1 -1
  175. package/dist/templates/ai-instructions-template.d.ts +11 -0
  176. package/dist/templates/ai-instructions-template.d.ts.map +1 -1
  177. package/dist/templates/ai-instructions-template.js +197 -0
  178. package/dist/templates/ai-instructions-template.js.map +1 -1
  179. package/dist/templates/commands/handoff.md +40 -0
  180. package/dist/templates/commands/quick.md +27 -0
  181. package/dist/templates/commands/ship.md +43 -0
  182. package/dist/templates/commands/start.md +15 -0
  183. package/dist/templates/commands/vibecheck.md +36 -0
  184. package/dist/templates/skills/ginko/SKILL.md +1 -8
  185. package/dist/templates/sprint-template.md +273 -0
  186. package/dist/utils/cloud-guard.d.ts +48 -0
  187. package/dist/utils/cloud-guard.d.ts.map +1 -0
  188. package/dist/utils/cloud-guard.js +107 -0
  189. package/dist/utils/cloud-guard.js.map +1 -0
  190. package/dist/utils/config-loader.d.ts +2 -2
  191. package/dist/utils/config-loader.js +2 -2
  192. package/dist/utils/helpers.d.ts.map +1 -1
  193. package/dist/utils/helpers.js +11 -10
  194. package/dist/utils/helpers.js.map +1 -1
  195. package/dist/utils/perf-logger.d.ts +100 -0
  196. package/dist/utils/perf-logger.d.ts.map +1 -0
  197. package/dist/utils/perf-logger.js +132 -0
  198. package/dist/utils/perf-logger.js.map +1 -0
  199. package/dist/utils/reference-parser.d.ts.map +1 -1
  200. package/dist/utils/reference-parser.js +3 -6
  201. package/dist/utils/reference-parser.js.map +1 -1
  202. package/package.json +4 -5
@@ -0,0 +1,473 @@
1
+ /**
2
+ * @fileType: utility
3
+ * @status: current
4
+ * @updated: 2026-02-16
5
+ * @tags: [health, adherence, process, supervision, EPIC-022]
6
+ * @related: [sync-state.ts, ../core/session-log-manager.ts, ../commands/health.ts]
7
+ * @priority: high
8
+ * @complexity: medium
9
+ * @dependencies: [fs-extra, simple-git, glob]
10
+ */
11
+ /**
12
+ * Health Checker Module (EPIC-022)
13
+ *
14
+ * Reusable health check runner that aggregates local data sources
15
+ * into structured adherence results. Used by:
16
+ * - `ginko health` command (full report)
17
+ * - `ginko task complete` (one-line nudge)
18
+ * - `ginko handoff` (summary before handoff)
19
+ */
20
+ import fs from 'fs-extra';
21
+ import path from 'path';
22
+ import simpleGit from 'simple-git';
23
+ import { glob } from 'glob';
24
+ import { getUserEmail, getGinkoDir, getProjectRoot, formatTimeAgo } from '../utils/helpers.js';
25
+ import { readSyncState } from './sync-state.js';
26
+ import { SessionLogManager } from '../core/session-log-manager.js';
27
+ import { getUnpushedCount } from './git-change-detector.js';
28
+ // ── Main Runner ──────────────────────────────────────────────────
29
+ /**
30
+ * Run all health checks and return structured results.
31
+ * All checks are local-only (no cloud dependency).
32
+ */
33
+ export async function runHealthChecks() {
34
+ const ginkoDir = await getGinkoDir();
35
+ const projectRoot = await getProjectRoot();
36
+ const userEmail = await getUserEmail();
37
+ const userSlug = userEmail.replace('@', '-at-').replace(/\./g, '-');
38
+ const sessionDir = path.join(ginkoDir, 'sessions', userSlug);
39
+ const categories = [];
40
+ categories.push(await checkTracking(ginkoDir, projectRoot, sessionDir));
41
+ categories.push(await checkCompletion(projectRoot, sessionDir));
42
+ categories.push(await checkSync());
43
+ categories.push(await checkSessionLogs(sessionDir));
44
+ categories.push(await checkGit());
45
+ // Calculate score
46
+ let totalChecks = 0;
47
+ let passCount = 0;
48
+ let warnCount = 0;
49
+ let failCount = 0;
50
+ for (const cat of categories) {
51
+ for (const item of cat.items) {
52
+ totalChecks++;
53
+ if (item.status === 'pass')
54
+ passCount++;
55
+ else if (item.status === 'warn')
56
+ warnCount++;
57
+ else
58
+ failCount++;
59
+ }
60
+ }
61
+ const adherence = totalChecks > 0 ? Math.round((passCount / totalChecks) * 100) : 0;
62
+ return { categories, adherence, passCount, warnCount, failCount, totalChecks };
63
+ }
64
+ // ── Tracking Checks ──────────────────────────────────────────────
65
+ async function checkTracking(ginkoDir, projectRoot, sessionDir) {
66
+ const items = [];
67
+ const sprintPath = path.join(sessionDir, 'current-sprint.json');
68
+ let currentSprint = null;
69
+ if (await fs.pathExists(sprintPath)) {
70
+ try {
71
+ currentSprint = await fs.readJSON(sprintPath);
72
+ }
73
+ catch {
74
+ // corrupt file
75
+ }
76
+ }
77
+ if (!currentSprint || !currentSprint.sprintId) {
78
+ items.push({
79
+ label: 'Active sprint',
80
+ status: 'warn',
81
+ detail: 'No active sprint assigned',
82
+ fix: 'Run `ginko sprint create` or `ginko sprint quick-fix "<description>"`',
83
+ });
84
+ return { name: 'Tracking', icon: '📋', items };
85
+ }
86
+ // Check for epic file
87
+ const epicId = currentSprint.epicId;
88
+ if (epicId) {
89
+ const epicFiles = await glob(path.join(projectRoot, `docs/epics/EPIC-*${epicId}*.md`));
90
+ const epicNum = epicId.replace(/^e0*/, '').replace(/^EPIC-0*/, '');
91
+ const epicFilesAlt = await glob(path.join(projectRoot, `docs/epics/EPIC-${epicNum.padStart(3, '0')}*.md`));
92
+ const allEpicFiles = [...new Set([...epicFiles, ...epicFilesAlt])];
93
+ if (allEpicFiles.length > 0) {
94
+ items.push({
95
+ label: 'Epic file',
96
+ status: 'pass',
97
+ detail: allEpicFiles[0],
98
+ });
99
+ }
100
+ else {
101
+ items.push({
102
+ label: 'Epic file',
103
+ status: 'fail',
104
+ detail: `No file found for epic ${epicId}`,
105
+ fix: 'Create epic file in docs/epics/ or run `ginko epic`',
106
+ });
107
+ }
108
+ }
109
+ // Check for sprint file
110
+ const sprintId = currentSprint.sprintId;
111
+ const sprintFiles = await glob(path.join(projectRoot, 'docs/sprints/SPRINT-*.md'));
112
+ const matchingSprint = sprintFiles.find((f) => {
113
+ const basename = path.basename(f).toLowerCase();
114
+ const normalizedId = sprintId.replace(/_/g, '-').toLowerCase();
115
+ return basename.includes(normalizedId) || basename.includes(sprintId.toLowerCase());
116
+ });
117
+ if (matchingSprint) {
118
+ items.push({
119
+ label: 'Sprint file',
120
+ status: 'pass',
121
+ detail: matchingSprint,
122
+ });
123
+ }
124
+ else if (currentSprint.sprintFile && await fs.pathExists(path.join(projectRoot, currentSprint.sprintFile))) {
125
+ items.push({
126
+ label: 'Sprint file',
127
+ status: 'pass',
128
+ detail: currentSprint.sprintFile,
129
+ });
130
+ }
131
+ else {
132
+ items.push({
133
+ label: 'Sprint file',
134
+ status: 'fail',
135
+ detail: `No file found for sprint ${sprintId}`,
136
+ fix: 'Create sprint file in docs/sprints/',
137
+ });
138
+ }
139
+ return { name: 'Tracking', icon: '📋', items };
140
+ }
141
+ // ── Completion Checks ────────────────────────────────────────────
142
+ async function checkCompletion(projectRoot, sessionDir) {
143
+ const items = [];
144
+ // Scope to current sprint context, not all historical sprints
145
+ const sprintPath = path.join(sessionDir, 'current-sprint.json');
146
+ let currentSprintId = null;
147
+ let currentEpicId = null;
148
+ if (await fs.pathExists(sprintPath)) {
149
+ try {
150
+ const sprintData = await fs.readJSON(sprintPath);
151
+ currentSprintId = sprintData.sprintId || null;
152
+ currentEpicId = sprintData.epicId || null;
153
+ }
154
+ catch {
155
+ // ignore
156
+ }
157
+ }
158
+ // Find sprint files for the current epic (scoped, not all history)
159
+ const allSprintFiles = await glob(path.join(projectRoot, 'docs/sprints/SPRINT-*.md'));
160
+ const activeSprintFiles = allSprintFiles.filter((f) => {
161
+ if (f.includes('archive'))
162
+ return false;
163
+ // If we have a current epic, scope to its sprints
164
+ if (currentEpicId) {
165
+ const basename = path.basename(f).toLowerCase();
166
+ const normalizedEpic = currentEpicId.replace(/_/g, '-').toLowerCase();
167
+ return basename.includes(normalizedEpic) || basename.includes(currentEpicId.toLowerCase());
168
+ }
169
+ return false; // No active epic — don't scan all history
170
+ });
171
+ let totalTasks = 0;
172
+ let completedTasks = 0;
173
+ let inProgressTasks = 0;
174
+ let notStartedTasks = 0;
175
+ let sprintsNotMarked = 0;
176
+ for (const sprintFile of activeSprintFiles) {
177
+ let content;
178
+ try {
179
+ content = await fs.readFile(sprintFile, 'utf8');
180
+ }
181
+ catch {
182
+ continue;
183
+ }
184
+ const completed = (content.match(/\[x\]/gi) || []).length;
185
+ const inProgress = (content.match(/\[@\]/g) || []).length;
186
+ const notStarted = (content.match(/\[ \]/g) || []).length;
187
+ const sprintTotal = completed + inProgress + notStarted;
188
+ if (sprintTotal === 0)
189
+ continue;
190
+ totalTasks += sprintTotal;
191
+ completedTasks += completed;
192
+ inProgressTasks += inProgress;
193
+ notStartedTasks += notStarted;
194
+ if (completed === sprintTotal && sprintTotal > 0) {
195
+ const progressMatch = content.match(/Progress:?\s*(\d+)%/i);
196
+ if (!progressMatch || parseInt(progressMatch[1]) < 100) {
197
+ sprintsNotMarked++;
198
+ }
199
+ }
200
+ }
201
+ if (totalTasks === 0) {
202
+ items.push({
203
+ label: 'Tasks',
204
+ status: 'warn',
205
+ detail: 'No tasks found in sprint files',
206
+ fix: 'Add tasks to your sprint file or run `ginko sprint create`',
207
+ });
208
+ }
209
+ else {
210
+ if (completedTasks === totalTasks) {
211
+ items.push({
212
+ label: 'Tasks',
213
+ status: 'pass',
214
+ detail: `${completedTasks}/${totalTasks} tasks marked complete`,
215
+ });
216
+ }
217
+ else {
218
+ items.push({
219
+ label: 'Tasks',
220
+ status: inProgressTasks > 0 || completedTasks > 0 ? 'warn' : 'pass',
221
+ detail: `${completedTasks} complete, ${inProgressTasks} in progress, ${notStartedTasks} not started (${totalTasks} total)`,
222
+ });
223
+ }
224
+ if (sprintsNotMarked > 0) {
225
+ items.push({
226
+ label: 'Sprint completion',
227
+ status: 'fail',
228
+ detail: `${sprintsNotMarked} sprint(s) with all tasks done but NOT MARKED COMPLETE`,
229
+ fix: 'Run `ginko sprint complete <sprint_id>` or update sprint progress to 100%',
230
+ });
231
+ }
232
+ }
233
+ return { name: 'Completion', icon: '✅', items };
234
+ }
235
+ // ── Sync Checks ──────────────────────────────────────────────────
236
+ async function checkSync() {
237
+ const items = [];
238
+ try {
239
+ const syncState = await readSyncState();
240
+ const now = Date.now();
241
+ // Push staleness
242
+ if (syncState.lastPushTimestamp) {
243
+ const pushAge = now - new Date(syncState.lastPushTimestamp).getTime();
244
+ const pushDays = Math.floor(pushAge / (1000 * 60 * 60 * 24));
245
+ if (pushDays >= 7) {
246
+ items.push({
247
+ label: 'Last push',
248
+ status: 'fail',
249
+ detail: `${formatTimeAgo(new Date(syncState.lastPushTimestamp))} (critically stale)`,
250
+ fix: 'Run `ginko push` to sync changes to graph',
251
+ });
252
+ }
253
+ else if (pushDays >= 1) {
254
+ items.push({
255
+ label: 'Last push',
256
+ status: 'warn',
257
+ detail: formatTimeAgo(new Date(syncState.lastPushTimestamp)),
258
+ fix: 'Run `ginko push` to sync changes to graph',
259
+ });
260
+ }
261
+ else {
262
+ items.push({
263
+ label: 'Last push',
264
+ status: 'pass',
265
+ detail: formatTimeAgo(new Date(syncState.lastPushTimestamp)),
266
+ });
267
+ }
268
+ }
269
+ else {
270
+ items.push({
271
+ label: 'Last push',
272
+ status: 'fail',
273
+ detail: 'Never pushed',
274
+ fix: 'Run `ginko push` to sync changes to graph',
275
+ });
276
+ }
277
+ // Pull staleness
278
+ if (syncState.lastPullTimestamp) {
279
+ const pullAge = now - new Date(syncState.lastPullTimestamp).getTime();
280
+ const pullDays = Math.floor(pullAge / (1000 * 60 * 60 * 24));
281
+ if (pullDays >= 7) {
282
+ items.push({
283
+ label: 'Last pull',
284
+ status: 'fail',
285
+ detail: `${formatTimeAgo(new Date(syncState.lastPullTimestamp))} (critically stale)`,
286
+ fix: 'Run `ginko pull` to pull team updates',
287
+ });
288
+ }
289
+ else if (pullDays >= 1) {
290
+ items.push({
291
+ label: 'Last pull',
292
+ status: 'warn',
293
+ detail: formatTimeAgo(new Date(syncState.lastPullTimestamp)),
294
+ fix: 'Run `ginko pull` to pull team updates',
295
+ });
296
+ }
297
+ else {
298
+ items.push({
299
+ label: 'Last pull',
300
+ status: 'pass',
301
+ detail: formatTimeAgo(new Date(syncState.lastPullTimestamp)),
302
+ });
303
+ }
304
+ }
305
+ else {
306
+ items.push({
307
+ label: 'Last pull',
308
+ status: 'warn',
309
+ detail: 'Never pulled (OK if working solo)',
310
+ });
311
+ }
312
+ // Unpushed changes
313
+ try {
314
+ const unpushed = await getUnpushedCount(syncState.lastPushCommit);
315
+ if (unpushed > 0) {
316
+ items.push({
317
+ label: 'Pending changes',
318
+ status: 'warn',
319
+ detail: `${unpushed} file(s) not yet pushed to graph`,
320
+ fix: 'Run `ginko push` to sync',
321
+ });
322
+ }
323
+ else {
324
+ items.push({
325
+ label: 'Pending changes',
326
+ status: 'pass',
327
+ detail: '0 (up to date)',
328
+ });
329
+ }
330
+ }
331
+ catch {
332
+ // Skip if git detection fails
333
+ }
334
+ }
335
+ catch {
336
+ items.push({
337
+ label: 'Sync state',
338
+ status: 'warn',
339
+ detail: 'Could not read sync state (local-only mode)',
340
+ });
341
+ }
342
+ return { name: 'Graph Sync', icon: '🔄', items };
343
+ }
344
+ // ── Session Log Checks ───────────────────────────────────────────
345
+ async function checkSessionLogs(sessionDir) {
346
+ const items = [];
347
+ const hasLog = await SessionLogManager.hasSessionLog(sessionDir);
348
+ if (!hasLog) {
349
+ items.push({
350
+ label: 'Session log',
351
+ status: 'warn',
352
+ detail: 'No active session log',
353
+ fix: 'Run `ginko start` to initialize session logging',
354
+ });
355
+ return { name: 'Session Logs', icon: '📝', items };
356
+ }
357
+ const logContent = await SessionLogManager.loadSessionLog(sessionDir);
358
+ const summary = SessionLogManager.getSummary(logContent);
359
+ if (summary.totalEntries === 0) {
360
+ items.push({
361
+ label: 'Log entries',
362
+ status: 'warn',
363
+ detail: 'Session log exists but has 0 entries',
364
+ fix: 'Use `ginko log "<description>" --category=<type>` to capture decisions and insights',
365
+ });
366
+ }
367
+ else {
368
+ const categories = Object.entries(summary.byCategory)
369
+ .map(([cat, count]) => `${count} ${cat}`)
370
+ .join(', ');
371
+ items.push({
372
+ label: 'Log entries',
373
+ status: 'pass',
374
+ detail: `${summary.totalEntries} entries (${categories})`,
375
+ });
376
+ }
377
+ const decisions = summary.byCategory['decision'] || 0;
378
+ if (decisions === 0) {
379
+ items.push({
380
+ label: 'Decisions logged',
381
+ status: 'warn',
382
+ detail: 'No decisions captured this session',
383
+ fix: 'Run `ginko log "your decision" --category=decision` after key choices',
384
+ });
385
+ }
386
+ else {
387
+ items.push({
388
+ label: 'Decisions logged',
389
+ status: 'pass',
390
+ detail: `${decisions} decision(s) captured`,
391
+ });
392
+ }
393
+ // Check for context score
394
+ const eventsPath = path.join(sessionDir, 'current-events.jsonl');
395
+ let hasContextScore = false;
396
+ if (await fs.pathExists(path.join(sessionDir, 'context-scores.json'))) {
397
+ hasContextScore = true;
398
+ }
399
+ else if (await fs.pathExists(eventsPath)) {
400
+ try {
401
+ const events = await fs.readFile(eventsPath, 'utf8');
402
+ hasContextScore = events.includes('context_score') || events.includes('context-score');
403
+ }
404
+ catch {
405
+ // skip
406
+ }
407
+ }
408
+ if (!hasContextScore) {
409
+ items.push({
410
+ label: 'Context score',
411
+ status: 'warn',
412
+ detail: 'Not recorded this session',
413
+ fix: 'Run `ginko context score 8,7,9,6` to rate your context clarity',
414
+ });
415
+ }
416
+ else {
417
+ items.push({
418
+ label: 'Context score',
419
+ status: 'pass',
420
+ detail: 'Recorded',
421
+ });
422
+ }
423
+ return { name: 'Session Logs', icon: '📝', items };
424
+ }
425
+ // ── Git Checks ───────────────────────────────────────────────────
426
+ async function checkGit() {
427
+ const items = [];
428
+ const git = simpleGit();
429
+ try {
430
+ const gitStatus = await git.status();
431
+ const totalUncommitted = gitStatus.modified.length +
432
+ gitStatus.staged.length +
433
+ gitStatus.not_added.length +
434
+ gitStatus.deleted.length;
435
+ if (totalUncommitted === 0) {
436
+ items.push({
437
+ label: 'Working tree',
438
+ status: 'pass',
439
+ detail: 'Clean',
440
+ });
441
+ }
442
+ else if (totalUncommitted > 20) {
443
+ items.push({
444
+ label: 'Working tree',
445
+ status: 'warn',
446
+ detail: `${totalUncommitted} uncommitted files (${gitStatus.staged.length} staged, ${gitStatus.modified.length} modified, ${gitStatus.not_added.length} untracked)`,
447
+ fix: 'Consider committing related changes',
448
+ });
449
+ }
450
+ else {
451
+ items.push({
452
+ label: 'Working tree',
453
+ status: 'pass',
454
+ detail: `${totalUncommitted} uncommitted files`,
455
+ });
456
+ }
457
+ const branch = await git.branchLocal();
458
+ items.push({
459
+ label: 'Branch',
460
+ status: 'pass',
461
+ detail: branch.current,
462
+ });
463
+ }
464
+ catch {
465
+ items.push({
466
+ label: 'Git',
467
+ status: 'warn',
468
+ detail: 'Could not read git status',
469
+ });
470
+ }
471
+ return { name: 'Git', icon: '🌳', items };
472
+ }
473
+ //# sourceMappingURL=health-checker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health-checker.js","sourceRoot":"","sources":["../../src/lib/health-checker.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@
10
10
  */
11
11
  import fs from 'fs-extra';
12
12
  import path from 'path';
13
- import minimatch from 'minimatch';
13
+ import { minimatch } from 'minimatch';
14
14
  import { getProjectRoot } from '../utils/config-loader.js';
15
15
  /**
16
16
  * Load notification hooks from ginko.config.json
@@ -1 +1 @@
1
- {"version":3,"file":"notification-hooks.js","sourceRoot":"","sources":["../../src/lib/notification-hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notification-hooks.js","sourceRoot":"","sources":["../../src/lib/notification-hooks.ts"],"names":[],"mappings":"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"}
@@ -180,6 +180,25 @@ export interface AISessionContext {
180
180
  nextAction?: string;
181
181
  suggestedCommand?: string;
182
182
  };
183
+ /** Resumption brief for session context (EPIC-018 Sprint 1) */
184
+ resumptionBrief?: {
185
+ lastSession: {
186
+ summary: string;
187
+ stoppingPoint: string;
188
+ openQuestions: string[];
189
+ filesModified: string[];
190
+ duration: string;
191
+ };
192
+ decisions: Array<{
193
+ description: string;
194
+ timestamp: string;
195
+ }>;
196
+ insights: Array<{
197
+ description: string;
198
+ timestamp: string;
199
+ }>;
200
+ eventCount: number;
201
+ };
183
202
  /** Git status */
184
203
  git: {
185
204
  branch: string;
@@ -262,6 +281,35 @@ export declare function formatError(message: string, details?: string): string;
262
281
  * Format warning message
263
282
  */
264
283
  export declare function formatWarning(message: string): string;
284
+ /**
285
+ * Clean slate output configuration
286
+ */
287
+ export interface CleanSlateOutputConfig {
288
+ /** Terminal width (default: 75) */
289
+ width?: number;
290
+ /** Show full file paths vs short names (default: false) */
291
+ showFullPaths?: boolean;
292
+ }
293
+ /**
294
+ * Format session output in clean slate format (EPIC-018 Sprint 1 t07)
295
+ *
296
+ * Transforms from box-drawing tables to a simpler label:value format
297
+ * that's easier to scan. Target: <15 lines.
298
+ *
299
+ * Layout:
300
+ * ginko | Hot (10/10) | Think & Build | feature/dashboard-settings
301
+ *
302
+ * RESUME: Dashboard settings - Teams to Projects rename
303
+ * Stopped at: Checking if "team" appears in API responses
304
+ * Open: Should member management terminology change?
305
+ * Files: src/dashboard/settings.tsx, src/components/TeamPanel.tsx
306
+ *
307
+ * Sprint: adhoc_260204_s01 | 0% | 6 tasks
308
+ * Next: t01 - Dashboard settings: rename Teams to Projects (continue)
309
+ *
310
+ * Branch: 6 uncommitted | Tests: passing
311
+ */
312
+ export declare function formatCleanSlateOutput(context: AISessionContext, config?: CleanSlateOutputConfig): string;
265
313
  /**
266
314
  * Table output configuration
267
315
  */
@@ -1 +1 @@
1
- {"version":3,"file":"output-formatter.d.ts","sourceRoot":"","sources":["../../src/lib/output-formatter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"output-formatter.d.ts","sourceRoot":"","sources":["../../src/lib/output-formatter.ts"],"names":[],"mappings":"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"}