@rogatio/cli 6.6.3 → 6.7.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 CHANGED
@@ -38,6 +38,7 @@ rogatio <command> [options]
38
38
  | --- | --- |
39
39
  | `rogatio edit [path]` | Launch the browser editor for `.rogatio.json`. `--port <n>` fixes the port; `--no-open` skips opening a browser. |
40
40
  | `rogatio verify [path]` | Validate a `.rogatio.json` file (schema + compiler). |
41
+ | `rogatio import requestly <export.json>` | Migrate a Requestly export into `.rogatio.json`. `--out <path>` chooses the file (default `.rogatio.json`); `--merge` appends onto an existing project; `--json` prints the report. |
41
42
  | `rogatio test [path] [url...]` | Run offline dry-run tests against `.rogatio.json`. |
42
43
  | `rogatio ai <setup\|ls\|show\|delete\|test>` | AI provider configuration. `setup` interactive; `ls` list; `show` redacted; `delete` remove; `test` connection. |
43
44
  | `rogatio runtime <install\|uninstall\|verify>` | Register the native-messaging host with `install --extension-id <id>` and trust the device-local CA in one **transactional** call; it needs elevated privileges (Linux `sudo`, macOS keychain authorization, Windows Administrator) and rolls back with exit `1` and `trust unsupported: <reasons>` when a capability or elevation is missing. `uninstall` removes the host manifest, the device-local CA files, and the CA trust installation (idempotent). `verify` reports whether manifest, `runtime-host` wrapper, allowed origins, and CA trust are all valid. |
@@ -479,6 +479,10 @@
479
479
  font-size: 0.9rem;
480
480
  line-height: 1;
481
481
  }
482
+ .rogatio-editor [data-group-list-section] {
483
+ display: grid;
484
+ gap: 0.85rem;
485
+ }
482
486
  .rogatio-editor [data-group-list] {
483
487
  list-style: none;
484
488
  margin: 0;
@@ -497,6 +501,13 @@
497
501
  background: var(--rogatio-card-group);
498
502
  padding: 0.65rem 0.85rem;
499
503
  }
504
+ .rogatio-editor [data-group-row-actions] {
505
+ display: flex;
506
+ flex-wrap: wrap;
507
+ align-items: center;
508
+ gap: 0.5rem;
509
+ margin-left: auto;
510
+ }
500
511
  .rogatio-editor [data-rules-section] {
501
512
  display: grid;
502
513
  gap: 0.85rem;
@@ -3732,17 +3732,7 @@ var EditorControllerImpl = class {
3732
3732
  );
3733
3733
  }
3734
3734
  tools.append(this.createCommandButton("Validate", "validate", this.saving));
3735
- if (this.route.kind === "project") {
3736
- tools.append(
3737
- this.createCommandButton(
3738
- "Add group",
3739
- "add-group",
3740
- this.saving,
3741
- {},
3742
- "primary"
3743
- )
3744
- );
3745
- } else if (this.route.kind === "test") {
3735
+ if (this.route.kind === "test") {
3746
3736
  tools.append(
3747
3737
  this.createCommandButton(
3748
3738
  "Run test",
@@ -3868,10 +3858,12 @@ var EditorControllerImpl = class {
3868
3858
  dock.append(row);
3869
3859
  }
3870
3860
  /**
3871
- * Repeats the actions a long page would otherwise hide: under the last rule,
3872
- * under the project group list, or under the test results.
3861
+ * Repeats the actions a long page would otherwise hide: under the last rule
3862
+ * on a group page, or under the test results. The project page stays short,
3863
+ * so Add group lives on the Groups heading and that route has no ledger.
3873
3864
  */
3874
3865
  renderActionDock() {
3866
+ if (this.route.kind === "project") return;
3875
3867
  const dock = this.document.createElement("section");
3876
3868
  dock.dataset.actionDock = "end";
3877
3869
  dock.setAttribute("aria-label", "Repeated actions");
@@ -3898,19 +3890,6 @@ var EditorControllerImpl = class {
3898
3890
  this.createGroupActionClusters(groupId, groupName)
3899
3891
  );
3900
3892
  }
3901
- } else if (this.route.kind === "project") {
3902
- const addGroup = this.document.createElement("div");
3903
- addGroup.dataset.actionCluster = "safe";
3904
- addGroup.append(
3905
- this.createCommandButton(
3906
- "Add group",
3907
- "add-group",
3908
- this.saving,
3909
- {},
3910
- "primary"
3911
- )
3912
- );
3913
- this.appendDockRow(dock, "Groups", addGroup);
3914
3893
  } else {
3915
3894
  const run = this.document.createElement("div");
3916
3895
  run.dataset.actionCluster = "safe";
@@ -3956,9 +3935,21 @@ var EditorControllerImpl = class {
3956
3935
  this.form.append(fields);
3957
3936
  const groups = this.document.createElement("section");
3958
3937
  groups.dataset.groupListSection = "true";
3938
+ const groupsHeadingRow = this.document.createElement("div");
3939
+ groupsHeadingRow.dataset.sectionHeading = "true";
3959
3940
  const groupsHeading = this.document.createElement("h2");
3960
3941
  groupsHeading.textContent = "Groups";
3961
- groups.append(groupsHeading);
3942
+ groupsHeadingRow.append(
3943
+ groupsHeading,
3944
+ this.createCommandButton(
3945
+ "Add group",
3946
+ "add-group",
3947
+ this.saving,
3948
+ {},
3949
+ "primary"
3950
+ )
3951
+ );
3952
+ groups.append(groupsHeadingRow);
3962
3953
  if (this.draft.groups.length === 0) {
3963
3954
  const empty = this.document.createElement("p");
3964
3955
  empty.textContent = "No groups yet.";
@@ -3971,13 +3962,13 @@ var EditorControllerImpl = class {
3971
3962
  const groupName = displayName(group.name, "Unnamed group");
3972
3963
  const item = this.document.createElement("li");
3973
3964
  item.dataset.groupRow = "true";
3974
- const open = this.createButton(
3975
- `Edit group ${groupName}`,
3976
- `route:group:${groupId}`
3977
- );
3965
+ const open = this.createButton(groupName, `route:group:${groupId}`);
3978
3966
  open.dataset.route = "group";
3979
3967
  open.dataset.groupId = groupId;
3980
3968
  open.dataset.btn = "secondary";
3969
+ open.setAttribute("aria-label", `Open group ${groupName}`);
3970
+ const actions = this.document.createElement("div");
3971
+ actions.dataset.groupRowActions = "true";
3981
3972
  const copy = this.createCommandButton(
3982
3973
  "Copy group",
3983
3974
  "copy-group",
@@ -3993,7 +3984,8 @@ var EditorControllerImpl = class {
3993
3984
  "danger"
3994
3985
  );
3995
3986
  remove.setAttribute("aria-label", `Remove group ${groupName}`);
3996
- item.append(open, copy, remove);
3987
+ actions.append(copy, remove);
3988
+ item.append(open, actions);
3997
3989
  list.append(item);
3998
3990
  }
3999
3991
  groups.append(list);