@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 @@
|
|
|
1
|
+
{"version":3,"file":"phase-6-security.js","sourceRoot":"","sources":["../../src/onboarding/phase-6-security.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { ToolDefinition } from '../agent/types.js';
|
|
2
|
+
export interface IntegrationOptions {
|
|
3
|
+
discord?: {
|
|
4
|
+
enabled: boolean;
|
|
5
|
+
token?: string;
|
|
6
|
+
guilds?: Record<string, {
|
|
7
|
+
requireMention?: boolean;
|
|
8
|
+
channels?: Record<string, {
|
|
9
|
+
requireMention?: boolean;
|
|
10
|
+
}>;
|
|
11
|
+
}>;
|
|
12
|
+
};
|
|
13
|
+
slack?: {
|
|
14
|
+
enabled: boolean;
|
|
15
|
+
token?: string;
|
|
16
|
+
workspaces?: string[];
|
|
17
|
+
};
|
|
18
|
+
telegram?: {
|
|
19
|
+
enabled: boolean;
|
|
20
|
+
token?: string;
|
|
21
|
+
allowedChats?: string[];
|
|
22
|
+
};
|
|
23
|
+
cronJobs?: Array<{
|
|
24
|
+
id: string;
|
|
25
|
+
cronExpr: string;
|
|
26
|
+
prompt: string;
|
|
27
|
+
enabled: boolean;
|
|
28
|
+
}>;
|
|
29
|
+
heartbeat?: {
|
|
30
|
+
enabled: boolean;
|
|
31
|
+
interval: number;
|
|
32
|
+
quietStart: number;
|
|
33
|
+
quietEnd: number;
|
|
34
|
+
notifyChannelId?: string;
|
|
35
|
+
};
|
|
36
|
+
skills?: Array<{
|
|
37
|
+
id: string;
|
|
38
|
+
path: string;
|
|
39
|
+
enabled: boolean;
|
|
40
|
+
}>;
|
|
41
|
+
role?: string;
|
|
42
|
+
}
|
|
43
|
+
export declare const PHASE_7_TOOL: ToolDefinition;
|
|
44
|
+
/**
|
|
45
|
+
* Tool to save integration tokens (Discord, Slack, Telegram) to config.yaml
|
|
46
|
+
*/
|
|
47
|
+
export declare const SAVE_INTEGRATION_TOKEN_TOOL: ToolDefinition;
|
|
48
|
+
/**
|
|
49
|
+
* Handler for save_integration_token tool
|
|
50
|
+
*/
|
|
51
|
+
export declare function handleSaveIntegrationToken(input: {
|
|
52
|
+
platform: 'discord' | 'slack' | 'telegram';
|
|
53
|
+
token: string;
|
|
54
|
+
guild_id?: string;
|
|
55
|
+
chat_id?: string;
|
|
56
|
+
}): Promise<{
|
|
57
|
+
success: boolean;
|
|
58
|
+
message: string;
|
|
59
|
+
error?: string;
|
|
60
|
+
}>;
|
|
61
|
+
export declare function generateIntegrationGuide(options: IntegrationOptions): string;
|
|
62
|
+
export declare function parseQuietHours(quietHours: string): {
|
|
63
|
+
start: number;
|
|
64
|
+
end: number;
|
|
65
|
+
} | null;
|
|
66
|
+
//# sourceMappingURL=phase-7-integrations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phase-7-integrations.d.ts","sourceRoot":"","sources":["../../src/onboarding/phase-7-integrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE;QACR,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CACb,MAAM,EACN;YACE,cAAc,CAAC,EAAE,OAAO,CAAC;YACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;gBAAE,cAAc,CAAC,EAAE,OAAO,CAAA;aAAE,CAAC,CAAC;SACzD,CACF,CAAC;KACH,CAAC;IACF,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;IACF,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC,CAAC;IACH,SAAS,CAAC,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC,CAAC;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAqcD,eAAO,MAAM,YAAY,EAAE,cA4B1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,cA4BzC,CAAC;AAEF;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,KAAK,EAAE;IACtD,QAAQ,EAAE,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA0CjE;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CA+D5E;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAUzF"}
|
|
@@ -0,0 +1,619 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SAVE_INTEGRATION_TOKEN_TOOL = exports.PHASE_7_TOOL = void 0;
|
|
4
|
+
exports.handleSaveIntegrationToken = handleSaveIntegrationToken;
|
|
5
|
+
exports.generateIntegrationGuide = generateIntegrationGuide;
|
|
6
|
+
exports.parseQuietHours = parseQuietHours;
|
|
7
|
+
const config_manager_js_1 = require("../cli/config/config-manager.js");
|
|
8
|
+
const ROLE_EXAMPLES = {
|
|
9
|
+
developer: `## Developer Integration Examples
|
|
10
|
+
|
|
11
|
+
### Discord for Team Notifications
|
|
12
|
+
\`\`\`json
|
|
13
|
+
{
|
|
14
|
+
"discord": {
|
|
15
|
+
"enabled": true,
|
|
16
|
+
"token": "YOUR_BOT_TOKEN",
|
|
17
|
+
"guilds": {
|
|
18
|
+
"YOUR_GUILD_ID": {
|
|
19
|
+
"requireMention": false,
|
|
20
|
+
"channels": {
|
|
21
|
+
"dev-alerts": { "requireMention": false },
|
|
22
|
+
"general": { "requireMention": true }
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
\`\`\`
|
|
29
|
+
|
|
30
|
+
### Cron Jobs for Daily Builds
|
|
31
|
+
\`\`\`json
|
|
32
|
+
{
|
|
33
|
+
"cronJobs": [
|
|
34
|
+
{
|
|
35
|
+
"id": "daily-build-check",
|
|
36
|
+
"cronExpr": "0 9 * * *",
|
|
37
|
+
"prompt": "Check CI/CD pipeline status and report any failures",
|
|
38
|
+
"enabled": true
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"id": "dependency-updates",
|
|
42
|
+
"cronExpr": "0 10 * * 1",
|
|
43
|
+
"prompt": "Check for npm package updates and create update summary",
|
|
44
|
+
"enabled": true
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
\`\`\`
|
|
49
|
+
|
|
50
|
+
### Heartbeat for System Monitoring
|
|
51
|
+
\`\`\`json
|
|
52
|
+
{
|
|
53
|
+
"heartbeat": {
|
|
54
|
+
"enabled": true,
|
|
55
|
+
"interval": 1800000,
|
|
56
|
+
"quietStart": 23,
|
|
57
|
+
"quietEnd": 8,
|
|
58
|
+
"notifyChannelId": "YOUR_DISCORD_CHANNEL_ID"
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
\`\`\``,
|
|
62
|
+
researcher: `## Researcher Integration Examples
|
|
63
|
+
|
|
64
|
+
### Telegram for Mobile Access
|
|
65
|
+
\`\`\`json
|
|
66
|
+
{
|
|
67
|
+
"telegram": {
|
|
68
|
+
"enabled": true,
|
|
69
|
+
"token": "YOUR_BOT_TOKEN",
|
|
70
|
+
"allowedChats": ["YOUR_CHAT_ID"]
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
\`\`\`
|
|
74
|
+
|
|
75
|
+
### Cron Jobs for Literature Monitoring
|
|
76
|
+
\`\`\`json
|
|
77
|
+
{
|
|
78
|
+
"cronJobs": [
|
|
79
|
+
{
|
|
80
|
+
"id": "arxiv-daily",
|
|
81
|
+
"cronExpr": "0 8 * * *",
|
|
82
|
+
"prompt": "Search arXiv for new papers in my research areas and summarize",
|
|
83
|
+
"enabled": true
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"id": "weekly-research-digest",
|
|
87
|
+
"cronExpr": "0 9 * * 1",
|
|
88
|
+
"prompt": "Compile weekly research digest from saved papers",
|
|
89
|
+
"enabled": true
|
|
90
|
+
}
|
|
91
|
+
]
|
|
92
|
+
}
|
|
93
|
+
\`\`\`
|
|
94
|
+
|
|
95
|
+
### Skills for Paper Analysis
|
|
96
|
+
\`\`\`json
|
|
97
|
+
{
|
|
98
|
+
"skills": [
|
|
99
|
+
{
|
|
100
|
+
"id": "paper-analyzer",
|
|
101
|
+
"path": "~/.mama/skills/paper-analyzer.md",
|
|
102
|
+
"enabled": true
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"id": "citation-tracker",
|
|
106
|
+
"path": "~/.mama/skills/citation-tracker.md",
|
|
107
|
+
"enabled": true
|
|
108
|
+
}
|
|
109
|
+
]
|
|
110
|
+
}
|
|
111
|
+
\`\`\``,
|
|
112
|
+
manager: `## Manager Integration Examples
|
|
113
|
+
|
|
114
|
+
### Slack for Team Communication
|
|
115
|
+
\`\`\`json
|
|
116
|
+
{
|
|
117
|
+
"slack": {
|
|
118
|
+
"enabled": true,
|
|
119
|
+
"token": "YOUR_BOT_TOKEN",
|
|
120
|
+
"workspaces": ["team-workspace"]
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
\`\`\`
|
|
124
|
+
|
|
125
|
+
### Cron Jobs for Team Status
|
|
126
|
+
\`\`\`json
|
|
127
|
+
{
|
|
128
|
+
"cronJobs": [
|
|
129
|
+
{
|
|
130
|
+
"id": "daily-standup-prep",
|
|
131
|
+
"cronExpr": "0 8 * * 1-5",
|
|
132
|
+
"prompt": "Prepare daily standup summary from team activity",
|
|
133
|
+
"enabled": true
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"id": "weekly-metrics",
|
|
137
|
+
"cronExpr": "0 17 * * 5",
|
|
138
|
+
"prompt": "Generate weekly team metrics and performance summary",
|
|
139
|
+
"enabled": true
|
|
140
|
+
}
|
|
141
|
+
]
|
|
142
|
+
}
|
|
143
|
+
\`\`\`
|
|
144
|
+
|
|
145
|
+
### Heartbeat for Team Monitoring
|
|
146
|
+
\`\`\`json
|
|
147
|
+
{
|
|
148
|
+
"heartbeat": {
|
|
149
|
+
"enabled": true,
|
|
150
|
+
"interval": 3600000,
|
|
151
|
+
"quietStart": 20,
|
|
152
|
+
"quietEnd": 8,
|
|
153
|
+
"notifyChannelId": "YOUR_SLACK_CHANNEL_ID"
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
\`\`\``,
|
|
157
|
+
default: `## General Integration Examples
|
|
158
|
+
|
|
159
|
+
### Discord Bot Setup
|
|
160
|
+
1. Create bot at https://discord.com/developers/applications
|
|
161
|
+
2. Enable Message Content Intent
|
|
162
|
+
3. Add bot to your server with proper permissions
|
|
163
|
+
4. Copy bot token to configuration
|
|
164
|
+
|
|
165
|
+
### Cron Expression Guide
|
|
166
|
+
\`\`\`
|
|
167
|
+
┌───────────── minute (0 - 59)
|
|
168
|
+
│ ┌───────────── hour (0 - 23)
|
|
169
|
+
│ │ ┌───────────── day of month (1 - 31)
|
|
170
|
+
│ │ │ ┌───────────── month (1 - 12)
|
|
171
|
+
│ │ │ │ ┌───────────── day of week (0 - 6) (Sunday to Saturday)
|
|
172
|
+
│ │ │ │ │
|
|
173
|
+
* * * * *
|
|
174
|
+
\`\`\`
|
|
175
|
+
|
|
176
|
+
Examples:
|
|
177
|
+
- \`0 9 * * *\` - Every day at 9:00 AM
|
|
178
|
+
- \`*/30 * * * *\` - Every 30 minutes
|
|
179
|
+
- \`0 0 * * 0\` - Every Sunday at midnight
|
|
180
|
+
- \`0 9 * * 1-5\` - Weekdays at 9:00 AM
|
|
181
|
+
|
|
182
|
+
### Heartbeat Configuration
|
|
183
|
+
- **interval**: Milliseconds between checks (30min = 1800000)
|
|
184
|
+
- **quietStart**: Hour to stop checking (0-23)
|
|
185
|
+
- **quietEnd**: Hour to resume checking (0-23)
|
|
186
|
+
- **notifyChannelId**: Discord/Slack channel for notifications
|
|
187
|
+
|
|
188
|
+
### Skills System
|
|
189
|
+
Skills are markdown files that define specialized behaviors:
|
|
190
|
+
- Location: \`~/.mama/skills/\`
|
|
191
|
+
- Format: Markdown with frontmatter metadata
|
|
192
|
+
- Trigger: Pattern matching on user queries
|
|
193
|
+
- Response: Custom prompts and tool sequences`,
|
|
194
|
+
};
|
|
195
|
+
/**
|
|
196
|
+
* Integration setup instructions
|
|
197
|
+
*/
|
|
198
|
+
const INTEGRATION_INSTRUCTIONS = `# MAMA Integrations Guide
|
|
199
|
+
|
|
200
|
+
## Overview
|
|
201
|
+
|
|
202
|
+
MAMA Standalone supports multiple integration types to fit your workflow:
|
|
203
|
+
|
|
204
|
+
1. **Chat Gateways** - Discord, Slack, Telegram
|
|
205
|
+
2. **Scheduled Tasks** - Cron jobs for recurring work
|
|
206
|
+
3. **Proactive Monitoring** - Heartbeat checks
|
|
207
|
+
4. **Custom Skills** - Specialized behaviors and workflows
|
|
208
|
+
|
|
209
|
+
## Chat Gateways
|
|
210
|
+
|
|
211
|
+
### Discord Integration
|
|
212
|
+
|
|
213
|
+
**Setup:**
|
|
214
|
+
1. Go to https://discord.com/developers/applications
|
|
215
|
+
2. Create New Application
|
|
216
|
+
3. Bot tab → Add Bot
|
|
217
|
+
4. Enable "Message Content Intent" under Privileged Gateway Intents
|
|
218
|
+
5. Copy bot token
|
|
219
|
+
6. OAuth2 → URL Generator → Select "bot" scope and permissions
|
|
220
|
+
7. Use generated URL to add bot to your server
|
|
221
|
+
|
|
222
|
+
**Configuration:**
|
|
223
|
+
- \`guilds\`: Guild-specific settings (use "*" for all guilds)
|
|
224
|
+
- \`requireMention\`: If true, bot only responds to @mentions
|
|
225
|
+
- \`channels\`: Channel-specific overrides
|
|
226
|
+
|
|
227
|
+
**Features:**
|
|
228
|
+
- DM support (always responds in DMs)
|
|
229
|
+
- Channel-specific mention requirements
|
|
230
|
+
- Image attachment handling (OCR, translation)
|
|
231
|
+
- Message history tracking for context
|
|
232
|
+
- Typing indicators during processing
|
|
233
|
+
|
|
234
|
+
### Telegram Integration
|
|
235
|
+
|
|
236
|
+
**Setup:**
|
|
237
|
+
1. Message @BotFather on Telegram
|
|
238
|
+
2. Send /newbot and follow instructions
|
|
239
|
+
3. Copy bot token
|
|
240
|
+
4. Get your chat ID by messaging @userinfobot
|
|
241
|
+
|
|
242
|
+
**Configuration:**
|
|
243
|
+
- \`token\`: Bot token from BotFather
|
|
244
|
+
- \`allowedChats\`: List of allowed chat IDs (security)
|
|
245
|
+
|
|
246
|
+
**Features:**
|
|
247
|
+
- Private chat support
|
|
248
|
+
- Group chat support
|
|
249
|
+
- Image handling
|
|
250
|
+
- Inline queries
|
|
251
|
+
|
|
252
|
+
### Slack Integration
|
|
253
|
+
|
|
254
|
+
**Setup:**
|
|
255
|
+
1. Go to https://api.slack.com/apps
|
|
256
|
+
2. Create New App → From scratch
|
|
257
|
+
3. OAuth & Permissions → Add scopes (channels:read, chat:write, etc.)
|
|
258
|
+
4. Install to Workspace
|
|
259
|
+
5. Copy Bot User OAuth Token
|
|
260
|
+
|
|
261
|
+
**Configuration:**
|
|
262
|
+
- \`token\`: Bot User OAuth Token
|
|
263
|
+
- \`workspaces\`: List of workspace IDs
|
|
264
|
+
|
|
265
|
+
## Scheduled Tasks (Cron Jobs)
|
|
266
|
+
|
|
267
|
+
Cron jobs run automated tasks on a schedule:
|
|
268
|
+
|
|
269
|
+
**Job Configuration:**
|
|
270
|
+
- \`id\`: Unique identifier
|
|
271
|
+
- \`cronExpr\`: Cron expression (see guide below)
|
|
272
|
+
- \`prompt\`: Task description for Claude
|
|
273
|
+
- \`enabled\`: Enable/disable job
|
|
274
|
+
|
|
275
|
+
**Cron Expression Format:**
|
|
276
|
+
\`\`\`
|
|
277
|
+
┌───────────── minute (0 - 59)
|
|
278
|
+
│ ┌───────────── hour (0 - 23)
|
|
279
|
+
│ │ ┌───────────── day of month (1 - 31)
|
|
280
|
+
│ │ │ ┌───────────── month (1 - 12)
|
|
281
|
+
│ │ │ │ ┌───────────── day of week (0 - 6)
|
|
282
|
+
│ │ │ │ │
|
|
283
|
+
* * * * *
|
|
284
|
+
\`\`\`
|
|
285
|
+
|
|
286
|
+
**Examples:**
|
|
287
|
+
- \`0 9 * * *\` - Daily at 9 AM
|
|
288
|
+
- \`*/15 * * * *\` - Every 15 minutes
|
|
289
|
+
- \`0 0 * * 0\` - Weekly on Sunday midnight
|
|
290
|
+
- \`0 9 * * 1-5\` - Weekdays at 9 AM
|
|
291
|
+
- \`0 0 1 * *\` - Monthly on 1st at midnight
|
|
292
|
+
|
|
293
|
+
**Use Cases:**
|
|
294
|
+
- Daily build status checks
|
|
295
|
+
- Weekly report generation
|
|
296
|
+
- Hourly data synchronization
|
|
297
|
+
- Monthly maintenance tasks
|
|
298
|
+
- Custom automation workflows
|
|
299
|
+
|
|
300
|
+
## Heartbeat Monitoring
|
|
301
|
+
|
|
302
|
+
Proactive system that periodically checks HEARTBEAT.md for tasks:
|
|
303
|
+
|
|
304
|
+
**Configuration:**
|
|
305
|
+
- \`interval\`: Check frequency in milliseconds
|
|
306
|
+
- 30 minutes: \`1800000\`
|
|
307
|
+
- 1 hour: \`3600000\`
|
|
308
|
+
- 2 hours: \`7200000\`
|
|
309
|
+
- \`quietStart\`: Hour to pause (e.g., 23 for 11 PM)
|
|
310
|
+
- \`quietEnd\`: Hour to resume (e.g., 8 for 8 AM)
|
|
311
|
+
- \`notifyChannelId\`: Discord/Slack channel for alerts
|
|
312
|
+
|
|
313
|
+
**How It Works:**
|
|
314
|
+
1. Every interval, reads \`~/.mama/HEARTBEAT.md\`
|
|
315
|
+
2. Sends content to Claude for processing
|
|
316
|
+
3. Claude checks for tasks and executes them
|
|
317
|
+
4. Responds with status (OK, NOTIFY, DONE)
|
|
318
|
+
5. Sends notifications if configured
|
|
319
|
+
|
|
320
|
+
**HEARTBEAT.md Example:**
|
|
321
|
+
\`\`\`markdown
|
|
322
|
+
# Heartbeat Tasks
|
|
323
|
+
|
|
324
|
+
## Pending
|
|
325
|
+
- [ ] Check if new GitHub issues need triage
|
|
326
|
+
- [ ] Monitor server uptime (alert if down)
|
|
327
|
+
|
|
328
|
+
## Completed
|
|
329
|
+
- [x] Daily backup verified (2025-01-31)
|
|
330
|
+
\`\`\`
|
|
331
|
+
|
|
332
|
+
## Skills System
|
|
333
|
+
|
|
334
|
+
Skills are reusable markdown-based workflows:
|
|
335
|
+
|
|
336
|
+
**Skill Structure:**
|
|
337
|
+
\`\`\`markdown
|
|
338
|
+
---
|
|
339
|
+
id: skill-name
|
|
340
|
+
triggers:
|
|
341
|
+
- "keyword or phrase"
|
|
342
|
+
- "another trigger"
|
|
343
|
+
description: "What this skill does"
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
# Skill Instructions
|
|
347
|
+
|
|
348
|
+
Claude, when this skill is triggered:
|
|
349
|
+
|
|
350
|
+
1. Do step one
|
|
351
|
+
2. Do step two
|
|
352
|
+
3. Return result in this format
|
|
353
|
+
\`\`\`
|
|
354
|
+
|
|
355
|
+
**Loading Skills:**
|
|
356
|
+
- Place skills in \`~/.mama/skills/\`
|
|
357
|
+
- Configure in integrations.md
|
|
358
|
+
- Skills auto-load on startup
|
|
359
|
+
- Pattern matching triggers execution
|
|
360
|
+
|
|
361
|
+
**Skill Examples:**
|
|
362
|
+
- Paper analysis workflows
|
|
363
|
+
- Code review checklists
|
|
364
|
+
- Report generation templates
|
|
365
|
+
- Custom tool sequences
|
|
366
|
+
|
|
367
|
+
## Security Considerations
|
|
368
|
+
|
|
369
|
+
**API Tokens:**
|
|
370
|
+
- Store in environment variables, not in configs
|
|
371
|
+
- Use \`.env\` file with \`.gitignore\`
|
|
372
|
+
- Never commit tokens to version control
|
|
373
|
+
|
|
374
|
+
**Access Control:**
|
|
375
|
+
- Discord: Use channel/guild restrictions
|
|
376
|
+
- Telegram: Whitelist specific chat IDs
|
|
377
|
+
- Slack: Limit workspace access
|
|
378
|
+
|
|
379
|
+
**Network Security:**
|
|
380
|
+
- All integrations run localhost by default
|
|
381
|
+
- Use tunnels (cloudflared) for external access
|
|
382
|
+
- Enable authentication for exposed endpoints
|
|
383
|
+
|
|
384
|
+
## Testing Integrations
|
|
385
|
+
|
|
386
|
+
**Discord:**
|
|
387
|
+
\`\`\`bash
|
|
388
|
+
# Test bot responds to DM
|
|
389
|
+
# Test mention in channel
|
|
390
|
+
# Test image upload and analysis
|
|
391
|
+
\`\`\`
|
|
392
|
+
|
|
393
|
+
**Cron Jobs:**
|
|
394
|
+
\`\`\`bash
|
|
395
|
+
# Run job immediately for testing
|
|
396
|
+
mama cron run JOB_ID
|
|
397
|
+
|
|
398
|
+
# List all jobs and next run times
|
|
399
|
+
mama cron list
|
|
400
|
+
\`\`\`
|
|
401
|
+
|
|
402
|
+
**Heartbeat:**
|
|
403
|
+
\`\`\`bash
|
|
404
|
+
# Trigger heartbeat check now
|
|
405
|
+
mama heartbeat trigger
|
|
406
|
+
|
|
407
|
+
# View heartbeat status
|
|
408
|
+
mama heartbeat status
|
|
409
|
+
\`\`\`
|
|
410
|
+
|
|
411
|
+
## Troubleshooting
|
|
412
|
+
|
|
413
|
+
**Bot Not Responding:**
|
|
414
|
+
1. Check token is correct
|
|
415
|
+
2. Verify bot has required permissions
|
|
416
|
+
3. Check Message Content Intent enabled (Discord)
|
|
417
|
+
4. Review logs for errors
|
|
418
|
+
|
|
419
|
+
**Cron Job Not Running:**
|
|
420
|
+
1. Validate cron expression syntax
|
|
421
|
+
2. Check job is enabled
|
|
422
|
+
3. Verify timezone configuration
|
|
423
|
+
4. Review scheduler logs
|
|
424
|
+
|
|
425
|
+
**Heartbeat Not Working:**
|
|
426
|
+
1. Check interval configuration
|
|
427
|
+
2. Verify not in quiet hours
|
|
428
|
+
3. Check HEARTBEAT.md exists and is readable
|
|
429
|
+
4. Review heartbeat logs
|
|
430
|
+
|
|
431
|
+
## Advanced Configuration
|
|
432
|
+
|
|
433
|
+
**Multi-Gateway Setup:**
|
|
434
|
+
Run Discord + Telegram simultaneously for different user groups
|
|
435
|
+
|
|
436
|
+
**Conditional Cron Jobs:**
|
|
437
|
+
Use prompts with conditions (e.g., "Only send report if data changed")
|
|
438
|
+
|
|
439
|
+
**Cascading Heartbeats:**
|
|
440
|
+
Chain heartbeat tasks (one task can schedule another)
|
|
441
|
+
|
|
442
|
+
**Skill Composition:**
|
|
443
|
+
Skills can invoke other skills for complex workflows
|
|
444
|
+
|
|
445
|
+
## Next Steps
|
|
446
|
+
|
|
447
|
+
After integration setup:
|
|
448
|
+
1. Test each integration individually
|
|
449
|
+
2. Monitor logs for errors
|
|
450
|
+
3. Adjust configurations as needed
|
|
451
|
+
4. Document your integration patterns
|
|
452
|
+
5. Share successful configurations with team
|
|
453
|
+
`;
|
|
454
|
+
exports.PHASE_7_TOOL = {
|
|
455
|
+
name: 'present_integration_options',
|
|
456
|
+
description: `Present integration options for Discord, Slack, Telegram, cron jobs, heartbeat monitoring, and skills.
|
|
457
|
+
Provide role-specific examples and save integrations.md with comprehensive setup guide.`,
|
|
458
|
+
input_schema: {
|
|
459
|
+
type: 'object',
|
|
460
|
+
properties: {
|
|
461
|
+
role: {
|
|
462
|
+
type: 'string',
|
|
463
|
+
description: 'User role for tailored examples (developer, researcher, manager, or custom)',
|
|
464
|
+
enum: ['developer', 'researcher', 'manager', 'custom'],
|
|
465
|
+
},
|
|
466
|
+
selected_integrations: {
|
|
467
|
+
type: 'string',
|
|
468
|
+
description: 'Comma-separated list of integrations to enable (discord,slack,telegram,cron,heartbeat,skills)',
|
|
469
|
+
},
|
|
470
|
+
timezone: {
|
|
471
|
+
type: 'string',
|
|
472
|
+
description: 'User timezone for cron job scheduling (e.g., America/New_York, Asia/Seoul)',
|
|
473
|
+
},
|
|
474
|
+
quiet_hours: {
|
|
475
|
+
type: 'string',
|
|
476
|
+
description: 'Preferred quiet hours for heartbeat (e.g., "23-8" means 11PM to 8AM)',
|
|
477
|
+
},
|
|
478
|
+
},
|
|
479
|
+
required: ['role'],
|
|
480
|
+
},
|
|
481
|
+
};
|
|
482
|
+
/**
|
|
483
|
+
* Tool to save integration tokens (Discord, Slack, Telegram) to config.yaml
|
|
484
|
+
*/
|
|
485
|
+
exports.SAVE_INTEGRATION_TOKEN_TOOL = {
|
|
486
|
+
name: 'save_integration_token',
|
|
487
|
+
description: `Save a Discord, Slack, or Telegram bot token to config.yaml.
|
|
488
|
+
Use this when user provides their bot token during onboarding.
|
|
489
|
+
The token will be saved securely and the integration will be enabled.`,
|
|
490
|
+
input_schema: {
|
|
491
|
+
type: 'object',
|
|
492
|
+
properties: {
|
|
493
|
+
platform: {
|
|
494
|
+
type: 'string',
|
|
495
|
+
description: 'Platform name: discord, slack, or telegram',
|
|
496
|
+
enum: ['discord', 'slack', 'telegram'],
|
|
497
|
+
},
|
|
498
|
+
token: {
|
|
499
|
+
type: 'string',
|
|
500
|
+
description: 'The bot token to save',
|
|
501
|
+
},
|
|
502
|
+
guild_id: {
|
|
503
|
+
type: 'string',
|
|
504
|
+
description: 'Discord guild ID (optional, for Discord only)',
|
|
505
|
+
},
|
|
506
|
+
chat_id: {
|
|
507
|
+
type: 'string',
|
|
508
|
+
description: 'Telegram chat ID (optional, for Telegram only)',
|
|
509
|
+
},
|
|
510
|
+
},
|
|
511
|
+
required: ['platform', 'token'],
|
|
512
|
+
},
|
|
513
|
+
};
|
|
514
|
+
/**
|
|
515
|
+
* Handler for save_integration_token tool
|
|
516
|
+
*/
|
|
517
|
+
async function handleSaveIntegrationToken(input) {
|
|
518
|
+
try {
|
|
519
|
+
const config = await (0, config_manager_js_1.loadConfig)();
|
|
520
|
+
switch (input.platform) {
|
|
521
|
+
case 'discord':
|
|
522
|
+
config.discord = {
|
|
523
|
+
enabled: true,
|
|
524
|
+
token: input.token,
|
|
525
|
+
default_channel_id: input.guild_id, // guild_id used as default channel
|
|
526
|
+
};
|
|
527
|
+
break;
|
|
528
|
+
case 'slack':
|
|
529
|
+
config.slack = {
|
|
530
|
+
enabled: true,
|
|
531
|
+
bot_token: input.token,
|
|
532
|
+
};
|
|
533
|
+
break;
|
|
534
|
+
case 'telegram':
|
|
535
|
+
config.telegram = {
|
|
536
|
+
enabled: true,
|
|
537
|
+
token: input.token,
|
|
538
|
+
allowed_chats: input.chat_id ? [input.chat_id] : [],
|
|
539
|
+
};
|
|
540
|
+
break;
|
|
541
|
+
}
|
|
542
|
+
await (0, config_manager_js_1.saveConfig)(config);
|
|
543
|
+
return {
|
|
544
|
+
success: true,
|
|
545
|
+
message: `${input.platform} token saved successfully! Integration is now enabled.`,
|
|
546
|
+
};
|
|
547
|
+
}
|
|
548
|
+
catch (error) {
|
|
549
|
+
return {
|
|
550
|
+
success: false,
|
|
551
|
+
message: 'Failed to save token',
|
|
552
|
+
error: error instanceof Error ? error.message : String(error),
|
|
553
|
+
};
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
function generateIntegrationGuide(options) {
|
|
557
|
+
const role = options.role || 'default';
|
|
558
|
+
const examples = ROLE_EXAMPLES[role] || ROLE_EXAMPLES.default;
|
|
559
|
+
let content = INTEGRATION_INSTRUCTIONS;
|
|
560
|
+
content += '\n\n---\n\n';
|
|
561
|
+
content += examples;
|
|
562
|
+
if (options.discord ||
|
|
563
|
+
options.slack ||
|
|
564
|
+
options.telegram ||
|
|
565
|
+
options.cronJobs ||
|
|
566
|
+
options.heartbeat ||
|
|
567
|
+
options.skills) {
|
|
568
|
+
content += '\n\n---\n\n## Your Configuration\n\n';
|
|
569
|
+
if (options.discord?.enabled) {
|
|
570
|
+
content += '### Discord\n';
|
|
571
|
+
content += '✅ Enabled\n';
|
|
572
|
+
content += `- Guilds configured: ${Object.keys(options.discord.guilds || {}).length}\n\n`;
|
|
573
|
+
}
|
|
574
|
+
if (options.slack?.enabled) {
|
|
575
|
+
content += '### Slack\n';
|
|
576
|
+
content += '✅ Enabled\n';
|
|
577
|
+
content += `- Workspaces: ${options.slack.workspaces?.length || 0}\n\n`;
|
|
578
|
+
}
|
|
579
|
+
if (options.telegram?.enabled) {
|
|
580
|
+
content += '### Telegram\n';
|
|
581
|
+
content += '✅ Enabled\n';
|
|
582
|
+
content += `- Allowed chats: ${options.telegram.allowedChats?.length || 0}\n\n`;
|
|
583
|
+
}
|
|
584
|
+
if (options.cronJobs && options.cronJobs.length > 0) {
|
|
585
|
+
content += '### Cron Jobs\n';
|
|
586
|
+
content += `✅ ${options.cronJobs.length} job(s) configured:\n`;
|
|
587
|
+
for (const job of options.cronJobs) {
|
|
588
|
+
content += `- **${job.id}**: ${job.cronExpr} ${job.enabled ? '(enabled)' : '(disabled)'}\n`;
|
|
589
|
+
}
|
|
590
|
+
content += '\n';
|
|
591
|
+
}
|
|
592
|
+
if (options.heartbeat?.enabled) {
|
|
593
|
+
content += '### Heartbeat\n';
|
|
594
|
+
content += '✅ Enabled\n';
|
|
595
|
+
content += `- Interval: ${(options.heartbeat.interval / 60000).toFixed(0)} minutes\n`;
|
|
596
|
+
content += `- Quiet hours: ${options.heartbeat.quietStart}:00 - ${options.heartbeat.quietEnd}:00\n\n`;
|
|
597
|
+
}
|
|
598
|
+
if (options.skills && options.skills.length > 0) {
|
|
599
|
+
content += '### Skills\n';
|
|
600
|
+
content += `✅ ${options.skills.length} skill(s) configured:\n`;
|
|
601
|
+
for (const skill of options.skills) {
|
|
602
|
+
content += `- **${skill.id}**: ${skill.path} ${skill.enabled ? '(enabled)' : '(disabled)'}\n`;
|
|
603
|
+
}
|
|
604
|
+
content += '\n';
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
return content;
|
|
608
|
+
}
|
|
609
|
+
function parseQuietHours(quietHours) {
|
|
610
|
+
const match = quietHours.match(/^(\d{1,2})-(\d{1,2})$/);
|
|
611
|
+
if (!match)
|
|
612
|
+
return null;
|
|
613
|
+
const start = parseInt(match[1], 10);
|
|
614
|
+
const end = parseInt(match[2], 10);
|
|
615
|
+
if (start < 0 || start > 23 || end < 0 || end > 23)
|
|
616
|
+
return null;
|
|
617
|
+
return { start, end };
|
|
618
|
+
}
|
|
619
|
+
//# sourceMappingURL=phase-7-integrations.js.map
|