@jungjaehoon/mama-os 0.1.1
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 +67 -0
- package/README.md +643 -0
- package/dist/agent/agent-loop.d.ts +98 -0
- package/dist/agent/agent-loop.d.ts.map +1 -0
- package/dist/agent/agent-loop.js +417 -0
- package/dist/agent/agent-loop.js.map +1 -0
- package/dist/agent/auto-recall.d.ts +48 -0
- package/dist/agent/auto-recall.d.ts.map +1 -0
- package/dist/agent/auto-recall.js +178 -0
- package/dist/agent/auto-recall.js.map +1 -0
- package/dist/agent/claude-cli-wrapper.d.ts +130 -0
- package/dist/agent/claude-cli-wrapper.d.ts.map +1 -0
- package/dist/agent/claude-cli-wrapper.js +227 -0
- package/dist/agent/claude-cli-wrapper.js.map +1 -0
- package/dist/agent/claude-client.d.ts +50 -0
- package/dist/agent/claude-client.d.ts.map +1 -0
- package/dist/agent/claude-client.js +214 -0
- package/dist/agent/claude-client.js.map +1 -0
- package/dist/agent/gateway-tool-executor.d.ts +75 -0
- package/dist/agent/gateway-tool-executor.d.ts.map +1 -0
- package/dist/agent/gateway-tool-executor.js +348 -0
- package/dist/agent/gateway-tool-executor.js.map +1 -0
- package/dist/agent/index.d.ts +13 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +18 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/mcp-executor.d.ts +75 -0
- package/dist/agent/mcp-executor.d.ts.map +1 -0
- package/dist/agent/mcp-executor.js +307 -0
- package/dist/agent/mcp-executor.js.map +1 -0
- package/dist/agent/session-pool.d.ts +148 -0
- package/dist/agent/session-pool.d.ts.map +1 -0
- package/dist/agent/session-pool.js +272 -0
- package/dist/agent/session-pool.js.map +1 -0
- package/dist/agent/streaming-callback-manager.d.ts +85 -0
- package/dist/agent/streaming-callback-manager.d.ts.map +1 -0
- package/dist/agent/streaming-callback-manager.js +103 -0
- package/dist/agent/streaming-callback-manager.js.map +1 -0
- package/dist/agent/types.d.ts +437 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +29 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/api/cron-handler.d.ts +44 -0
- package/dist/api/cron-handler.d.ts.map +1 -0
- package/dist/api/cron-handler.js +195 -0
- package/dist/api/cron-handler.js.map +1 -0
- package/dist/api/error-handler.d.ts +22 -0
- package/dist/api/error-handler.d.ts.map +1 -0
- package/dist/api/error-handler.js +104 -0
- package/dist/api/error-handler.js.map +1 -0
- package/dist/api/heartbeat-handler.d.ts +49 -0
- package/dist/api/heartbeat-handler.d.ts.map +1 -0
- package/dist/api/heartbeat-handler.js +91 -0
- package/dist/api/heartbeat-handler.js.map +1 -0
- package/dist/api/index.d.ts +61 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +145 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/types.d.ts +156 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +62 -0
- package/dist/api/types.js.map +1 -0
- package/dist/auth/index.d.ts +7 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +11 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/oauth-manager.d.ts +59 -0
- package/dist/auth/oauth-manager.d.ts.map +1 -0
- package/dist/auth/oauth-manager.js +237 -0
- package/dist/auth/oauth-manager.js.map +1 -0
- package/dist/auth/types.d.ts +92 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +23 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/cli/commands/init.d.ts +19 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +155 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/run.d.ts +19 -0
- package/dist/cli/commands/run.d.ts.map +1 -0
- package/dist/cli/commands/run.js +89 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/commands/setup.d.ts +19 -0
- package/dist/cli/commands/setup.d.ts.map +1 -0
- package/dist/cli/commands/setup.js +134 -0
- package/dist/cli/commands/setup.js.map +1 -0
- package/dist/cli/commands/start.d.ts +24 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/commands/start.js +1073 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/commands/status.d.ts +10 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +85 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/stop.d.ts +10 -0
- package/dist/cli/commands/stop.d.ts.map +1 -0
- package/dist/cli/commands/stop.js +65 -0
- package/dist/cli/commands/stop.js.map +1 -0
- package/dist/cli/config/config-manager.d.ts +51 -0
- package/dist/cli/config/config-manager.d.ts.map +1 -0
- package/dist/cli/config/config-manager.js +216 -0
- package/dist/cli/config/config-manager.js.map +1 -0
- package/dist/cli/config/types.d.ts +172 -0
- package/dist/cli/config/types.d.ts.map +1 -0
- package/dist/cli/config/types.js +48 -0
- package/dist/cli/config/types.js.map +1 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +92 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/utils/pid-manager.d.ts +66 -0
- package/dist/cli/utils/pid-manager.d.ts.map +1 -0
- package/dist/cli/utils/pid-manager.js +167 -0
- package/dist/cli/utils/pid-manager.js.map +1 -0
- package/dist/concurrency/index.d.ts +13 -0
- package/dist/concurrency/index.d.ts.map +1 -0
- package/dist/concurrency/index.js +22 -0
- package/dist/concurrency/index.js.map +1 -0
- package/dist/concurrency/lane-manager.d.ts +113 -0
- package/dist/concurrency/lane-manager.d.ts.map +1 -0
- package/dist/concurrency/lane-manager.js +245 -0
- package/dist/concurrency/lane-manager.js.map +1 -0
- package/dist/concurrency/session-key.d.ts +41 -0
- package/dist/concurrency/session-key.d.ts.map +1 -0
- package/dist/concurrency/session-key.js +61 -0
- package/dist/concurrency/session-key.js.map +1 -0
- package/dist/concurrency/types.d.ts +69 -0
- package/dist/concurrency/types.d.ts.map +1 -0
- package/dist/concurrency/types.js +16 -0
- package/dist/concurrency/types.js.map +1 -0
- package/dist/gateways/channel-history.d.ts +102 -0
- package/dist/gateways/channel-history.d.ts.map +1 -0
- package/dist/gateways/channel-history.js +181 -0
- package/dist/gateways/channel-history.js.map +1 -0
- package/dist/gateways/context-injector.d.ts +74 -0
- package/dist/gateways/context-injector.d.ts.map +1 -0
- package/dist/gateways/context-injector.js +121 -0
- package/dist/gateways/context-injector.js.map +1 -0
- package/dist/gateways/discord.d.ts +122 -0
- package/dist/gateways/discord.d.ts.map +1 -0
- package/dist/gateways/discord.js +602 -0
- package/dist/gateways/discord.js.map +1 -0
- package/dist/gateways/index.d.ts +30 -0
- package/dist/gateways/index.d.ts.map +1 -0
- package/dist/gateways/index.js +49 -0
- package/dist/gateways/index.js.map +1 -0
- package/dist/gateways/message-router.d.ts +116 -0
- package/dist/gateways/message-router.d.ts.map +1 -0
- package/dist/gateways/message-router.js +315 -0
- package/dist/gateways/message-router.js.map +1 -0
- package/dist/gateways/message-splitter.d.ts +54 -0
- package/dist/gateways/message-splitter.d.ts.map +1 -0
- package/dist/gateways/message-splitter.js +146 -0
- package/dist/gateways/message-splitter.js.map +1 -0
- package/dist/gateways/plugin-loader.d.ts +76 -0
- package/dist/gateways/plugin-loader.d.ts.map +1 -0
- package/dist/gateways/plugin-loader.js +221 -0
- package/dist/gateways/plugin-loader.js.map +1 -0
- package/dist/gateways/session-store.d.ts +77 -0
- package/dist/gateways/session-store.d.ts.map +1 -0
- package/dist/gateways/session-store.js +233 -0
- package/dist/gateways/session-store.js.map +1 -0
- package/dist/gateways/slack.d.ts +90 -0
- package/dist/gateways/slack.d.ts.map +1 -0
- package/dist/gateways/slack.js +281 -0
- package/dist/gateways/slack.js.map +1 -0
- package/dist/gateways/telegram.d.ts +79 -0
- package/dist/gateways/telegram.d.ts.map +1 -0
- package/dist/gateways/telegram.js +207 -0
- package/dist/gateways/telegram.js.map +1 -0
- package/dist/gateways/types.d.ts +340 -0
- package/dist/gateways/types.d.ts.map +1 -0
- package/dist/gateways/types.js +6 -0
- package/dist/gateways/types.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/memory/memory-logger.d.ts +47 -0
- package/dist/memory/memory-logger.d.ts.map +1 -0
- package/dist/memory/memory-logger.js +126 -0
- package/dist/memory/memory-logger.js.map +1 -0
- package/dist/onboarding/all-tools.d.ts +18 -0
- package/dist/onboarding/all-tools.d.ts.map +1 -0
- package/dist/onboarding/all-tools.js +149 -0
- package/dist/onboarding/all-tools.js.map +1 -0
- package/dist/onboarding/autonomous-discovery-tools.d.ts +13 -0
- package/dist/onboarding/autonomous-discovery-tools.d.ts.map +1 -0
- package/dist/onboarding/autonomous-discovery-tools.js +268 -0
- package/dist/onboarding/autonomous-discovery-tools.js.map +1 -0
- package/dist/onboarding/bootstrap-template.d.ts +5 -0
- package/dist/onboarding/bootstrap-template.d.ts.map +1 -0
- package/dist/onboarding/bootstrap-template.js +142 -0
- package/dist/onboarding/bootstrap-template.js.map +1 -0
- package/dist/onboarding/complete-autonomous-prompt.d.ts +13 -0
- package/dist/onboarding/complete-autonomous-prompt.d.ts.map +1 -0
- package/dist/onboarding/complete-autonomous-prompt.js +1220 -0
- package/dist/onboarding/complete-autonomous-prompt.js.map +1 -0
- package/dist/onboarding/onboarding-state.d.ts +70 -0
- package/dist/onboarding/onboarding-state.d.ts.map +1 -0
- package/dist/onboarding/onboarding-state.js +184 -0
- package/dist/onboarding/onboarding-state.js.map +1 -0
- package/dist/onboarding/personality-quiz.d.ts +35 -0
- package/dist/onboarding/personality-quiz.d.ts.map +1 -0
- package/dist/onboarding/personality-quiz.js +219 -0
- package/dist/onboarding/personality-quiz.js.map +1 -0
- package/dist/onboarding/phase-5-summary.d.ts +22 -0
- package/dist/onboarding/phase-5-summary.d.ts.map +1 -0
- package/dist/onboarding/phase-5-summary.js +151 -0
- package/dist/onboarding/phase-5-summary.js.map +1 -0
- package/dist/onboarding/phase-6-security.d.ts +33 -0
- package/dist/onboarding/phase-6-security.d.ts.map +1 -0
- package/dist/onboarding/phase-6-security.js +473 -0
- package/dist/onboarding/phase-6-security.js.map +1 -0
- package/dist/onboarding/phase-7-integrations.d.ts +66 -0
- package/dist/onboarding/phase-7-integrations.d.ts.map +1 -0
- package/dist/onboarding/phase-7-integrations.js +619 -0
- package/dist/onboarding/phase-7-integrations.js.map +1 -0
- package/dist/onboarding/phase-8-demo.d.ts +43 -0
- package/dist/onboarding/phase-8-demo.d.ts.map +1 -0
- package/dist/onboarding/phase-8-demo.js +346 -0
- package/dist/onboarding/phase-8-demo.js.map +1 -0
- package/dist/onboarding/phase-9-finalization.d.ts +22 -0
- package/dist/onboarding/phase-9-finalization.d.ts.map +1 -0
- package/dist/onboarding/phase-9-finalization.js +375 -0
- package/dist/onboarding/phase-9-finalization.js.map +1 -0
- package/dist/onboarding/ritual-prompt.d.ts +2 -0
- package/dist/onboarding/ritual-prompt.d.ts.map +1 -0
- package/dist/onboarding/ritual-prompt.js +285 -0
- package/dist/onboarding/ritual-prompt.js.map +1 -0
- package/dist/onboarding/ritual-tools.d.ts +13 -0
- package/dist/onboarding/ritual-tools.d.ts.map +1 -0
- package/dist/onboarding/ritual-tools.js +93 -0
- package/dist/onboarding/ritual-tools.js.map +1 -0
- package/dist/runners/cli-runner.d.ts +59 -0
- package/dist/runners/cli-runner.d.ts.map +1 -0
- package/dist/runners/cli-runner.js +190 -0
- package/dist/runners/cli-runner.js.map +1 -0
- package/dist/runners/index.d.ts +11 -0
- package/dist/runners/index.d.ts.map +1 -0
- package/dist/runners/index.js +15 -0
- package/dist/runners/index.js.map +1 -0
- package/dist/runners/types.d.ts +81 -0
- package/dist/runners/types.d.ts.map +1 -0
- package/dist/runners/types.js +31 -0
- package/dist/runners/types.js.map +1 -0
- package/dist/scheduler/cron-scheduler.d.ts +115 -0
- package/dist/scheduler/cron-scheduler.d.ts.map +1 -0
- package/dist/scheduler/cron-scheduler.js +320 -0
- package/dist/scheduler/cron-scheduler.js.map +1 -0
- package/dist/scheduler/heartbeat.d.ts +53 -0
- package/dist/scheduler/heartbeat.d.ts.map +1 -0
- package/dist/scheduler/heartbeat.js +160 -0
- package/dist/scheduler/heartbeat.js.map +1 -0
- package/dist/scheduler/index.d.ts +22 -0
- package/dist/scheduler/index.d.ts.map +1 -0
- package/dist/scheduler/index.js +31 -0
- package/dist/scheduler/index.js.map +1 -0
- package/dist/scheduler/job-lock.d.ts +85 -0
- package/dist/scheduler/job-lock.d.ts.map +1 -0
- package/dist/scheduler/job-lock.js +137 -0
- package/dist/scheduler/job-lock.js.map +1 -0
- package/dist/scheduler/recovery.d.ts +78 -0
- package/dist/scheduler/recovery.d.ts.map +1 -0
- package/dist/scheduler/recovery.js +124 -0
- package/dist/scheduler/recovery.js.map +1 -0
- package/dist/scheduler/schedule-store.d.ts +112 -0
- package/dist/scheduler/schedule-store.d.ts.map +1 -0
- package/dist/scheduler/schedule-store.js +259 -0
- package/dist/scheduler/schedule-store.js.map +1 -0
- package/dist/scheduler/token-keep-alive.d.ts +49 -0
- package/dist/scheduler/token-keep-alive.d.ts.map +1 -0
- package/dist/scheduler/token-keep-alive.js +102 -0
- package/dist/scheduler/token-keep-alive.js.map +1 -0
- package/dist/scheduler/types.d.ts +96 -0
- package/dist/scheduler/types.d.ts.map +1 -0
- package/dist/scheduler/types.js +21 -0
- package/dist/scheduler/types.js.map +1 -0
- package/dist/setup/setup-prompt.d.ts +2 -0
- package/dist/setup/setup-prompt.d.ts.map +1 -0
- package/dist/setup/setup-prompt.js +138 -0
- package/dist/setup/setup-prompt.js.map +1 -0
- package/dist/setup/setup-server.d.ts +8 -0
- package/dist/setup/setup-server.d.ts.map +1 -0
- package/dist/setup/setup-server.js +71 -0
- package/dist/setup/setup-server.js.map +1 -0
- package/dist/setup/setup-tools.d.ts +13 -0
- package/dist/setup/setup-tools.d.ts.map +1 -0
- package/dist/setup/setup-tools.js +103 -0
- package/dist/setup/setup-tools.js.map +1 -0
- package/dist/setup/setup-websocket.d.ts +6 -0
- package/dist/setup/setup-websocket.d.ts.map +1 -0
- package/dist/setup/setup-websocket.js +312 -0
- package/dist/setup/setup-websocket.js.map +1 -0
- package/dist/skills/index.d.ts +10 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +26 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/skill-executor.d.ts +48 -0
- package/dist/skills/skill-executor.d.ts.map +1 -0
- package/dist/skills/skill-executor.js +483 -0
- package/dist/skills/skill-executor.js.map +1 -0
- package/dist/skills/skill-loader.d.ts +40 -0
- package/dist/skills/skill-loader.d.ts.map +1 -0
- package/dist/skills/skill-loader.js +225 -0
- package/dist/skills/skill-loader.js.map +1 -0
- package/dist/skills/skill-matcher.d.ts +33 -0
- package/dist/skills/skill-matcher.d.ts.map +1 -0
- package/dist/skills/skill-matcher.js +190 -0
- package/dist/skills/skill-matcher.js.map +1 -0
- package/dist/skills/types.d.ts +123 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/skills/types.js +12 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/tools/browser-tool.d.ts +149 -0
- package/dist/tools/browser-tool.d.ts.map +1 -0
- package/dist/tools/browser-tool.js +257 -0
- package/dist/tools/browser-tool.js.map +1 -0
- package/package.json +84 -0
- package/public/favicon.ico +0 -0
- package/public/setup.html +1026 -0
- package/public/viewer/icons/icon-192.png +0 -0
- package/public/viewer/icons/icon-512.png +0 -0
- package/public/viewer/js/modules/chat.js +1587 -0
- package/public/viewer/js/modules/dashboard.js +275 -0
- package/public/viewer/js/modules/graph.js +997 -0
- package/public/viewer/js/modules/memory.js +353 -0
- package/public/viewer/js/modules/settings.js +255 -0
- package/public/viewer/js/utils/api.js +169 -0
- package/public/viewer/js/utils/dom.js +92 -0
- package/public/viewer/js/utils/format.js +192 -0
- package/public/viewer/manifest.json +26 -0
- package/public/viewer/sw.js +131 -0
- package/public/viewer/viewer.css +500 -0
- package/public/viewer/viewer.html +1535 -0
- package/scripts/postinstall.js +118 -0
- package/templates/skills/document-analyze.md +63 -0
- package/templates/skills/heartbeat-report.md +75 -0
- package/templates/skills/image-translate.md +67 -0
- package/templates/workspace/skill-forge/DESIGN.md +115 -0
- package/templates/workspace/skill-forge/agents/architect.ts +295 -0
- package/templates/workspace/skill-forge/agents/developer.ts +364 -0
- package/templates/workspace/skill-forge/agents/qa.ts +313 -0
- package/templates/workspace/skill-forge/claude-api.ts +353 -0
- package/templates/workspace/skill-forge/discord-ui.ts +580 -0
- package/templates/workspace/skill-forge/error-handler.ts +354 -0
- package/templates/workspace/skill-forge/mama-integration.ts +357 -0
- package/templates/workspace/skill-forge/orchestrator.ts +495 -0
- package/templates/workspace/skill-forge/output/generated-skills/skills/hello-world/README.md +24 -0
- package/templates/workspace/skill-forge/output/generated-skills/skills/hello-world/index.ts +79 -0
- package/templates/workspace/skill-forge/output/generated-skills/skills/hello-world/types.ts +17 -0
- package/templates/workspace/skill-forge/package.json +21 -0
- package/templates/workspace/skill-forge/state/session.json +132 -0
- package/templates/workspace/skill-forge/test-e2e.ts +139 -0
- package/templates/workspace/skill-forge/tsconfig.json +20 -0
- package/templates/workspace/skill-forge/types.ts +159 -0
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Phase 5: Discovery Summary Tool
|
|
4
|
+
*
|
|
5
|
+
* Aggregates insights from previous onboarding phases and presents
|
|
6
|
+
* findings to the user. Acts as a MANDATORY gate before Phase 6.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.PHASE_5_TOOL = void 0;
|
|
10
|
+
const promises_1 = require("node:fs/promises");
|
|
11
|
+
const node_fs_1 = require("node:fs");
|
|
12
|
+
const config_manager_js_1 = require("../cli/config/config-manager.js");
|
|
13
|
+
const onboarding_state_js_1 = require("./onboarding-state.js");
|
|
14
|
+
async function aggregateInsights() {
|
|
15
|
+
const insights = { files: [] };
|
|
16
|
+
const mamaHome = (0, config_manager_js_1.expandPath)('~/.mama');
|
|
17
|
+
const profileFiles = [
|
|
18
|
+
{ key: 'identity', file: 'IDENTITY.md' },
|
|
19
|
+
{ key: 'user', file: 'USER.md' },
|
|
20
|
+
{ key: 'soul', file: 'SOUL.md' },
|
|
21
|
+
{ key: 'bootstrap', file: 'BOOTSTRAP.md' },
|
|
22
|
+
];
|
|
23
|
+
for (const { key, file } of profileFiles) {
|
|
24
|
+
const filePath = `${mamaHome}/${file}`;
|
|
25
|
+
if ((0, node_fs_1.existsSync)(filePath)) {
|
|
26
|
+
try {
|
|
27
|
+
const content = await (0, promises_1.readFile)(filePath, 'utf-8');
|
|
28
|
+
insights[key] = content;
|
|
29
|
+
insights.files.push(file);
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
console.error(`Failed to read ${file}:`, error);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return insights;
|
|
37
|
+
}
|
|
38
|
+
function formatSummary(insights) {
|
|
39
|
+
const { identity, user, soul, bootstrap, files } = insights;
|
|
40
|
+
let summary = `# π― Discovery Summary\n\n`;
|
|
41
|
+
summary += `Based on your previous responses, here's what we've learned:\n\n`;
|
|
42
|
+
summary += `## π Profile Files Found\n\n`;
|
|
43
|
+
if (files.length === 0) {
|
|
44
|
+
summary += `No profile files found yet. This is the first time we're creating your profile.\n\n`;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
summary += files.map((f) => `- β
${f}`).join('\n') + '\n\n';
|
|
48
|
+
}
|
|
49
|
+
if (identity) {
|
|
50
|
+
summary += `## πͺͺ Identity\n\n`;
|
|
51
|
+
summary += `${identity.substring(0, 500)}${identity.length > 500 ? '...' : ''}\n\n`;
|
|
52
|
+
}
|
|
53
|
+
if (user) {
|
|
54
|
+
summary += `## π€ User Profile\n\n`;
|
|
55
|
+
summary += `${user.substring(0, 500)}${user.length > 500 ? '...' : ''}\n\n`;
|
|
56
|
+
}
|
|
57
|
+
if (soul) {
|
|
58
|
+
summary += `## β¨ Soul/Personality\n\n`;
|
|
59
|
+
summary += `${soul.substring(0, 500)}${soul.length > 500 ? '...' : ''}\n\n`;
|
|
60
|
+
}
|
|
61
|
+
if (bootstrap) {
|
|
62
|
+
summary += `## π± Bootstrap Context\n\n`;
|
|
63
|
+
summary += `${bootstrap.substring(0, 500)}${bootstrap.length > 500 ? '...' : ''}\n\n`;
|
|
64
|
+
}
|
|
65
|
+
summary += `---\n\n`;
|
|
66
|
+
summary += `**Next Steps:**\n`;
|
|
67
|
+
summary += `1. Review the summary above\n`;
|
|
68
|
+
summary += `2. Confirm if everything looks correct\n`;
|
|
69
|
+
summary += `3. Add any additional notes if needed\n`;
|
|
70
|
+
summary += `4. Proceed to Phase 6\n\n`;
|
|
71
|
+
summary += `**To confirm and save:** Call this tool again with \`confirmed: true\`\n`;
|
|
72
|
+
return summary;
|
|
73
|
+
}
|
|
74
|
+
async function saveSummary(insights, additionalNotes) {
|
|
75
|
+
const mamaHome = (0, config_manager_js_1.expandPath)('~/.mama');
|
|
76
|
+
const summaryPath = `${mamaHome}/summary.md`;
|
|
77
|
+
let content = `# Discovery Summary\n\n`;
|
|
78
|
+
content += `*Generated: ${new Date().toISOString()}*\n\n`;
|
|
79
|
+
content += `## Profile Completion Status\n\n`;
|
|
80
|
+
content += `Files created during onboarding:\n\n`;
|
|
81
|
+
content += insights.files.map((f) => `- ${f}`).join('\n') + '\n\n';
|
|
82
|
+
if (insights.identity) {
|
|
83
|
+
content += `## Identity\n\n${insights.identity}\n\n`;
|
|
84
|
+
}
|
|
85
|
+
if (insights.user) {
|
|
86
|
+
content += `## User Profile\n\n${insights.user}\n\n`;
|
|
87
|
+
}
|
|
88
|
+
if (insights.soul) {
|
|
89
|
+
content += `## Personality/Soul\n\n${insights.soul}\n\n`;
|
|
90
|
+
}
|
|
91
|
+
if (additionalNotes) {
|
|
92
|
+
content += `## Additional Notes\n\n${additionalNotes}\n\n`;
|
|
93
|
+
}
|
|
94
|
+
content += `---\n\n`;
|
|
95
|
+
content += `*This summary represents the completion of onboarding phases 1-5.*\n`;
|
|
96
|
+
content += `*Ready to proceed to Phase 6.*\n`;
|
|
97
|
+
await (0, promises_1.writeFile)(summaryPath, content, 'utf-8');
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Phase 5 Tool: Present Discovery Summary
|
|
101
|
+
*/
|
|
102
|
+
exports.PHASE_5_TOOL = {
|
|
103
|
+
name: 'present_discovery_summary',
|
|
104
|
+
description: 'Aggregate insights from previous onboarding phases, present findings to user, and save summary. MANDATORY gate before Phase 6.',
|
|
105
|
+
input_schema: {
|
|
106
|
+
type: 'object',
|
|
107
|
+
properties: {
|
|
108
|
+
confirmed: {
|
|
109
|
+
type: 'boolean',
|
|
110
|
+
description: 'Set to true to confirm the summary and save to disk',
|
|
111
|
+
},
|
|
112
|
+
additional_notes: {
|
|
113
|
+
type: 'string',
|
|
114
|
+
description: 'Optional additional notes to include in the saved summary',
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
required: [],
|
|
118
|
+
},
|
|
119
|
+
handler: async (input) => {
|
|
120
|
+
try {
|
|
121
|
+
const insights = await aggregateInsights();
|
|
122
|
+
if (!input.confirmed) {
|
|
123
|
+
const presentation = formatSummary(insights);
|
|
124
|
+
return {
|
|
125
|
+
success: true,
|
|
126
|
+
message: presentation,
|
|
127
|
+
requires_confirmation: true,
|
|
128
|
+
files_found: insights.files,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
await saveSummary(insights, input.additional_notes);
|
|
132
|
+
// Update onboarding state
|
|
133
|
+
(0, onboarding_state_js_1.completePhase)(5);
|
|
134
|
+
(0, onboarding_state_js_1.recordFileCreated)('summary.md');
|
|
135
|
+
return {
|
|
136
|
+
success: true,
|
|
137
|
+
message: 'Summary saved to ~/.mama/summary.md',
|
|
138
|
+
summary_path: (0, config_manager_js_1.expandPath)('~/.mama/summary.md'),
|
|
139
|
+
phase_5_complete: true,
|
|
140
|
+
ready_for_phase_6: true,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
return {
|
|
145
|
+
success: false,
|
|
146
|
+
error: error instanceof Error ? error.message : 'Unknown error during summary generation',
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
//# sourceMappingURL=phase-5-summary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phase-5-summary.js","sourceRoot":"","sources":["../../src/onboarding/phase-5-summary.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 6: Security Warning
|
|
3
|
+
*
|
|
4
|
+
* MANDATORY gate before Phase 7. Explains security risks and requires
|
|
5
|
+
* explicit acknowledgment before granting full system access.
|
|
6
|
+
*
|
|
7
|
+
* Covers 4 critical risk factors:
|
|
8
|
+
* 1. File access - Read/write any file on the system
|
|
9
|
+
* 2. Command execution - Run arbitrary shell commands
|
|
10
|
+
* 3. Network access - Make HTTP requests, access APIs
|
|
11
|
+
* 4. Integration access - Control connected platforms (Slack, Discord, etc.)
|
|
12
|
+
*/
|
|
13
|
+
export interface SecurityToolInput {
|
|
14
|
+
language?: 'en' | 'ko';
|
|
15
|
+
acknowledge?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface SecurityTool {
|
|
18
|
+
name: string;
|
|
19
|
+
description: string;
|
|
20
|
+
input_schema: {
|
|
21
|
+
type: 'object';
|
|
22
|
+
properties: Record<string, any>;
|
|
23
|
+
required: string[];
|
|
24
|
+
};
|
|
25
|
+
handler: (input: SecurityToolInput) => Promise<any>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Phase 6 Tool: Present Security Warning
|
|
29
|
+
*
|
|
30
|
+
* MANDATORY gate before Phase 7. Requires explicit acknowledgment.
|
|
31
|
+
*/
|
|
32
|
+
export declare const PHASE_6_TOOL: SecurityTool;
|
|
33
|
+
//# sourceMappingURL=phase-6-security.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phase-6-security.d.ts","sourceRoot":"","sources":["../../src/onboarding/phase-6-security.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE;QACZ,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,OAAO,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACrD;AAgaD;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,YAmE1B,CAAC"}
|
|
@@ -0,0 +1,473 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PHASE_6_TOOL = void 0;
|
|
4
|
+
const promises_1 = require("node:fs/promises");
|
|
5
|
+
const config_manager_js_1 = require("../cli/config/config-manager.js");
|
|
6
|
+
const onboarding_state_js_1 = require("./onboarding-state.js");
|
|
7
|
+
const SECURITY_RISKS = {
|
|
8
|
+
en: {
|
|
9
|
+
file_access: {
|
|
10
|
+
title: 'ποΈ File Access Risk',
|
|
11
|
+
description: 'MAMA can read and write ANY file on your system that your user account can access.',
|
|
12
|
+
examples: [
|
|
13
|
+
'β
Safe: Read project files, write logs',
|
|
14
|
+
'β οΈ Risky: Access ~/.ssh/id_rsa, ~/.aws/credentials',
|
|
15
|
+
'β Dangerous: Modify system files, delete important data',
|
|
16
|
+
],
|
|
17
|
+
mitigation: [
|
|
18
|
+
'Run MAMA in a dedicated user account with limited permissions',
|
|
19
|
+
'Use file system permissions to restrict sensitive directories',
|
|
20
|
+
'Regularly audit file access logs',
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
command_execution: {
|
|
24
|
+
title: 'β‘ Command Execution Risk',
|
|
25
|
+
description: 'MAMA can execute arbitrary shell commands with your user privileges.',
|
|
26
|
+
examples: [
|
|
27
|
+
'β
Safe: npm install, git commit, docker build',
|
|
28
|
+
'β οΈ Risky: curl | bash, rm -rf with wildcards',
|
|
29
|
+
'β Dangerous: sudo commands, system service manipulation',
|
|
30
|
+
],
|
|
31
|
+
mitigation: [
|
|
32
|
+
'Never run MAMA with sudo or root privileges',
|
|
33
|
+
'Use Docker containers or VMs for isolated execution',
|
|
34
|
+
'Review command history regularly',
|
|
35
|
+
],
|
|
36
|
+
},
|
|
37
|
+
network_access: {
|
|
38
|
+
title: 'π Network Access Risk',
|
|
39
|
+
description: 'MAMA can make HTTP requests and connect to external services.',
|
|
40
|
+
examples: [
|
|
41
|
+
'β
Safe: Fetch documentation, check package versions',
|
|
42
|
+
'β οΈ Risky: Upload files to unknown endpoints',
|
|
43
|
+
'β Dangerous: Exfiltrate sensitive data, DDoS attacks',
|
|
44
|
+
],
|
|
45
|
+
mitigation: [
|
|
46
|
+
'Use firewall rules to restrict outbound connections',
|
|
47
|
+
'Monitor network traffic for suspicious activity',
|
|
48
|
+
'Limit API keys to read-only access when possible',
|
|
49
|
+
],
|
|
50
|
+
},
|
|
51
|
+
integration_access: {
|
|
52
|
+
title: 'π Integration Access Risk',
|
|
53
|
+
description: 'MAMA can send messages and perform actions on connected platforms (Slack, Discord, etc.)',
|
|
54
|
+
examples: [
|
|
55
|
+
'β
Safe: Send notifications, respond to DMs',
|
|
56
|
+
'β οΈ Risky: Post in public channels without review',
|
|
57
|
+
'β Dangerous: Spam, impersonate you, leak private data',
|
|
58
|
+
],
|
|
59
|
+
mitigation: [
|
|
60
|
+
'Use separate bot accounts, not personal accounts',
|
|
61
|
+
'Limit bot permissions to necessary scopes only',
|
|
62
|
+
'Enable approval workflows for public actions',
|
|
63
|
+
],
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
ko: {
|
|
67
|
+
file_access: {
|
|
68
|
+
title: 'ποΈ νμΌ μ κ·Ό μν',
|
|
69
|
+
description: 'MAMAλ μ¬μ©μ κ³μ μ΄ μ κ·Όν μ μλ λͺ¨λ νμΌμ μ½κ³ μΈ μ μμ΅λλ€.',
|
|
70
|
+
examples: [
|
|
71
|
+
'β
μμ : νλ‘μ νΈ νμΌ μ½κΈ°, λ‘κ·Έ μμ±',
|
|
72
|
+
'β οΈ μν: ~/.ssh/id_rsa, ~/.aws/credentials μ κ·Ό',
|
|
73
|
+
'β λ§€μ° μν: μμ€ν
νμΌ μμ , μ€μ λ°μ΄ν° μμ ',
|
|
74
|
+
],
|
|
75
|
+
mitigation: [
|
|
76
|
+
'μ νλ κΆνμ κ°μ§ μ μ© μ¬μ©μ κ³μ μμ MAMA μ€ν',
|
|
77
|
+
'νμΌ μμ€ν
κΆνμΌλ‘ λ―Όκ°ν λλ ν 리 μ ν',
|
|
78
|
+
'νμΌ μ κ·Ό λ‘κ·Έ μ κΈ°μ κ°μ¬',
|
|
79
|
+
],
|
|
80
|
+
},
|
|
81
|
+
command_execution: {
|
|
82
|
+
title: 'β‘ λͺ
λ Ή μ€ν μν',
|
|
83
|
+
description: 'MAMAλ μ¬μ©μ κΆνμΌλ‘ μμμ μ
Έ λͺ
λ Ήμ μ€νν μ μμ΅λλ€.',
|
|
84
|
+
examples: [
|
|
85
|
+
'β
μμ : npm install, git commit, docker build',
|
|
86
|
+
'β οΈ μν: curl | bash, μμΌλμΉ΄λλ₯Ό μ¬μ©ν rm -rf',
|
|
87
|
+
'β λ§€μ° μν: sudo λͺ
λ Ή, μμ€ν
μλΉμ€ μ‘°μ',
|
|
88
|
+
],
|
|
89
|
+
mitigation: [
|
|
90
|
+
'sudoλ root κΆνμΌλ‘ MAMAλ₯Ό μ λ μ€ννμ§ λ§ κ²',
|
|
91
|
+
'격리λ μ€νμ μν΄ Docker 컨ν
μ΄λλ VM μ¬μ©',
|
|
92
|
+
'λͺ
λ Ή νμ€ν 리 μ κΈ°μ κ²ν ',
|
|
93
|
+
],
|
|
94
|
+
},
|
|
95
|
+
network_access: {
|
|
96
|
+
title: 'π λ€νΈμν¬ μ κ·Ό μν',
|
|
97
|
+
description: 'MAMAλ HTTP μμ²μ λ§λ€κ³ μΈλΆ μλΉμ€μ μ°κ²°ν μ μμ΅λλ€.',
|
|
98
|
+
examples: [
|
|
99
|
+
'β
μμ : λ¬Έμ κ°μ Έμ€κΈ°, ν¨ν€μ§ λ²μ νμΈ',
|
|
100
|
+
'β οΈ μν: μ μ μλ μλν¬μΈνΈλ‘ νμΌ μ
λ‘λ',
|
|
101
|
+
'β λ§€μ° μν: λ―Όκ°ν λ°μ΄ν° μ μΆ, DDoS 곡격',
|
|
102
|
+
],
|
|
103
|
+
mitigation: [
|
|
104
|
+
'λ°©νλ²½ κ·μΉμΌλ‘ μμλ°μ΄λ μ°κ²° μ ν',
|
|
105
|
+
'μμ¬μ€λ¬μ΄ νλμ λν λ€νΈμν¬ νΈλν½ λͺ¨λν°λ§',
|
|
106
|
+
'κ°λ₯ν κ²½μ° μ½κΈ° μ μ© API ν€ μ¬μ©',
|
|
107
|
+
],
|
|
108
|
+
},
|
|
109
|
+
integration_access: {
|
|
110
|
+
title: 'π ν΅ν© μ κ·Ό μν',
|
|
111
|
+
description: 'MAMAλ μ°κ²°λ νλ«νΌ(Slack, Discord λ±)μμ λ©μμ§λ₯Ό 보λ΄κ³ μμ
μ μνν μ μμ΅λλ€.',
|
|
112
|
+
examples: [
|
|
113
|
+
'β
μμ : μλ¦Ό μ μ‘, DMμ μλ΅',
|
|
114
|
+
'β οΈ μν: κ²ν μμ΄ κ³΅κ° μ±λμ κ²μ',
|
|
115
|
+
'β λ§€μ° μν: μ€νΈ, μ¬μ©μ μ¬μΉ, κ°μΈ λ°μ΄ν° μ μΆ',
|
|
116
|
+
],
|
|
117
|
+
mitigation: [
|
|
118
|
+
'κ°μΈ κ³μ μ΄ μλ λ³λμ λ΄ κ³μ μ¬μ©',
|
|
119
|
+
'νμν λ²μλ‘λ§ λ΄ κΆν μ ν',
|
|
120
|
+
'κ³΅κ° μμ
μ λν μΉμΈ μν¬νλ‘μ° νμ±ν',
|
|
121
|
+
],
|
|
122
|
+
},
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
const SANDBOX_RECOMMENDATIONS = {
|
|
126
|
+
en: {
|
|
127
|
+
title: 'π‘οΈ Recommended: Sandbox Setup',
|
|
128
|
+
intro: 'For maximum security, run MAMA in an isolated environment with limited privileges.',
|
|
129
|
+
methods: [
|
|
130
|
+
{
|
|
131
|
+
name: 'Docker Container (Easiest)',
|
|
132
|
+
steps: [
|
|
133
|
+
'Create a Dockerfile with minimal base image',
|
|
134
|
+
'Mount only necessary directories as read-only',
|
|
135
|
+
'Use --network=none flag to disable network access',
|
|
136
|
+
'Run container with --user flag (non-root)',
|
|
137
|
+
],
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
name: 'Virtual Machine',
|
|
141
|
+
steps: [
|
|
142
|
+
'Use lightweight VM (e.g., Alpine Linux)',
|
|
143
|
+
'Snapshot before running MAMA',
|
|
144
|
+
'Limit VM network access via host firewall',
|
|
145
|
+
'Use separate SSH keys for VM access',
|
|
146
|
+
],
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
name: 'Dedicated User Account',
|
|
150
|
+
steps: [
|
|
151
|
+
'Create new user: useradd -m -s /bin/bash mama-user',
|
|
152
|
+
'Set strict umask: echo "umask 077" >> ~/.bashrc',
|
|
153
|
+
'Restrict sudo access completely',
|
|
154
|
+
'Use chroot jail for additional isolation',
|
|
155
|
+
],
|
|
156
|
+
},
|
|
157
|
+
],
|
|
158
|
+
},
|
|
159
|
+
ko: {
|
|
160
|
+
title: 'π‘οΈ κΆμ₯: μλλ°μ€ μ€μ ',
|
|
161
|
+
intro: 'μ΅λ 보μμ μν΄ μ νλ κΆνμ κ°μ§ 격리λ νκ²½μμ MAMAλ₯Ό μ€ννμΈμ.',
|
|
162
|
+
methods: [
|
|
163
|
+
{
|
|
164
|
+
name: 'Docker 컨ν
μ΄λ (κ°μ₯ μ¬μ)',
|
|
165
|
+
steps: [
|
|
166
|
+
'μ΅μνμ λ² μ΄μ€ μ΄λ―Έμ§λ‘ Dockerfile μμ±',
|
|
167
|
+
'νμν λλ ν λ¦¬λ§ μ½κΈ° μ μ©μΌλ‘ λ§μ΄νΈ',
|
|
168
|
+
'λ€νΈμν¬ μ κ·Ό λΉνμ±νλ₯Ό μν΄ --network=none νλκ·Έ μ¬μ©',
|
|
169
|
+
'λΉλ£¨νΈ μ¬μ©μλ‘ μ»¨ν
μ΄λ μ€ν (--user νλκ·Έ)',
|
|
170
|
+
],
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
name: 'κ°μ λ¨Έμ ',
|
|
174
|
+
steps: [
|
|
175
|
+
'κ²½λ VM μ¬μ© (μ: Alpine Linux)',
|
|
176
|
+
'MAMA μ€ν μ μ€λ
μ· μμ±',
|
|
177
|
+
'νΈμ€νΈ λ°©νλ²½μ ν΅ν΄ VM λ€νΈμν¬ μ κ·Ό μ ν',
|
|
178
|
+
'VM μ κ·Όμ© λ³λμ SSH ν€ μ¬μ©',
|
|
179
|
+
],
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
name: 'μ μ© μ¬μ©μ κ³μ ',
|
|
183
|
+
steps: [
|
|
184
|
+
'μ μ¬μ©μ μμ±: useradd -m -s /bin/bash mama-user',
|
|
185
|
+
'μ격ν umask μ€μ : echo "umask 077" >> ~/.bashrc',
|
|
186
|
+
'sudo μ κ·Ό μμ μ ν',
|
|
187
|
+
'μΆκ° 격리λ₯Ό μν΄ chroot jail μ¬μ©',
|
|
188
|
+
],
|
|
189
|
+
},
|
|
190
|
+
],
|
|
191
|
+
},
|
|
192
|
+
};
|
|
193
|
+
const SAFE_USAGE_PRACTICES = {
|
|
194
|
+
en: [
|
|
195
|
+
'π Review actions before execution - Use dry-run modes when available',
|
|
196
|
+
'π Audit logs regularly - Check file access and command history',
|
|
197
|
+
'π Use read-only API keys - Limit damage from potential leaks',
|
|
198
|
+
'πΎ Backup before major changes - Always have a rollback plan',
|
|
199
|
+
'π« Never share credentials - Keep tokens and passwords private',
|
|
200
|
+
'π Monitor resource usage - Detect unusual CPU/network activity',
|
|
201
|
+
'π¦ Principle of least privilege - Grant only necessary permissions',
|
|
202
|
+
'π Rotate secrets regularly - Change API keys and tokens periodically',
|
|
203
|
+
],
|
|
204
|
+
ko: [
|
|
205
|
+
'π μ€ν μ μμ
κ²ν - κ°λ₯ν κ²½μ° dry-run λͺ¨λ μ¬μ©',
|
|
206
|
+
'π λ‘κ·Έ μ κΈ°μ κ°μ¬ - νμΌ μ κ·Ό λ° λͺ
λ Ή νμ€ν 리 νμΈ',
|
|
207
|
+
'π μ½κΈ° μ μ© API ν€ μ¬μ© - μ μ¬μ μ μΆλ‘ μΈν νΌν΄ μ ν',
|
|
208
|
+
'πΎ μ£Όμ λ³κ²½ μ λ°±μ
- νμ λ‘€λ°± κ³ν μ€λΉ',
|
|
209
|
+
'π« μ격 μ¦λͺ
곡μ κΈμ§ - ν ν°κ³Ό λΉλ°λ²νΈ λΉκ³΅κ° μ μ§',
|
|
210
|
+
'π 리μμ€ μ¬μ©λ λͺ¨λν°λ§ - λΉμ μμ μΈ CPU/λ€νΈμν¬ νλ κ°μ§',
|
|
211
|
+
'π¦ μ΅μ κΆν μμΉ - νμν κΆνλ§ λΆμ¬',
|
|
212
|
+
'π λΉλ° μ 보 μ κΈ° κ΅μ²΄ - API ν€μ ν ν° μ£ΌκΈ°μ μΌλ‘ λ³κ²½',
|
|
213
|
+
],
|
|
214
|
+
};
|
|
215
|
+
function formatSecurityWarning(language) {
|
|
216
|
+
const risks = SECURITY_RISKS[language];
|
|
217
|
+
const sandbox = SANDBOX_RECOMMENDATIONS[language];
|
|
218
|
+
const practices = SAFE_USAGE_PRACTICES[language];
|
|
219
|
+
if (language === 'ko') {
|
|
220
|
+
return `# β οΈ λ³΄μ κ²½κ³ - μ§ννκΈ° μ μ μ½μ΄μ£ΌμΈμ
|
|
221
|
+
|
|
222
|
+
**μ€μ: μ΄κ²μ λ¨μν κ²½κ³ κ° μλλλ€. MAMAλ μμ€ν
μ λν κ°λ ₯ν μ κ·Ό κΆνμ κ°μ§λλ€.**
|
|
223
|
+
|
|
224
|
+
λ€μ λ¨κ³λ‘ μ§ννλ©΄ MAMAμκ² λ€μ κΆνμ λΆμ¬νκ² λ©λλ€:
|
|
225
|
+
|
|
226
|
+
## π΄ 4κ°μ§ μ£Όμ μν μμ
|
|
227
|
+
|
|
228
|
+
### ${risks.file_access.title}
|
|
229
|
+
|
|
230
|
+
${risks.file_access.description}
|
|
231
|
+
|
|
232
|
+
**μμ:**
|
|
233
|
+
${risks.file_access.examples.map((ex) => `- ${ex}`).join('\n')}
|
|
234
|
+
|
|
235
|
+
**μν λ°©λ²:**
|
|
236
|
+
${risks.file_access.mitigation.map((m) => `- ${m}`).join('\n')}
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
### ${risks.command_execution.title}
|
|
241
|
+
|
|
242
|
+
${risks.command_execution.description}
|
|
243
|
+
|
|
244
|
+
**μμ:**
|
|
245
|
+
${risks.command_execution.examples.map((ex) => `- ${ex}`).join('\n')}
|
|
246
|
+
|
|
247
|
+
**μν λ°©λ²:**
|
|
248
|
+
${risks.command_execution.mitigation.map((m) => `- ${m}`).join('\n')}
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
### ${risks.network_access.title}
|
|
253
|
+
|
|
254
|
+
${risks.network_access.description}
|
|
255
|
+
|
|
256
|
+
**μμ:**
|
|
257
|
+
${risks.network_access.examples.map((ex) => `- ${ex}`).join('\n')}
|
|
258
|
+
|
|
259
|
+
**μν λ°©λ²:**
|
|
260
|
+
${risks.network_access.mitigation.map((m) => `- ${m}`).join('\n')}
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
### ${risks.integration_access.title}
|
|
265
|
+
|
|
266
|
+
${risks.integration_access.description}
|
|
267
|
+
|
|
268
|
+
**μμ:**
|
|
269
|
+
${risks.integration_access.examples.map((ex) => `- ${ex}`).join('\n')}
|
|
270
|
+
|
|
271
|
+
**μν λ°©λ²:**
|
|
272
|
+
${risks.integration_access.mitigation.map((m) => `- ${m}`).join('\n')}
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## ${sandbox.title}
|
|
277
|
+
|
|
278
|
+
${sandbox.intro}
|
|
279
|
+
|
|
280
|
+
${sandbox.methods
|
|
281
|
+
.map((method) => `
|
|
282
|
+
### ${method.name}
|
|
283
|
+
|
|
284
|
+
${method.steps.map((step, i) => `${i + 1}. ${step}`).join('\n')}
|
|
285
|
+
`)
|
|
286
|
+
.join('\n')}
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
## β
μμ ν μ¬μ© κ΄ν
|
|
291
|
+
|
|
292
|
+
${practices.map((practice) => `${practice}`).join('\n')}
|
|
293
|
+
|
|
294
|
+
---
|
|
295
|
+
|
|
296
|
+
## π κ³μ μ§ννκΈ° μ μ
|
|
297
|
+
|
|
298
|
+
λ€μ μ¬νμ μ΄ν΄νκ³ λμν΄μΌ ν©λλ€:
|
|
299
|
+
|
|
300
|
+
1. β
MAMAκ° μμ€ν
μ λν κ΄λ²μν μ κ·Ό κΆνμ κ°λλ€λ κ²μ μ΄ν΄νμ΅λλ€
|
|
301
|
+
2. β
μμ 4κ°μ§ μν μμμ μν λ°©λ²μ μ½μμ΅λλ€
|
|
302
|
+
3. β
κ°λ₯ν κ²½μ° μλλ°μ€ νκ²½μ μ¬μ©ν κ²μ κΆμ₯ν©λλ€
|
|
303
|
+
4. β
μμ ν μ¬μ© κ΄νμ λ°λ₯Ό κ²μ
λλ€
|
|
304
|
+
5. β
MAMAμ μμ
μ μ κΈ°μ μΌλ‘ λͺ¨λν°λ§νκ³ κ°μ¬ν κ²μ
λλ€
|
|
305
|
+
|
|
306
|
+
**μ΄ κ²½κ³ λ₯Ό μ΄ν΄νκ³ μνμ κ°μν μ€λΉκ° λμλ€λ©΄, λꡬλ₯Ό μ¬μ©νμ¬ νμΈνμΈμ.**
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
*μ΄ λ¬Έμλ ~/.mama/security-acknowledgment.mdμ μ μ₯λμμ΅λλ€.*
|
|
311
|
+
*μΈμ λ μ§ λ€μ μ°Έμ‘°ν μ μμ΅λλ€.*
|
|
312
|
+
`;
|
|
313
|
+
}
|
|
314
|
+
else {
|
|
315
|
+
return `# β οΈ Security Warning - Read Before Proceeding
|
|
316
|
+
|
|
317
|
+
**CRITICAL: This is not a routine warning. MAMA has powerful access to your system.**
|
|
318
|
+
|
|
319
|
+
By proceeding to the next phase, you are granting MAMA the following capabilities:
|
|
320
|
+
|
|
321
|
+
## π΄ 4 Critical Risk Factors
|
|
322
|
+
|
|
323
|
+
### ${risks.file_access.title}
|
|
324
|
+
|
|
325
|
+
${risks.file_access.description}
|
|
326
|
+
|
|
327
|
+
**Examples:**
|
|
328
|
+
${risks.file_access.examples.map((ex) => `- ${ex}`).join('\n')}
|
|
329
|
+
|
|
330
|
+
**Mitigation:**
|
|
331
|
+
${risks.file_access.mitigation.map((m) => `- ${m}`).join('\n')}
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
### ${risks.command_execution.title}
|
|
336
|
+
|
|
337
|
+
${risks.command_execution.description}
|
|
338
|
+
|
|
339
|
+
**Examples:**
|
|
340
|
+
${risks.command_execution.examples.map((ex) => `- ${ex}`).join('\n')}
|
|
341
|
+
|
|
342
|
+
**Mitigation:**
|
|
343
|
+
${risks.command_execution.mitigation.map((m) => `- ${m}`).join('\n')}
|
|
344
|
+
|
|
345
|
+
---
|
|
346
|
+
|
|
347
|
+
### ${risks.network_access.title}
|
|
348
|
+
|
|
349
|
+
${risks.network_access.description}
|
|
350
|
+
|
|
351
|
+
**Examples:**
|
|
352
|
+
${risks.network_access.examples.map((ex) => `- ${ex}`).join('\n')}
|
|
353
|
+
|
|
354
|
+
**Mitigation:**
|
|
355
|
+
${risks.network_access.mitigation.map((m) => `- ${m}`).join('\n')}
|
|
356
|
+
|
|
357
|
+
---
|
|
358
|
+
|
|
359
|
+
### ${risks.integration_access.title}
|
|
360
|
+
|
|
361
|
+
${risks.integration_access.description}
|
|
362
|
+
|
|
363
|
+
**Examples:**
|
|
364
|
+
${risks.integration_access.examples.map((ex) => `- ${ex}`).join('\n')}
|
|
365
|
+
|
|
366
|
+
**Mitigation:**
|
|
367
|
+
${risks.integration_access.mitigation.map((m) => `- ${m}`).join('\n')}
|
|
368
|
+
|
|
369
|
+
---
|
|
370
|
+
|
|
371
|
+
## ${sandbox.title}
|
|
372
|
+
|
|
373
|
+
${sandbox.intro}
|
|
374
|
+
|
|
375
|
+
${sandbox.methods
|
|
376
|
+
.map((method) => `
|
|
377
|
+
### ${method.name}
|
|
378
|
+
|
|
379
|
+
${method.steps.map((step, i) => `${i + 1}. ${step}`).join('\n')}
|
|
380
|
+
`)
|
|
381
|
+
.join('\n')}
|
|
382
|
+
|
|
383
|
+
---
|
|
384
|
+
|
|
385
|
+
## β
Safe Usage Practices
|
|
386
|
+
|
|
387
|
+
${practices.map((practice) => `${practice}`).join('\n')}
|
|
388
|
+
|
|
389
|
+
---
|
|
390
|
+
|
|
391
|
+
## π Before You Continue
|
|
392
|
+
|
|
393
|
+
You must understand and acknowledge the following:
|
|
394
|
+
|
|
395
|
+
1. β
I understand MAMA has extensive access to my system
|
|
396
|
+
2. β
I have read the 4 risk factors and mitigation strategies
|
|
397
|
+
3. β
I will use a sandboxed environment when possible
|
|
398
|
+
4. β
I will follow safe usage practices
|
|
399
|
+
5. β
I will regularly monitor and audit MAMA's actions
|
|
400
|
+
|
|
401
|
+
**If you understand this warning and are ready to accept the risks, use the tool to acknowledge.**
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
*This document has been saved to ~/.mama/security-acknowledgment.md*
|
|
406
|
+
*You can refer to it at any time.*
|
|
407
|
+
`;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Phase 6 Tool: Present Security Warning
|
|
412
|
+
*
|
|
413
|
+
* MANDATORY gate before Phase 7. Requires explicit acknowledgment.
|
|
414
|
+
*/
|
|
415
|
+
exports.PHASE_6_TOOL = {
|
|
416
|
+
name: 'present_security_warning',
|
|
417
|
+
description: 'Present comprehensive security warning and save acknowledgment. MANDATORY gate before Phase 7. Explains 4 risk factors (file access, command execution, network access, integration access), recommends sandbox setup, and requires explicit user acknowledgment.',
|
|
418
|
+
input_schema: {
|
|
419
|
+
type: 'object',
|
|
420
|
+
properties: {
|
|
421
|
+
language: {
|
|
422
|
+
type: 'string',
|
|
423
|
+
enum: ['en', 'ko'],
|
|
424
|
+
description: 'Language for security warning (default: en)',
|
|
425
|
+
},
|
|
426
|
+
acknowledge: {
|
|
427
|
+
type: 'boolean',
|
|
428
|
+
description: 'User acknowledgment that they understand the risks (default: false). Must be true to proceed.',
|
|
429
|
+
},
|
|
430
|
+
},
|
|
431
|
+
required: [],
|
|
432
|
+
},
|
|
433
|
+
handler: async (input) => {
|
|
434
|
+
const language = input.language || 'en';
|
|
435
|
+
const acknowledge = input.acknowledge || false;
|
|
436
|
+
const warningMessage = formatSecurityWarning(language);
|
|
437
|
+
const filePath = (0, config_manager_js_1.expandPath)('~/.mama/security-acknowledgment.md');
|
|
438
|
+
await (0, promises_1.writeFile)(filePath, warningMessage, 'utf-8');
|
|
439
|
+
if (!acknowledge) {
|
|
440
|
+
return {
|
|
441
|
+
success: false,
|
|
442
|
+
warning_presented: true,
|
|
443
|
+
file_saved: filePath,
|
|
444
|
+
message: language === 'ko'
|
|
445
|
+
? 'β οΈ λ³΄μ κ²½κ³ κ° νμλμμ΅λλ€. κ³μνλ €λ©΄ acknowledge: trueλ‘ μ΄ λꡬλ₯Ό λ€μ νΈμΆνμΈμ.'
|
|
446
|
+
: 'β οΈ Security warning presented. To continue, call this tool again with acknowledge: true.',
|
|
447
|
+
next_steps: language === 'ko'
|
|
448
|
+
? '1. μμ 보μ κ²½κ³ λ₯Ό μ£Όμ κΉκ² μ½μΌμΈμ\n2. λͺ¨λ μν μμμ μν λ°©λ²μ μ΄ν΄νμΈμ\n3. μ€λΉκ° λλ©΄ acknowledge: trueλ‘ νμΈνμΈμ'
|
|
449
|
+
: '1. Read the security warning above carefully\n2. Understand all risk factors and mitigations\n3. When ready, acknowledge with acknowledge: true',
|
|
450
|
+
};
|
|
451
|
+
}
|
|
452
|
+
// Update onboarding state
|
|
453
|
+
(0, onboarding_state_js_1.completePhase)(6);
|
|
454
|
+
(0, onboarding_state_js_1.recordFileCreated)('security-acknowledgment.md');
|
|
455
|
+
return {
|
|
456
|
+
success: true,
|
|
457
|
+
acknowledged: true,
|
|
458
|
+
file_saved: filePath,
|
|
459
|
+
message: language === 'ko'
|
|
460
|
+
? 'β
보μ κ²½κ³ νμΈ μλ£. Phase 7λ‘ μ§νν μ μμ΅λλ€.'
|
|
461
|
+
: 'β
Security warning acknowledged. You may proceed to Phase 7.',
|
|
462
|
+
risks_understood: [
|
|
463
|
+
'file_access',
|
|
464
|
+
'command_execution',
|
|
465
|
+
'network_access',
|
|
466
|
+
'integration_access',
|
|
467
|
+
],
|
|
468
|
+
sandbox_recommended: true,
|
|
469
|
+
phase_7_unlocked: true,
|
|
470
|
+
};
|
|
471
|
+
},
|
|
472
|
+
};
|
|
473
|
+
//# sourceMappingURL=phase-6-security.js.map
|