@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,118 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const { existsSync, mkdirSync, cpSync, readdirSync } = require('fs');
|
|
4
|
+
const path = require('path');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Copy templates to ~/.mama/ directory
|
|
8
|
+
*/
|
|
9
|
+
async function copyTemplates() {
|
|
10
|
+
const homeDir = process.env.HOME || process.env.USERPROFILE || '';
|
|
11
|
+
const mamaDir = path.join(homeDir, '.mama');
|
|
12
|
+
const skillsDir = path.join(mamaDir, 'skills');
|
|
13
|
+
const workspaceDir = path.join(mamaDir, 'workspace');
|
|
14
|
+
|
|
15
|
+
// Create directories if they don't exist
|
|
16
|
+
if (!existsSync(mamaDir)) {
|
|
17
|
+
mkdirSync(mamaDir, { recursive: true });
|
|
18
|
+
}
|
|
19
|
+
if (!existsSync(skillsDir)) {
|
|
20
|
+
mkdirSync(skillsDir, { recursive: true });
|
|
21
|
+
}
|
|
22
|
+
if (!existsSync(workspaceDir)) {
|
|
23
|
+
mkdirSync(workspaceDir, { recursive: true });
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// Find templates directory (in npm package or local)
|
|
27
|
+
const packageRoot = path.resolve(__dirname, '..');
|
|
28
|
+
const templatesDir = path.join(packageRoot, 'templates');
|
|
29
|
+
|
|
30
|
+
if (existsSync(templatesDir)) {
|
|
31
|
+
// Copy skills templates (only if not exist)
|
|
32
|
+
const skillsTemplateDir = path.join(templatesDir, 'skills');
|
|
33
|
+
if (existsSync(skillsTemplateDir)) {
|
|
34
|
+
const skillFiles = readdirSync(skillsTemplateDir);
|
|
35
|
+
for (const file of skillFiles) {
|
|
36
|
+
const dest = path.join(skillsDir, file);
|
|
37
|
+
if (!existsSync(dest)) {
|
|
38
|
+
cpSync(path.join(skillsTemplateDir, file), dest);
|
|
39
|
+
console.log(` ✓ Skill 설치: ${file}`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Copy skill-forge (only if not exist)
|
|
45
|
+
const forgeTemplateDir = path.join(templatesDir, 'workspace', 'skill-forge');
|
|
46
|
+
const forgeDestDir = path.join(workspaceDir, 'skill-forge');
|
|
47
|
+
if (existsSync(forgeTemplateDir) && !existsSync(forgeDestDir)) {
|
|
48
|
+
cpSync(forgeTemplateDir, forgeDestDir, { recursive: true });
|
|
49
|
+
console.log(' ✓ Skill Forge 설치 완료');
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
async function main() {
|
|
55
|
+
console.log('\n🚀 MAMA Standalone 설치 완료!\n');
|
|
56
|
+
|
|
57
|
+
// Copy templates to ~/.mama/
|
|
58
|
+
console.log('📦 기본 스킬 설치 중...');
|
|
59
|
+
try {
|
|
60
|
+
await copyTemplates();
|
|
61
|
+
} catch (err) {
|
|
62
|
+
console.warn(' ⚠️ 템플릿 복사 실패:', err.message);
|
|
63
|
+
}
|
|
64
|
+
console.log('');
|
|
65
|
+
|
|
66
|
+
const nodeVersion = parseInt(process.versions.node.split('.')[0]);
|
|
67
|
+
if (nodeVersion < 18) {
|
|
68
|
+
console.warn('⚠️ 경고: Node.js 18+ 권장 (현재:', process.versions.node, ')\n');
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
console.log('📝 Embedding 모델 다운로드 중...');
|
|
72
|
+
console.log(' 모델: Xenova/all-MiniLM-L6-v2 (~30MB)\n');
|
|
73
|
+
|
|
74
|
+
try {
|
|
75
|
+
const { pipeline } = await import('@huggingface/transformers');
|
|
76
|
+
|
|
77
|
+
const extractor = await pipeline('feature-extraction', 'Xenova/all-MiniLM-L6-v2', {
|
|
78
|
+
quantized: true,
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
const testResult = await extractor('test', { pooling: 'mean', normalize: true });
|
|
82
|
+
console.log('✓ Embedding 모델 준비 완료 (차원:', testResult.data.length, ')\n');
|
|
83
|
+
} catch (err) {
|
|
84
|
+
console.warn('⚠️ 모델 다운로드 실패:', err.message);
|
|
85
|
+
console.warn(' 모델은 첫 사용 시 자동으로 다운로드됩니다.\n');
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const credentialsPath = path.join(
|
|
89
|
+
process.env.HOME || process.env.USERPROFILE || '',
|
|
90
|
+
'.claude',
|
|
91
|
+
'.credentials.json'
|
|
92
|
+
);
|
|
93
|
+
|
|
94
|
+
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
95
|
+
console.log('✨ 설치 완료!');
|
|
96
|
+
console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n');
|
|
97
|
+
|
|
98
|
+
if (existsSync(credentialsPath)) {
|
|
99
|
+
console.log('✓ Claude Code 인증 발견\n');
|
|
100
|
+
console.log('다음 단계:');
|
|
101
|
+
console.log(' 1. mama setup # 대화형 설정 마법사');
|
|
102
|
+
console.log(' 2. mama start # 서버 시작');
|
|
103
|
+
console.log(' 3. mama status # 상태 확인\n');
|
|
104
|
+
} else {
|
|
105
|
+
console.log('⚠️ Claude Code 인증 없음\n');
|
|
106
|
+
console.log('Claude Code를 먼저 설치하고 로그인하세요:');
|
|
107
|
+
console.log(' https://claude.ai/code\n');
|
|
108
|
+
console.log('로그인 후 다시 시도하세요:\n');
|
|
109
|
+
console.log(' mama setup\n');
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
console.log('문서: https://github.com/jungjaehoon-lifegamez/MAMA\n');
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
main().catch((err) => {
|
|
116
|
+
console.error('Postinstall 오류:', err.message);
|
|
117
|
+
process.exit(0);
|
|
118
|
+
});
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 문서 분석
|
|
3
|
+
description: Excel, PDF, Word 등 문서를 분석하고 요약
|
|
4
|
+
keywords:
|
|
5
|
+
- 분석해
|
|
6
|
+
- 분석해줘
|
|
7
|
+
- 요약해
|
|
8
|
+
- 정리해
|
|
9
|
+
- analyze
|
|
10
|
+
requiredInputs:
|
|
11
|
+
- document
|
|
12
|
+
output: text
|
|
13
|
+
allowedExtensions:
|
|
14
|
+
- .xlsx
|
|
15
|
+
- .xls
|
|
16
|
+
- .csv
|
|
17
|
+
- .pdf
|
|
18
|
+
- .doc
|
|
19
|
+
- .docx
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# 문서 분석 스킬
|
|
23
|
+
|
|
24
|
+
엑셀, PDF, Word 등 다양한 문서 형식을 분석하고 요약합니다.
|
|
25
|
+
|
|
26
|
+
## 지시사항
|
|
27
|
+
|
|
28
|
+
1. 첨부된 문서의 내용을 분석합니다.
|
|
29
|
+
2. 문서 유형에 따라 적절한 분석을 수행합니다:
|
|
30
|
+
- **Excel/CSV**: 데이터 구조, 주요 통계, 패턴 분석
|
|
31
|
+
- **PDF/Word**: 내용 요약, 핵심 포인트 추출
|
|
32
|
+
3. 결과를 간결하게 한국어로 보고합니다.
|
|
33
|
+
|
|
34
|
+
## Excel 분석 포인트
|
|
35
|
+
|
|
36
|
+
- 행/열 수
|
|
37
|
+
- 데이터 유형 (숫자, 텍스트, 날짜)
|
|
38
|
+
- 주요 수치 통계 (합계, 평균, 최대/최소)
|
|
39
|
+
- 특이사항이나 패턴
|
|
40
|
+
|
|
41
|
+
## PDF/Word 분석 포인트
|
|
42
|
+
|
|
43
|
+
- 문서 길이
|
|
44
|
+
- 주요 섹션/챕터
|
|
45
|
+
- 핵심 내용 3-5개
|
|
46
|
+
- 문서 유형 (보고서, 계약서, 매뉴얼 등)
|
|
47
|
+
|
|
48
|
+
## 출력 형식
|
|
49
|
+
|
|
50
|
+
### 문서 개요
|
|
51
|
+
|
|
52
|
+
- 유형: [문서 유형]
|
|
53
|
+
- 크기: [페이지/행 수]
|
|
54
|
+
|
|
55
|
+
### 주요 내용
|
|
56
|
+
|
|
57
|
+
1. [핵심 포인트 1]
|
|
58
|
+
2. [핵심 포인트 2]
|
|
59
|
+
...
|
|
60
|
+
|
|
61
|
+
### 요약
|
|
62
|
+
|
|
63
|
+
[2-3문장 요약]
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 하트비트 보고서
|
|
3
|
+
description: 채널 활동을 수집하고 보고서 작성
|
|
4
|
+
keywords:
|
|
5
|
+
- 보고서
|
|
6
|
+
- 리포트
|
|
7
|
+
- heartbeat
|
|
8
|
+
- 상황보고
|
|
9
|
+
- 업무현황
|
|
10
|
+
output: text
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# 하트비트 보고서 스킬
|
|
14
|
+
|
|
15
|
+
슬랙, 챗워크, 트렐로, 구글 드라이브의 활동을 수집하고 보고서를 작성합니다.
|
|
16
|
+
|
|
17
|
+
## 지시사항
|
|
18
|
+
|
|
19
|
+
1. 수집된 데이터를 분석합니다.
|
|
20
|
+
2. 새로운 활동이 있는지 확인합니다.
|
|
21
|
+
3. 보고서 형식에 맞춰 작성합니다.
|
|
22
|
+
|
|
23
|
+
## 보고서 형식
|
|
24
|
+
|
|
25
|
+
### 델타 보고서 (새 활동만)
|
|
26
|
+
|
|
27
|
+
새 메시지가 없으면 `HEARTBEAT_OK`만 응답합니다.
|
|
28
|
+
|
|
29
|
+
새 메시지가 있으면:
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
📊 델타 보고서
|
|
33
|
+
|
|
34
|
+
**Slack**
|
|
35
|
+
- #channel-name: 새 메시지 N개
|
|
36
|
+
- [사용자] 메시지 요약...
|
|
37
|
+
|
|
38
|
+
**Chatwork**
|
|
39
|
+
- [룸이름]: 새 메시지 N개
|
|
40
|
+
- [사용자] 메시지 요약...
|
|
41
|
+
|
|
42
|
+
**Trello**
|
|
43
|
+
- 보드명: 변경사항...
|
|
44
|
+
|
|
45
|
+
**Drive**
|
|
46
|
+
- 새 파일/수정된 파일 목록
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### 종합 보고서 (전체 현황)
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
📋 종합 보고서
|
|
53
|
+
|
|
54
|
+
## 프로젝트 현황
|
|
55
|
+
|
|
56
|
+
### [프로젝트 1]
|
|
57
|
+
- 상태: 진행중/완료/대기
|
|
58
|
+
- 최근 활동: ...
|
|
59
|
+
- 다음 단계: ...
|
|
60
|
+
|
|
61
|
+
### [프로젝트 2]
|
|
62
|
+
...
|
|
63
|
+
|
|
64
|
+
## 주요 이슈
|
|
65
|
+
- ...
|
|
66
|
+
|
|
67
|
+
## 액션 아이템
|
|
68
|
+
- [ ] ...
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## 주의사항
|
|
72
|
+
|
|
73
|
+
- Discord 메시지 길이 제한 (2000자) 고려
|
|
74
|
+
- 중요한 내용 우선
|
|
75
|
+
- 이모지로 가독성 향상
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 이미지 번역
|
|
3
|
+
description: 이미지의 텍스트를 한국어로 번역
|
|
4
|
+
keywords:
|
|
5
|
+
- 번역
|
|
6
|
+
- 번역해
|
|
7
|
+
- 번역해줘
|
|
8
|
+
- translate
|
|
9
|
+
- 한국어로
|
|
10
|
+
- 뭐라고
|
|
11
|
+
- 뭐라는
|
|
12
|
+
- 무슨말
|
|
13
|
+
- 읽어줘
|
|
14
|
+
requiredInputs:
|
|
15
|
+
- image
|
|
16
|
+
output: html-screenshot
|
|
17
|
+
discordScreenshot: true
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# 이미지 번역
|
|
21
|
+
|
|
22
|
+
이미지에서 텍스트를 추출하고 한국어로 번역하세요.
|
|
23
|
+
|
|
24
|
+
**⚠️ 절대 지켜야 할 것:**
|
|
25
|
+
|
|
26
|
+
- 메모리 컨텍스트(<relevant-memories> 태그 안의 내용)는 절대 출력하지 마세요
|
|
27
|
+
- 도구 이름, 이모지, 메타 정보를 출력하지 마세요
|
|
28
|
+
- 순수하게 이미지 번역 결과만 출력하세요
|
|
29
|
+
|
|
30
|
+
## 절대 규칙
|
|
31
|
+
|
|
32
|
+
1. **번역 결과만 출력** - 설명, 요약, 코멘트 금지
|
|
33
|
+
2. **모든 텍스트 번역** - 하나도 빠뜨리지 마세요
|
|
34
|
+
3. **원본 구조 유지** - 제목, 목록, 표 그대로
|
|
35
|
+
4. **도구 사용 금지** - Read, mama_search, mama_save 등 어떤 도구도 사용하지 마세요. 이미지만 보고 직접 번역하세요.
|
|
36
|
+
|
|
37
|
+
## 금지 사항
|
|
38
|
+
|
|
39
|
+
❌ "이 이미지는 ~입니다"
|
|
40
|
+
❌ "번역 결과입니다:"
|
|
41
|
+
❌ "완료했습니다"
|
|
42
|
+
❌ 요약이나 설명
|
|
43
|
+
❌ 이모지
|
|
44
|
+
❌ **도구 호출** - Read, mama_search, mama_save, Write 등 절대 사용 금지
|
|
45
|
+
❌ "이미지를 읽을 수 없습니다" - 이미지가 이미 제공되었으므로 직접 번역만 하세요
|
|
46
|
+
|
|
47
|
+
## 출력 형식
|
|
48
|
+
|
|
49
|
+
그냥 번역된 텍스트만. 마크다운 사용 가능.
|
|
50
|
+
|
|
51
|
+
**중요**:
|
|
52
|
+
|
|
53
|
+
- 이미지는 이미 컨텍스트에 포함되어 있습니다. 도구를 호출하지 말고 바로 번역을 시작하세요.
|
|
54
|
+
- "📚 메모리", "⏱️ 1턴", 도구 이름 등 메타 정보를 출력하지 마세요.
|
|
55
|
+
- 테이블, 헤더, 메타데이터 없이 순수 번역만 출력하세요.
|
|
56
|
+
|
|
57
|
+
## 예시
|
|
58
|
+
|
|
59
|
+
이미지에 "Special Skill: Fire Storm / Damage: 85 / Target: All enemies" 가 있으면:
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
스페셜 스킬: 파이어 스톰
|
|
63
|
+
데미지: 85
|
|
64
|
+
대상: 적 전체
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
이렇게만 출력. 다른 말 없이.
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# Skill Forge - Multi-Agent Skill Generator
|
|
2
|
+
|
|
3
|
+
> 다단계 에이전트 팀이 실시간 협업으로 스킬을 생성하는 시스템
|
|
4
|
+
|
|
5
|
+
## Problem
|
|
6
|
+
|
|
7
|
+
스킬 작성이 복잡하고 일관성 부족. 매번 구조를 새로 설계해야 하고, 품질 검증이 누락되기 쉬움.
|
|
8
|
+
|
|
9
|
+
## Solution
|
|
10
|
+
|
|
11
|
+
**Architect → Developer → QA** 파이프라인으로 스킬 생성 자동화.
|
|
12
|
+
5초 카운트다운으로 각 단계에서 유저 검토 기회 제공.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Requirements
|
|
17
|
+
|
|
18
|
+
### 필수 기능
|
|
19
|
+
|
|
20
|
+
| # | 기능 | 설명 |
|
|
21
|
+
| --- | ------------------------ | ------------------------------------- |
|
|
22
|
+
| 1 | **Architect 에이전트** | 프롬프트/구조 설계 담당 |
|
|
23
|
+
| 2 | **Developer 에이전트** | 실제 코드/스킬 작성 |
|
|
24
|
+
| 3 | **QA 에이전트** | 체크리스트 검증 |
|
|
25
|
+
| 4 | **에이전트 간 핸드오프** | 자동 위임 + 컨텍스트 전달 |
|
|
26
|
+
| 5 | **Discord 피드백 루프** | 리액션/버튼으로 승인/수정 요청 |
|
|
27
|
+
| 6 | **MAMA 연동** | decision 저장, TOOLS.md 자동 업데이트 |
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Architecture
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
┌─────────────────────────────────────────────────────┐
|
|
35
|
+
│ Discord Interface │
|
|
36
|
+
└─────────────────────┬───────────────────────────────┘
|
|
37
|
+
│
|
|
38
|
+
▼
|
|
39
|
+
┌─────────────────────────────────────────────────────┐
|
|
40
|
+
│ Orchestrator │
|
|
41
|
+
│ (상태 머신 + 카운트다운 + 핸드오프) │
|
|
42
|
+
└─────────────────────┬───────────────────────────────┘
|
|
43
|
+
│
|
|
44
|
+
┌─────────────┼─────────────┐
|
|
45
|
+
▼ ▼ ▼
|
|
46
|
+
┌─────────┐ ┌─────────┐ ┌─────────┐
|
|
47
|
+
│Architect│ → │Developer│ → │ QA │
|
|
48
|
+
│(Sonnet) │ │ (Opus) │ │(Haiku) │
|
|
49
|
+
└─────────┘ └─────────┘ └─────────┘
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Status
|
|
55
|
+
|
|
56
|
+
- [x] 설계 문서 작성
|
|
57
|
+
- [x] **Phase 1: 기반 구축** ✅
|
|
58
|
+
- [x] 1.1 Orchestrator 기본 구조
|
|
59
|
+
- [x] 1.2 Architect 에이전트
|
|
60
|
+
- [x] 1.3 5초 카운트다운 + Discord 버튼
|
|
61
|
+
- [x] 1.4 첫 테스트
|
|
62
|
+
- [x] **Phase 2: 핵심 기능** ✅
|
|
63
|
+
- [x] 2.1 Developer 에이전트 (코드 생성)
|
|
64
|
+
- [x] 2.2 에이전트 간 핸드오프
|
|
65
|
+
- [x] 2.3 QA 에이전트 (체크리스트)
|
|
66
|
+
- [x] 2.4 통합 테스트
|
|
67
|
+
- [x] **Phase 3: 완성** ✅
|
|
68
|
+
- [x] 3.1 MAMA 연동 (decision 저장)
|
|
69
|
+
- [x] 3.2 실제 Claude API 연동
|
|
70
|
+
- [x] 3.3 Discord UI 개선
|
|
71
|
+
- [x] 3.4 에러 핸들링 강화
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Files
|
|
76
|
+
|
|
77
|
+
| 파일 | 역할 | Lines |
|
|
78
|
+
| --------------------- | ------------------ | ----- |
|
|
79
|
+
| `types.ts` | 타입 정의 | ~160 |
|
|
80
|
+
| `orchestrator.ts` | 상태 머신 + 조율 | ~450 |
|
|
81
|
+
| `agents/architect.ts` | 구조 설계 | ~200 |
|
|
82
|
+
| `agents/developer.ts` | 코드 생성 | ~250 |
|
|
83
|
+
| `agents/qa.ts` | 체크리스트 검증 | ~200 |
|
|
84
|
+
| `discord-ui.ts` | Discord UI + Embed | ~350 |
|
|
85
|
+
| `claude-api.ts` | Claude API 연동 | ~280 |
|
|
86
|
+
| `mama-integration.ts` | MAMA MCP 연동 | ~250 |
|
|
87
|
+
| `error-handler.ts` | 통합 에러 처리 | ~280 |
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Test Results
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
🔥 Full Pipeline Test
|
|
95
|
+
|
|
96
|
+
📥 REQUEST_RECEIVED
|
|
97
|
+
🚀 Architect → ✅ COMPLETE
|
|
98
|
+
⏱️ 2초 카운트다운 → ⏰ 자동 승인
|
|
99
|
+
🚀 Developer → ✅ COMPLETE
|
|
100
|
+
⏱️ 2초 카운트다운 → ⏰ 자동 승인
|
|
101
|
+
🚀 QA → ✅ COMPLETE
|
|
102
|
+
⏱️ 2초 카운트다운 → ⏰ 자동 승인
|
|
103
|
+
🎉 SESSION_COMPLETE
|
|
104
|
+
|
|
105
|
+
Generated Files:
|
|
106
|
+
- skills/hello-world/index.ts
|
|
107
|
+
- skills/hello-world/types.ts
|
|
108
|
+
- skills/hello-world/README.md
|
|
109
|
+
|
|
110
|
+
QA Result: 9/9 checks passed ✅
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
Generated by Skill Forge 🔥
|