@skrr-ai/cli 0.1.127 → 0.1.128

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.
Files changed (113) hide show
  1. package/dist/base-command.d.ts +23 -0
  2. package/dist/base-command.js +72 -0
  3. package/dist/commands/agents/chat.js +7 -0
  4. package/dist/commands/commitments/action-history.js +1 -1
  5. package/dist/commands/commitments/cases.js +3 -3
  6. package/dist/commands/commitments/check-now.d.ts +10 -2
  7. package/dist/commands/commitments/check-now.js +53 -3
  8. package/dist/commands/commitments/create.d.ts +6 -14
  9. package/dist/commands/commitments/create.js +61 -6
  10. package/dist/commands/commitments/doctor.js +3 -1
  11. package/dist/commands/commitments/effective-policy.d.ts +11 -1
  12. package/dist/commands/commitments/effective-policy.js +84 -4
  13. package/dist/commands/commitments/hypotheses.js +12 -12
  14. package/dist/commands/commitments/next-tick.js +5 -0
  15. package/dist/commands/commitments/observations.js +18 -17
  16. package/dist/commands/commitments/pack/list.js +2 -1
  17. package/dist/commands/commitments/pack/plan.d.ts +6 -0
  18. package/dist/commands/commitments/pack/plan.js +19 -0
  19. package/dist/commands/commitments/preflight.d.ts +19 -0
  20. package/dist/commands/commitments/preflight.js +108 -10
  21. package/dist/commands/commitments/trigger-status.js +8 -0
  22. package/dist/commands/commitments/update.d.ts +1 -0
  23. package/dist/commands/commitments/update.js +45 -4
  24. package/dist/commands/commitments/wake-capabilities.js +13 -0
  25. package/dist/commands/compass/archive.js +4 -0
  26. package/dist/commands/compass/commitments.js +15 -1
  27. package/dist/commands/compass/create.js +11 -3
  28. package/dist/commands/compass/effective-policy.d.ts +1 -0
  29. package/dist/commands/compass/effective-policy.js +8 -7
  30. package/dist/commands/compass/revert.d.ts +8 -0
  31. package/dist/commands/compass/revert.js +25 -1
  32. package/dist/commands/compass/revisions.d.ts +2 -0
  33. package/dist/commands/compass/revisions.js +18 -2
  34. package/dist/commands/compass/tactic.d.ts +5 -3
  35. package/dist/commands/compass/tactic.js +8 -7
  36. package/dist/commands/compass/update.js +19 -3
  37. package/dist/commands/followups/act.js +1 -1
  38. package/dist/commands/followups/cancel.js +13 -0
  39. package/dist/commands/followups/observability.js +20 -1
  40. package/dist/commands/followups/plans/create.js +12 -1
  41. package/dist/commands/followups/show.js +13 -0
  42. package/dist/commands/followups/watch.js +1 -1
  43. package/dist/commands/goals/planner-config.d.ts +11 -0
  44. package/dist/commands/goals/planner-config.js +16 -0
  45. package/dist/commands/machines/update.d.ts +5 -3
  46. package/dist/commands/machines/update.js +70 -9
  47. package/dist/commands/northstars/create.js +3 -1
  48. package/dist/commands/northstars/governance/configure.d.ts +4 -0
  49. package/dist/commands/northstars/governance/configure.js +75 -9
  50. package/dist/commands/northstars/intents/decide.d.ts +6 -0
  51. package/dist/commands/northstars/intents/decide.js +69 -15
  52. package/dist/commands/northstars/intents/list.d.ts +2 -1
  53. package/dist/commands/northstars/intents/list.js +15 -5
  54. package/dist/commands/northstars/intents.d.ts +26 -0
  55. package/dist/commands/northstars/intents.js +49 -0
  56. package/dist/commands/northstars/list.d.ts +1 -0
  57. package/dist/commands/northstars/list.js +24 -3
  58. package/dist/commands/northstars/recommendations/list.d.ts +1 -1
  59. package/dist/commands/northstars/recommendations/list.js +3 -3
  60. package/dist/commands/northstars/recommendations.d.ts +19 -0
  61. package/dist/commands/northstars/recommendations.js +42 -0
  62. package/dist/commands/northstars/review-now.d.ts +1 -0
  63. package/dist/commands/northstars/review-now.js +10 -4
  64. package/dist/commands/northstars/reviews.d.ts +1 -0
  65. package/dist/commands/northstars/reviews.js +19 -3
  66. package/dist/commands/northstars/update.js +8 -1
  67. package/dist/commands/proposals/list.js +11 -2
  68. package/dist/commands/proposals/show.js +9 -1
  69. package/dist/commands/spaces/auto-executor/preview.d.ts +14 -1
  70. package/dist/commands/spaces/auto-executor/preview.js +35 -1
  71. package/dist/commands/spaces/auto-executor/run.d.ts +17 -0
  72. package/dist/commands/spaces/auto-executor/run.js +60 -2
  73. package/dist/commands/spaces/files/upload.js +1 -2
  74. package/dist/commands/spaces/index.js +23 -0
  75. package/dist/generated/agent-guides.json +69 -69
  76. package/dist/lib/agentic-stream.d.ts +9 -0
  77. package/dist/lib/agentic-stream.js +14 -0
  78. package/dist/lib/command-miss.js +11 -2
  79. package/dist/lib/commitment-attention-copy.d.ts +96 -0
  80. package/dist/lib/commitment-attention-copy.js +209 -0
  81. package/dist/lib/commitment-loop-status.d.ts +6 -0
  82. package/dist/lib/commitment-loop-status.js +16 -6
  83. package/dist/lib/commitments.d.ts +88 -0
  84. package/dist/lib/commitments.js +188 -0
  85. package/dist/lib/compass-body-help.d.ts +20 -0
  86. package/dist/lib/compass-body-help.js +61 -0
  87. package/dist/lib/compass-refusals.d.ts +35 -0
  88. package/dist/lib/compass-refusals.js +50 -0
  89. package/dist/lib/compasses.d.ts +80 -4
  90. package/dist/lib/compasses.js +232 -12
  91. package/dist/lib/followups.d.ts +22 -1
  92. package/dist/lib/followups.js +21 -1
  93. package/dist/lib/format.d.ts +11 -0
  94. package/dist/lib/format.js +29 -0
  95. package/dist/lib/initiatives.d.ts +9 -2
  96. package/dist/lib/initiatives.js +13 -2
  97. package/dist/lib/machines.d.ts +14 -1
  98. package/dist/lib/machines.js +24 -0
  99. package/dist/lib/northstars.d.ts +158 -24
  100. package/dist/lib/northstars.js +538 -26
  101. package/dist/lib/proposal-decision-command.js +21 -1
  102. package/dist/lib/proposals.d.ts +26 -1
  103. package/dist/lib/proposals.js +163 -0
  104. package/dist/lib/rate-limit-retry.d.ts +5 -0
  105. package/dist/lib/rate-limit-retry.js +19 -0
  106. package/dist/lib/roles.d.ts +1 -1
  107. package/dist/lib/space-charter.js +9 -0
  108. package/dist/lib/task-asset-upload.js +1 -2
  109. package/dist/lib/triggers.d.ts +1 -1
  110. package/dist/lib/triggers.js +11 -3
  111. package/dist/node_modules/@skrr-ai/data-provider/index.js +6504 -6493
  112. package/oclif.manifest.json +350 -34
  113. package/package.json +4 -4
