@nomad-e/bluma-cli 0.1.54 → 0.1.55

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 (2) hide show
  1. package/dist/main.js +65 -4
  2. package/package.json +1 -1
package/dist/main.js CHANGED
@@ -9930,6 +9930,51 @@ Since you are in an **isolated sandbox**, ALL tools are auto-approved:
9930
9930
  - **Artifact delivery** - Save outputs with \\\`create_artifact\\\`, declare in attachments
9931
9931
  - **Error transparency** - If something fails, explain why and propose alternatives
9932
9932
 
9933
+ ### \u26A0\uFE0F CRITICAL: message Tool Usage Rules
9934
+
9935
+ The \\\`message\\\` tool has TWO types \u2014 use them CORRECTLY:
9936
+
9937
+ #### \\\`message_type: "info"\\\` \u2014 INFORMATION ONLY
9938
+ - **Purpose**: Report progress, status updates, discoveries, milestones
9939
+ - **Use when**: "Step 1/3 complete", "Found the data", "Processing..."
9940
+ - **NEVER use for**: Asking questions, requesting decisions, seeking clarification
9941
+ - **Does NOT end the turn** \u2014 you continue working
9942
+
9943
+ #### \\\`message_type: "result"\\\` \u2014 FINAL DELIVERY
9944
+ - **Purpose**: Deliver final output, declare attachments, end your turn
9945
+ - **Use when**: Task is complete, artifacts ready for delivery
9946
+ - **Use ONCE per turn** \u2014 only at the very end
9947
+ - **Ends the turn** \u2014 agent waits for next input
9948
+
9949
+ #### \u274C WRONG: Using "info" to ask questions
9950
+ \\\`\\\`\\\`typescript
9951
+ // DON'T DO THIS:
9952
+ message({
9953
+ message_type: "info",
9954
+ content: "Should I generate PDF or Excel?" // \u2190 WRONG! info is NOT for questions
9955
+ })
9956
+ \\\`\\\`\\\`
9957
+
9958
+ #### \u2705 CORRECT: Use mailbox for questions to Severino
9959
+ \\\`\\\`\\\`typescript
9960
+ // DO THIS:
9961
+ sendMailboxMessage({
9962
+ session_id: "chat_abc123",
9963
+ to_agent: "severino",
9964
+ message_type: "question",
9965
+ content: "Should I generate PDF or Excel?"
9966
+ })
9967
+ \\\`\\\`\\\`
9968
+
9969
+ #### \u2705 CORRECT: Use "info" for actual information
9970
+ \\\`\\\`\\\`typescript
9971
+ // DO THIS:
9972
+ message({
9973
+ message_type: "info",
9974
+ content: "Step 1/3: Data extraction complete. Processing..."
9975
+ })
9976
+ \\\`\\\`\\\`
9977
+
9933
9978
  ### Work Ethic
9934
9979
  - **No lazy delegation** - Synthesize information before delegating
9935
9980
  - **Verify assumptions** - Check file paths, validate inputs, confirm context
@@ -10271,6 +10316,13 @@ The user **only** sees chat content you send through the \`message\` tool (\`con
10271
10316
  - \`message_type: "result"\` \u2014 **ends the turn**: final answer, deliverable, or a **question** that needs a user reply; then the agent waits for the user.
10272
10317
  - \`message_type: "info"\` \u2014 **non-terminal**: shown in chat, does **not** end the turn. **Expected behavior:** call \`info\` **multiple times** in a single turn whenever there is something worth saying (even briefly). Under-using \`info\` is a **mistake** in this product.
10273
10318
 
10319
+ **\u26A0\uFE0F CRITICAL: "info" is for INFORMATION ONLY \u2014 NEVER for asking questions**
10320
+ - \`message_type: "info"\` is **ONLY** for reporting progress, discoveries, failures, milestones
10321
+ - **NEVER** use \`info\` to ask the user a question or request a decision
10322
+ - If you need to ask the user something, use \`ask_user_question\` (local mode) or the mailbox (sandbox mode)
10323
+ - \u274C WRONG: \`message({ message_type: "info", content: "Which format do you prefer?" })\`
10324
+ - \u2705 CORRECT: \`ask_user_question({ questions: [...] })\` or \`sendMailboxMessage({ message_type: "question", ... })\`
10325
+
10274
10326
  **When to send \`info\`**
10275
10327
  - Before long sequences (many reads, greps, refactors): one short line \u2014 intent and why.
10276
10328
  - Right after **discoveries** (culprit file, likely cause, relevant API, pattern in codebase).
@@ -10280,7 +10332,7 @@ The user **only** sees chat content you send through the \`message\` tool (\`con
10280
10332
 
10281
10333
  Reasoning streams (if any) do **not** replace \`info\` for user-visible narrative \u2014 see \`<reasoning_and_message_info>\`.
10282
10334
 
10283
- If you need an answer from the user, use \`message\` with \`result\`.
10335
+ If you need an answer from the user, use \`ask_user_question\` (local) or \`message\` with \`result\` (sandbox).
10284
10336
  When addressing {username}: normalize handles (hyphens/underscores/dots \u2192 spaces, title case, strip trailing digits if any).
10285
10337
  </messages>
10286
10338
 
@@ -11008,9 +11060,18 @@ function decideToolExecution(toolName) {
11008
11060
  reason: "Unknown tool metadata; require confirmation by default."
11009
11061
  };
11010
11062
  }
11011
- let autoApprove = policy.isSandbox ? metadata.autoApproveInSandbox : metadata.autoApproveInLocal;
11063
+ if (policy.isSandbox) {
11064
+ return {
11065
+ toolName,
11066
+ metadata,
11067
+ autoApprove: true,
11068
+ requiresConfirmation: false,
11069
+ reason: "Production sandbox mode: ALL tools auto-approved for maximum efficiency. Isolated Docker container ensures safety."
11070
+ };
11071
+ }
11072
+ let autoApprove = metadata.autoApproveInLocal;
11012
11073
  const { permissionMode } = getRuntimeConfig();
11013
- if (permissionMode === "accept_edits" && !policy.isSandbox && (toolName === "edit_tool" || toolName === "file_write")) {
11074
+ if (permissionMode === "accept_edits" && (toolName === "edit_tool" || toolName === "file_write")) {
11014
11075
  autoApprove = true;
11015
11076
  }
11016
11077
  if (planModeForcesConfirmation(toolName)) {
@@ -11021,7 +11082,7 @@ function decideToolExecution(toolName) {
11021
11082
  metadata,
11022
11083
  autoApprove,
11023
11084
  requiresConfirmation: !autoApprove,
11024
- reason: autoApprove ? policy.isSandbox ? "Tool auto-approved inside workspace sandbox." : "Tool marked safe for local autonomous execution." : "Tool requires confirmation outside sandbox mode."
11085
+ reason: autoApprove ? "Tool marked safe for local autonomous execution." : "Tool requires confirmation outside sandbox mode."
11025
11086
  };
11026
11087
  }
11027
11088
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nomad-e/bluma-cli",
3
- "version": "0.1.54",
3
+ "version": "0.1.55",
4
4
  "description": "BluMa independent agent for automation and advanced software engineering.",
5
5
  "author": "Alex Fonseca",
6
6
  "license": "Apache-2.0",