pi-mission-control 0.0.0-dev

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 (110) hide show
  1. package/README.md +205 -0
  2. package/agents/auditor.md +45 -0
  3. package/agents/worker.md +44 -0
  4. package/dist/index.d.ts +9 -0
  5. package/dist/index.d.ts.map +1 -0
  6. package/dist/index.js +526 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/state.d.ts +265 -0
  9. package/dist/state.d.ts.map +1 -0
  10. package/dist/state.js +474 -0
  11. package/dist/state.js.map +1 -0
  12. package/dist/tools/add-phase.d.ts +28 -0
  13. package/dist/tools/add-phase.d.ts.map +1 -0
  14. package/dist/tools/add-phase.js +69 -0
  15. package/dist/tools/add-phase.js.map +1 -0
  16. package/dist/tools/add-task.d.ts +30 -0
  17. package/dist/tools/add-task.d.ts.map +1 -0
  18. package/dist/tools/add-task.js +85 -0
  19. package/dist/tools/add-task.js.map +1 -0
  20. package/dist/tools/index.d.ts +13 -0
  21. package/dist/tools/index.d.ts.map +1 -0
  22. package/dist/tools/index.js +16 -0
  23. package/dist/tools/index.js.map +1 -0
  24. package/dist/tools/init.d.ts +34 -0
  25. package/dist/tools/init.d.ts.map +1 -0
  26. package/dist/tools/init.js +75 -0
  27. package/dist/tools/init.js.map +1 -0
  28. package/dist/tools/mission-complete.d.ts +30 -0
  29. package/dist/tools/mission-complete.d.ts.map +1 -0
  30. package/dist/tools/mission-complete.js +85 -0
  31. package/dist/tools/mission-complete.js.map +1 -0
  32. package/dist/tools/mission-resume.d.ts +35 -0
  33. package/dist/tools/mission-resume.d.ts.map +1 -0
  34. package/dist/tools/mission-resume.js +87 -0
  35. package/dist/tools/mission-resume.js.map +1 -0
  36. package/dist/tools/scaffold.d.ts +24 -0
  37. package/dist/tools/scaffold.d.ts.map +1 -0
  38. package/dist/tools/scaffold.js +129 -0
  39. package/dist/tools/scaffold.js.map +1 -0
  40. package/dist/tools/update-phase.d.ts +33 -0
  41. package/dist/tools/update-phase.d.ts.map +1 -0
  42. package/dist/tools/update-phase.js +101 -0
  43. package/dist/tools/update-phase.js.map +1 -0
  44. package/dist/tools/update-task.d.ts +34 -0
  45. package/dist/tools/update-task.d.ts.map +1 -0
  46. package/dist/tools/update-task.js +104 -0
  47. package/dist/tools/update-task.js.map +1 -0
  48. package/dist/tui/dashboard.d.ts +146 -0
  49. package/dist/tui/dashboard.d.ts.map +1 -0
  50. package/dist/tui/dashboard.js +381 -0
  51. package/dist/tui/dashboard.js.map +1 -0
  52. package/dist/tui/header.d.ts +39 -0
  53. package/dist/tui/header.d.ts.map +1 -0
  54. package/dist/tui/header.js +62 -0
  55. package/dist/tui/header.js.map +1 -0
  56. package/dist/tui/idle-view.d.ts +44 -0
  57. package/dist/tui/idle-view.d.ts.map +1 -0
  58. package/dist/tui/idle-view.js +87 -0
  59. package/dist/tui/idle-view.js.map +1 -0
  60. package/dist/tui/index.d.ts +13 -0
  61. package/dist/tui/index.d.ts.map +1 -0
  62. package/dist/tui/index.js +15 -0
  63. package/dist/tui/index.js.map +1 -0
  64. package/dist/tui/past-runs.d.ts +49 -0
  65. package/dist/tui/past-runs.d.ts.map +1 -0
  66. package/dist/tui/past-runs.js +207 -0
  67. package/dist/tui/past-runs.js.map +1 -0
  68. package/dist/tui/phases-panel.d.ts +46 -0
  69. package/dist/tui/phases-panel.d.ts.map +1 -0
  70. package/dist/tui/phases-panel.js +161 -0
  71. package/dist/tui/phases-panel.js.map +1 -0
  72. package/dist/tui/progress-bar.d.ts +37 -0
  73. package/dist/tui/progress-bar.d.ts.map +1 -0
  74. package/dist/tui/progress-bar.js +123 -0
  75. package/dist/tui/progress-bar.js.map +1 -0
  76. package/dist/tui/styles.d.ts +8 -0
  77. package/dist/tui/styles.d.ts.map +1 -0
  78. package/dist/tui/styles.js +22 -0
  79. package/dist/tui/styles.js.map +1 -0
  80. package/dist/tui/tasks-panel.d.ts +48 -0
  81. package/dist/tui/tasks-panel.d.ts.map +1 -0
  82. package/dist/tui/tasks-panel.js +191 -0
  83. package/dist/tui/tasks-panel.js.map +1 -0
  84. package/package.json +42 -0
  85. package/skills/mission-memory/SKILL.md +88 -0
  86. package/skills/mission-orchestrator/SKILL.md +167 -0
  87. package/skills/mission-pm/SKILL.md +83 -0
  88. package/skills/mission-research/SKILL.md +66 -0
  89. package/skills/mission-tech-lead/SKILL.md +68 -0
  90. package/src/index.ts +659 -0
  91. package/src/state.ts +623 -0
  92. package/src/tools/add-phase.ts +98 -0
  93. package/src/tools/add-task.ts +121 -0
  94. package/src/tools/index.ts +18 -0
  95. package/src/tools/init.ts +109 -0
  96. package/src/tools/mission-complete.ts +118 -0
  97. package/src/tools/mission-resume.ts +119 -0
  98. package/src/tools/scaffold.ts +167 -0
  99. package/src/tools/update-phase.ts +140 -0
  100. package/src/tools/update-task.ts +145 -0
  101. package/src/tui/dashboard.ts +441 -0
  102. package/src/tui/header.ts +85 -0
  103. package/src/tui/idle-view.ts +114 -0
  104. package/src/tui/index.ts +20 -0
  105. package/src/tui/past-runs.ts +261 -0
  106. package/src/tui/phases-panel.ts +199 -0
  107. package/src/tui/progress-bar.ts +152 -0
  108. package/src/tui/styles.ts +27 -0
  109. package/src/tui/tasks-panel.ts +228 -0
  110. package/templates/state.json +5 -0
