my-dev-kit-orchestrator 0.2.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/README.md +206 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +7 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +59 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.d.ts +3 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +101 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/prompt.d.ts +3 -0
- package/dist/commands/prompt.d.ts.map +1 -0
- package/dist/commands/prompt.js +122 -0
- package/dist/commands/prompt.js.map +1 -0
- package/dist/commands/start.d.ts +3 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +75 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/status.d.ts +3 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +120 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/program.d.ts +3 -0
- package/dist/program.d.ts.map +1 -0
- package/dist/program.js +27 -0
- package/dist/program.js.map +1 -0
- package/dist/promptGenerator.d.ts +4 -0
- package/dist/promptGenerator.d.ts.map +1 -0
- package/dist/promptGenerator.js +1332 -0
- package/dist/promptGenerator.js.map +1 -0
- package/dist/run.d.ts +26 -0
- package/dist/run.d.ts.map +1 -0
- package/dist/run.js +139 -0
- package/dist/run.js.map +1 -0
- package/dist/stageDetector.d.ts +18 -0
- package/dist/stageDetector.d.ts.map +1 -0
- package/dist/stageDetector.js +88 -0
- package/dist/stageDetector.js.map +1 -0
- package/dist/types.d.ts +11 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -0
- package/dist/workflows.d.ts +15 -0
- package/dist/workflows.d.ts.map +1 -0
- package/dist/workflows.js +140 -0
- package/dist/workflows.js.map +1 -0
- package/dist/workspace.d.ts +13 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +70 -0
- package/dist/workspace.js.map +1 -0
- package/package.json +44 -0
package/README.md
ADDED
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
# my-dev-kit-orchestrator
|
|
2
|
+
|
|
3
|
+
`my-dev-kit-orchestrator` is a CLI-first workflow shell for design-first software development with coding agents.
|
|
4
|
+
|
|
5
|
+
It is for teams or individual developers who want a coding agent to work through a bounded sequence of design, pseudocode, testing, implementation, and verification steps instead of jumping straight from a raw request to code.
|
|
6
|
+
|
|
7
|
+
## Capabilities
|
|
8
|
+
|
|
9
|
+
`v0.1.0` provided the workflow shell:
|
|
10
|
+
|
|
11
|
+
- a small CLI command surface
|
|
12
|
+
- five workflow modes: `feature`, `repair`, `test`, `refactor`, `harden`
|
|
13
|
+
- local run folders under `.my-dev-kit-orchestrator/runs/`
|
|
14
|
+
- stage-specific prompt generation
|
|
15
|
+
- plain-text prompt and artifact files
|
|
16
|
+
- simple stage advancement based on expected artifact file existence
|
|
17
|
+
|
|
18
|
+
`v0.2.0` added graph-guided architecture context support:
|
|
19
|
+
|
|
20
|
+
- architecture-context stage prompt now guides the coding agent through graph-guided context acquisition with `my-dev-kit`
|
|
21
|
+
- generated prompt includes the full retrieval sequence, retrieval evidence report template, and ArchitectureContextPacket template
|
|
22
|
+
- `status` command shows supporting report presence for the architecture-context stage
|
|
23
|
+
- stage progression remains based on required artifact presence only
|
|
24
|
+
|
|
25
|
+
The CLI owns workflow order and prompt generation. Each run advances as the expected artifact files appear on disk.
|
|
26
|
+
|
|
27
|
+
## How it works with my-dev-kit
|
|
28
|
+
|
|
29
|
+
`my-dev-kit` and `my-dev-kit-orchestrator` have different responsibilities.
|
|
30
|
+
|
|
31
|
+
- `my-dev-kit` retrieves bounded project context through graph-guided architecture context workflows such as indexing, search, lookup, slice generation, source retrieval, and optional semantic inspection
|
|
32
|
+
- `my-dev-kit-orchestrator` organizes the staged design-to-code workflow after context acquisition
|
|
33
|
+
- the coding agent records retrieval evidence in `reports/architecture-context-retrieval-report.txt`
|
|
34
|
+
- the coding agent synthesizes that evidence into `artifacts/architecture-context-packet.txt`
|
|
35
|
+
- downstream stages consume the ArchitectureContextPacket rather than raw retrieval output
|
|
36
|
+
|
|
37
|
+
See [ARCHITECTURE.md](docs/ARCHITECTURE.md), [docs/WORKFLOWS.md](docs/WORKFLOWS.md), and [docs/ARTIFACTS.md](docs/ARTIFACTS.md) for the detailed design.
|
|
38
|
+
|
|
39
|
+
## Non-goals for v0.1.0
|
|
40
|
+
|
|
41
|
+
Version `0.1.0` does not include:
|
|
42
|
+
|
|
43
|
+
- direct LLM execution
|
|
44
|
+
- automatic coding-agent execution
|
|
45
|
+
- automatic `my-dev-kit` command execution
|
|
46
|
+
- full JSON schema validation for artifacts
|
|
47
|
+
- automatic judge routing
|
|
48
|
+
- design-map generation
|
|
49
|
+
- extra low-level CLI commands beyond `init`, `start`, `status`, `prompt`, and `list`
|
|
50
|
+
|
|
51
|
+
Architecture-context prompts may suggest use of `my-dev-kit` when it is available, but `my-dev-kit-orchestrator` does not run `my-dev-kit` automatically.
|
|
52
|
+
|
|
53
|
+
## Command surface
|
|
54
|
+
|
|
55
|
+
```text
|
|
56
|
+
my-dev-kit-orchestrator init
|
|
57
|
+
my-dev-kit-orchestrator start "<request>"
|
|
58
|
+
my-dev-kit-orchestrator start --mode <feature|repair|test|refactor|harden> "<request>"
|
|
59
|
+
my-dev-kit-orchestrator status
|
|
60
|
+
my-dev-kit-orchestrator status --run <run-id>
|
|
61
|
+
my-dev-kit-orchestrator prompt
|
|
62
|
+
my-dev-kit-orchestrator prompt <stage>
|
|
63
|
+
my-dev-kit-orchestrator prompt <stage> --run <run-id>
|
|
64
|
+
my-dev-kit-orchestrator list
|
|
65
|
+
my-dev-kit-orchestrator list --mode <mode>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Common flags:
|
|
69
|
+
|
|
70
|
+
- `--root <path>`: use a specific project root
|
|
71
|
+
- `--mode <mode>`: choose the workflow mode for `start`
|
|
72
|
+
- `--name <run-name>`: use a readable suffix in the run ID
|
|
73
|
+
- `--run <run-id>`: target a specific run for `status` or `prompt`
|
|
74
|
+
- `--output-dir <path>`: write runs outside the default workspace
|
|
75
|
+
|
|
76
|
+
## Quick start
|
|
77
|
+
|
|
78
|
+
1. Install dependencies and build the CLI:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
npm install
|
|
82
|
+
npm run build
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
2. Initialize the workspace in your project:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
node dist/cli.js init
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
3. Start a workflow run:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
node dist/cli.js start "add audit logging to the export command"
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
4. Print the next stage prompt:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
node dist/cli.js prompt
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
5. Paste the prompt into your coding tool of choice and save the returned artifact into the run folder.
|
|
104
|
+
|
|
105
|
+
6. Continue stage by stage:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
node dist/cli.js status
|
|
109
|
+
node dist/cli.js prompt
|
|
110
|
+
node dist/cli.js list
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
If you link the package locally, you can use the installed command directly:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
npm link
|
|
117
|
+
my-dev-kit-orchestrator --help
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Supported modes
|
|
121
|
+
|
|
122
|
+
### `feature`
|
|
123
|
+
|
|
124
|
+
Use for new behavior or intentional behavior changes.
|
|
125
|
+
|
|
126
|
+
Stage order:
|
|
127
|
+
`request-brief -> architecture-context -> behavior-model -> pseudocode-packet -> test-strategy -> implementation -> test-implementation -> verification -> judge -> final-report`
|
|
128
|
+
|
|
129
|
+
### `repair`
|
|
130
|
+
|
|
131
|
+
Use when observed behavior diverges from intended design.
|
|
132
|
+
|
|
133
|
+
Stage order:
|
|
134
|
+
`observed-behavior-report -> architecture-context -> behavior-trace -> divergence-report -> correction-design -> regression-test-strategy -> implementation -> test-implementation -> verification -> judge -> final-report`
|
|
135
|
+
|
|
136
|
+
### `test`
|
|
137
|
+
|
|
138
|
+
Use for behavior-derived test design or test implementation for existing behavior.
|
|
139
|
+
|
|
140
|
+
Stage order:
|
|
141
|
+
`test-target-brief -> architecture-context -> behavior-reconstruction -> pseudocode-summary -> test-strategy -> test-implementation -> verification -> judge -> final-report`
|
|
142
|
+
|
|
143
|
+
### `refactor`
|
|
144
|
+
|
|
145
|
+
Use for structure changes that must preserve behavior.
|
|
146
|
+
|
|
147
|
+
Stage order:
|
|
148
|
+
`refactor-brief -> architecture-context -> existing-behavior-map -> preserved-invariant-list -> compatibility-test-strategy -> refactor-pseudocode-packet -> implementation -> test-implementation -> verification -> judge -> final-report`
|
|
149
|
+
|
|
150
|
+
### `harden`
|
|
151
|
+
|
|
152
|
+
Use for validation, guard, resilience, and failure-handling work.
|
|
153
|
+
|
|
154
|
+
Stage order:
|
|
155
|
+
`hardening-brief -> architecture-context -> assumption-report -> failure-mode-matrix -> guard-pseudocode-packet -> resilience-test-strategy -> implementation -> test-implementation -> verification -> judge -> final-report`
|
|
156
|
+
|
|
157
|
+
## Run folder layout
|
|
158
|
+
|
|
159
|
+
Each run lives under `.my-dev-kit-orchestrator/runs/<run-id>/`.
|
|
160
|
+
|
|
161
|
+
```text
|
|
162
|
+
.my-dev-kit-orchestrator/
|
|
163
|
+
config.json
|
|
164
|
+
runs/
|
|
165
|
+
<run-id>/
|
|
166
|
+
00-request.txt
|
|
167
|
+
run.json
|
|
168
|
+
prompts/
|
|
169
|
+
artifacts/
|
|
170
|
+
reports/
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
Key files and folders:
|
|
174
|
+
|
|
175
|
+
- `00-request.txt`: the original request passed to `start`
|
|
176
|
+
- `run.json`: run metadata, mode, and ordered stage definitions
|
|
177
|
+
- `prompts/`: generated stage prompt files such as `01-request-brief.prompt.txt`
|
|
178
|
+
- `artifacts/`: stage outputs such as `request-brief.txt` and `pseudocode-packet.txt`
|
|
179
|
+
- `reports/`: reserved run folder for report-oriented outputs and future expansion
|
|
180
|
+
|
|
181
|
+
The next stage is determined by the first expected artifact file that is missing for the current workflow.
|
|
182
|
+
|
|
183
|
+
## Install, build, test
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
npm install
|
|
187
|
+
npm run build
|
|
188
|
+
npx tsc --noEmit
|
|
189
|
+
npm test
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
Optional local lint check:
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
npm run lint
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
## Documentation
|
|
199
|
+
|
|
200
|
+
- [ARCHITECTURE.md](docs/ARCHITECTURE.md)
|
|
201
|
+
- [docs/USAGE.md](docs/USAGE.md)
|
|
202
|
+
- [docs/WORKFLOWS.md](docs/WORKFLOWS.md)
|
|
203
|
+
- [docs/ARTIFACTS.md](docs/ARTIFACTS.md)
|
|
204
|
+
- [docs/DEVELOPMENT.md](docs/DEVELOPMENT.md)
|
|
205
|
+
- [CHANGELOG.md](CHANGELOG.md)
|
|
206
|
+
- [ROADMAP.md](docs/ROADMAP.md)
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
ADDED
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AACA,uCAA0C;AAE1C,MAAM,OAAO,GAAG,IAAA,uBAAa,GAAE,CAAC;AAChC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,eAAe,IAAI,OAAO,CAmBzC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.makeInitCommand = makeInitCommand;
|
|
37
|
+
const commander_1 = require("commander");
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const workspace_1 = require("../workspace");
|
|
40
|
+
function makeInitCommand() {
|
|
41
|
+
const cmd = new commander_1.Command('init');
|
|
42
|
+
cmd
|
|
43
|
+
.description('Initialize the my-dev-kit-orchestrator workspace inside the current project')
|
|
44
|
+
.option('--root <path>', 'project root directory (default: current working directory)')
|
|
45
|
+
.action((options) => {
|
|
46
|
+
const projectRoot = path.resolve(options.root ?? process.cwd());
|
|
47
|
+
const alreadyExists = (0, workspace_1.workspaceExists)(projectRoot);
|
|
48
|
+
(0, workspace_1.initWorkspace)(projectRoot);
|
|
49
|
+
const wsDir = (0, workspace_1.getWorkspaceRoot)(projectRoot);
|
|
50
|
+
if (alreadyExists) {
|
|
51
|
+
console.log(`Workspace already initialized at:\n${wsDir}`);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
console.log(`Initialized my-dev-kit-orchestrator workspace.\n\nWorkspace:\n${wsDir}\n\nNext:\n my-dev-kit-orchestrator start "<software change request>"`);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
return cmd;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,0CAmBC;AAvBD,yCAAoC;AACpC,2CAA6B;AAC7B,4CAAgF;AAEhF,SAAgB,eAAe;IAC7B,MAAM,GAAG,GAAG,IAAI,mBAAO,CAAC,MAAM,CAAC,CAAC;IAChC,GAAG;SACA,WAAW,CAAC,6EAA6E,CAAC;SAC1F,MAAM,CAAC,eAAe,EAAE,6DAA6D,CAAC;SACtF,MAAM,CAAC,CAAC,OAA0B,EAAE,EAAE;QACrC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAChE,MAAM,aAAa,GAAG,IAAA,2BAAe,EAAC,WAAW,CAAC,CAAC;QAEnD,IAAA,yBAAa,EAAC,WAAW,CAAC,CAAC;QAE3B,MAAM,KAAK,GAAG,IAAA,4BAAgB,EAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,sCAAsC,KAAK,EAAE,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,iEAAiE,KAAK,wEAAwE,CAAC,CAAC;QAC9J,CAAC;IACH,CAAC,CAAC,CAAC;IACL,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,eAAe,IAAI,OAAO,CAgEzC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.makeListCommand = makeListCommand;
|
|
37
|
+
const commander_1 = require("commander");
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const types_1 = require("../types");
|
|
40
|
+
const run_1 = require("../run");
|
|
41
|
+
const stageDetector_1 = require("../stageDetector");
|
|
42
|
+
function makeListCommand() {
|
|
43
|
+
const cmd = new commander_1.Command('list');
|
|
44
|
+
cmd
|
|
45
|
+
.description('List previous workflow runs')
|
|
46
|
+
.option('--mode <mode>', `filter by workflow mode (${types_1.VALID_MODES.join(' | ')})`)
|
|
47
|
+
.option('--root <path>', 'project root directory (default: current working directory)')
|
|
48
|
+
.action((options) => {
|
|
49
|
+
if (options.mode !== undefined && !(0, types_1.isValidMode)(options.mode)) {
|
|
50
|
+
console.error(`Error: invalid mode "${options.mode}". Allowed values: ${types_1.VALID_MODES.join(', ')}`);
|
|
51
|
+
process.exit(1);
|
|
52
|
+
}
|
|
53
|
+
const projectRoot = path.resolve(options.root ?? process.cwd());
|
|
54
|
+
const folders = (0, run_1.listRunFolders)(projectRoot);
|
|
55
|
+
if (folders.length === 0) {
|
|
56
|
+
console.log('No runs found.\n\nNext:\n my-dev-kit-orchestrator start "<software change request>"');
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const runs = folders
|
|
60
|
+
.map((folder) => {
|
|
61
|
+
try {
|
|
62
|
+
return (0, run_1.loadRun)(folder);
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
})
|
|
68
|
+
.filter((r) => r !== null);
|
|
69
|
+
const filtered = options.mode
|
|
70
|
+
? runs.filter((r) => r.mode === options.mode)
|
|
71
|
+
: runs;
|
|
72
|
+
if (filtered.length === 0) {
|
|
73
|
+
console.log(`No runs found for mode: ${options.mode}`);
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const lines = [];
|
|
77
|
+
for (const meta of filtered) {
|
|
78
|
+
if (!meta)
|
|
79
|
+
continue;
|
|
80
|
+
const nextStage = (0, stageDetector_1.getNextStage)(meta);
|
|
81
|
+
const requestLabel = meta.request.length > 60
|
|
82
|
+
? meta.request.slice(0, 57) + '...'
|
|
83
|
+
: meta.request;
|
|
84
|
+
const status = nextStage ? 'in_progress' : 'complete';
|
|
85
|
+
const currentStage = nextStage ? nextStage.name : '(complete)';
|
|
86
|
+
lines.push(`─────────────────────────────────────────────`);
|
|
87
|
+
lines.push(`Run ID: ${meta.runId}`);
|
|
88
|
+
lines.push(`Mode: ${meta.mode}`);
|
|
89
|
+
lines.push(`Request: ${requestLabel}`);
|
|
90
|
+
lines.push(`Status: ${status}`);
|
|
91
|
+
lines.push(`Created: ${meta.createdAt}`);
|
|
92
|
+
lines.push(`Next stage: ${currentStage}`);
|
|
93
|
+
lines.push(`Run folder: ${meta.runFolder}`);
|
|
94
|
+
}
|
|
95
|
+
lines.push(`─────────────────────────────────────────────`);
|
|
96
|
+
lines.push(`Total: ${filtered.length} run(s)`);
|
|
97
|
+
console.log(lines.join('\n'));
|
|
98
|
+
});
|
|
99
|
+
return cmd;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,0CAgEC;AAtED,yCAAoC;AACpC,2CAA6B;AAC7B,oCAAoD;AACpD,gCAAiD;AACjD,oDAAgD;AAEhD,SAAgB,eAAe;IAC7B,MAAM,GAAG,GAAG,IAAI,mBAAO,CAAC,MAAM,CAAC,CAAC;IAChC,GAAG;SACA,WAAW,CAAC,6BAA6B,CAAC;SAC1C,MAAM,CAAC,eAAe,EAAE,4BAA4B,mBAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;SAC/E,MAAM,CAAC,eAAe,EAAE,6DAA6D,CAAC;SACtF,MAAM,CAAC,CAAC,OAAyC,EAAE,EAAE;QACpD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,IAAA,mBAAW,EAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7D,OAAO,CAAC,KAAK,CAAC,wBAAwB,OAAO,CAAC,IAAI,sBAAsB,mBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,IAAA,oBAAc,EAAC,WAAW,CAAC,CAAC;QAE5C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,sFAAsF,CAAC,CAAC;YACpG,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,OAAO;aACjB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACd,IAAI,CAAC;gBACH,OAAO,IAAA,aAAO,EAAC,MAAM,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QAE7B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI;YAC3B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAE,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC;YAC9C,CAAC,CAAC,IAAI,CAAC;QAET,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,2BAA2B,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,SAAS,GAAG,IAAA,4BAAY,EAAC,IAAI,CAAC,CAAC;YACrC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE;gBAC3C,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;gBACnC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;YACjB,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC;YACtD,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;YAE/D,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;YAC5D,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,iBAAiB,YAAY,EAAE,CAAC,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,EAAE,CAAC,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC,iBAAiB,YAAY,EAAE,CAAC,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,UAAU,QAAQ,CAAC,MAAM,SAAS,CAAC,CAAC;QAE/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IACL,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/commands/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,iBAAiB,IAAI,OAAO,CAmF3C"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.makePromptCommand = makePromptCommand;
|
|
37
|
+
const commander_1 = require("commander");
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const fs = __importStar(require("fs"));
|
|
40
|
+
const run_1 = require("../run");
|
|
41
|
+
const promptGenerator_1 = require("../promptGenerator");
|
|
42
|
+
const stageDetector_1 = require("../stageDetector");
|
|
43
|
+
function makePromptCommand() {
|
|
44
|
+
const cmd = new commander_1.Command('prompt');
|
|
45
|
+
cmd
|
|
46
|
+
.description('Print the next stage prompt for the active or selected run')
|
|
47
|
+
.argument('[stage]', 'specific stage name in lowercase kebab-case (optional)')
|
|
48
|
+
.option('--run <run-id>', 'select a specific workflow run by ID')
|
|
49
|
+
.option('--root <path>', 'project root directory (default: current working directory)')
|
|
50
|
+
.action((stage, options) => {
|
|
51
|
+
const projectRoot = path.resolve(options.root ?? process.cwd());
|
|
52
|
+
let meta;
|
|
53
|
+
if (options.run) {
|
|
54
|
+
const runFolder = (0, run_1.getRunFolder)(projectRoot, options.run);
|
|
55
|
+
if (!fs.existsSync(runFolder)) {
|
|
56
|
+
console.error(`Error: run not found: ${options.run}`);
|
|
57
|
+
process.exit(1);
|
|
58
|
+
}
|
|
59
|
+
try {
|
|
60
|
+
meta = (0, run_1.loadRun)(runFolder);
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
console.error(`Error: could not load run: ${options.run}`);
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
meta = (0, run_1.getMostRecentRun)(projectRoot);
|
|
69
|
+
if (!meta) {
|
|
70
|
+
console.error('No runs found. Run: my-dev-kit-orchestrator start "<request>"');
|
|
71
|
+
process.exit(1);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (stage) {
|
|
75
|
+
const stageExists = meta.stages.some((s) => s.name === stage);
|
|
76
|
+
if (!stageExists) {
|
|
77
|
+
const available = meta.stages.map((s) => s.name).join(', ');
|
|
78
|
+
console.error(`Error: stage "${stage}" does not exist in ${meta.mode} workflow.\nAvailable stages: ${available}`);
|
|
79
|
+
process.exit(1);
|
|
80
|
+
}
|
|
81
|
+
const missingPrior = (0, stageDetector_1.getMissingPriorArtifacts)(meta, stage);
|
|
82
|
+
if (missingPrior.length > 0) {
|
|
83
|
+
console.error(`Warning: the following required prior artifacts are missing:\n` +
|
|
84
|
+
missingPrior.map((f) => ` - ${f}`).join('\n') +
|
|
85
|
+
`\n\nReturn to the stage that produces the missing artifact before continuing.\n` +
|
|
86
|
+
`Next missing stage: ${(0, stageDetector_1.getNextStage)(meta)?.name ?? 'none'}`);
|
|
87
|
+
process.exit(1);
|
|
88
|
+
}
|
|
89
|
+
try {
|
|
90
|
+
const promptText = (0, promptGenerator_1.generateStagePrompt)(meta, stage);
|
|
91
|
+
process.stdout.write(promptText);
|
|
92
|
+
}
|
|
93
|
+
catch (err) {
|
|
94
|
+
console.error(`Error generating prompt: ${err.message}`);
|
|
95
|
+
process.exit(1);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
if ((0, stageDetector_1.isRunComplete)(meta)) {
|
|
100
|
+
console.log(`Run ${meta.runId} is complete — all expected artifacts are present.\n\n` +
|
|
101
|
+
`To view the final report:\n ${path.join(meta.runFolder, 'artifacts/final-report.txt')}\n\n` +
|
|
102
|
+
`To inspect run status:\n my-dev-kit-orchestrator status`);
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
const nextStage = (0, stageDetector_1.getNextStage)(meta);
|
|
106
|
+
if (!nextStage) {
|
|
107
|
+
console.log('No missing stage artifact remains.');
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
try {
|
|
111
|
+
const promptText = (0, promptGenerator_1.generateStagePrompt)(meta, nextStage.name);
|
|
112
|
+
process.stdout.write(promptText);
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
115
|
+
console.error(`Error generating prompt: ${err.message}`);
|
|
116
|
+
process.exit(1);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
return cmd;
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/commands/prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,gBAAgB,IAAI,OAAO,CAoC1C"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.makeStartCommand = makeStartCommand;
|
|
37
|
+
const commander_1 = require("commander");
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const types_1 = require("../types");
|
|
40
|
+
const run_1 = require("../run");
|
|
41
|
+
const workspace_1 = require("../workspace");
|
|
42
|
+
function makeStartCommand() {
|
|
43
|
+
const cmd = new commander_1.Command('start');
|
|
44
|
+
cmd
|
|
45
|
+
.description('Start a new workflow run')
|
|
46
|
+
.argument('<request>', 'the software change request or description')
|
|
47
|
+
.option('--mode <mode>', `workflow mode (${types_1.VALID_MODES.join(' | ')})`, 'feature')
|
|
48
|
+
.option('--root <path>', 'project root directory (default: current working directory)')
|
|
49
|
+
.option('--name <run-name>', 'readable name to include in the run ID')
|
|
50
|
+
.option('--output-dir <path>', 'custom run output directory')
|
|
51
|
+
.action((request, options) => {
|
|
52
|
+
if (!(0, types_1.isValidMode)(options.mode)) {
|
|
53
|
+
console.error(`Error: invalid mode "${options.mode}". Allowed values: ${types_1.VALID_MODES.join(', ')}`);
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
const projectRoot = path.resolve(options.root ?? process.cwd());
|
|
57
|
+
(0, workspace_1.initWorkspace)(projectRoot);
|
|
58
|
+
try {
|
|
59
|
+
const meta = (0, run_1.createRun)({
|
|
60
|
+
request,
|
|
61
|
+
mode: options.mode,
|
|
62
|
+
projectRoot,
|
|
63
|
+
name: options.name,
|
|
64
|
+
outputDir: options.outputDir ? path.resolve(options.outputDir) : undefined,
|
|
65
|
+
});
|
|
66
|
+
console.log(`Created workflow run:\n${meta.runFolder}\n\nMode:\n${meta.mode}\n\nNext:\n my-dev-kit-orchestrator prompt`);
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
console.error(`Error: ${err.message}`);
|
|
70
|
+
process.exit(1);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
return cmd;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=start.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,4CAoCC;AA1CD,yCAAoC;AACpC,2CAA6B;AAC7B,oCAAoD;AACpD,gCAAmC;AACnC,4CAA6C;AAE7C,SAAgB,gBAAgB;IAC9B,MAAM,GAAG,GAAG,IAAI,mBAAO,CAAC,OAAO,CAAC,CAAC;IACjC,GAAG;SACA,WAAW,CAAC,0BAA0B,CAAC;SACvC,QAAQ,CAAC,WAAW,EAAE,4CAA4C,CAAC;SACnE,MAAM,CAAC,eAAe,EAAE,kBAAkB,mBAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC;SAChF,MAAM,CAAC,eAAe,EAAE,6DAA6D,CAAC;SACtF,MAAM,CAAC,mBAAmB,EAAE,wCAAwC,CAAC;SACrE,MAAM,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;SAC5D,MAAM,CAAC,CAAC,OAAe,EAAE,OAA2E,EAAE,EAAE;QACvG,IAAI,CAAC,IAAA,mBAAW,EAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,wBAAwB,OAAO,CAAC,IAAI,sBAAsB,mBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAChE,IAAA,yBAAa,EAAC,WAAW,CAAC,CAAC;QAE3B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAA,eAAS,EAAC;gBACrB,OAAO;gBACP,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,WAAW;gBACX,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;aAC3E,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CACT,0BAA0B,IAAI,CAAC,SAAS,cAAc,IAAI,CAAC,IAAI,6CAA6C,CAC7G,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,UAAW,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IACL,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,iBAAiB,IAAI,OAAO,CA+E3C"}
|