@hartvig/developer-control-center 0.8.2 → 0.8.3
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/.developer-control-center/metrics.json +1 -1
- package/.developer-control-center/status.json +1 -1
- package/.developer-control-center/timings.jsonl +3 -0
- package/AGENTS.md +3 -3
- package/PLUGINS.md +1 -1
- package/README.md +2 -2
- package/dist/cli.js +4 -4
- package/dist/cli.js.map +1 -1
- package/dist/config/loader.js +3 -3
- package/dist/config/loader.js.map +1 -1
- package/dist/config/loader.test.js +1 -1
- package/dist/config/loader.test.js.map +1 -1
- package/docs/architecture.md +3 -3
- package/docs/config.md +1 -1
- package/docs/ui.md +1 -1
- package/package.json +2 -2
- package/src/cli.ts +4 -4
- package/src/config/loader.test.ts +1 -1
- package/src/config/loader.ts +3 -3
- /package/{developer-control-center.config.example.js → dcc.config.example.js} +0 -0
- /package/{developer-control-center.config.js → dcc.config.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"projectRunning":true,"activeTasks":1,"packageVersion":"0.8.
|
|
1
|
+
{"projectRunning":true,"activeTasks":1,"packageVersion":"0.8.3","latestTest":{"label":"Test all packages","status":"success","time":1780431890869},"latestBuild":{"status":"success","time":1780435441752}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[["deploy-publish",{"id":"deploy-publish","label":"Publish package","status":"running","output":"","startTime":
|
|
1
|
+
[["deploy-publish",{"id":"deploy-publish","label":"Publish package","status":"running","output":"","startTime":1780435460746,"watchMode":false}]]
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
{"id":"build","label":"Build all packages","duration":2460,"exitCode":0,"status":"success","timestamp":"2026-06-02T20:24:32.829Z"}
|
|
2
2
|
{"id":"test","label":"Test all packages","duration":1614,"exitCode":0,"status":"success","timestamp":"2026-06-02T20:24:50.874Z"}
|
|
3
3
|
{"id":"deploy-publish","label":"Publish package","duration":1468,"exitCode":1,"status":"failure","timestamp":"2026-06-02T20:25:16.699Z"}
|
|
4
|
+
{"id":"deploy-publish","label":"Publish package","duration":2488,"exitCode":0,"status":"success","timestamp":"2026-06-02T20:29:25.828Z"}
|
|
5
|
+
{"id":"bump-version","label":"Bump version","duration":287,"exitCode":0,"status":"success","timestamp":"2026-06-02T21:23:53.938Z"}
|
|
6
|
+
{"id":"build","label":"Build all packages","duration":2571,"exitCode":0,"status":"success","timestamp":"2026-06-02T21:24:01.756Z"}
|
package/AGENTS.md
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
- Base tsconfig at `tsconfig.base.json`; each package extends it.
|
|
18
18
|
|
|
19
19
|
Package dependency order (bottom-up):
|
|
20
|
-
- `config/` — standalone, loads `
|
|
20
|
+
- `config/` — standalone, loads `dcc.config.js` (CJS/ESM)
|
|
21
21
|
- `status/` — standalone, `StatusStore` with subscribe pattern
|
|
22
22
|
- `plugins/` — standalone, plugin registry
|
|
23
23
|
- `core/` — depends on config + status + plugins; owns `Runtime`, `EventBus`, `TaskRunner`
|
|
@@ -28,7 +28,7 @@ Package dependency order (bottom-up):
|
|
|
28
28
|
|
|
29
29
|
- Runtime flow: `CLI -> Config Loader -> Core Runtime -> Ink UI`
|
|
30
30
|
- Core runtime owns `TaskRunner` (spawns child processes), `StatusStore` (observable task state), `EventBus` (typed events), and `PluginManager`.
|
|
31
|
-
- Config is project-local `
|
|
31
|
+
- Config is project-local `dcc.config.{mjs,cjs,js}` using `export default` (ESM) or `module.exports` (CJS); see `docs/config.md`.
|
|
32
32
|
- MVP scope per `docs/mvp.md`; CI/cloud/plugin-marketplace are out of scope.
|
|
33
33
|
|
|
34
34
|
## Design Docs
|
|
@@ -40,7 +40,7 @@ Package dependency order (bottom-up):
|
|
|
40
40
|
## Config
|
|
41
41
|
|
|
42
42
|
```js
|
|
43
|
-
//
|
|
43
|
+
// dcc.config.js
|
|
44
44
|
export default {
|
|
45
45
|
name: 'my-project',
|
|
46
46
|
commands: [
|
package/PLUGINS.md
CHANGED
package/README.md
CHANGED
|
@@ -42,7 +42,7 @@ npm start
|
|
|
42
42
|
dcc
|
|
43
43
|
|
|
44
44
|
# Use a specific config file
|
|
45
|
-
dcc ./configs/
|
|
45
|
+
dcc ./configs/dcc.config.js
|
|
46
46
|
|
|
47
47
|
# Use a CI profile
|
|
48
48
|
dcc --profile ci
|
|
@@ -65,7 +65,7 @@ dcc --help
|
|
|
65
65
|
|
|
66
66
|
## Configuration
|
|
67
67
|
|
|
68
|
-
Create `
|
|
68
|
+
Create `dcc.config.js` (or `.mjs` / `.cjs`) in your project root:
|
|
69
69
|
|
|
70
70
|
```js
|
|
71
71
|
export default {
|
package/dist/cli.js
CHANGED
|
@@ -12,7 +12,7 @@ developer-control-center v${VERSION}
|
|
|
12
12
|
Usage: dcc [command] [options]
|
|
13
13
|
|
|
14
14
|
Commands:
|
|
15
|
-
init Scaffold a
|
|
15
|
+
init Scaffold a dcc.config.js file
|
|
16
16
|
completion <shell> Generate shell completion script (bash|zsh|fish)
|
|
17
17
|
|
|
18
18
|
Options:
|
|
@@ -25,7 +25,7 @@ Environment:
|
|
|
25
25
|
|
|
26
26
|
Examples:
|
|
27
27
|
dcc Launch the TUI
|
|
28
|
-
dcc init Create
|
|
28
|
+
dcc init Create dcc.config.js in current directory
|
|
29
29
|
dcc completion bash Generate bash completions
|
|
30
30
|
`);
|
|
31
31
|
}
|
|
@@ -81,8 +81,8 @@ function printInitHelp() {
|
|
|
81
81
|
],
|
|
82
82
|
};
|
|
83
83
|
`;
|
|
84
|
-
fs.writeFileSync('
|
|
85
|
-
console.log('Created
|
|
84
|
+
fs.writeFileSync('dcc.config.js', config, 'utf-8');
|
|
85
|
+
console.log('Created dcc.config.js');
|
|
86
86
|
}
|
|
87
87
|
function printCompletion(shell) {
|
|
88
88
|
const bin = 'dcc';
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,OAAO,GAAG,OAAO,CAAC;AAExB,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;4BACc,OAAO;;;;;;;;;;;;;;;;;;;;CAoBlC,CAAC,CAAC;AACH,CAAC;AAED,SAAS,aAAa;IACpB,MAAM,MAAM,GAAG;WACN,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDtC,CAAC;IACA,EAAE,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/config/loader.js
CHANGED
|
@@ -2,9 +2,9 @@ import fs from 'fs';
|
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import { pathToFileURL } from 'url';
|
|
4
4
|
const CONFIG_CANDIDATES = [
|
|
5
|
-
'
|
|
6
|
-
'
|
|
7
|
-
'
|
|
5
|
+
'dcc.config.mjs',
|
|
6
|
+
'dcc.config.cjs',
|
|
7
|
+
'dcc.config.js',
|
|
8
8
|
];
|
|
9
9
|
function findConfigFile(cwd) {
|
|
10
10
|
for (const file of CONFIG_CANDIDATES) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAGpC,MAAM,iBAAiB,GAAG;IACxB,
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import path from 'path';
|
|
|
3
3
|
import { fileURLToPath } from 'url';
|
|
4
4
|
import { loadConfig } from './loader.js';
|
|
5
5
|
describe('loadConfig', () => {
|
|
6
|
-
const configPath = path.resolve(fileURLToPath(new URL('../../
|
|
6
|
+
const configPath = path.resolve(fileURLToPath(new URL('../../dcc.config.js', import.meta.url)));
|
|
7
7
|
it('returns default config when no config file exists', async () => {
|
|
8
8
|
const cwd = process.cwd;
|
|
9
9
|
process.cwd = () => '/tmp/nonexistent';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.test.js","sourceRoot":"","sources":["../../src/config/loader.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAC7B,aAAa,CAAC,IAAI,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"loader.test.js","sourceRoot":"","sources":["../../src/config/loader.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAC7B,aAAa,CAAC,IAAI,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAC/D,CAAC;IAEF,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACxB,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,kBAAyB,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/docs/architecture.md
CHANGED
package/docs/config.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Example
|
|
4
4
|
|
|
5
|
-
A full sample config is available at `
|
|
5
|
+
A full sample config is available at `dcc.config.example.js` in the project root. It demonstrates:
|
|
6
6
|
|
|
7
7
|
- Simple commands
|
|
8
8
|
- Toggle (start/stop) commands
|
package/docs/ui.md
CHANGED
package/package.json
CHANGED
package/src/cli.ts
CHANGED
|
@@ -15,7 +15,7 @@ developer-control-center v${VERSION}
|
|
|
15
15
|
Usage: dcc [command] [options]
|
|
16
16
|
|
|
17
17
|
Commands:
|
|
18
|
-
init Scaffold a
|
|
18
|
+
init Scaffold a dcc.config.js file
|
|
19
19
|
completion <shell> Generate shell completion script (bash|zsh|fish)
|
|
20
20
|
|
|
21
21
|
Options:
|
|
@@ -28,7 +28,7 @@ Environment:
|
|
|
28
28
|
|
|
29
29
|
Examples:
|
|
30
30
|
dcc Launch the TUI
|
|
31
|
-
dcc init Create
|
|
31
|
+
dcc init Create dcc.config.js in current directory
|
|
32
32
|
dcc completion bash Generate bash completions
|
|
33
33
|
`);
|
|
34
34
|
}
|
|
@@ -85,8 +85,8 @@ function printInitHelp(): void {
|
|
|
85
85
|
],
|
|
86
86
|
};
|
|
87
87
|
`;
|
|
88
|
-
fs.writeFileSync('
|
|
89
|
-
console.log('Created
|
|
88
|
+
fs.writeFileSync('dcc.config.js', config, 'utf-8');
|
|
89
|
+
console.log('Created dcc.config.js');
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
function printCompletion(shell: string): void {
|
|
@@ -5,7 +5,7 @@ import { loadConfig } from './loader.js';
|
|
|
5
5
|
|
|
6
6
|
describe('loadConfig', () => {
|
|
7
7
|
const configPath = path.resolve(
|
|
8
|
-
fileURLToPath(new URL('../../
|
|
8
|
+
fileURLToPath(new URL('../../dcc.config.js', import.meta.url)),
|
|
9
9
|
);
|
|
10
10
|
|
|
11
11
|
it('returns default config when no config file exists', async () => {
|
package/src/config/loader.ts
CHANGED
|
@@ -4,9 +4,9 @@ import { pathToFileURL } from 'url';
|
|
|
4
4
|
import { ProkomConfig, ProkomCommand, ProkomPreset } from './types.js';
|
|
5
5
|
|
|
6
6
|
const CONFIG_CANDIDATES = [
|
|
7
|
-
'
|
|
8
|
-
'
|
|
9
|
-
'
|
|
7
|
+
'dcc.config.mjs',
|
|
8
|
+
'dcc.config.cjs',
|
|
9
|
+
'dcc.config.js',
|
|
10
10
|
];
|
|
11
11
|
|
|
12
12
|
function findConfigFile(cwd: string): string | null {
|
|
File without changes
|
|
File without changes
|