siclaw 0.1.0
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/LICENSE +190 -0
- package/README.md +268 -0
- package/dist/agentbox/gateway-client.d.ts +41 -0
- package/dist/agentbox/gateway-client.js +108 -0
- package/dist/agentbox/gateway-client.js.map +1 -0
- package/dist/agentbox/http-server.d.ts +12 -0
- package/dist/agentbox/http-server.js +700 -0
- package/dist/agentbox/http-server.js.map +1 -0
- package/dist/agentbox/mcp-sync.d.ts +6 -0
- package/dist/agentbox/mcp-sync.js +26 -0
- package/dist/agentbox/mcp-sync.js.map +1 -0
- package/dist/agentbox/resource-handlers.d.ts +40 -0
- package/dist/agentbox/resource-handlers.js +116 -0
- package/dist/agentbox/resource-handlers.js.map +1 -0
- package/dist/agentbox/resource-sync.d.ts +28 -0
- package/dist/agentbox/resource-sync.js +74 -0
- package/dist/agentbox/resource-sync.js.map +1 -0
- package/dist/agentbox/session.d.ts +145 -0
- package/dist/agentbox/session.js +444 -0
- package/dist/agentbox/session.js.map +1 -0
- package/dist/agentbox-main.d.ts +7 -0
- package/dist/agentbox-main.js +90 -0
- package/dist/agentbox-main.js.map +1 -0
- package/dist/cli-main.d.ts +1 -0
- package/dist/cli-main.js +187 -0
- package/dist/cli-main.js.map +1 -0
- package/dist/cli-setup.d.ts +17 -0
- package/dist/cli-setup.js +247 -0
- package/dist/cli-setup.js.map +1 -0
- package/dist/core/agent-factory.d.ts +52 -0
- package/dist/core/agent-factory.js +547 -0
- package/dist/core/agent-factory.js.map +1 -0
- package/dist/core/brain-session.d.ts +67 -0
- package/dist/core/brain-session.js +15 -0
- package/dist/core/brain-session.js.map +1 -0
- package/dist/core/brains/claude-sdk-brain.d.ts +76 -0
- package/dist/core/brains/claude-sdk-brain.js +403 -0
- package/dist/core/brains/claude-sdk-brain.js.map +1 -0
- package/dist/core/brains/pi-agent-brain.d.ts +28 -0
- package/dist/core/brains/pi-agent-brain.js +84 -0
- package/dist/core/brains/pi-agent-brain.js.map +1 -0
- package/dist/core/config.d.ts +109 -0
- package/dist/core/config.js +294 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/extensions/context-pruning.d.ts +38 -0
- package/dist/core/extensions/context-pruning.js +162 -0
- package/dist/core/extensions/context-pruning.js.map +1 -0
- package/dist/core/extensions/deep-investigation.d.ts +2 -0
- package/dist/core/extensions/deep-investigation.js +541 -0
- package/dist/core/extensions/deep-investigation.js.map +1 -0
- package/dist/core/extensions/memory-flush.d.ts +20 -0
- package/dist/core/extensions/memory-flush.js +120 -0
- package/dist/core/extensions/memory-flush.js.map +1 -0
- package/dist/core/llm-proxy.d.ts +37 -0
- package/dist/core/llm-proxy.js +578 -0
- package/dist/core/llm-proxy.js.map +1 -0
- package/dist/core/mcp-client.d.ts +80 -0
- package/dist/core/mcp-client.js +285 -0
- package/dist/core/mcp-client.js.map +1 -0
- package/dist/core/prompt.d.ts +1 -0
- package/dist/core/prompt.js +64 -0
- package/dist/core/prompt.js.map +1 -0
- package/dist/core/tool-adapter.d.ts +45 -0
- package/dist/core/tool-adapter.js +154 -0
- package/dist/core/tool-adapter.js.map +1 -0
- package/dist/cron/cron-api.d.ts +9 -0
- package/dist/cron/cron-api.js +94 -0
- package/dist/cron/cron-api.js.map +1 -0
- package/dist/cron/cron-coordinator.d.ts +29 -0
- package/dist/cron/cron-coordinator.js +150 -0
- package/dist/cron/cron-coordinator.js.map +1 -0
- package/dist/cron/cron-executor.d.ts +15 -0
- package/dist/cron/cron-executor.js +90 -0
- package/dist/cron/cron-executor.js.map +1 -0
- package/dist/cron/cron-matcher.d.ts +19 -0
- package/dist/cron/cron-matcher.js +114 -0
- package/dist/cron/cron-matcher.js.map +1 -0
- package/dist/cron/cron-scheduler.d.ts +42 -0
- package/dist/cron/cron-scheduler.js +91 -0
- package/dist/cron/cron-scheduler.js.map +1 -0
- package/dist/cron/gateway-client.d.ts +32 -0
- package/dist/cron/gateway-client.js +91 -0
- package/dist/cron/gateway-client.js.map +1 -0
- package/dist/cron-main.d.ts +10 -0
- package/dist/cron-main.js +75 -0
- package/dist/cron-main.js.map +1 -0
- package/dist/gateway/agentbox/client.d.ts +187 -0
- package/dist/gateway/agentbox/client.js +314 -0
- package/dist/gateway/agentbox/client.js.map +1 -0
- package/dist/gateway/agentbox/index.d.ts +10 -0
- package/dist/gateway/agentbox/index.js +11 -0
- package/dist/gateway/agentbox/index.js.map +1 -0
- package/dist/gateway/agentbox/k8s-spawner.d.ts +70 -0
- package/dist/gateway/agentbox/k8s-spawner.js +466 -0
- package/dist/gateway/agentbox/k8s-spawner.js.map +1 -0
- package/dist/gateway/agentbox/local-spawner.d.ts +63 -0
- package/dist/gateway/agentbox/local-spawner.js +234 -0
- package/dist/gateway/agentbox/local-spawner.js.map +1 -0
- package/dist/gateway/agentbox/manager.d.ts +121 -0
- package/dist/gateway/agentbox/manager.js +325 -0
- package/dist/gateway/agentbox/manager.js.map +1 -0
- package/dist/gateway/agentbox/process-spawner.d.ts +21 -0
- package/dist/gateway/agentbox/process-spawner.js +168 -0
- package/dist/gateway/agentbox/process-spawner.js.map +1 -0
- package/dist/gateway/agentbox/spawner.d.ts +33 -0
- package/dist/gateway/agentbox/spawner.js +10 -0
- package/dist/gateway/agentbox/spawner.js.map +1 -0
- package/dist/gateway/agentbox/types.d.ts +39 -0
- package/dist/gateway/agentbox/types.js +5 -0
- package/dist/gateway/agentbox/types.js.map +1 -0
- package/dist/gateway/auth/bind-code-store.d.ts +31 -0
- package/dist/gateway/auth/bind-code-store.js +73 -0
- package/dist/gateway/auth/bind-code-store.js.map +1 -0
- package/dist/gateway/auth/index.d.ts +9 -0
- package/dist/gateway/auth/index.js +10 -0
- package/dist/gateway/auth/index.js.map +1 -0
- package/dist/gateway/auth/jwt.d.ts +23 -0
- package/dist/gateway/auth/jwt.js +82 -0
- package/dist/gateway/auth/jwt.js.map +1 -0
- package/dist/gateway/auth/login.d.ts +26 -0
- package/dist/gateway/auth/login.js +74 -0
- package/dist/gateway/auth/login.js.map +1 -0
- package/dist/gateway/auth/middleware.d.ts +23 -0
- package/dist/gateway/auth/middleware.js +67 -0
- package/dist/gateway/auth/middleware.js.map +1 -0
- package/dist/gateway/auth/oauth2.d.ts +57 -0
- package/dist/gateway/auth/oauth2.js +113 -0
- package/dist/gateway/auth/oauth2.js.map +1 -0
- package/dist/gateway/auth/user-store.d.ts +95 -0
- package/dist/gateway/auth/user-store.js +291 -0
- package/dist/gateway/auth/user-store.js.map +1 -0
- package/dist/gateway/channels/channel-manager.d.ts +42 -0
- package/dist/gateway/channels/channel-manager.js +156 -0
- package/dist/gateway/channels/channel-manager.js.map +1 -0
- package/dist/gateway/channels/channel-rpc.d.ts +9 -0
- package/dist/gateway/channels/channel-rpc.js +104 -0
- package/dist/gateway/channels/channel-rpc.js.map +1 -0
- package/dist/gateway/channels/channel-store.d.ts +32 -0
- package/dist/gateway/channels/channel-store.js +114 -0
- package/dist/gateway/channels/channel-store.js.map +1 -0
- package/dist/gateway/channels/discord.d.ts +5 -0
- package/dist/gateway/channels/discord.js +177 -0
- package/dist/gateway/channels/discord.js.map +1 -0
- package/dist/gateway/channels/lark-format.d.ts +41 -0
- package/dist/gateway/channels/lark-format.js +620 -0
- package/dist/gateway/channels/lark-format.js.map +1 -0
- package/dist/gateway/channels/lark.d.ts +5 -0
- package/dist/gateway/channels/lark.js +1000 -0
- package/dist/gateway/channels/lark.js.map +1 -0
- package/dist/gateway/channels/slack.d.ts +5 -0
- package/dist/gateway/channels/slack.js +170 -0
- package/dist/gateway/channels/slack.js.map +1 -0
- package/dist/gateway/channels/telegram.d.ts +5 -0
- package/dist/gateway/channels/telegram.js +173 -0
- package/dist/gateway/channels/telegram.js.map +1 -0
- package/dist/gateway/channels/utils.d.ts +34 -0
- package/dist/gateway/channels/utils.js +115 -0
- package/dist/gateway/channels/utils.js.map +1 -0
- package/dist/gateway/config.d.ts +14 -0
- package/dist/gateway/config.js +12 -0
- package/dist/gateway/config.js.map +1 -0
- package/dist/gateway/cron/notify.d.ts +14 -0
- package/dist/gateway/cron/notify.js +40 -0
- package/dist/gateway/cron/notify.js.map +1 -0
- package/dist/gateway/db/dialect-helpers.d.ts +8 -0
- package/dist/gateway/db/dialect-helpers.js +26 -0
- package/dist/gateway/db/dialect-helpers.js.map +1 -0
- package/dist/gateway/db/index.d.ts +20 -0
- package/dist/gateway/db/index.js +140 -0
- package/dist/gateway/db/index.js.map +1 -0
- package/dist/gateway/db/init-schema.d.ts +8 -0
- package/dist/gateway/db/init-schema.js +385 -0
- package/dist/gateway/db/init-schema.js.map +1 -0
- package/dist/gateway/db/migrate-sqlite.d.ts +8 -0
- package/dist/gateway/db/migrate-sqlite.js +335 -0
- package/dist/gateway/db/migrate-sqlite.js.map +1 -0
- package/dist/gateway/db/repositories/chat-repo.d.ts +64 -0
- package/dist/gateway/db/repositories/chat-repo.js +115 -0
- package/dist/gateway/db/repositories/chat-repo.js.map +1 -0
- package/dist/gateway/db/repositories/config-repo.d.ts +164 -0
- package/dist/gateway/db/repositories/config-repo.js +267 -0
- package/dist/gateway/db/repositories/config-repo.js.map +1 -0
- package/dist/gateway/db/repositories/credential-repo.d.ts +51 -0
- package/dist/gateway/db/repositories/credential-repo.js +70 -0
- package/dist/gateway/db/repositories/credential-repo.js.map +1 -0
- package/dist/gateway/db/repositories/env-repo.d.ts +37 -0
- package/dist/gateway/db/repositories/env-repo.js +74 -0
- package/dist/gateway/db/repositories/env-repo.js.map +1 -0
- package/dist/gateway/db/repositories/mcp-server-repo.d.ts +97 -0
- package/dist/gateway/db/repositories/mcp-server-repo.js +83 -0
- package/dist/gateway/db/repositories/mcp-server-repo.js.map +1 -0
- package/dist/gateway/db/repositories/model-config-repo.d.ts +141 -0
- package/dist/gateway/db/repositories/model-config-repo.js +439 -0
- package/dist/gateway/db/repositories/model-config-repo.js.map +1 -0
- package/dist/gateway/db/repositories/notification-repo.d.ts +50 -0
- package/dist/gateway/db/repositories/notification-repo.js +105 -0
- package/dist/gateway/db/repositories/notification-repo.js.map +1 -0
- package/dist/gateway/db/repositories/permission-repo.d.ts +28 -0
- package/dist/gateway/db/repositories/permission-repo.js +74 -0
- package/dist/gateway/db/repositories/permission-repo.js.map +1 -0
- package/dist/gateway/db/repositories/skill-content-repo.d.ts +29 -0
- package/dist/gateway/db/repositories/skill-content-repo.js +90 -0
- package/dist/gateway/db/repositories/skill-content-repo.js.map +1 -0
- package/dist/gateway/db/repositories/skill-repo.d.ts +170 -0
- package/dist/gateway/db/repositories/skill-repo.js +185 -0
- package/dist/gateway/db/repositories/skill-repo.js.map +1 -0
- package/dist/gateway/db/repositories/skill-review-repo.d.ts +44 -0
- package/dist/gateway/db/repositories/skill-review-repo.js +44 -0
- package/dist/gateway/db/repositories/skill-review-repo.js.map +1 -0
- package/dist/gateway/db/repositories/skill-version-repo.d.ts +30 -0
- package/dist/gateway/db/repositories/skill-version-repo.js +56 -0
- package/dist/gateway/db/repositories/skill-version-repo.js.map +1 -0
- package/dist/gateway/db/repositories/system-config-repo.d.ts +21 -0
- package/dist/gateway/db/repositories/system-config-repo.js +86 -0
- package/dist/gateway/db/repositories/system-config-repo.js.map +1 -0
- package/dist/gateway/db/repositories/user-env-config-repo.d.ts +32 -0
- package/dist/gateway/db/repositories/user-env-config-repo.js +79 -0
- package/dist/gateway/db/repositories/user-env-config-repo.js.map +1 -0
- package/dist/gateway/db/repositories/user-repo.d.ts +59 -0
- package/dist/gateway/db/repositories/user-repo.js +83 -0
- package/dist/gateway/db/repositories/user-repo.js.map +1 -0
- package/dist/gateway/db/repositories/vote-repo.d.ts +26 -0
- package/dist/gateway/db/repositories/vote-repo.js +97 -0
- package/dist/gateway/db/repositories/vote-repo.js.map +1 -0
- package/dist/gateway/db/repositories/workspace-repo.d.ts +27 -0
- package/dist/gateway/db/repositories/workspace-repo.js +145 -0
- package/dist/gateway/db/repositories/workspace-repo.js.map +1 -0
- package/dist/gateway/db/schema-mysql.d.ts +3897 -0
- package/dist/gateway/db/schema-mysql.js +354 -0
- package/dist/gateway/db/schema-mysql.js.map +1 -0
- package/dist/gateway/db/schema-sqlite.d.ts +4147 -0
- package/dist/gateway/db/schema-sqlite.js +345 -0
- package/dist/gateway/db/schema-sqlite.js.map +1 -0
- package/dist/gateway/db/schema.d.ts +3869 -0
- package/dist/gateway/db/schema.js +16 -0
- package/dist/gateway/db/schema.js.map +1 -0
- package/dist/gateway/mcp-config-builder.d.ts +8 -0
- package/dist/gateway/mcp-config-builder.js +39 -0
- package/dist/gateway/mcp-config-builder.js.map +1 -0
- package/dist/gateway/output-redactor.d.ts +27 -0
- package/dist/gateway/output-redactor.js +101 -0
- package/dist/gateway/output-redactor.js.map +1 -0
- package/dist/gateway/plugins/api.d.ts +181 -0
- package/dist/gateway/plugins/api.js +28 -0
- package/dist/gateway/plugins/api.js.map +1 -0
- package/dist/gateway/plugins/channel-bridge.d.ts +72 -0
- package/dist/gateway/plugins/channel-bridge.js +586 -0
- package/dist/gateway/plugins/channel-bridge.js.map +1 -0
- package/dist/gateway/plugins/loader.d.ts +2 -0
- package/dist/gateway/plugins/loader.js +83 -0
- package/dist/gateway/plugins/loader.js.map +1 -0
- package/dist/gateway/plugins/runtime.d.ts +25 -0
- package/dist/gateway/plugins/runtime.js +64 -0
- package/dist/gateway/plugins/runtime.js.map +1 -0
- package/dist/gateway/resource-notifier.d.ts +36 -0
- package/dist/gateway/resource-notifier.js +123 -0
- package/dist/gateway/resource-notifier.js.map +1 -0
- package/dist/gateway/rpc-methods.d.ts +34 -0
- package/dist/gateway/rpc-methods.js +3198 -0
- package/dist/gateway/rpc-methods.js.map +1 -0
- package/dist/gateway/security/cert-manager.d.ts +77 -0
- package/dist/gateway/security/cert-manager.js +280 -0
- package/dist/gateway/security/cert-manager.js.map +1 -0
- package/dist/gateway/security/mtls-middleware.d.ts +33 -0
- package/dist/gateway/security/mtls-middleware.js +89 -0
- package/dist/gateway/security/mtls-middleware.js.map +1 -0
- package/dist/gateway/server.d.ts +54 -0
- package/dist/gateway/server.js +1146 -0
- package/dist/gateway/server.js.map +1 -0
- package/dist/gateway/skill-labels.d.ts +16 -0
- package/dist/gateway/skill-labels.js +79 -0
- package/dist/gateway/skill-labels.js.map +1 -0
- package/dist/gateway/skills/file-writer.d.ts +75 -0
- package/dist/gateway/skills/file-writer.js +320 -0
- package/dist/gateway/skills/file-writer.js.map +1 -0
- package/dist/gateway/skills/script-evaluator.d.ts +42 -0
- package/dist/gateway/skills/script-evaluator.js +204 -0
- package/dist/gateway/skills/script-evaluator.js.map +1 -0
- package/dist/gateway/skills/skill-bundle.d.ts +34 -0
- package/dist/gateway/skills/skill-bundle.js +83 -0
- package/dist/gateway/skills/skill-bundle.js.map +1 -0
- package/dist/gateway/web/dist/assets/index-BF6CtvnV.css +1 -0
- package/dist/gateway/web/dist/assets/index-Dumzqsr-.js +680 -0
- package/dist/gateway/web/dist/assets/index-n4IMHP1Q.js +675 -0
- package/dist/gateway/web/dist/index.html +14 -0
- package/dist/gateway/web/dist/noise.png +1 -0
- package/dist/gateway/web/dist/robots.txt +2 -0
- package/dist/gateway/web/dist/vite.svg +1 -0
- package/dist/gateway/ws-protocol.d.ts +68 -0
- package/dist/gateway/ws-protocol.js +106 -0
- package/dist/gateway/ws-protocol.js.map +1 -0
- package/dist/gateway-main.d.ts +1 -0
- package/dist/gateway-main.js +129 -0
- package/dist/gateway-main.js.map +1 -0
- package/dist/lib/s3-backup.d.ts +28 -0
- package/dist/lib/s3-backup.js +85 -0
- package/dist/lib/s3-backup.js.map +1 -0
- package/dist/lib/s3-storage.d.ts +45 -0
- package/dist/lib/s3-storage.js +210 -0
- package/dist/lib/s3-storage.js.map +1 -0
- package/dist/memory/chunker.d.ts +15 -0
- package/dist/memory/chunker.js +94 -0
- package/dist/memory/chunker.js.map +1 -0
- package/dist/memory/embeddings.d.ts +14 -0
- package/dist/memory/embeddings.js +143 -0
- package/dist/memory/embeddings.js.map +1 -0
- package/dist/memory/index.d.ts +18 -0
- package/dist/memory/index.js +15 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/indexer.d.ts +70 -0
- package/dist/memory/indexer.js +567 -0
- package/dist/memory/indexer.js.map +1 -0
- package/dist/memory/mmr.d.ts +22 -0
- package/dist/memory/mmr.js +82 -0
- package/dist/memory/mmr.js.map +1 -0
- package/dist/memory/schema.d.ts +2 -0
- package/dist/memory/schema.js +85 -0
- package/dist/memory/schema.js.map +1 -0
- package/dist/memory/session-summarizer.d.ts +19 -0
- package/dist/memory/session-summarizer.js +139 -0
- package/dist/memory/session-summarizer.js.map +1 -0
- package/dist/memory/stop-words.d.ts +13 -0
- package/dist/memory/stop-words.js +132 -0
- package/dist/memory/stop-words.js.map +1 -0
- package/dist/memory/temporal-decay.d.ts +20 -0
- package/dist/memory/temporal-decay.js +63 -0
- package/dist/memory/temporal-decay.js.map +1 -0
- package/dist/memory/types.d.ts +40 -0
- package/dist/memory/types.js +2 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/shared/resource-sync.d.ts +80 -0
- package/dist/shared/resource-sync.js +24 -0
- package/dist/shared/resource-sync.js.map +1 -0
- package/dist/tools/command-sets.d.ts +61 -0
- package/dist/tools/command-sets.js +845 -0
- package/dist/tools/command-sets.js.map +1 -0
- package/dist/tools/create-skill.d.ts +2 -0
- package/dist/tools/create-skill.js +169 -0
- package/dist/tools/create-skill.js.map +1 -0
- package/dist/tools/credential-list.d.ts +8 -0
- package/dist/tools/credential-list.js +139 -0
- package/dist/tools/credential-list.js.map +1 -0
- package/dist/tools/deep-search/engine.d.ts +40 -0
- package/dist/tools/deep-search/engine.js +594 -0
- package/dist/tools/deep-search/engine.js.map +1 -0
- package/dist/tools/deep-search/events.d.ts +11 -0
- package/dist/tools/deep-search/events.js +10 -0
- package/dist/tools/deep-search/events.js.map +1 -0
- package/dist/tools/deep-search/format.d.ts +11 -0
- package/dist/tools/deep-search/format.js +143 -0
- package/dist/tools/deep-search/format.js.map +1 -0
- package/dist/tools/deep-search/prompts.d.ts +30 -0
- package/dist/tools/deep-search/prompts.js +237 -0
- package/dist/tools/deep-search/prompts.js.map +1 -0
- package/dist/tools/deep-search/sre-knowledge.d.ts +21 -0
- package/dist/tools/deep-search/sre-knowledge.js +112 -0
- package/dist/tools/deep-search/sre-knowledge.js.map +1 -0
- package/dist/tools/deep-search/sub-agent.d.ts +71 -0
- package/dist/tools/deep-search/sub-agent.js +401 -0
- package/dist/tools/deep-search/sub-agent.js.map +1 -0
- package/dist/tools/deep-search/tool.d.ts +9 -0
- package/dist/tools/deep-search/tool.js +201 -0
- package/dist/tools/deep-search/tool.js.map +1 -0
- package/dist/tools/deep-search/types.d.ts +67 -0
- package/dist/tools/deep-search/types.js +41 -0
- package/dist/tools/deep-search/types.js.map +1 -0
- package/dist/tools/dp-tools.d.ts +47 -0
- package/dist/tools/dp-tools.js +170 -0
- package/dist/tools/dp-tools.js.map +1 -0
- package/dist/tools/fork-skill.d.ts +2 -0
- package/dist/tools/fork-skill.js +93 -0
- package/dist/tools/fork-skill.js.map +1 -0
- package/dist/tools/k8s-checks.d.ts +18 -0
- package/dist/tools/k8s-checks.js +105 -0
- package/dist/tools/k8s-checks.js.map +1 -0
- package/dist/tools/kubeconfig-resolver.d.ts +11 -0
- package/dist/tools/kubeconfig-resolver.js +53 -0
- package/dist/tools/kubeconfig-resolver.js.map +1 -0
- package/dist/tools/kubectl.d.ts +12 -0
- package/dist/tools/kubectl.js +169 -0
- package/dist/tools/kubectl.js.map +1 -0
- package/dist/tools/manage-schedule.d.ts +3 -0
- package/dist/tools/manage-schedule.js +189 -0
- package/dist/tools/manage-schedule.js.map +1 -0
- package/dist/tools/memory-get.d.ts +2 -0
- package/dist/tools/memory-get.js +99 -0
- package/dist/tools/memory-get.js.map +1 -0
- package/dist/tools/memory-search.d.ts +3 -0
- package/dist/tools/memory-search.js +93 -0
- package/dist/tools/memory-search.js.map +1 -0
- package/dist/tools/netns-script.d.ts +3 -0
- package/dist/tools/netns-script.js +394 -0
- package/dist/tools/netns-script.js.map +1 -0
- package/dist/tools/node-exec.d.ts +18 -0
- package/dist/tools/node-exec.js +342 -0
- package/dist/tools/node-exec.js.map +1 -0
- package/dist/tools/node-script.d.ts +3 -0
- package/dist/tools/node-script.js +266 -0
- package/dist/tools/node-script.js.map +1 -0
- package/dist/tools/pod-exec.d.ts +4 -0
- package/dist/tools/pod-exec.js +146 -0
- package/dist/tools/pod-exec.js.map +1 -0
- package/dist/tools/pod-nsenter-exec.d.ts +3 -0
- package/dist/tools/pod-nsenter-exec.js +333 -0
- package/dist/tools/pod-nsenter-exec.js.map +1 -0
- package/dist/tools/pod-script.d.ts +3 -0
- package/dist/tools/pod-script.js +176 -0
- package/dist/tools/pod-script.js.map +1 -0
- package/dist/tools/restricted-bash.d.ts +41 -0
- package/dist/tools/restricted-bash.js +503 -0
- package/dist/tools/restricted-bash.js.map +1 -0
- package/dist/tools/run-skill.d.ts +3 -0
- package/dist/tools/run-skill.js +169 -0
- package/dist/tools/run-skill.js.map +1 -0
- package/dist/tools/sanitize-env.d.ts +14 -0
- package/dist/tools/sanitize-env.js +95 -0
- package/dist/tools/sanitize-env.js.map +1 -0
- package/dist/tools/script-resolver.d.ts +35 -0
- package/dist/tools/script-resolver.js +213 -0
- package/dist/tools/script-resolver.js.map +1 -0
- package/dist/tools/tool-render.d.ts +20 -0
- package/dist/tools/tool-render.js +77 -0
- package/dist/tools/tool-render.js.map +1 -0
- package/dist/tools/update-skill.d.ts +2 -0
- package/dist/tools/update-skill.js +169 -0
- package/dist/tools/update-skill.js.map +1 -0
- package/package.json +106 -0
- package/settings.example.json +74 -0
- package/siclaw.mjs +48 -0
- package/skills/core/cluster-events/SKILL.md +150 -0
- package/skills/core/deep-investigation/SKILL.md +87 -0
- package/skills/core/deep-investigation/default-memory.md +8 -0
- package/skills/core/deployment-rollout-debug/SKILL.md +144 -0
- package/skills/core/dns-debug/SKILL.md +144 -0
- package/skills/core/find-node/SKILL.md +23 -0
- package/skills/core/find-node/scripts/find-node.sh +9 -0
- package/skills/core/hpa-debug/SKILL.md +159 -0
- package/skills/core/image-pull-debug/SKILL.md +151 -0
- package/skills/core/ingress-debug/SKILL.md +189 -0
- package/skills/core/job-debug/SKILL.md +180 -0
- package/skills/core/meta.json +23 -0
- package/skills/core/node-health-check/SKILL.md +150 -0
- package/skills/core/node-logs/SKILL.md +68 -0
- package/skills/core/node-logs/scripts/get-node-logs.sh +78 -0
- package/skills/core/node-ping-gateway/SKILL.md +54 -0
- package/skills/core/node-ping-gateway/scripts/ping-node-gateway.sh +71 -0
- package/skills/core/node-show-gateway/SKILL.md +55 -0
- package/skills/core/node-show-gateway/scripts/show-node-gateway.sh +90 -0
- package/skills/core/pod-crash-debug/SKILL.md +135 -0
- package/skills/core/pod-pending-debug/SKILL.md +146 -0
- package/skills/core/pod-ping-gateway/SKILL.md +44 -0
- package/skills/core/pod-ping-gateway/scripts/ping-gateway.sh +76 -0
- package/skills/core/pod-show-gateway/SKILL.md +54 -0
- package/skills/core/pod-show-gateway/scripts/show-gateway.sh +115 -0
- package/skills/core/pvc-debug/SKILL.md +169 -0
- package/skills/core/service-debug/SKILL.md +164 -0
- package/skills/extension/.gitkeep +0 -0
- package/skills/platform/create-skill/SKILL.md +288 -0
- package/skills/platform/manage-skill/SKILL.md +23 -0
- package/skills/platform/update-skill/SKILL.md +52 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lark.js","sourceRoot":"","sources":["../../../src/gateway/channels/lark.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ChannelPlugin } from "../plugins/api.js";
|
|
2
|
+
import type { ChannelBridge } from "../plugins/channel-bridge.js";
|
|
3
|
+
import type { GatewayConfig } from "../config.js";
|
|
4
|
+
import type { ChannelDeps } from "./channel-manager.js";
|
|
5
|
+
export declare function createSlackChannel(config: GatewayConfig, channelBridge: ChannelBridge, deps?: ChannelDeps): ChannelPlugin;
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { splitMessage, markdownToSlackMrkdwn } from "./utils.js";
|
|
2
|
+
// --- Standalone send helpers (aligned with openclaw's sendMessageSlack) ---
|
|
3
|
+
async function sendSlackMessage(client, channel, text, opts) {
|
|
4
|
+
const chunks = splitMessage(text, 4000);
|
|
5
|
+
for (const chunk of chunks) {
|
|
6
|
+
await client.chat.postMessage({
|
|
7
|
+
channel,
|
|
8
|
+
text: chunk,
|
|
9
|
+
...(opts?.threadTs ? { thread_ts: opts.threadTs } : {}),
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
async function sendSlackMarkdown(client, channel, markdown, opts) {
|
|
14
|
+
const mrkdwn = markdownToSlackMrkdwn(markdown);
|
|
15
|
+
const chunks = splitMessage(mrkdwn, 3000); // blocks have lower effective limit
|
|
16
|
+
for (const chunk of chunks) {
|
|
17
|
+
await client.chat.postMessage({
|
|
18
|
+
channel,
|
|
19
|
+
text: chunk, // fallback for notifications
|
|
20
|
+
blocks: [{ type: "section", text: { type: "mrkdwn", text: chunk } }],
|
|
21
|
+
...(opts?.threadTs ? { thread_ts: opts.threadTs } : {}),
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
async function sendSlackDM(client, userId, text) {
|
|
26
|
+
// Open (or reuse) a DM conversation with the user
|
|
27
|
+
const conv = await client.conversations.open({ users: userId });
|
|
28
|
+
const dmChannelId = conv.channel?.id;
|
|
29
|
+
if (!dmChannelId)
|
|
30
|
+
throw new Error("Failed to open DM channel");
|
|
31
|
+
await sendSlackMessage(client, dmChannelId, text);
|
|
32
|
+
}
|
|
33
|
+
// --- ChannelPlugin factory ---
|
|
34
|
+
export function createSlackChannel(config, channelBridge, deps) {
|
|
35
|
+
const slackConfig = config.channels.slack;
|
|
36
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
37
|
+
let app = null;
|
|
38
|
+
let webClient = null;
|
|
39
|
+
const plugin = {
|
|
40
|
+
name: "slack",
|
|
41
|
+
gateway: {
|
|
42
|
+
async startAccount() {
|
|
43
|
+
if (!slackConfig?.enabled || !slackConfig?.botToken || !slackConfig?.appToken) {
|
|
44
|
+
console.log("[slack] Channel disabled or missing botToken/appToken");
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
try {
|
|
48
|
+
const { App } = await import("@slack/bolt");
|
|
49
|
+
const slackApp = new App({
|
|
50
|
+
token: slackConfig.botToken,
|
|
51
|
+
appToken: slackConfig.appToken,
|
|
52
|
+
socketMode: true,
|
|
53
|
+
});
|
|
54
|
+
// Cache bot user ID for mention detection
|
|
55
|
+
let botUserId;
|
|
56
|
+
try {
|
|
57
|
+
const authResult = await slackApp.client.auth.test();
|
|
58
|
+
botUserId = authResult.user_id;
|
|
59
|
+
console.log(`[slack] Bot user ID: ${botUserId}`);
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
console.warn("[slack] Could not fetch bot info:", err);
|
|
63
|
+
}
|
|
64
|
+
// Register message handler
|
|
65
|
+
slackApp.message(async ({ message, client: _client }) => {
|
|
66
|
+
// Type-narrow: only handle regular messages (not message_changed etc.)
|
|
67
|
+
if (message.subtype)
|
|
68
|
+
return;
|
|
69
|
+
const msg = message;
|
|
70
|
+
// Ignore bot messages
|
|
71
|
+
if (msg.bot_id)
|
|
72
|
+
return;
|
|
73
|
+
const text = msg.text ?? "";
|
|
74
|
+
const channelId = msg.channel;
|
|
75
|
+
const userId = msg.user;
|
|
76
|
+
if (!channelId || !userId || !text)
|
|
77
|
+
return;
|
|
78
|
+
// Group/Channel: only respond when @mentioned
|
|
79
|
+
const isDM = msg.channel_type === "im";
|
|
80
|
+
if (!isDM) {
|
|
81
|
+
if (!botUserId || !text.includes(`<@${botUserId}>`))
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
// Strip bot mention from text
|
|
85
|
+
let cleanText = text;
|
|
86
|
+
if (botUserId) {
|
|
87
|
+
cleanText = cleanText.replace(new RegExp(`<@${botUserId}>`, "g"), "").trim();
|
|
88
|
+
}
|
|
89
|
+
if (!cleanText)
|
|
90
|
+
return;
|
|
91
|
+
// Intercept /bind command
|
|
92
|
+
const bindMatch = cleanText.match(/^\/bind\s+(\d{6})$/);
|
|
93
|
+
if (bindMatch && deps) {
|
|
94
|
+
const code = bindMatch[1];
|
|
95
|
+
const boundUserId = deps.bindCodeStore.verifyCode(code);
|
|
96
|
+
if (boundUserId) {
|
|
97
|
+
try {
|
|
98
|
+
deps.userStore.addBinding(boundUserId, "slack", userId);
|
|
99
|
+
const user = deps.userStore.getById(boundUserId);
|
|
100
|
+
await sendSlackMessage(webClient, channelId, `Binding successful! Linked to user "${user?.username ?? boundUserId}". Future messages will be routed to this account.`);
|
|
101
|
+
}
|
|
102
|
+
catch (err) {
|
|
103
|
+
await sendSlackMessage(webClient, channelId, `Binding failed: ${err instanceof Error ? err.message : "Unknown error"}`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
await sendSlackMessage(webClient, channelId, "Invalid or expired code. Please generate a new one from the web UI.");
|
|
108
|
+
}
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
await channelBridge.handleInbound("slack", channelId, userId, cleanText);
|
|
112
|
+
});
|
|
113
|
+
await slackApp.start();
|
|
114
|
+
app = slackApp;
|
|
115
|
+
webClient = slackApp.client;
|
|
116
|
+
console.log("[slack] Channel started (Socket Mode)");
|
|
117
|
+
}
|
|
118
|
+
catch (err) {
|
|
119
|
+
console.error("[slack] Failed to start:", err);
|
|
120
|
+
throw err;
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
async stopAccount() {
|
|
124
|
+
if (app) {
|
|
125
|
+
try {
|
|
126
|
+
await app.stop();
|
|
127
|
+
}
|
|
128
|
+
catch { /* ignore */ }
|
|
129
|
+
}
|
|
130
|
+
app = null;
|
|
131
|
+
webClient = null;
|
|
132
|
+
console.log("[slack] Channel stopped");
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
outbound: {
|
|
136
|
+
async sendText({ to, text }) {
|
|
137
|
+
if (!webClient)
|
|
138
|
+
return;
|
|
139
|
+
try {
|
|
140
|
+
await sendSlackMessage(webClient, to, text);
|
|
141
|
+
}
|
|
142
|
+
catch (err) {
|
|
143
|
+
console.error(`[slack] Failed to send text to ${to}:`, err);
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
async sendMarkdown({ to, markdown }) {
|
|
147
|
+
if (!webClient)
|
|
148
|
+
return;
|
|
149
|
+
try {
|
|
150
|
+
await sendSlackMarkdown(webClient, to, markdown.content);
|
|
151
|
+
}
|
|
152
|
+
catch (err) {
|
|
153
|
+
console.error(`[slack] Failed to send markdown to ${to}:`, err);
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
async sendDirectText({ userId, text }) {
|
|
157
|
+
if (!webClient)
|
|
158
|
+
return;
|
|
159
|
+
try {
|
|
160
|
+
await sendSlackDM(webClient, userId, text);
|
|
161
|
+
}
|
|
162
|
+
catch (err) {
|
|
163
|
+
console.error(`[slack] Failed to send DM to ${userId}:`, err);
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
},
|
|
167
|
+
};
|
|
168
|
+
return plugin;
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=slack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slack.js","sourceRoot":"","sources":["../../../src/gateway/channels/slack.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ChannelPlugin } from "../plugins/api.js";
|
|
2
|
+
import type { ChannelBridge } from "../plugins/channel-bridge.js";
|
|
3
|
+
import type { GatewayConfig } from "../config.js";
|
|
4
|
+
import type { ChannelDeps } from "./channel-manager.js";
|
|
5
|
+
export declare function createTelegramChannel(config: GatewayConfig, channelBridge: ChannelBridge, deps?: ChannelDeps): ChannelPlugin;
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { splitMessage, markdownToTelegramHtml } from "./utils.js";
|
|
2
|
+
/**
|
|
3
|
+
* Regex matching Telegram HTML parse errors (aligned with openclaw's PARSE_ERR_RE).
|
|
4
|
+
* When the API rejects our HTML, we retry as plain text.
|
|
5
|
+
*/
|
|
6
|
+
const PARSE_ERR_RE = /can't parse entities/i;
|
|
7
|
+
// --- Standalone send helpers (aligned with openclaw's sendMessageTelegram) ---
|
|
8
|
+
async function sendTelegramMessage(bot, chatId, text, opts) {
|
|
9
|
+
const chunks = splitMessage(text, 4096);
|
|
10
|
+
for (const chunk of chunks) {
|
|
11
|
+
try {
|
|
12
|
+
await bot.api.sendMessage(chatId, chunk, {
|
|
13
|
+
parse_mode: "HTML",
|
|
14
|
+
...(opts?.replyToMessageId
|
|
15
|
+
? { reply_parameters: { message_id: opts.replyToMessageId } }
|
|
16
|
+
: {}),
|
|
17
|
+
...(opts?.messageThreadId
|
|
18
|
+
? { message_thread_id: opts.messageThreadId }
|
|
19
|
+
: {}),
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
// Fallback: if HTML parse fails, retry as plain text
|
|
24
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
25
|
+
if (PARSE_ERR_RE.test(msg)) {
|
|
26
|
+
await bot.api.sendMessage(chatId, chunk, {
|
|
27
|
+
...(opts?.replyToMessageId
|
|
28
|
+
? { reply_parameters: { message_id: opts.replyToMessageId } }
|
|
29
|
+
: {}),
|
|
30
|
+
...(opts?.messageThreadId
|
|
31
|
+
? { message_thread_id: opts.messageThreadId }
|
|
32
|
+
: {}),
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
throw err;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// --- ChannelPlugin factory ---
|
|
42
|
+
export function createTelegramChannel(config, channelBridge, deps) {
|
|
43
|
+
const telegramConfig = config.channels.telegram;
|
|
44
|
+
let bot = null;
|
|
45
|
+
const plugin = {
|
|
46
|
+
name: "telegram",
|
|
47
|
+
gateway: {
|
|
48
|
+
async startAccount() {
|
|
49
|
+
if (!telegramConfig?.enabled || !telegramConfig?.botToken) {
|
|
50
|
+
console.log("[telegram] Channel disabled or no botToken configured");
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
try {
|
|
54
|
+
const { Bot: GrammyBot } = await import("grammy");
|
|
55
|
+
const tgBot = new GrammyBot(telegramConfig.botToken);
|
|
56
|
+
// Cache bot info for mention detection
|
|
57
|
+
let botUsername;
|
|
58
|
+
// Global error handler (aligned with openclaw's recoverable error pattern)
|
|
59
|
+
tgBot.catch((err) => {
|
|
60
|
+
console.error("[telegram] Unhandled error:", err.error);
|
|
61
|
+
});
|
|
62
|
+
// Handle text messages
|
|
63
|
+
tgBot.on("message:text", async (ctx) => {
|
|
64
|
+
const text = ctx.message.text ?? "";
|
|
65
|
+
const chatId = String(ctx.chat.id);
|
|
66
|
+
const userId = String(ctx.from.id);
|
|
67
|
+
const chatType = ctx.chat.type; // "private" | "group" | "supergroup" | "channel"
|
|
68
|
+
// Group/supergroup: only respond to @mention or / commands
|
|
69
|
+
if (chatType !== "private") {
|
|
70
|
+
const isMentioned = botUsername
|
|
71
|
+
? text.includes(`@${botUsername}`)
|
|
72
|
+
: false;
|
|
73
|
+
const isCommand = text.startsWith("/");
|
|
74
|
+
if (!isMentioned && !isCommand)
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
// Strip bot mention from text
|
|
78
|
+
let cleanText = text;
|
|
79
|
+
if (botUsername) {
|
|
80
|
+
cleanText = cleanText.replace(new RegExp(`@${botUsername}`, "gi"), "").trim();
|
|
81
|
+
}
|
|
82
|
+
if (!cleanText)
|
|
83
|
+
return;
|
|
84
|
+
// Intercept /bind command
|
|
85
|
+
const bindMatch = cleanText.match(/^\/bind\s+(\d{6})$/);
|
|
86
|
+
if (bindMatch && deps) {
|
|
87
|
+
const code = bindMatch[1];
|
|
88
|
+
const boundUserId = deps.bindCodeStore.verifyCode(code);
|
|
89
|
+
if (boundUserId) {
|
|
90
|
+
try {
|
|
91
|
+
deps.userStore.addBinding(boundUserId, "telegram", userId);
|
|
92
|
+
const user = deps.userStore.getById(boundUserId);
|
|
93
|
+
await ctx.reply(`Binding successful! Linked to user "${user?.username ?? boundUserId}". Future messages will be routed to this account.`);
|
|
94
|
+
}
|
|
95
|
+
catch (err) {
|
|
96
|
+
await ctx.reply(`Binding failed: ${err instanceof Error ? err.message : "Unknown error"}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
await ctx.reply("Invalid or expired code. Please generate a new one from the web UI.");
|
|
101
|
+
}
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
await channelBridge.handleInbound("telegram", chatId, userId, cleanText);
|
|
105
|
+
});
|
|
106
|
+
// Start long polling
|
|
107
|
+
// bot.start() is non-blocking in grammy — it runs in the background
|
|
108
|
+
tgBot.start({
|
|
109
|
+
onStart: (info) => {
|
|
110
|
+
botUsername = info.username;
|
|
111
|
+
console.log(`[telegram] Bot connected as @${info.username}`);
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
bot = tgBot;
|
|
115
|
+
console.log("[telegram] Channel started (long polling)");
|
|
116
|
+
}
|
|
117
|
+
catch (err) {
|
|
118
|
+
console.error("[telegram] Failed to start:", err);
|
|
119
|
+
throw err;
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
async stopAccount() {
|
|
123
|
+
if (bot) {
|
|
124
|
+
try {
|
|
125
|
+
bot.stop();
|
|
126
|
+
}
|
|
127
|
+
catch { /* ignore */ }
|
|
128
|
+
}
|
|
129
|
+
bot = null;
|
|
130
|
+
console.log("[telegram] Channel stopped");
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
outbound: {
|
|
134
|
+
async sendText({ to, text }) {
|
|
135
|
+
if (!bot)
|
|
136
|
+
return;
|
|
137
|
+
try {
|
|
138
|
+
// Convert to HTML for richer display
|
|
139
|
+
const html = markdownToTelegramHtml(text);
|
|
140
|
+
await sendTelegramMessage(bot, to, html);
|
|
141
|
+
}
|
|
142
|
+
catch (err) {
|
|
143
|
+
console.error(`[telegram] Failed to send text to ${to}:`, err);
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
async sendMarkdown({ to, markdown }) {
|
|
147
|
+
if (!bot)
|
|
148
|
+
return;
|
|
149
|
+
try {
|
|
150
|
+
const html = markdownToTelegramHtml(markdown.content);
|
|
151
|
+
await sendTelegramMessage(bot, to, html);
|
|
152
|
+
}
|
|
153
|
+
catch (err) {
|
|
154
|
+
console.error(`[telegram] Failed to send markdown to ${to}:`, err);
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
async sendDirectText({ userId, text }) {
|
|
158
|
+
if (!bot)
|
|
159
|
+
return;
|
|
160
|
+
try {
|
|
161
|
+
// In Telegram, DM is just sendMessage to the user's chat ID
|
|
162
|
+
const html = markdownToTelegramHtml(text);
|
|
163
|
+
await sendTelegramMessage(bot, userId, html);
|
|
164
|
+
}
|
|
165
|
+
catch (err) {
|
|
166
|
+
console.error(`[telegram] Failed to send DM to ${userId}:`, err);
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
};
|
|
171
|
+
return plugin;
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=telegram.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telegram.js","sourceRoot":"","sources":["../../../src/gateway/channels/telegram.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert standard markdown to Feishu card-compatible markdown.
|
|
3
|
+
*
|
|
4
|
+
* Feishu card `{ tag: "markdown" }` only supports: **bold**, *italic*,
|
|
5
|
+
* ~~strikethrough~~, [links](url), and <text_color> tags.
|
|
6
|
+
*
|
|
7
|
+
* Unsupported syntax (headers, code blocks, inline code, lists,
|
|
8
|
+
* blockquotes, tables, etc.) is converted to plain-text equivalents.
|
|
9
|
+
*/
|
|
10
|
+
export declare function markdownToFeishu(md: string): string;
|
|
11
|
+
/**
|
|
12
|
+
* Convert standard markdown to Telegram-safe HTML.
|
|
13
|
+
*
|
|
14
|
+
* Telegram's "HTML" parse mode supports: <b>, <i>, <u>, <s>, <code>, <pre>,
|
|
15
|
+
* <a href="...">, <tg-spoiler>. Everything else must be escaped.
|
|
16
|
+
*
|
|
17
|
+
* Reference: openclaw's markdownToTelegramHtmlChunks pattern.
|
|
18
|
+
*/
|
|
19
|
+
export declare function markdownToTelegramHtml(md: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Convert standard markdown to Slack mrkdwn format.
|
|
22
|
+
*
|
|
23
|
+
* Slack's mrkdwn syntax differs from standard markdown:
|
|
24
|
+
* - Bold: *text* (not **text**)
|
|
25
|
+
* - Italic: _text_ (not *text*)
|
|
26
|
+
* - Links: <url|text> (not [text](url))
|
|
27
|
+
* - Code and code blocks stay the same.
|
|
28
|
+
*/
|
|
29
|
+
export declare function markdownToSlackMrkdwn(md: string): string;
|
|
30
|
+
/**
|
|
31
|
+
* Split a long message into chunks that respect a maximum length.
|
|
32
|
+
* Tries to split at newlines, then spaces, then hard-splits.
|
|
33
|
+
*/
|
|
34
|
+
export declare function splitMessage(text: string, maxLen: number): string[];
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert standard markdown to Feishu card-compatible markdown.
|
|
3
|
+
*
|
|
4
|
+
* Feishu card `{ tag: "markdown" }` only supports: **bold**, *italic*,
|
|
5
|
+
* ~~strikethrough~~, [links](url), and <text_color> tags.
|
|
6
|
+
*
|
|
7
|
+
* Unsupported syntax (headers, code blocks, inline code, lists,
|
|
8
|
+
* blockquotes, tables, etc.) is converted to plain-text equivalents.
|
|
9
|
+
*/
|
|
10
|
+
export function markdownToFeishu(md) {
|
|
11
|
+
// 1. Convert fenced code blocks (```lang\n...\n```) to indented plain text
|
|
12
|
+
let result = md.replace(/```[\s\S]*?```/g, (block) => {
|
|
13
|
+
const inner = block.replace(/^```[^\n]*\n?/, "").replace(/\n?```$/, "");
|
|
14
|
+
return inner
|
|
15
|
+
.split("\n")
|
|
16
|
+
.map((line) => " " + line)
|
|
17
|
+
.join("\n");
|
|
18
|
+
});
|
|
19
|
+
// 2. Convert inline code (`code`) — strip backticks
|
|
20
|
+
result = result.replace(/`([^`]+)`/g, "$1");
|
|
21
|
+
// 3. Convert headers (# ... ######) to bold text
|
|
22
|
+
result = result.replace(/^(#{1,6})\s+(.+)$/gm, "**$2**");
|
|
23
|
+
// 4. Convert unordered list items (-, *, +) to bullet character
|
|
24
|
+
result = result.replace(/^[ \t]*[-*+]\s+/gm, "• ");
|
|
25
|
+
// 5. Convert blockquotes (> ...) — strip the > prefix
|
|
26
|
+
result = result.replace(/^>\s?/gm, "");
|
|
27
|
+
// 6. Convert horizontal rules (---, ***, ___) to separator line
|
|
28
|
+
result = result.replace(/^[-*_]{3,}$/gm, "────────────");
|
|
29
|
+
// 7. Convert images  to just [alt](url)
|
|
30
|
+
result = result.replace(/!\[([^\]]*)\]\(([^)]+)\)/g, "[$1]($2)");
|
|
31
|
+
return result;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Convert standard markdown to Telegram-safe HTML.
|
|
35
|
+
*
|
|
36
|
+
* Telegram's "HTML" parse mode supports: <b>, <i>, <u>, <s>, <code>, <pre>,
|
|
37
|
+
* <a href="...">, <tg-spoiler>. Everything else must be escaped.
|
|
38
|
+
*
|
|
39
|
+
* Reference: openclaw's markdownToTelegramHtmlChunks pattern.
|
|
40
|
+
*/
|
|
41
|
+
export function markdownToTelegramHtml(md) {
|
|
42
|
+
// Escape HTML entities first (must happen before we introduce our own tags)
|
|
43
|
+
let result = md
|
|
44
|
+
.replace(/&/g, "&")
|
|
45
|
+
.replace(/</g, "<")
|
|
46
|
+
.replace(/>/g, ">");
|
|
47
|
+
// Fenced code blocks: ```lang\n...\n``` → <pre>...</pre>
|
|
48
|
+
result = result.replace(/```[^\n]*\n([\s\S]*?)```/g, (_m, code) => `<pre>${code}</pre>`);
|
|
49
|
+
// Inline code: `code` → <code>code</code>
|
|
50
|
+
result = result.replace(/`([^`]+)`/g, "<code>$1</code>");
|
|
51
|
+
// Bold: **text** → <b>text</b>
|
|
52
|
+
result = result.replace(/\*\*(.+?)\*\*/g, "<b>$1</b>");
|
|
53
|
+
// Italic: *text* → <i>text</i> (but not inside <b> tags already converted)
|
|
54
|
+
result = result.replace(/(?<!\*)\*(?!\*)(.+?)(?<!\*)\*(?!\*)/g, "<i>$1</i>");
|
|
55
|
+
// Strikethrough: ~~text~~ → <s>text</s>
|
|
56
|
+
result = result.replace(/~~(.+?)~~/g, "<s>$1</s>");
|
|
57
|
+
// Links: [text](url) → <a href="url">text</a>
|
|
58
|
+
result = result.replace(/\[([^\]]+)\]\(([^)]+)\)/g, '<a href="$2">$1</a>');
|
|
59
|
+
// Headers: # ... → bold
|
|
60
|
+
result = result.replace(/^#{1,6}\s+(.+)$/gm, "<b>$1</b>");
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Convert standard markdown to Slack mrkdwn format.
|
|
65
|
+
*
|
|
66
|
+
* Slack's mrkdwn syntax differs from standard markdown:
|
|
67
|
+
* - Bold: *text* (not **text**)
|
|
68
|
+
* - Italic: _text_ (not *text*)
|
|
69
|
+
* - Links: <url|text> (not [text](url))
|
|
70
|
+
* - Code and code blocks stay the same.
|
|
71
|
+
*/
|
|
72
|
+
export function markdownToSlackMrkdwn(md) {
|
|
73
|
+
let result = md;
|
|
74
|
+
// Links first (before bold/italic conversion): [text](url) → <url|text>
|
|
75
|
+
result = result.replace(/\[([^\]]+)\]\(([^)]+)\)/g, "<$2|$1>");
|
|
76
|
+
// Bold: **text** → *text*
|
|
77
|
+
result = result.replace(/\*\*(.+?)\*\*/g, "*$1*");
|
|
78
|
+
// Italic: *text* → _text_ (single asterisks that aren't part of bold)
|
|
79
|
+
result = result.replace(/(?<!\*)\*(?!\*)(.+?)(?<!\*)\*(?!\*)/g, "_$1_");
|
|
80
|
+
// Strikethrough: ~~text~~ → ~text~
|
|
81
|
+
result = result.replace(/~~(.+?)~~/g, "~$1~");
|
|
82
|
+
// Headers: # ... → bold
|
|
83
|
+
result = result.replace(/^#{1,6}\s+(.+)$/gm, "*$1*");
|
|
84
|
+
return result;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Split a long message into chunks that respect a maximum length.
|
|
88
|
+
* Tries to split at newlines, then spaces, then hard-splits.
|
|
89
|
+
*/
|
|
90
|
+
export function splitMessage(text, maxLen) {
|
|
91
|
+
if (text.length <= maxLen)
|
|
92
|
+
return [text];
|
|
93
|
+
const chunks = [];
|
|
94
|
+
let remaining = text;
|
|
95
|
+
while (remaining.length > 0) {
|
|
96
|
+
if (remaining.length <= maxLen) {
|
|
97
|
+
chunks.push(remaining);
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
// Try to split at a newline
|
|
101
|
+
let splitIdx = remaining.lastIndexOf("\n", maxLen);
|
|
102
|
+
if (splitIdx <= 0) {
|
|
103
|
+
// Fall back to space
|
|
104
|
+
splitIdx = remaining.lastIndexOf(" ", maxLen);
|
|
105
|
+
}
|
|
106
|
+
if (splitIdx <= 0) {
|
|
107
|
+
// Hard split
|
|
108
|
+
splitIdx = maxLen;
|
|
109
|
+
}
|
|
110
|
+
chunks.push(remaining.slice(0, splitIdx));
|
|
111
|
+
remaining = remaining.slice(splitIdx).trimStart();
|
|
112
|
+
}
|
|
113
|
+
return chunks;
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/gateway/channels/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface ChannelConfig {
|
|
2
|
+
enabled: boolean;
|
|
3
|
+
[key: string]: unknown;
|
|
4
|
+
}
|
|
5
|
+
export interface GatewayConfig {
|
|
6
|
+
port: number;
|
|
7
|
+
internalPort?: number;
|
|
8
|
+
host: string;
|
|
9
|
+
plugins: {
|
|
10
|
+
paths: string[];
|
|
11
|
+
};
|
|
12
|
+
channels: Record<string, ChannelConfig>;
|
|
13
|
+
}
|
|
14
|
+
export declare function loadGatewayConfig(): GatewayConfig;
|