@@ -31699,8 +31699,9 @@
31699
31699
  "<%= config.bin %> commitments create --agent <agent-id> --title \"SLA\" --outcome \"p95 under 200ms\" --criterion \"p95 latency confirmed\" --evaluator metric --measure <measure-id>",
31700
31700
  "<%= config.bin %> commitments create --agent <agent-id> --title \"AWS cost watch\" --outcome \"Cost regressions are investigated\" --agent-directive-file ./aws-cost-policy.md",
31701
31701
  "<%= config.bin %> commitments create --from-json commitment.json --json",
31702
- "# Replace <agent-id> with your Agent ID; this creates a draft, not a running loop.\n# In \"policy\", 0 is a ZERO budget (nothing may run or be spent), not \"no limit\".\n# To remove a limit set it to null (e.g. \"maxCostUsdPerDay\": null) or leave the key out.\ncat > commitment.json <<'JSON'\n{\n \"agentId\": \"<agent-id>\",\n \"title\": \"Daily queue review\",\n \"status\": \"draft\",\n \"target\": { \"outcome\": \"Queue changes are reviewed\" },\n \"cadence\": { \"mode\": \"interval\", \"intervalMs\": 3600000, \"activeHours\": { \"start\": \"09:00\", \"end\": \"22:00\" }, \"daysOfWeek\": [\"mon\", \"tue\", \"wed\", \"thu\", \"fri\"], \"timezone\": \"Asia/Shanghai\" },\n \"watchedSources\": [{\n \"source\": \"agent_run\",\n \"config\": { \"keys\": [\n { \"key\": \"queue.depth\", \"label\": \"Queue depth\", \"requireArtifact\": true,\n \"changeRule\": { \"mode\": \"numeric_delta\", \"minDelta\": 2, \"absoluteFloor\": 1 } },\n \"queue.status\"\n ] }\n }],\n \"policy\": {\n \"maxUserNudgesPerDay\": 0,\n \"executionBudget\": { \"maxRunsPerDay\": 0, \"maxObservationRunsPerDay\": 0, \"maxCostUsdPerDay\": 0 }\n }\n}\nJSON\n<%= config.bin %> commitments preflight --from-json commitment.json\n<%= config.bin %> commitments create --from-json commitment.json --json",
31703
- "<%= config.bin %> commitments create --agent <agent-id> --title \"Keep CI healthy\" --outcome \"Failed checks are repaired\" --watch github --github-event check_run_failed --event-driven --delivery draft-pr --repo owner/repo --base main --status draft"
31702
+ "# Replace <agent-id> with your Agent ID; this creates a draft, not a running loop.\n# In \"policy\", 0 is a ZERO budget (nothing may run or be spent), not \"no limit\".\n# To remove a limit set it to null (e.g. \"maxCostUsdPerDay\": null) or leave the key out.\ncat > commitment.json <<'JSON'\n{\n \"agentId\": \"<agent-id>\",\n \"title\": \"Daily queue review\",\n \"status\": \"draft\",\n \"target\": { \"outcome\": \"Queue changes are reviewed\" },\n \"cadence\": { \"mode\": \"interval\", \"intervalMs\": 3600000, \"activeHours\": { \"start\": \"09:00\", \"end\": \"22:00\" }, \"daysOfWeek\": [\"mon\", \"tue\", \"wed\", \"thu\", \"fri\"], \"timezone\": \"Asia/Shanghai\" },\n \"watchedSources\": [{\n \"source\": \"agent_run\",\n \"config\": { \"keys\": [\n { \"key\": \"queue.depth\", \"label\": \"Queue depth\", \"requireArtifact\": true,\n \"changeRule\": { \"mode\": \"numeric_delta\", \"minDelta\": 2, \"absoluteFloor\": 1 } },\n \"queue.status\"\n ] }\n }],\n \"policy\": {\n \"maxUserNudgesPerDay\": 0,\n \"quietHours\": { \"enabled\": true, \"start\": \"22:00\", \"end\": \"07:00\", \"timezone\": \"Asia/Shanghai\" },\n \"executionBudget\": { \"maxRunsPerDay\": 0, \"maxObservationRunsPerDay\": 0, \"maxCostUsdPerDay\": 0 }\n }\n}\nJSON\n<%= config.bin %> commitments preflight --from-json commitment.json\n<%= config.bin %> commitments create --from-json commitment.json --json",
31703
+ "<%= config.bin %> commitments create --agent <agent-id> --title \"Keep CI healthy\" --outcome \"Failed checks are repaired\" --watch github --github-event check_run_failed --event-driven --delivery draft-pr --repo owner/repo --base main --status draft",
31704
+ "# Govern a Commitment with a Compass. There is no flag: \"compassId\" goes in the --from-json body.\n# It must be an active Compass of the same Agent (a draft may name an archived one).\n# The binding cannot be changed later: bind a successor Commitment to another Compass instead.\ncat > commitment.json <<'JSON'\n{\n \"agentId\": \"<agent-id>\",\n \"compassId\": \"<compass-id>\",\n \"title\": \"Keep p99 under 300 ms\",\n \"status\": \"draft\",\n \"target\": { \"outcome\": \"p99 API latency stays under 300 ms\" }\n}\nJSON\n<%= config.bin %> commitments create --from-json commitment.json --json\n<%= config.bin %> compass commitments <compass-id> --agent <agent-id> # lists it once it is bound"
31704
31705
  ],
