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.
- package/README.md +205 -0
- package/agents/auditor.md +45 -0
- package/agents/worker.md +44 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +526 -0
- package/dist/index.js.map +1 -0
- package/dist/state.d.ts +265 -0
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +474 -0
- package/dist/state.js.map +1 -0
- package/dist/tools/add-phase.d.ts +28 -0
- package/dist/tools/add-phase.d.ts.map +1 -0
- package/dist/tools/add-phase.js +69 -0
- package/dist/tools/add-phase.js.map +1 -0
- package/dist/tools/add-task.d.ts +30 -0
- package/dist/tools/add-task.d.ts.map +1 -0
- package/dist/tools/add-task.js +85 -0
- package/dist/tools/add-task.js.map +1 -0
- package/dist/tools/index.d.ts +13 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +16 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/init.d.ts +34 -0
- package/dist/tools/init.d.ts.map +1 -0
- package/dist/tools/init.js +75 -0
- package/dist/tools/init.js.map +1 -0
- package/dist/tools/mission-complete.d.ts +30 -0
- package/dist/tools/mission-complete.d.ts.map +1 -0
- package/dist/tools/mission-complete.js +85 -0
- package/dist/tools/mission-complete.js.map +1 -0
- package/dist/tools/mission-resume.d.ts +35 -0
- package/dist/tools/mission-resume.d.ts.map +1 -0
- package/dist/tools/mission-resume.js +87 -0
- package/dist/tools/mission-resume.js.map +1 -0
- package/dist/tools/scaffold.d.ts +24 -0
- package/dist/tools/scaffold.d.ts.map +1 -0
- package/dist/tools/scaffold.js +129 -0
- package/dist/tools/scaffold.js.map +1 -0
- package/dist/tools/update-phase.d.ts +33 -0
- package/dist/tools/update-phase.d.ts.map +1 -0
- package/dist/tools/update-phase.js +101 -0
- package/dist/tools/update-phase.js.map +1 -0
- package/dist/tools/update-task.d.ts +34 -0
- package/dist/tools/update-task.d.ts.map +1 -0
- package/dist/tools/update-task.js +104 -0
- package/dist/tools/update-task.js.map +1 -0
- package/dist/tui/dashboard.d.ts +146 -0
- package/dist/tui/dashboard.d.ts.map +1 -0
- package/dist/tui/dashboard.js +381 -0
- package/dist/tui/dashboard.js.map +1 -0
- package/dist/tui/header.d.ts +39 -0
- package/dist/tui/header.d.ts.map +1 -0
- package/dist/tui/header.js +62 -0
- package/dist/tui/header.js.map +1 -0
- package/dist/tui/idle-view.d.ts +44 -0
- package/dist/tui/idle-view.d.ts.map +1 -0
- package/dist/tui/idle-view.js +87 -0
- package/dist/tui/idle-view.js.map +1 -0
- package/dist/tui/index.d.ts +13 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js +15 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/past-runs.d.ts +49 -0
- package/dist/tui/past-runs.d.ts.map +1 -0
- package/dist/tui/past-runs.js +207 -0
- package/dist/tui/past-runs.js.map +1 -0
- package/dist/tui/phases-panel.d.ts +46 -0
- package/dist/tui/phases-panel.d.ts.map +1 -0
- package/dist/tui/phases-panel.js +161 -0
- package/dist/tui/phases-panel.js.map +1 -0
- package/dist/tui/progress-bar.d.ts +37 -0
- package/dist/tui/progress-bar.d.ts.map +1 -0
- package/dist/tui/progress-bar.js +123 -0
- package/dist/tui/progress-bar.js.map +1 -0
- package/dist/tui/styles.d.ts +8 -0
- package/dist/tui/styles.d.ts.map +1 -0
- package/dist/tui/styles.js +22 -0
- package/dist/tui/styles.js.map +1 -0
- package/dist/tui/tasks-panel.d.ts +48 -0
- package/dist/tui/tasks-panel.d.ts.map +1 -0
- package/dist/tui/tasks-panel.js +191 -0
- package/dist/tui/tasks-panel.js.map +1 -0
- package/package.json +42 -0
- package/skills/mission-memory/SKILL.md +88 -0
- package/skills/mission-orchestrator/SKILL.md +167 -0
- package/skills/mission-pm/SKILL.md +83 -0
- package/skills/mission-research/SKILL.md +66 -0
- package/skills/mission-tech-lead/SKILL.md +68 -0
- package/src/index.ts +659 -0
- package/src/state.ts +623 -0
- package/src/tools/add-phase.ts +98 -0
- package/src/tools/add-task.ts +121 -0
- package/src/tools/index.ts +18 -0
- package/src/tools/init.ts +109 -0
- package/src/tools/mission-complete.ts +118 -0
- package/src/tools/mission-resume.ts +119 -0
- package/src/tools/scaffold.ts +167 -0
- package/src/tools/update-phase.ts +140 -0
- package/src/tools/update-task.ts +145 -0
- package/src/tui/dashboard.ts +441 -0
- package/src/tui/header.ts +85 -0
- package/src/tui/idle-view.ts +114 -0
- package/src/tui/index.ts +20 -0
- package/src/tui/past-runs.ts +261 -0
- package/src/tui/phases-panel.ts +199 -0
- package/src/tui/progress-bar.ts +152 -0
- package/src/tui/styles.ts +27 -0
- package/src/tui/tasks-panel.ts +228 -0
- package/templates/state.json +5 -0
package/dist/state.d.ts
ADDED
|
@@ -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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"}
|