@shuyhere/takotako 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTRIBUTING.md +84 -0
- package/LICENSE +21 -0
- package/README.md +171 -0
- package/dist/agents/communication.d.ts +48 -0
- package/dist/agents/communication.d.ts.map +1 -0
- package/dist/agents/communication.js +123 -0
- package/dist/agents/communication.js.map +1 -0
- package/dist/agents/config.d.ts +52 -0
- package/dist/agents/config.d.ts.map +1 -0
- package/dist/agents/config.js +65 -0
- package/dist/agents/config.js.map +1 -0
- package/dist/agents/model-catalog.d.ts +49 -0
- package/dist/agents/model-catalog.d.ts.map +1 -0
- package/dist/agents/model-catalog.js +79 -0
- package/dist/agents/model-catalog.js.map +1 -0
- package/dist/agents/registry.d.ts +71 -0
- package/dist/agents/registry.d.ts.map +1 -0
- package/dist/agents/registry.js +297 -0
- package/dist/agents/registry.js.map +1 -0
- package/dist/agents/roles.d.ts +79 -0
- package/dist/agents/roles.d.ts.map +1 -0
- package/dist/agents/roles.js +174 -0
- package/dist/agents/roles.js.map +1 -0
- package/dist/agents/subagent.d.ts +124 -0
- package/dist/agents/subagent.d.ts.map +1 -0
- package/dist/agents/subagent.js +352 -0
- package/dist/agents/subagent.js.map +1 -0
- package/dist/agents/templates.d.ts +18 -0
- package/dist/agents/templates.d.ts.map +1 -0
- package/dist/agents/templates.js +341 -0
- package/dist/agents/templates.js.map +1 -0
- package/dist/agents/thread-binding.d.ts +77 -0
- package/dist/agents/thread-binding.d.ts.map +1 -0
- package/dist/agents/thread-binding.js +167 -0
- package/dist/agents/thread-binding.js.map +1 -0
- package/dist/auth/agent-profiles.d.ts +46 -0
- package/dist/auth/agent-profiles.d.ts.map +1 -0
- package/dist/auth/agent-profiles.js +97 -0
- package/dist/auth/agent-profiles.js.map +1 -0
- package/dist/auth/allow-from.d.ts +27 -0
- package/dist/auth/allow-from.d.ts.map +1 -0
- package/dist/auth/allow-from.js +118 -0
- package/dist/auth/allow-from.js.map +1 -0
- package/dist/auth/oauth.d.ts +66 -0
- package/dist/auth/oauth.d.ts.map +1 -0
- package/dist/auth/oauth.js +253 -0
- package/dist/auth/oauth.js.map +1 -0
- package/dist/auth/storage.d.ts +69 -0
- package/dist/auth/storage.d.ts.map +1 -0
- package/dist/auth/storage.js +157 -0
- package/dist/auth/storage.js.map +1 -0
- package/dist/cache/file-cache.d.ts +68 -0
- package/dist/cache/file-cache.d.ts.map +1 -0
- package/dist/cache/file-cache.js +176 -0
- package/dist/cache/file-cache.js.map +1 -0
- package/dist/cache/manager.d.ts +69 -0
- package/dist/cache/manager.d.ts.map +1 -0
- package/dist/cache/manager.js +117 -0
- package/dist/cache/manager.js.map +1 -0
- package/dist/cache/symbol-index.d.ts +75 -0
- package/dist/cache/symbol-index.d.ts.map +1 -0
- package/dist/cache/symbol-index.js +267 -0
- package/dist/cache/symbol-index.js.map +1 -0
- package/dist/cache/tool-cache.d.ts +75 -0
- package/dist/cache/tool-cache.d.ts.map +1 -0
- package/dist/cache/tool-cache.js +173 -0
- package/dist/cache/tool-cache.js.map +1 -0
- package/dist/channels/channel.d.ts +156 -0
- package/dist/channels/channel.d.ts.map +1 -0
- package/dist/channels/channel.js +25 -0
- package/dist/channels/channel.js.map +1 -0
- package/dist/channels/cli.d.ts +35 -0
- package/dist/channels/cli.d.ts.map +1 -0
- package/dist/channels/cli.js +94 -0
- package/dist/channels/cli.js.map +1 -0
- package/dist/channels/delivery-queue.d.ts +31 -0
- package/dist/channels/delivery-queue.d.ts.map +1 -0
- package/dist/channels/delivery-queue.js +127 -0
- package/dist/channels/delivery-queue.js.map +1 -0
- package/dist/channels/discord.d.ts +124 -0
- package/dist/channels/discord.d.ts.map +1 -0
- package/dist/channels/discord.js +664 -0
- package/dist/channels/discord.js.map +1 -0
- package/dist/channels/retry.d.ts +31 -0
- package/dist/channels/retry.d.ts.map +1 -0
- package/dist/channels/retry.js +94 -0
- package/dist/channels/retry.js.map +1 -0
- package/dist/channels/telegram.d.ts +69 -0
- package/dist/channels/telegram.d.ts.map +1 -0
- package/dist/channels/telegram.js +499 -0
- package/dist/channels/telegram.js.map +1 -0
- package/dist/channels/tui.d.ts +42 -0
- package/dist/channels/tui.d.ts.map +1 -0
- package/dist/channels/tui.js +126 -0
- package/dist/channels/tui.js.map +1 -0
- package/dist/cli/acp.d.ts +10 -0
- package/dist/cli/acp.d.ts.map +1 -0
- package/dist/cli/acp.js +69 -0
- package/dist/cli/acp.js.map +1 -0
- package/dist/cli/audit.d.ts +11 -0
- package/dist/cli/audit.d.ts.map +1 -0
- package/dist/cli/audit.js +55 -0
- package/dist/cli/audit.js.map +1 -0
- package/dist/cli/cache.d.ts +10 -0
- package/dist/cli/cache.d.ts.map +1 -0
- package/dist/cli/cache.js +77 -0
- package/dist/cli/cache.js.map +1 -0
- package/dist/cli/config.d.ts +5 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +168 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/cron.d.ts +5 -0
- package/dist/cli/cron.d.ts.map +1 -0
- package/dist/cli/cron.js +192 -0
- package/dist/cli/cron.js.map +1 -0
- package/dist/cli/extensions.d.ts +5 -0
- package/dist/cli/extensions.d.ts.map +1 -0
- package/dist/cli/extensions.js +53 -0
- package/dist/cli/extensions.js.map +1 -0
- package/dist/cli/logs.d.ts +5 -0
- package/dist/cli/logs.d.ts.map +1 -0
- package/dist/cli/logs.js +49 -0
- package/dist/cli/logs.js.map +1 -0
- package/dist/cli/memory.d.ts +5 -0
- package/dist/cli/memory.d.ts.map +1 -0
- package/dist/cli/memory.js +78 -0
- package/dist/cli/memory.js.map +1 -0
- package/dist/cli/message.d.ts +5 -0
- package/dist/cli/message.d.ts.map +1 -0
- package/dist/cli/message.js +69 -0
- package/dist/cli/message.js.map +1 -0
- package/dist/cli/service.d.ts +14 -0
- package/dist/cli/service.d.ts.map +1 -0
- package/dist/cli/service.js +181 -0
- package/dist/cli/service.js.map +1 -0
- package/dist/cli/symphony.d.ts +5 -0
- package/dist/cli/symphony.d.ts.map +1 -0
- package/dist/cli/symphony.js +114 -0
- package/dist/cli/symphony.js.map +1 -0
- package/dist/cli/update.d.ts +5 -0
- package/dist/cli/update.d.ts.map +1 -0
- package/dist/cli/update.js +48 -0
- package/dist/cli/update.js.map +1 -0
- package/dist/commands/channel-setup.d.ts +31 -0
- package/dist/commands/channel-setup.d.ts.map +1 -0
- package/dist/commands/channel-setup.js +138 -0
- package/dist/commands/channel-setup.js.map +1 -0
- package/dist/commands/dispatch.d.ts +48 -0
- package/dist/commands/dispatch.d.ts.map +1 -0
- package/dist/commands/dispatch.js +68 -0
- package/dist/commands/dispatch.js.map +1 -0
- package/dist/commands/model-picker.d.ts +16 -0
- package/dist/commands/model-picker.d.ts.map +1 -0
- package/dist/commands/model-picker.js +120 -0
- package/dist/commands/model-picker.js.map +1 -0
- package/dist/commands/parser.d.ts +32 -0
- package/dist/commands/parser.d.ts.map +1 -0
- package/dist/commands/parser.js +39 -0
- package/dist/commands/parser.js.map +1 -0
- package/dist/commands/registry.d.ts +76 -0
- package/dist/commands/registry.d.ts.map +1 -0
- package/dist/commands/registry.js +351 -0
- package/dist/commands/registry.js.map +1 -0
- package/dist/commands/skill-commands.d.ts +35 -0
- package/dist/commands/skill-commands.d.ts.map +1 -0
- package/dist/commands/skill-commands.js +61 -0
- package/dist/commands/skill-commands.js.map +1 -0
- package/dist/config/resolve.d.ts +25 -0
- package/dist/config/resolve.d.ts.map +1 -0
- package/dist/config/resolve.js +289 -0
- package/dist/config/resolve.js.map +1 -0
- package/dist/config/schema.d.ts +520 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +123 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/core/agent-loop.d.ts +137 -0
- package/dist/core/agent-loop.d.ts.map +1 -0
- package/dist/core/agent-loop.js +700 -0
- package/dist/core/agent-loop.js.map +1 -0
- package/dist/core/audit.d.ts +87 -0
- package/dist/core/audit.d.ts.map +1 -0
- package/dist/core/audit.js +224 -0
- package/dist/core/audit.js.map +1 -0
- package/dist/core/bootstrap.d.ts +23 -0
- package/dist/core/bootstrap.d.ts.map +1 -0
- package/dist/core/bootstrap.js +162 -0
- package/dist/core/bootstrap.js.map +1 -0
- package/dist/core/context.d.ts +44 -0
- package/dist/core/context.d.ts.map +1 -0
- package/dist/core/context.js +65 -0
- package/dist/core/context.js.map +1 -0
- package/dist/core/cron.d.ts +111 -0
- package/dist/core/cron.d.ts.map +1 -0
- package/dist/core/cron.js +284 -0
- package/dist/core/cron.js.map +1 -0
- package/dist/core/exec-approvals.d.ts +50 -0
- package/dist/core/exec-approvals.d.ts.map +1 -0
- package/dist/core/exec-approvals.js +187 -0
- package/dist/core/exec-approvals.js.map +1 -0
- package/dist/core/heartbeat.d.ts +71 -0
- package/dist/core/heartbeat.d.ts.map +1 -0
- package/dist/core/heartbeat.js +214 -0
- package/dist/core/heartbeat.js.map +1 -0
- package/dist/core/message-queue.d.ts +60 -0
- package/dist/core/message-queue.d.ts.map +1 -0
- package/dist/core/message-queue.js +182 -0
- package/dist/core/message-queue.js.map +1 -0
- package/dist/core/network-policy.d.ts +39 -0
- package/dist/core/network-policy.d.ts.map +1 -0
- package/dist/core/network-policy.js +121 -0
- package/dist/core/network-policy.js.map +1 -0
- package/dist/core/progress.d.ts +48 -0
- package/dist/core/progress.d.ts.map +1 -0
- package/dist/core/progress.js +81 -0
- package/dist/core/progress.js.map +1 -0
- package/dist/core/prompt.d.ts +105 -0
- package/dist/core/prompt.d.ts.map +1 -0
- package/dist/core/prompt.js +411 -0
- package/dist/core/prompt.js.map +1 -0
- package/dist/core/pruning.d.ts +40 -0
- package/dist/core/pruning.d.ts.map +1 -0
- package/dist/core/pruning.js +165 -0
- package/dist/core/pruning.js.map +1 -0
- package/dist/core/rate-limiter.d.ts +64 -0
- package/dist/core/rate-limiter.d.ts.map +1 -0
- package/dist/core/rate-limiter.js +142 -0
- package/dist/core/rate-limiter.js.map +1 -0
- package/dist/core/reactions.d.ts +31 -0
- package/dist/core/reactions.d.ts.map +1 -0
- package/dist/core/reactions.js +67 -0
- package/dist/core/reactions.js.map +1 -0
- package/dist/core/retry-queue.d.ts +56 -0
- package/dist/core/retry-queue.d.ts.map +1 -0
- package/dist/core/retry-queue.js +106 -0
- package/dist/core/retry-queue.js.map +1 -0
- package/dist/core/sanitizer.d.ts +38 -0
- package/dist/core/sanitizer.d.ts.map +1 -0
- package/dist/core/sanitizer.js +181 -0
- package/dist/core/sanitizer.js.map +1 -0
- package/dist/core/secret-scanner.d.ts +39 -0
- package/dist/core/secret-scanner.d.ts.map +1 -0
- package/dist/core/secret-scanner.js +96 -0
- package/dist/core/secret-scanner.js.map +1 -0
- package/dist/core/secrets.d.ts +38 -0
- package/dist/core/secrets.d.ts.map +1 -0
- package/dist/core/secrets.js +137 -0
- package/dist/core/secrets.js.map +1 -0
- package/dist/core/security.d.ts +58 -0
- package/dist/core/security.d.ts.map +1 -0
- package/dist/core/security.js +120 -0
- package/dist/core/security.js.map +1 -0
- package/dist/core/self-awareness.d.ts +19 -0
- package/dist/core/self-awareness.d.ts.map +1 -0
- package/dist/core/self-awareness.js +124 -0
- package/dist/core/self-awareness.js.map +1 -0
- package/dist/core/session-init.d.ts +34 -0
- package/dist/core/session-init.d.ts.map +1 -0
- package/dist/core/session-init.js +68 -0
- package/dist/core/session-init.js.map +1 -0
- package/dist/core/streaming.d.ts +82 -0
- package/dist/core/streaming.d.ts.map +1 -0
- package/dist/core/streaming.js +264 -0
- package/dist/core/streaming.js.map +1 -0
- package/dist/core/symphony/orchestrator.d.ts +61 -0
- package/dist/core/symphony/orchestrator.d.ts.map +1 -0
- package/dist/core/symphony/orchestrator.js +476 -0
- package/dist/core/symphony/orchestrator.js.map +1 -0
- package/dist/core/symphony/status.d.ts +11 -0
- package/dist/core/symphony/status.d.ts.map +1 -0
- package/dist/core/symphony/status.js +133 -0
- package/dist/core/symphony/status.js.map +1 -0
- package/dist/core/symphony/types.d.ts +84 -0
- package/dist/core/symphony/types.d.ts.map +1 -0
- package/dist/core/symphony/types.js +5 -0
- package/dist/core/symphony/types.js.map +1 -0
- package/dist/core/symphony/workflow.d.ts +18 -0
- package/dist/core/symphony/workflow.d.ts.map +1 -0
- package/dist/core/symphony/workflow.js +149 -0
- package/dist/core/symphony/workflow.js.map +1 -0
- package/dist/core/symphony/workspace.d.ts +24 -0
- package/dist/core/symphony/workspace.d.ts.map +1 -0
- package/dist/core/symphony/workspace.js +94 -0
- package/dist/core/symphony/workspace.js.map +1 -0
- package/dist/core/thinking.d.ts +27 -0
- package/dist/core/thinking.d.ts.map +1 -0
- package/dist/core/thinking.js +83 -0
- package/dist/core/thinking.js.map +1 -0
- package/dist/core/thread-bindings.d.ts +47 -0
- package/dist/core/thread-bindings.d.ts.map +1 -0
- package/dist/core/thread-bindings.js +94 -0
- package/dist/core/thread-bindings.js.map +1 -0
- package/dist/core/timezone.d.ts +28 -0
- package/dist/core/timezone.d.ts.map +1 -0
- package/dist/core/timezone.js +72 -0
- package/dist/core/timezone.js.map +1 -0
- package/dist/core/tool-loop-detector.d.ts +41 -0
- package/dist/core/tool-loop-detector.d.ts.map +1 -0
- package/dist/core/tool-loop-detector.js +83 -0
- package/dist/core/tool-loop-detector.js.map +1 -0
- package/dist/core/tool-validator.d.ts +44 -0
- package/dist/core/tool-validator.d.ts.map +1 -0
- package/dist/core/tool-validator.js +175 -0
- package/dist/core/tool-validator.js.map +1 -0
- package/dist/core/typing.d.ts +25 -0
- package/dist/core/typing.d.ts.map +1 -0
- package/dist/core/typing.js +48 -0
- package/dist/core/typing.js.map +1 -0
- package/dist/core/usage-tracker.d.ts +66 -0
- package/dist/core/usage-tracker.d.ts.map +1 -0
- package/dist/core/usage-tracker.js +163 -0
- package/dist/core/usage-tracker.js.map +1 -0
- package/dist/daemon/commands.d.ts +16 -0
- package/dist/daemon/commands.d.ts.map +1 -0
- package/dist/daemon/commands.js +445 -0
- package/dist/daemon/commands.js.map +1 -0
- package/dist/daemon/pid.d.ts +30 -0
- package/dist/daemon/pid.d.ts.map +1 -0
- package/dist/daemon/pid.js +62 -0
- package/dist/daemon/pid.js.map +1 -0
- package/dist/doctor/checks/browser.d.ts +9 -0
- package/dist/doctor/checks/browser.d.ts.map +1 -0
- package/dist/doctor/checks/browser.js +54 -0
- package/dist/doctor/checks/browser.js.map +1 -0
- package/dist/doctor/checks/channels.d.ts +9 -0
- package/dist/doctor/checks/channels.d.ts.map +1 -0
- package/dist/doctor/checks/channels.js +90 -0
- package/dist/doctor/checks/channels.js.map +1 -0
- package/dist/doctor/checks/config.d.ts +10 -0
- package/dist/doctor/checks/config.d.ts.map +1 -0
- package/dist/doctor/checks/config.js +89 -0
- package/dist/doctor/checks/config.js.map +1 -0
- package/dist/doctor/checks/memory.d.ts +10 -0
- package/dist/doctor/checks/memory.d.ts.map +1 -0
- package/dist/doctor/checks/memory.js +82 -0
- package/dist/doctor/checks/memory.js.map +1 -0
- package/dist/doctor/checks/permissions.d.ts +9 -0
- package/dist/doctor/checks/permissions.d.ts.map +1 -0
- package/dist/doctor/checks/permissions.js +53 -0
- package/dist/doctor/checks/permissions.js.map +1 -0
- package/dist/doctor/checks/providers.d.ts +10 -0
- package/dist/doctor/checks/providers.d.ts.map +1 -0
- package/dist/doctor/checks/providers.js +93 -0
- package/dist/doctor/checks/providers.js.map +1 -0
- package/dist/doctor/checks/sessions.d.ts +10 -0
- package/dist/doctor/checks/sessions.d.ts.map +1 -0
- package/dist/doctor/checks/sessions.js +86 -0
- package/dist/doctor/checks/sessions.js.map +1 -0
- package/dist/doctor/doctor.d.ts +35 -0
- package/dist/doctor/doctor.d.ts.map +1 -0
- package/dist/doctor/doctor.js +51 -0
- package/dist/doctor/doctor.js.map +1 -0
- package/dist/doctor/repairs.d.ts +14 -0
- package/dist/doctor/repairs.d.ts.map +1 -0
- package/dist/doctor/repairs.js +34 -0
- package/dist/doctor/repairs.js.map +1 -0
- package/dist/gateway/compaction.d.ts +63 -0
- package/dist/gateway/compaction.d.ts.map +1 -0
- package/dist/gateway/compaction.js +235 -0
- package/dist/gateway/compaction.js.map +1 -0
- package/dist/gateway/gateway.d.ts +94 -0
- package/dist/gateway/gateway.d.ts.map +1 -0
- package/dist/gateway/gateway.js +466 -0
- package/dist/gateway/gateway.js.map +1 -0
- package/dist/gateway/lock.d.ts +24 -0
- package/dist/gateway/lock.d.ts.map +1 -0
- package/dist/gateway/lock.js +88 -0
- package/dist/gateway/lock.js.map +1 -0
- package/dist/gateway/protocol.d.ts +117 -0
- package/dist/gateway/protocol.d.ts.map +1 -0
- package/dist/gateway/protocol.js +5 -0
- package/dist/gateway/protocol.js.map +1 -0
- package/dist/gateway/session.d.ts +123 -0
- package/dist/gateway/session.d.ts.map +1 -0
- package/dist/gateway/session.js +573 -0
- package/dist/gateway/session.js.map +1 -0
- package/dist/hooks/hooks.d.ts +18 -0
- package/dist/hooks/hooks.d.ts.map +1 -0
- package/dist/hooks/hooks.js +45 -0
- package/dist/hooks/hooks.js.map +1 -0
- package/dist/hooks/types.d.ts +112 -0
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/hooks/types.js +23 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2900 -0
- package/dist/index.js.map +1 -0
- package/dist/media/storage.d.ts +25 -0
- package/dist/media/storage.d.ts.map +1 -0
- package/dist/media/storage.js +97 -0
- package/dist/media/storage.js.map +1 -0
- package/dist/memory/embeddings.d.ts +46 -0
- package/dist/memory/embeddings.d.ts.map +1 -0
- package/dist/memory/embeddings.js +118 -0
- package/dist/memory/embeddings.js.map +1 -0
- package/dist/memory/hybrid.d.ts +35 -0
- package/dist/memory/hybrid.d.ts.map +1 -0
- package/dist/memory/hybrid.js +156 -0
- package/dist/memory/hybrid.js.map +1 -0
- package/dist/memory/markdown.d.ts +48 -0
- package/dist/memory/markdown.d.ts.map +1 -0
- package/dist/memory/markdown.js +228 -0
- package/dist/memory/markdown.js.map +1 -0
- package/dist/memory/store.d.ts +88 -0
- package/dist/memory/store.d.ts.map +1 -0
- package/dist/memory/store.js +21 -0
- package/dist/memory/store.js.map +1 -0
- package/dist/memory/vector.d.ts +24 -0
- package/dist/memory/vector.d.ts.map +1 -0
- package/dist/memory/vector.js +63 -0
- package/dist/memory/vector.js.map +1 -0
- package/dist/mods/mod.d.ts +100 -0
- package/dist/mods/mod.d.ts.map +1 -0
- package/dist/mods/mod.js +242 -0
- package/dist/mods/mod.js.map +1 -0
- package/dist/onboard/channels.d.ts +12 -0
- package/dist/onboard/channels.d.ts.map +1 -0
- package/dist/onboard/channels.js +283 -0
- package/dist/onboard/channels.js.map +1 -0
- package/dist/onboard/models.d.ts +13 -0
- package/dist/onboard/models.d.ts.map +1 -0
- package/dist/onboard/models.js +491 -0
- package/dist/onboard/models.js.map +1 -0
- package/dist/onboard/onboard.d.ts +12 -0
- package/dist/onboard/onboard.d.ts.map +1 -0
- package/dist/onboard/onboard.js +1137 -0
- package/dist/onboard/onboard.js.map +1 -0
- package/dist/providers/anthropic.d.ts +83 -0
- package/dist/providers/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic.js +583 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/failover.d.ts +46 -0
- package/dist/providers/failover.d.ts.map +1 -0
- package/dist/providers/failover.js +149 -0
- package/dist/providers/failover.js.map +1 -0
- package/dist/providers/litellm.d.ts +38 -0
- package/dist/providers/litellm.d.ts.map +1 -0
- package/dist/providers/litellm.js +349 -0
- package/dist/providers/litellm.js.map +1 -0
- package/dist/providers/openai.d.ts +28 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +321 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/providers/prompt-cache.d.ts +50 -0
- package/dist/providers/prompt-cache.d.ts.map +1 -0
- package/dist/providers/prompt-cache.js +96 -0
- package/dist/providers/prompt-cache.js.map +1 -0
- package/dist/providers/provider.d.ts +173 -0
- package/dist/providers/provider.d.ts.map +1 -0
- package/dist/providers/provider.js +22 -0
- package/dist/providers/provider.js.map +1 -0
- package/dist/sandbox/config.d.ts +42 -0
- package/dist/sandbox/config.d.ts.map +1 -0
- package/dist/sandbox/config.js +20 -0
- package/dist/sandbox/config.js.map +1 -0
- package/dist/sandbox/container.d.ts +71 -0
- package/dist/sandbox/container.d.ts.map +1 -0
- package/dist/sandbox/container.js +193 -0
- package/dist/sandbox/container.js.map +1 -0
- package/dist/sandbox/sandbox.d.ts +82 -0
- package/dist/sandbox/sandbox.d.ts.map +1 -0
- package/dist/sandbox/sandbox.js +176 -0
- package/dist/sandbox/sandbox.js.map +1 -0
- package/dist/skills/channel-loader.d.ts +18 -0
- package/dist/skills/channel-loader.d.ts.map +1 -0
- package/dist/skills/channel-loader.js +35 -0
- package/dist/skills/channel-loader.js.map +1 -0
- package/dist/skills/extension-loader.d.ts +15 -0
- package/dist/skills/extension-loader.d.ts.map +1 -0
- package/dist/skills/extension-loader.js +63 -0
- package/dist/skills/extension-loader.js.map +1 -0
- package/dist/skills/extension-registry.d.ts +32 -0
- package/dist/skills/extension-registry.d.ts.map +1 -0
- package/dist/skills/extension-registry.js +57 -0
- package/dist/skills/extension-registry.js.map +1 -0
- package/dist/skills/extensions.d.ts +91 -0
- package/dist/skills/extensions.d.ts.map +1 -0
- package/dist/skills/extensions.js +14 -0
- package/dist/skills/extensions.js.map +1 -0
- package/dist/skills/loader.d.ts +64 -0
- package/dist/skills/loader.d.ts.map +1 -0
- package/dist/skills/loader.js +382 -0
- package/dist/skills/loader.js.map +1 -0
- package/dist/skills/marketplace.d.ts +56 -0
- package/dist/skills/marketplace.d.ts.map +1 -0
- package/dist/skills/marketplace.js +183 -0
- package/dist/skills/marketplace.js.map +1 -0
- package/dist/skills/types.d.ts +94 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/skills/types.js +9 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/tools/acp-sessions.d.ts +89 -0
- package/dist/tools/acp-sessions.d.ts.map +1 -0
- package/dist/tools/acp-sessions.js +391 -0
- package/dist/tools/acp-sessions.js.map +1 -0
- package/dist/tools/acp.d.ts +18 -0
- package/dist/tools/acp.d.ts.map +1 -0
- package/dist/tools/acp.js +102 -0
- package/dist/tools/acp.js.map +1 -0
- package/dist/tools/agent-tools.d.ts +24 -0
- package/dist/tools/agent-tools.d.ts.map +1 -0
- package/dist/tools/agent-tools.js +611 -0
- package/dist/tools/agent-tools.js.map +1 -0
- package/dist/tools/browser.d.ts +26 -0
- package/dist/tools/browser.d.ts.map +1 -0
- package/dist/tools/browser.js +242 -0
- package/dist/tools/browser.js.map +1 -0
- package/dist/tools/comms.d.ts +8 -0
- package/dist/tools/comms.d.ts.map +1 -0
- package/dist/tools/comms.js +39 -0
- package/dist/tools/comms.js.map +1 -0
- package/dist/tools/cron-tools.d.ts +9 -0
- package/dist/tools/cron-tools.d.ts.map +1 -0
- package/dist/tools/cron-tools.js +117 -0
- package/dist/tools/cron-tools.js.map +1 -0
- package/dist/tools/exec-safety.d.ts +71 -0
- package/dist/tools/exec-safety.d.ts.map +1 -0
- package/dist/tools/exec-safety.js +141 -0
- package/dist/tools/exec-safety.js.map +1 -0
- package/dist/tools/exec.d.ts +24 -0
- package/dist/tools/exec.d.ts.map +1 -0
- package/dist/tools/exec.js +191 -0
- package/dist/tools/exec.js.map +1 -0
- package/dist/tools/fs.d.ts +15 -0
- package/dist/tools/fs.d.ts.map +1 -0
- package/dist/tools/fs.js +249 -0
- package/dist/tools/fs.js.map +1 -0
- package/dist/tools/git.d.ts +9 -0
- package/dist/tools/git.d.ts.map +1 -0
- package/dist/tools/git.js +56 -0
- package/dist/tools/git.js.map +1 -0
- package/dist/tools/image.d.ts +15 -0
- package/dist/tools/image.d.ts.map +1 -0
- package/dist/tools/image.js +106 -0
- package/dist/tools/image.js.map +1 -0
- package/dist/tools/introspect.d.ts +22 -0
- package/dist/tools/introspect.d.ts.map +1 -0
- package/dist/tools/introspect.js +223 -0
- package/dist/tools/introspect.js.map +1 -0
- package/dist/tools/memory.d.ts +11 -0
- package/dist/tools/memory.d.ts.map +1 -0
- package/dist/tools/memory.js +101 -0
- package/dist/tools/memory.js.map +1 -0
- package/dist/tools/message.d.ts +24 -0
- package/dist/tools/message.d.ts.map +1 -0
- package/dist/tools/message.js +205 -0
- package/dist/tools/message.js.map +1 -0
- package/dist/tools/model.d.ts +14 -0
- package/dist/tools/model.d.ts.map +1 -0
- package/dist/tools/model.js +62 -0
- package/dist/tools/model.js.map +1 -0
- package/dist/tools/policy.d.ts +101 -0
- package/dist/tools/policy.d.ts.map +1 -0
- package/dist/tools/policy.js +168 -0
- package/dist/tools/policy.js.map +1 -0
- package/dist/tools/registry.d.ts +52 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +154 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/search.d.ts +10 -0
- package/dist/tools/search.d.ts.map +1 -0
- package/dist/tools/search.js +78 -0
- package/dist/tools/search.js.map +1 -0
- package/dist/tools/session.d.ts +13 -0
- package/dist/tools/session.d.ts.map +1 -0
- package/dist/tools/session.js +142 -0
- package/dist/tools/session.js.map +1 -0
- package/dist/tools/spawn.d.ts +10 -0
- package/dist/tools/spawn.d.ts.map +1 -0
- package/dist/tools/spawn.js +72 -0
- package/dist/tools/spawn.js.map +1 -0
- package/dist/tools/symphony.d.ts +12 -0
- package/dist/tools/symphony.d.ts.map +1 -0
- package/dist/tools/symphony.js +142 -0
- package/dist/tools/symphony.js.map +1 -0
- package/dist/tools/system-tools.d.ts +11 -0
- package/dist/tools/system-tools.d.ts.map +1 -0
- package/dist/tools/system-tools.js +39 -0
- package/dist/tools/system-tools.js.map +1 -0
- package/dist/tools/tool.d.ts +119 -0
- package/dist/tools/tool.d.ts.map +1 -0
- package/dist/tools/tool.js +29 -0
- package/dist/tools/tool.js.map +1 -0
- package/dist/tools/web.d.ts +10 -0
- package/dist/tools/web.d.ts.map +1 -0
- package/dist/tools/web.js +105 -0
- package/dist/tools/web.js.map +1 -0
- package/dist/tui/App.d.ts +43 -0
- package/dist/tui/App.d.ts.map +1 -0
- package/dist/tui/App.js +265 -0
- package/dist/tui/App.js.map +1 -0
- package/dist/tui/bridge.d.ts +40 -0
- package/dist/tui/bridge.d.ts.map +1 -0
- package/dist/tui/bridge.js +29 -0
- package/dist/tui/bridge.js.map +1 -0
- package/dist/tui/components/Header.d.ts +14 -0
- package/dist/tui/components/Header.d.ts.map +1 -0
- package/dist/tui/components/Header.js +7 -0
- package/dist/tui/components/Header.js.map +1 -0
- package/dist/tui/components/InputBar.d.ts +10 -0
- package/dist/tui/components/InputBar.d.ts.map +1 -0
- package/dist/tui/components/InputBar.js +121 -0
- package/dist/tui/components/InputBar.js.map +1 -0
- package/dist/tui/components/MessageList.d.ts +18 -0
- package/dist/tui/components/MessageList.d.ts.map +1 -0
- package/dist/tui/components/MessageList.js +34 -0
- package/dist/tui/components/MessageList.js.map +1 -0
- package/dist/tui/components/Spinner.d.ts +9 -0
- package/dist/tui/components/Spinner.d.ts.map +1 -0
- package/dist/tui/components/Spinner.js +18 -0
- package/dist/tui/components/Spinner.js.map +1 -0
- package/dist/tui/components/StatusBar.d.ts +16 -0
- package/dist/tui/components/StatusBar.d.ts.map +1 -0
- package/dist/tui/components/StatusBar.js +15 -0
- package/dist/tui/components/StatusBar.js.map +1 -0
- package/dist/tui/components/ToolCallBox.d.ts +12 -0
- package/dist/tui/components/ToolCallBox.d.ts.map +1 -0
- package/dist/tui/components/ToolCallBox.js +12 -0
- package/dist/tui/components/ToolCallBox.js.map +1 -0
- package/dist/tui/theme.d.ts +58 -0
- package/dist/tui/theme.d.ts.map +1 -0
- package/dist/tui/theme.js +80 -0
- package/dist/tui/theme.js.map +1 -0
- package/dist/utils/logger.d.ts +16 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +70 -0
- package/dist/utils/logger.js.map +1 -0
- package/docs/DEVELOPMENT.md +74 -0
- package/docs/INSTALL.md +161 -0
- package/docs/USAGE.md +94 -0
- package/docs/architecture.md +128 -0
- package/docs/channels.md +140 -0
- package/docs/configuration.md +209 -0
- package/docs/io-system.md +430 -0
- package/docs/providers.md +99 -0
- package/docs/skill-channels.md +113 -0
- package/docs/skills.md +246 -0
- package/package.json +89 -0
- package/skills/acp-router/SKILL.md +41 -0
- package/skills/acp-router/tools/acp-router.mjs +239 -0
- package/skills/find-skills/SKILL.md +133 -0
- package/skills/security-audit/SKILL.md +181 -0
- package/skills/security-audit/audit.sh +67 -0
- package/skills/skill-creator/SKILL.md +479 -0
- package/skills/skill-security-audit/.clawhub/origin.json +7 -0
- package/skills/skill-security-audit/SKILL.md +196 -0
- package/skills/skill-security-audit/_meta.json +6 -0
- package/skills/skill-security-audit/references/prompt-injection-patterns.md +276 -0
- package/skills/skill-security-audit/references/vulnerability-patterns.md +348 -0
- package/skills/symphony/README.md +53 -0
- package/skills/symphony/SKILL.md +75 -0
- package/skills/symphony/tools/symphony-orchestrator.ts +8 -0
- package/tako.example.json +33 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# Architecture
|
|
2
|
+
|
|
3
|
+
Tako follows an **Agent-as-CPU** design: the LLM is the processor, the core runtime is the OS kernel, and skills are pluggable arms.
|
|
4
|
+
|
|
5
|
+
## Design Principles
|
|
6
|
+
|
|
7
|
+
1. **Minimal kernel** — only what every agent needs, nothing more
|
|
8
|
+
2. **Trait-based** — every subsystem is an interface; swap implementations freely
|
|
9
|
+
3. **Clear boundaries** — each subsystem has one job, one interface, zero leakage
|
|
10
|
+
4. **Convention over config** — sane defaults, override when needed
|
|
11
|
+
5. **Markdown-first memory** — plain files are the source of truth
|
|
12
|
+
6. **Single binary mindset** — one process, fast start
|
|
13
|
+
|
|
14
|
+
## System Diagram
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
┌─────────────────────────────────────────────┐
|
|
18
|
+
│ Tako Gateway │
|
|
19
|
+
│ (WebSocket control plane) │
|
|
20
|
+
├──────┬──────┬──────┬──────┬────────────────┤
|
|
21
|
+
│ Prov │ Chan │ Tool │ Mem │ Session │
|
|
22
|
+
│ ider │ nel │ │ ory │ Manager │
|
|
23
|
+
├──────┴──────┴──────┴──────┴────────────────┤
|
|
24
|
+
│ Agent Loop │
|
|
25
|
+
│ intake → context → infer → tools → reply │
|
|
26
|
+
├─────────────────────────────────────────────┤
|
|
27
|
+
│ Skill Arms (pluggable) │
|
|
28
|
+
│ find-skills │ skill-creator │ your-skill │
|
|
29
|
+
└─────────────────────────────────────────────┘
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Core Subsystems
|
|
33
|
+
|
|
34
|
+
### 1. Provider (inference engine)
|
|
35
|
+
|
|
36
|
+
Adapts LLM APIs into a unified streaming interface. Each provider handles:
|
|
37
|
+
- API authentication and key rotation
|
|
38
|
+
- Message format conversion
|
|
39
|
+
- Streaming response parsing
|
|
40
|
+
- Model capability detection
|
|
41
|
+
|
|
42
|
+
Interface: `src/providers/provider.ts`
|
|
43
|
+
|
|
44
|
+
### 2. Channel (messaging I/O)
|
|
45
|
+
|
|
46
|
+
Adapts messaging platforms into a unified message handler. Multiple channels run simultaneously. Each handles:
|
|
47
|
+
- Platform connection and authentication
|
|
48
|
+
- Message format conversion
|
|
49
|
+
- Rate limiting and message splitting
|
|
50
|
+
- Reconnection and error recovery
|
|
51
|
+
|
|
52
|
+
Interface: `src/channels/channel.ts`
|
|
53
|
+
|
|
54
|
+
### 3. Tool (agent syscalls)
|
|
55
|
+
|
|
56
|
+
Named functions the model can invoke during generation. Organized into groups, activated by profiles:
|
|
57
|
+
- **Kernel tools**: organized into 10 groups across 3 profiles
|
|
58
|
+
- **Skill tools**: registered at runtime by skill arms
|
|
59
|
+
- **Policy**: deny/allow lists override profile defaults
|
|
60
|
+
|
|
61
|
+
Interface: `src/tools/tool.ts`
|
|
62
|
+
|
|
63
|
+
### 4. MemoryStore (persistence + recall)
|
|
64
|
+
|
|
65
|
+
Hybrid search over the agent's markdown memory:
|
|
66
|
+
- **BM25**: keyword matching with TF-IDF scoring and temporal decay
|
|
67
|
+
- **Vector**: semantic similarity via embeddings (OpenAI or Voyage)
|
|
68
|
+
- **Fusion**: Reciprocal Rank Fusion combines both result sets
|
|
69
|
+
|
|
70
|
+
Interface: `src/memory/store.ts`
|
|
71
|
+
|
|
72
|
+
### 5. HookSystem (lifecycle events)
|
|
73
|
+
|
|
74
|
+
Simple event emitter for intercepting agent lifecycle moments:
|
|
75
|
+
- Agent start/end, prompt build
|
|
76
|
+
- Tool call before/after
|
|
77
|
+
- Session start/end
|
|
78
|
+
- Message received/sending
|
|
79
|
+
- Gateway start/stop
|
|
80
|
+
|
|
81
|
+
Interface: `src/hooks/types.ts`
|
|
82
|
+
|
|
83
|
+
## Agent Loop
|
|
84
|
+
|
|
85
|
+
The CPU cycle runs for each user message:
|
|
86
|
+
|
|
87
|
+
1. **Message arrives** from any channel
|
|
88
|
+
2. **Session resolved** (or created) based on channel + author
|
|
89
|
+
3. **System prompt assembled** from workspace files + matching skill instructions
|
|
90
|
+
4. **Provider.chat()** called with streaming
|
|
91
|
+
5. **Tool calls executed** (up to 50 per turn, configurable `maxTurns` default 20)
|
|
92
|
+
6. **Response streamed** back through the originating channel
|
|
93
|
+
7. **Session persisted** to disk
|
|
94
|
+
|
|
95
|
+
Dynamic skill injection happens at step 3: the loader checks each skill's trigger conditions against the user message and injects matching skill instructions into the prompt.
|
|
96
|
+
|
|
97
|
+
## Gateway
|
|
98
|
+
|
|
99
|
+
The WebSocket server manages:
|
|
100
|
+
- Client authentication
|
|
101
|
+
- Session create/resume/list
|
|
102
|
+
- Streaming agent responses as chunks
|
|
103
|
+
- Tool call notifications
|
|
104
|
+
|
|
105
|
+
Protocol: `src/gateway/protocol.ts`
|
|
106
|
+
|
|
107
|
+
## Skill Extensions (Pluggable Subsystems)
|
|
108
|
+
|
|
109
|
+
Skills can provide entire subsystem implementations via extension subdirectories:
|
|
110
|
+
|
|
111
|
+
| Type | Subdirectory | Interface | Factory |
|
|
112
|
+
|------|-------------|-----------|---------|
|
|
113
|
+
| Channel | `channel/` | `Channel` | `createChannel(config)` |
|
|
114
|
+
| Provider | `provider/` | `Provider` | `createProvider(config)` |
|
|
115
|
+
| Memory | `memory/` | `MemoryStore` | `createMemory(config)` |
|
|
116
|
+
| Network | `network/` | `NetworkAdapter` | `createNetwork(config)` |
|
|
117
|
+
| Sandbox | `sandbox/` | `SandboxProvider` | `createSandbox(config)` |
|
|
118
|
+
| Auth | `auth/` | `AuthProvider` | `createAuth(config)` |
|
|
119
|
+
|
|
120
|
+
Extensions are auto-detected during skill loading, configured via `skillExtensions` in tako.json, and tracked at runtime in the `ExtensionRegistry`.
|
|
121
|
+
|
|
122
|
+
See `src/skills/extensions.ts` for interfaces and `src/skills/extension-loader.ts` for the loader.
|
|
123
|
+
|
|
124
|
+
## Memory Hierarchy
|
|
125
|
+
|
|
126
|
+
- **MEMORY.md** — curated long-term memory, always in system prompt
|
|
127
|
+
- **Daily logs** (memory/YYYY-MM-DD.md) — append-only, accessed via search
|
|
128
|
+
- **Bootstrap files** — SOUL.md, IDENTITY.md, AGENTS.md, USER.md, TOOLS.md, HEARTBEAT.md
|
package/docs/channels.md
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# Channels
|
|
2
|
+
|
|
3
|
+
Channels are messaging I/O adapters that connect Tako to different platforms. Multiple channels run simultaneously.
|
|
4
|
+
|
|
5
|
+
## CLI (Built-in)
|
|
6
|
+
|
|
7
|
+
Terminal readline interface. Always active.
|
|
8
|
+
|
|
9
|
+
**Configuration:**
|
|
10
|
+
```json
|
|
11
|
+
{
|
|
12
|
+
"channels": {
|
|
13
|
+
"cli": {
|
|
14
|
+
"prompt": "tako> "
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
**Features:**
|
|
21
|
+
- Streaming output (chunks written to stdout in real-time)
|
|
22
|
+
- `/quit` and `/exit` commands to stop
|
|
23
|
+
- Serialized message handling (no overlapping executions)
|
|
24
|
+
|
|
25
|
+
## TUI (Built-in)
|
|
26
|
+
|
|
27
|
+
Terminal UI built with Ink/React. Attach to a running daemon or run standalone.
|
|
28
|
+
|
|
29
|
+
**Launch:**
|
|
30
|
+
```bash
|
|
31
|
+
tako tui # Attach to running daemon
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
**Features:**
|
|
35
|
+
- Real-time streaming output
|
|
36
|
+
- Image attachment support
|
|
37
|
+
- Tab-completion for commands
|
|
38
|
+
- Active agent display in header
|
|
39
|
+
- Bot name masking for privacy
|
|
40
|
+
|
|
41
|
+
## Discord (Built-in)
|
|
42
|
+
|
|
43
|
+
Discord bot via discord.js.
|
|
44
|
+
|
|
45
|
+
**Configuration:**
|
|
46
|
+
```json
|
|
47
|
+
{
|
|
48
|
+
"channels": {
|
|
49
|
+
"discord": {
|
|
50
|
+
"token": "your-bot-token",
|
|
51
|
+
"guilds": ["guild-id-1", "guild-id-2"]
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Features:**
|
|
58
|
+
- Auto-create threads for replies (reference runtime-style)
|
|
59
|
+
- DM support (via Partials.Channel + Partials.Message)
|
|
60
|
+
- Typing indicators (configurable via `agent.typingMode`)
|
|
61
|
+
- Automatic message splitting (Discord's 2000 char limit)
|
|
62
|
+
- Auto-reconnect with exponential backoff (up to 5 attempts)
|
|
63
|
+
- Guild filtering (optional — respond only in specific servers)
|
|
64
|
+
- Attachment extraction (images, files)
|
|
65
|
+
- Sender name shown in messages: `[From: name]`
|
|
66
|
+
|
|
67
|
+
**Setup:**
|
|
68
|
+
1. Create a bot at [Discord Developer Portal](https://discord.com/developers/applications)
|
|
69
|
+
2. Enable Message Content Intent
|
|
70
|
+
3. Invite bot to your server with message permissions
|
|
71
|
+
4. Set the token via `tako onboard` or `tako channels`
|
|
72
|
+
|
|
73
|
+
## Telegram (Built-in)
|
|
74
|
+
|
|
75
|
+
Telegram bot via grammY.
|
|
76
|
+
|
|
77
|
+
**Configuration:**
|
|
78
|
+
```json
|
|
79
|
+
{
|
|
80
|
+
"channels": {
|
|
81
|
+
"telegram": {
|
|
82
|
+
"token": "your-bot-token",
|
|
83
|
+
"allowedUsers": ["username1", "username2"]
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**Features:**
|
|
90
|
+
- Long polling (non-blocking)
|
|
91
|
+
- Typing indicators (configurable via `agent.typingMode`)
|
|
92
|
+
- Reactions support
|
|
93
|
+
- Markdown formatting with fallback to plain text
|
|
94
|
+
- Max 4096 chars per message (Telegram limit)
|
|
95
|
+
- User filtering (optional — respond only to specific users)
|
|
96
|
+
- Supports photos, documents, audio, video attachments
|
|
97
|
+
- Sender name shown in messages: `[From: name]`
|
|
98
|
+
|
|
99
|
+
**Setup:**
|
|
100
|
+
1. Create a bot via [@BotFather](https://t.me/BotFather)
|
|
101
|
+
2. Get the token
|
|
102
|
+
3. Set via `tako onboard` or `tako channels`
|
|
103
|
+
|
|
104
|
+
## Custom Channels
|
|
105
|
+
|
|
106
|
+
Implement the `Channel` interface in `src/channels/channel.ts`:
|
|
107
|
+
|
|
108
|
+
```typescript
|
|
109
|
+
import type { Channel, OutboundMessage, MessageHandler, InboundMessage } from './channel.js';
|
|
110
|
+
|
|
111
|
+
export class MyChannel implements Channel {
|
|
112
|
+
id = 'my-channel';
|
|
113
|
+
private handler?: MessageHandler;
|
|
114
|
+
|
|
115
|
+
async connect(): Promise<void> {
|
|
116
|
+
// Connect to your platform
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
async disconnect(): Promise<void> {
|
|
120
|
+
// Clean up
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
async send(msg: OutboundMessage): Promise<void> {
|
|
124
|
+
// Send message to your platform
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
onMessage(handler: MessageHandler): void {
|
|
128
|
+
this.handler = handler;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Multi-Channel Routing
|
|
134
|
+
|
|
135
|
+
When multiple channels are active, Tako routes messages independently:
|
|
136
|
+
|
|
137
|
+
- Each channel + author pair gets its own session
|
|
138
|
+
- Sessions are keyed by `channelId:authorId`
|
|
139
|
+
- The agent loop runs per-message, streaming output back through the originating channel
|
|
140
|
+
- CLI streams to stdout; other channels send the complete response
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
# Configuration
|
|
2
|
+
|
|
3
|
+
Tako is configured via `~/.tako/tako.json`, managed through `tako onboard` or CLI commands. Environment variables can also be used.
|
|
4
|
+
|
|
5
|
+
**Important:** Never commit `tako.json` to git — it contains tokens and API keys.
|
|
6
|
+
|
|
7
|
+
## Config File
|
|
8
|
+
|
|
9
|
+
```json
|
|
10
|
+
{
|
|
11
|
+
"providers": {
|
|
12
|
+
"primary": "anthropic/claude-sonnet-4-6",
|
|
13
|
+
"fallback": ["anthropic/claude-haiku-4-5"]
|
|
14
|
+
},
|
|
15
|
+
"channels": {
|
|
16
|
+
"discord": {
|
|
17
|
+
"token": "your-discord-bot-token",
|
|
18
|
+
"guilds": ["guild-id-1"]
|
|
19
|
+
},
|
|
20
|
+
"telegram": {
|
|
21
|
+
"token": "your-telegram-bot-token",
|
|
22
|
+
"allowedUsers": ["username1"]
|
|
23
|
+
},
|
|
24
|
+
"cli": {
|
|
25
|
+
"prompt": "tako> "
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"tools": {
|
|
29
|
+
"profile": "full",
|
|
30
|
+
"deny": ["web_search"],
|
|
31
|
+
"allow": ["exec"]
|
|
32
|
+
},
|
|
33
|
+
"memory": {
|
|
34
|
+
"workspace": "~/.tako/workspace",
|
|
35
|
+
"embeddings": {
|
|
36
|
+
"provider": "openai",
|
|
37
|
+
"model": "text-embedding-3-small"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"gateway": {
|
|
41
|
+
"bind": "127.0.0.1",
|
|
42
|
+
"port": 18790,
|
|
43
|
+
"authToken": "optional-auth-token"
|
|
44
|
+
},
|
|
45
|
+
"agent": {
|
|
46
|
+
"timeout": 600,
|
|
47
|
+
"thinking": "adaptive",
|
|
48
|
+
"maxToolCalls": 50,
|
|
49
|
+
"maxTurns": 20,
|
|
50
|
+
"maxOutputChars": 50000,
|
|
51
|
+
"maxTokens": 16384,
|
|
52
|
+
"typingMode": "instant"
|
|
53
|
+
},
|
|
54
|
+
"sandbox": {
|
|
55
|
+
"mode": "off",
|
|
56
|
+
"scope": "session",
|
|
57
|
+
"workspaceAccess": "ro"
|
|
58
|
+
},
|
|
59
|
+
"heartbeat": {
|
|
60
|
+
"every": "30m",
|
|
61
|
+
"target": "none",
|
|
62
|
+
"ackMaxChars": 300
|
|
63
|
+
},
|
|
64
|
+
"session": {
|
|
65
|
+
"compaction": { "auto": true, "thresholdPercent": 80 },
|
|
66
|
+
"pruneAfterDays": 7,
|
|
67
|
+
"maxEntries": 100
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Reference
|
|
73
|
+
|
|
74
|
+
### providers
|
|
75
|
+
|
|
76
|
+
| Key | Type | Default | Description |
|
|
77
|
+
|-----|------|---------|-------------|
|
|
78
|
+
| `primary` | string | `"anthropic/claude-sonnet-4-6"` | Primary model (format: `provider/model`) |
|
|
79
|
+
| `fallback` | string[] | — | Ordered fallback model chain (up to 3) |
|
|
80
|
+
| `overrides` | object | — | Per-provider configuration overrides |
|
|
81
|
+
| `litellm` | object | — | LiteLLM proxy config (`baseUrl`, `apiKey`, `model`, `models`) |
|
|
82
|
+
|
|
83
|
+
### channels
|
|
84
|
+
|
|
85
|
+
#### discord
|
|
86
|
+
| Key | Type | Default | Description |
|
|
87
|
+
|-----|------|---------|-------------|
|
|
88
|
+
| `token` | string | — | Discord bot token |
|
|
89
|
+
| `guilds` | string[] | — | Restrict to specific guild IDs |
|
|
90
|
+
|
|
91
|
+
#### telegram
|
|
92
|
+
| Key | Type | Default | Description |
|
|
93
|
+
|-----|------|---------|-------------|
|
|
94
|
+
| `token` | string | — | Telegram bot token |
|
|
95
|
+
| `allowedUsers` | string[] | — | Restrict to specific usernames |
|
|
96
|
+
|
|
97
|
+
#### cli
|
|
98
|
+
| Key | Type | Default | Description |
|
|
99
|
+
|-----|------|---------|-------------|
|
|
100
|
+
| `prompt` | string | `"tako> "` | CLI prompt string |
|
|
101
|
+
|
|
102
|
+
### tools
|
|
103
|
+
|
|
104
|
+
| Key | Type | Default | Description |
|
|
105
|
+
|-----|------|---------|-------------|
|
|
106
|
+
| `profile` | string | `"full"` | Tool profile: `minimal`, `coding`, or `full` |
|
|
107
|
+
| `deny` | string[] | `[]` | Tools to always block |
|
|
108
|
+
| `allow` | string[] | — | Tools to always allow (overrides profile) |
|
|
109
|
+
| `exec.security` | string | — | Exec safety: `deny`, `allowlist`, or `full` |
|
|
110
|
+
| `exec.allowlist` | string[] | — | Regex patterns for pre-approved commands |
|
|
111
|
+
| `exec.timeout` | number | — | Max exec timeout in ms |
|
|
112
|
+
|
|
113
|
+
**Profiles:**
|
|
114
|
+
- `minimal`: fs + runtime only
|
|
115
|
+
- `coding`: + search, git, memory
|
|
116
|
+
- `full`: all 10 groups (fs, runtime, search, git, memory, web, sessions, image, agents, messaging)
|
|
117
|
+
|
|
118
|
+
### memory
|
|
119
|
+
|
|
120
|
+
| Key | Type | Default | Description |
|
|
121
|
+
|-----|------|---------|-------------|
|
|
122
|
+
| `workspace` | string | `"~/.tako/workspace"` | Workspace directory path (~ expanded) |
|
|
123
|
+
| `embeddings.provider` | string | — | Embedding provider: `"openai"` or `"voyage"` |
|
|
124
|
+
| `embeddings.model` | string | — | Embedding model name |
|
|
125
|
+
|
|
126
|
+
### gateway
|
|
127
|
+
|
|
128
|
+
| Key | Type | Default | Description |
|
|
129
|
+
|-----|------|---------|-------------|
|
|
130
|
+
| `bind` | string | `"127.0.0.1"` | Bind address for WebSocket server |
|
|
131
|
+
| `port` | number | `18790` | Port number |
|
|
132
|
+
| `authToken` | string | — | Auth token (auto-generated if missing) |
|
|
133
|
+
|
|
134
|
+
### agent
|
|
135
|
+
|
|
136
|
+
| Key | Type | Default | Description |
|
|
137
|
+
|-----|------|---------|-------------|
|
|
138
|
+
| `timeout` | number | `600` | Max agent loop duration in seconds |
|
|
139
|
+
| `thinking` | string | `"adaptive"` | Thinking mode: `none`, `adaptive`, `always` |
|
|
140
|
+
| `maxToolCalls` | number | `50` | Max tool calls per loop iteration |
|
|
141
|
+
| `maxTurns` | number | `20` | Max tool-call turns per agent loop run |
|
|
142
|
+
| `maxOutputChars` | number | `50000` | Max output characters before truncation |
|
|
143
|
+
| `maxTokens` | number | `16384` | Max output tokens per API call |
|
|
144
|
+
| `typingMode` | string | — | Typing indicator: `never`, `instant`, `thinking`, `message` |
|
|
145
|
+
| `typingIntervalSeconds` | number | `6` | How often to refresh typing indicator |
|
|
146
|
+
|
|
147
|
+
### sandbox
|
|
148
|
+
|
|
149
|
+
| Key | Type | Default | Description |
|
|
150
|
+
|-----|------|---------|-------------|
|
|
151
|
+
| `mode` | string | `"off"` | When to sandbox: `off`, `non-main`, `all` |
|
|
152
|
+
| `scope` | string | `"session"` | Container lifecycle: `session`, `agent`, `shared` |
|
|
153
|
+
| `workspaceAccess` | string | `"ro"` | Workspace mount: `none`, `ro`, `rw` |
|
|
154
|
+
| `docker.image` | string | — | Custom Docker image |
|
|
155
|
+
| `docker.network` | string | — | Docker network binding |
|
|
156
|
+
|
|
157
|
+
### heartbeat
|
|
158
|
+
|
|
159
|
+
| Key | Type | Default | Description |
|
|
160
|
+
|-----|------|---------|-------------|
|
|
161
|
+
| `every` | string | `"30m"` | Interval: `"30m"`, `"1h"`, `"0m"` (disabled) |
|
|
162
|
+
| `target` | string | `"none"` | Delivery: `none`, `last`, or channel ID |
|
|
163
|
+
| `prompt` | string | *(built-in)* | Prompt sent to agent loop |
|
|
164
|
+
| `ackMaxChars` | number | `300` | Max chars before delivery is dropped |
|
|
165
|
+
| `activeHours` | object | — | Window: `{ start, end, timezone }` |
|
|
166
|
+
|
|
167
|
+
### session
|
|
168
|
+
|
|
169
|
+
| Key | Type | Default | Description |
|
|
170
|
+
|-----|------|---------|-------------|
|
|
171
|
+
| `compaction.auto` | boolean | `true` | Enable auto-compaction |
|
|
172
|
+
| `compaction.thresholdPercent` | number | `80` | Trigger at this % of context window |
|
|
173
|
+
| `pruneAfterDays` | number | `7` | Prune completed sub-agent sessions after N days |
|
|
174
|
+
| `maxEntries` | number | `100` | Max sessions to keep in memory |
|
|
175
|
+
|
|
176
|
+
### agents
|
|
177
|
+
|
|
178
|
+
| Key | Type | Default | Description |
|
|
179
|
+
|-----|------|---------|-------------|
|
|
180
|
+
| `defaults.workspace` | string | `"~/.tako/workspace"` | Default workspace for agents |
|
|
181
|
+
| `defaults.model` | object | — | Default model override |
|
|
182
|
+
| `list` | AgentEntry[] | `[]` | Configured agents with bindings and roles |
|
|
183
|
+
|
|
184
|
+
### skills
|
|
185
|
+
|
|
186
|
+
| Key | Type | Default | Description |
|
|
187
|
+
|-----|------|---------|-------------|
|
|
188
|
+
| `dirs` | string[] | `["./skills", "~/.tako/skills"]` | Directories to scan for skills |
|
|
189
|
+
|
|
190
|
+
## Environment Variables
|
|
191
|
+
|
|
192
|
+
| Variable | Purpose |
|
|
193
|
+
|----------|---------|
|
|
194
|
+
| `ANTHROPIC_API_KEY` | Anthropic provider auth |
|
|
195
|
+
| `ANTHROPIC_API_KEYS` | Comma-separated keys for rotation |
|
|
196
|
+
| `OPENAI_API_KEY` | OpenAI provider / embeddings |
|
|
197
|
+
| `VOYAGE_API_KEY` | Voyage embeddings (alternative) |
|
|
198
|
+
| `DISCORD_TOKEN` | Discord bot token |
|
|
199
|
+
| `TELEGRAM_TOKEN` | Telegram bot token |
|
|
200
|
+
|
|
201
|
+
**Recommended:** Use `tako onboard` or `tako models auth login` instead of manual env vars.
|
|
202
|
+
|
|
203
|
+
## Resolution Order
|
|
204
|
+
|
|
205
|
+
1. Hardcoded defaults
|
|
206
|
+
2. `~/.tako/tako.json` file (shallow merge per section)
|
|
207
|
+
3. Environment variables
|
|
208
|
+
|
|
209
|
+
Path expansion: `~` is expanded to the home directory in path fields.
|