@jungjaehoon/mama-os 0.25.0 → 0.26.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/CHANGELOG.md +9 -0
- package/README.md +37 -17
- package/dist/agent/agent-loop.d.ts.map +1 -1
- package/dist/agent/agent-loop.js +2 -0
- package/dist/agent/agent-loop.js.map +1 -1
- package/dist/agent/code-act/host-bridge.d.ts.map +1 -1
- package/dist/agent/code-act/host-bridge.js +54 -0
- package/dist/agent/code-act/host-bridge.js.map +1 -1
- package/dist/agent/code-act/tool-policy.d.ts +3 -1
- package/dist/agent/code-act/tool-policy.d.ts.map +1 -1
- package/dist/agent/code-act/tool-policy.js +3 -1
- package/dist/agent/code-act/tool-policy.js.map +1 -1
- package/dist/agent/drive-tools.d.ts +53 -0
- package/dist/agent/drive-tools.d.ts.map +1 -0
- package/dist/agent/drive-tools.js +261 -0
- package/dist/agent/drive-tools.js.map +1 -0
- package/dist/agent/gateway-tool-executor.d.ts +1 -0
- package/dist/agent/gateway-tool-executor.d.ts.map +1 -1
- package/dist/agent/gateway-tool-executor.js +50 -1
- package/dist/agent/gateway-tool-executor.js.map +1 -1
- package/dist/agent/gateway-tools.md +5 -0
- package/dist/agent/tool-registry.d.ts.map +1 -1
- package/dist/agent/tool-registry.js +29 -0
- package/dist/agent/tool-registry.js.map +1 -1
- package/dist/agent/types.d.ts +20 -2
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/cli/config/types.d.ts.map +1 -1
- package/dist/cli/config/types.js +7 -3
- package/dist/cli/config/types.js.map +1 -1
- package/dist/cli/runtime/envelope-bootstrap.d.ts.map +1 -1
- package/dist/cli/runtime/envelope-bootstrap.js +8 -1
- package/dist/cli/runtime/envelope-bootstrap.js.map +1 -1
- package/dist/connectors/drive/index.d.ts +1 -1
- package/dist/connectors/drive/index.d.ts.map +1 -1
- package/dist/connectors/drive/index.js +100 -56
- package/dist/connectors/drive/index.js.map +1 -1
- package/dist/connectors/framework/gws-utils.d.ts +3 -0
- package/dist/connectors/framework/gws-utils.d.ts.map +1 -1
- package/dist/connectors/framework/gws-utils.js +17 -0
- package/dist/connectors/framework/gws-utils.js.map +1 -1
- package/dist/envelope/enforcer.d.ts.map +1 -1
- package/dist/envelope/enforcer.js +18 -3
- package/dist/envelope/enforcer.js.map +1 -1
- package/dist/envelope/reactive-config.d.ts +1 -1
- package/dist/envelope/reactive-config.d.ts.map +1 -1
- package/dist/envelope/reactive-config.js +10 -2
- package/dist/envelope/reactive-config.js.map +1 -1
- package/dist/envelope/types.d.ts +1 -1
- package/dist/envelope/types.d.ts.map +1 -1
- package/dist/envelope/types.js.map +1 -1
- package/dist/gateways/message-router.d.ts +1 -0
- package/dist/gateways/message-router.d.ts.map +1 -1
- package/dist/gateways/message-router.js +7 -1
- package/dist/gateways/message-router.js.map +1 -1
- package/dist/gateways/telegram-media.d.ts +28 -0
- package/dist/gateways/telegram-media.d.ts.map +1 -0
- package/dist/gateways/telegram-media.js +165 -0
- package/dist/gateways/telegram-media.js.map +1 -0
- package/dist/gateways/telegram-response-presenter.d.ts +31 -0
- package/dist/gateways/telegram-response-presenter.d.ts.map +1 -0
- package/dist/gateways/telegram-response-presenter.js +153 -0
- package/dist/gateways/telegram-response-presenter.js.map +1 -0
- package/dist/gateways/telegram.d.ts +10 -3
- package/dist/gateways/telegram.d.ts.map +1 -1
- package/dist/gateways/telegram.js +174 -90
- package/dist/gateways/telegram.js.map +1 -1
- package/dist/gateways/types.d.ts +4 -2
- package/dist/gateways/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -61,6 +61,8 @@ const mama_core_1 = require("@jungjaehoon/mama-core");
|
|
|
61
61
|
const security_monitor_js_1 = require("../security/security-monitor.js");
|
|
62
62
|
const secret_filter_js_1 = require("../memory/secret-filter.js");
|
|
63
63
|
const scope_context_js_1 = require("../memory/scope-context.js");
|
|
64
|
+
const drive_tools_js_1 = require("./drive-tools.js");
|
|
65
|
+
const untrusted_content_js_1 = require("../utils/untrusted-content.js");
|
|
64
66
|
const types_js_1 = require("./types.js");
|
|
65
67
|
const sqlite_js_1 = __importDefault(require("../sqlite.js"));
|
|
66
68
|
const mama_tool_handlers_js_1 = require("./mama-tool-handlers.js");
|
|
@@ -368,6 +370,7 @@ const VALID_TOOLS = tool_registry_js_1.ToolRegistry.getValidToolNames();
|
|
|
368
370
|
const SENSITIVE_KEYS = ['token', 'bot_token', 'app_token', 'api_token', 'api_key', 'secret'];
|
|
369
371
|
const execFileAsync = (0, util_1.promisify)(child_process_1.execFile);
|
|
370
372
|
class GatewayToolExecutor {
|
|
373
|
+
driveTools = new drive_tools_js_1.DriveToolService();
|
|
371
374
|
mamaApi = null;
|
|
372
375
|
mamaDbPath;
|
|
373
376
|
sessionStore;
|
|
@@ -1489,6 +1492,13 @@ class GatewayToolExecutor {
|
|
|
1489
1492
|
if (!VALID_TOOLS.includes(toolName)) {
|
|
1490
1493
|
throw new types_js_1.AgentError(`Unknown tool: ${toolName}. Valid tools: ${VALID_TOOLS.join(', ')}`, 'UNKNOWN_TOOL', undefined, false);
|
|
1491
1494
|
}
|
|
1495
|
+
if (toolName.startsWith('drive_') &&
|
|
1496
|
+
this.getExecutionState().agentContext?.roleName !== 'owner_console') {
|
|
1497
|
+
return {
|
|
1498
|
+
success: false,
|
|
1499
|
+
error: 'Permission denied: Google Drive tools are restricted to owner_console.',
|
|
1500
|
+
};
|
|
1501
|
+
}
|
|
1492
1502
|
// Structurally disallowed tools are per-call policy carried by the execution
|
|
1493
1503
|
// context (a shared executor serves many agents with different blocks).
|
|
1494
1504
|
const activeDisallowed = this.getExecutionState()?.disallowedGatewayTools;
|
|
@@ -1538,6 +1548,31 @@ class GatewayToolExecutor {
|
|
|
1538
1548
|
return await this.executeSlackSend(input);
|
|
1539
1549
|
case 'telegram_send':
|
|
1540
1550
|
return await this.executeTelegramSend(input);
|
|
1551
|
+
case 'drive_list_drives':
|
|
1552
|
+
return {
|
|
1553
|
+
success: true,
|
|
1554
|
+
result: (0, drive_tools_js_1.asUntrustedDriveEvidence)(await this.driveTools.listDrives()),
|
|
1555
|
+
};
|
|
1556
|
+
case 'drive_browse':
|
|
1557
|
+
return {
|
|
1558
|
+
success: true,
|
|
1559
|
+
result: (0, drive_tools_js_1.asUntrustedDriveEvidence)(await this.driveTools.browse(input)),
|
|
1560
|
+
};
|
|
1561
|
+
case 'drive_find_folder':
|
|
1562
|
+
return {
|
|
1563
|
+
success: true,
|
|
1564
|
+
result: (0, drive_tools_js_1.asUntrustedDriveEvidence)(await this.driveTools.findFolder(input)),
|
|
1565
|
+
};
|
|
1566
|
+
case 'drive_download':
|
|
1567
|
+
return {
|
|
1568
|
+
success: true,
|
|
1569
|
+
result: (0, drive_tools_js_1.asUntrustedDriveEvidence)(await this.driveTools.download(input)),
|
|
1570
|
+
};
|
|
1571
|
+
case 'drive_upload':
|
|
1572
|
+
return {
|
|
1573
|
+
success: true,
|
|
1574
|
+
result: (0, drive_tools_js_1.asUntrustedDriveEvidence)(await this.driveTools.upload(input)),
|
|
1575
|
+
};
|
|
1541
1576
|
// Browser tools
|
|
1542
1577
|
case 'browser_navigate':
|
|
1543
1578
|
return await this.executeBrowserNavigate(input);
|
|
@@ -3475,6 +3510,7 @@ class GatewayToolExecutor {
|
|
|
3475
3510
|
try {
|
|
3476
3511
|
policy = projectCodeActToolPolicy({
|
|
3477
3512
|
tier,
|
|
3513
|
+
roleName: state.agentContext?.roleName,
|
|
3478
3514
|
role: state.agentContext?.role,
|
|
3479
3515
|
disallowedTools: state.disallowedGatewayTools,
|
|
3480
3516
|
requestedAllowedTools: input.allowedTools,
|
|
@@ -3497,12 +3533,25 @@ class GatewayToolExecutor {
|
|
|
3497
3533
|
parentToolName: 'code_act',
|
|
3498
3534
|
};
|
|
3499
3535
|
const bridge = new HostBridge(this, this.roleManager, nestedExecutionContext);
|
|
3536
|
+
let usedUntrustedDriveEvidence = false;
|
|
3537
|
+
bridge.onToolUse = (toolName, _toolInput, result) => {
|
|
3538
|
+
if (result !== undefined && toolName.startsWith('drive_') && toolName !== 'drive_upload') {
|
|
3539
|
+
usedUntrustedDriveEvidence = true;
|
|
3540
|
+
}
|
|
3541
|
+
};
|
|
3500
3542
|
bridge.injectInto(sandbox, policy.names);
|
|
3501
3543
|
const result = await sandbox.execute(input.code);
|
|
3544
|
+
const successfulMessage = JSON.stringify({
|
|
3545
|
+
value: result.value,
|
|
3546
|
+
logs: result.logs,
|
|
3547
|
+
metrics: result.metrics,
|
|
3548
|
+
});
|
|
3502
3549
|
return {
|
|
3503
3550
|
success: result.success,
|
|
3504
3551
|
message: result.success
|
|
3505
|
-
?
|
|
3552
|
+
? usedUntrustedDriveEvidence
|
|
3553
|
+
? (0, untrusted_content_js_1.wrapUntrustedContent)('google-drive-code-act', successfulMessage)
|
|
3554
|
+
: successfulMessage
|
|
3506
3555
|
: `Code-Act error: ${result.error?.message || 'Unknown error'}`,
|
|
3507
3556
|
};
|
|
3508
3557
|
}
|