@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.
Files changed (653) hide show
  1. package/CONTRIBUTING.md +84 -0
  2. package/LICENSE +21 -0
  3. package/README.md +171 -0
  4. package/dist/agents/communication.d.ts +48 -0
  5. package/dist/agents/communication.d.ts.map +1 -0
  6. package/dist/agents/communication.js +123 -0
  7. package/dist/agents/communication.js.map +1 -0
  8. package/dist/agents/config.d.ts +52 -0
  9. package/dist/agents/config.d.ts.map +1 -0
  10. package/dist/agents/config.js +65 -0
  11. package/dist/agents/config.js.map +1 -0
  12. package/dist/agents/model-catalog.d.ts +49 -0
  13. package/dist/agents/model-catalog.d.ts.map +1 -0
  14. package/dist/agents/model-catalog.js +79 -0
  15. package/dist/agents/model-catalog.js.map +1 -0
  16. package/dist/agents/registry.d.ts +71 -0
  17. package/dist/agents/registry.d.ts.map +1 -0
  18. package/dist/agents/registry.js +297 -0
  19. package/dist/agents/registry.js.map +1 -0
  20. package/dist/agents/roles.d.ts +79 -0
  21. package/dist/agents/roles.d.ts.map +1 -0
  22. package/dist/agents/roles.js +174 -0
  23. package/dist/agents/roles.js.map +1 -0
  24. package/dist/agents/subagent.d.ts +124 -0
  25. package/dist/agents/subagent.d.ts.map +1 -0
  26. package/dist/agents/subagent.js +352 -0
  27. package/dist/agents/subagent.js.map +1 -0
  28. package/dist/agents/templates.d.ts +18 -0
  29. package/dist/agents/templates.d.ts.map +1 -0
  30. package/dist/agents/templates.js +341 -0
  31. package/dist/agents/templates.js.map +1 -0
  32. package/dist/agents/thread-binding.d.ts +77 -0
  33. package/dist/agents/thread-binding.d.ts.map +1 -0
  34. package/dist/agents/thread-binding.js +167 -0
  35. package/dist/agents/thread-binding.js.map +1 -0
  36. package/dist/auth/agent-profiles.d.ts +46 -0
  37. package/dist/auth/agent-profiles.d.ts.map +1 -0
  38. package/dist/auth/agent-profiles.js +97 -0
  39. package/dist/auth/agent-profiles.js.map +1 -0
  40. package/dist/auth/allow-from.d.ts +27 -0
  41. package/dist/auth/allow-from.d.ts.map +1 -0
  42. package/dist/auth/allow-from.js +118 -0
  43. package/dist/auth/allow-from.js.map +1 -0
  44. package/dist/auth/oauth.d.ts +66 -0
  45. package/dist/auth/oauth.d.ts.map +1 -0
  46. package/dist/auth/oauth.js +253 -0
  47. package/dist/auth/oauth.js.map +1 -0
  48. package/dist/auth/storage.d.ts +69 -0
  49. package/dist/auth/storage.d.ts.map +1 -0
  50. package/dist/auth/storage.js +157 -0
  51. package/dist/auth/storage.js.map +1 -0
  52. package/dist/cache/file-cache.d.ts +68 -0
  53. package/dist/cache/file-cache.d.ts.map +1 -0
  54. package/dist/cache/file-cache.js +176 -0
  55. package/dist/cache/file-cache.js.map +1 -0
  56. package/dist/cache/manager.d.ts +69 -0
  57. package/dist/cache/manager.d.ts.map +1 -0
  58. package/dist/cache/manager.js +117 -0
  59. package/dist/cache/manager.js.map +1 -0
  60. package/dist/cache/symbol-index.d.ts +75 -0
  61. package/dist/cache/symbol-index.d.ts.map +1 -0
  62. package/dist/cache/symbol-index.js +267 -0
  63. package/dist/cache/symbol-index.js.map +1 -0
  64. package/dist/cache/tool-cache.d.ts +75 -0
  65. package/dist/cache/tool-cache.d.ts.map +1 -0
  66. package/dist/cache/tool-cache.js +173 -0
  67. package/dist/cache/tool-cache.js.map +1 -0
  68. package/dist/channels/channel.d.ts +156 -0
  69. package/dist/channels/channel.d.ts.map +1 -0
  70. package/dist/channels/channel.js +25 -0
  71. package/dist/channels/channel.js.map +1 -0
  72. package/dist/channels/cli.d.ts +35 -0
  73. package/dist/channels/cli.d.ts.map +1 -0
  74. package/dist/channels/cli.js +94 -0
  75. package/dist/channels/cli.js.map +1 -0
  76. package/dist/channels/delivery-queue.d.ts +31 -0
  77. package/dist/channels/delivery-queue.d.ts.map +1 -0
  78. package/dist/channels/delivery-queue.js +127 -0
  79. package/dist/channels/delivery-queue.js.map +1 -0
  80. package/dist/channels/discord.d.ts +124 -0
  81. package/dist/channels/discord.d.ts.map +1 -0
  82. package/dist/channels/discord.js +664 -0
  83. package/dist/channels/discord.js.map +1 -0
  84. package/dist/channels/retry.d.ts +31 -0
  85. package/dist/channels/retry.d.ts.map +1 -0
  86. package/dist/channels/retry.js +94 -0
  87. package/dist/channels/retry.js.map +1 -0
  88. package/dist/channels/telegram.d.ts +69 -0
  89. package/dist/channels/telegram.d.ts.map +1 -0
  90. package/dist/channels/telegram.js +499 -0
  91. package/dist/channels/telegram.js.map +1 -0
  92. package/dist/channels/tui.d.ts +42 -0
  93. package/dist/channels/tui.d.ts.map +1 -0
  94. package/dist/channels/tui.js +126 -0
  95. package/dist/channels/tui.js.map +1 -0
  96. package/dist/cli/acp.d.ts +10 -0
  97. package/dist/cli/acp.d.ts.map +1 -0
  98. package/dist/cli/acp.js +69 -0
  99. package/dist/cli/acp.js.map +1 -0
  100. package/dist/cli/audit.d.ts +11 -0
  101. package/dist/cli/audit.d.ts.map +1 -0
  102. package/dist/cli/audit.js +55 -0
  103. package/dist/cli/audit.js.map +1 -0
  104. package/dist/cli/cache.d.ts +10 -0
  105. package/dist/cli/cache.d.ts.map +1 -0
  106. package/dist/cli/cache.js +77 -0
  107. package/dist/cli/cache.js.map +1 -0
  108. package/dist/cli/config.d.ts +5 -0
  109. package/dist/cli/config.d.ts.map +1 -0
  110. package/dist/cli/config.js +168 -0
  111. package/dist/cli/config.js.map +1 -0
  112. package/dist/cli/cron.d.ts +5 -0
  113. package/dist/cli/cron.d.ts.map +1 -0
  114. package/dist/cli/cron.js +192 -0
  115. package/dist/cli/cron.js.map +1 -0
  116. package/dist/cli/extensions.d.ts +5 -0
  117. package/dist/cli/extensions.d.ts.map +1 -0
  118. package/dist/cli/extensions.js +53 -0
  119. package/dist/cli/extensions.js.map +1 -0
  120. package/dist/cli/logs.d.ts +5 -0
  121. package/dist/cli/logs.d.ts.map +1 -0
  122. package/dist/cli/logs.js +49 -0
  123. package/dist/cli/logs.js.map +1 -0
  124. package/dist/cli/memory.d.ts +5 -0
  125. package/dist/cli/memory.d.ts.map +1 -0
  126. package/dist/cli/memory.js +78 -0
  127. package/dist/cli/memory.js.map +1 -0
  128. package/dist/cli/message.d.ts +5 -0
  129. package/dist/cli/message.d.ts.map +1 -0
  130. package/dist/cli/message.js +69 -0
  131. package/dist/cli/message.js.map +1 -0
  132. package/dist/cli/service.d.ts +14 -0
  133. package/dist/cli/service.d.ts.map +1 -0
  134. package/dist/cli/service.js +181 -0
  135. package/dist/cli/service.js.map +1 -0
  136. package/dist/cli/symphony.d.ts +5 -0
  137. package/dist/cli/symphony.d.ts.map +1 -0
  138. package/dist/cli/symphony.js +114 -0
  139. package/dist/cli/symphony.js.map +1 -0
  140. package/dist/cli/update.d.ts +5 -0
  141. package/dist/cli/update.d.ts.map +1 -0
  142. package/dist/cli/update.js +48 -0
  143. package/dist/cli/update.js.map +1 -0
  144. package/dist/commands/channel-setup.d.ts +31 -0
  145. package/dist/commands/channel-setup.d.ts.map +1 -0
  146. package/dist/commands/channel-setup.js +138 -0
  147. package/dist/commands/channel-setup.js.map +1 -0
  148. package/dist/commands/dispatch.d.ts +48 -0
  149. package/dist/commands/dispatch.d.ts.map +1 -0
  150. package/dist/commands/dispatch.js +68 -0
  151. package/dist/commands/dispatch.js.map +1 -0
  152. package/dist/commands/model-picker.d.ts +16 -0
  153. package/dist/commands/model-picker.d.ts.map +1 -0
  154. package/dist/commands/model-picker.js +120 -0
  155. package/dist/commands/model-picker.js.map +1 -0
  156. package/dist/commands/parser.d.ts +32 -0
  157. package/dist/commands/parser.d.ts.map +1 -0
  158. package/dist/commands/parser.js +39 -0
  159. package/dist/commands/parser.js.map +1 -0
  160. package/dist/commands/registry.d.ts +76 -0
  161. package/dist/commands/registry.d.ts.map +1 -0
  162. package/dist/commands/registry.js +351 -0
  163. package/dist/commands/registry.js.map +1 -0
  164. package/dist/commands/skill-commands.d.ts +35 -0
  165. package/dist/commands/skill-commands.d.ts.map +1 -0
  166. package/dist/commands/skill-commands.js +61 -0
  167. package/dist/commands/skill-commands.js.map +1 -0
  168. package/dist/config/resolve.d.ts +25 -0
  169. package/dist/config/resolve.d.ts.map +1 -0
  170. package/dist/config/resolve.js +289 -0
  171. package/dist/config/resolve.js.map +1 -0
  172. package/dist/config/schema.d.ts +520 -0
  173. package/dist/config/schema.d.ts.map +1 -0
  174. package/dist/config/schema.js +123 -0
  175. package/dist/config/schema.js.map +1 -0
  176. package/dist/core/agent-loop.d.ts +137 -0
  177. package/dist/core/agent-loop.d.ts.map +1 -0
  178. package/dist/core/agent-loop.js +700 -0
  179. package/dist/core/agent-loop.js.map +1 -0
  180. package/dist/core/audit.d.ts +87 -0
  181. package/dist/core/audit.d.ts.map +1 -0
  182. package/dist/core/audit.js +224 -0
  183. package/dist/core/audit.js.map +1 -0
  184. package/dist/core/bootstrap.d.ts +23 -0
  185. package/dist/core/bootstrap.d.ts.map +1 -0
  186. package/dist/core/bootstrap.js +162 -0
  187. package/dist/core/bootstrap.js.map +1 -0
  188. package/dist/core/context.d.ts +44 -0
  189. package/dist/core/context.d.ts.map +1 -0
  190. package/dist/core/context.js +65 -0
  191. package/dist/core/context.js.map +1 -0
  192. package/dist/core/cron.d.ts +111 -0
  193. package/dist/core/cron.d.ts.map +1 -0
  194. package/dist/core/cron.js +284 -0
  195. package/dist/core/cron.js.map +1 -0
  196. package/dist/core/exec-approvals.d.ts +50 -0
  197. package/dist/core/exec-approvals.d.ts.map +1 -0
  198. package/dist/core/exec-approvals.js +187 -0
  199. package/dist/core/exec-approvals.js.map +1 -0
  200. package/dist/core/heartbeat.d.ts +71 -0
  201. package/dist/core/heartbeat.d.ts.map +1 -0
  202. package/dist/core/heartbeat.js +214 -0
  203. package/dist/core/heartbeat.js.map +1 -0
  204. package/dist/core/message-queue.d.ts +60 -0
  205. package/dist/core/message-queue.d.ts.map +1 -0
  206. package/dist/core/message-queue.js +182 -0
  207. package/dist/core/message-queue.js.map +1 -0
  208. package/dist/core/network-policy.d.ts +39 -0
  209. package/dist/core/network-policy.d.ts.map +1 -0
  210. package/dist/core/network-policy.js +121 -0
  211. package/dist/core/network-policy.js.map +1 -0
  212. package/dist/core/progress.d.ts +48 -0
  213. package/dist/core/progress.d.ts.map +1 -0
  214. package/dist/core/progress.js +81 -0
  215. package/dist/core/progress.js.map +1 -0
  216. package/dist/core/prompt.d.ts +105 -0
  217. package/dist/core/prompt.d.ts.map +1 -0
  218. package/dist/core/prompt.js +411 -0
  219. package/dist/core/prompt.js.map +1 -0
  220. package/dist/core/pruning.d.ts +40 -0
  221. package/dist/core/pruning.d.ts.map +1 -0
  222. package/dist/core/pruning.js +165 -0
  223. package/dist/core/pruning.js.map +1 -0
  224. package/dist/core/rate-limiter.d.ts +64 -0
  225. package/dist/core/rate-limiter.d.ts.map +1 -0
  226. package/dist/core/rate-limiter.js +142 -0
  227. package/dist/core/rate-limiter.js.map +1 -0
  228. package/dist/core/reactions.d.ts +31 -0
  229. package/dist/core/reactions.d.ts.map +1 -0
  230. package/dist/core/reactions.js +67 -0
  231. package/dist/core/reactions.js.map +1 -0
  232. package/dist/core/retry-queue.d.ts +56 -0
  233. package/dist/core/retry-queue.d.ts.map +1 -0
  234. package/dist/core/retry-queue.js +106 -0
  235. package/dist/core/retry-queue.js.map +1 -0
  236. package/dist/core/sanitizer.d.ts +38 -0
  237. package/dist/core/sanitizer.d.ts.map +1 -0
  238. package/dist/core/sanitizer.js +181 -0
  239. package/dist/core/sanitizer.js.map +1 -0
  240. package/dist/core/secret-scanner.d.ts +39 -0
  241. package/dist/core/secret-scanner.d.ts.map +1 -0
  242. package/dist/core/secret-scanner.js +96 -0
  243. package/dist/core/secret-scanner.js.map +1 -0
  244. package/dist/core/secrets.d.ts +38 -0
  245. package/dist/core/secrets.d.ts.map +1 -0
  246. package/dist/core/secrets.js +137 -0
  247. package/dist/core/secrets.js.map +1 -0
  248. package/dist/core/security.d.ts +58 -0
  249. package/dist/core/security.d.ts.map +1 -0
  250. package/dist/core/security.js +120 -0
  251. package/dist/core/security.js.map +1 -0
  252. package/dist/core/self-awareness.d.ts +19 -0
  253. package/dist/core/self-awareness.d.ts.map +1 -0
  254. package/dist/core/self-awareness.js +124 -0
  255. package/dist/core/self-awareness.js.map +1 -0
  256. package/dist/core/session-init.d.ts +34 -0
  257. package/dist/core/session-init.d.ts.map +1 -0
  258. package/dist/core/session-init.js +68 -0
  259. package/dist/core/session-init.js.map +1 -0
  260. package/dist/core/streaming.d.ts +82 -0
  261. package/dist/core/streaming.d.ts.map +1 -0
  262. package/dist/core/streaming.js +264 -0
  263. package/dist/core/streaming.js.map +1 -0
  264. package/dist/core/symphony/orchestrator.d.ts +61 -0
  265. package/dist/core/symphony/orchestrator.d.ts.map +1 -0
  266. package/dist/core/symphony/orchestrator.js +476 -0
  267. package/dist/core/symphony/orchestrator.js.map +1 -0
  268. package/dist/core/symphony/status.d.ts +11 -0
  269. package/dist/core/symphony/status.d.ts.map +1 -0
  270. package/dist/core/symphony/status.js +133 -0
  271. package/dist/core/symphony/status.js.map +1 -0
  272. package/dist/core/symphony/types.d.ts +84 -0
  273. package/dist/core/symphony/types.d.ts.map +1 -0
  274. package/dist/core/symphony/types.js +5 -0
  275. package/dist/core/symphony/types.js.map +1 -0
  276. package/dist/core/symphony/workflow.d.ts +18 -0
  277. package/dist/core/symphony/workflow.d.ts.map +1 -0
  278. package/dist/core/symphony/workflow.js +149 -0
  279. package/dist/core/symphony/workflow.js.map +1 -0
  280. package/dist/core/symphony/workspace.d.ts +24 -0
  281. package/dist/core/symphony/workspace.d.ts.map +1 -0
  282. package/dist/core/symphony/workspace.js +94 -0
  283. package/dist/core/symphony/workspace.js.map +1 -0
  284. package/dist/core/thinking.d.ts +27 -0
  285. package/dist/core/thinking.d.ts.map +1 -0
  286. package/dist/core/thinking.js +83 -0
  287. package/dist/core/thinking.js.map +1 -0
  288. package/dist/core/thread-bindings.d.ts +47 -0
  289. package/dist/core/thread-bindings.d.ts.map +1 -0
  290. package/dist/core/thread-bindings.js +94 -0
  291. package/dist/core/thread-bindings.js.map +1 -0
  292. package/dist/core/timezone.d.ts +28 -0
  293. package/dist/core/timezone.d.ts.map +1 -0
  294. package/dist/core/timezone.js +72 -0
  295. package/dist/core/timezone.js.map +1 -0
  296. package/dist/core/tool-loop-detector.d.ts +41 -0
  297. package/dist/core/tool-loop-detector.d.ts.map +1 -0
  298. package/dist/core/tool-loop-detector.js +83 -0
  299. package/dist/core/tool-loop-detector.js.map +1 -0
  300. package/dist/core/tool-validator.d.ts +44 -0
  301. package/dist/core/tool-validator.d.ts.map +1 -0
  302. package/dist/core/tool-validator.js +175 -0
  303. package/dist/core/tool-validator.js.map +1 -0
  304. package/dist/core/typing.d.ts +25 -0
  305. package/dist/core/typing.d.ts.map +1 -0
  306. package/dist/core/typing.js +48 -0
  307. package/dist/core/typing.js.map +1 -0
  308. package/dist/core/usage-tracker.d.ts +66 -0
  309. package/dist/core/usage-tracker.d.ts.map +1 -0
  310. package/dist/core/usage-tracker.js +163 -0
  311. package/dist/core/usage-tracker.js.map +1 -0
  312. package/dist/daemon/commands.d.ts +16 -0
  313. package/dist/daemon/commands.d.ts.map +1 -0
  314. package/dist/daemon/commands.js +445 -0
  315. package/dist/daemon/commands.js.map +1 -0
  316. package/dist/daemon/pid.d.ts +30 -0
  317. package/dist/daemon/pid.d.ts.map +1 -0
  318. package/dist/daemon/pid.js +62 -0
  319. package/dist/daemon/pid.js.map +1 -0
  320. package/dist/doctor/checks/browser.d.ts +9 -0
  321. package/dist/doctor/checks/browser.d.ts.map +1 -0
  322. package/dist/doctor/checks/browser.js +54 -0
  323. package/dist/doctor/checks/browser.js.map +1 -0
  324. package/dist/doctor/checks/channels.d.ts +9 -0
  325. package/dist/doctor/checks/channels.d.ts.map +1 -0
  326. package/dist/doctor/checks/channels.js +90 -0
  327. package/dist/doctor/checks/channels.js.map +1 -0
  328. package/dist/doctor/checks/config.d.ts +10 -0
  329. package/dist/doctor/checks/config.d.ts.map +1 -0
  330. package/dist/doctor/checks/config.js +89 -0
  331. package/dist/doctor/checks/config.js.map +1 -0
  332. package/dist/doctor/checks/memory.d.ts +10 -0
  333. package/dist/doctor/checks/memory.d.ts.map +1 -0
  334. package/dist/doctor/checks/memory.js +82 -0
  335. package/dist/doctor/checks/memory.js.map +1 -0
  336. package/dist/doctor/checks/permissions.d.ts +9 -0
  337. package/dist/doctor/checks/permissions.d.ts.map +1 -0
  338. package/dist/doctor/checks/permissions.js +53 -0
  339. package/dist/doctor/checks/permissions.js.map +1 -0
  340. package/dist/doctor/checks/providers.d.ts +10 -0
  341. package/dist/doctor/checks/providers.d.ts.map +1 -0
  342. package/dist/doctor/checks/providers.js +93 -0
  343. package/dist/doctor/checks/providers.js.map +1 -0
  344. package/dist/doctor/checks/sessions.d.ts +10 -0
  345. package/dist/doctor/checks/sessions.d.ts.map +1 -0
  346. package/dist/doctor/checks/sessions.js +86 -0
  347. package/dist/doctor/checks/sessions.js.map +1 -0
  348. package/dist/doctor/doctor.d.ts +35 -0
  349. package/dist/doctor/doctor.d.ts.map +1 -0
  350. package/dist/doctor/doctor.js +51 -0
  351. package/dist/doctor/doctor.js.map +1 -0
  352. package/dist/doctor/repairs.d.ts +14 -0
  353. package/dist/doctor/repairs.d.ts.map +1 -0
  354. package/dist/doctor/repairs.js +34 -0
  355. package/dist/doctor/repairs.js.map +1 -0
  356. package/dist/gateway/compaction.d.ts +63 -0
  357. package/dist/gateway/compaction.d.ts.map +1 -0
  358. package/dist/gateway/compaction.js +235 -0
  359. package/dist/gateway/compaction.js.map +1 -0
  360. package/dist/gateway/gateway.d.ts +94 -0
  361. package/dist/gateway/gateway.d.ts.map +1 -0
  362. package/dist/gateway/gateway.js +466 -0
  363. package/dist/gateway/gateway.js.map +1 -0
  364. package/dist/gateway/lock.d.ts +24 -0
  365. package/dist/gateway/lock.d.ts.map +1 -0
  366. package/dist/gateway/lock.js +88 -0
  367. package/dist/gateway/lock.js.map +1 -0
  368. package/dist/gateway/protocol.d.ts +117 -0
  369. package/dist/gateway/protocol.d.ts.map +1 -0
  370. package/dist/gateway/protocol.js +5 -0
  371. package/dist/gateway/protocol.js.map +1 -0
  372. package/dist/gateway/session.d.ts +123 -0
  373. package/dist/gateway/session.d.ts.map +1 -0
  374. package/dist/gateway/session.js +573 -0
  375. package/dist/gateway/session.js.map +1 -0
  376. package/dist/hooks/hooks.d.ts +18 -0
  377. package/dist/hooks/hooks.d.ts.map +1 -0
  378. package/dist/hooks/hooks.js +45 -0
  379. package/dist/hooks/hooks.js.map +1 -0
  380. package/dist/hooks/types.d.ts +112 -0
  381. package/dist/hooks/types.d.ts.map +1 -0
  382. package/dist/hooks/types.js +23 -0
  383. package/dist/hooks/types.js.map +1 -0
  384. package/dist/index.d.ts +27 -0
  385. package/dist/index.d.ts.map +1 -0
  386. package/dist/index.js +2900 -0
  387. package/dist/index.js.map +1 -0
  388. package/dist/media/storage.d.ts +25 -0
  389. package/dist/media/storage.d.ts.map +1 -0
  390. package/dist/media/storage.js +97 -0
  391. package/dist/media/storage.js.map +1 -0
  392. package/dist/memory/embeddings.d.ts +46 -0
  393. package/dist/memory/embeddings.d.ts.map +1 -0
  394. package/dist/memory/embeddings.js +118 -0
  395. package/dist/memory/embeddings.js.map +1 -0
  396. package/dist/memory/hybrid.d.ts +35 -0
  397. package/dist/memory/hybrid.d.ts.map +1 -0
  398. package/dist/memory/hybrid.js +156 -0
  399. package/dist/memory/hybrid.js.map +1 -0
  400. package/dist/memory/markdown.d.ts +48 -0
  401. package/dist/memory/markdown.d.ts.map +1 -0
  402. package/dist/memory/markdown.js +228 -0
  403. package/dist/memory/markdown.js.map +1 -0
  404. package/dist/memory/store.d.ts +88 -0
  405. package/dist/memory/store.d.ts.map +1 -0
  406. package/dist/memory/store.js +21 -0
  407. package/dist/memory/store.js.map +1 -0
  408. package/dist/memory/vector.d.ts +24 -0
  409. package/dist/memory/vector.d.ts.map +1 -0
  410. package/dist/memory/vector.js +63 -0
  411. package/dist/memory/vector.js.map +1 -0
  412. package/dist/mods/mod.d.ts +100 -0
  413. package/dist/mods/mod.d.ts.map +1 -0
  414. package/dist/mods/mod.js +242 -0
  415. package/dist/mods/mod.js.map +1 -0
  416. package/dist/onboard/channels.d.ts +12 -0
  417. package/dist/onboard/channels.d.ts.map +1 -0
  418. package/dist/onboard/channels.js +283 -0
  419. package/dist/onboard/channels.js.map +1 -0
  420. package/dist/onboard/models.d.ts +13 -0
  421. package/dist/onboard/models.d.ts.map +1 -0
  422. package/dist/onboard/models.js +491 -0
  423. package/dist/onboard/models.js.map +1 -0
  424. package/dist/onboard/onboard.d.ts +12 -0
  425. package/dist/onboard/onboard.d.ts.map +1 -0
  426. package/dist/onboard/onboard.js +1137 -0
  427. package/dist/onboard/onboard.js.map +1 -0
  428. package/dist/providers/anthropic.d.ts +83 -0
  429. package/dist/providers/anthropic.d.ts.map +1 -0
  430. package/dist/providers/anthropic.js +583 -0
  431. package/dist/providers/anthropic.js.map +1 -0
  432. package/dist/providers/failover.d.ts +46 -0
  433. package/dist/providers/failover.d.ts.map +1 -0
  434. package/dist/providers/failover.js +149 -0
  435. package/dist/providers/failover.js.map +1 -0
  436. package/dist/providers/litellm.d.ts +38 -0
  437. package/dist/providers/litellm.d.ts.map +1 -0
  438. package/dist/providers/litellm.js +349 -0
  439. package/dist/providers/litellm.js.map +1 -0
  440. package/dist/providers/openai.d.ts +28 -0
  441. package/dist/providers/openai.d.ts.map +1 -0
  442. package/dist/providers/openai.js +321 -0
  443. package/dist/providers/openai.js.map +1 -0
  444. package/dist/providers/prompt-cache.d.ts +50 -0
  445. package/dist/providers/prompt-cache.d.ts.map +1 -0
  446. package/dist/providers/prompt-cache.js +96 -0
  447. package/dist/providers/prompt-cache.js.map +1 -0
  448. package/dist/providers/provider.d.ts +173 -0
  449. package/dist/providers/provider.d.ts.map +1 -0
  450. package/dist/providers/provider.js +22 -0
  451. package/dist/providers/provider.js.map +1 -0
  452. package/dist/sandbox/config.d.ts +42 -0
  453. package/dist/sandbox/config.d.ts.map +1 -0
  454. package/dist/sandbox/config.js +20 -0
  455. package/dist/sandbox/config.js.map +1 -0
  456. package/dist/sandbox/container.d.ts +71 -0
  457. package/dist/sandbox/container.d.ts.map +1 -0
  458. package/dist/sandbox/container.js +193 -0
  459. package/dist/sandbox/container.js.map +1 -0
  460. package/dist/sandbox/sandbox.d.ts +82 -0
  461. package/dist/sandbox/sandbox.d.ts.map +1 -0
  462. package/dist/sandbox/sandbox.js +176 -0
  463. package/dist/sandbox/sandbox.js.map +1 -0
  464. package/dist/skills/channel-loader.d.ts +18 -0
  465. package/dist/skills/channel-loader.d.ts.map +1 -0
  466. package/dist/skills/channel-loader.js +35 -0
  467. package/dist/skills/channel-loader.js.map +1 -0
  468. package/dist/skills/extension-loader.d.ts +15 -0
  469. package/dist/skills/extension-loader.d.ts.map +1 -0
  470. package/dist/skills/extension-loader.js +63 -0
  471. package/dist/skills/extension-loader.js.map +1 -0
  472. package/dist/skills/extension-registry.d.ts +32 -0
  473. package/dist/skills/extension-registry.d.ts.map +1 -0
  474. package/dist/skills/extension-registry.js +57 -0
  475. package/dist/skills/extension-registry.js.map +1 -0
  476. package/dist/skills/extensions.d.ts +91 -0
  477. package/dist/skills/extensions.d.ts.map +1 -0
  478. package/dist/skills/extensions.js +14 -0
  479. package/dist/skills/extensions.js.map +1 -0
  480. package/dist/skills/loader.d.ts +64 -0
  481. package/dist/skills/loader.d.ts.map +1 -0
  482. package/dist/skills/loader.js +382 -0
  483. package/dist/skills/loader.js.map +1 -0
  484. package/dist/skills/marketplace.d.ts +56 -0
  485. package/dist/skills/marketplace.d.ts.map +1 -0
  486. package/dist/skills/marketplace.js +183 -0
  487. package/dist/skills/marketplace.js.map +1 -0
  488. package/dist/skills/types.d.ts +94 -0
  489. package/dist/skills/types.d.ts.map +1 -0
  490. package/dist/skills/types.js +9 -0
  491. package/dist/skills/types.js.map +1 -0
  492. package/dist/tools/acp-sessions.d.ts +89 -0
  493. package/dist/tools/acp-sessions.d.ts.map +1 -0
  494. package/dist/tools/acp-sessions.js +391 -0
  495. package/dist/tools/acp-sessions.js.map +1 -0
  496. package/dist/tools/acp.d.ts +18 -0
  497. package/dist/tools/acp.d.ts.map +1 -0
  498. package/dist/tools/acp.js +102 -0
  499. package/dist/tools/acp.js.map +1 -0
  500. package/dist/tools/agent-tools.d.ts +24 -0
  501. package/dist/tools/agent-tools.d.ts.map +1 -0
  502. package/dist/tools/agent-tools.js +611 -0
  503. package/dist/tools/agent-tools.js.map +1 -0
  504. package/dist/tools/browser.d.ts +26 -0
  505. package/dist/tools/browser.d.ts.map +1 -0
  506. package/dist/tools/browser.js +242 -0
  507. package/dist/tools/browser.js.map +1 -0
  508. package/dist/tools/comms.d.ts +8 -0
  509. package/dist/tools/comms.d.ts.map +1 -0
  510. package/dist/tools/comms.js +39 -0
  511. package/dist/tools/comms.js.map +1 -0
  512. package/dist/tools/cron-tools.d.ts +9 -0
  513. package/dist/tools/cron-tools.d.ts.map +1 -0
  514. package/dist/tools/cron-tools.js +117 -0
  515. package/dist/tools/cron-tools.js.map +1 -0
  516. package/dist/tools/exec-safety.d.ts +71 -0
  517. package/dist/tools/exec-safety.d.ts.map +1 -0
  518. package/dist/tools/exec-safety.js +141 -0
  519. package/dist/tools/exec-safety.js.map +1 -0
  520. package/dist/tools/exec.d.ts +24 -0
  521. package/dist/tools/exec.d.ts.map +1 -0
  522. package/dist/tools/exec.js +191 -0
  523. package/dist/tools/exec.js.map +1 -0
  524. package/dist/tools/fs.d.ts +15 -0
  525. package/dist/tools/fs.d.ts.map +1 -0
  526. package/dist/tools/fs.js +249 -0
  527. package/dist/tools/fs.js.map +1 -0
  528. package/dist/tools/git.d.ts +9 -0
  529. package/dist/tools/git.d.ts.map +1 -0
  530. package/dist/tools/git.js +56 -0
  531. package/dist/tools/git.js.map +1 -0
  532. package/dist/tools/image.d.ts +15 -0
  533. package/dist/tools/image.d.ts.map +1 -0
  534. package/dist/tools/image.js +106 -0
  535. package/dist/tools/image.js.map +1 -0
  536. package/dist/tools/introspect.d.ts +22 -0
  537. package/dist/tools/introspect.d.ts.map +1 -0
  538. package/dist/tools/introspect.js +223 -0
  539. package/dist/tools/introspect.js.map +1 -0
  540. package/dist/tools/memory.d.ts +11 -0
  541. package/dist/tools/memory.d.ts.map +1 -0
  542. package/dist/tools/memory.js +101 -0
  543. package/dist/tools/memory.js.map +1 -0
  544. package/dist/tools/message.d.ts +24 -0
  545. package/dist/tools/message.d.ts.map +1 -0
  546. package/dist/tools/message.js +205 -0
  547. package/dist/tools/message.js.map +1 -0
  548. package/dist/tools/model.d.ts +14 -0
  549. package/dist/tools/model.d.ts.map +1 -0
  550. package/dist/tools/model.js +62 -0
  551. package/dist/tools/model.js.map +1 -0
  552. package/dist/tools/policy.d.ts +101 -0
  553. package/dist/tools/policy.d.ts.map +1 -0
  554. package/dist/tools/policy.js +168 -0
  555. package/dist/tools/policy.js.map +1 -0
  556. package/dist/tools/registry.d.ts +52 -0
  557. package/dist/tools/registry.d.ts.map +1 -0
  558. package/dist/tools/registry.js +154 -0
  559. package/dist/tools/registry.js.map +1 -0
  560. package/dist/tools/search.d.ts +10 -0
  561. package/dist/tools/search.d.ts.map +1 -0
  562. package/dist/tools/search.js +78 -0
  563. package/dist/tools/search.js.map +1 -0
  564. package/dist/tools/session.d.ts +13 -0
  565. package/dist/tools/session.d.ts.map +1 -0
  566. package/dist/tools/session.js +142 -0
  567. package/dist/tools/session.js.map +1 -0
  568. package/dist/tools/spawn.d.ts +10 -0
  569. package/dist/tools/spawn.d.ts.map +1 -0
  570. package/dist/tools/spawn.js +72 -0
  571. package/dist/tools/spawn.js.map +1 -0
  572. package/dist/tools/symphony.d.ts +12 -0
  573. package/dist/tools/symphony.d.ts.map +1 -0
  574. package/dist/tools/symphony.js +142 -0
  575. package/dist/tools/symphony.js.map +1 -0
  576. package/dist/tools/system-tools.d.ts +11 -0
  577. package/dist/tools/system-tools.d.ts.map +1 -0
  578. package/dist/tools/system-tools.js +39 -0
  579. package/dist/tools/system-tools.js.map +1 -0
  580. package/dist/tools/tool.d.ts +119 -0
  581. package/dist/tools/tool.d.ts.map +1 -0
  582. package/dist/tools/tool.js +29 -0
  583. package/dist/tools/tool.js.map +1 -0
  584. package/dist/tools/web.d.ts +10 -0
  585. package/dist/tools/web.d.ts.map +1 -0
  586. package/dist/tools/web.js +105 -0
  587. package/dist/tools/web.js.map +1 -0
  588. package/dist/tui/App.d.ts +43 -0
  589. package/dist/tui/App.d.ts.map +1 -0
  590. package/dist/tui/App.js +265 -0
  591. package/dist/tui/App.js.map +1 -0
  592. package/dist/tui/bridge.d.ts +40 -0
  593. package/dist/tui/bridge.d.ts.map +1 -0
  594. package/dist/tui/bridge.js +29 -0
  595. package/dist/tui/bridge.js.map +1 -0
  596. package/dist/tui/components/Header.d.ts +14 -0
  597. package/dist/tui/components/Header.d.ts.map +1 -0
  598. package/dist/tui/components/Header.js +7 -0
  599. package/dist/tui/components/Header.js.map +1 -0
  600. package/dist/tui/components/InputBar.d.ts +10 -0
  601. package/dist/tui/components/InputBar.d.ts.map +1 -0
  602. package/dist/tui/components/InputBar.js +121 -0
  603. package/dist/tui/components/InputBar.js.map +1 -0
  604. package/dist/tui/components/MessageList.d.ts +18 -0
  605. package/dist/tui/components/MessageList.d.ts.map +1 -0
  606. package/dist/tui/components/MessageList.js +34 -0
  607. package/dist/tui/components/MessageList.js.map +1 -0
  608. package/dist/tui/components/Spinner.d.ts +9 -0
  609. package/dist/tui/components/Spinner.d.ts.map +1 -0
  610. package/dist/tui/components/Spinner.js +18 -0
  611. package/dist/tui/components/Spinner.js.map +1 -0
  612. package/dist/tui/components/StatusBar.d.ts +16 -0
  613. package/dist/tui/components/StatusBar.d.ts.map +1 -0
  614. package/dist/tui/components/StatusBar.js +15 -0
  615. package/dist/tui/components/StatusBar.js.map +1 -0
  616. package/dist/tui/components/ToolCallBox.d.ts +12 -0
  617. package/dist/tui/components/ToolCallBox.d.ts.map +1 -0
  618. package/dist/tui/components/ToolCallBox.js +12 -0
  619. package/dist/tui/components/ToolCallBox.js.map +1 -0
  620. package/dist/tui/theme.d.ts +58 -0
  621. package/dist/tui/theme.d.ts.map +1 -0
  622. package/dist/tui/theme.js +80 -0
  623. package/dist/tui/theme.js.map +1 -0
  624. package/dist/utils/logger.d.ts +16 -0
  625. package/dist/utils/logger.d.ts.map +1 -0
  626. package/dist/utils/logger.js +70 -0
  627. package/dist/utils/logger.js.map +1 -0
  628. package/docs/DEVELOPMENT.md +74 -0
  629. package/docs/INSTALL.md +161 -0
  630. package/docs/USAGE.md +94 -0
  631. package/docs/architecture.md +128 -0
  632. package/docs/channels.md +140 -0
  633. package/docs/configuration.md +209 -0
  634. package/docs/io-system.md +430 -0
  635. package/docs/providers.md +99 -0
  636. package/docs/skill-channels.md +113 -0
  637. package/docs/skills.md +246 -0
  638. package/package.json +89 -0
  639. package/skills/acp-router/SKILL.md +41 -0
  640. package/skills/acp-router/tools/acp-router.mjs +239 -0
  641. package/skills/find-skills/SKILL.md +133 -0
  642. package/skills/security-audit/SKILL.md +181 -0
  643. package/skills/security-audit/audit.sh +67 -0
  644. package/skills/skill-creator/SKILL.md +479 -0
  645. package/skills/skill-security-audit/.clawhub/origin.json +7 -0
  646. package/skills/skill-security-audit/SKILL.md +196 -0
  647. package/skills/skill-security-audit/_meta.json +6 -0
  648. package/skills/skill-security-audit/references/prompt-injection-patterns.md +276 -0
  649. package/skills/skill-security-audit/references/vulnerability-patterns.md +348 -0
  650. package/skills/symphony/README.md +53 -0
  651. package/skills/symphony/SKILL.md +75 -0
  652. package/skills/symphony/tools/symphony-orchestrator.ts +8 -0
  653. 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
@@ -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.