enya-agent 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (389) hide show
  1. package/.env.example +20 -0
  2. package/.github/workflows/ci.yml +70 -0
  3. package/.github/workflows/publish.yml +250 -0
  4. package/.gitmodules +3 -0
  5. package/Cargo.lock +3584 -0
  6. package/Cargo.toml +97 -0
  7. package/crates/enact/Cargo.toml +27 -0
  8. package/crates/enact/src/lib.rs +60 -0
  9. package/crates/enact-a2a/Cargo.toml +25 -0
  10. package/crates/enact-a2a/src/lib.rs +411 -0
  11. package/crates/enact-channels/Cargo.toml +64 -0
  12. package/crates/enact-channels/examples/README.md +80 -0
  13. package/crates/enact-channels/examples/channel_bot.rs +169 -0
  14. package/crates/enact-channels/examples/telegram-echo.rs +34 -0
  15. package/crates/enact-channels/examples/whatsapp-echo.rs +142 -0
  16. package/crates/enact-channels/src/config.rs +213 -0
  17. package/crates/enact-channels/src/lib.rs +25 -0
  18. package/crates/enact-channels/src/runtime.rs +237 -0
  19. package/crates/enact-channels/src/security/mod.rs +5 -0
  20. package/crates/enact-channels/src/security/pairing.rs +205 -0
  21. package/crates/enact-channels/src/teams.rs +601 -0
  22. package/crates/enact-channels/src/telegram.rs +2833 -0
  23. package/crates/enact-channels/src/traits.rs +200 -0
  24. package/crates/enact-channels/src/webhook.rs +262 -0
  25. package/crates/enact-channels/src/whatsapp.rs +310 -0
  26. package/crates/enact-cli/Cargo.toml +40 -0
  27. package/crates/enact-cli/src/commands/doctor.rs +62 -0
  28. package/crates/enact-cli/src/commands/mod.rs +3 -0
  29. package/crates/enact-cli/src/commands/run.rs +69 -0
  30. package/crates/enact-cli/src/commands/serve.rs +81 -0
  31. package/crates/enact-cli/src/config.rs +2 -0
  32. package/crates/enact-cli/src/main.rs +79 -0
  33. package/crates/enact-config/Cargo.toml +36 -0
  34. package/crates/enact-config/ENV_VAR_MAPPING.md +135 -0
  35. package/crates/enact-config/QUICK_REFERENCE.md +92 -0
  36. package/crates/enact-config/README.md +107 -0
  37. package/crates/enact-config/TESTING.md +161 -0
  38. package/crates/enact-config/examples/test-env-vars.rs +100 -0
  39. package/crates/enact-config/src/config.rs +399 -0
  40. package/crates/enact-config/src/encrypted_store.rs +211 -0
  41. package/crates/enact-config/src/lib.rs +298 -0
  42. package/crates/enact-config/src/secrets.rs +149 -0
  43. package/crates/enact-config/src/sync.rs +260 -0
  44. package/crates/enact-config/test-env-vars.sh +34 -0
  45. package/crates/enact-config/tests/README.md +99 -0
  46. package/crates/enact-config/tests/config_integration_test.rs +202 -0
  47. package/crates/enact-config/tests/security_test.rs +140 -0
  48. package/crates/enact-context/Cargo.toml +41 -0
  49. package/crates/enact-context/src/budget.rs +314 -0
  50. package/crates/enact-context/src/calibrator.rs +535 -0
  51. package/crates/enact-context/src/compactor.rs +392 -0
  52. package/crates/enact-context/src/condenser.rs +826 -0
  53. package/crates/enact-context/src/lib.rs +94 -0
  54. package/crates/enact-context/src/segment.rs +238 -0
  55. package/crates/enact-context/src/step_context.rs +645 -0
  56. package/crates/enact-context/src/token_counter.rs +148 -0
  57. package/crates/enact-context/src/window.rs +372 -0
  58. package/crates/enact-core/Cargo.toml +42 -0
  59. package/crates/enact-core/README.md +98 -0
  60. package/crates/enact-core/src/background/executor.rs +524 -0
  61. package/crates/enact-core/src/background/mod.rs +48 -0
  62. package/crates/enact-core/src/background/target_binding.rs +390 -0
  63. package/crates/enact-core/src/background/trigger.rs +511 -0
  64. package/crates/enact-core/src/callable/callable.rs +152 -0
  65. package/crates/enact-core/src/callable/composite.rs +817 -0
  66. package/crates/enact-core/src/callable/graph.rs +104 -0
  67. package/crates/enact-core/src/callable/llm.rs +211 -0
  68. package/crates/enact-core/src/callable/mod.rs +64 -0
  69. package/crates/enact-core/src/callable/registry.rs +206 -0
  70. package/crates/enact-core/src/context/execution_context.rs +757 -0
  71. package/crates/enact-core/src/context/invocation.rs +99 -0
  72. package/crates/enact-core/src/context/mod.rs +50 -0
  73. package/crates/enact-core/src/context/tenant.rs +175 -0
  74. package/crates/enact-core/src/context/trace.rs +127 -0
  75. package/crates/enact-core/src/flow/conditional.rs +293 -0
  76. package/crates/enact-core/src/flow/mod.rs +43 -0
  77. package/crates/enact-core/src/flow/parallel.rs +437 -0
  78. package/crates/enact-core/src/flow/repeat.rs +534 -0
  79. package/crates/enact-core/src/flow/sequential.rs +248 -0
  80. package/crates/enact-core/src/graph/checkpoint.rs +79 -0
  81. package/crates/enact-core/src/graph/checkpoint_store.rs +76 -0
  82. package/crates/enact-core/src/graph/compiled.rs +189 -0
  83. package/crates/enact-core/src/graph/edge.rs +59 -0
  84. package/crates/enact-core/src/graph/graph_schema.rs +218 -0
  85. package/crates/enact-core/src/graph/loader.rs +155 -0
  86. package/crates/enact-core/src/graph/mod.rs +18 -0
  87. package/crates/enact-core/src/graph/node/function.rs +49 -0
  88. package/crates/enact-core/src/graph/node/mod.rs +48 -0
  89. package/crates/enact-core/src/graph/schema.rs +62 -0
  90. package/crates/enact-core/src/inbox/message.rs +405 -0
  91. package/crates/enact-core/src/inbox/mod.rs +31 -0
  92. package/crates/enact-core/src/inbox/store.rs +355 -0
  93. package/crates/enact-core/src/kernel/artifact/filesystem.rs +546 -0
  94. package/crates/enact-core/src/kernel/artifact/metadata.rs +283 -0
  95. package/crates/enact-core/src/kernel/artifact/mod.rs +27 -0
  96. package/crates/enact-core/src/kernel/artifact/store.rs +427 -0
  97. package/crates/enact-core/src/kernel/enforcement.rs +1315 -0
  98. package/crates/enact-core/src/kernel/error.rs +1200 -0
  99. package/crates/enact-core/src/kernel/event.rs +1394 -0
  100. package/crates/enact-core/src/kernel/execution_model.rs +831 -0
  101. package/crates/enact-core/src/kernel/execution_state.rs +189 -0
  102. package/crates/enact-core/src/kernel/execution_strategy.rs +117 -0
  103. package/crates/enact-core/src/kernel/ids.rs +2086 -0
  104. package/crates/enact-core/src/kernel/interrupt.rs +125 -0
  105. package/crates/enact-core/src/kernel/kernel.rs +1283 -0
  106. package/crates/enact-core/src/kernel/mod.rs +205 -0
  107. package/crates/enact-core/src/kernel/persistence/event_store.rs +270 -0
  108. package/crates/enact-core/src/kernel/persistence/message_store.rs +908 -0
  109. package/crates/enact-core/src/kernel/persistence/mod.rs +102 -0
  110. package/crates/enact-core/src/kernel/persistence/state_store.rs +228 -0
  111. package/crates/enact-core/src/kernel/persistence/vector_store.rs +299 -0
  112. package/crates/enact-core/src/kernel/reducer.rs +808 -0
  113. package/crates/enact-core/src/kernel/replay.rs +153 -0
  114. package/crates/enact-core/src/lib.rs +413 -0
  115. package/crates/enact-core/src/memory/episodic.rs +0 -0
  116. package/crates/enact-core/src/memory/mod.rs +6 -0
  117. package/crates/enact-core/src/memory/semantic.rs +0 -0
  118. package/crates/enact-core/src/memory/trait.rs +0 -0
  119. package/crates/enact-core/src/memory/vector_db.rs +0 -0
  120. package/crates/enact-core/src/memory/working.rs +0 -0
  121. package/crates/enact-core/src/policy/execution_policy.rs +292 -0
  122. package/crates/enact-core/src/policy/filters.rs +458 -0
  123. package/crates/enact-core/src/policy/input_processor.rs +407 -0
  124. package/crates/enact-core/src/policy/long_running.rs +134 -0
  125. package/crates/enact-core/src/policy/mod.rs +193 -0
  126. package/crates/enact-core/src/policy/pii_input.rs +274 -0
  127. package/crates/enact-core/src/policy/tenant_policy.rs +453 -0
  128. package/crates/enact-core/src/policy/tool_policy.rs +407 -0
  129. package/crates/enact-core/src/providers/mod.rs +63 -0
  130. package/crates/enact-core/src/providers/trait.rs +292 -0
  131. package/crates/enact-core/src/runner/callbacks.rs +6 -0
  132. package/crates/enact-core/src/runner/execution_runner.rs +476 -0
  133. package/crates/enact-core/src/runner/loop.rs +117 -0
  134. package/crates/enact-core/src/runner/mod.rs +58 -0
  135. package/crates/enact-core/src/runner/protected_runner.rs +280 -0
  136. package/crates/enact-core/src/signal/inmemory.rs +231 -0
  137. package/crates/enact-core/src/signal/mod.rs +108 -0
  138. package/crates/enact-core/src/streaming/event_logger.rs +195 -0
  139. package/crates/enact-core/src/streaming/event_stream.rs +1423 -0
  140. package/crates/enact-core/src/streaming/mod.rs +108 -0
  141. package/crates/enact-core/src/streaming/pause_cancel.rs +0 -0
  142. package/crates/enact-core/src/streaming/protected_emitter.rs +173 -0
  143. package/crates/enact-core/src/streaming/protection/context.rs +136 -0
  144. package/crates/enact-core/src/streaming/protection/encryption.rs +289 -0
  145. package/crates/enact-core/src/streaming/protection/mod.rs +43 -0
  146. package/crates/enact-core/src/streaming/protection/pii_protection.rs +243 -0
  147. package/crates/enact-core/src/streaming/protection/processor.rs +166 -0
  148. package/crates/enact-core/src/streaming/sse.rs +0 -0
  149. package/crates/enact-core/src/telemetry/exporter.rs +0 -0
  150. package/crates/enact-core/src/telemetry/init.rs +0 -0
  151. package/crates/enact-core/src/telemetry/mod.rs +49 -0
  152. package/crates/enact-core/src/telemetry/spans.rs +245 -0
  153. package/crates/enact-core/src/tool/agent_tool.rs +177 -0
  154. package/crates/enact-core/src/tool/browser/mod.rs +0 -0
  155. package/crates/enact-core/src/tool/browser/webdriver.rs +0 -0
  156. package/crates/enact-core/src/tool/cost.rs +247 -0
  157. package/crates/enact-core/src/tool/discovery.rs +0 -0
  158. package/crates/enact-core/src/tool/dispatcher.rs +347 -0
  159. package/crates/enact-core/src/tool/filesystem.rs +231 -0
  160. package/crates/enact-core/src/tool/function.rs +99 -0
  161. package/crates/enact-core/src/tool/git.rs +162 -0
  162. package/crates/enact-core/src/tool/http.rs +214 -0
  163. package/crates/enact-core/src/tool/mcp/client.rs +0 -0
  164. package/crates/enact-core/src/tool/mcp/mod.rs +0 -0
  165. package/crates/enact-core/src/tool/mod.rs +51 -0
  166. package/crates/enact-core/src/tool/reasoning/debugging.rs +0 -0
  167. package/crates/enact-core/src/tool/reasoning/mcts.rs +0 -0
  168. package/crates/enact-core/src/tool/reasoning/mod.rs +0 -0
  169. package/crates/enact-core/src/tool/reasoning/sequential.rs +0 -0
  170. package/crates/enact-core/src/tool/sandbox/dagger.rs +0 -0
  171. package/crates/enact-core/src/tool/sandbox/mod.rs +0 -0
  172. package/crates/enact-core/src/tool/shell.rs +147 -0
  173. package/crates/enact-core/src/tool/trait.rs +33 -0
  174. package/crates/enact-core/src/tool/web_search.rs +277 -0
  175. package/crates/enact-core/src/util/config.rs +0 -0
  176. package/crates/enact-core/src/util/errors.rs +0 -0
  177. package/crates/enact-core/src/util/mod.rs +6 -0
  178. package/crates/enact-core/tests/airgapped_e2e_test.rs +291 -0
  179. package/crates/enact-core/tests/e2e_agentic_loop.rs +119 -0
  180. package/crates/enact-core/tests/e2e_test.rs +259 -0
  181. package/crates/enact-core/tests/graph_test.rs +130 -0
  182. package/crates/enact-core/tests/stream_event_id_validation.rs +435 -0
  183. package/crates/enact-cron/Cargo.toml +28 -0
  184. package/crates/enact-cron/src/lib.rs +44 -0
  185. package/crates/enact-cron/src/schedule.rs +156 -0
  186. package/crates/enact-cron/src/store.rs +589 -0
  187. package/crates/enact-cron/src/types.rs +148 -0
  188. package/crates/enact-gateway/Cargo.toml +31 -0
  189. package/crates/enact-gateway/README.md +30 -0
  190. package/crates/enact-gateway/examples/whatsapp-gateway-runner-mock.rs +59 -0
  191. package/crates/enact-gateway/examples/whatsapp-gateway.rs +42 -0
  192. package/crates/enact-gateway/src/lib.rs +582 -0
  193. package/crates/enact-mcp/Cargo.toml +24 -0
  194. package/crates/enact-mcp/src/lib.rs +178 -0
  195. package/crates/enact-memory/Cargo.toml +25 -0
  196. package/crates/enact-memory/src/backend.rs +20 -0
  197. package/crates/enact-memory/src/chunker.rs +230 -0
  198. package/crates/enact-memory/src/embeddings.rs +221 -0
  199. package/crates/enact-memory/src/lib.rs +67 -0
  200. package/crates/enact-memory/src/markdown.rs +127 -0
  201. package/crates/enact-memory/src/none.rs +61 -0
  202. package/crates/enact-memory/src/sqlite.rs +276 -0
  203. package/crates/enact-memory/src/traits.rs +65 -0
  204. package/crates/enact-memory/src/vector.rs +198 -0
  205. package/crates/enact-oauth/Cargo.toml +27 -0
  206. package/crates/enact-oauth/src/lib.rs +584 -0
  207. package/crates/enact-observability/Cargo.toml +22 -0
  208. package/crates/enact-observability/src/lib.rs +197 -0
  209. package/crates/enact-providers/Cargo.toml +33 -0
  210. package/crates/enact-providers/examples/hello-agent.rs +33 -0
  211. package/crates/enact-providers/src/anthropic.rs +182 -0
  212. package/crates/enact-providers/src/azure.rs +96 -0
  213. package/crates/enact-providers/src/bridge.rs +221 -0
  214. package/crates/enact-providers/src/gemini.rs +227 -0
  215. package/crates/enact-providers/src/http.rs +78 -0
  216. package/crates/enact-providers/src/lib.rs +53 -0
  217. package/crates/enact-providers/src/openai_compatible.rs +167 -0
  218. package/crates/enact-providers/src/openrouter.rs +33 -0
  219. package/crates/enact-runner/Cargo.toml +24 -0
  220. package/crates/enact-runner/README.md +76 -0
  221. package/crates/enact-runner/src/compaction.rs +225 -0
  222. package/crates/enact-runner/src/config.rs +118 -0
  223. package/crates/enact-runner/src/lib.rs +63 -0
  224. package/crates/enact-runner/src/loop_driver.rs +414 -0
  225. package/crates/enact-runner/src/parser.rs +421 -0
  226. package/crates/enact-runner/src/retry.rs +262 -0
  227. package/crates/enact-runner/tests/integration.rs +278 -0
  228. package/crates/enact-security/Cargo.toml +22 -0
  229. package/crates/enact-security/src/audit.rs +375 -0
  230. package/crates/enact-security/src/lib.rs +37 -0
  231. package/crates/enact-security/src/policy.rs +406 -0
  232. package/crates/enact-skills/Cargo.toml +25 -0
  233. package/crates/enact-skills/src/lib.rs +506 -0
  234. package/crates/enact-tools/Cargo.toml +22 -0
  235. package/crates/enact-tools/src/file_read.rs +166 -0
  236. package/crates/enact-tools/src/file_write.rs +216 -0
  237. package/crates/enact-tools/src/git_operations.rs +513 -0
  238. package/crates/enact-tools/src/http_request.rs +417 -0
  239. package/crates/enact-tools/src/lib.rs +104 -0
  240. package/crates/enact-tools/src/security.rs +227 -0
  241. package/crates/enact-tools/src/shell.rs +191 -0
  242. package/crates/enact-tools/src/traits.rs +159 -0
  243. package/docs/Makefile +74 -0
  244. package/docs/config.toml +62 -0
  245. package/docs/content/_index.md +174 -0
  246. package/docs/content/a2a/_index.md +431 -0
  247. package/docs/content/api/_index.md +323 -0
  248. package/docs/content/channels/_index.md +160 -0
  249. package/docs/content/channels/teams.md +205 -0
  250. package/docs/content/channels/telegram.md +182 -0
  251. package/docs/content/channels/webhook.md +423 -0
  252. package/docs/content/channels/whatsapp.md +240 -0
  253. package/docs/content/cli/_index.md +261 -0
  254. package/docs/content/concepts/_index.md +273 -0
  255. package/docs/content/configuration/_index.md +241 -0
  256. package/docs/content/cron/_index.md +248 -0
  257. package/docs/content/developers/_index.md +278 -0
  258. package/docs/content/getting-started/_index.md +180 -0
  259. package/docs/content/installation/_index.md +186 -0
  260. package/docs/content/installation/uninstall.md +101 -0
  261. package/docs/content/installation/updating.md +120 -0
  262. package/docs/content/mcp/_index.md +215 -0
  263. package/docs/content/memory/_index.md +163 -0
  264. package/docs/content/oauth/_index.md +515 -0
  265. package/docs/content/providers/_index.md +206 -0
  266. package/docs/content/roadmap/_index.md +199 -0
  267. package/docs/content/security/_index.md +219 -0
  268. package/docs/content/skills/_index.md +228 -0
  269. package/docs/content/tools/_index.md +485 -0
  270. package/docs/content/troubleshooting/_index.md +259 -0
  271. package/docs/content/yaml-schema/_index.md +294 -0
  272. package/docs/static/giallo-dark.css +91 -0
  273. package/docs/static/giallo-light.css +91 -0
  274. package/docs/themes/tanuki/.github/workflows/deploy.yml +44 -0
  275. package/docs/themes/tanuki/LICENSE +21 -0
  276. package/docs/themes/tanuki/README.md +166 -0
  277. package/docs/themes/tanuki/examples/blog/config.toml +58 -0
  278. package/docs/themes/tanuki/examples/blog/content/_index.md +4 -0
  279. package/docs/themes/tanuki/examples/blog/content/about.md +33 -0
  280. package/docs/themes/tanuki/examples/blog/content/blog/_index.md +7 -0
  281. package/docs/themes/tanuki/examples/blog/content/blog/api-design-best-practices.md +245 -0
  282. package/docs/themes/tanuki/examples/blog/content/blog/building-accessible-websites.md +147 -0
  283. package/docs/themes/tanuki/examples/blog/content/blog/css-grid-vs-flexbox.md +165 -0
  284. package/docs/themes/tanuki/examples/blog/content/blog/customizing-catppuccin-colors.md +137 -0
  285. package/docs/themes/tanuki/examples/blog/content/blog/dark-mode-best-practices.md +82 -0
  286. package/docs/themes/tanuki/examples/blog/content/blog/docker-essentials.md +301 -0
  287. package/docs/themes/tanuki/examples/blog/content/blog/getting-started-with-zola.md +129 -0
  288. package/docs/themes/tanuki/examples/blog/content/blog/git-workflow-for-content.md +112 -0
  289. package/docs/themes/tanuki/examples/blog/content/blog/introduction-to-webassembly.md +183 -0
  290. package/docs/themes/tanuki/examples/blog/content/blog/modern-javascript-features.md +234 -0
  291. package/docs/themes/tanuki/examples/blog/content/blog/testing-strategies.md +311 -0
  292. package/docs/themes/tanuki/examples/blog/content/blog/typography-for-developers.md +104 -0
  293. package/docs/themes/tanuki/examples/blog/content/blog/welcome-to-tanuki.md +67 -0
  294. package/docs/themes/tanuki/examples/blog/content/blog/why-static-sites.md +85 -0
  295. package/docs/themes/tanuki/examples/blog/content/projects.md +64 -0
  296. package/docs/themes/tanuki/examples/book/config.toml +17 -0
  297. package/docs/themes/tanuki/examples/book/content/_index.md +12 -0
  298. package/docs/themes/tanuki/examples/book/content/chapter-1.md +90 -0
  299. package/docs/themes/tanuki/examples/book/content/chapter-2.md +143 -0
  300. package/docs/themes/tanuki/examples/book/content/chapter-3.md +217 -0
  301. package/docs/themes/tanuki/examples/book/content/chapter-4.md +224 -0
  302. package/docs/themes/tanuki/examples/book/content/chapter-5.md +297 -0
  303. package/docs/themes/tanuki/examples/book/content/print.md +6 -0
  304. package/docs/themes/tanuki/examples/docs/config.toml +28 -0
  305. package/docs/themes/tanuki/examples/docs/content/_index.md +20 -0
  306. package/docs/themes/tanuki/examples/docs/content/components.md +156 -0
  307. package/docs/themes/tanuki/examples/docs/content/configuration.md +94 -0
  308. package/docs/themes/tanuki/examples/docs/content/customization.md +202 -0
  309. package/docs/themes/tanuki/examples/docs/content/deployment.md +204 -0
  310. package/docs/themes/tanuki/examples/docs/content/installation.md +59 -0
  311. package/docs/themes/tanuki/examples/docs/content/print.md +6 -0
  312. package/docs/themes/tanuki/examples/docs/static/img/tanuki-icon.avif +0 -0
  313. package/docs/themes/tanuki/examples/index.html +2104 -0
  314. package/docs/themes/tanuki/mise.toml +108 -0
  315. package/docs/themes/tanuki/sass/base/_catppuccin.scss +164 -0
  316. package/docs/themes/tanuki/sass/base/_fonts.scss +64 -0
  317. package/docs/themes/tanuki/sass/base/_reset.scss +152 -0
  318. package/docs/themes/tanuki/sass/base/_typography.scss +523 -0
  319. package/docs/themes/tanuki/sass/components/_buttons.scss +209 -0
  320. package/docs/themes/tanuki/sass/components/_code.scss +457 -0
  321. package/docs/themes/tanuki/sass/components/_landing.scss +633 -0
  322. package/docs/themes/tanuki/sass/components/_layout.scss +294 -0
  323. package/docs/themes/tanuki/sass/components/_navigation.scss +1200 -0
  324. package/docs/themes/tanuki/sass/components/_print.scss +237 -0
  325. package/docs/themes/tanuki/sass/components/_search.scss +224 -0
  326. package/docs/themes/tanuki/sass/components/_sidebar.scss +473 -0
  327. package/docs/themes/tanuki/sass/components/_theme-toggle.scss +186 -0
  328. package/docs/themes/tanuki/sass/modes/_blog.scss +366 -0
  329. package/docs/themes/tanuki/sass/modes/_product.scss +875 -0
  330. package/docs/themes/tanuki/sass/modes/_raskell.scss +1696 -0
  331. package/docs/themes/tanuki/sass/patterns/_buttons.scss +183 -0
  332. package/docs/themes/tanuki/sass/patterns/_cards.scss +144 -0
  333. package/docs/themes/tanuki/sass/patterns/_index.scss +9 -0
  334. package/docs/themes/tanuki/sass/patterns/_lists.scss +259 -0
  335. package/docs/themes/tanuki/sass/patterns/_sections.scss +243 -0
  336. package/docs/themes/tanuki/sass/style.scss +47 -0
  337. package/docs/themes/tanuki/sass/tokens/_colors.scss +139 -0
  338. package/docs/themes/tanuki/sass/tokens/_spacing.scss +100 -0
  339. package/docs/themes/tanuki/sass/tokens/_typography.scss +186 -0
  340. package/docs/themes/tanuki/screenshot.png +0 -0
  341. package/docs/themes/tanuki/sentinel.kdl +59 -0
  342. package/docs/themes/tanuki/static/elasticlunr.min.js +10 -0
  343. package/docs/themes/tanuki/static/fonts/GEIST-LICENSE.txt +92 -0
  344. package/docs/themes/tanuki/static/fonts/Geist-Variable.woff2 +0 -0
  345. package/docs/themes/tanuki/static/fonts/GeistMono-Variable.woff2 +0 -0
  346. package/docs/themes/tanuki/static/img/tanuki-icon.avif +0 -0
  347. package/docs/themes/tanuki/static/img/tanuki-icon.png +0 -0
  348. package/docs/themes/tanuki/static/js/anchors.js +18 -0
  349. package/docs/themes/tanuki/static/js/app.js +274 -0
  350. package/docs/themes/tanuki/static/js/code.js +394 -0
  351. package/docs/themes/tanuki/static/js/navigation.js +778 -0
  352. package/docs/themes/tanuki/static/js/scroll-to-top.js +33 -0
  353. package/docs/themes/tanuki/static/js/search-raskell.js +240 -0
  354. package/docs/themes/tanuki/static/js/search.js +215 -0
  355. package/docs/themes/tanuki/static/js/theme.js +169 -0
  356. package/docs/themes/tanuki/static/syntax-dark.css +151 -0
  357. package/docs/themes/tanuki/static/syntax-light.css +151 -0
  358. package/docs/themes/tanuki/static/wasm/sentinel_playground_wasm.js +486 -0
  359. package/docs/themes/tanuki/static/wasm/sentinel_playground_wasm_bg.wasm +0 -0
  360. package/docs/themes/tanuki/templates/404.html +52 -0
  361. package/docs/themes/tanuki/templates/base.html +428 -0
  362. package/docs/themes/tanuki/templates/blog.html +66 -0
  363. package/docs/themes/tanuki/templates/home.html +108 -0
  364. package/docs/themes/tanuki/templates/index.html +178 -0
  365. package/docs/themes/tanuki/templates/landing.html +168 -0
  366. package/docs/themes/tanuki/templates/macros/nav.html +128 -0
  367. package/docs/themes/tanuki/templates/macros/posts.html +101 -0
  368. package/docs/themes/tanuki/templates/macros/ui.html +159 -0
  369. package/docs/themes/tanuki/templates/page.html +135 -0
  370. package/docs/themes/tanuki/templates/partials/footer.html +38 -0
  371. package/docs/themes/tanuki/templates/partials/header.html +366 -0
  372. package/docs/themes/tanuki/templates/partials/nav-buttons.html +55 -0
  373. package/docs/themes/tanuki/templates/partials/nav-overlay.html +81 -0
  374. package/docs/themes/tanuki/templates/partials/page-toc-panel.html +43 -0
  375. package/docs/themes/tanuki/templates/partials/search.html +52 -0
  376. package/docs/themes/tanuki/templates/partials/sidebar.html +107 -0
  377. package/docs/themes/tanuki/templates/partials/theme-toggle.html +35 -0
  378. package/docs/themes/tanuki/templates/partials/toc-overlay.html +146 -0
  379. package/docs/themes/tanuki/templates/partials/version-picker.html +38 -0
  380. package/docs/themes/tanuki/templates/print.html +244 -0
  381. package/docs/themes/tanuki/templates/section.html +186 -0
  382. package/docs/themes/tanuki/templates/taxonomy_list.html +18 -0
  383. package/docs/themes/tanuki/templates/taxonomy_single.html +31 -0
  384. package/docs/themes/tanuki/theme.toml +58 -0
  385. package/examples/hello-agent.rs +55 -0
  386. package/package.json +36 -0
  387. package/proto/config.proto +60 -0
  388. package/proto/events.proto +0 -0
  389. package/proto/runtime.proto +215 -0
