@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.
- package/README.md +1 -1
- package/dist/cli.mjs +34 -13
- 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
|
|
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-
|
|
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
|
|
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
|
|
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.
|
|
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-
|
|
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.
|
|
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-
|
|
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.
|
|
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.
|
|
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.
|
|
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=
|
|
560311
|
+
//# debugId=B152F3819EF49C4D64756E2164756E21
|