@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,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Module for MAMA Standalone
|
|
3
|
+
*
|
|
4
|
+
* Exports:
|
|
5
|
+
* - AgentLoop - Main agent loop orchestrator
|
|
6
|
+
* - GatewayToolExecutor - Gateway tool executor (NOT MCP)
|
|
7
|
+
* - Types - All type definitions
|
|
8
|
+
*/
|
|
9
|
+
export { AgentLoop } from './agent-loop.js';
|
|
10
|
+
export { GatewayToolExecutor } from './gateway-tool-executor.js';
|
|
11
|
+
export type { MessageRole, ContentBlockType, TextBlock, ToolUseBlock, ToolResultBlock, ContentBlock, Message, StopReason, Usage, ClaudeResponse, ClaudeErrorResponse, ClaudeRequest, ToolInputSchema, ToolDefinition, SaveDecisionInput, SaveCheckpointInput, SaveInput, SearchInput, UpdateInput, LoadCheckpointInput, GatewayToolInput, GatewayToolName, SaveResult, SearchResultItem, SearchResult, UpdateResult, LoadCheckpointResult, GatewayToolResult, AgentLoopOptions, TurnInfo, AgentLoopResult, ClaudeClientOptions, ClaudeHeaders, GatewayToolExecutorOptions, MAMAApiInterface, AgentErrorCode, StreamCallbacks, } from './types.js';
|
|
12
|
+
export { AgentError } from './types.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGjE,YAAY,EAEV,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,OAAO,EACP,UAAU,EACV,KAAK,EACL,cAAc,EACd,mBAAmB,EACnB,aAAa,EAGb,eAAe,EACf,cAAc,EAGd,iBAAiB,EACjB,mBAAmB,EACnB,SAAS,EACT,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EAGf,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EAGjB,gBAAgB,EAChB,QAAQ,EACR,eAAe,EAGf,mBAAmB,EACnB,aAAa,EACb,0BAA0B,EAC1B,gBAAgB,EAGhB,cAAc,EAGd,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Agent Module for MAMA Standalone
|
|
4
|
+
*
|
|
5
|
+
* Exports:
|
|
6
|
+
* - AgentLoop - Main agent loop orchestrator
|
|
7
|
+
* - GatewayToolExecutor - Gateway tool executor (NOT MCP)
|
|
8
|
+
* - Types - All type definitions
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.AgentError = exports.GatewayToolExecutor = exports.AgentLoop = void 0;
|
|
12
|
+
var agent_loop_js_1 = require("./agent-loop.js");
|
|
13
|
+
Object.defineProperty(exports, "AgentLoop", { enumerable: true, get: function () { return agent_loop_js_1.AgentLoop; } });
|
|
14
|
+
var gateway_tool_executor_js_1 = require("./gateway-tool-executor.js");
|
|
15
|
+
Object.defineProperty(exports, "GatewayToolExecutor", { enumerable: true, get: function () { return gateway_tool_executor_js_1.GatewayToolExecutor; } });
|
|
16
|
+
var types_js_1 = require("./types.js");
|
|
17
|
+
Object.defineProperty(exports, "AgentError", { enumerable: true, get: function () { return types_js_1.AgentError; } });
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,iDAA4C;AAAnC,0GAAA,SAAS,OAAA;AAClB,uEAAiE;AAAxD,+HAAA,mBAAmB,OAAA;AA0D5B,uCAAwC;AAA/B,sGAAA,UAAU,OAAA"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MAMA Tool Executor for MAMA Standalone
|
|
3
|
+
*
|
|
4
|
+
* Executes MAMA gateway tools (mama_search, mama_save, mama_update, mama_load_checkpoint, Read, discord_send).
|
|
5
|
+
* NOT MCP - uses Claude Messages API tool definitions.
|
|
6
|
+
* Supports both direct API integration and mock API for testing.
|
|
7
|
+
*/
|
|
8
|
+
import type { GatewayToolName, MAMAApiInterface } from './types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Discord gateway interface for sending messages
|
|
11
|
+
*/
|
|
12
|
+
export interface DiscordGatewayInterface {
|
|
13
|
+
sendMessage(channelId: string, message: string): Promise<void>;
|
|
14
|
+
sendImage(channelId: string, imagePath: string, caption?: string): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
export declare class MCPExecutor {
|
|
17
|
+
private mamaApi;
|
|
18
|
+
private readonly dbPath?;
|
|
19
|
+
private discordGateway;
|
|
20
|
+
constructor(options?: {
|
|
21
|
+
dbPath?: string;
|
|
22
|
+
mamaApi?: MAMAApiInterface;
|
|
23
|
+
});
|
|
24
|
+
/**
|
|
25
|
+
* Set Discord gateway for discord_send tool
|
|
26
|
+
*/
|
|
27
|
+
setDiscordGateway(gateway: DiscordGatewayInterface): void;
|
|
28
|
+
/**
|
|
29
|
+
* Initialize the MAMA API by importing from mcp-server package
|
|
30
|
+
* Called lazily on first tool execution if not provided in constructor
|
|
31
|
+
*/
|
|
32
|
+
private initializeMAMAApi;
|
|
33
|
+
/**
|
|
34
|
+
* Execute an MCP tool
|
|
35
|
+
*
|
|
36
|
+
* @param toolName - Name of the tool to execute
|
|
37
|
+
* @param input - Tool input parameters
|
|
38
|
+
* @returns Tool execution result
|
|
39
|
+
* @throws AgentError on tool errors
|
|
40
|
+
*/
|
|
41
|
+
execute(toolName: string, input: any): Promise<any>;
|
|
42
|
+
/**
|
|
43
|
+
* Execute save tool (decision or checkpoint)
|
|
44
|
+
*/
|
|
45
|
+
private executeSave;
|
|
46
|
+
/**
|
|
47
|
+
* Execute search tool
|
|
48
|
+
*/
|
|
49
|
+
private executeSearch;
|
|
50
|
+
/**
|
|
51
|
+
* Execute update tool
|
|
52
|
+
*/
|
|
53
|
+
private executeUpdate;
|
|
54
|
+
/**
|
|
55
|
+
* Execute load_checkpoint tool
|
|
56
|
+
*/
|
|
57
|
+
private executeLoadCheckpoint;
|
|
58
|
+
/**
|
|
59
|
+
* Execute read tool - Read file from filesystem
|
|
60
|
+
*/
|
|
61
|
+
private executeRead;
|
|
62
|
+
/**
|
|
63
|
+
* Execute discord_send tool - Send message/image to Discord channel
|
|
64
|
+
*/
|
|
65
|
+
private executeDiscordSend;
|
|
66
|
+
/**
|
|
67
|
+
* Get the list of valid tool names
|
|
68
|
+
*/
|
|
69
|
+
static getValidTools(): GatewayToolName[];
|
|
70
|
+
/**
|
|
71
|
+
* Check if a tool name is valid
|
|
72
|
+
*/
|
|
73
|
+
static isValidTool(toolName: string): toolName is GatewayToolName;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=mcp-executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-executor.d.ts","sourceRoot":"","sources":["../../src/agent/mcp-executor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EACV,eAAe,EAWf,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAGpB;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClF;AAeD,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,cAAc,CAAwC;gBAElD,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,gBAAgB,CAAA;KAAO;IAQzE;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI;IAIzD;;;OAGG;YACW,iBAAiB;IAgD/B;;;;;;;OAOG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IA2DzD;;OAEG;YACW,WAAW;IA6CzB;;OAEG;YACW,aAAa;IAyC3B;;OAEG;YACW,aAAa;IAkC3B;;OAEG;YACW,qBAAqB;IAOnC;;OAEG;YACW,WAAW;IA+BzB;;OAEG;YACW,kBAAkB;IA8BhC;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,eAAe,EAAE;IAIzC;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,IAAI,eAAe;CAGlE"}
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MAMA Tool Executor for MAMA Standalone
|
|
4
|
+
*
|
|
5
|
+
* Executes MAMA gateway tools (mama_search, mama_save, mama_update, mama_load_checkpoint, Read, discord_send).
|
|
6
|
+
* NOT MCP - uses Claude Messages API tool definitions.
|
|
7
|
+
* Supports both direct API integration and mock API for testing.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.MCPExecutor = void 0;
|
|
11
|
+
const fs_1 = require("fs");
|
|
12
|
+
const path_1 = require("path");
|
|
13
|
+
const phase_7_integrations_js_1 = require("../onboarding/phase-7-integrations.js");
|
|
14
|
+
const types_js_1 = require("./types.js");
|
|
15
|
+
/**
|
|
16
|
+
* Valid MAMA tool names (Gateway tools, NOT MCP)
|
|
17
|
+
*/
|
|
18
|
+
const VALID_TOOLS = [
|
|
19
|
+
'mama_search',
|
|
20
|
+
'mama_save',
|
|
21
|
+
'mama_update',
|
|
22
|
+
'mama_load_checkpoint',
|
|
23
|
+
'Read',
|
|
24
|
+
'discord_send',
|
|
25
|
+
'save_integration_token',
|
|
26
|
+
];
|
|
27
|
+
class MCPExecutor {
|
|
28
|
+
mamaApi = null;
|
|
29
|
+
dbPath;
|
|
30
|
+
discordGateway = null;
|
|
31
|
+
constructor(options = {}) {
|
|
32
|
+
this.dbPath = options.dbPath;
|
|
33
|
+
if (options.mamaApi) {
|
|
34
|
+
this.mamaApi = options.mamaApi;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Set Discord gateway for discord_send tool
|
|
39
|
+
*/
|
|
40
|
+
setDiscordGateway(gateway) {
|
|
41
|
+
this.discordGateway = gateway;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Initialize the MAMA API by importing from mcp-server package
|
|
45
|
+
* Called lazily on first tool execution if not provided in constructor
|
|
46
|
+
*/
|
|
47
|
+
async initializeMAMAApi() {
|
|
48
|
+
if (this.mamaApi) {
|
|
49
|
+
return this.mamaApi;
|
|
50
|
+
}
|
|
51
|
+
try {
|
|
52
|
+
// Set database path if provided
|
|
53
|
+
if (this.dbPath) {
|
|
54
|
+
process.env.MAMA_DB_PATH = this.dbPath;
|
|
55
|
+
}
|
|
56
|
+
// Dynamic import of MAMA mcp-server modules
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
58
|
+
let mama, dbManager;
|
|
59
|
+
try {
|
|
60
|
+
mama = require('@jungjaehoon/mama-server/src/mama/mama-api');
|
|
61
|
+
dbManager = require('@jungjaehoon/mama-server/src/mama/db-manager');
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
// Fallback to direct path (for development)
|
|
65
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
66
|
+
mama = require('@jungjaehoon/mama-server/src/mama/mama-api.js');
|
|
67
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
68
|
+
dbManager = require('@jungjaehoon/mama-server/src/mama/db-manager.js');
|
|
69
|
+
}
|
|
70
|
+
// Initialize the database before using mama-api functions
|
|
71
|
+
await dbManager.initDB();
|
|
72
|
+
this.mamaApi = {
|
|
73
|
+
save: mama.save.bind(mama),
|
|
74
|
+
saveCheckpoint: mama.saveCheckpoint.bind(mama),
|
|
75
|
+
listDecisions: mama.list.bind(mama), // Note: mama exports listDecisions as 'list'
|
|
76
|
+
suggest: mama.suggest.bind(mama),
|
|
77
|
+
updateOutcome: mama.updateOutcome.bind(mama),
|
|
78
|
+
loadCheckpoint: mama.loadCheckpoint.bind(mama),
|
|
79
|
+
};
|
|
80
|
+
return this.mamaApi;
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
throw new types_js_1.AgentError(`Failed to initialize MAMA API: ${error instanceof Error ? error.message : String(error)}`, 'TOOL_ERROR', error instanceof Error ? error : undefined, false);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Execute an MCP tool
|
|
88
|
+
*
|
|
89
|
+
* @param toolName - Name of the tool to execute
|
|
90
|
+
* @param input - Tool input parameters
|
|
91
|
+
* @returns Tool execution result
|
|
92
|
+
* @throws AgentError on tool errors
|
|
93
|
+
*/
|
|
94
|
+
async execute(toolName, input) {
|
|
95
|
+
if (!VALID_TOOLS.includes(toolName)) {
|
|
96
|
+
throw new types_js_1.AgentError(`Unknown tool: ${toolName}. Valid tools: ${VALID_TOOLS.join(', ')}`, 'UNKNOWN_TOOL', undefined, false);
|
|
97
|
+
}
|
|
98
|
+
try {
|
|
99
|
+
// Handle non-MAMA tools first
|
|
100
|
+
switch (toolName) {
|
|
101
|
+
case 'Read':
|
|
102
|
+
return await this.executeRead(input);
|
|
103
|
+
case 'discord_send':
|
|
104
|
+
return await this.executeDiscordSend(input);
|
|
105
|
+
case 'save_integration_token':
|
|
106
|
+
return await (0, phase_7_integrations_js_1.handleSaveIntegrationToken)(input);
|
|
107
|
+
}
|
|
108
|
+
// MAMA tools require API
|
|
109
|
+
const api = await this.initializeMAMAApi();
|
|
110
|
+
switch (toolName) {
|
|
111
|
+
case 'mama_save':
|
|
112
|
+
return await this.executeSave(api, input);
|
|
113
|
+
case 'mama_search':
|
|
114
|
+
return await this.executeSearch(api, input);
|
|
115
|
+
case 'mama_update':
|
|
116
|
+
return await this.executeUpdate(api, input);
|
|
117
|
+
case 'mama_load_checkpoint':
|
|
118
|
+
return await this.executeLoadCheckpoint(api, input);
|
|
119
|
+
default:
|
|
120
|
+
throw new types_js_1.AgentError(`Unknown tool: ${toolName}`, 'UNKNOWN_TOOL', undefined, false);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
if (error instanceof types_js_1.AgentError) {
|
|
125
|
+
throw error;
|
|
126
|
+
}
|
|
127
|
+
throw new types_js_1.AgentError(`Tool execution failed (${toolName}): ${error instanceof Error ? error.message : String(error)}`, 'TOOL_ERROR', error instanceof Error ? error : undefined, false);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Execute save tool (decision or checkpoint)
|
|
132
|
+
*/
|
|
133
|
+
async executeSave(api, input) {
|
|
134
|
+
if (input.type === 'decision') {
|
|
135
|
+
const decisionInput = input;
|
|
136
|
+
if (!decisionInput.topic || !decisionInput.decision || !decisionInput.reasoning) {
|
|
137
|
+
return {
|
|
138
|
+
success: false,
|
|
139
|
+
message: 'Decision requires: topic, decision, reasoning',
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
// Map MCP 'decision' type to mama-api 'user_decision' type
|
|
143
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
144
|
+
return await api.save({
|
|
145
|
+
topic: decisionInput.topic,
|
|
146
|
+
decision: decisionInput.decision,
|
|
147
|
+
reasoning: decisionInput.reasoning,
|
|
148
|
+
confidence: decisionInput.confidence ?? 0.5,
|
|
149
|
+
type: 'user_decision', // mama-api expects 'user_decision' not 'decision'
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
if (input.type === 'checkpoint') {
|
|
153
|
+
const checkpointInput = input;
|
|
154
|
+
if (!checkpointInput.summary) {
|
|
155
|
+
return {
|
|
156
|
+
success: false,
|
|
157
|
+
message: 'Checkpoint requires: summary',
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
return await api.saveCheckpoint(checkpointInput.summary, checkpointInput.open_files ?? [], checkpointInput.next_steps ?? '');
|
|
161
|
+
}
|
|
162
|
+
return {
|
|
163
|
+
success: false,
|
|
164
|
+
message: `Invalid save type: ${input.type}. Must be 'decision' or 'checkpoint'`,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Execute search tool
|
|
169
|
+
*/
|
|
170
|
+
async executeSearch(api, input) {
|
|
171
|
+
const { query, type, limit = 10 } = input;
|
|
172
|
+
// If no query provided, return recent items using listDecisions
|
|
173
|
+
if (!query) {
|
|
174
|
+
const decisions = await api.listDecisions({ limit });
|
|
175
|
+
const results = Array.isArray(decisions) ? decisions : [];
|
|
176
|
+
// Filter by type if specified
|
|
177
|
+
const filteredResults = type && type !== 'all'
|
|
178
|
+
? results.filter((item) => {
|
|
179
|
+
const typedItem = item;
|
|
180
|
+
return typedItem.type === type;
|
|
181
|
+
})
|
|
182
|
+
: results;
|
|
183
|
+
return {
|
|
184
|
+
success: true,
|
|
185
|
+
results: filteredResults,
|
|
186
|
+
count: filteredResults.length,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
// Semantic search using suggest
|
|
190
|
+
const result = await api.suggest(query, { limit });
|
|
191
|
+
// Filter by type if specified
|
|
192
|
+
let filteredResults = result.results ?? [];
|
|
193
|
+
if (type && type !== 'all') {
|
|
194
|
+
filteredResults = filteredResults.filter((item) => item.type === type);
|
|
195
|
+
}
|
|
196
|
+
return {
|
|
197
|
+
success: true,
|
|
198
|
+
results: filteredResults,
|
|
199
|
+
count: filteredResults.length,
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Execute update tool
|
|
204
|
+
*/
|
|
205
|
+
async executeUpdate(api, input) {
|
|
206
|
+
const { id, outcome, reason } = input;
|
|
207
|
+
if (!id) {
|
|
208
|
+
return {
|
|
209
|
+
success: false,
|
|
210
|
+
message: 'Update requires: id',
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
if (!outcome) {
|
|
214
|
+
return {
|
|
215
|
+
success: false,
|
|
216
|
+
message: 'Update requires: outcome',
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
// Normalize outcome to uppercase
|
|
220
|
+
const normalizedOutcome = outcome.toUpperCase();
|
|
221
|
+
const validOutcomes = ['SUCCESS', 'FAILED', 'PARTIAL'];
|
|
222
|
+
if (!validOutcomes.includes(normalizedOutcome)) {
|
|
223
|
+
return {
|
|
224
|
+
success: false,
|
|
225
|
+
message: `Invalid outcome: ${outcome}. Must be one of: success, failed, partial`,
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
return await api.updateOutcome(id, {
|
|
229
|
+
outcome: normalizedOutcome,
|
|
230
|
+
failure_reason: reason,
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Execute load_checkpoint tool
|
|
235
|
+
*/
|
|
236
|
+
async executeLoadCheckpoint(api, _input) {
|
|
237
|
+
return await api.loadCheckpoint();
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Execute read tool - Read file from filesystem
|
|
241
|
+
*/
|
|
242
|
+
async executeRead(input) {
|
|
243
|
+
const { path: filePath } = input;
|
|
244
|
+
if (!filePath) {
|
|
245
|
+
return { success: false, error: 'Path is required' };
|
|
246
|
+
}
|
|
247
|
+
// Expand ~ to home directory
|
|
248
|
+
const homeDir = process.env.HOME || process.env.USERPROFILE || '';
|
|
249
|
+
const expandedPath = filePath.startsWith('~/') ? (0, path_1.join)(homeDir, filePath.slice(2)) : filePath;
|
|
250
|
+
// Security: Only allow reading from ~/.mama/ directory
|
|
251
|
+
const mamaDir = (0, path_1.join)(homeDir, '.mama');
|
|
252
|
+
if (!expandedPath.startsWith(mamaDir)) {
|
|
253
|
+
return { success: false, error: `Access denied: Can only read files from ${mamaDir}` };
|
|
254
|
+
}
|
|
255
|
+
if (!(0, fs_1.existsSync)(expandedPath)) {
|
|
256
|
+
return { success: false, error: `File not found: ${expandedPath}` };
|
|
257
|
+
}
|
|
258
|
+
try {
|
|
259
|
+
const content = (0, fs_1.readFileSync)(expandedPath, 'utf-8');
|
|
260
|
+
return { success: true, content };
|
|
261
|
+
}
|
|
262
|
+
catch (err) {
|
|
263
|
+
return { success: false, error: `Failed to read file: ${err}` };
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Execute discord_send tool - Send message/image to Discord channel
|
|
268
|
+
*/
|
|
269
|
+
async executeDiscordSend(input) {
|
|
270
|
+
const { channel_id, message, image_path } = input;
|
|
271
|
+
if (!channel_id) {
|
|
272
|
+
return { success: false, error: 'channel_id is required' };
|
|
273
|
+
}
|
|
274
|
+
if (!this.discordGateway) {
|
|
275
|
+
return { success: false, error: 'Discord gateway not configured' };
|
|
276
|
+
}
|
|
277
|
+
try {
|
|
278
|
+
if (image_path) {
|
|
279
|
+
await this.discordGateway.sendImage(channel_id, image_path, message);
|
|
280
|
+
}
|
|
281
|
+
else if (message) {
|
|
282
|
+
await this.discordGateway.sendMessage(channel_id, message);
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
return { success: false, error: 'Either message or image_path is required' };
|
|
286
|
+
}
|
|
287
|
+
return { success: true };
|
|
288
|
+
}
|
|
289
|
+
catch (err) {
|
|
290
|
+
return { success: false, error: `Failed to send to Discord: ${err}` };
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Get the list of valid tool names
|
|
295
|
+
*/
|
|
296
|
+
static getValidTools() {
|
|
297
|
+
return [...VALID_TOOLS];
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Check if a tool name is valid
|
|
301
|
+
*/
|
|
302
|
+
static isValidTool(toolName) {
|
|
303
|
+
return VALID_TOOLS.includes(toolName);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
exports.MCPExecutor = MCPExecutor;
|
|
307
|
+
//# sourceMappingURL=mcp-executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-executor.js","sourceRoot":"","sources":["../../src/agent/mcp-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Pool - Claude CLI Session Reuse Manager
|
|
3
|
+
*
|
|
4
|
+
* Manages Claude CLI session IDs per channel to enable conversation continuity.
|
|
5
|
+
* Instead of creating new sessions for each message, reuses existing sessions
|
|
6
|
+
* so Claude CLI maintains its own conversation history.
|
|
7
|
+
*
|
|
8
|
+
* Benefits:
|
|
9
|
+
* - 6x token reduction (no manual history injection needed)
|
|
10
|
+
* - Natural conversation flow (Claude remembers context)
|
|
11
|
+
* - Automatic summarization by Claude when context fills up
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Session entry with metadata
|
|
15
|
+
*/
|
|
16
|
+
interface SessionEntry {
|
|
17
|
+
/** Claude CLI session ID */
|
|
18
|
+
sessionId: string;
|
|
19
|
+
/** Last activity timestamp */
|
|
20
|
+
lastActive: number;
|
|
21
|
+
/** Message count in this session */
|
|
22
|
+
messageCount: number;
|
|
23
|
+
/** Creation timestamp */
|
|
24
|
+
createdAt: number;
|
|
25
|
+
/** Whether session is currently in use (locked) */
|
|
26
|
+
inUse: boolean;
|
|
27
|
+
/** Cumulative input tokens for this session */
|
|
28
|
+
totalInputTokens: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Session Pool configuration
|
|
32
|
+
*/
|
|
33
|
+
export interface SessionPoolConfig {
|
|
34
|
+
/** Session timeout in milliseconds (default: 30 minutes) */
|
|
35
|
+
sessionTimeoutMs?: number;
|
|
36
|
+
/** Maximum sessions to keep in pool (default: 100) */
|
|
37
|
+
maxSessions?: number;
|
|
38
|
+
/** Cleanup interval in milliseconds (default: 5 minutes) */
|
|
39
|
+
cleanupIntervalMs?: number;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Session Pool for Claude CLI session management
|
|
43
|
+
*
|
|
44
|
+
* Key design:
|
|
45
|
+
* - Channel key format: "{source}:{channelId}" (e.g., "discord:123456")
|
|
46
|
+
* - Sessions expire after timeout (default 30 min)
|
|
47
|
+
* - Automatic cleanup of stale sessions
|
|
48
|
+
*/
|
|
49
|
+
export declare class SessionPool {
|
|
50
|
+
private sessions;
|
|
51
|
+
private config;
|
|
52
|
+
private cleanupTimer;
|
|
53
|
+
constructor(config?: SessionPoolConfig);
|
|
54
|
+
/**
|
|
55
|
+
* Get or create session ID for a channel
|
|
56
|
+
*
|
|
57
|
+
* With --no-session-persistence flag, Claude CLI doesn't lock session IDs.
|
|
58
|
+
* This allows session reuse for conversation continuity.
|
|
59
|
+
*
|
|
60
|
+
* Auto-resets session when context window reaches 80% (160K tokens).
|
|
61
|
+
*
|
|
62
|
+
* @param channelKey - Channel identifier (format: "{source}:{channelId}")
|
|
63
|
+
* @returns Object with sessionId and isNew flag
|
|
64
|
+
*/
|
|
65
|
+
getSession(channelKey: string): {
|
|
66
|
+
sessionId: string;
|
|
67
|
+
isNew: boolean;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Update token usage for a session
|
|
71
|
+
* Called after each Claude CLI response
|
|
72
|
+
*
|
|
73
|
+
* @param channelKey - Channel identifier
|
|
74
|
+
* @param inputTokens - Input tokens from this request
|
|
75
|
+
* @returns Current total tokens and whether threshold is approaching
|
|
76
|
+
*/
|
|
77
|
+
updateTokens(channelKey: string, inputTokens: number): {
|
|
78
|
+
totalTokens: number;
|
|
79
|
+
nearThreshold: boolean;
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Get current token usage for a session
|
|
83
|
+
*/
|
|
84
|
+
getTokenUsage(channelKey: string): number;
|
|
85
|
+
/**
|
|
86
|
+
* Legacy method for backward compatibility
|
|
87
|
+
* @deprecated Use getSession() instead
|
|
88
|
+
*/
|
|
89
|
+
getSessionId(channelKey: string): string;
|
|
90
|
+
/**
|
|
91
|
+
* Release a session after use (no-op since we use fresh sessions)
|
|
92
|
+
*/
|
|
93
|
+
releaseSession(_channelKey: string): void;
|
|
94
|
+
/**
|
|
95
|
+
* Create a new session for a channel
|
|
96
|
+
*/
|
|
97
|
+
private createSession;
|
|
98
|
+
/**
|
|
99
|
+
* Force create a new session (for /clear command)
|
|
100
|
+
*/
|
|
101
|
+
resetSession(channelKey: string): string;
|
|
102
|
+
/**
|
|
103
|
+
* Check if a session exists and is active
|
|
104
|
+
*/
|
|
105
|
+
hasActiveSession(channelKey: string): boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Get session info for a channel
|
|
108
|
+
*/
|
|
109
|
+
getSessionInfo(channelKey: string): SessionEntry | null;
|
|
110
|
+
/**
|
|
111
|
+
* Get all active sessions (for debugging/monitoring)
|
|
112
|
+
*/
|
|
113
|
+
listSessions(): Map<string, SessionEntry>;
|
|
114
|
+
/**
|
|
115
|
+
* Get active session count
|
|
116
|
+
*/
|
|
117
|
+
getActiveSessionCount(): number;
|
|
118
|
+
/**
|
|
119
|
+
* Evict the oldest (least recently used) session
|
|
120
|
+
*/
|
|
121
|
+
private evictOldestSession;
|
|
122
|
+
/**
|
|
123
|
+
* Clean up expired sessions
|
|
124
|
+
*/
|
|
125
|
+
cleanup(): number;
|
|
126
|
+
/**
|
|
127
|
+
* Start periodic cleanup timer
|
|
128
|
+
*/
|
|
129
|
+
private startCleanupTimer;
|
|
130
|
+
/**
|
|
131
|
+
* Stop cleanup timer and clear all sessions
|
|
132
|
+
*/
|
|
133
|
+
dispose(): void;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Get global session pool instance
|
|
137
|
+
*/
|
|
138
|
+
export declare function getSessionPool(): SessionPool;
|
|
139
|
+
/**
|
|
140
|
+
* Set global session pool instance (for testing)
|
|
141
|
+
*/
|
|
142
|
+
export declare function setSessionPool(pool: SessionPool): void;
|
|
143
|
+
/**
|
|
144
|
+
* Build channel key from source and channel ID
|
|
145
|
+
*/
|
|
146
|
+
export declare function buildChannelKey(source: string, channelId: string): string;
|
|
147
|
+
export {};
|
|
148
|
+
//# sourceMappingURL=session-pool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-pool.d.ts","sourceRoot":"","sources":["../../src/agent/session-pool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH;;GAEG;AACH,UAAU,YAAY;IACpB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,KAAK,EAAE,OAAO,CAAC;IACf,+CAA+C;IAC/C,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAQD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAMD;;;;;;;GAOG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAwC;IACxD,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,YAAY,CAA+B;gBAEvC,MAAM,GAAE,iBAAsB;IAW1C;;;;;;;;;;OAUG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE;IAkCrE;;;;;;;OAOG;IACH,YAAY,CACV,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE;IAqBlD;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAKzC;;;OAGG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAIxC;;OAEG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAKzC;;OAEG;IACH,OAAO,CAAC,aAAa;IAwBrB;;OAEG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAKxC;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAQ7C;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAIvD;;OAEG;IACH,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC;IAIzC;;OAEG;IACH,qBAAqB,IAAI,MAAM;IAI/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;OAEG;IACH,OAAO,IAAI,MAAM;IAkBjB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;OAEG;IACH,OAAO,IAAI,IAAI;CAOhB;AAOD;;GAEG;AACH,wBAAgB,cAAc,IAAI,WAAW,CAK5C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAEtD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzE"}
|