31705
31706
  "flags": {
31706
31707
  "bare": {
@@ -31743,7 +31744,7 @@
31743
31744
  "type": "boolean"
31744
31745
  },
31745
31746
  "from-json": {
31746
- "description": "JSON file (or \"-\" for stdin) for fields not exposed as flags. See examples below for daily times, named agent_run keys and zero budgets.",
31747
+ "description": "JSON file (or \"-\" for stdin) for fields not exposed as flags. See examples below for daily times, named agent_run keys, zero budgets and \"compassId\" (binds a Compass; fixed at creation). Quiet hours (no messages to you) go in the JSON as policy.quietHours: {\"enabled\":true,\"start\":\"22:00\",\"end\":\"07:00\",\"timezone\":\"America/Los_Angeles\"}. Times are 24-hour HH:MM (00:00-23:59); the window may cross midnight and its end is not inside it; timezone is an IANA name, and when omitted it is UTC, not your local zone. policy.executionBudget.allowedEventSources limits which event sources may wake the Commitment: an empty or missing list allows every source (it is not \"none\"); name sources to restrict it.",
31747
31748
  "name": "from-json",
31748
31749
  "hasDynamicHelp": false,
31749
31750
  "multiple": false,
@@ -32018,7 +32019,7 @@
32018
32019
  "type": "option"
32019
32020
  },
32020
32021
  "max-nudges": {
32021
- "description": "Max user nudges per day (0..20)",
32022
+ "description": "Daily limit on messages that interrupt you: a whole number from 0 up (0 mutes it: it never contacts you) or \"unlimited\" to remove the limit. Left unset it is unlimited",
32022
32023
  "name": "max-nudges",
32023
32024
  "hasDynamicHelp": false,
32024
32025
  "multiple": false,
@@ -38114,14 +38115,16 @@
38114
38115
  "required": true
38115
38116
  }
38116
38117
  },
38117
- "description": "Update a commitment's contract (title, target, cadence, sources). A cadence is manual, an interval or daily clock times; activeHours and daysOfWeek in --from-json select hours and weekdays. No holiday, business-day or trading-calendar fields",
38118
+ "description": "Update a commitment's contract (title, target, cadence, sources). A cadence is manual, an interval or daily clock times; activeHours and daysOfWeek in --from-json select hours and weekdays. No holiday, business-day or trading-calendar fields. The Compass a commitment is bound to (\"compassId\" in the create body) cannot be changed: create a successor commitment instead",
38118
38119
  "examples": [
38119
38120
  "<%= config.bin %> commitments update <commitment-id> --cadence 12h",
38120
38121
  "<%= config.bin %> commitments update <commitment-id> --title \"Ship v2 (Q3)\" --outcome \"v2 is live for all users\"",
38121
38122
  "<%= config.bin %> commitments update <commitment-id> --watch tasks --watch github",
38122
38123
  "<%= config.bin %> commitments update <commitment-id> --criterion \"signups confirmed\" --evaluator metric --measure <measure-id>",
38123
38124
  "<%= config.bin %> commitments update <commitment-id> --agent-directive-file ./review-policy.md",
38124
- "# Read the current contract and use its version for --if-version.\n<%= config.bin %> commitments show <commitment-id> --json\ncat > commitment-patch.json <<'JSON'\n{\n \"cadence\": { \"mode\": \"interval\", \"intervalMs\": 3600000, \"activeHours\": { \"start\": \"09:00\", \"end\": \"22:00\" }, \"daysOfWeek\": [\"mon\", \"tue\", \"wed\", \"thu\", \"fri\"], \"timezone\": \"Asia/Shanghai\" },\n \"policy\": { \"executionBudget\": { \"maxObservationRunsPerDay\": 0 } }\n}\nJSON\n<%= config.bin %> commitments update <commitment-id> --from-json commitment-patch.json --if-version <observed-version> --json"
38125
+ "# Nudges: how many times a day it may interrupt you. 0 mutes it; \"unlimited\" removes the limit.\n<%= config.bin %> commitments update <commitment-id> --max-nudges 2\n<%= config.bin %> commitments update <commitment-id> --max-nudges unlimited",
38126
+ "# Read the current contract and use its version for --if-version.\n<%= config.bin %> commitments show <commitment-id> --json\ncat > commitment-patch.json <<'JSON'\n{\n \"cadence\": { \"mode\": \"interval\", \"intervalMs\": 3600000, \"activeHours\": { \"start\": \"09:00\", \"end\": \"22:00\" }, \"daysOfWeek\": [\"mon\", \"tue\", \"wed\", \"thu\", \"fri\"], \"timezone\": \"Asia/Shanghai\" },\n \"policy\": { \"executionBudget\": { \"maxObservationRunsPerDay\": 0 } }\n}\nJSON\n<%= config.bin %> commitments update <commitment-id> --from-json commitment-patch.json --if-version <observed-version> --json",
38127
+ "# Quiet hours: no messages to you from 22:00 to 07:00. Times are HH:MM (00:00-23:59); without a timezone UTC is used.\ncat > quiet-hours.json <<'JSON'\n{ \"policy\": { \"quietHours\": { \"enabled\": true, \"start\": \"22:00\", \"end\": \"07:00\", \"timezone\": \"America/Los_Angeles\" } } }\nJSON\n<%= config.bin %> commitments update <commitment-id> --from-json quiet-hours.json"
38125
38128
  ],
38126
38129
  "flags": {
38127
38130
  "bare": {
@@ -38171,7 +38174,7 @@
38171
38174
  "type": "boolean"
38172
38175
  },
38173
38176
  "from-json": {
38174
- "description": "JSON patch file (or \"-\" for stdin). See examples below. JSON cadence and watchedSources replace those fields; policy is deep-merged.",
38177
+ "description": "JSON patch file (or \"-\" for stdin). See examples below. JSON cadence and watchedSources replace those fields; policy is deep-merged. Quiet hours (no messages to you) go in the JSON as policy.quietHours: {\"enabled\":true,\"start\":\"22:00\",\"end\":\"07:00\",\"timezone\":\"America/Los_Angeles\"}. Times are 24-hour HH:MM (00:00-23:59); the window may cross midnight and its end is not inside it; timezone is an IANA name, and when omitted it is UTC, not your local zone. policy.executionBudget.allowedEventSources limits which event sources may wake the Commitment: an empty or missing list allows every source (it is not \"none\"); name sources to restrict it.",
38175
38178
  "name": "from-json",
38176
38179
  "hasDynamicHelp": false,
38177
38180
  "multiple": false,
@@ -38368,6 +38371,13 @@
38368
38371
  ],
38369
38372
  "type": "option"
38370
38373
  },
