@hailer/mcp 1.1.15 → 1.1.16
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/dist/agents/bot-manager.d.ts +48 -0
- package/dist/agents/bot-manager.d.ts.map +1 -0
- package/dist/agents/bot-manager.js +254 -0
- package/dist/agents/bot-manager.js.map +1 -0
- package/dist/agents/bug-fixer/ai.d.ts +80 -0
- package/dist/agents/bug-fixer/ai.d.ts.map +1 -0
- package/dist/agents/bug-fixer/ai.js +466 -0
- package/dist/agents/bug-fixer/ai.js.map +1 -0
- package/dist/agents/bug-fixer/bot.d.ts +92 -0
- package/dist/agents/bug-fixer/bot.d.ts.map +1 -0
- package/dist/agents/bug-fixer/bot.js +687 -0
- package/dist/agents/bug-fixer/bot.js.map +1 -0
- package/dist/agents/bug-fixer/config.d.ts +21 -0
- package/dist/agents/bug-fixer/config.d.ts.map +1 -0
- package/dist/agents/bug-fixer/config.js +218 -0
- package/dist/agents/bug-fixer/config.js.map +1 -0
- package/dist/agents/bug-fixer/files.d.ts +67 -0
- package/dist/agents/bug-fixer/files.d.ts.map +1 -0
- package/dist/agents/bug-fixer/files.js +386 -0
- package/dist/agents/bug-fixer/files.js.map +1 -0
- package/dist/agents/bug-fixer/git.d.ts +48 -0
- package/dist/agents/bug-fixer/git.d.ts.map +1 -0
- package/dist/agents/bug-fixer/git.js +298 -0
- package/dist/agents/bug-fixer/git.js.map +1 -0
- package/dist/agents/bug-fixer/index.d.ts +103 -0
- package/dist/agents/bug-fixer/index.d.ts.map +1 -0
- package/dist/agents/bug-fixer/index.js +262 -0
- package/dist/agents/bug-fixer/index.js.map +1 -0
- package/dist/agents/bug-fixer/lsp.d.ts +113 -0
- package/dist/agents/bug-fixer/lsp.d.ts.map +1 -0
- package/dist/agents/bug-fixer/lsp.js +485 -0
- package/dist/agents/bug-fixer/lsp.js.map +1 -0
- package/dist/agents/bug-fixer/monitor.d.ts +123 -0
- package/dist/agents/bug-fixer/monitor.d.ts.map +1 -0
- package/dist/agents/bug-fixer/monitor.js +629 -0
- package/dist/agents/bug-fixer/monitor.js.map +1 -0
- package/dist/agents/bug-fixer/prompt.d.ts +5 -0
- package/dist/agents/bug-fixer/prompt.d.ts.map +1 -0
- package/dist/agents/bug-fixer/prompt.js +94 -0
- package/dist/agents/bug-fixer/prompt.js.map +1 -0
- package/dist/agents/bug-fixer/registries/pending-classification.d.ts +28 -0
- package/dist/agents/bug-fixer/registries/pending-classification.d.ts.map +1 -0
- package/dist/agents/bug-fixer/registries/pending-classification.js +50 -0
- package/dist/agents/bug-fixer/registries/pending-classification.js.map +1 -0
- package/dist/agents/bug-fixer/registries/pending-fix.d.ts +33 -0
- package/dist/agents/bug-fixer/registries/pending-fix.d.ts.map +1 -0
- package/dist/agents/bug-fixer/registries/pending-fix.js +64 -0
- package/dist/agents/bug-fixer/registries/pending-fix.js.map +1 -0
- package/dist/agents/bug-fixer/registries/pending.d.ts +27 -0
- package/dist/agents/bug-fixer/registries/pending.d.ts.map +1 -0
- package/dist/agents/bug-fixer/registries/pending.js +49 -0
- package/dist/agents/bug-fixer/registries/pending.js.map +1 -0
- package/dist/agents/bug-fixer/specialist-daemon.d.ts +88 -0
- package/dist/agents/bug-fixer/specialist-daemon.d.ts.map +1 -0
- package/dist/agents/bug-fixer/specialist-daemon.js +431 -0
- package/dist/agents/bug-fixer/specialist-daemon.js.map +1 -0
- package/dist/agents/bug-fixer/specialist.d.ts +47 -0
- package/dist/agents/bug-fixer/specialist.d.ts.map +1 -0
- package/dist/agents/bug-fixer/specialist.js +327 -0
- package/dist/agents/bug-fixer/specialist.js.map +1 -0
- package/dist/agents/bug-fixer/types.d.ts +123 -0
- package/dist/agents/bug-fixer/types.d.ts.map +1 -0
- package/dist/agents/bug-fixer/types.js +9 -0
- package/dist/agents/bug-fixer/types.js.map +1 -0
- package/dist/agents/factory.d.ts +172 -0
- package/dist/agents/factory.d.ts.map +1 -0
- package/dist/agents/factory.js +706 -0
- package/dist/agents/factory.js.map +1 -0
- package/dist/agents/hailer-expert/index.d.ts +8 -0
- package/dist/agents/hailer-expert/index.d.ts.map +1 -0
- package/dist/agents/hailer-expert/index.js +14 -0
- package/dist/agents/hailer-expert/index.js.map +1 -0
- package/dist/agents/hal/daemon.d.ts +174 -0
- package/dist/agents/hal/daemon.d.ts.map +1 -0
- package/dist/agents/hal/daemon.js +1385 -0
- package/dist/agents/hal/daemon.js.map +1 -0
- package/dist/agents/hal/definitions.d.ts +42 -0
- package/dist/agents/hal/definitions.d.ts.map +1 -0
- package/dist/agents/hal/definitions.js +300 -0
- package/dist/agents/hal/definitions.js.map +1 -0
- package/dist/agents/hal/index.d.ts +3 -0
- package/dist/agents/hal/index.d.ts.map +1 -0
- package/dist/agents/hal/index.js +8 -0
- package/dist/agents/hal/index.js.map +1 -0
- package/dist/agents/index.d.ts +18 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +48 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/shared/base.d.ts +253 -0
- package/dist/agents/shared/base.d.ts.map +1 -0
- package/dist/agents/shared/base.js +1122 -0
- package/dist/agents/shared/base.js.map +1 -0
- package/dist/agents/shared/schemas/action-schema.d.ts +62 -0
- package/dist/agents/shared/schemas/action-schema.d.ts.map +1 -0
- package/dist/agents/shared/schemas/action-schema.js +483 -0
- package/dist/agents/shared/schemas/action-schema.js.map +1 -0
- package/dist/agents/shared/services/agent-registry.d.ts +108 -0
- package/dist/agents/shared/services/agent-registry.d.ts.map +1 -0
- package/dist/agents/shared/services/agent-registry.js +469 -0
- package/dist/agents/shared/services/agent-registry.js.map +1 -0
- package/dist/agents/shared/services/conversation-manager.d.ts +57 -0
- package/dist/agents/shared/services/conversation-manager.d.ts.map +1 -0
- package/dist/agents/shared/services/conversation-manager.js +168 -0
- package/dist/agents/shared/services/conversation-manager.js.map +1 -0
- package/dist/agents/shared/services/mcp-client.d.ts +56 -0
- package/dist/agents/shared/services/mcp-client.d.ts.map +1 -0
- package/dist/agents/shared/services/mcp-client.js +124 -0
- package/dist/agents/shared/services/mcp-client.js.map +1 -0
- package/dist/agents/shared/services/message-classifier.d.ts +37 -0
- package/dist/agents/shared/services/message-classifier.d.ts.map +1 -0
- package/dist/agents/shared/services/message-classifier.js +203 -0
- package/dist/agents/shared/services/message-classifier.js.map +1 -0
- package/dist/agents/shared/services/message-formatter.d.ts +89 -0
- package/dist/agents/shared/services/message-formatter.d.ts.map +1 -0
- package/dist/agents/shared/services/message-formatter.js +390 -0
- package/dist/agents/shared/services/message-formatter.js.map +1 -0
- package/dist/agents/shared/services/session-logger.d.ts +162 -0
- package/dist/agents/shared/services/session-logger.d.ts.map +1 -0
- package/dist/agents/shared/services/session-logger.js +724 -0
- package/dist/agents/shared/services/session-logger.js.map +1 -0
- package/dist/agents/shared/services/structured-output-executor.d.ts +88 -0
- package/dist/agents/shared/services/structured-output-executor.d.ts.map +1 -0
- package/dist/agents/shared/services/structured-output-executor.js +296 -0
- package/dist/agents/shared/services/structured-output-executor.js.map +1 -0
- package/dist/agents/shared/services/token-billing.d.ts +72 -0
- package/dist/agents/shared/services/token-billing.d.ts.map +1 -0
- package/dist/agents/shared/services/token-billing.js +198 -0
- package/dist/agents/shared/services/token-billing.js.map +1 -0
- package/dist/agents/shared/services/tool-executor.d.ts +43 -0
- package/dist/agents/shared/services/tool-executor.d.ts.map +1 -0
- package/dist/agents/shared/services/tool-executor.js +175 -0
- package/dist/agents/shared/services/tool-executor.js.map +1 -0
- package/dist/agents/shared/services/typing-indicator.d.ts +24 -0
- package/dist/agents/shared/services/typing-indicator.d.ts.map +1 -0
- package/dist/agents/shared/services/typing-indicator.js +54 -0
- package/dist/agents/shared/services/typing-indicator.js.map +1 -0
- package/dist/agents/shared/services/workspace-schema-cache.d.ts +122 -0
- package/dist/agents/shared/services/workspace-schema-cache.d.ts.map +1 -0
- package/dist/agents/shared/services/workspace-schema-cache.js +507 -0
- package/dist/agents/shared/services/workspace-schema-cache.js.map +1 -0
- package/dist/agents/shared/specialist.d.ts +91 -0
- package/dist/agents/shared/specialist.d.ts.map +1 -0
- package/dist/agents/shared/specialist.js +399 -0
- package/dist/agents/shared/specialist.js.map +1 -0
- package/dist/agents/shared/tool-schema-loader.d.ts +65 -0
- package/dist/agents/shared/tool-schema-loader.d.ts.map +1 -0
- package/dist/agents/shared/tool-schema-loader.js +238 -0
- package/dist/agents/shared/tool-schema-loader.js.map +1 -0
- package/dist/agents/shared/types.d.ts +190 -0
- package/dist/agents/shared/types.d.ts.map +1 -0
- package/dist/agents/shared/types.js +13 -0
- package/dist/agents/shared/types.js.map +1 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js.map +1 -0
- package/dist/bot/bot-config.d.ts.map +1 -0
- package/dist/bot/bot-config.js.map +1 -0
- package/dist/bot/bot-manager.d.ts.map +1 -0
- package/dist/bot/bot-manager.js.map +1 -0
- package/dist/bot/bot.d.ts.map +1 -0
- package/dist/bot/bot.js.map +1 -0
- package/dist/bot/operation-logger.d.ts.map +1 -0
- package/dist/bot/operation-logger.js.map +1 -0
- package/dist/bot/services/__tests__/permission-guard.test.d.ts +2 -0
- package/dist/bot/services/__tests__/permission-guard.test.d.ts.map +1 -0
- package/dist/bot/services/__tests__/permission-guard.test.js +357 -0
- package/dist/bot/services/__tests__/permission-guard.test.js.map +1 -0
- package/dist/bot/services/conversation-manager.d.ts.map +1 -0
- package/dist/bot/services/conversation-manager.js.map +1 -0
- package/dist/bot/services/index.d.ts.map +1 -0
- package/dist/bot/services/index.js.map +1 -0
- package/dist/bot/services/message-classifier.d.ts.map +1 -0
- package/dist/bot/services/message-classifier.js.map +1 -0
- package/dist/bot/services/message-formatter.d.ts.map +1 -0
- package/dist/bot/services/message-formatter.js.map +1 -0
- package/dist/bot/services/permission-guard.d.ts.map +1 -0
- package/dist/bot/services/permission-guard.js.map +1 -0
- package/dist/bot/services/session-logger.d.ts.map +1 -0
- package/dist/bot/services/session-logger.js.map +1 -0
- package/dist/bot/services/token-billing.d.ts.map +1 -0
- package/dist/bot/services/token-billing.js.map +1 -0
- package/dist/bot/services/types.d.ts.map +1 -0
- package/dist/bot/services/types.js.map +1 -0
- package/dist/bot/services/typing-indicator.d.ts.map +1 -0
- package/dist/bot/services/typing-indicator.js.map +1 -0
- package/dist/bot/services/workspace-schema-cache.d.ts.map +1 -0
- package/dist/bot/services/workspace-schema-cache.js.map +1 -0
- package/dist/bot/tool-executor.d.ts.map +1 -0
- package/dist/bot/tool-executor.js.map +1 -0
- package/dist/bot/workspace-overview.d.ts.map +1 -0
- package/dist/bot/workspace-overview.js.map +1 -0
- package/dist/bot-config/constants.d.ts +42 -0
- package/dist/bot-config/constants.d.ts.map +1 -0
- package/dist/bot-config/constants.js +118 -0
- package/dist/bot-config/constants.js.map +1 -0
- package/dist/bot-config/context.d.ts +157 -0
- package/dist/bot-config/context.d.ts.map +1 -0
- package/dist/bot-config/context.js +475 -0
- package/dist/bot-config/context.js.map +1 -0
- package/dist/bot-config/index.d.ts +21 -0
- package/dist/bot-config/index.d.ts.map +1 -0
- package/dist/bot-config/index.js +104 -0
- package/dist/bot-config/index.js.map +1 -0
- package/dist/bot-config/loader.d.ts +28 -0
- package/dist/bot-config/loader.d.ts.map +1 -0
- package/dist/bot-config/loader.js +194 -0
- package/dist/bot-config/loader.js.map +1 -0
- package/dist/bot-config/persistence.d.ts +68 -0
- package/dist/bot-config/persistence.d.ts.map +1 -0
- package/dist/bot-config/persistence.js +261 -0
- package/dist/bot-config/persistence.js.map +1 -0
- package/dist/bot-config/state.d.ts +56 -0
- package/dist/bot-config/state.d.ts.map +1 -0
- package/dist/bot-config/state.js +197 -0
- package/dist/bot-config/state.js.map +1 -0
- package/dist/bot-config/tools.d.ts +28 -0
- package/dist/bot-config/tools.d.ts.map +1 -0
- package/dist/bot-config/tools.js +279 -0
- package/dist/bot-config/tools.js.map +1 -0
- package/dist/bot-config/types.d.ts +45 -0
- package/dist/bot-config/types.d.ts.map +1 -0
- package/dist/bot-config/types.js +9 -0
- package/dist/bot-config/types.js.map +1 -0
- package/dist/bot-config/webhooks.d.ts +27 -0
- package/dist/bot-config/webhooks.d.ts.map +1 -0
- package/dist/bot-config/webhooks.js +212 -0
- package/dist/bot-config/webhooks.js.map +1 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js.map +1 -0
- package/dist/client/agents/base.d.ts +207 -0
- package/dist/client/agents/base.d.ts.map +1 -0
- package/dist/client/agents/base.js +744 -0
- package/dist/client/agents/base.js.map +1 -0
- package/dist/client/agents/definitions.d.ts +53 -0
- package/dist/client/agents/definitions.d.ts.map +1 -0
- package/dist/client/agents/definitions.js +263 -0
- package/dist/client/agents/definitions.js.map +1 -0
- package/dist/client/agents/orchestrator.d.ts +141 -0
- package/dist/client/agents/orchestrator.d.ts.map +1 -0
- package/dist/client/agents/orchestrator.js +1062 -0
- package/dist/client/agents/orchestrator.js.map +1 -0
- package/dist/client/agents/specialist.d.ts +86 -0
- package/dist/client/agents/specialist.d.ts.map +1 -0
- package/dist/client/agents/specialist.js +340 -0
- package/dist/client/agents/specialist.js.map +1 -0
- package/dist/client/bot-entrypoint.d.ts +7 -0
- package/dist/client/bot-entrypoint.d.ts.map +1 -0
- package/dist/client/bot-entrypoint.js +103 -0
- package/dist/client/bot-entrypoint.js.map +1 -0
- package/dist/client/bot-manager.d.ts +44 -0
- package/dist/client/bot-manager.d.ts.map +1 -0
- package/dist/client/bot-manager.js +173 -0
- package/dist/client/bot-manager.js.map +1 -0
- package/dist/client/bot-runner.d.ts +35 -0
- package/dist/client/bot-runner.d.ts.map +1 -0
- package/dist/client/bot-runner.js +188 -0
- package/dist/client/bot-runner.js.map +1 -0
- package/dist/client/chat-agent-daemon.d.ts +464 -0
- package/dist/client/chat-agent-daemon.d.ts.map +1 -0
- package/dist/client/chat-agent-daemon.js +1774 -0
- package/dist/client/chat-agent-daemon.js.map +1 -0
- package/dist/client/daemon-factory.d.ts +106 -0
- package/dist/client/daemon-factory.d.ts.map +1 -0
- package/dist/client/daemon-factory.js +301 -0
- package/dist/client/daemon-factory.js.map +1 -0
- package/dist/client/factory.d.ts +111 -0
- package/dist/client/factory.d.ts.map +1 -0
- package/dist/client/factory.js +314 -0
- package/dist/client/factory.js.map +1 -0
- package/dist/client/index.d.ts +17 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +38 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/multi-bot-manager.d.ts +42 -0
- package/dist/client/multi-bot-manager.d.ts.map +1 -0
- package/dist/client/multi-bot-manager.js +161 -0
- package/dist/client/multi-bot-manager.js.map +1 -0
- package/dist/client/orchestrator-daemon.d.ts +87 -0
- package/dist/client/orchestrator-daemon.d.ts.map +1 -0
- package/dist/client/orchestrator-daemon.js +444 -0
- package/dist/client/orchestrator-daemon.js.map +1 -0
- package/dist/client/server.d.ts +8 -0
- package/dist/client/server.d.ts.map +1 -0
- package/dist/client/server.js +251 -0
- package/dist/client/server.js.map +1 -0
- package/dist/client/services/agent-registry.d.ts +108 -0
- package/dist/client/services/agent-registry.d.ts.map +1 -0
- package/dist/client/services/agent-registry.js +630 -0
- package/dist/client/services/agent-registry.js.map +1 -0
- package/dist/client/services/conversation-manager.d.ts +50 -0
- package/dist/client/services/conversation-manager.d.ts.map +1 -0
- package/dist/client/services/conversation-manager.js +136 -0
- package/dist/client/services/conversation-manager.js.map +1 -0
- package/dist/client/services/mcp-client.d.ts +48 -0
- package/dist/client/services/mcp-client.d.ts.map +1 -0
- package/dist/client/services/mcp-client.js +105 -0
- package/dist/client/services/mcp-client.js.map +1 -0
- package/dist/client/services/message-classifier.d.ts +37 -0
- package/dist/client/services/message-classifier.d.ts.map +1 -0
- package/dist/client/services/message-classifier.js +187 -0
- package/dist/client/services/message-classifier.js.map +1 -0
- package/dist/client/services/message-formatter.d.ts +84 -0
- package/dist/client/services/message-formatter.d.ts.map +1 -0
- package/dist/client/services/message-formatter.js +353 -0
- package/dist/client/services/message-formatter.js.map +1 -0
- package/dist/client/services/session-logger.d.ts +106 -0
- package/dist/client/services/session-logger.d.ts.map +1 -0
- package/dist/client/services/session-logger.js +446 -0
- package/dist/client/services/session-logger.js.map +1 -0
- package/dist/client/services/tool-executor.d.ts +41 -0
- package/dist/client/services/tool-executor.d.ts.map +1 -0
- package/dist/client/services/tool-executor.js +169 -0
- package/dist/client/services/tool-executor.js.map +1 -0
- package/dist/client/services/workspace-schema-cache.d.ts +149 -0
- package/dist/client/services/workspace-schema-cache.d.ts.map +1 -0
- package/dist/client/services/workspace-schema-cache.js +732 -0
- package/dist/client/services/workspace-schema-cache.js.map +1 -0
- package/dist/client/specialist-daemon.d.ts +77 -0
- package/dist/client/specialist-daemon.d.ts.map +1 -0
- package/dist/client/specialist-daemon.js +197 -0
- package/dist/client/specialist-daemon.js.map +1 -0
- package/dist/client/specialists.d.ts +53 -0
- package/dist/client/specialists.d.ts.map +1 -0
- package/dist/client/specialists.js +178 -0
- package/dist/client/specialists.js.map +1 -0
- package/dist/client/tool-schema-loader.d.ts +62 -0
- package/dist/client/tool-schema-loader.d.ts.map +1 -0
- package/dist/client/tool-schema-loader.js +232 -0
- package/dist/client/tool-schema-loader.js.map +1 -0
- package/dist/client/types.d.ts +327 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +121 -0
- package/dist/client/types.js.map +1 -0
- package/dist/commands/seed-config.d.ts +9 -0
- package/dist/commands/seed-config.d.ts.map +1 -0
- package/dist/commands/seed-config.js +392 -0
- package/dist/commands/seed-config.js.map +1 -0
- package/dist/commands/setup.d.ts +11 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +320 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js.map +1 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js.map +1 -0
- package/dist/lib/discussion-lock.d.ts.map +1 -0
- package/dist/lib/discussion-lock.js.map +1 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/request-logger.d.ts.map +1 -0
- package/dist/lib/request-logger.js.map +1 -0
- package/dist/mcp/UserContextCache.d.ts.map +1 -0
- package/dist/mcp/UserContextCache.js.map +1 -0
- package/dist/mcp/auth.d.ts.map +1 -0
- package/dist/mcp/auth.js.map +1 -0
- package/dist/mcp/hailer-clients.d.ts.map +1 -0
- package/dist/mcp/hailer-clients.js.map +1 -0
- package/dist/mcp/session-store.d.ts.map +1 -0
- package/dist/mcp/session-store.js.map +1 -0
- package/dist/mcp/signal-handler.d.ts.map +1 -0
- package/dist/mcp/signal-handler.js.map +1 -0
- package/dist/mcp/tool-registry.d.ts.map +1 -0
- package/dist/mcp/tool-registry.js.map +1 -0
- package/dist/mcp/tools/__tests__/discussion-forward.test.d.ts +2 -0
- package/dist/mcp/tools/__tests__/discussion-forward.test.d.ts.map +1 -0
- package/dist/mcp/tools/__tests__/discussion-forward.test.js +218 -0
- package/dist/mcp/tools/__tests__/discussion-forward.test.js.map +1 -0
- package/dist/mcp/tools/activity.d.ts.map +1 -0
- package/dist/mcp/tools/activity.js.map +1 -0
- package/dist/mcp/tools/app-core.d.ts.map +1 -0
- package/dist/mcp/tools/app-core.js.map +1 -0
- package/dist/mcp/tools/app-marketplace.d.ts.map +1 -0
- package/dist/mcp/tools/app-marketplace.js.map +1 -0
- package/dist/mcp/tools/app-member.d.ts.map +1 -0
- package/dist/mcp/tools/app-member.js.map +1 -0
- package/dist/mcp/tools/app-scaffold.d.ts.map +1 -0
- package/dist/mcp/tools/app-scaffold.js.map +1 -0
- package/dist/mcp/tools/app.d.ts.map +1 -0
- package/dist/mcp/tools/app.js.map +1 -0
- package/dist/mcp/tools/bot-config/constants.d.ts.map +1 -0
- package/dist/mcp/tools/bot-config/constants.js.map +1 -0
- package/dist/mcp/tools/bot-config/core.d.ts.map +1 -0
- package/dist/mcp/tools/bot-config/core.js.map +1 -0
- package/dist/mcp/tools/bot-config/index.d.ts.map +1 -0
- package/dist/mcp/tools/bot-config/index.js.map +1 -0
- package/dist/mcp/tools/bot-config/tools.d.ts.map +1 -0
- package/dist/mcp/tools/bot-config/tools.js.map +1 -0
- package/dist/mcp/tools/bot-config/types.d.ts.map +1 -0
- package/dist/mcp/tools/bot-config/types.js.map +1 -0
- package/dist/mcp/tools/bug-fixer-tools.d.ts.map +1 -0
- package/dist/mcp/tools/bug-fixer-tools.js.map +1 -0
- package/dist/mcp/tools/company.d.ts.map +1 -0
- package/dist/mcp/tools/company.js.map +1 -0
- package/dist/mcp/tools/discussion.d.ts.map +1 -0
- package/dist/mcp/tools/discussion.js.map +1 -0
- package/dist/mcp/tools/document.d.ts.map +1 -0
- package/dist/mcp/tools/document.js.map +1 -0
- package/dist/mcp/tools/file.d.ts.map +1 -0
- package/dist/mcp/tools/file.js.map +1 -0
- package/dist/mcp/tools/insight.d.ts.map +1 -0
- package/dist/mcp/tools/insight.js.map +1 -0
- package/dist/mcp/tools/investigate.d.ts.map +1 -0
- package/dist/mcp/tools/investigate.js.map +1 -0
- package/dist/mcp/tools/user.d.ts.map +1 -0
- package/dist/mcp/tools/user.js.map +1 -0
- package/dist/mcp/tools/workflow-permissions.d.ts.map +1 -0
- package/dist/mcp/tools/workflow-permissions.js.map +1 -0
- package/dist/mcp/tools/workflow.d.ts.map +1 -0
- package/dist/mcp/tools/workflow.js.map +1 -0
- package/dist/mcp/utils/api-errors.d.ts.map +1 -0
- package/dist/mcp/utils/api-errors.js.map +1 -0
- package/dist/mcp/utils/data-transformers.d.ts.map +1 -0
- package/dist/mcp/utils/data-transformers.js.map +1 -0
- package/dist/mcp/utils/file-upload.d.ts.map +1 -0
- package/dist/mcp/utils/file-upload.js.map +1 -0
- package/dist/mcp/utils/hailer-api-client.d.ts.map +1 -0
- package/dist/mcp/utils/hailer-api-client.js.map +1 -0
- package/dist/mcp/utils/index.d.ts.map +1 -0
- package/dist/mcp/utils/index.js.map +1 -0
- package/dist/mcp/utils/logger.d.ts.map +1 -0
- package/dist/mcp/utils/logger.js.map +1 -0
- package/dist/mcp/utils/pagination.d.ts.map +1 -0
- package/dist/mcp/utils/pagination.js.map +1 -0
- package/dist/mcp/utils/response-builder.d.ts.map +1 -0
- package/dist/mcp/utils/response-builder.js.map +1 -0
- package/dist/mcp/utils/role-utils.d.ts.map +1 -0
- package/dist/mcp/utils/role-utils.js.map +1 -0
- package/dist/mcp/utils/tool-helpers.d.ts.map +1 -0
- package/dist/mcp/utils/tool-helpers.js.map +1 -0
- package/dist/mcp/utils/types.d.ts.map +1 -0
- package/dist/mcp/utils/types.js.map +1 -0
- package/dist/mcp/webhook-handler.d.ts.map +1 -0
- package/dist/mcp/webhook-handler.js.map +1 -0
- package/dist/mcp/workspace-cache.d.ts.map +1 -0
- package/dist/mcp/workspace-cache.js.map +1 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/modules/bug-reports/bug-config.d.ts +25 -0
- package/dist/modules/bug-reports/bug-config.d.ts.map +1 -0
- package/dist/modules/bug-reports/bug-config.js +187 -0
- package/dist/modules/bug-reports/bug-config.js.map +1 -0
- package/dist/modules/bug-reports/bug-monitor.d.ts +108 -0
- package/dist/modules/bug-reports/bug-monitor.d.ts.map +1 -0
- package/dist/modules/bug-reports/bug-monitor.js +510 -0
- package/dist/modules/bug-reports/bug-monitor.js.map +1 -0
- package/dist/modules/bug-reports/giuseppe-agent.d.ts +58 -0
- package/dist/modules/bug-reports/giuseppe-agent.d.ts.map +1 -0
- package/dist/modules/bug-reports/giuseppe-agent.js +467 -0
- package/dist/modules/bug-reports/giuseppe-agent.js.map +1 -0
- package/dist/modules/bug-reports/giuseppe-ai.d.ts +83 -0
- package/dist/modules/bug-reports/giuseppe-ai.d.ts.map +1 -0
- package/dist/modules/bug-reports/giuseppe-ai.js +466 -0
- package/dist/modules/bug-reports/giuseppe-ai.js.map +1 -0
- package/dist/modules/bug-reports/giuseppe-bot.d.ts +110 -0
- package/dist/modules/bug-reports/giuseppe-bot.d.ts.map +1 -0
- package/dist/modules/bug-reports/giuseppe-bot.js +804 -0
- package/dist/modules/bug-reports/giuseppe-bot.js.map +1 -0
- package/dist/modules/bug-reports/giuseppe-daemon.d.ts +80 -0
- package/dist/modules/bug-reports/giuseppe-daemon.d.ts.map +1 -0
- package/dist/modules/bug-reports/giuseppe-daemon.js +617 -0
- package/dist/modules/bug-reports/giuseppe-daemon.js.map +1 -0
- package/dist/modules/bug-reports/giuseppe-files.d.ts +64 -0
- package/dist/modules/bug-reports/giuseppe-files.d.ts.map +1 -0
- package/dist/modules/bug-reports/giuseppe-files.js +375 -0
- package/dist/modules/bug-reports/giuseppe-files.js.map +1 -0
- package/dist/modules/bug-reports/giuseppe-git.d.ts +48 -0
- package/dist/modules/bug-reports/giuseppe-git.d.ts.map +1 -0
- package/dist/modules/bug-reports/giuseppe-git.js +298 -0
- package/dist/modules/bug-reports/giuseppe-git.js.map +1 -0
- package/dist/modules/bug-reports/giuseppe-lsp.d.ts +113 -0
- package/dist/modules/bug-reports/giuseppe-lsp.d.ts.map +1 -0
- package/dist/modules/bug-reports/giuseppe-lsp.js +485 -0
- package/dist/modules/bug-reports/giuseppe-lsp.js.map +1 -0
- package/dist/modules/bug-reports/giuseppe-prompt.d.ts +5 -0
- package/dist/modules/bug-reports/giuseppe-prompt.d.ts.map +1 -0
- package/dist/modules/bug-reports/giuseppe-prompt.js +94 -0
- package/dist/modules/bug-reports/giuseppe-prompt.js.map +1 -0
- package/dist/modules/bug-reports/index.d.ts +77 -0
- package/dist/modules/bug-reports/index.d.ts.map +1 -0
- package/dist/modules/bug-reports/index.js +215 -0
- package/dist/modules/bug-reports/index.js.map +1 -0
- package/dist/modules/bug-reports/pending-classification-registry.d.ts +28 -0
- package/dist/modules/bug-reports/pending-classification-registry.d.ts.map +1 -0
- package/dist/modules/bug-reports/pending-classification-registry.js +50 -0
- package/dist/modules/bug-reports/pending-classification-registry.js.map +1 -0
- package/dist/modules/bug-reports/pending-fix-registry.d.ts +30 -0
- package/dist/modules/bug-reports/pending-fix-registry.d.ts.map +1 -0
- package/dist/modules/bug-reports/pending-fix-registry.js +42 -0
- package/dist/modules/bug-reports/pending-fix-registry.js.map +1 -0
- package/dist/modules/bug-reports/pending-registry.d.ts +27 -0
- package/dist/modules/bug-reports/pending-registry.d.ts.map +1 -0
- package/dist/modules/bug-reports/pending-registry.js +49 -0
- package/dist/modules/bug-reports/pending-registry.js.map +1 -0
- package/dist/modules/bug-reports/types.d.ts +123 -0
- package/dist/modules/bug-reports/types.d.ts.map +1 -0
- package/dist/modules/bug-reports/types.js +9 -0
- package/dist/modules/bug-reports/types.js.map +1 -0
- package/dist/plugins/bug-fixer/index.d.ts.map +1 -0
- package/dist/plugins/bug-fixer/index.js.map +1 -0
- package/dist/plugins/bug-fixer/tools.d.ts.map +1 -0
- package/dist/plugins/bug-fixer/tools.js.map +1 -0
- package/dist/plugins/vipunen/__tests__/tools.test.d.ts +10 -0
- package/dist/plugins/vipunen/__tests__/tools.test.d.ts.map +1 -0
- package/dist/plugins/vipunen/__tests__/tools.test.js +646 -0
- package/dist/plugins/vipunen/__tests__/tools.test.js.map +1 -0
- package/dist/plugins/vipunen/client.d.ts.map +1 -0
- package/dist/plugins/vipunen/client.js.map +1 -0
- package/dist/plugins/vipunen/index.d.ts.map +1 -0
- package/dist/plugins/vipunen/index.js.map +1 -0
- package/dist/plugins/vipunen/tools.d.ts.map +1 -0
- package/dist/plugins/vipunen/tools.js.map +1 -0
- package/dist/routes/agents.d.ts +44 -0
- package/dist/routes/agents.d.ts.map +1 -0
- package/dist/routes/agents.js +311 -0
- package/dist/routes/agents.js.map +1 -0
- package/dist/services/agent-credential-store.d.ts +73 -0
- package/dist/services/agent-credential-store.d.ts.map +1 -0
- package/dist/services/agent-credential-store.js +212 -0
- package/dist/services/agent-credential-store.js.map +1 -0
- package/dist/stdio-server.d.ts.map +1 -0
- package/dist/stdio-server.js.map +1 -0
- package/dist/workspace/context.d.ts +148 -0
- package/dist/workspace/context.d.ts.map +1 -0
- package/dist/workspace/context.js +339 -0
- package/dist/workspace/context.js.map +1 -0
- package/dist/workspace/credentials.d.ts +55 -0
- package/dist/workspace/credentials.d.ts.map +1 -0
- package/dist/workspace/credentials.js +239 -0
- package/dist/workspace/credentials.js.map +1 -0
- package/dist/workspace/index.d.ts +21 -0
- package/dist/workspace/index.d.ts.map +1 -0
- package/dist/workspace/index.js +45 -0
- package/dist/workspace/index.js.map +1 -0
- package/dist/workspace/loader.d.ts +27 -0
- package/dist/workspace/loader.d.ts.map +1 -0
- package/dist/workspace/loader.js +222 -0
- package/dist/workspace/loader.js.map +1 -0
- package/dist/workspace/schema.d.ts +37 -0
- package/dist/workspace/schema.d.ts.map +1 -0
- package/dist/workspace/schema.js +192 -0
- package/dist/workspace/schema.js.map +1 -0
- package/package.json +13 -1
- package/.claude/.context-watchdog.json +0 -1
- package/.claude/.session-checked +0 -1
- package/test-billing-server.js +0 -136
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bot Config Loader
|
|
3
|
+
*
|
|
4
|
+
* Loads bot configurations from .bot-config/*.json files.
|
|
5
|
+
* Creates BotContext instances for each workspace.
|
|
6
|
+
*/
|
|
7
|
+
import { BotContext } from './context';
|
|
8
|
+
/**
|
|
9
|
+
* Invalidate the config cache.
|
|
10
|
+
* Call this after saving a config file to ensure fresh reads.
|
|
11
|
+
*/
|
|
12
|
+
export declare function invalidateConfigCache(): void;
|
|
13
|
+
/**
|
|
14
|
+
* Load all bot configs from .bot-config/*.json files
|
|
15
|
+
* Returns BotContext instances (one per workspace)
|
|
16
|
+
*
|
|
17
|
+
* Results are cached for 5 seconds to avoid repeated file reads during startup.
|
|
18
|
+
*/
|
|
19
|
+
export declare function loadBotConfigs(): BotContext[];
|
|
20
|
+
/**
|
|
21
|
+
* Get or load a specific workspace's bot config
|
|
22
|
+
*/
|
|
23
|
+
export declare function getOrLoadBotConfig(workspaceId: string): BotContext | null;
|
|
24
|
+
/**
|
|
25
|
+
* Save bot config to file
|
|
26
|
+
*/
|
|
27
|
+
export declare function saveBotConfig(ctx: BotContext): void;
|
|
28
|
+
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/bot-config/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,UAAU,EAA4B,MAAM,WAAW,CAAC;AASjE;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAI5C;AAgCD;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,UAAU,EAAE,CA6D7C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAyBzE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAiDnD"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Bot Config Loader
|
|
4
|
+
*
|
|
5
|
+
* Loads bot configurations from .bot-config/*.json files.
|
|
6
|
+
* Creates BotContext instances for each workspace.
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.invalidateConfigCache = invalidateConfigCache;
|
|
43
|
+
exports.loadBotConfigs = loadBotConfigs;
|
|
44
|
+
exports.getOrLoadBotConfig = getOrLoadBotConfig;
|
|
45
|
+
exports.saveBotConfig = saveBotConfig;
|
|
46
|
+
const fs = __importStar(require("fs"));
|
|
47
|
+
const path = __importStar(require("path"));
|
|
48
|
+
const logger_1 = require("../lib/logger");
|
|
49
|
+
const context_1 = require("./context");
|
|
50
|
+
const logger = (0, logger_1.createLogger)({ component: 'BotConfigLoader' });
|
|
51
|
+
/** Cache for loaded configs to avoid repeated file reads */
|
|
52
|
+
let cachedContexts = null;
|
|
53
|
+
let cacheTime = 0;
|
|
54
|
+
const CACHE_TTL_MS = 5000; // 5 second cache to avoid repeated reads during startup
|
|
55
|
+
/**
|
|
56
|
+
* Invalidate the config cache.
|
|
57
|
+
* Call this after saving a config file to ensure fresh reads.
|
|
58
|
+
*/
|
|
59
|
+
function invalidateConfigCache() {
|
|
60
|
+
cachedContexts = null;
|
|
61
|
+
cacheTime = 0;
|
|
62
|
+
logger.debug('Config cache invalidated');
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Load all bot configs from .bot-config/*.json files
|
|
66
|
+
* Returns BotContext instances (one per workspace)
|
|
67
|
+
*
|
|
68
|
+
* Results are cached for 5 seconds to avoid repeated file reads during startup.
|
|
69
|
+
*/
|
|
70
|
+
function loadBotConfigs() {
|
|
71
|
+
// Return cached result if still valid
|
|
72
|
+
const now = Date.now();
|
|
73
|
+
if (cachedContexts && (now - cacheTime) < CACHE_TTL_MS) {
|
|
74
|
+
logger.debug('Using cached bot configs', { count: cachedContexts.length, ageMs: now - cacheTime });
|
|
75
|
+
return cachedContexts;
|
|
76
|
+
}
|
|
77
|
+
const configDir = path.join(process.cwd(), '.bot-config');
|
|
78
|
+
if (!fs.existsSync(configDir)) {
|
|
79
|
+
logger.warn('No .bot-config directory found');
|
|
80
|
+
return [];
|
|
81
|
+
}
|
|
82
|
+
const files = fs.readdirSync(configDir).filter(f => f.endsWith('.json'));
|
|
83
|
+
const contexts = [];
|
|
84
|
+
for (const file of files) {
|
|
85
|
+
try {
|
|
86
|
+
const filePath = path.join(configDir, file);
|
|
87
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
88
|
+
const config = JSON.parse(content);
|
|
89
|
+
// Get or create BotContext for this workspace
|
|
90
|
+
const ctx = (0, context_1.getBotContext)(config.workspaceId, config.workspaceName);
|
|
91
|
+
// Initialize from config
|
|
92
|
+
ctx.initializeFromConfig({
|
|
93
|
+
orchestrator: config.orchestrator,
|
|
94
|
+
specialists: config.specialists,
|
|
95
|
+
schema: config.schema,
|
|
96
|
+
});
|
|
97
|
+
contexts.push(ctx);
|
|
98
|
+
logger.debug('Loaded bot config', {
|
|
99
|
+
workspaceId: config.workspaceId,
|
|
100
|
+
workspaceName: config.workspaceName,
|
|
101
|
+
hasOrchestrator: !!config.orchestrator,
|
|
102
|
+
specialistCount: config.specialists.length,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
logger.warn('Failed to load bot config file', {
|
|
107
|
+
file,
|
|
108
|
+
error: error instanceof Error ? error.message : String(error),
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
logger.debug('Bot configs loaded', {
|
|
113
|
+
total: contexts.length,
|
|
114
|
+
workspaces: contexts.map(c => c.workspaceId),
|
|
115
|
+
});
|
|
116
|
+
// Cache the result
|
|
117
|
+
cachedContexts = contexts;
|
|
118
|
+
cacheTime = Date.now();
|
|
119
|
+
return contexts;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Get or load a specific workspace's bot config
|
|
123
|
+
*/
|
|
124
|
+
function getOrLoadBotConfig(workspaceId) {
|
|
125
|
+
const configDir = path.join(process.cwd(), '.bot-config');
|
|
126
|
+
const filePath = path.join(configDir, `${workspaceId}.json`);
|
|
127
|
+
if (!fs.existsSync(filePath)) {
|
|
128
|
+
logger.debug('No config file for workspace', { workspaceId });
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
try {
|
|
132
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
133
|
+
const config = JSON.parse(content);
|
|
134
|
+
const ctx = (0, context_1.getBotContext)(config.workspaceId, config.workspaceName);
|
|
135
|
+
ctx.initializeFromConfig({
|
|
136
|
+
orchestrator: config.orchestrator,
|
|
137
|
+
specialists: config.specialists,
|
|
138
|
+
schema: config.schema,
|
|
139
|
+
});
|
|
140
|
+
return ctx;
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
logger.error('Failed to load bot config', { workspaceId, error });
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Save bot config to file
|
|
149
|
+
*/
|
|
150
|
+
function saveBotConfig(ctx) {
|
|
151
|
+
const configDir = path.join(process.cwd(), '.bot-config');
|
|
152
|
+
// Ensure directory exists
|
|
153
|
+
if (!fs.existsSync(configDir)) {
|
|
154
|
+
fs.mkdirSync(configDir, { recursive: true });
|
|
155
|
+
}
|
|
156
|
+
const filePath = path.join(configDir, `${ctx.workspaceId}.json`);
|
|
157
|
+
// Build config from context
|
|
158
|
+
const orchestrator = ctx.getOrchestratorCredentials();
|
|
159
|
+
const specialists = ctx.getSpecialistCredentials();
|
|
160
|
+
const config = {
|
|
161
|
+
workspaceId: ctx.workspaceId,
|
|
162
|
+
workspaceName: ctx.workspaceName,
|
|
163
|
+
orchestrator: orchestrator ? {
|
|
164
|
+
activityId: orchestrator.activityId || '',
|
|
165
|
+
userId: orchestrator.userId,
|
|
166
|
+
email: orchestrator.email,
|
|
167
|
+
password: orchestrator.password,
|
|
168
|
+
displayName: orchestrator.displayName,
|
|
169
|
+
systemPrompt: orchestrator.systemPrompt,
|
|
170
|
+
accessLevel: orchestrator.accessLevel,
|
|
171
|
+
responseMode: orchestrator.responseMode,
|
|
172
|
+
} : null,
|
|
173
|
+
specialists: specialists.map(s => ({
|
|
174
|
+
activityId: s.activityId || '',
|
|
175
|
+
userId: s.userId,
|
|
176
|
+
email: s.email,
|
|
177
|
+
password: s.password,
|
|
178
|
+
botType: s.botType,
|
|
179
|
+
enabled: s.enabled,
|
|
180
|
+
displayName: s.displayName,
|
|
181
|
+
systemPrompt: s.systemPrompt,
|
|
182
|
+
accessLevel: s.accessLevel,
|
|
183
|
+
responseMode: s.responseMode,
|
|
184
|
+
})),
|
|
185
|
+
lastSynced: new Date().toISOString(),
|
|
186
|
+
schema: ctx.getSchema() || undefined,
|
|
187
|
+
};
|
|
188
|
+
fs.writeFileSync(filePath, JSON.stringify(config, null, 2));
|
|
189
|
+
logger.debug('Saved bot config', {
|
|
190
|
+
workspaceId: ctx.workspaceId,
|
|
191
|
+
filePath,
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/bot-config/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bot Configuration Persistence
|
|
3
|
+
*
|
|
4
|
+
* Handles initialization and persistence of bot configuration.
|
|
5
|
+
*/
|
|
6
|
+
import { HailerApiClient } from '../mcp/utils';
|
|
7
|
+
/**
|
|
8
|
+
* Initialize bot config persistence
|
|
9
|
+
*
|
|
10
|
+
* Sets up signal handler and loads bot configuration from files.
|
|
11
|
+
*/
|
|
12
|
+
export declare function initBotConfigPersistence(client: HailerApiClient): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Initialize workspace schema for a specific workspace
|
|
15
|
+
*
|
|
16
|
+
* Discovers the Agent Directory in the workspace and caches field IDs.
|
|
17
|
+
*/
|
|
18
|
+
export declare function initWorkspaceSchema(client: HailerApiClient, workspaceId: string): Promise<boolean>;
|
|
19
|
+
/**
|
|
20
|
+
* Check if persistence is initialized
|
|
21
|
+
*/
|
|
22
|
+
export declare function isPersistenceInitialized(): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Set the active workspace ID
|
|
25
|
+
*/
|
|
26
|
+
export declare function setActiveWorkspace(workspaceId: string): void;
|
|
27
|
+
/**
|
|
28
|
+
* Get the active workspace ID
|
|
29
|
+
*/
|
|
30
|
+
export declare function getActiveWorkspace(): string | null;
|
|
31
|
+
/**
|
|
32
|
+
* Reload bot configuration from Hailer
|
|
33
|
+
*
|
|
34
|
+
* Re-discovers the Agent Directory and reloads credentials.
|
|
35
|
+
* If no client is provided, uses the stored hailerClient.
|
|
36
|
+
*/
|
|
37
|
+
export declare function reloadConfigFromHailer(client?: HailerApiClient): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Get local bot credentials for daemon creation
|
|
40
|
+
*
|
|
41
|
+
* Looks up credentials by user ID or bot ID.
|
|
42
|
+
*/
|
|
43
|
+
export declare function getLocalBotCredentials(userIdOrBotId: string): {
|
|
44
|
+
email: string;
|
|
45
|
+
password: string;
|
|
46
|
+
displayName?: string;
|
|
47
|
+
} | null;
|
|
48
|
+
/**
|
|
49
|
+
* Get all local bot credentials
|
|
50
|
+
*/
|
|
51
|
+
export declare function getAllLocalBotCredentials(): Record<string, {
|
|
52
|
+
email: string;
|
|
53
|
+
password: string;
|
|
54
|
+
displayName?: string;
|
|
55
|
+
}>;
|
|
56
|
+
/**
|
|
57
|
+
* Get persistence status (for debugging)
|
|
58
|
+
*/
|
|
59
|
+
export declare function getPersistenceStatus(): {
|
|
60
|
+
initialized: boolean;
|
|
61
|
+
workspaceCount: number;
|
|
62
|
+
hasClient: boolean;
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Cleanup bot config (alias for cleanupBotState)
|
|
66
|
+
*/
|
|
67
|
+
export { cleanupBotState as cleanupBotConfig } from './state';
|
|
68
|
+
//# sourceMappingURL=persistence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../src/bot-config/persistence.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAoB/C;;;;GAIG;AACH,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBrF;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAyBxG;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,OAAO,CAElD;AAQD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAG5D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAElD;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBpF;AAuBD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAqB9H;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAqBrH;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI;IACtC,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;CACpB,CAMA;AAMD;;GAEG;AACH,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Bot Configuration Persistence
|
|
4
|
+
*
|
|
5
|
+
* Handles initialization and persistence of bot configuration.
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
+
}) : function(o, v) {
|
|
21
|
+
o["default"] = v;
|
|
22
|
+
});
|
|
23
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
24
|
+
var ownKeys = function(o) {
|
|
25
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
26
|
+
var ar = [];
|
|
27
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
28
|
+
return ar;
|
|
29
|
+
};
|
|
30
|
+
return ownKeys(o);
|
|
31
|
+
};
|
|
32
|
+
return function (mod) {
|
|
33
|
+
if (mod && mod.__esModule) return mod;
|
|
34
|
+
var result = {};
|
|
35
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
36
|
+
__setModuleDefault(result, mod);
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
})();
|
|
40
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
+
exports.cleanupBotConfig = void 0;
|
|
42
|
+
exports.initBotConfigPersistence = initBotConfigPersistence;
|
|
43
|
+
exports.initWorkspaceSchema = initWorkspaceSchema;
|
|
44
|
+
exports.isPersistenceInitialized = isPersistenceInitialized;
|
|
45
|
+
exports.setActiveWorkspace = setActiveWorkspace;
|
|
46
|
+
exports.getActiveWorkspace = getActiveWorkspace;
|
|
47
|
+
exports.reloadConfigFromHailer = reloadConfigFromHailer;
|
|
48
|
+
exports.getLocalBotCredentials = getLocalBotCredentials;
|
|
49
|
+
exports.getAllLocalBotCredentials = getAllLocalBotCredentials;
|
|
50
|
+
exports.getPersistenceStatus = getPersistenceStatus;
|
|
51
|
+
const fs = __importStar(require("fs"));
|
|
52
|
+
const logger_1 = require("../lib/logger");
|
|
53
|
+
const signal_handler_1 = require("../mcp/signal-handler");
|
|
54
|
+
const constants_1 = require("./constants");
|
|
55
|
+
const context_1 = require("./context");
|
|
56
|
+
const loader_1 = require("./loader");
|
|
57
|
+
const logger = (0, logger_1.createLogger)({ component: 'BotConfigPersistence' });
|
|
58
|
+
// ============================================================================
|
|
59
|
+
// State
|
|
60
|
+
// ============================================================================
|
|
61
|
+
let persistenceInitialized = false;
|
|
62
|
+
let hailerClient = null;
|
|
63
|
+
// ============================================================================
|
|
64
|
+
// Initialization
|
|
65
|
+
// ============================================================================
|
|
66
|
+
/**
|
|
67
|
+
* Initialize bot config persistence
|
|
68
|
+
*
|
|
69
|
+
* Sets up signal handler and loads bot configuration from files.
|
|
70
|
+
*/
|
|
71
|
+
async function initBotConfigPersistence(client) {
|
|
72
|
+
if (persistenceInitialized) {
|
|
73
|
+
logger.debug('Bot config persistence already initialized');
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
hailerClient = client;
|
|
77
|
+
// Set up signal handler for real-time activity signals
|
|
78
|
+
try {
|
|
79
|
+
signal_handler_1.SignalHandler.getOrCreate(client.getClient());
|
|
80
|
+
logger.debug('Signal handler initialized for bot config monitoring');
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
logger.warn('Failed to initialize signal handler', {
|
|
84
|
+
error: error instanceof Error ? error.message : String(error)
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
// Load bot configs from .bot-config/*.json
|
|
88
|
+
const contexts = (0, loader_1.loadBotConfigs)();
|
|
89
|
+
logger.debug('Loaded bot configs', { count: contexts.length });
|
|
90
|
+
persistenceInitialized = true;
|
|
91
|
+
logger.debug('Bot config persistence initialized');
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Initialize workspace schema for a specific workspace
|
|
95
|
+
*
|
|
96
|
+
* Discovers the Agent Directory in the workspace and caches field IDs.
|
|
97
|
+
*/
|
|
98
|
+
async function initWorkspaceSchema(client, workspaceId) {
|
|
99
|
+
// Check if we already have a context for this workspace
|
|
100
|
+
const existingContexts = (0, context_1.listBotContexts)();
|
|
101
|
+
if (existingContexts.includes(workspaceId)) {
|
|
102
|
+
const ctx = (0, context_1.getBotContext)(workspaceId);
|
|
103
|
+
const schema = ctx.getSchema();
|
|
104
|
+
if (schema?.agentDirectoryWorkflowId) {
|
|
105
|
+
logger.debug('Workspace schema already initialized', { workspaceId });
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
// Try to initialize from API
|
|
110
|
+
try {
|
|
111
|
+
const ctx = (0, context_1.getBotContext)(workspaceId);
|
|
112
|
+
await ctx.initializeFromApi(client);
|
|
113
|
+
logger.debug('Workspace schema initialized from API', { workspaceId });
|
|
114
|
+
return true;
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
logger.warn('Failed to initialize workspace schema', {
|
|
118
|
+
workspaceId,
|
|
119
|
+
error: error instanceof Error ? error.message : String(error)
|
|
120
|
+
});
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Check if persistence is initialized
|
|
126
|
+
*/
|
|
127
|
+
function isPersistenceInitialized() {
|
|
128
|
+
return persistenceInitialized;
|
|
129
|
+
}
|
|
130
|
+
// ============================================================================
|
|
131
|
+
// Workspace Management
|
|
132
|
+
// ============================================================================
|
|
133
|
+
let activeWorkspaceId = null;
|
|
134
|
+
/**
|
|
135
|
+
* Set the active workspace ID
|
|
136
|
+
*/
|
|
137
|
+
function setActiveWorkspace(workspaceId) {
|
|
138
|
+
activeWorkspaceId = workspaceId;
|
|
139
|
+
logger.debug('Active workspace set', { workspaceId });
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Get the active workspace ID
|
|
143
|
+
*/
|
|
144
|
+
function getActiveWorkspace() {
|
|
145
|
+
return activeWorkspaceId;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Reload bot configuration from Hailer
|
|
149
|
+
*
|
|
150
|
+
* Re-discovers the Agent Directory and reloads credentials.
|
|
151
|
+
* If no client is provided, uses the stored hailerClient.
|
|
152
|
+
*/
|
|
153
|
+
async function reloadConfigFromHailer(client) {
|
|
154
|
+
const clientToUse = client || hailerClient;
|
|
155
|
+
if (!clientToUse) {
|
|
156
|
+
logger.warn('No Hailer client available for config reload');
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
const workspaceId = activeWorkspaceId || (0, context_1.listBotContexts)()[0];
|
|
160
|
+
if (!workspaceId) {
|
|
161
|
+
logger.warn('No workspace available for config reload');
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
try {
|
|
165
|
+
const ctx = (0, context_1.getBotContext)(workspaceId);
|
|
166
|
+
await ctx.initializeFromApi(clientToUse);
|
|
167
|
+
logger.debug('Bot config reloaded from Hailer', { workspaceId });
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
logger.error('Failed to reload config from Hailer', {
|
|
171
|
+
workspaceId,
|
|
172
|
+
error: error instanceof Error ? error.message : String(error)
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
// ============================================================================
|
|
177
|
+
// Credentials
|
|
178
|
+
// ============================================================================
|
|
179
|
+
/**
|
|
180
|
+
* Load local credentials from .bot-credentials.json
|
|
181
|
+
*/
|
|
182
|
+
function loadLocalCredentials() {
|
|
183
|
+
try {
|
|
184
|
+
if (fs.existsSync(constants_1.LOCAL_CREDENTIALS_FILE)) {
|
|
185
|
+
const content = fs.readFileSync(constants_1.LOCAL_CREDENTIALS_FILE, 'utf-8');
|
|
186
|
+
return JSON.parse(content);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
catch (error) {
|
|
190
|
+
logger.warn('Failed to load local credentials', {
|
|
191
|
+
error: error instanceof Error ? error.message : String(error)
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
return {};
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Get local bot credentials for daemon creation
|
|
198
|
+
*
|
|
199
|
+
* Looks up credentials by user ID or bot ID.
|
|
200
|
+
*/
|
|
201
|
+
function getLocalBotCredentials(userIdOrBotId) {
|
|
202
|
+
// First try local credentials file
|
|
203
|
+
const localCreds = loadLocalCredentials();
|
|
204
|
+
if (localCreds[userIdOrBotId]) {
|
|
205
|
+
return localCreds[userIdOrBotId];
|
|
206
|
+
}
|
|
207
|
+
// Then try bot contexts
|
|
208
|
+
for (const workspaceId of (0, context_1.listBotContexts)()) {
|
|
209
|
+
const ctx = (0, context_1.getBotContext)(workspaceId);
|
|
210
|
+
const creds = ctx.getCredentials(userIdOrBotId);
|
|
211
|
+
if (creds) {
|
|
212
|
+
return {
|
|
213
|
+
email: creds.email,
|
|
214
|
+
password: creds.password,
|
|
215
|
+
displayName: creds.displayName
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
return null;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Get all local bot credentials
|
|
223
|
+
*/
|
|
224
|
+
function getAllLocalBotCredentials() {
|
|
225
|
+
const result = {};
|
|
226
|
+
// Load from file
|
|
227
|
+
const localCreds = loadLocalCredentials();
|
|
228
|
+
Object.assign(result, localCreds);
|
|
229
|
+
// Add from bot contexts
|
|
230
|
+
for (const workspaceId of (0, context_1.listBotContexts)()) {
|
|
231
|
+
const ctx = (0, context_1.getBotContext)(workspaceId);
|
|
232
|
+
const allCreds = ctx.getAllCredentials();
|
|
233
|
+
for (const creds of allCreds) {
|
|
234
|
+
result[creds.userId] = {
|
|
235
|
+
email: creds.email,
|
|
236
|
+
password: creds.password,
|
|
237
|
+
displayName: creds.displayName
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
return result;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Get persistence status (for debugging)
|
|
245
|
+
*/
|
|
246
|
+
function getPersistenceStatus() {
|
|
247
|
+
return {
|
|
248
|
+
initialized: persistenceInitialized,
|
|
249
|
+
workspaceCount: (0, context_1.listBotContexts)().length,
|
|
250
|
+
hasClient: hailerClient !== null
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
// ============================================================================
|
|
254
|
+
// Cleanup
|
|
255
|
+
// ============================================================================
|
|
256
|
+
/**
|
|
257
|
+
* Cleanup bot config (alias for cleanupBotState)
|
|
258
|
+
*/
|
|
259
|
+
var state_1 = require("./state");
|
|
260
|
+
Object.defineProperty(exports, "cleanupBotConfig", { enumerable: true, get: function () { return state_1.cleanupBotState; } });
|
|
261
|
+
//# sourceMappingURL=persistence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../src/bot-config/persistence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bot State Management
|
|
3
|
+
*
|
|
4
|
+
* Manages which bots are enabled/disabled.
|
|
5
|
+
* Delegates to BotContext for storage.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Register callback for bot state changes
|
|
9
|
+
*/
|
|
10
|
+
export declare function onBotStateChange(callback: (userId: string, enabled: boolean) => void): void;
|
|
11
|
+
/**
|
|
12
|
+
* Register callback for daemon restart needs
|
|
13
|
+
*/
|
|
14
|
+
export declare function onDaemonRestartNeeded(callback: () => void): void;
|
|
15
|
+
/**
|
|
16
|
+
* Notify that daemon restart is needed (debounced)
|
|
17
|
+
*/
|
|
18
|
+
export declare function notifyDaemonRestartNeeded(): void;
|
|
19
|
+
/**
|
|
20
|
+
* Cleanup function - clear pending timers and callbacks
|
|
21
|
+
*/
|
|
22
|
+
export declare function cleanupBotState(): void;
|
|
23
|
+
/**
|
|
24
|
+
* Get bot state for all workspaces (merged)
|
|
25
|
+
* Returns userId -> enabled map
|
|
26
|
+
*/
|
|
27
|
+
export declare function getBotState(): Record<string, boolean>;
|
|
28
|
+
/**
|
|
29
|
+
* Get bot state for a specific workspace
|
|
30
|
+
*/
|
|
31
|
+
export declare function getBotContextBotState(workspaceId: string): Record<string, boolean>;
|
|
32
|
+
/**
|
|
33
|
+
* Get bot user ID (returns the userId itself for compatibility)
|
|
34
|
+
*/
|
|
35
|
+
export declare function getBotUserId(userId: string): string | null;
|
|
36
|
+
/**
|
|
37
|
+
* Get bot type for a user ID
|
|
38
|
+
*/
|
|
39
|
+
export declare function getBotType(userId: string): string | null;
|
|
40
|
+
/**
|
|
41
|
+
* Get all enabled bots with their types (all workspaces)
|
|
42
|
+
*/
|
|
43
|
+
export declare function getEnabledBotsWithTypes(): Map<string, string | null>;
|
|
44
|
+
/**
|
|
45
|
+
* Set bot enabled state
|
|
46
|
+
*
|
|
47
|
+
* Can be called with either:
|
|
48
|
+
* - setBotEnabled(workspaceId, userId, enabled) - explicit workspace
|
|
49
|
+
* - setBotEnabled(userId, enabled) - auto-find workspace (backward compat)
|
|
50
|
+
*/
|
|
51
|
+
export declare function setBotEnabled(workspaceIdOrUserId: string, userIdOrEnabled: string | boolean, enabledOptional?: boolean): void;
|
|
52
|
+
/**
|
|
53
|
+
* Set bot user ID (for compatibility - updates state map)
|
|
54
|
+
*/
|
|
55
|
+
export declare function setBotUserId(workspaceId: string, userId: string, botType?: string | null): void;
|
|
56
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/bot-config/state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmBH;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAE3F;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAEhE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAiBhD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAUtC;AAMD;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAYrD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIlF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ1D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOxD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAcpE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,mBAAmB,EAAE,MAAM,EAC3B,eAAe,EAAE,MAAM,GAAG,OAAO,EACjC,eAAe,CAAC,EAAE,OAAO,GACxB,IAAI,CAyCN;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,MAAM,GAAG,IAAW,GAC5B,IAAI,CAIN"}
|