@@ -0,0 +1,265 @@
1
+ /**
2
+ * State types and file helpers for mission-control
3
+ *
4
+ * Types for state.json, run.json, and file read/write operations.
5
+ * All tool mutations go through here.
6
+ */
7
+ export type PhaseStatus = "pending" | "in_progress" | "done" | "removed";
8
+ export type TaskStatus = "pending" | "in_progress" | "done" | "failed" | "removed";
9
+ export type RunStatus = "in_progress" | "done" | "failed" | "paused";
10
+ /**
11
+ * Volatile UI state - stored in .pi/mission-control/state.json
12
+ * Resets on every new pi session
13
+ */
14
+ export interface State {
15
+ active_run_id: string | null;
16
+ current_phase: string;
17
+ current_status_message: string;
18
+ }
19
+ /**
20
+ * Task artifact paths
21
+ */
22
+ export interface TaskPaths {
23
+ contract: string;
24
+ worker_output: string;
25
+ auditor_report: string;
26
+ }
27
+ /**
28
+ * Task definition - stored within Phase in run.json
29
+ */
30
+ export interface Task {
31
+ id: string;
32
+ name: string;
33
+ status: TaskStatus;
34
+ started_at: string | null;
35
+ finish_at: string | null;
36
+ file: string;
37
+ paths: TaskPaths;
38
+ }
39
+ /**
40
+ * Phase definition - stored in run.json
41
+ */
42
+ export interface Phase {
43
+ id: string;
44
+ name: string;
45
+ status: PhaseStatus;
46
+ started_at: string | null;
47
+ finish_at: string | null;
48
+ file: string;
49
+ tasks: Task[];
50
+ }
51
+ /**
52
+ * Artifact references in run.json
53
+ */
54
+ export interface Artifacts {
55
+ requirements: string;
56
+ architecture: string;
57
+ validation: string;
58
+ }
59
+ /**
60
+ * Persistent run state - stored in .pi/mission-control/runs/<run-id>/run.json
61
+ */
62
+ export interface Run {
63
+ run_id: string;
64
+ started_at: string;
65
+ finish_at: string | null;
66
+ status: RunStatus;
67
+ artifacts: Artifacts;
68
+ phases: Phase[];
69
+ }
70
+ export declare const defaultState: State;
71
+ /**
72
+ * Get the project root (cwd)
73
+ */
74
+ export declare function getProjectRoot(): string;
75
+ /**
76
+ * Get the base mission-control directory path
77
+ */
78
+ export declare function getMissionControlDir(): string;
79
+ /**
80
+ * Get the state.json file path
81
+ */
82
+ export declare function getStateFilePath(): string;
83
+ /**
84
+ * Get the memory directory path
85
+ */
86
+ export declare function getMemoryDir(): string;
87
+ /**
88
+ * Get the long-term memory file path
89
+ */
90
+ export declare function getLongTermMemoryPath(): string;
91
+ /**
92
+ * Get the runs directory path
93
+ */
94
+ export declare function getRunsDir(): string;
95
+ /**
96
+ * Get a specific run directory path
97
+ */
98
+ export declare function getRunDir(runId: string): string;
99
+ /**
100
+ * Get the run.json file path for a specific run
101
+ */
102
+ export declare function getRunFilePath(runId: string): string;
103
+ /**
104
+ * Get the tasks directory path for a specific run
105
+ */
106
+ export declare function getTasksDir(runId: string): string;
107
+ /**
108
+ * Get a specific task directory path
109
+ */
110
+ export declare function getTaskDir(runId: string, taskId: string): string;
111
+ /**
112
+ * Ensure a directory exists (recursive)
113
+ */
114
+ export declare function ensureDir(dirPath: string): void;
115
+ /**
116
+ * Read and parse JSON file
117
+ */
118
+ export declare function readJson<T>(filePath: string): T | null;
119
+ /**
120
+ * Write JSON file (with pretty formatting)
121
+ */
122
+ export declare function writeJson<T>(filePath: string, data: T): void;
123
+ /**
124
+ * Read a text file
125
+ */
126
+ export declare function readText(filePath: string): string | null;
127
+ /**
128
+ * Write a text file
129
+ */
130
+ export declare function writeText(filePath: string, content: string): void;
131
+ /**
132
+ * Check if a file exists
133
+ */
134
+ export declare function fileExists(filePath: string): boolean;
135
+ /**
136
+ * Copy a file from source to destination (skip if exists when specified)
137
+ */
138
+ export declare function copyFile(src: string, dest: string, skipIfExists?: boolean): boolean;
139
+ /**
140
+ * Copy a directory recursively (skip existing files when specified)
141
+ * Returns count of files copied
142
+ */
143
+ export declare function copyDir(src: string, dest: string, skipIfExists?: boolean): number;
144
+ /**
145
+ * Read the current state.json
146
+ * Returns default state if file doesn't exist
147
+ */
148
+ export declare function readState(): State;
149
+ /**
150
+ * Write state.json
151
+ */
152
+ export declare function writeState(state: State): void;
153
+ /**
154
+ * Update specific fields in state.json
155
+ */
156
+ export declare function updateState(updates: Partial<State>): State;
157
+ /**
158
+ * Read a run.json file
159
+ */
160
+ export declare function readRun(runId: string): Run | null;
161
+ /**
162
+ * Write a run.json file
163
+ */
164
+ export declare function writeRun(run: Run): void;
165
+ /**
166
+ * Update specific fields in a run
167
+ */
168
+ export declare function updateRun(runId: string, updates: Partial<Run>): Run | null;
169
+ /**
170
+ * Get current ISO timestamp
171
+ */
172
+ export declare function getTimestamp(): string;
173
+ /**
174
+ * Generate a run ID from current timestamp
175
+ * Format: run-YYYYMMDD-HHmmss
176
+ */
177
+ export declare function generateRunId(): string;
178
+ /**
179
+ * Find a phase by ID in a run
180
+ */
181
+ export declare function findPhase(run: Run, phaseId: string): Phase | undefined;
182
+ /**
183
+ * Generate the next phase ID
184
+ */
185
+ export declare function generatePhaseId(run: Run): string;
186
+ /**
187
+ * Create a new phase
188
+ */
189
+ export declare function createPhase(id: string, name: string, file: string): Phase;
190
+ /**
191
+ * Add a phase to a run
192
+ */
193
+ export declare function addPhaseToRun(run: Run, phase: Phase): Run;
194
+ /**
195
+ * Update a phase in a run
196
+ */
197
+ export declare function updatePhaseInRun(run: Run, phaseId: string, updates: Partial<Phase>): Run;
198
+ /**
199
+ * Find a task by ID in a run (searches all phases)
200
+ */
201
+ export declare function findTask(run: Run, taskId: string): {
202
+ phase: Phase;
203
+ task: Task;
204
+ phaseIndex: number;
205
+ taskIndex: number;
206
+ } | null;
207
+ /**
208
+ * Generate the next task ID for a phase
209
+ */
210
+ export declare function generateTaskId(phase: Phase): string;
211
+ /**
212
+ * Create a new task
213
+ */
214
+ export declare function createTask(id: string, name: string, file: string): Task;
215
+ /**
216
+ * Add a task to a phase within a run
217
+ */
218
+ export declare function addTaskToRun(run: Run, phaseId: string, task: Task): Run;
219
+ /**
220
+ * Update a task in a run
221
+ */
222
+ export declare function updateTaskInRun(run: Run, taskId: string, updates: Partial<Task>): Run;
223
+ /**
224
+ * Check if all tasks in a phase are done
225
+ */
226
+ export declare function areAllTasksDone(phase: Phase): boolean;
227
+ /**
228
+ * Check if all phases in a run are done
229
+ */
230
+ export declare function areAllPhasesDone(run: Run): boolean;
231
+ /**
232
+ * List all run IDs in the runs directory
233
+ */
234
+ export declare function listRunIds(): string[];
235
+ /**
236
+ * List all runs with their basic info
237
+ */
238
+ export declare function listRuns(): Array<{
239
+ runId: string;
240
+ run: Run | null;
241
+ }>;
242
+ /**
243
+ * Check if mission-control has been scaffolded
244
+ */
245
+ export declare function isScaffolded(): boolean;
246
+ /**
247
+ * Create the initial run.json structure
248
+ */
249
+ export declare function createInitialRun(runId: string): Run;
250
+ /**
251
+ * Create the base mission-control directory structure
252
+ */
253
+ export declare function createBaseStructure(): void;
254
+ /**
255
+ * Create a new run directory structure
256
+ */
257
+ export declare function createRunStructure(runId: string): void;
258
+ /**
259
+ * Get the appropriate timestamp field to update based on status
260
+ */
261
+ export declare function getTimestampForStatus(status: PhaseStatus | TaskStatus, currentStatus: PhaseStatus | TaskStatus): {
262
+ started_at?: string;
263
+ finish_at?: string;
264
+ } | null;
265
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}