38374
+ "max-nudges": {
38375
+ "description": "Daily limit on messages that interrupt you: a whole number from 0 up (0 mutes it: it never contacts you) or \"unlimited\" to remove the limit. Left unset it is unlimited",
38376
+ "name": "max-nudges",
38377
+ "hasDynamicHelp": false,
38378
+ "multiple": false,
38379
+ "type": "option"
38380
+ },
38371
38381
  "max-concurrent-runs": {
38372
38382
  "description": "Set 1..100, or \"unlimited\" to remove the owner cap. Finite values require --concurrency-reason.",
38373
38383
  "name": "max-concurrent-runs",
@@ -38727,11 +38737,12 @@
38727
38737
  "compass:create": {
38728
38738
  "aliases": [],
38729
38739
  "args": {},
38730
- "description": "Create a compass for an agent",
38740
+ "description": "Create a compass for an agent.\n\n--json-body takes the API body as a JSON file; the flags are merged over it.\nEach line below names one field by its full path:\ntitle, domain, reason: strings (reason is what the revision ledger shows)\ninvariantTargets[]: what the agent keeps true\ninvariantTargets[]: AT MOST 25: more is refused with the count sent\ninvariantTargets[].id: optional, unique in the list (a repeat is refused)\ninvariantTargets[].id: default invariant_<position>\ninvariantTargets[].description: required on create\ninvariantTargets[].domainKind: optional; leave it off ONE target\ninvariantTargets[].domainKind: the target without one is the general fallback\ninvariantTargets[].maintainedState[]: list of strings\ninvariantTargets[].successMetrics[]: list of strings\ninvariantTargets[].boundaries[]: list of strings\ninvariantTargets[].cadence, .escalation, .stateMonitor: advanced\ninvariantTargets[].learnedTactics[]: advanced; see docs/cli/SKRR_COMPASS.md\nautonomyDefaults.mode: off | suggestions_only | ask_first | auto_run_limited\nautonomyDefaults.mode: auto_run (short forms: suggest, auto)\nautonomyDefaults.quietHours = {\"enabled\":true,\"start\":\"22:00\",\"end\":\"07:00\"}\nautonomyDefaults.quietHours.start, .end: HH:MM, 00:00 to 23:59\nautonomyDefaults.quietHours: start must differ from end; refused otherwise\nautonomyDefaults.quietHours.timezone: an IANA zone, e.g. America/New_York\ncommunicationDefaults: mode, destination, fallbackDestination, quietHours\ncommunicationDefaults.allowedDestinations[]: list of strings\ncommunicationDefaults.requireApprovalRiskLevels[]: list of strings\ncommunicationDefaults: any other key is stored as a note and never read\nrules[]: owner-enforced, Agent owner only; see docs/cli/SKRR_COMPASS.md\n\nTo govern a Commitment with this compass, put \"compassId\" in the Commitment's --from-json create body (see: commitments create --help). The binding is fixed at creation.",
38731
38741
  "examples": [
38732
38742
  "<%= config.bin %> compass create --agent agent_abc --title \"Production reliability\" --domain reliability",
38733
38743
  "<%= config.bin %> compass create --agent agent_abc --title \"FinOps\" --invariant \"Cloud spend stays under $10k/mo\"",
38734
- "<%= config.bin %> compass create --agent agent_abc --json-body ./compass.json"
38744
+ "<%= config.bin %> compass create --agent agent_abc --json-body ./compass.json",
38745
+ "# compass.json\n{\n \"title\": \"Production reliability\",\n \"invariantTargets\": [\n { \"id\": \"api-latency\", \"domainKind\": \"reliability\", \"description\": \"p99 API latency stays under 300 ms\" },\n { \"id\": \"general\", \"description\": \"Nothing the owner has not seen ships on a Friday\" }\n ],\n \"autonomyDefaults\": {\n \"mode\": \"ask_first\",\n \"quietHours\": { \"enabled\": true, \"start\": \"22:00\", \"end\": \"07:00\", \"timezone\": \"America/New_York\" }\n }\n}\n<%= config.bin %> compass create --agent agent_abc --json-body compass.json"
38735
38746
  ],
38736
38747
  "flags": {
38737
38748
  "bare": {
@@ -38796,14 +38807,14 @@
38796
38807
  "type": "option"
38797
38808
  },
38798
38809
  "invariant": {
38799
- "description": "Invariant target description (repeatable). The state the agent keeps true.",
38810
+ "description": "Invariant target description (repeatable, at most 25). The state the agent keeps true. Each gets the id invariant_<position> and no domainKind: use --json-body for ids and domains.",
38800
38811
  "name": "invariant",
38801
38812
  "hasDynamicHelp": false,
38802
38813
  "multiple": true,
38803
38814
  "type": "option"
38804
38815
  },
38805
38816
  "json-body": {
38806
- "description": "Path to a JSON file with the full body (merged under the flags)",
38817
+ "description": "Path to a JSON file with the full body (merged under the flags). Field names and limits are listed in the description above.",
38807
38818
  "name": "json-body",
38808
38819
  "hasDynamicHelp": false,
38809
38820
  "multiple": false,
@@ -38838,6 +38849,10 @@
38838
38849
  }
38839
38850
  },
38840
38851
  "description": "Read a Compass policy revision, effective defaults and field provenance",
38852
+ "examples": [
38853
+ "<%= config.bin %> compass effective-policy agch_abc123 --agent agent_xyz",
38854
+ "<%= config.bin %> compass effective-policy agch_abc123 --agent agent_xyz --json"
38855
+ ],
38841
38856
  "flags": {
38842
38857
  "bare": {
38843
38858
  "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
@@ -39010,7 +39025,8 @@
39010
39025
  "description": "Restore an earlier compass version (as a NEW forward revision)",
39011
39026
  "examples": [
39012
39027
  "<%= config.bin %> compass revert agch_abc --agent agent_xyz --to-version 3",
39013
- "<%= config.bin %> compass revert agch_abc --agent agent_xyz --to-version 3 --reason \"new SLO was wrong\""
39028
+ "<%= config.bin %> compass revert agch_abc --agent agent_xyz --to-version 3 --reason \"new SLO was wrong\"",
39029
+ "<%= config.bin %> compass revert agch_abc --agent agent_xyz --to-version 3 --expected-version 9"
39014
39030
  ],
39015
39031
  "flags": {
39016
39032
  "bare": {
@@ -39074,6 +39090,13 @@
39074
39090
  "hasDynamicHelp": false,
39075
39091
  "multiple": false,
39076
39092
  "type": "option"
39093
+ },
39094
+ "expected-version": {
39095
+ "description": "Compass version this revert is based on; it is refused if the compass moved. Defaults to the version read at the start of this command.",
39096
+ "name": "expected-version",
39097
+ "hasDynamicHelp": false,
39098
+ "multiple": false,
39099
+ "type": "option"
39077
39100
  }
39078
39101
  },
39079
39102
  "hasDynamicHelp": false,
@@ -39157,7 +39180,7 @@
39157
39180
  "type": "option"
39158
39181
  },
39159
39182
  "limit": {
39160
- "description": "Max revisions (1..100)",
39183
+ "description": "Max revisions (1..100, default 20); newest first",
39161
39184
  "name": "limit",
39162
39185
  "hasDynamicHelp": false,
39163
39186
  "multiple": false,
@@ -39272,7 +39295,7 @@
39272
39295
  "required": true
39273
39296
  }
39274
39297
  },
39275
- "description": "Append a learned tactic to a compass",
39298
+ "description": "Record a learned tactic on a compass (appends, or updates the tactic with the same --id)",
39276
39299
  "examples": [
39277
39300
  "<%= config.bin %> compass tactic agch_abc --agent agent_xyz --description \"Roll back before paging on a deploy regression\""
39278
39301
  ],
@@ -39333,7 +39356,7 @@
39333
39356
  "type": "option"
39334
39357
  },
39335
39358
  "id": {
39336
- "description": "Stable tactic ID (updates that entry instead of adding one)",
39359
+ "description": "Stable tactic ID. A known ID with a different description updates that entry; with the same description nothing is written.",
39337
39360
  "name": "id",
39338
39361
  "hasDynamicHelp": false,
39339
39362
  "multiple": false,
@@ -39462,7 +39485,7 @@
39462
39485
  "required": true
39463
39486
  }
39464
39487
  },
