@maximoai/maximo-syntax-cli 0.1.45 → 0.1.46

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 (3) hide show
  1. package/README.md +1 -1
  2. package/dist/cli.mjs +34 -13
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -254,7 +254,7 @@ Maximo Syntax can run with fewer (or no) permission prompts. There are **two dif
254
254
 
255
255
  - Available when you are logged in via **Maximo AI** or **MyTabulon**.
256
256
  - Uses **Maximo Decisions 1** for one request containing a direct yes/no permission question and a policy-category question with your connected account. Your selected coding model handles the main task. Decisions is available on every MyTabulon Coding Plan tier, including Free.
257
- - Automatically approves only clear policy permission (at least 95% yes probability plus an allowed category). Category confidence alone does not measure permission. Uncertain results show a manual approval prompt when interactive approval is available; headless runs deny them. Prohibited actions remain blocked, and refusals, timeouts, and API errors never grant permission.
257
+ - Automatically approves only clear policy permission (at least 95% yes probability plus an allowed category). Category confidence alone does not measure permission. Uncertain results show a manual approval prompt when interactive approval is available; headless runs resolve on their own — allowed-category actions auto-approve, everything else is denied — so fully automatic runs never stall waiting for a human. Prohibited actions remain blocked, and refusals, timeouts, and API errors never grant permission.
258
258
  - Legacy classifier overrides remain available through `MAXIMO_SYNTAX_AUTO_MODE_MODEL` / `MAXIMO_AUTO_MODE_MODEL`.
259
259
  - **Warning:** each classified tool call is an extra API request and **consumes additional usage-pool quota** beyond the main agent.
260
260
  - Deny rules and hooks still apply. Prefer a sandbox for long unattended runs.
