dev-cockpit 0.4.2 → 0.5.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/CHANGELOG.md +13 -0
- package/dist/buildCli.d.ts.map +1 -1
- package/dist/commands/init-config.d.ts +6 -0
- package/dist/commands/init-config.d.ts.map +1 -1
- package/dist/core/types.d.ts +13 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/index.js +71 -17
- package/dist/index.js.map +2 -2
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `dev-cockpit` are documented here. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
4
4
|
|
|
5
|
+
## [0.5.0] — 2026-06-11
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- **`Profile.cliCommand`** — the command users type to invoke the profile's CLI (e.g. `awc-cockpit`). Used for the commander program name and threaded into every user-facing message that suggests a command (init-config guard, link hint, doctor suggestions), so instructions are copy-pasteable for profile users. Falls back to `appName`, then `dev-cockpit`.
|
|
10
|
+
- **`Profile.profileKey`** — explicit key for the profile's namespace in cockpit.yaml (`profile.<key>:`), used by dev/doctor/mount config loading. Falls back to `appName` (its historical carrier), which now remains responsible only for state-dir identity defaults.
|
|
11
|
+
- **init-config manifest-precedence guard** — when the workspace is registered to an external config via the manifest, `init-config` refuses to write a workspace-local `cockpit.yaml` (which would take precedence in discovery and silently disconnect the registered config). `--force` overrides. Targets outside the discovery location (`-o elsewhere.yaml`) pass freely.
|
|
12
|
+
- **init-config `-o` wiring hint** — files written outside the discovery location end with explicit instructions to register them (`<cli> link <path>`), since discovery only finds `<workspace>/cockpit.yaml` or manifest registrations.
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- **init-config is interactive by default on a TTY** — the wizard (including profile-contributed steps) runs without flags; `--static` writes the canned starter template without prompts; non-TTY invocations automatically get the static template; `-i` still forces the wizard.
|
|
17
|
+
|
|
5
18
|
## [0.3.1] — 2026-05-12
|
|
6
19
|
|
|
7
20
|
### Added
|
package/dist/buildCli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildCli.d.ts","sourceRoot":"","sources":["../src/buildCli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAO/C,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAkBD,wBAAgB,QAAQ,CAAC,IAAI,GAAE,eAAoB,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"buildCli.d.ts","sourceRoot":"","sources":["../src/buildCli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAO/C,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAkBD,wBAAgB,QAAQ,CAAC,IAAI,GAAE,eAAoB,GAAG,OAAO,CA2K5D"}
|
|
@@ -22,6 +22,12 @@ export interface InitConfigOptions {
|
|
|
22
22
|
profile?: Profile;
|
|
23
23
|
/** Override default output path (`<cwd>/cockpit.yaml`). */
|
|
24
24
|
output?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Command name used in user-facing messages and suggested commands.
|
|
27
|
+
* Profiles pass their own (e.g. "awc-cockpit") so instructions are
|
|
28
|
+
* copy-pasteable for their users. Default: "dev-cockpit".
|
|
29
|
+
*/
|
|
30
|
+
cliCommand?: string;
|
|
25
31
|
}
|
|
26
32
|
export declare function buildTemplate(opts: {
|
|
27
33
|
withDocker: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-config.d.ts","sourceRoot":"","sources":["../../src/commands/init-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"init-config.d.ts","sourceRoot":"","sources":["../../src/commands/init-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAKhD,MAAM,WAAW,iBAAiB;IAChC,iEAAiE;IACjE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mDAAmD;IACnD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sFAAsF;IACtF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAwFpF;AAED,MAAM,WAAW,gBAAgB;IAC/B,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAsB,iBAAiB,CACrC,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAmGlC"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -161,6 +161,19 @@ export interface Profile {
|
|
|
161
161
|
* core 8 steps. Each step's YAML output lands under `profile.<appName>:`
|
|
162
162
|
* in the generated cockpit.yaml.
|
|
163
163
|
*/
|
|
164
|
+
/**
|
|
165
|
+
* The command users type to invoke this profile's CLI (e.g.
|
|
166
|
+
* "awc-cockpit"). Used for the commander program name and in every
|
|
167
|
+
* user-facing message that suggests a command. Falls back to `appName`,
|
|
168
|
+
* then "dev-cockpit".
|
|
169
|
+
*/
|
|
170
|
+
cliCommand?: string;
|
|
171
|
+
/**
|
|
172
|
+
* Key of this profile's namespace in cockpit.yaml (`profile.<key>:`),
|
|
173
|
+
* used when loading/validating config in dev/doctor/mount. Falls back
|
|
174
|
+
* to `appName` (its historical carrier).
|
|
175
|
+
*/
|
|
176
|
+
profileKey?: string;
|
|
164
177
|
wizardSteps?: readonly WizardStep[];
|
|
165
178
|
configSchemaExt?: z.ZodObject<z.ZodRawShape>;
|
|
166
179
|
mountCandidatesProvider?: () => Mount[] | Promise<Mount[]>;
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -91567,7 +91567,7 @@ async function devCommand(opts = {}) {
|
|
|
91567
91567
|
}
|
|
91568
91568
|
const config = loadConfig(configPath, {
|
|
91569
91569
|
configSchemaExt: profile?.configSchemaExt,
|
|
91570
|
-
profileKey: profile?.appName
|
|
91570
|
+
profileKey: profile?.profileKey ?? profile?.appName
|
|
91571
91571
|
});
|
|
91572
91572
|
const seededRepos = {};
|
|
91573
91573
|
const seededOrder = [];
|
|
@@ -91856,7 +91856,7 @@ async function doctorCommand(opts = {}) {
|
|
|
91856
91856
|
}
|
|
91857
91857
|
const config = loadConfig(configPath, {
|
|
91858
91858
|
configSchemaExt: profile?.configSchemaExt,
|
|
91859
|
-
profileKey: profile?.appName
|
|
91859
|
+
profileKey: profile?.profileKey ?? profile?.appName
|
|
91860
91860
|
});
|
|
91861
91861
|
const ctx = buildHealthContext(workspaceRoot);
|
|
91862
91862
|
const registry = buildHealthRegistry({
|
|
@@ -92920,10 +92920,10 @@ docker:
|
|
|
92920
92920
|
# - name: app
|
|
92921
92921
|
# tail: true
|
|
92922
92922
|
`;
|
|
92923
|
-
return `# dev-cockpit configuration. All keys except \`version\` and
|
|
92924
|
-
# optional; defaults from src/core/config.ts apply when missing.
|
|
92923
|
+
return `# dev-cockpit configuration (schema v3). All keys except \`version\` and
|
|
92924
|
+
# \`appName\` are optional; defaults from src/core/config.ts apply when missing.
|
|
92925
92925
|
|
|
92926
|
-
version:
|
|
92926
|
+
version: 3
|
|
92927
92927
|
appName: ${opts.appName}
|
|
92928
92928
|
|
|
92929
92929
|
# Long-running processes streamed into the Output pane.
|
|
@@ -92952,6 +92952,26 @@ ${dockerBlock}
|
|
|
92952
92952
|
# label: app responsive
|
|
92953
92953
|
# type: http-ok
|
|
92954
92954
|
# url: http://localhost:3000/health
|
|
92955
|
+
# remediation:
|
|
92956
|
+
# label: restart app
|
|
92957
|
+
# command: docker compose restart app
|
|
92958
|
+
|
|
92959
|
+
# Single-keypress \u2192 health-id dispatch table (v3). Value can be a single id
|
|
92960
|
+
# or a list; multi-id bindings fire each UNIQUE remediation (deduped by
|
|
92961
|
+
# \`command|cwd\`) once. Action keys live separately on \`actions[].key\`.
|
|
92962
|
+
# keybindings:
|
|
92963
|
+
# R: app-up
|
|
92964
|
+
# D:
|
|
92965
|
+
# - app-up
|
|
92966
|
+
|
|
92967
|
+
# Named shell commands surfaced via the \`:\` palette and the Targets pane.
|
|
92968
|
+
# \`scope\` values: \`global\` | \`repos\` | \`repos:<id>\`.
|
|
92969
|
+
# actions:
|
|
92970
|
+
# - id: docs
|
|
92971
|
+
# label: Open docs
|
|
92972
|
+
# command: open ./docs/index.html
|
|
92973
|
+
# scope: global
|
|
92974
|
+
# key: o
|
|
92955
92975
|
|
|
92956
92976
|
# Help-pane sources (markdown trees) and the landing page slug.
|
|
92957
92977
|
# help:
|
|
@@ -92971,12 +92991,29 @@ ${dockerBlock}
|
|
|
92971
92991
|
}
|
|
92972
92992
|
async function initConfigCommand(opts = {}) {
|
|
92973
92993
|
const cwd = opts.cwd ?? process.cwd();
|
|
92994
|
+
const cli = opts.cliCommand ?? "dev-cockpit";
|
|
92974
92995
|
const target = opts.output ? path22.resolve(cwd, opts.output) : path22.join(cwd, "cockpit.yaml");
|
|
92975
92996
|
const exists = fs15.existsSync(target);
|
|
92976
92997
|
if (exists && !opts.force) {
|
|
92977
92998
|
process.stdout.write(
|
|
92978
|
-
|
|
92999
|
+
`${cli} init-config: ${target} already exists.
|
|
92979
93000
|
Pass --force to overwrite.
|
|
93001
|
+
`
|
|
93002
|
+
);
|
|
93003
|
+
return null;
|
|
93004
|
+
}
|
|
93005
|
+
const discoveryTarget = path22.join(cwd, "cockpit.yaml");
|
|
93006
|
+
const registered = lookupConfig(cwd);
|
|
93007
|
+
if (registered && !opts.force && target === discoveryTarget && path22.resolve(registered) !== target) {
|
|
93008
|
+
process.stdout.write(
|
|
93009
|
+
`${cli} init-config: this workspace already uses an external config:
|
|
93010
|
+
|
|
93011
|
+
${registered}
|
|
93012
|
+
(registered in ${manifestPath()})
|
|
93013
|
+
|
|
93014
|
+
A new ${target} would take precedence over it \u2014 commands in this workspace would stop reading the registered config and use the fresh starter file instead. The registered file itself is not modified.
|
|
93015
|
+
|
|
93016
|
+
Edit the registered config instead, or pass --force to write the local file anyway.
|
|
92980
93017
|
`
|
|
92981
93018
|
);
|
|
92982
93019
|
return null;
|
|
@@ -92993,15 +93030,24 @@ async function initConfigCommand(opts = {}) {
|
|
|
92993
93030
|
});
|
|
92994
93031
|
fs15.writeFileSync(target, content, "utf8");
|
|
92995
93032
|
process.stdout.write(`
|
|
92996
|
-
|
|
93033
|
+
${cli} init-config: wrote ${target}
|
|
92997
93034
|
`);
|
|
93035
|
+
if (target !== discoveryTarget) {
|
|
93036
|
+
process.stdout.write(
|
|
93037
|
+
`
|
|
93038
|
+
Note: this file is not wired to any workspace \u2014 discovery only finds <workspace>/cockpit.yaml or manifest registrations.
|
|
93039
|
+
To use it from a workspace, register it:
|
|
93040
|
+
cd <workspace> && ${cli} link ${target}
|
|
93041
|
+
`
|
|
93042
|
+
);
|
|
93043
|
+
}
|
|
92998
93044
|
if (opts.withDocker) {
|
|
92999
93045
|
process.stdout.write(" Docker block uncommented; adjust composeFile/services as needed.\n");
|
|
93000
93046
|
}
|
|
93001
93047
|
if (opts.interactive) {
|
|
93002
93048
|
const { confirm } = await import("@inquirer/prompts");
|
|
93003
93049
|
const runDoctorNow = await confirm({
|
|
93004
|
-
message:
|
|
93050
|
+
message: `Run \`${cli} doctor\` now to validate the file + show initial health?`,
|
|
93005
93051
|
default: true
|
|
93006
93052
|
});
|
|
93007
93053
|
if (runDoctorNow) {
|
|
@@ -93017,13 +93063,16 @@ doctor failed: ${err instanceof Error ? err.message : String(err)}
|
|
|
93017
93063
|
}
|
|
93018
93064
|
}
|
|
93019
93065
|
process.stdout.write("\nNext:\n");
|
|
93020
|
-
process.stdout.write(
|
|
93066
|
+
process.stdout.write(` \u2022 Edit cockpit.yaml any time, then re-run \`${cli} doctor\`.
|
|
93067
|
+
`);
|
|
93021
93068
|
process.stdout.write(
|
|
93022
|
-
|
|
93069
|
+
` \u2022 Run \`${cli} dev\` to launch the cockpit (Tab/arrows cycle panes, q quits).
|
|
93070
|
+
`
|
|
93023
93071
|
);
|
|
93024
93072
|
process.stdout.write(" \u2022 The Help tab inside the cockpit has the full docs.\n");
|
|
93025
93073
|
} else {
|
|
93026
|
-
process.stdout.write(
|
|
93074
|
+
process.stdout.write(` Run \`${cli} doctor\` to verify the config loads cleanly.
|
|
93075
|
+
`);
|
|
93027
93076
|
}
|
|
93028
93077
|
return { path: target, overwrote: exists };
|
|
93029
93078
|
}
|
|
@@ -93134,7 +93183,7 @@ async function resolveContext(opts) {
|
|
|
93134
93183
|
}
|
|
93135
93184
|
const config = loadConfig(configPath, {
|
|
93136
93185
|
configSchemaExt: profile?.configSchemaExt,
|
|
93137
|
-
profileKey: profile?.appName
|
|
93186
|
+
profileKey: profile?.profileKey ?? profile?.appName
|
|
93138
93187
|
});
|
|
93139
93188
|
const explicitService = opts.service ?? config.mount.service ?? config.docker?.services?.[0]?.name;
|
|
93140
93189
|
if (!explicitService) {
|
|
@@ -93576,7 +93625,7 @@ function hasCommand(program2, name) {
|
|
|
93576
93625
|
function buildCli(opts = {}) {
|
|
93577
93626
|
const program2 = new Command();
|
|
93578
93627
|
const profile = opts.profile;
|
|
93579
|
-
const appName = profile?.appName ?? "dev-cockpit";
|
|
93628
|
+
const appName = profile?.cliCommand ?? profile?.appName ?? "dev-cockpit";
|
|
93580
93629
|
program2.name(appName).description(profile ? `${appName} \u2014 built on dev-cockpit` : "Generic terminal UI dev cockpit").version(profile?.version ?? readPackageVersion(), "-V, --version", "Output the version number");
|
|
93581
93630
|
if (profile?.setupCli) {
|
|
93582
93631
|
profile.setupCli(program2);
|
|
@@ -93600,17 +93649,22 @@ function buildCli(opts = {}) {
|
|
|
93600
93649
|
if (!hasCommand(program2, "init-config")) {
|
|
93601
93650
|
program2.command("init-config").description("Write a starter cockpit.yaml in the current directory").option("-f, --force", "Overwrite an existing cockpit.yaml without prompting", false).option("--with-docker", "Include an uncommented docker block (static template only)", false).option(
|
|
93602
93651
|
"-i, --interactive",
|
|
93603
|
-
"
|
|
93652
|
+
"Force the interactive wizard (default on a TTY; this flag matters in scripts)",
|
|
93604
93653
|
false
|
|
93605
|
-
).option("
|
|
93654
|
+
).option("--static", "Write the static starter template without prompts", false).option(
|
|
93655
|
+
"-o, --output <path>",
|
|
93656
|
+
"Write the file to this path instead of <cwd>/cockpit.yaml. The file is NOT registered/linked to any workspace \u2014 run `link <path>` from the workspace afterwards"
|
|
93657
|
+
).action(
|
|
93606
93658
|
async (cmdOpts) => {
|
|
93659
|
+
const interactive = cmdOpts.static ? false : (cmdOpts.interactive ?? false) || Boolean(process.stdout.isTTY && process.stdin.isTTY);
|
|
93607
93660
|
await initConfigCommand({
|
|
93608
93661
|
force: cmdOpts.force ?? false,
|
|
93609
93662
|
withDocker: cmdOpts.withDocker ?? false,
|
|
93610
|
-
interactive
|
|
93663
|
+
interactive,
|
|
93611
93664
|
appName,
|
|
93612
93665
|
profile,
|
|
93613
|
-
output: cmdOpts.output
|
|
93666
|
+
output: cmdOpts.output,
|
|
93667
|
+
cliCommand: appName
|
|
93614
93668
|
});
|
|
93615
93669
|
}
|
|
93616
93670
|
);
|