39465
- "description": "Update a compass (bumps the version, writes a revision)",
39488
+ "description": "Update a compass (bumps the version, writes a revision).\n\n--json-body takes the API body as a JSON file; the flags are merged over it.\nEach line below names one field by its full path:\ntitle, domain, reason: strings (reason is what the revision ledger shows)\ninvariantTargets[]: what the agent keeps true\ninvariantTargets[]: AT MOST 25: more is refused with the count sent\ninvariantTargets[].id: optional, unique in the list (a repeat is refused)\ninvariantTargets[].id: default invariant_<position>\ninvariantTargets[].description: required on create\ninvariantTargets[].domainKind: optional; leave it off ONE target\ninvariantTargets[].domainKind: the target without one is the general fallback\ninvariantTargets[].maintainedState[]: list of strings\ninvariantTargets[].successMetrics[]: list of strings\ninvariantTargets[].boundaries[]: list of strings\ninvariantTargets[].cadence, .escalation, .stateMonitor: advanced\ninvariantTargets[].learnedTactics[]: advanced; see docs/cli/SKRR_COMPASS.md\nautonomyDefaults.mode: off | suggestions_only | ask_first | auto_run_limited\nautonomyDefaults.mode: auto_run (short forms: suggest, auto)\nautonomyDefaults.quietHours = {\"enabled\":true,\"start\":\"22:00\",\"end\":\"07:00\"}\nautonomyDefaults.quietHours.start, .end: HH:MM, 00:00 to 23:59\nautonomyDefaults.quietHours: start must differ from end; refused otherwise\nautonomyDefaults.quietHours.timezone: an IANA zone, e.g. America/New_York\ncommunicationDefaults: mode, destination, fallbackDestination, quietHours\ncommunicationDefaults.allowedDestinations[]: list of strings\ncommunicationDefaults.requireApprovalRiskLevels[]: list of strings\ncommunicationDefaults: any other key is stored as a note and never read\nrules[]: owner-enforced, Agent owner only; see docs/cli/SKRR_COMPASS.md\n\nOn update, invariantTargets (and --invariant) REPLACE the whole list, so send every target you want to keep; identity, scope, autonomyDefaults and communicationDefaults merge field by field onto what is stored; rules replace the list. An archived compass stays archived unless you pass --status active.",
39466
39489
  "examples": [
39467
39490
  "<%= config.bin %> compass update agch_abc --agent agent_xyz --title \"Reliability & cost\"",
39468
39491
  "<%= config.bin %> compass update agch_abc --agent agent_xyz --invariant \"p99 under 300ms\" --reason \"new SLO\"",
@@ -39543,7 +39566,7 @@
39543
39566
  "type": "option"
39544
39567
  },
39545
39568
  "invariant": {
39546
- "description": "Invariant target description (repeatable; REPLACES the list)",
39569
+ "description": "Invariant target description (repeatable, at most 25; REPLACES the list). Each gets the id invariant_<position> and no domainKind, so it drops the ids and domains of the targets it replaces: use --json-body to keep them.",
39547
39570
  "name": "invariant",
39548
39571
  "hasDynamicHelp": false,
39549
39572
  "multiple": true,
@@ -39564,7 +39587,7 @@
39564
39587
  "type": "option"
39565
39588
  },
39566
39589
  "json-body": {
39567
- "description": "Path to a JSON file with the full body",
39590
+ "description": "Path to a JSON file with the body (merged under the flags). Field names and limits are listed in the description above.",
39568
39591
  "name": "json-body",
39569
39592
  "hasDynamicHelp": false,
39570
39593
  "multiple": false,
@@ -55656,8 +55679,12 @@
55656
55679
  "approved",
55657
55680
  "executing",
55658
55681
  "waiting",
55659
- "completed",
55682
+ "followed_up",
55683
+ "reopened",
55684
+ "resolved",
55660
55685
  "dismissed",
55686
+ "snoozed",
55687
+ "expired",
55661
55688
  "failed"
55662
55689
  ],
55663
55690
  "type": "option"
@@ -68688,11 +68715,14 @@
68688
68715
  "required": true
68689
68716
  }
68690
68717
  },
68691
- "description": "Rename a machine, or set its description and tags",
68718
+ "description": "Rename a machine, set its description, tags and icon",
68692
68719
  "examples": [
68693
68720
  "<%= config.bin %> machines update 03548116 --name \"Work laptop\"",
68694
68721
  "<%= config.bin %> machines update 03548116 --tag personal --tag macbook",
68695
- "<%= config.bin %> machines update 03548116 --clear-tags"
68722
+ "<%= config.bin %> machines update 03548116 --clear-tags",
68723
+ "<%= config.bin %> machines update 03548116 --icon laptop",
68724
+ "<%= config.bin %> machines update 03548116 --icon none",
68725
+ "<%= config.bin %> machines update 03548116 --icon-file ./mac.png"
68696
68726
  ],