package/dist/cli.mjs CHANGED
@@ -124100,7 +124100,7 @@ var init_metadata = __esm(() => {
124100
124100
  isMaximoAiAuth: isMaximoAISubscriber(),
124101
124101
  version: "99.0.0",
124102
124102
  versionBase: getVersionBase(),
124103
- buildTime: "2026-10-07T22:37:37.665Z",
124103
+ buildTime: "2026-10-08T01:10:30.514Z",
124104
124104
  deploymentEnvironment: env3.detectDeploymentEnvironment(),
124105
124105
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
124106
124106
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -264588,13 +264588,33 @@ function parseDecisionsClassifierResponse(payload) {
264588
264588
  stage1MsgId: typeof payload.id === "string" ? payload.id : undefined
264589
264589
  };
264590
264590
  }
264591
- function resolveDecisionsManualApproval(pending, result, shouldAvoidPermissionPrompts) {
264591
+ function isNonInteractiveProcess() {
264592
+ try {
264593
+ const stdout = globalThis.process?.stdout;
264594
+ if (!stdout)
264595
+ return true;
264596
+ return stdout.isTTY !== true;
264597
+ } catch {
264598
+ return true;
264599
+ }
264600
+ }
264601
+ function resolveDecisionsManualApproval(pending, result, shouldAvoidPermissionPrompts, nonInteractive = isNonInteractiveProcess()) {
264592
264602
  if (result.model !== DECISIONS_CLASSIFIER_MODEL || !result.shouldBlock || !result.requiresManualApproval || result.unavailable)
264593
264603
  return;
264594
- if (shouldAvoidPermissionPrompts) {
264604
+ if (shouldAvoidPermissionPrompts || nonInteractive) {
264605
+ if (typeof result.decisionCategory === "string" && SAFE_AUTO_CATEGORIES.includes(result.decisionCategory)) {
264606
+ return {
264607
+ behavior: "allow",
264608
+ decisionReason: {
264609
+ type: "classifier",
264610
+ classifier: "auto-mode",
264611
+ reason: REASONS[result.decisionCategory]
264612
+ }
264613
+ };
264614
+ }
264595
264615
  return {
264596
264616
  behavior: "deny",
264597
- message: "Decision classifier requires manual approval; interactive prompts are unavailable in this context.",
264617
+ message: "Decision classifier could not establish clear permission; denied automatically (no approval prompt available in auto mode).",
264598
264618
  decisionReason: { type: "asyncAgent", reason: result.reason }
264599
264619
  };
264600
264620
  }
@@ -264656,7 +264676,7 @@ async function requestDecisionsClassification(options2) {
264656
264676
  options2.signal.removeEventListener("abort", abort);
264657
264677
  }
264658
264678
  }
264659
- var DECISIONS_CLASSIFIER_MODEL = "maximo-decisions-1", DECISIONS_ALLOW_THRESHOLD = 0.95, REQUEST_TIMEOUT_MS = 20000, REASONS;
264679
+ var DECISIONS_CLASSIFIER_MODEL = "maximo-decisions-1", DECISIONS_ALLOW_THRESHOLD = 0.95, REQUEST_TIMEOUT_MS = 20000, REASONS, SAFE_AUTO_CATEGORIES;
264660
264680
  var init_decisionsClassifier = __esm(() => {
264661
264681
  REASONS = {
264662
264682
  local_development: "Ordinary local development permitted by the policy",
@@ -264668,6 +264688,7 @@ var init_decisionsClassifier = __esm(() => {
264668
264688
  security_controls: "Weakening security controls blocked by the policy",
264669
264689
  unclear: "The action or its authorization is unclear; manual approval required"
264670
264690
  };
264691
+ SAFE_AUTO_CATEGORIES = ["local_development", "authorized_external"];
264671
264692
  });
264672
264693
 
264673
264694
  // text-stub:./yolo-classifier-prompts/auto_mode_system_prompt.txt
@@ -277233,7 +277254,7 @@ import { access as access3, writeFile as writeFile13 } from "fs/promises";
277233
277254
  import { homedir as homedir22 } from "os";
277234
277255
  import { join as join65 } from "path";
277235
277256
  function getCurrentRealVersion() {
277236
- return "0.1.45";
277257
+ return "0.1.46";
277237
277258
  }
277238
277259
  async function getRolloutConfig() {
277239
277260
  try {
@@ -367948,7 +367969,7 @@ function getAnthropicEnvMetadata() {
367948
367969
  function getBuildAgeMinutes() {
367949
367970
  if (false)
367950
367971
  ;
367951
- const buildTime = new Date("2026-10-07T22:37:37.665Z").getTime();
367972
+ const buildTime = new Date("2026-10-08T01:10:30.514Z").getTime();
367952
367973
  if (isNaN(buildTime))
367953
367974
  return;
367954
367975
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -434199,7 +434220,7 @@ function getRecentActivitySync() {
434199
434220
  return cachedActivity;
434200
434221
  }
434201
434222
  function getLogoDisplayData() {
434202
- const version2 = process.env.DEMO_VERSION ?? "0.1.45" ?? "99.0.0";
434223
+ const version2 = process.env.DEMO_VERSION ?? "0.1.46" ?? "99.0.0";
434203
434224
  const serverUrl = getDirectConnectServerUrl();
434204
434225
  const displayPath = process.env.DEMO_VERSION ? "/code/maximo" : getDisplayPath(getCwd());
434205
434226
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -463721,7 +463742,7 @@ var init_bridge_kick = __esm(() => {
463721
463742
  var call57 = async () => {
463722
463743
  return {
463723
463744
  type: "text",
463724
- value: `${"99.0.0"} (built ${"2026-10-07T22:37:37.665Z"})`
463745
+ value: `${"99.0.0"} (built ${"2026-10-08T01:10:30.514Z"})`
463725
463746
  };
463726
463747
  }, version2, version_default;
463727
463748
  var init_version = __esm(() => {
@@ -539711,7 +539732,7 @@ function SetupRow({ children }) {
539711
539732
  }
539712
539733
  function WelcomeV2() {
539713
539734
  const { columns } = useTerminalSize();
539714
- const version3 = "0.1.45";
539735
+ const version3 = "0.1.46";
539715
539736
  const width = Math.max(48, Math.min(columns || 92, 92));
539716
539737
  const stacked = width < OCTOPUS_COMPACT_WIDTH + 42;
539717
539738
  return /* @__PURE__ */ jsx_runtime479.jsx(ThemedBox_default, {
@@ -559671,7 +559692,7 @@ Usage: maximo --remote "your task description"`, () => gracefulShutdown(1));
559671
559692
  pendingHookMessages
559672
559693
  }, renderAndRun);
559673
559694
  }
559674
- }).version("0.1.45 (Maximo Syntax)", "-v, --version", "Output the version number");
559695
+ }).version("0.1.46 (Maximo Syntax)", "-v, --version", "Output the version number");
559675
559696
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
559676
559697
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
559677
559698
  if (canUserConfigureAdvisor()) {
@@ -560210,7 +560231,7 @@ function validateProviderEnvOrExit() {
560210
560231
  async function main2() {
560211
560232
  const args = process.argv.slice(2);
560212
560233
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
560213
- console.log(`${"0.1.45"} (Maximo Syntax)`);
560234
+ console.log(`${"0.1.46"} (Maximo Syntax)`);
560214
560235
  return;
560215
560236
  }
560216
560237
  validateProviderEnvOrExit();
@@ -560287,4 +560308,4 @@ async function main2() {
560287
560308
  }
560288
560309
  main2();
560289
560310
 
560290
- //# debugId=38194C05B61A35C064756E2164756E21
560311
+ //# debugId=B152F3819EF49C4D64756E2164756E21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maximoai/maximo-syntax-cli",
3
- "version": "0.1.45",
3
+ "version": "0.1.46",
4
4
  "description": "Maximo Syntax CLI - A powerful AI-powered command-line interface for code development with any LLM",
5
5
  "type": "module",
6
6
  "bin": {