@celilo/core 0.11.0 → 0.12.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/package.json +1 -1
- package/src/command-registry.ts +96 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@celilo/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "Lightweight shared core for Celilo CLI tools — command registry, NDJSON API protocol, and remote SSH client. No Ink/React/drizzle/aws-sdk transitive deps, so an MCP server can reach the transport without installing the full CLI.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./src/index.ts",
|
package/src/command-registry.ts
CHANGED
|
@@ -742,6 +742,33 @@ export const COMMANDS: CommandDef[] = [
|
|
|
742
742
|
},
|
|
743
743
|
],
|
|
744
744
|
},
|
|
745
|
+
{
|
|
746
|
+
name: 'jail',
|
|
747
|
+
description:
|
|
748
|
+
"Get or set one module's hook jail policy (auto|off|required). Omit the policy to show the effective value and which source produced it; --clear removes the row so the module follows the system's hooks.jail_policy again",
|
|
749
|
+
args: [
|
|
750
|
+
{ name: 'id', description: 'Module ID', completion: 'module_ids' },
|
|
751
|
+
{
|
|
752
|
+
name: 'policy',
|
|
753
|
+
description:
|
|
754
|
+
'auto (jail when a backend is available), off (never jail), or required (an unavailable jail is a hard failure); omit to show the effective policy',
|
|
755
|
+
},
|
|
756
|
+
],
|
|
757
|
+
flags: [
|
|
758
|
+
{
|
|
759
|
+
name: 'clear',
|
|
760
|
+
description:
|
|
761
|
+
"Remove the module's recorded policy so it follows the system's hooks.jail_policy again",
|
|
762
|
+
takesValue: false,
|
|
763
|
+
},
|
|
764
|
+
{
|
|
765
|
+
name: 'force',
|
|
766
|
+
description:
|
|
767
|
+
'Skip the confirmation interview when the new policy is weaker than the system-wide one',
|
|
768
|
+
takesValue: false,
|
|
769
|
+
},
|
|
770
|
+
],
|
|
771
|
+
},
|
|
745
772
|
{
|
|
746
773
|
name: 'secret',
|
|
747
774
|
description: 'Manage module secrets',
|
|
@@ -813,6 +840,12 @@ export const COMMANDS: CommandDef[] = [
|
|
|
813
840
|
'Exit cleanly after the initial config + secrets interview (no terraform/ansible/hooks). Manual validation of the bus-mediated interview path.',
|
|
814
841
|
takesValue: false,
|
|
815
842
|
},
|
|
843
|
+
{
|
|
844
|
+
name: 'keep',
|
|
845
|
+
description:
|
|
846
|
+
'Retain the generated project after a successful deploy (it is deleted by design)',
|
|
847
|
+
takesValue: false,
|
|
848
|
+
},
|
|
816
849
|
],
|
|
817
850
|
},
|
|
818
851
|
{
|
|
@@ -820,6 +853,50 @@ export const COMMANDS: CommandDef[] = [
|
|
|
820
853
|
description: 'Pre-flight check: validate module is ready for deployment',
|
|
821
854
|
args: [{ name: 'id', description: 'Module ID', completion: 'module_ids' }],
|
|
822
855
|
},
|
|
856
|
+
{
|
|
857
|
+
name: 'check',
|
|
858
|
+
description: 'Run drift-detection checks against a third-party module directory',
|
|
859
|
+
args: [{ name: 'path', description: 'Module directory (defaults to ".")' }],
|
|
860
|
+
flags: [
|
|
861
|
+
{
|
|
862
|
+
name: 'no-build',
|
|
863
|
+
description: 'Skip `bunx tsc --noEmit` (fast iteration, or no TypeScript surface)',
|
|
864
|
+
takesValue: false,
|
|
865
|
+
},
|
|
866
|
+
{
|
|
867
|
+
name: 'json',
|
|
868
|
+
description: 'Emit the structured Check[] payload instead of formatted text',
|
|
869
|
+
takesValue: false,
|
|
870
|
+
},
|
|
871
|
+
{
|
|
872
|
+
name: 'strict',
|
|
873
|
+
description: 'Treat warnings as failures (any non-OK is a non-zero exit)',
|
|
874
|
+
takesValue: false,
|
|
875
|
+
},
|
|
876
|
+
],
|
|
877
|
+
},
|
|
878
|
+
{
|
|
879
|
+
name: 'changeset',
|
|
880
|
+
description: 'Author a version changeset for a module (.changeset/<name>.md)',
|
|
881
|
+
args: [{ name: 'module-dir', description: 'Module directory (defaults to ".")' }],
|
|
882
|
+
flags: [
|
|
883
|
+
{
|
|
884
|
+
name: 'bump',
|
|
885
|
+
description: 'Version bump type: major, minor or patch (required)',
|
|
886
|
+
takesValue: true,
|
|
887
|
+
},
|
|
888
|
+
{
|
|
889
|
+
name: 'message',
|
|
890
|
+
description: 'Changeset body text (default: "<bump> change to <module-id>.")',
|
|
891
|
+
takesValue: true,
|
|
892
|
+
},
|
|
893
|
+
{
|
|
894
|
+
name: 'name',
|
|
895
|
+
description: 'Changeset filename stem (default: auto-generated slug)',
|
|
896
|
+
takesValue: true,
|
|
897
|
+
},
|
|
898
|
+
],
|
|
899
|
+
},
|
|
823
900
|
{
|
|
824
901
|
name: 'status',
|
|
825
902
|
description: 'Show detailed module status',
|
|
@@ -1207,6 +1284,7 @@ export const COMMANDS: CommandDef[] = [
|
|
|
1207
1284
|
takesValue: true,
|
|
1208
1285
|
valueHint: 'dmz app secure internal external',
|
|
1209
1286
|
},
|
|
1287
|
+
{ name: 'json', description: 'Machine-readable JSON output', takesValue: false },
|
|
1210
1288
|
],
|
|
1211
1289
|
},
|
|
1212
1290
|
{
|
|
@@ -1294,6 +1372,18 @@ export const COMMANDS: CommandDef[] = [
|
|
|
1294
1372
|
{ name: 'key', description: 'Config key', completion: 'system_config_keys' },
|
|
1295
1373
|
{ name: 'value', description: 'Config value' },
|
|
1296
1374
|
],
|
|
1375
|
+
// `handleSystemConfigSet` has honoured `flags.force` since the
|
|
1376
|
+
// hooks.jail_policy interview gate landed, and its unit test drives
|
|
1377
|
+
// the handler directly, so the flag was tested and unreachable:
|
|
1378
|
+
// the parser rejected `--force` with "does not accept any flags".
|
|
1379
|
+
flags: [
|
|
1380
|
+
{
|
|
1381
|
+
name: 'force',
|
|
1382
|
+
description:
|
|
1383
|
+
'Skip the confirmation interview for values that change security posture (hooks.jail_policy off)',
|
|
1384
|
+
takesValue: false,
|
|
1385
|
+
},
|
|
1386
|
+
],
|
|
1297
1387
|
},
|
|
1298
1388
|
{
|
|
1299
1389
|
name: 'get',
|
|
@@ -1396,6 +1486,12 @@ export const COMMANDS: CommandDef[] = [
|
|
|
1396
1486
|
description:
|
|
1397
1487
|
'Diagnose system prerequisites, @celilo/* version drift, and (on a management plane) fleet-runtime drift',
|
|
1398
1488
|
flags: [
|
|
1489
|
+
{
|
|
1490
|
+
name: 'deep',
|
|
1491
|
+
description:
|
|
1492
|
+
'Also measure the host plane: one SSH per system for module integrity, plus aspect coverage (celilo#1308: the doctor prescribed --deep before the registry declared it)',
|
|
1493
|
+
takesValue: false,
|
|
1494
|
+
},
|
|
1399
1495
|
{
|
|
1400
1496
|
name: 'fix',
|
|
1401
1497
|
description:
|