@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,18 @@
1
+ import { jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * Spinner — octopus-themed loading animation.
4
+ */
5
+ import { useState, useEffect } from 'react';
6
+ import { Text } from 'ink';
7
+ import { theme } from '../theme.js';
8
+ export const OctoSpinner = ({ label = 'thinking' }) => {
9
+ const [frame, setFrame] = useState(0);
10
+ useEffect(() => {
11
+ const timer = setInterval(() => {
12
+ setFrame((prev) => (prev + 1) % theme.spinnerFrames.length);
13
+ }, 120);
14
+ return () => clearInterval(timer);
15
+ }, []);
16
+ return (_jsxs(Text, { color: theme.thinking, children: [theme.spinnerFrames[frame], " ", label] }));
17
+ };
18
+ //# sourceMappingURL=Spinner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spinner.js","sourceRoot":"","sources":["../../../src/tui/components/Spinner.tsx"],"names":[],"mappings":";AAAA;;GAEG;AAEH,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAMpC,MAAM,CAAC,MAAM,WAAW,GAA+B,CAAC,EAAE,KAAK,GAAG,UAAU,EAAE,EAAE,EAAE;IAChF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEtC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC7B,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC9D,CAAC,EAAE,GAAG,CAAC,CAAC;QACR,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,aACxB,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,OAAG,KAAK,IAC9B,CACR,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * StatusBar — minimal bottom status indicator.
3
+ * Only shows token usage when available, otherwise hidden.
4
+ */
5
+ import React from 'react';
6
+ export interface StatusBarProps {
7
+ channel: string;
8
+ toolProfile: string;
9
+ memoryStatus: string;
10
+ tokenUsage?: {
11
+ input: number;
12
+ output: number;
13
+ };
14
+ }
15
+ export declare const StatusBar: React.FC<StatusBarProps>;
16
+ //# sourceMappingURL=StatusBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../../src/tui/components/StatusBar.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD;AAOD,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAY9C,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ import { theme } from '../theme.js';
4
+ const formatTokens = (n) => {
5
+ if (n >= 1000)
6
+ return `${(n / 1000).toFixed(1)}k`;
7
+ return `${n}`;
8
+ };
9
+ export const StatusBar = ({ tokenUsage }) => {
10
+ if (!tokenUsage || (tokenUsage.input === 0 && tokenUsage.output === 0)) {
11
+ return null;
12
+ }
13
+ return (_jsx(Box, { paddingX: 1, children: _jsxs(Text, { color: theme.textMuted, dimColor: true, children: [formatTokens(tokenUsage.input), "\u2191 ", formatTokens(tokenUsage.output), "\u2193"] }) }));
14
+ };
15
+ //# sourceMappingURL=StatusBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../../src/tui/components/StatusBar.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AASpC,MAAM,YAAY,GAAG,CAAC,CAAS,EAAU,EAAE;IACzC,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAClD,OAAO,GAAG,CAAC,EAAE,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAA6B,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;IACpE,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QACvE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,YACd,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,mBACnC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,aAAI,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,cAC7D,GACH,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * ToolCallBox — boxed display for tool invocations and results.
3
+ */
4
+ import React from 'react';
5
+ export interface ToolCallBoxProps {
6
+ toolName: string;
7
+ params?: Record<string, unknown>;
8
+ result?: string;
9
+ status?: 'running' | 'success' | 'error';
10
+ }
11
+ export declare const ToolCallBox: React.FC<ToolCallBoxProps>;
12
+ //# sourceMappingURL=ToolCallBox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolCallBox.d.ts","sourceRoot":"","sources":["../../../src/tui/components/ToolCallBox.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;CAC1C;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA4ClD,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ import { theme } from '../theme.js';
4
+ export const ToolCallBox = ({ toolName, params, result, status = 'success', }) => {
5
+ const statusIcon = status === 'running' ? theme.icons.toolRun : status === 'success' ? theme.icons.toolOk : theme.icons.toolErr;
6
+ const statusColor = status === 'running' ? theme.thinking : status === 'success' ? theme.success : theme.error;
7
+ const borderColor = status === 'error' ? theme.error : theme.ocean;
8
+ return (_jsxs(Box, { flexDirection: "column", paddingX: 1, marginX: 2, marginY: 0, children: [_jsxs(Box, { children: [_jsxs(Text, { color: statusColor, children: [statusIcon, " "] }), _jsxs(Text, { color: theme.toolCall, bold: true, children: [theme.icons.tool, " ", toolName] })] }), params && Object.keys(params).length > 0 && (_jsx(Box, { paddingLeft: 2, children: _jsx(Text, { color: theme.textMuted, dimColor: true, children: Object.entries(params)
9
+ .map(([k, v]) => `${k}: ${typeof v === 'string' ? v : JSON.stringify(v)}`)
10
+ .join(', ') }) })), result && (_jsx(Box, { paddingLeft: 2, marginTop: 0, children: _jsx(Text, { color: theme.toolResult, children: result.length > 200 ? result.slice(0, 200) + '…' : result }) }))] }));
11
+ };
12
+ //# sourceMappingURL=ToolCallBox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolCallBox.js","sourceRoot":"","sources":["../../../src/tui/components/ToolCallBox.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AASpC,MAAM,CAAC,MAAM,WAAW,GAA+B,CAAC,EACtD,QAAQ,EACR,MAAM,EACN,MAAM,EACN,MAAM,GAAG,SAAS,GACnB,EAAE,EAAE;IACH,MAAM,UAAU,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;IAChI,MAAM,WAAW,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;IAC/G,MAAM,WAAW,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;IAEnE,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,CAAC,EACV,OAAO,EAAE,CAAC,aAGV,MAAC,GAAG,eACF,MAAC,IAAI,IAAC,KAAK,EAAE,WAAW,aAAG,UAAU,SAAS,EAC9C,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,mBAAE,KAAK,CAAC,KAAK,CAAC,IAAI,OAAG,QAAQ,IAAQ,IAClE,EAGL,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAC3C,KAAC,GAAG,IAAC,WAAW,EAAE,CAAC,YACjB,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,kBACnC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;yBACpB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;yBACzE,IAAI,CAAC,IAAI,CAAC,GACR,GACH,CACP,EAGA,MAAM,IAAI,CACT,KAAC,GAAG,IAAC,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,YAC/B,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,UAAU,YAC1B,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,GACrD,GACH,CACP,IACG,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Tako 🐙 Ocean Theme
3
+ *
4
+ * Color palette inspired by the deep ocean — where octopi thrive.
5
+ */
6
+ export declare const theme: {
7
+ readonly deepBlue: "#0d1b2a";
8
+ readonly navy: "#1b2838";
9
+ readonly ocean: "#1e3a5f";
10
+ readonly teal: "#0f969c";
11
+ readonly cyan: "#00d4aa";
12
+ readonly aqua: "#72efdd";
13
+ readonly coral: "#ff6b6b";
14
+ readonly orange: "#ffa07a";
15
+ readonly purple: "#a855f7";
16
+ readonly lavender: "#c084fc";
17
+ readonly gold: "#fbbf24";
18
+ readonly textPrimary: "#e0f2fe";
19
+ readonly textSecondary: "#94a3b8";
20
+ readonly textMuted: "#64748b";
21
+ readonly textBright: "#f0f9ff";
22
+ readonly userMsg: "#38bdf8";
23
+ readonly agentMsg: "#00d4aa";
24
+ readonly toolCall: "#ffa07a";
25
+ readonly toolResult: "#94a3b8";
26
+ readonly thinking: "#a855f7";
27
+ readonly error: "#ff6b6b";
28
+ readonly success: "#00d4aa";
29
+ readonly warning: "#fbbf24";
30
+ readonly gradient: readonly ["#0f969c", "#00d4aa", "#72efdd", "#38bdf8", "#a855f7"];
31
+ readonly border: {
32
+ readonly topLeft: "◼";
33
+ readonly topRight: "◼";
34
+ readonly bottomLeft: "◼";
35
+ readonly bottomRight: "◼";
36
+ readonly horizontal: "░";
37
+ readonly vertical: "▌";
38
+ readonly teeRight: "▐";
39
+ readonly teeLeft: "▌";
40
+ };
41
+ readonly icons: {
42
+ readonly agent: "◉‿◉";
43
+ readonly user: "◕‿◕";
44
+ readonly tool: "[:::]";
45
+ readonly toolRun: "[⊛]";
46
+ readonly toolOk: "[✓]";
47
+ readonly toolErr: "[✗]";
48
+ readonly thinking: "◉_◉";
49
+ readonly system: "[!]";
50
+ readonly channel: "(~)";
51
+ readonly memory: "{m}";
52
+ readonly wrench: "{t}";
53
+ };
54
+ readonly promptFrames: readonly ["◉‿◉ >", "◉◡◉ >", "◉‿◉ >", "◉◡◉ >"];
55
+ readonly spinnerFrames: readonly ["◉_◉ ~", "◉‿◉ ~", "◉_◉ ~", "◉‿◉ ~", "◉_◉ ~", "◉◡◉~", "◉_◉ ~", "◉‿◉ ~"];
56
+ };
57
+ export type Theme = typeof theme;
58
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/tui/theme.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiFR,CAAC;AAEX,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Tako 🐙 Ocean Theme
3
+ *
4
+ * Color palette inspired by the deep ocean — where octopi thrive.
5
+ */
6
+ export const theme = {
7
+ // ── Primary colors ──────────────────────────────────────────
8
+ deepBlue: '#0d1b2a', // Background / darkest
9
+ navy: '#1b2838', // Panel backgrounds
10
+ ocean: '#1e3a5f', // Borders, separators
11
+ teal: '#0f969c', // Primary accent
12
+ cyan: '#00d4aa', // Success, active states
13
+ aqua: '#72efdd', // Highlights
14
+ // ── Accent colors ──────────────────────────────────────────
15
+ coral: '#ff6b6b', // Errors, warnings
16
+ orange: '#ffa07a', // Caution, tool calls
17
+ purple: '#a855f7', // Emphasis, thinking
18
+ lavender: '#c084fc', // Secondary emphasis
19
+ gold: '#fbbf24', // Important, stars
20
+ // ── Text colors ─────────────────────────────────────────────
21
+ textPrimary: '#e0f2fe', // Main text (light blue-white)
22
+ textSecondary: '#94a3b8', // Dimmed text
23
+ textMuted: '#64748b', // Very dimmed
24
+ textBright: '#f0f9ff', // Bright white-blue
25
+ // ── Semantic ────────────────────────────────────────────────
26
+ userMsg: '#38bdf8', // User message color (sky blue)
27
+ agentMsg: '#00d4aa', // Agent message color (cyan-green)
28
+ toolCall: '#ffa07a', // Tool call color (orange)
29
+ toolResult: '#94a3b8', // Tool result color (muted)
30
+ thinking: '#a855f7', // Thinking indicator (purple)
31
+ error: '#ff6b6b', // Error color (coral)
32
+ success: '#00d4aa', // Success color (cyan)
33
+ warning: '#fbbf24', // Warning color (gold)
34
+ // ── Gradient stops for header ───────────────────────────────
35
+ gradient: ['#0f969c', '#00d4aa', '#72efdd', '#38bdf8', '#a855f7'],
36
+ // ── Pixel block separators ──────────────────────────────────
37
+ border: {
38
+ topLeft: '◼',
39
+ topRight: '◼',
40
+ bottomLeft: '◼',
41
+ bottomRight: '◼',
42
+ horizontal: '░',
43
+ vertical: '▌',
44
+ teeRight: '▐',
45
+ teeLeft: '▌',
46
+ },
47
+ // ── Cute pixel art icons ─────────────────────────────────
48
+ icons: {
49
+ agent: '◉‿◉', // Cute tako face — agent messages
50
+ user: '◕‿◕', // Small human face — user messages
51
+ tool: '[:::]', // Gear/cog — tool calls
52
+ toolRun: '[⊛]', // Running tool
53
+ toolOk: '[✓]', // Done tool
54
+ toolErr: '[✗]', // Error tool
55
+ thinking: '◉_◉', // Tako thinking face
56
+ system: '[!]', // System messages
57
+ channel: '(~)', // Channel/radio
58
+ memory: '{m}', // Memory
59
+ wrench: '{t}', // Tool profile
60
+ },
61
+ // ── Animated tako prompt frames (blinking/wiggling) ────────
62
+ promptFrames: [
63
+ '◉‿◉ >', // Idle smile
64
+ '◉◡◉ >', // Blink
65
+ '◉‿◉ >', // Idle smile
66
+ '◉◡◉ >', // Blink
67
+ ],
68
+ // ── Thinking spinner frames (faster wiggle) ────────────────
69
+ spinnerFrames: [
70
+ '◉_◉ ~',
71
+ '◉‿◉ ~',
72
+ '◉_◉ ~',
73
+ '◉‿◉ ~',
74
+ '◉_◉ ~',
75
+ '◉◡◉~',
76
+ '◉_◉ ~',
77
+ '◉‿◉ ~',
78
+ ],
79
+ };
80
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/tui/theme.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,+DAA+D;IAC/D,QAAQ,EAAE,SAAS,EAAO,uBAAuB;IACjD,IAAI,EAAE,SAAS,EAAY,oBAAoB;IAC/C,KAAK,EAAE,SAAS,EAAW,sBAAsB;IACjD,IAAI,EAAE,SAAS,EAAY,iBAAiB;IAC5C,IAAI,EAAE,SAAS,EAAY,yBAAyB;IACpD,IAAI,EAAE,SAAS,EAAY,aAAa;IAExC,8DAA8D;IAC9D,KAAK,EAAE,SAAS,EAAW,mBAAmB;IAC9C,MAAM,EAAE,SAAS,EAAU,sBAAsB;IACjD,MAAM,EAAE,SAAS,EAAU,qBAAqB;IAChD,QAAQ,EAAE,SAAS,EAAQ,qBAAqB;IAChD,IAAI,EAAE,SAAS,EAAY,mBAAmB;IAE9C,+DAA+D;IAC/D,WAAW,EAAE,SAAS,EAAK,+BAA+B;IAC1D,aAAa,EAAE,SAAS,EAAG,cAAc;IACzC,SAAS,EAAE,SAAS,EAAO,cAAc;IACzC,UAAU,EAAE,SAAS,EAAM,oBAAoB;IAE/C,+DAA+D;IAC/D,OAAO,EAAE,SAAS,EAAS,gCAAgC;IAC3D,QAAQ,EAAE,SAAS,EAAQ,mCAAmC;IAC9D,QAAQ,EAAE,SAAS,EAAQ,2BAA2B;IACtD,UAAU,EAAE,SAAS,EAAM,4BAA4B;IACvD,QAAQ,EAAE,SAAS,EAAQ,8BAA8B;IACzD,KAAK,EAAE,SAAS,EAAW,sBAAsB;IACjD,OAAO,EAAE,SAAS,EAAS,uBAAuB;IAClD,OAAO,EAAE,SAAS,EAAS,uBAAuB;IAElD,+DAA+D;IAC/D,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IAEjE,+DAA+D;IAC/D,MAAM,EAAE;QACN,OAAO,EAAE,GAAG;QACZ,QAAQ,EAAE,GAAG;QACb,UAAU,EAAE,GAAG;QACf,WAAW,EAAE,GAAG;QAChB,UAAU,EAAE,GAAG;QACf,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,OAAO,EAAE,GAAG;KACb;IAED,4DAA4D;IAC5D,KAAK,EAAE;QACL,KAAK,EAAE,KAAK,EAAY,kCAAkC;QAC1D,IAAI,EAAE,KAAK,EAAa,mCAAmC;QAC3D,IAAI,EAAE,OAAO,EAAW,wBAAwB;QAChD,OAAO,EAAE,KAAK,EAAU,eAAe;QACvC,MAAM,EAAE,KAAK,EAAW,YAAY;QACpC,OAAO,EAAE,KAAK,EAAU,aAAa;QACrC,QAAQ,EAAE,KAAK,EAAS,qBAAqB;QAC7C,MAAM,EAAE,KAAK,EAAW,kBAAkB;QAC1C,OAAO,EAAE,KAAK,EAAU,gBAAgB;QACxC,MAAM,EAAE,KAAK,EAAW,SAAS;QACjC,MAAM,EAAE,KAAK,EAAW,eAAe;KACxC;IAED,8DAA8D;IAC9D,YAAY,EAAE;QACZ,OAAO,EAAgB,aAAa;QACpC,OAAO,EAAgB,QAAQ;QAC/B,OAAO,EAAgB,aAAa;QACpC,OAAO,EAAgB,QAAQ;KAChC;IAED,8DAA8D;IAC9D,aAAa,EAAE;QACb,OAAO;QACP,QAAQ;QACR,SAAS;QACT,QAAQ;QACR,OAAO;QACP,MAAM;QACN,OAAO;QACP,QAAQ;KACT;CACO,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * File logger — wraps console.log/error/warn and appends to a daily log file.
3
+ *
4
+ * Log files are written to: ~/.tako/logs/tako-YYYY-MM-DD.log
5
+ * Each line is prefixed with an ISO timestamp and level.
6
+ */
7
+ /**
8
+ * Install the file logger — patches console.log/error/warn to also
9
+ * write to the daily log file. Call once at startup.
10
+ */
11
+ export declare function installFileLogger(): void;
12
+ /** Return the absolute directory where logs are stored. */
13
+ export declare function getLogDir(): string;
14
+ /** Return the log file path for a specific date. */
15
+ export declare function getLogPath(date?: Date): string;
16
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA8CH;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAexC;AAED,2DAA2D;AAC3D,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,oDAAoD;AACpD,wBAAgB,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,CAE9C"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * File logger — wraps console.log/error/warn and appends to a daily log file.
3
+ *
4
+ * Log files are written to: ~/.tako/logs/tako-YYYY-MM-DD.log
5
+ * Each line is prefixed with an ISO timestamp and level.
6
+ */
7
+ import { appendFile, mkdir } from 'node:fs/promises';
8
+ import { join } from 'node:path';
9
+ import { homedir } from 'node:os';
10
+ const LOG_DIR = join(homedir(), '.tako', 'logs');
11
+ /** Format a Date as YYYY-MM-DD. */
12
+ function dateStamp(d = new Date()) {
13
+ return d.toISOString().slice(0, 10);
14
+ }
15
+ /** Get the log file path for a given date. */
16
+ function logPath(date) {
17
+ return join(LOG_DIR, `tako-${dateStamp(date)}.log`);
18
+ }
19
+ let dirReady = false;
20
+ async function ensureDir() {
21
+ if (dirReady)
22
+ return;
23
+ await mkdir(LOG_DIR, { recursive: true });
24
+ dirReady = true;
25
+ }
26
+ /** Append a single line to the daily log file. */
27
+ async function writeLine(level, args) {
28
+ try {
29
+ await ensureDir();
30
+ const ts = new Date().toISOString();
31
+ const text = args
32
+ .map((a) => (typeof a === 'string' ? a : JSON.stringify(a)))
33
+ .join(' ');
34
+ await appendFile(logPath(), `${ts} [${level}] ${text}\n`, 'utf-8');
35
+ }
36
+ catch {
37
+ // Silently swallow file errors — never break the app due to logging
38
+ }
39
+ }
40
+ // ─── Original console methods (saved before patching) ──────────────
41
+ const origLog = console.log.bind(console);
42
+ const origError = console.error.bind(console);
43
+ const origWarn = console.warn.bind(console);
44
+ /**
45
+ * Install the file logger — patches console.log/error/warn to also
46
+ * write to the daily log file. Call once at startup.
47
+ */
48
+ export function installFileLogger() {
49
+ console.log = (...args) => {
50
+ origLog(...args);
51
+ writeLine('INFO', args);
52
+ };
53
+ console.error = (...args) => {
54
+ origError(...args);
55
+ writeLine('ERROR', args);
56
+ };
57
+ console.warn = (...args) => {
58
+ origWarn(...args);
59
+ writeLine('WARN', args);
60
+ };
61
+ }
62
+ /** Return the absolute directory where logs are stored. */
63
+ export function getLogDir() {
64
+ return LOG_DIR;
65
+ }
66
+ /** Return the log file path for a specific date. */
67
+ export function getLogPath(date) {
68
+ return logPath(date);
69
+ }
70
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAEjD,mCAAmC;AACnC,SAAS,SAAS,CAAC,IAAU,IAAI,IAAI,EAAE;IACrC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,8CAA8C;AAC9C,SAAS,OAAO,CAAC,IAAW;IAC1B,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,IAAI,QAAQ,GAAG,KAAK,CAAC;AAErB,KAAK,UAAU,SAAS;IACtB,IAAI,QAAQ;QAAE,OAAO;IACrB,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,QAAQ,GAAG,IAAI,CAAC;AAClB,CAAC;AAED,kDAAkD;AAClD,KAAK,UAAU,SAAS,CAAC,KAAa,EAAE,IAAe;IACrD,IAAI,CAAC;QACH,MAAM,SAAS,EAAE,CAAC;QAClB,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI;aACd,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3D,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,MAAM,UAAU,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;IACtE,CAAC;AACH,CAAC;AAED,sEAAsE;AAEtE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAE5C;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,CAAC,GAAG,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;QACnC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QACjB,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;QACrC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;QACnB,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEF,OAAO,CAAC,IAAI,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;QACpC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QAClB,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC;AACJ,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,SAAS;IACvB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,UAAU,CAAC,IAAW;IACpC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC"}
@@ -0,0 +1,74 @@
1
+ # Development Guide
2
+
3
+ ## Prerequisites
4
+
5
+ - Node.js >= 20
6
+ - npm
7
+ - Bun (recommended for local dev speed)
8
+
9
+ ## Setup
10
+
11
+ ```bash
12
+ git clone https://github.com/shuyhere/tako.git
13
+ cd tako
14
+ npm install
15
+ ```
16
+
17
+ ## Development commands
18
+
19
+ ```bash
20
+ npm run build # compile TypeScript
21
+ npm run dev # TypeScript watch build
22
+ npm run typecheck # static type check
23
+ npm test # run tests (bun)
24
+ npm run test:node # run tests on node test runner
25
+ npm run check # build + typecheck + tests
26
+ ```
27
+
28
+ ## Running locally
29
+
30
+ ```bash
31
+ npm run start
32
+ # or
33
+ bun run src/index.ts start
34
+ ```
35
+
36
+ Daemon mode:
37
+
38
+ ```bash
39
+ bun run src/index.ts start -d
40
+ bun run src/index.ts status
41
+ ```
42
+
43
+ ## Packaging sanity check
44
+
45
+ Before release:
46
+
47
+ ```bash
48
+ npm run build
49
+ npm pack --dry-run
50
+ ```
51
+
52
+ Confirm tarball contains expected files:
53
+
54
+ - `dist/`
55
+ - `skills/`
56
+ - `docs/`
57
+ - `README.md`
58
+ - `LICENSE`
59
+ - `tako.example.json`
60
+
61
+ ## Recommended release checklist
62
+
63
+ 1. update version
64
+ 2. run `npm run check`
65
+ 3. run `npm pack --dry-run`
66
+ 4. test install tarball in clean dir
67
+ 5. publish
68
+
69
+ ## Architecture references
70
+
71
+ - `ARCHITECTURE.md`
72
+ - `src/index.ts` (runtime composition)
73
+ - `src/gateway/` (daemon/gateway/session control)
74
+ - `src/channels/`, `src/providers/`, `src/tools/`, `src/skills/`
@@ -0,0 +1,161 @@
1
+ # Install Guide
2
+
3
+ This guide covers production and local installation for Tako.
4
+
5
+ ## Requirements
6
+
7
+ - Node.js >= 20
8
+ - npm >= 9
9
+ - (Optional) Bun >= 1.0
10
+ - Git
11
+
12
+ ## 0) Environment setup (for users)
13
+
14
+ ### Ubuntu / Debian
15
+
16
+ ```bash
17
+ sudo apt update
18
+ sudo apt install -y curl git build-essential
19
+ curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
20
+ sudo apt install -y nodejs
21
+ ```
22
+
23
+ Optional Bun:
24
+
25
+ ```bash
26
+ curl -fsSL https://bun.sh/install | bash
27
+ ```
28
+
29
+ ### macOS
30
+
31
+ ```bash
32
+ brew install node git
33
+ # optional
34
+ brew install oven-sh/bun/bun
35
+ ```
36
+
37
+ Check versions:
38
+
39
+ ```bash
40
+ node -v
41
+ npm -v
42
+ git --version
43
+ ```
44
+
45
+ ## 1) Install package
46
+
47
+ ### npm
48
+
49
+ ```bash
50
+ npm install -g @shuyhere/takotako
51
+ ```
52
+
53
+ ### Bun
54
+
55
+ ```bash
56
+ bun add -g @shuyhere/takotako
57
+ ```
58
+
59
+ ### GitHub source fallback
60
+
61
+ ```bash
62
+ npm install -g github:shuyhere/tako
63
+ ```
64
+
65
+ Verify:
66
+
67
+ ```bash
68
+ tako --help
69
+ ```
70
+
71
+ ## 2) First-time setup
72
+
73
+ Run onboarding wizard:
74
+
75
+ ```bash
76
+ tako onboard
77
+ ```
78
+
79
+ What it configures:
80
+
81
+ - provider auth (Anthropic/OpenAI/LiteLLM)
82
+ - primary model
83
+ - optional channels (Discord/Telegram)
84
+ - writes config to `~/.tako/tako.json`
85
+
86
+ ### Optional environment variables
87
+
88
+ You can configure through `tako onboard`, or set env vars directly:
89
+
90
+ ```bash
91
+ export ANTHROPIC_API_KEY="..."
92
+ export OPENAI_API_KEY="..."
93
+ export DISCORD_TOKEN="..."
94
+ export TELEGRAM_TOKEN="..."
95
+ ```
96
+
97
+ Persist these in your shell profile (`~/.bashrc`, `~/.zshrc`) if needed.
98
+
99
+ ## 3) Start runtime
100
+
101
+ Foreground:
102
+
103
+ ```bash
104
+ tako start
105
+ ```
106
+
107
+ Daemon:
108
+
109
+ ```bash
110
+ tako start -d
111
+ tako status
112
+ tako tui
113
+ ```
114
+
115
+ ## 4) Optional channel setup
116
+
117
+ ### Discord
118
+
119
+ - Create bot in Discord Developer Portal
120
+ - Enable required intents (message content, guilds, DMs)
121
+ - Put bot token into `~/.tako/tako.json` under `channels.discord.token`
122
+ - Restart Tako
123
+
124
+ ### Telegram
125
+
126
+ - Create bot via BotFather
127
+ - Put token into `~/.tako/tako.json` under `channels.telegram.token`
128
+ - Restart Tako
129
+
130
+ ## 5) Health check
131
+
132
+ ```bash
133
+ tako doctor
134
+ tako status
135
+ ```
136
+
137
+ ## Upgrade
138
+
139
+ ```bash
140
+ npm install -g @shuyhere/takotako
141
+ # or pre-publish fallback:
142
+ # npm install -g github:shuyhere/tako
143
+ ```
144
+
145
+ Then restart:
146
+
147
+ ```bash
148
+ tako restart
149
+ ```
150
+
151
+ ## Uninstall
152
+
153
+ ```bash
154
+ npm uninstall -g @shuyhere/takotako
155
+ ```
156
+
157
+ Optional cleanup (local state/config):
158
+
159
+ ```bash
160
+ rm -rf ~/.tako
161
+ ```
package/docs/USAGE.md ADDED
@@ -0,0 +1,94 @@
1
+ # Usage Guide
2
+
3
+ ## Core lifecycle commands
4
+
5
+ ```bash
6
+ tako start # run in foreground
7
+ tako start -d # run as daemon
8
+ tako status # runtime status
9
+ tako tui # attach TUI to daemon
10
+ tako stop # stop daemon
11
+ tako restart # restart daemon
12
+ ```
13
+
14
+ ## Setup and diagnostics
15
+
16
+ ```bash
17
+ tako onboard # setup wizard
18
+ tako doctor # system diagnostics
19
+ ```
20
+
21
+ ## Model management
22
+
23
+ ```bash
24
+ tako models list
25
+ tako models auth login --provider anthropic
26
+ tako models auth login --provider openai
27
+ ```
28
+
29
+ ## In-chat slash commands
30
+
31
+ Built-ins usually include:
32
+
33
+ - `/help`
34
+ - `/status`
35
+ - `/new`
36
+ - `/compact`
37
+ - `/model`
38
+ - `/agents`
39
+ - `/whoami`
40
+ - `/queue`
41
+ - `/usage`
42
+
43
+ Additional slash commands can come from installed skills.
44
+
45
+ ## Tool profiles
46
+
47
+ Configure in `~/.tako/tako.json`:
48
+
49
+ - `minimal` — essential local tools
50
+ - `coding` — adds search/git/memory workflows
51
+ - `full` — all enabled tool groups
52
+
53
+ ## Sessions and memory
54
+
55
+ - sessions are persisted under `~/.tako/agents/<agent>/sessions`
56
+ - memory workspace defaults to `~/.tako/workspace`
57
+ - auto-compaction can be configured in `session.compaction`
58
+
59
+ ## Common workflows
60
+
61
+ ### Quick local assistant
62
+
63
+ ```bash
64
+ tako start
65
+ ```
66
+
67
+ Use in CLI and stop with `Ctrl+C`.
68
+
69
+ ### Always-on daemon + channels
70
+
71
+ ```bash
72
+ tako start -d
73
+ tako status
74
+ tako tui
75
+ ```
76
+
77
+ Configure Discord/Telegram in `tako.json`, then restart.
78
+
79
+ ### Skill development iteration
80
+
81
+ - add/update `skills/<name>/SKILL.md`
82
+ - optional tool files in `skills/<name>/tools/`
83
+ - save files; skills can be reloaded without full rebuild in most flows
84
+
85
+ ## Troubleshooting
86
+
87
+ ```bash
88
+ tako doctor
89
+ tako status
90
+ ```
91
+
92
+ Check logs in:
93
+
94
+ - `~/.tako/logs/`