@@ -0,0 +1,186 @@
1
+ +++
2
+ title = "Installation"
3
+ weight = 1
4
+ sort_by = "weight"
5
+ +++
6
+
7
+ # Installation
8
+
9
+ Enact can be installed via multiple methods. Choose the one that works best for you.
10
+
11
+ ## Status
12
+
13
+ | Installation Method | Status |
14
+ |---------------------|--------|
15
+ | Build from Source | ✅ Available |
16
+ | Cargo (crates.io) | ✅ Available |
17
+ | npm | ✅ Available |
18
+ | Homebrew | 🚧 Future |
19
+ | Docker | 🚧 Future |
20
+ | Install Script | 🚧 Future |
21
+
22
+ ## Quick Install
23
+
24
+ Choose your preferred package manager:
25
+
26
+ ```bash
27
+ # Using Cargo (recommended for Rust users)
28
+ cargo install enact
29
+
30
+ # Using npm (recommended for Node.js users)
31
+ npm install -g enact
32
+
33
+ # Using Homebrew (macOS/Linux)
34
+ brew install enact
35
+ ```
36
+
37
+ ## Cargo (crates.io)
38
+
39
+ Install from crates.io:
40
+
41
+ ```bash
42
+ cargo install enact
43
+ ```
44
+
45
+ This downloads pre-built binaries. To build from source instead:
46
+
47
+ ```bash
48
+ cargo install enact --force --git https://github.com/adl-tan-theta/enactai
49
+ ```
50
+
51
+ ## npm
52
+
53
+ Install pre-built binaries via npm:
54
+
55
+ ```bash
56
+ # Global installation
57
+ npm install -g enact
58
+
59
+ # Verify installation
60
+ enact --version
61
+ ```
62
+
63
+ The npm package includes binaries for:
64
+ - macOS (Intel & Apple Silicon)
65
+ - Linux (x64 & ARM64)
66
+ - Windows
67
+
68
+ ## Build from Source
69
+
70
+ If you need the latest development version or want to contribute:
71
+
72
+ ### Prerequisites
73
+
74
+ - **Rust**: 1.75+ (install via [rustup](https://rustup.rs))
75
+ - **Git**: For cloning the repository
76
+
77
+ ### Steps
78
+
79
+ ```bash
80
+ # 1. Clone the repository
81
+ git clone https://github.com/adl-tan-theta/enactai.git
82
+ cd enya/enact-agent
83
+
84
+ # 2. Build all crates
85
+ cargo build --release
86
+
87
+ # 3. (Optional) Run tests
88
+ cargo test
89
+ ```
90
+
91
+ ### Development Build
92
+
93
+ For faster iteration during development:
94
+
95
+ ```bash
96
+ # Build with debug symbols
97
+ cargo build
98
+
99
+ # Run a specific crate
100
+ cargo run -p enact-runner
101
+ ```
102
+
103
+ ### Verify Build
104
+
105
+ ```bash
106
+ # Check that crates compile
107
+ cargo check --workspace
108
+
109
+ # Run tests
110
+ cargo test --workspace
111
+ ```
112
+
113
+ ## Requirements
114
+
115
+ ### System Requirements
116
+
117
+ - **OS**: macOS 12+, Linux (glibc 2.31+), Windows 10+
118
+ - **Memory**: 256MB minimum, 512MB recommended
119
+ - **Disk**: ~500MB for build artifacts (source build only)
120
+
121
+ ### Runtime Dependencies
122
+
123
+ - **API Keys**: At least one LLM provider (OpenAI, Anthropic, Azure, etc.)
124
+ - **Network**: Outbound HTTPS for API calls (unless using Ollama locally)
125
+
126
+ ## Using as a Library
127
+
128
+ Since Enact is a workspace of crates, you can use individual crates as dependencies:
129
+
130
+ ```toml
131
+ # Cargo.toml
132
+ [dependencies]
133
+ enact-core = "0.0.1"
134
+ enact-providers = "0.0.1"
135
+ enact-channels = "0.0.1"
136
+ enact-config = "0.0.1"
137
+ ```
138
+
139
+ Or with git:
140
+
141
+ ```toml
142
+ [dependencies]
143
+ enact-core = { git = "https://github.com/adl-tan-theta/enactai", package = "enact-core" }
144
+ ```
145
+
146
+ ## Next Steps
147
+
148
+ - [Quick Start](/getting-started/) - Configure and run your first agent
149
+ - [Configuration](/configuration/) - Set up API keys and channels
150
+ - [YAML Schema](/yaml-schema/) - Learn the agent definition format
151
+
152
+ ---
153
+
154
+ ## Future Installation Methods (🚧 Planned)
155
+
156
+ ### Homebrew (macOS)
157
+
158
+ ```bash
159
+ brew install enact
160
+ ```
161
+
162
+ ### Docker
163
+
164
+ ```bash
165
+ # Pull the image
166
+ docker pull ghcr.io/adl-tan-theta/enya/enact:latest
167
+
168
+ # Run with config mounted
169
+ docker run -d \
170
+ --name enact \
171
+ -v ~/.enact:/root/.enact \
172
+ -p 18789:18789 \
173
+ ghcr.io/adl-tan-theta/enya/enact:latest serve
174
+ ```
175
+
176
+ ### Binary Downloads
177
+
178
+ Pre-built binaries from GitHub Releases:
179
+
180
+ | Platform | Architecture | Download |
181
+ |----------|--------------|----------|
182
+ | macOS | Apple Silicon (M1/M2) | `enact-aarch64-apple-darwin.tar.gz` |
183
+ | macOS | Intel | `enact-x86_64-apple-darwin.tar.gz` |
184
+ | Linux | x64 | `enact-x86_64-unknown-linux-gnu.tar.gz` |
185
+ | Linux | ARM64 | `enact-aarch64-unknown-linux-gnu.tar.gz` |
186
+ | Windows | x64 | `enact-x86_64-pc-windows-msvc.exe` |
@@ -0,0 +1,101 @@
1
+ +++
2
+ title = "Uninstalling"
3
+ weight = 3
4
+ +++
5
+
6
+ # Uninstalling Enact
7
+
8
+ Since Enact is currently built from source, uninstalling means removing the source directory and any build artifacts.
9
+
10
+ ## Remove Source Directory
11
+
12
+ ```bash
13
+ # Remove the cloned repository
14
+ rm -rf /path/to/enact-agent
15
+ ```
16
+
17
+ ## Remove Cargo Artifacts
18
+
19
+ If you installed any crates globally:
20
+
21
+ ```bash
22
+ # List installed binaries (if any)
23
+ ls ~/.cargo/bin/ | grep enact
24
+
25
+ # Remove if present
26
+ rm ~/.cargo/bin/enact
27
+ ```
28
+
29
+ ## Remove Configuration
30
+
31
+ If you created any configuration files:
32
+
33
+ ```bash
34
+ # Remove .env files in your project directories
35
+ rm /path/to/your-project/.env
36
+
37
+ # Remove any Enact-specific config (future)
38
+ rm -rf ~/.config/enact/
39
+ rm -rf ~/.enact/
40
+ ```
41
+
42
+ ## Clean Cargo Cache
43
+
44
+ To free up disk space from cached dependencies:
45
+
46
+ ```bash
47
+ # Remove cached crates used by Enact
48
+ cargo cache -r # requires cargo-cache
49
+ # or
50
+ rm -rf ~/.cargo/registry/cache/*/enact*
51
+ rm -rf ~/.cargo/git/checkouts/*enact*
52
+ ```
53
+
54
+ ## Revoke Channel Access
55
+
56
+ If you configured messaging channels, you may want to revoke access:
57
+
58
+ ### Telegram
59
+ 1. Open [@BotFather](https://t.me/botfather)
60
+ 2. Send `/deletebot`
61
+ 3. Select your bot
62
+
63
+ ### Teams
64
+ 1. Go to Azure Portal > App registrations
65
+ 2. Delete the app registration
66
+
67
+ ### WhatsApp
68
+ 1. Go to Meta Business Suite
69
+ 2. Remove the WhatsApp business account
70
+
71
+ ---
72
+
73
+ ## Future Uninstall Methods (🚧 Planned)
74
+
75
+ When official installation methods are available:
76
+
77
+ ### Cargo (🚧 Future)
78
+
79
+ ```bash
80
+ cargo uninstall enact
81
+ ```
82
+
83
+ ### Homebrew (🚧 Future)
84
+
85
+ ```bash
86
+ brew uninstall enact
87
+ ```
88
+
89
+ ### npm (🚧 Future)
90
+
91
+ ```bash
92
+ npm uninstall -g @enact/cli
93
+ ```
94
+
95
+ ### Docker (🚧 Future)
96
+
97
+ ```bash
98
+ docker stop enact
99
+ docker rm enact
100
+ docker rmi ghcr.io/your-org/enact:latest
101
+ ```
@@ -0,0 +1,120 @@
1
+ +++
2
+ title = "Updating"
3
+ weight = 2
4
+ +++
5
+
6
+ # Updating Enact
7
+
8
+ Keep Enact up to date by pulling the latest source code.
9
+
10
+ ## Check Current Version
11
+
12
+ Since Enact is currently built from source, check your git commit:
13
+
14
+ ```bash
15
+ cd enact-agent
16
+ git log -1 --oneline
17
+ # e.g., abc1234 Add WhatsApp channel support
18
+ ```
19
+
20
+ ## Update from Source
21
+
22
+ ```bash
23
+ cd enact-agent
24
+
25
+ # Fetch latest changes
26
+ git fetch origin
27
+
28
+ # Pull latest main branch
29
+ git pull origin main
30
+
31
+ # Rebuild
32
+ cargo build --release
33
+ ```
34
+
35
+ ## Handling Conflicts
36
+
37
+ If you have local changes:
38
+
39
+ ```bash
40
+ # Option 1: Stash your changes
41
+ git stash
42
+ git pull origin main
43
+ git stash pop
44
+
45
+ # Option 2: Create a branch for your changes
46
+ git checkout -b my-changes
47
+ git checkout main
48
+ git pull origin main
49
+ ```
50
+
51
+ ## Clean Rebuild
52
+
53
+ If you encounter build issues after updating:
54
+
55
+ ```bash
56
+ # Clean build artifacts
57
+ cargo clean
58
+
59
+ # Rebuild everything
60
+ cargo build --release
61
+ ```
62
+
63
+ ---
64
+
65
+ ## Future Update Methods (🚧 Planned)
66
+
67
+ ### Self-Update Command (🚧 Future)
68
+
69
+ When the CLI is fully implemented:
70
+
71
+ ```bash
72
+ # Check for updates
73
+ enact update --check
74
+
75
+ # Update to latest
76
+ enact update
77
+
78
+ # Update to specific version
79
+ enact update --version 0.1.0
80
+ ```
81
+
82
+ ### Cargo (🚧 Future)
83
+
84
+ When published to crates.io:
85
+
86
+ ```bash
87
+ cargo install enact --force
88
+ ```
89
+
90
+ ### Homebrew (🚧 Future)
91
+
92
+ ```bash
93
+ brew upgrade enact
94
+ ```
95
+
96
+ ### npm (🚧 Future)
97
+
98
+ ```bash
99
+ npm update -g @enact/cli
100
+ ```
101
+
102
+ ### Docker (🚧 Future)
103
+
104
+ ```bash
105
+ docker pull ghcr.io/your-org/enact:latest
106
+ docker-compose up -d
107
+ ```
108
+
109
+ ## Changelog
110
+
111
+ See the [Changelog](https://github.com/your-org/enact-agent/blob/main/CHANGELOG.md) for what's new in each release.
112
+
113
+ ## Migration Notes
114
+
115
+ When updating, check for:
116
+ - Changes to YAML schema format
117
+ - New required configuration options
118
+ - API changes in library code
119
+
120
+ The project is still in early development, so breaking changes may occur between versions.
@@ -0,0 +1,215 @@
1
+ +++
2
+ title = "MCP Client"
3
+ weight = 8
4
+ sort_by = "weight"
5
+ +++
6
+
7
+ # MCP Client
8
+
9
+ The Model Context Protocol (MCP) client allows Enact to connect to MCP servers and use their tools.
10
+
11
+ ## Status
12
+
13
+ | Feature | Status |
14
+ |---------|--------|
15
+ | Stdio transport support | ✅ Complete |
16
+ | JSON-RPC protocol | ✅ Complete |
17
+ | Tool listing | ✅ Complete |
18
+ | Tool calling | ✅ Complete |
19
+ | Async/await support | ✅ Complete |
20
+
21
+ ## What is MCP?
22
+
23
+ The [Model Context Protocol](https://modelcontextprotocol.io/) is a standard for connecting AI models to external tools and data sources. It enables:
24
+
25
+ - **Tool discovery**: Dynamically discover available tools from servers
26
+ - **Tool execution**: Call tools with structured arguments
27
+ - **Standardized communication**: JSON-RPC 2.0 over various transports
28
+
29
+ ## Quick Start
30
+
31
+ ### Connect to an MCP Server
32
+
33
+ ```rust
34
+ use enact_mcp::McpStdioClient;
35
+
36
+ #[tokio::main]
37
+ async fn main() -> anyhow::Result<()> {
38
+ // Connect to an MCP server via stdio
39
+ let mut client = McpStdioClient::new(
40
+ "npx",
41
+ &["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
42
+ ).await?;
43
+
44
+ // List available tools
45
+ let tools = client.list_tools().await?;
46
+ for tool in &tools {
47
+ println!("{}: {}", tool.name, tool.description);
48
+ }
49
+
50
+ // Call a tool
51
+ let result = client.call_tool(
52
+ "read_file",
53
+ serde_json::json!({"path": "/tmp/test.txt"})
54
+ ).await?;
55
+
56
+ println!("Result: {}", result);
57
+ Ok(())
58
+ }
59
+ ```
60
+
61
+ ## Stdio Transport
62
+
63
+ The MCP client uses stdio transport to communicate with servers:
64
+
65
+ 1. **Spawns subprocess**: The MCP server runs as a child process
66
+ 2. **Stdin/Stdout**: Communication via standard input/output
67
+ 3. **JSON-RPC**: Messages are JSON-RPC 2.0 formatted
68
+ 4. **Automatic cleanup**: Process is killed when client is dropped
69
+
70
+ ## API Reference
71
+
72
+ ### McpStdioClient
73
+
74
+ ```rust
75
+ pub struct McpStdioClient {
76
+ // Internal fields
77
+ }
78
+
79
+ impl McpStdioClient {
80
+ /// Create a new MCP client connected to a command via stdio
81
+ pub async fn new(command: &str, args: &[&str]) -> Result<Self>;
82
+
83
+ /// List available tools from the MCP server
84
+ pub async fn list_tools(&mut self) -> Result<Vec<McpTool>>;
85
+
86
+ /// Call a tool on the MCP server
87
+ pub async fn call_tool(
88
+ &mut self,
89
+ name: &str,
90
+ arguments: serde_json::Value
91
+ ) -> Result<String>;
92
+ }
93
+ ```
94
+
95
+ ### McpTool
96
+
97
+ ```rust
98
+ #[derive(Debug, Clone, Serialize, Deserialize)]
99
+ pub struct McpTool {
100
+ pub name: String,
101
+ pub description: String,
102
+ pub parameters: serde_json::Value,
103
+ }
104
+ ```
105
+
106
+ ## JSON-RPC Protocol
107
+
108
+ The client uses JSON-RPC 2.0 for communication:
109
+
110
+ ### Initialize
111
+
112
+ ```json
113
+ {
114
+ "jsonrpc": "2.0",
115
+ "id": 1,
116
+ "method": "initialize",
117
+ "params": {
118
+ "protocolVersion": "2024-11-05",
119
+ "capabilities": {},
120
+ "clientInfo": {
121
+ "name": "enact-mcp",
122
+ "version": "0.1.0"
123
+ }
124
+ }
125
+ }
126
+ ```
127
+
128
+ ### List Tools
129
+
130
+ ```json
131
+ {
132
+ "jsonrpc": "2.0",
133
+ "id": 2,
134
+ "method": "tools/list"
135
+ }
136
+ ```
137
+
138
+ ### Call Tool
139
+
140
+ ```json
141
+ {
142
+ "jsonrpc": "2.0",
143
+ "id": 3,
144
+ "method": "tools/call",
145
+ "params": {
146
+ "name": "tool_name",
147
+ "arguments": { "arg1": "value1" }
148
+ }
149
+ }
150
+ ```
151
+
152
+ ## Example MCP Servers
153
+
154
+ ### Filesystem Server
155
+
156
+ ```rust
157
+ let mut client = McpStdioClient::new(
158
+ "npx",
159
+ &["-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"]
160
+ ).await?;
161
+ ```
162
+
163
+ ### Custom Server
164
+
165
+ ```rust
166
+ let mut client = McpStdioClient::new(
167
+ "./my-mcp-server",
168
+ &["--config", "config.json"]
169
+ ).await?;
170
+ ```
171
+
172
+ ## Error Handling
173
+
174
+ ```rust
175
+ let result = client.call_tool("tool_name", args).await;
176
+
177
+ match result {
178
+ Ok(output) => println!("Success: {}", output),
179
+ Err(e) => eprintln!("Tool error: {}", e),
180
+ }
181
+ ```
182
+
183
+ Tool errors from the MCP server are returned as `anyhow::Error` with the error message from the server.
184
+
185
+ ## Integration with Enact
186
+
187
+ The MCP client can be used with Enact's agent system:
188
+
189
+ ```rust
190
+ use enact_mcp::McpStdioClient;
191
+ use enact_core::callable::LlmCallable;
192
+
193
+ // Create MCP client
194
+ let mut mcp = McpStdioClient::new("mcp-server", &[]).await?;
195
+
196
+ // Get available tools
197
+ let tools = mcp.list_tools().await?;
198
+
199
+ // Tools can be exposed to the LLM as functions
200
+ // (integration with tool-use coming in future releases)
201
+ ```
202
+
203
+ ## Lifecycle
204
+
205
+ 1. **Create client**: `McpStdioClient::new()` spawns the server process
206
+ 2. **Initialize**: Automatic handshake with the server
207
+ 3. **Use tools**: `list_tools()` and `call_tool()`
208
+ 4. **Cleanup**: Server process is killed when client is dropped
209
+
210
+ ```rust
211
+ {
212
+ let mut client = McpStdioClient::new("server", &[]).await?;
213
+ // Use client...
214
+ } // Client dropped here, server process killed
215
+ ```