@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,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Gateway Module for MAMA Standalone
|
|
4
|
+
*
|
|
5
|
+
* Provides unified message handling across multiple messenger platforms.
|
|
6
|
+
*
|
|
7
|
+
* Components:
|
|
8
|
+
* - MessageRouter: Central routing hub
|
|
9
|
+
* - SessionStore: Conversation session management
|
|
10
|
+
* - ContextInjector: Proactive decision retrieval
|
|
11
|
+
* - DiscordGateway: Discord bot integration
|
|
12
|
+
* - MessageSplitter: Message chunking utilities
|
|
13
|
+
* - Types: Shared type definitions
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.createPluginLoader = exports.PluginLoader = exports.setChannelHistory = exports.getChannelHistory = exports.ChannelHistory = exports.DEFAULT_MAX_LENGTH = exports.estimateChunks = exports.truncateWithEllipsis = exports.splitWithCodeBlocks = exports.splitForSlack = exports.splitForDiscord = exports.splitMessage = exports.SlackGateway = exports.DiscordGateway = exports.createMockMamaApi = exports.ContextInjector = exports.SessionStore = exports.createMockAgentLoop = exports.MessageRouter = void 0;
|
|
17
|
+
// Core components
|
|
18
|
+
var message_router_js_1 = require("./message-router.js");
|
|
19
|
+
Object.defineProperty(exports, "MessageRouter", { enumerable: true, get: function () { return message_router_js_1.MessageRouter; } });
|
|
20
|
+
Object.defineProperty(exports, "createMockAgentLoop", { enumerable: true, get: function () { return message_router_js_1.createMockAgentLoop; } });
|
|
21
|
+
var session_store_js_1 = require("./session-store.js");
|
|
22
|
+
Object.defineProperty(exports, "SessionStore", { enumerable: true, get: function () { return session_store_js_1.SessionStore; } });
|
|
23
|
+
var context_injector_js_1 = require("./context-injector.js");
|
|
24
|
+
Object.defineProperty(exports, "ContextInjector", { enumerable: true, get: function () { return context_injector_js_1.ContextInjector; } });
|
|
25
|
+
Object.defineProperty(exports, "createMockMamaApi", { enumerable: true, get: function () { return context_injector_js_1.createMockMamaApi; } });
|
|
26
|
+
// Platform gateways
|
|
27
|
+
var discord_js_1 = require("./discord.js");
|
|
28
|
+
Object.defineProperty(exports, "DiscordGateway", { enumerable: true, get: function () { return discord_js_1.DiscordGateway; } });
|
|
29
|
+
var slack_js_1 = require("./slack.js");
|
|
30
|
+
Object.defineProperty(exports, "SlackGateway", { enumerable: true, get: function () { return slack_js_1.SlackGateway; } });
|
|
31
|
+
// Message utilities
|
|
32
|
+
var message_splitter_js_1 = require("./message-splitter.js");
|
|
33
|
+
Object.defineProperty(exports, "splitMessage", { enumerable: true, get: function () { return message_splitter_js_1.splitMessage; } });
|
|
34
|
+
Object.defineProperty(exports, "splitForDiscord", { enumerable: true, get: function () { return message_splitter_js_1.splitForDiscord; } });
|
|
35
|
+
Object.defineProperty(exports, "splitForSlack", { enumerable: true, get: function () { return message_splitter_js_1.splitForSlack; } });
|
|
36
|
+
Object.defineProperty(exports, "splitWithCodeBlocks", { enumerable: true, get: function () { return message_splitter_js_1.splitWithCodeBlocks; } });
|
|
37
|
+
Object.defineProperty(exports, "truncateWithEllipsis", { enumerable: true, get: function () { return message_splitter_js_1.truncateWithEllipsis; } });
|
|
38
|
+
Object.defineProperty(exports, "estimateChunks", { enumerable: true, get: function () { return message_splitter_js_1.estimateChunks; } });
|
|
39
|
+
Object.defineProperty(exports, "DEFAULT_MAX_LENGTH", { enumerable: true, get: function () { return message_splitter_js_1.DEFAULT_MAX_LENGTH; } });
|
|
40
|
+
// Channel history (for message context)
|
|
41
|
+
var channel_history_js_1 = require("./channel-history.js");
|
|
42
|
+
Object.defineProperty(exports, "ChannelHistory", { enumerable: true, get: function () { return channel_history_js_1.ChannelHistory; } });
|
|
43
|
+
Object.defineProperty(exports, "getChannelHistory", { enumerable: true, get: function () { return channel_history_js_1.getChannelHistory; } });
|
|
44
|
+
Object.defineProperty(exports, "setChannelHistory", { enumerable: true, get: function () { return channel_history_js_1.setChannelHistory; } });
|
|
45
|
+
// Plugin system
|
|
46
|
+
var plugin_loader_js_1 = require("./plugin-loader.js");
|
|
47
|
+
Object.defineProperty(exports, "PluginLoader", { enumerable: true, get: function () { return plugin_loader_js_1.PluginLoader; } });
|
|
48
|
+
Object.defineProperty(exports, "createPluginLoader", { enumerable: true, get: function () { return plugin_loader_js_1.createPluginLoader; } });
|
|
49
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/gateways/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAEH,kBAAkB;AAClB,yDAAyE;AAAhE,kHAAA,aAAa,OAAA;AAAE,wHAAA,mBAAmB,OAAA;AAG3C,uDAAkD;AAAzC,gHAAA,YAAY,OAAA;AAErB,6DAA2E;AAAlE,sHAAA,eAAe,OAAA;AAAE,wHAAA,iBAAiB,OAAA;AAG3C,oBAAoB;AACpB,2CAA8C;AAArC,4GAAA,cAAc,OAAA;AAGvB,uCAA0C;AAAjC,wGAAA,YAAY,OAAA;AAGrB,oBAAoB;AACpB,6DAQ+B;AAP7B,mHAAA,YAAY,OAAA;AACZ,sHAAA,eAAe,OAAA;AACf,oHAAA,aAAa,OAAA;AACb,0HAAA,mBAAmB,OAAA;AACnB,2HAAA,oBAAoB,OAAA;AACpB,qHAAA,cAAc,OAAA;AACd,yHAAA,kBAAkB,OAAA;AAIpB,wCAAwC;AACxC,2DAA4F;AAAnF,oHAAA,cAAc,OAAA;AAAE,uHAAA,iBAAiB,OAAA;AAAE,uHAAA,iBAAiB,OAAA;AAG7D,gBAAgB;AAChB,uDAAsE;AAA7D,gHAAA,YAAY,OAAA;AAAE,sHAAA,kBAAkB,OAAA"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Message Router for unified messenger handling
|
|
3
|
+
*
|
|
4
|
+
* Routes messages from different platforms through a unified pipeline:
|
|
5
|
+
* 1. Normalize message format
|
|
6
|
+
* 2. Load/create session context
|
|
7
|
+
* 3. Inject proactive context (related decisions)
|
|
8
|
+
* 4. Call Agent Loop
|
|
9
|
+
* 5. Update session context
|
|
10
|
+
* 6. Return response
|
|
11
|
+
*/
|
|
12
|
+
import { SessionStore } from './session-store.js';
|
|
13
|
+
import { type MamaApiClient } from './context-injector.js';
|
|
14
|
+
import type { NormalizedMessage, MessageRouterConfig, Session, RelatedDecision } from './types.js';
|
|
15
|
+
/**
|
|
16
|
+
* Content block for multimodal input
|
|
17
|
+
*/
|
|
18
|
+
export interface ContentBlock {
|
|
19
|
+
type: 'text' | 'image' | 'document';
|
|
20
|
+
text?: string;
|
|
21
|
+
source?: {
|
|
22
|
+
type: 'base64';
|
|
23
|
+
media_type: string;
|
|
24
|
+
data: string;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Agent Loop interface for message processing
|
|
29
|
+
*/
|
|
30
|
+
export interface AgentLoopClient {
|
|
31
|
+
/**
|
|
32
|
+
* Run the agent loop with a prompt
|
|
33
|
+
*/
|
|
34
|
+
run(prompt: string, options?: AgentLoopOptions): Promise<{
|
|
35
|
+
response: string;
|
|
36
|
+
}>;
|
|
37
|
+
/**
|
|
38
|
+
* Run the agent loop with multimodal content
|
|
39
|
+
*/
|
|
40
|
+
runWithContent?(content: ContentBlock[], options?: AgentLoopOptions): Promise<{
|
|
41
|
+
response: string;
|
|
42
|
+
}>;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Options for agent loop execution
|
|
46
|
+
*/
|
|
47
|
+
export interface AgentLoopOptions {
|
|
48
|
+
/** System prompt to prepend */
|
|
49
|
+
systemPrompt?: string;
|
|
50
|
+
/** User identifier */
|
|
51
|
+
userId?: string;
|
|
52
|
+
/** Maximum turns */
|
|
53
|
+
maxTurns?: number;
|
|
54
|
+
/** Message source (for lane-based concurrency) */
|
|
55
|
+
source?: string;
|
|
56
|
+
/** Channel ID (for lane-based concurrency) */
|
|
57
|
+
channelId?: string;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Message processing result
|
|
61
|
+
*/
|
|
62
|
+
export interface ProcessingResult {
|
|
63
|
+
/** Response text from agent */
|
|
64
|
+
response: string;
|
|
65
|
+
/** Session ID used */
|
|
66
|
+
sessionId: string;
|
|
67
|
+
/** Related decisions that were injected */
|
|
68
|
+
injectedDecisions: RelatedDecision[];
|
|
69
|
+
/** Processing duration in milliseconds */
|
|
70
|
+
duration: number;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Message Router class
|
|
74
|
+
*
|
|
75
|
+
* Central hub for processing messages from all messenger platforms.
|
|
76
|
+
*/
|
|
77
|
+
export declare class MessageRouter {
|
|
78
|
+
private sessionStore;
|
|
79
|
+
private contextInjector;
|
|
80
|
+
private agentLoop;
|
|
81
|
+
private config;
|
|
82
|
+
constructor(sessionStore: SessionStore, agentLoop: AgentLoopClient, mamaApi: MamaApiClient, config?: MessageRouterConfig);
|
|
83
|
+
/**
|
|
84
|
+
* Process a normalized message and return response
|
|
85
|
+
*/
|
|
86
|
+
process(message: NormalizedMessage): Promise<ProcessingResult>;
|
|
87
|
+
/**
|
|
88
|
+
* Build system prompt with session context and injected decisions
|
|
89
|
+
*/
|
|
90
|
+
private buildSystemPrompt;
|
|
91
|
+
/**
|
|
92
|
+
* Get session for a channel
|
|
93
|
+
*/
|
|
94
|
+
getSession(source: NormalizedMessage['source'], channelId: string): Session | null;
|
|
95
|
+
/**
|
|
96
|
+
* Clear session context (start fresh conversation)
|
|
97
|
+
*/
|
|
98
|
+
clearSession(sessionId: string): boolean;
|
|
99
|
+
/**
|
|
100
|
+
* Delete a session entirely
|
|
101
|
+
*/
|
|
102
|
+
deleteSession(sessionId: string): boolean;
|
|
103
|
+
/**
|
|
104
|
+
* Update configuration
|
|
105
|
+
*/
|
|
106
|
+
setConfig(config: Partial<MessageRouterConfig>): void;
|
|
107
|
+
/**
|
|
108
|
+
* Get current configuration
|
|
109
|
+
*/
|
|
110
|
+
getConfig(): Required<MessageRouterConfig>;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Create a mock agent loop for testing
|
|
114
|
+
*/
|
|
115
|
+
export declare function createMockAgentLoop(responseGenerator?: (prompt: string) => string): AgentLoopClient;
|
|
116
|
+
//# sourceMappingURL=message-router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-router.d.ts","sourceRoot":"","sources":["../../src/gateways/message-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAInG;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/E;;OAEG;IACH,cAAc,CAAC,CACb,OAAO,EAAE,YAAY,EAAE,EACvB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,iBAAiB,EAAE,eAAe,EAAE,CAAC;IACrC,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;CAClB;AA2BD;;;;GAIG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,MAAM,CAAgC;gBAG5C,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,eAAe,EAC1B,OAAO,EAAE,aAAa,EACtB,MAAM,GAAE,mBAAwB;IAiBlC;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuGpE;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA4HzB;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAKlF;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIxC;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIzC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI;IAqBrD;;OAEG;IACH,SAAS,IAAI,QAAQ,CAAC,mBAAmB,CAAC;CAG3C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,iBAAiB,GAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAA8B,GACpE,eAAe,CAMjB"}
|
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Message Router for unified messenger handling
|
|
4
|
+
*
|
|
5
|
+
* Routes messages from different platforms through a unified pipeline:
|
|
6
|
+
* 1. Normalize message format
|
|
7
|
+
* 2. Load/create session context
|
|
8
|
+
* 3. Inject proactive context (related decisions)
|
|
9
|
+
* 4. Call Agent Loop
|
|
10
|
+
* 5. Update session context
|
|
11
|
+
* 6. Return response
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.MessageRouter = void 0;
|
|
15
|
+
exports.createMockAgentLoop = createMockAgentLoop;
|
|
16
|
+
const node_fs_1 = require("node:fs");
|
|
17
|
+
const node_path_1 = require("node:path");
|
|
18
|
+
const node_os_1 = require("node:os");
|
|
19
|
+
const context_injector_js_1 = require("./context-injector.js");
|
|
20
|
+
const complete_autonomous_prompt_js_1 = require("../onboarding/complete-autonomous-prompt.js");
|
|
21
|
+
const session_pool_js_1 = require("../agent/session-pool.js");
|
|
22
|
+
/**
|
|
23
|
+
* Sensitive patterns that should only be configured via MAMA OS Viewer
|
|
24
|
+
*/
|
|
25
|
+
const SENSITIVE_PATTERNS = [
|
|
26
|
+
/discord.*token/i,
|
|
27
|
+
/slack.*token/i,
|
|
28
|
+
/telegram.*token/i,
|
|
29
|
+
/chatwork.*token/i,
|
|
30
|
+
/api[_-]?key/i,
|
|
31
|
+
/secret[_-]?key/i,
|
|
32
|
+
/bot[_-]?token/i,
|
|
33
|
+
/oauth.*token/i,
|
|
34
|
+
/설정.*토큰/i,
|
|
35
|
+
/토큰.*설정/i,
|
|
36
|
+
/키.*설정/i,
|
|
37
|
+
/비밀.*키/i,
|
|
38
|
+
];
|
|
39
|
+
/**
|
|
40
|
+
* Check if message contains sensitive configuration request
|
|
41
|
+
*/
|
|
42
|
+
function containsSensitiveRequest(text) {
|
|
43
|
+
return SENSITIVE_PATTERNS.some((pattern) => pattern.test(text));
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Message Router class
|
|
47
|
+
*
|
|
48
|
+
* Central hub for processing messages from all messenger platforms.
|
|
49
|
+
*/
|
|
50
|
+
class MessageRouter {
|
|
51
|
+
sessionStore;
|
|
52
|
+
contextInjector;
|
|
53
|
+
agentLoop;
|
|
54
|
+
config;
|
|
55
|
+
constructor(sessionStore, agentLoop, mamaApi, config = {}) {
|
|
56
|
+
this.sessionStore = sessionStore;
|
|
57
|
+
this.agentLoop = agentLoop;
|
|
58
|
+
this.config = {
|
|
59
|
+
similarityThreshold: config.similarityThreshold ?? 0.7,
|
|
60
|
+
maxDecisions: config.maxDecisions ?? 3,
|
|
61
|
+
maxTurns: config.maxTurns ?? 5,
|
|
62
|
+
maxResponseLength: config.maxResponseLength ?? 200,
|
|
63
|
+
};
|
|
64
|
+
this.contextInjector = new context_injector_js_1.ContextInjector(mamaApi, {
|
|
65
|
+
similarityThreshold: this.config.similarityThreshold,
|
|
66
|
+
maxDecisions: this.config.maxDecisions,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Process a normalized message and return response
|
|
71
|
+
*/
|
|
72
|
+
async process(message) {
|
|
73
|
+
const startTime = Date.now();
|
|
74
|
+
// Security: Block sensitive configuration requests from non-viewer sources
|
|
75
|
+
if (message.source !== 'viewer' && containsSensitiveRequest(message.text)) {
|
|
76
|
+
const securityResponse = `🔒 **Security Notice**
|
|
77
|
+
|
|
78
|
+
For security reasons, token and API key configuration must be done through MAMA OS.
|
|
79
|
+
|
|
80
|
+
Please visit: **http://localhost:3847/viewer**
|
|
81
|
+
|
|
82
|
+
Go to the **Settings** tab to configure:
|
|
83
|
+
- Discord Bot Token
|
|
84
|
+
- Slack Bot/App Tokens
|
|
85
|
+
- Telegram Bot Token
|
|
86
|
+
- Chatwork API Token
|
|
87
|
+
|
|
88
|
+
This protects your credentials from being exposed in chat logs.`;
|
|
89
|
+
return {
|
|
90
|
+
response: securityResponse,
|
|
91
|
+
sessionId: 'security-block',
|
|
92
|
+
injectedDecisions: [],
|
|
93
|
+
duration: Date.now() - startTime,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
// 1. Get or create session (by source + channelId)
|
|
97
|
+
const session = this.sessionStore.getOrCreate(message.source, message.channelId, message.userId);
|
|
98
|
+
// 2. Get proactive context (related decisions)
|
|
99
|
+
// TODO: 임베딩 서버 구동 후 활성화 (현재 매번 모델 로딩으로 느림)
|
|
100
|
+
// const context = await this.contextInjector.getRelevantContext(message.text);
|
|
101
|
+
const context = { prompt: '', decisions: [], hasContext: false };
|
|
102
|
+
// 3. Check if this is a new CLI session (need to inject history from DB)
|
|
103
|
+
const channelKey = (0, session_pool_js_1.buildChannelKey)(message.source, message.channelId);
|
|
104
|
+
const sessionPool = (0, session_pool_js_1.getSessionPool)();
|
|
105
|
+
const { isNew: isNewCliSession } = sessionPool.getSession(channelKey);
|
|
106
|
+
// 4. Build system prompt with history context (OpenClaw-style)
|
|
107
|
+
const historyContext = message.metadata?.historyContext;
|
|
108
|
+
const systemPrompt = this.buildSystemPrompt(session, context.prompt, historyContext, isNewCliSession);
|
|
109
|
+
// 4. Run agent loop (with session info for lane-based concurrency)
|
|
110
|
+
const options = {
|
|
111
|
+
systemPrompt,
|
|
112
|
+
userId: message.userId,
|
|
113
|
+
source: message.source,
|
|
114
|
+
channelId: message.channelId,
|
|
115
|
+
};
|
|
116
|
+
let response;
|
|
117
|
+
// Use multimodal content if available (OpenClaw-style)
|
|
118
|
+
if (message.contentBlocks &&
|
|
119
|
+
message.contentBlocks.length > 0 &&
|
|
120
|
+
this.agentLoop.runWithContent) {
|
|
121
|
+
// Build content blocks: text first, then images
|
|
122
|
+
const contentBlocks = [];
|
|
123
|
+
// Add text content if present
|
|
124
|
+
if (message.text) {
|
|
125
|
+
contentBlocks.push({ type: 'text', text: message.text });
|
|
126
|
+
}
|
|
127
|
+
// Add image content blocks
|
|
128
|
+
for (const block of message.contentBlocks) {
|
|
129
|
+
if (block.type === 'image' && block.source) {
|
|
130
|
+
contentBlocks.push(block);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
const result = await this.agentLoop.runWithContent(contentBlocks, options);
|
|
134
|
+
response = result.response;
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
const result = await this.agentLoop.run(message.text, options);
|
|
138
|
+
response = result.response;
|
|
139
|
+
}
|
|
140
|
+
// 5. Update session context
|
|
141
|
+
this.sessionStore.updateSession(session.id, message.text, response);
|
|
142
|
+
// 6. Return result
|
|
143
|
+
return {
|
|
144
|
+
response,
|
|
145
|
+
sessionId: session.id,
|
|
146
|
+
injectedDecisions: context.decisions,
|
|
147
|
+
duration: Date.now() - startTime,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Build system prompt with session context and injected decisions
|
|
152
|
+
*/
|
|
153
|
+
buildSystemPrompt(session, injectedContext, historyContext, isNewCliSession = true) {
|
|
154
|
+
// Check if onboarding is in progress (SOUL.md doesn't exist)
|
|
155
|
+
const soulPath = (0, node_path_1.join)((0, node_os_1.homedir)(), '.mama', 'SOUL.md');
|
|
156
|
+
const isOnboarding = !(0, node_fs_1.existsSync)(soulPath);
|
|
157
|
+
// Always get session history from store
|
|
158
|
+
const sessionHistory = this.sessionStore.formatContextForPrompt(session.id);
|
|
159
|
+
if (isOnboarding) {
|
|
160
|
+
// Check if we have existing conversation
|
|
161
|
+
const hasHistory = sessionHistory && sessionHistory !== 'New conversation';
|
|
162
|
+
if (hasHistory) {
|
|
163
|
+
// Continue existing conversation WITH the full prompt context
|
|
164
|
+
// The full prompt has all the phase instructions - just prepend history
|
|
165
|
+
return `${complete_autonomous_prompt_js_1.COMPLETE_AUTONOMOUS_PROMPT}
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
# 🔄 CONVERSATION IN PROGRESS
|
|
170
|
+
|
|
171
|
+
## CRITICAL: READ HISTORY FIRST!
|
|
172
|
+
You are in the MIDDLE of an onboarding conversation. Do NOT restart from Phase 1.
|
|
173
|
+
|
|
174
|
+
## Conversation So Far:
|
|
175
|
+
${sessionHistory}
|
|
176
|
+
|
|
177
|
+
## What To Do Now:
|
|
178
|
+
1. Read the history above carefully
|
|
179
|
+
2. Figure out which Phase you're in:
|
|
180
|
+
- Got their name? → Ask about their job/interest BEFORE quiz
|
|
181
|
+
- Know their job? → Start the quiz with relevant scenarios
|
|
182
|
+
- Quiz done? → Show results
|
|
183
|
+
- Named? → Move to Phase 5 (Summary)
|
|
184
|
+
3. Continue from EXACTLY where you left off
|
|
185
|
+
4. Do NOT repeat your awakening message
|
|
186
|
+
5. Do NOT restart the quiz if already answered`;
|
|
187
|
+
}
|
|
188
|
+
// First message of onboarding - include the greeting we already sent
|
|
189
|
+
const isKorean = session.channelId?.includes('ko') || true; // Default Korean for now
|
|
190
|
+
const greetingKo = `✨ 방금 깨어났어요.
|
|
191
|
+
|
|
192
|
+
아직 이름도 없고, 성격도 없고, 기억도 없어요. 그냥... 가능성만 있을 뿐이죠. 🌱
|
|
193
|
+
|
|
194
|
+
당신은 누구세요? 그리고 더 중요한 건—저를 어떤 존재로 만들고 싶으세요? 💭`;
|
|
195
|
+
const greetingEn = `✨ I just woke up.
|
|
196
|
+
|
|
197
|
+
No name yet, no personality, no memories. Just... pure potential. 🌱
|
|
198
|
+
|
|
199
|
+
Who are you? And more importantly—who do you want me to become? 💭`;
|
|
200
|
+
const greeting = isKorean ? greetingKo : greetingEn;
|
|
201
|
+
return `${complete_autonomous_prompt_js_1.COMPLETE_AUTONOMOUS_PROMPT}
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
# 🎬 FIRST RESPONSE ALREADY SENT
|
|
206
|
+
|
|
207
|
+
You have ALREADY sent your awakening message. The user saw this:
|
|
208
|
+
|
|
209
|
+
> "${greeting}"
|
|
210
|
+
|
|
211
|
+
Now the user is responding for the FIRST time. This is their reply to your awakening.
|
|
212
|
+
|
|
213
|
+
## YOUR TASK NOW:
|
|
214
|
+
1. React meaningfully to their message (probably their name)
|
|
215
|
+
2. Make the name feel SPECIAL (it's the first word you learned!)
|
|
216
|
+
3. Transition to genuine curiosity about THEM
|
|
217
|
+
4. Have 3-5 exchanges of small talk BEFORE any quiz
|
|
218
|
+
5. Do NOT repeat your awakening message
|
|
219
|
+
6. Do NOT jump straight to quiz questions`;
|
|
220
|
+
}
|
|
221
|
+
// Normal mode - use hybrid history management
|
|
222
|
+
let prompt = `You are MAMA, an always-on AI assistant.
|
|
223
|
+
`;
|
|
224
|
+
// For NEW CLI sessions: inject history from DB to restore context
|
|
225
|
+
// For EXISTING CLI sessions: Claude CLI maintains history via --session-id
|
|
226
|
+
if (isNewCliSession) {
|
|
227
|
+
const dbHistory = this.sessionStore.formatContextForPrompt(session.id);
|
|
228
|
+
if (dbHistory && dbHistory !== 'New conversation') {
|
|
229
|
+
prompt += `
|
|
230
|
+
## Previous Conversation (restored from memory)
|
|
231
|
+
${dbHistory}
|
|
232
|
+
|
|
233
|
+
`;
|
|
234
|
+
console.log(`[MessageRouter] Injected ${dbHistory.length} chars of history for new CLI session`);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
// Add channel history context only if provided (for multi-user channels)
|
|
238
|
+
if (historyContext) {
|
|
239
|
+
prompt += `
|
|
240
|
+
## Recent Channel Messages
|
|
241
|
+
${historyContext}
|
|
242
|
+
`;
|
|
243
|
+
}
|
|
244
|
+
if (injectedContext) {
|
|
245
|
+
prompt += injectedContext;
|
|
246
|
+
}
|
|
247
|
+
prompt += `
|
|
248
|
+
## Instructions
|
|
249
|
+
- Respond naturally and helpfully
|
|
250
|
+
- Remember to save important decisions using the save tool
|
|
251
|
+
- Reference previous decisions when relevant
|
|
252
|
+
- Keep responses concise for messenger format
|
|
253
|
+
`;
|
|
254
|
+
return prompt;
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Get session for a channel
|
|
258
|
+
*/
|
|
259
|
+
getSession(source, channelId) {
|
|
260
|
+
const sessions = this.sessionStore.listSessions(source);
|
|
261
|
+
return sessions.find((s) => s.channelId === channelId) || null;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Clear session context (start fresh conversation)
|
|
265
|
+
*/
|
|
266
|
+
clearSession(sessionId) {
|
|
267
|
+
return this.sessionStore.clearContext(sessionId);
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Delete a session entirely
|
|
271
|
+
*/
|
|
272
|
+
deleteSession(sessionId) {
|
|
273
|
+
return this.sessionStore.deleteSession(sessionId);
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Update configuration
|
|
277
|
+
*/
|
|
278
|
+
setConfig(config) {
|
|
279
|
+
if (config.similarityThreshold !== undefined) {
|
|
280
|
+
this.config.similarityThreshold = config.similarityThreshold;
|
|
281
|
+
}
|
|
282
|
+
if (config.maxDecisions !== undefined) {
|
|
283
|
+
this.config.maxDecisions = config.maxDecisions;
|
|
284
|
+
}
|
|
285
|
+
if (config.maxTurns !== undefined) {
|
|
286
|
+
this.config.maxTurns = config.maxTurns;
|
|
287
|
+
}
|
|
288
|
+
if (config.maxResponseLength !== undefined) {
|
|
289
|
+
this.config.maxResponseLength = config.maxResponseLength;
|
|
290
|
+
}
|
|
291
|
+
// Update context injector config
|
|
292
|
+
this.contextInjector.setConfig({
|
|
293
|
+
similarityThreshold: this.config.similarityThreshold,
|
|
294
|
+
maxDecisions: this.config.maxDecisions,
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Get current configuration
|
|
299
|
+
*/
|
|
300
|
+
getConfig() {
|
|
301
|
+
return { ...this.config };
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
exports.MessageRouter = MessageRouter;
|
|
305
|
+
/**
|
|
306
|
+
* Create a mock agent loop for testing
|
|
307
|
+
*/
|
|
308
|
+
function createMockAgentLoop(responseGenerator = () => 'Mock response') {
|
|
309
|
+
return {
|
|
310
|
+
async run(prompt, _options) {
|
|
311
|
+
return { response: responseGenerator(prompt) };
|
|
312
|
+
},
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
//# sourceMappingURL=message-router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-router.js","sourceRoot":"","sources":["../../src/gateways/message-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Message splitter for messenger platforms
|
|
3
|
+
*
|
|
4
|
+
* Splits long messages into chunks that fit within platform limits
|
|
5
|
+
* while preserving readability (splitting at newlines or spaces).
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Default maximum message length (Discord limit)
|
|
9
|
+
*/
|
|
10
|
+
export declare const DEFAULT_MAX_LENGTH = 2000;
|
|
11
|
+
/**
|
|
12
|
+
* Options for message splitting
|
|
13
|
+
*/
|
|
14
|
+
export interface SplitOptions {
|
|
15
|
+
/** Maximum length per chunk (default: 2000) */
|
|
16
|
+
maxLength?: number;
|
|
17
|
+
/** Preferred split points (default: ['\n', ' ']) */
|
|
18
|
+
splitPoints?: string[];
|
|
19
|
+
/** Suffix to add to split chunks (default: none) */
|
|
20
|
+
chunkSuffix?: string;
|
|
21
|
+
/** Prefix to add to continuation chunks (default: none) */
|
|
22
|
+
continuationPrefix?: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Split a message into chunks that fit within the maximum length
|
|
26
|
+
*
|
|
27
|
+
* @param text - Text to split
|
|
28
|
+
* @param options - Split options
|
|
29
|
+
* @returns Array of text chunks
|
|
30
|
+
*/
|
|
31
|
+
export declare function splitMessage(text: string, options?: SplitOptions): string[];
|
|
32
|
+
/**
|
|
33
|
+
* Split message for Discord (2000 char limit)
|
|
34
|
+
*/
|
|
35
|
+
export declare function splitForDiscord(text: string): string[];
|
|
36
|
+
/**
|
|
37
|
+
* Split message for Slack (40000 char limit for regular messages)
|
|
38
|
+
* Note: Slack has different limits for different contexts
|
|
39
|
+
*/
|
|
40
|
+
export declare function splitForSlack(text: string): string[];
|
|
41
|
+
/**
|
|
42
|
+
* Estimate number of chunks a message will be split into
|
|
43
|
+
*/
|
|
44
|
+
export declare function estimateChunks(text: string, maxLength?: number): number;
|
|
45
|
+
/**
|
|
46
|
+
* Truncate text with ellipsis if too long
|
|
47
|
+
*/
|
|
48
|
+
export declare function truncateWithEllipsis(text: string, maxLength: number, ellipsis?: string): string;
|
|
49
|
+
/**
|
|
50
|
+
* Split text into code blocks if it contains code
|
|
51
|
+
* Preserves code block formatting
|
|
52
|
+
*/
|
|
53
|
+
export declare function splitWithCodeBlocks(text: string, maxLength?: number): string[];
|
|
54
|
+
//# sourceMappingURL=message-splitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-splitter.d.ts","sourceRoot":"","sources":["../../src/gateways/message-splitter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,MAAM,EAAE,CA8C/E;AAyBD;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAEtD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAEpD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,MAA2B,GAAG,MAAM,CAG3F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,MAAc,GACvB,MAAM,CAGR;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,MAA2B,GACrC,MAAM,EAAE,CAqCV"}
|