68697
68727
  "flags": {
68698
68728
  "bare": {
@@ -68763,6 +68793,26 @@
68763
68793
  "name": "clear-tags",
68764
68794
  "allowNo": false,
68765
68795
  "type": "boolean"
68796
+ },
68797
+ "icon": {
68798
+ "description": "Icon for this machine: monitor, laptop, server, cpu, hard-drive, cloud, terminal, database, globe, home, building, briefcase, rocket, gamepad, zap, shield, box, container, router, smartphone. \"none\" goes back to the default.",
68799
+ "exclusive": [
68800
+ "icon-file"
68801
+ ],
68802
+ "name": "icon",
68803
+ "hasDynamicHelp": false,
68804
+ "multiple": false,
68805
+ "type": "option"
68806
+ },
68807
+ "icon-file": {
68808
+ "description": "Use your own image as the icon (.png, .jpg, .jpeg, .webp or .gif). It is resized to a square.",
68809
+ "exclusive": [
68810
+ "icon"
68811
+ ],
68812
+ "name": "icon-file",
68813
+ "hasDynamicHelp": false,
68814
+ "multiple": false,
68815
+ "type": "option"
68766
68816
  }
68767
68817
  },
68768
68818
  "hasDynamicHelp": false,
@@ -75961,7 +76011,7 @@
75961
76011
  "type": "option"
75962
76012
  },
75963
76013
  "max-active": {
75964
- "description": "Soft cap on simultaneously active commitments",
76014
+ "description": "Soft cap on simultaneously active commitments (0 = no cap)",
75965
76015
  "name": "max-active",
75966
76016
  "hasDynamicHelp": false,
75967
76017
  "multiple": false,
@@ -76114,7 +76164,9 @@
76114
76164
  "<%= config.bin %> northstars governance configure nst_abc123 --analysis agent_assisted --reviewer-agent agent_xyz",
76115
76165
  "<%= config.bin %> northstars governance configure nst_abc123 --execution approval",
76116
76166
  "<%= config.bin %> northstars governance configure nst_abc123 --execution bounded_auto --allow request_commitment_check --max-auto-per-day 3",
76117
- "<%= config.bin %> northstars governance configure nst_abc123 --protect cmt_1 --protect cmt_2"
76167
+ "<%= config.bin %> northstars governance configure nst_abc123 --protect cmt_1 --protect cmt_2",
76168
+ "<%= config.bin %> northstars governance configure nst_abc123 --clear-protected",
76169
+ "<%= config.bin %> northstars governance configure nst_abc123 --clear-max-runs-per-day"
76118
76170
  ],
76119
76171
  "flags": {
76120
76172
  "bare": {
@@ -76168,7 +76220,7 @@
76168
76220
  "type": "option"
76169
76221
  },
76170
76222
  "execution": {
76171
- "description": "How much write authority a review outcome carries",
76223
+ "description": "What happens to management intents: advisory records them (none is applied), approval asks first, bounded_auto applies a narrow set. In every mode a review still writes each linked active commitment's allocation (cadence band, run share); it never pauses, resumes, reprioritizes or checks in advisory",
76172
76224
  "name": "execution",
76173
76225
  "hasDynamicHelp": false,
76174
76226
  "multiple": false,
@@ -76226,12 +76278,24 @@
76226
76278
  "type": "option"
76227
76279
  },
76228
76280
  "protect": {
76229
- "description": "Commitment the governor may never touch (repeatable; replaces the current list)",
76281
+ "description": "Commitment the governor may never touch (repeatable; replaces the current list; --clear-protected empties it)",
76282
+ "exclusive": [
76283
+ "clear-protected"
76284
+ ],
76230
76285
  "name": "protect",
76231
76286
  "hasDynamicHelp": false,
76232
76287
  "multiple": true,
76233
76288
  "type": "option"
76234
76289
  },
76290
+ "clear-protected": {
76291
+ "description": "Remove every protected commitment (the list becomes empty)",
76292
+ "exclusive": [
76293
+ "protect"
76294
+ ],
76295
+ "name": "clear-protected",
76296
+ "allowNo": false,
76297
+ "type": "boolean"
76298
+ },
76235
76299
  "max-intents-per-review": {
76236
76300
  "description": "Cap on intents per review",
76237
76301
  "name": "max-intents-per-review",
@@ -76283,25 +76347,61 @@
76283
76347
  },
76284
76348
  "max-observation-runs-per-day": {
76285
76349
  "description": "Opt-in portfolio observation runs per UTC day",
76350
+ "exclusive": [
76351
+ "clear-max-observation-runs-per-day"
76352
+ ],
76286
76353
  "name": "max-observation-runs-per-day",
76287
76354
  "hasDynamicHelp": false,
76288
76355
  "multiple": false,
76289
76356
  "type": "option"
76290
76357
  },
76358
+ "clear-max-observation-runs-per-day": {
76359
+ "description": "Un-set the observation ceiling (0 means never look; un-set means no ceiling)",
76360
+ "exclusive": [
76361
+ "max-observation-runs-per-day"
76362
+ ],
76363
+ "name": "clear-max-observation-runs-per-day",
76364
+ "allowNo": false,
76365
+ "type": "boolean"
76366
+ },
76291
76367
  "max-runs-per-day": {
76292
76368
  "description": "Portfolio-wide action run budget (execution, NOT attention)",
76369
+ "exclusive": [
76370
+ "clear-max-runs-per-day"
76371
+ ],
76293
76372
  "name": "max-runs-per-day",
76294
76373
  "hasDynamicHelp": false,
76295
76374
  "multiple": false,
76296
76375
  "type": "option"
76297
76376
  },
76377
+ "clear-max-runs-per-day": {
76378
+ "description": "Un-set the action run budget (0 is a setting, not un-set)",
76379
+ "exclusive": [
76380
+ "max-runs-per-day"
76381
+ ],
76382
+ "name": "clear-max-runs-per-day",
76383
+ "allowNo": false,
76384
+ "type": "boolean"
76385
+ },
76298
76386
  "max-concurrent-runs": {
76299
- "description": "Portfolio concurrency cap",
76387
+ "description": "Portfolio concurrency cap (recorded, not yet enforced: nothing limits concurrent runs yet)",
76388
+ "exclusive": [
76389
+ "clear-max-concurrent-runs"
76390
+ ],
76300
76391
  "name": "max-concurrent-runs",
76301
76392
  "hasDynamicHelp": false,
76302
76393
  "multiple": false,
76303
76394
  "type": "option"
76304
76395
  },
76396
+ "clear-max-concurrent-runs": {
76397
+ "description": "Un-set the concurrency cap",
76398
+ "exclusive": [
76399
+ "max-concurrent-runs"
76400
+ ],
76401
+ "name": "clear-max-concurrent-runs",
76402
+ "allowNo": false,
76403
+ "type": "boolean"
76404
+ },
76305
76405
  "critical-reserve": {
76306
76406
  "description": "Fraction of the execution budget held for critical commitments (0..1)",
76307
76407
  "name": "critical-reserve",
@@ -76403,6 +76503,110 @@
76403
76503
  "show.js"
76404
76504
  ]
76405
76505
  },
76506
+ "northstars:intents": {
76507
+ "aliases": [],
76508
+ "args": {
76509
+ "northstarId": {
76510
+ "description": "Northstar ID (omit to see the subcommands)",
76511
+ "name": "northstarId",
76512
+ "required": false
76513
+ }
76514
+ },
76515
+ "description": "List northstar management intents; subcommands: list, decide (`intents <id>` is `intents list <id>`)",
76516
+ "examples": [
76517
+ "<%= config.bin %> northstars intents nst_abc123",
76518
+ "<%= config.bin %> northstars intents nst_abc123 --status awaiting_approval",
76519
+ "<%= config.bin %> northstars intents list nst_abc123",
76520
+ "<%= config.bin %> northstars intents decide nst_abc123 nsi_xyz --approve"
76521
+ ],
76522
+ "flags": {
76523
+ "bare": {
76524
+ "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
76525
+ "name": "bare",
76526
+ "allowNo": false,
76527
+ "type": "boolean"
76528
+ },
76529
+ "token": {
76530
+ "description": "Bearer token for this invocation (debugging/impersonation). Overrides env and stored creds.",
76531
+ "name": "token",
76532
+ "hasDynamicHelp": false,
76533
+ "multiple": false,
76534
+ "type": "option"
76535
+ },
76536
+ "workspace": {
76537
+ "description": "Workspace ID for workspace-scoped requests (also sets X-Workspace-Id).",
76538
+ "name": "workspace",
76539
+ "hasDynamicHelp": false,
76540
+ "multiple": false,
76541
+ "type": "option"
76542
+ },
76543
+ "profile": {
76544
+ "description": "Which stored session to use. Each profile keeps its own credential and deployment, so signing into one does not sign you out of another. Also OVERSKY_PROFILE. List them with `profiles list`.",
76545
+ "name": "profile",
76546
+ "hasDynamicHelp": false,
76547
+ "multiple": false,
76548
+ "type": "option"
76549
+ },
76550
+ "raw": {
76551
+ "description": "With --json, keep the Mongo storage fields (_id next to id, __v) that the CLI otherwise strips. Also OVERSKY_CLI_RAW=1.",
76552
+ "name": "raw",
76553
+ "allowNo": false,
76554
+ "type": "boolean"
76555
+ },
76556
+ "json": {
76557
+ "description": "Output as JSON",
76558
+ "name": "json",
76559
+ "allowNo": false,
76560
+ "type": "boolean"
76561
+ },
76562
+ "status": {
76563
+ "description": "Filter by verdict",
76564
+ "name": "status",
76565
+ "hasDynamicHelp": false,
76566
+ "multiple": false,
76567
+ "options": [
76568
+ "advisory",
76569
+ "awaiting_approval",
76570
+ "approved",
76571
+ "applying",
76572
+ "applied",
76573
+ "rejected",
76574
+ "invalidated"
76575
+ ],
76576
+ "type": "option"
76577
+ },
76578
+ "limit": {
76579
+ "description": "Max intents (1..500)",
76580
+ "name": "limit",
76581
+ "hasDynamicHelp": false,
76582
+ "multiple": false,
76583
+ "type": "option"
76584
+ },
76585
+ "wide": {
76586
+ "description": "Do not clip the WHY column, and keep the machine code beside the reason as [code]",
76587
+ "name": "wide",
76588
+ "allowNo": false,
76589
+ "type": "boolean"
76590
+ }
76591
+ },
76592
+ "hasDynamicHelp": false,
76593
+ "hiddenAliases": [],
76594
+ "id": "northstars:intents",
76595
+ "pluginAlias": "@skrr-ai/cli",
76596
+ "pluginName": "@skrr-ai/cli",
76597
+ "pluginType": "core",
76598
+ "strict": true,
76599
+ "enableJsonFlag": false,
76600
+ "autonomousCredentialPolicy": "delegated",
76601
+ "resolveSpaceFlag": true,
76602
+ "isESM": false,
76603
+ "relativePath": [
76604
+ "dist",
76605
+ "commands",
76606
+ "northstars",
76607
+ "intents.js"
76608
+ ]
76609
+ },
76406
76610
  "northstars:intents:decide": {
76407
76611
  "aliases": [],
76408
76612
  "args": {
@@ -76518,9 +76722,9 @@
76518
76722
  },
76519
76723
  "description": "List northstar management intents (default: everything recent)",
76520
76724
  "examples": [
76521
- "<%= config.bin %> northstars intents nst_abc123",
76522
- "<%= config.bin %> northstars intents nst_abc123 --status awaiting_approval",
76523
- "<%= config.bin %> northstars intents nst_abc123 --status applied --json"
76725
+ "<%= config.bin %> northstars intents list nst_abc123",
76726
+ "<%= config.bin %> northstars intents list nst_abc123 --status awaiting_approval",
76727
+ "<%= config.bin %> northstars intents list nst_abc123 --status applied --json"
76524
76728
  ],
76525
76729
  "flags": {
76526
76730
  "bare": {
@@ -76584,6 +76788,12 @@
76584
76788
  "hasDynamicHelp": false,
76585
76789
  "multiple": false,
76586
76790
  "type": "option"
76791
+ },
76792
+ "wide": {
76793
+ "description": "Do not clip the WHY column, and keep the machine code beside the reason as [code]",
76794
+ "name": "wide",
76795
+ "allowNo": false,
76796
+ "type": "boolean"
76587
76797
  }
76588
76798
  },
76589
76799
  "hasDynamicHelp": false,
@@ -76752,11 +76962,18 @@
76752
76962
  "type": "option"
76753
76963
  },
76754
76964
  "limit": {
76755
- "description": "Max results (1..100)",
76965
+ "description": "Max results (1..100, default 50)",
76756
76966
  "name": "limit",
76757
76967
  "hasDynamicHelp": false,
76758
76968
  "multiple": false,
76759
76969
  "type": "option"
76970
+ },
76971
+ "cursor": {
76972
+ "description": "Continue from the next_cursor a previous page returned",
76973
+ "name": "cursor",
76974
+ "hasDynamicHelp": false,
76975
+ "multiple": false,
76976
+ "type": "option"
76760
76977
  }
76761
76978
  },
76762
76979
  "hasDynamicHelp": false,
@@ -76777,6 +76994,93 @@
76777
76994
  "list.js"
76778
76995
  ]
76779
76996
  },
76997
+ "northstars:recommendations": {
76998
+ "aliases": [],
76999
+ "args": {
77000
+ "northstarId": {
77001
+ "description": "Northstar ID (omit to see the subcommands)",
77002
+ "name": "northstarId",
77003
+ "required": false
77004
+ }
77005
+ },
77006
+ "description": "List a northstar's recommendations; subcommands: list, apply, dismiss (`recommendations <id>` is `recommendations list <id>`)",
77007
+ "examples": [
77008
+ "<%= config.bin %> northstars recommendations nst_abc123",
77009
+ "<%= config.bin %> northstars recommendations nst_abc123 --status open",
77010
+ "<%= config.bin %> northstars recommendations list nst_abc123",
77011
+ "<%= config.bin %> northstars recommendations apply nst_abc123 <rec-id>"
77012
+ ],
77013
+ "flags": {
77014
+ "bare": {
77015
+ "description": "Bare mode — ignore keychain/file credential sources. Token must come from env or --token.",
77016
+ "name": "bare",
77017
+ "allowNo": false,
77018
+ "type": "boolean"
77019
+ },
77020
+ "token": {
77021
+ "description": "Bearer token for this invocation (debugging/impersonation). Overrides env and stored creds.",
77022
+ "name": "token",
77023
+ "hasDynamicHelp": false,
77024
+ "multiple": false,
77025
+ "type": "option"
77026
+ },
77027
+ "workspace": {
77028
+ "description": "Workspace ID for workspace-scoped requests (also sets X-Workspace-Id).",
77029
+ "name": "workspace",
77030
+ "hasDynamicHelp": false,
77031
+ "multiple": false,
77032
+ "type": "option"
77033
+ },
77034
+ "profile": {
77035
+ "description": "Which stored session to use. Each profile keeps its own credential and deployment, so signing into one does not sign you out of another. Also OVERSKY_PROFILE. List them with `profiles list`.",
77036
+ "name": "profile",
77037
+ "hasDynamicHelp": false,
77038
+ "multiple": false,
77039
+ "type": "option"
77040
+ },
77041
+ "raw": {
77042
+ "description": "With --json, keep the Mongo storage fields (_id next to id, __v) that the CLI otherwise strips. Also OVERSKY_CLI_RAW=1.",
77043
+ "name": "raw",
77044
+ "allowNo": false,
77045
+ "type": "boolean"
77046
+ },
77047
+ "json": {
77048
+ "description": "Output as JSON",
77049
+ "name": "json",
77050
+ "allowNo": false,
77051
+ "type": "boolean"
77052
+ },
77053
+ "status": {
77054
+ "description": "Filter by status (default: all)",
77055
+ "name": "status",
77056
+ "hasDynamicHelp": false,
77057
+ "multiple": false,
77058
+ "options": [
77059
+ "open",
77060
+ "applied",
77061
+ "dismissed"
77062
+ ],
77063
+ "type": "option"
77064
+ }
77065
+ },
77066
+ "hasDynamicHelp": false,
77067
+ "hiddenAliases": [],
77068
+ "id": "northstars:recommendations",
77069
+ "pluginAlias": "@skrr-ai/cli",
77070
+ "pluginName": "@skrr-ai/cli",
77071
+ "pluginType": "core",
77072
+ "strict": true,
77073
+ "enableJsonFlag": false,
77074
+ "autonomousCredentialPolicy": "delegated",
77075
+ "resolveSpaceFlag": true,
77076
+ "isESM": false,
77077
+ "relativePath": [
77078
+ "dist",
77079
+ "commands",
77080
+ "northstars",
77081
+ "recommendations.js"
77082
+ ]
77083
+ },
76780
77084
  "northstars:recommendations:apply": {
76781
77085
  "aliases": [],
76782
77086
  "args": {
@@ -76944,8 +77248,8 @@
76944
77248
  },
76945
77249
  "description": "List a northstar's deterministic portfolio recommendations",
76946
77250
  "examples": [
76947
- "<%= config.bin %> northstars recommendations nst_abc123",
76948
- "<%= config.bin %> northstars recommendations nst_abc123 --status open"
77251
+ "<%= config.bin %> northstars recommendations list nst_abc123",
77252
+ "<%= config.bin %> northstars recommendations list nst_abc123 --status open"
76949
77253
  ],
76950
77254
  "flags": {
76951
77255
  "bare": {
@@ -77072,6 +77376,12 @@
77072
77376
  "name": "json",
77073
77377
  "allowNo": false,
77074
77378
  "type": "boolean"
77379
+ },
77380
+ "wide": {
77381
+ "description": "Do not clip the WHY column, and keep the machine code beside the reason as [code]",
77382
+ "name": "wide",
77383
+ "allowNo": false,
77384
+ "type": "boolean"
77075
77385
  }
77076
77386
  },
77077
77387
  "hasDynamicHelp": false,
@@ -77173,6 +77483,12 @@
77173
77483
  "hasDynamicHelp": false,
77174
77484
  "multiple": false,
77175
77485
  "type": "option"
77486
+ },
77487
+ "wide": {
77488
+ "description": "Do not clip the WHY column, and keep the machine code beside the reason as [code]",
77489
+ "name": "wide",
77490
+ "allowNo": false,
77491
+ "type": "boolean"
77176
77492
  }
77177
77493
  },
77178
77494
  "hasDynamicHelp": false,
@@ -77461,7 +77777,7 @@
77461
77777
  "type": "option"
77462
77778
  },
77463
77779
  "max-active": {
77464
- "description": "Soft cap on active commitments",
77780
+ "description": "Soft cap on active commitments (0 = no cap)",
77465
77781
  "name": "max-active",
77466
77782
  "hasDynamicHelp": false,
77467
77783
  "multiple": false,
@@ -142604,5 +142920,5 @@
142604
142920
  ]
142605
142921
  }
142606
142922
  },
142607
- "version": "0.1.127"
142923
+ "version": "0.1.128"
142608
142924
  }