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,156 @@
1
+ +++
2
+ title = "API Reference"
3
+ description = "Complete API reference for the Acme SDK."
4
+ weight = 3
5
+ +++
6
+
7
+ # API Reference
8
+
9
+ Complete reference for all Acme SDK methods and types.
10
+
11
+ ## Users
12
+
13
+ Manage user accounts and profiles.
14
+
15
+ ### `users.get(id)`
16
+
17
+ Retrieve a user by ID.
18
+
19
+ ```javascript
20
+ const user = await client.users.get('user_123');
21
+ // Returns: { id, email, name, createdAt, ... }
22
+ ```
23
+
24
+ ### `users.list(options?)`
25
+
26
+ List all users with optional filtering.
27
+
28
+ ```javascript
29
+ const users = await client.users.list({
30
+ limit: 20,
31
+ offset: 0,
32
+ status: 'active',
33
+ });
34
+ ```
35
+
36
+ ### `users.create(data)`
37
+
38
+ Create a new user.
39
+
40
+ ```javascript
41
+ const user = await client.users.create({
42
+ email: 'jane@example.com',
43
+ name: 'Jane Doe',
44
+ role: 'member',
45
+ });
46
+ ```
47
+
48
+ ### `users.update(id, data)`
49
+
50
+ Update an existing user.
51
+
52
+ ```javascript
53
+ const user = await client.users.update('user_123', {
54
+ name: 'Jane Smith',
55
+ });
56
+ ```
57
+
58
+ ### `users.delete(id)`
59
+
60
+ Delete a user.
61
+
62
+ ```javascript
63
+ await client.users.delete('user_123');
64
+ ```
65
+
66
+ ---
67
+
68
+ ## Widgets
69
+
70
+ > **New in v1.2.0** — Build custom UI components with the Widgets API.
71
+
72
+ ### `widgets.create(config)`
73
+
74
+ Create a new widget instance.
75
+
76
+ ```javascript
77
+ const widget = await client.widgets.create({
78
+ type: 'payment-form',
79
+ container: '#widget-container',
80
+ theme: 'dark',
81
+ });
82
+ ```
83
+
84
+ ### `widgets.render()`
85
+
86
+ Render the widget to the DOM.
87
+
88
+ ```javascript
89
+ await widget.render();
90
+ ```
91
+
92
+ ### `widgets.on(event, handler)`
93
+
94
+ Subscribe to widget events.
95
+
96
+ ```javascript
97
+ widget.on('success', (data) => {
98
+ console.log('Payment successful:', data);
99
+ });
100
+
101
+ widget.on('error', (error) => {
102
+ console.error('Widget error:', error);
103
+ });
104
+ ```
105
+
106
+ ---
107
+
108
+ ## Events
109
+
110
+ Real-time event subscriptions.
111
+
112
+ ### `events.subscribe(channel)`
113
+
114
+ Subscribe to a channel for real-time updates.
115
+
116
+ ```javascript
117
+ const subscription = client.events.subscribe('user_123');
118
+
119
+ subscription.on('user.updated', (event) => {
120
+ console.log('User updated:', event.data);
121
+ });
122
+ ```
123
+
124
+ ### `events.unsubscribe(channel)`
125
+
126
+ Unsubscribe from a channel.
127
+
128
+ ```javascript
129
+ client.events.unsubscribe('user_123');
130
+ ```
131
+
132
+ ---
133
+
134
+ ## Error Handling
135
+
136
+ The SDK throws typed errors for different scenarios:
137
+
138
+ ```javascript
139
+ import { AcmeError, RateLimitError, AuthError } from '@acme/sdk';
140
+
141
+ try {
142
+ await client.users.get('user_123');
143
+ } catch (error) {
144
+ if (error instanceof RateLimitError) {
145
+ console.log('Rate limited, retry after:', error.retryAfter);
146
+ } else if (error instanceof AuthError) {
147
+ console.log('Invalid API key');
148
+ } else if (error instanceof AcmeError) {
149
+ console.log('API error:', error.message);
150
+ }
151
+ }
152
+ ```
153
+
154
+ ## Next Steps
155
+
156
+ Learn about [Customization](/customization/) for advanced usage patterns.
@@ -0,0 +1,94 @@
1
+ +++
2
+ title = "Configuration"
3
+ description = "Configure the Acme SDK for your environment."
4
+ weight = 2
5
+ +++
6
+
7
+ # Configuration
8
+
9
+ Learn how to configure the Acme SDK for different environments and use cases.
10
+
11
+ ## API Credentials
12
+
13
+ The SDK requires an API key for authentication. Get your key from the [Acme Dashboard](https://dashboard.acme.dev).
14
+
15
+ ```javascript
16
+ import { Acme } from '@acme/sdk';
17
+
18
+ const client = new Acme({
19
+ apiKey: 'your-api-key',
20
+ // Optional: specify API version (defaults to v3 in SDK 1.2.0)
21
+ apiVersion: 'v3',
22
+ });
23
+ ```
24
+
25
+ ## Environment Variables
26
+
27
+ We recommend using environment variables for sensitive configuration:
28
+
29
+ ```bash
30
+ # .env
31
+ ACME_API_KEY=sk_live_xxxxx
32
+ ACME_API_VERSION=v3
33
+ ACME_TIMEOUT=30000
34
+ ```
35
+
36
+ ```javascript
37
+ const client = new Acme({
38
+ apiKey: process.env.ACME_API_KEY,
39
+ apiVersion: process.env.ACME_API_VERSION,
40
+ timeout: parseInt(process.env.ACME_TIMEOUT),
41
+ });
42
+ ```
43
+
44
+ ## Configuration Options
45
+
46
+ | Option | Type | Default | Description |
47
+ |--------|------|---------|-------------|
48
+ | `apiKey` | string | required | Your Acme API key |
49
+ | `apiVersion` | string | `"v3"` | API version to use |
50
+ | `timeout` | number | `30000` | Request timeout in ms |
51
+ | `retries` | number | `3` | Number of retry attempts |
52
+ | `baseUrl` | string | `"https://api.acme.dev"` | API base URL |
53
+
54
+ ## Environment-Specific Config
55
+
56
+ ### Development
57
+
58
+ ```javascript
59
+ const client = new Acme({
60
+ apiKey: process.env.ACME_API_KEY,
61
+ baseUrl: 'https://sandbox.acme.dev',
62
+ debug: true,
63
+ });
64
+ ```
65
+
66
+ ### Production
67
+
68
+ ```javascript
69
+ const client = new Acme({
70
+ apiKey: process.env.ACME_API_KEY,
71
+ retries: 5,
72
+ timeout: 60000,
73
+ });
74
+ ```
75
+
76
+ ## TypeScript Support
77
+
78
+ The SDK includes full TypeScript definitions:
79
+
80
+ ```typescript
81
+ import { Acme, AcmeConfig, User } from '@acme/sdk';
82
+
83
+ const config: AcmeConfig = {
84
+ apiKey: process.env.ACME_API_KEY!,
85
+ apiVersion: 'v3',
86
+ };
87
+
88
+ const client = new Acme(config);
89
+ const user: User = await client.users.get('user_123');
90
+ ```
91
+
92
+ ## Next Steps
93
+
94
+ See [API Reference](/components/) for available methods and types.
@@ -0,0 +1,202 @@
1
+ +++
2
+ title = "Advanced Usage"
3
+ description = "Advanced patterns and customization for the Acme SDK."
4
+ weight = 4
5
+ +++
6
+
7
+ # Advanced Usage
8
+
9
+ Learn advanced patterns for getting the most out of the Acme SDK.
10
+
11
+ ## Middleware
12
+
13
+ Add custom middleware to intercept requests and responses:
14
+
15
+ ```javascript
16
+ import { Acme } from '@acme/sdk';
17
+
18
+ const client = new Acme({
19
+ apiKey: process.env.ACME_API_KEY,
20
+ middleware: [
21
+ // Logging middleware
22
+ async (request, next) => {
23
+ console.log(`[Acme] ${request.method} ${request.url}`);
24
+ const start = Date.now();
25
+ const response = await next(request);
26
+ console.log(`[Acme] Completed in ${Date.now() - start}ms`);
27
+ return response;
28
+ },
29
+ // Auth refresh middleware
30
+ async (request, next) => {
31
+ try {
32
+ return await next(request);
33
+ } catch (error) {
34
+ if (error.code === 'TOKEN_EXPIRED') {
35
+ await refreshToken();
36
+ return next(request);
37
+ }
38
+ throw error;
39
+ }
40
+ },
41
+ ],
42
+ });
43
+ ```
44
+
45
+ ## Batching Requests
46
+
47
+ Batch multiple operations for better performance:
48
+
49
+ ```javascript
50
+ const results = await client.batch([
51
+ { method: 'users.get', params: { id: 'user_1' } },
52
+ { method: 'users.get', params: { id: 'user_2' } },
53
+ { method: 'users.get', params: { id: 'user_3' } },
54
+ ]);
55
+
56
+ // results[0] = user_1 data
57
+ // results[1] = user_2 data
58
+ // results[2] = user_3 data
59
+ ```
60
+
61
+ ## Pagination
62
+
63
+ Handle paginated responses with built-in iterators:
64
+
65
+ ```javascript
66
+ // Manual pagination
67
+ let page = await client.users.list({ limit: 100 });
68
+
69
+ while (page.hasMore) {
70
+ for (const user of page.data) {
71
+ console.log(user.name);
72
+ }
73
+ page = await page.next();
74
+ }
75
+
76
+ // Async iterator (recommended)
77
+ for await (const user of client.users.listAll()) {
78
+ console.log(user.name);
79
+ }
80
+ ```
81
+
82
+ ## Custom HTTP Client
83
+
84
+ Use your own HTTP client for advanced networking needs:
85
+
86
+ ```javascript
87
+ import { Acme } from '@acme/sdk';
88
+ import axios from 'axios';
89
+
90
+ const httpClient = {
91
+ async request(config) {
92
+ const response = await axios({
93
+ url: config.url,
94
+ method: config.method,
95
+ headers: config.headers,
96
+ data: config.body,
97
+ });
98
+ return {
99
+ status: response.status,
100
+ headers: response.headers,
101
+ body: response.data,
102
+ };
103
+ },
104
+ };
105
+
106
+ const client = new Acme({
107
+ apiKey: process.env.ACME_API_KEY,
108
+ httpClient,
109
+ });
110
+ ```
111
+
112
+ ## Webhooks
113
+
114
+ Verify and handle incoming webhooks:
115
+
116
+ ```javascript
117
+ import { Acme, WebhookError } from '@acme/sdk';
118
+ import express from 'express';
119
+
120
+ const app = express();
121
+
122
+ app.post('/webhooks/acme', express.raw({ type: '*/*' }), (req, res) => {
123
+ const signature = req.headers['x-acme-signature'];
124
+
125
+ try {
126
+ const event = Acme.webhooks.verify(
127
+ req.body,
128
+ signature,
129
+ process.env.ACME_WEBHOOK_SECRET
130
+ );
131
+
132
+ switch (event.type) {
133
+ case 'user.created':
134
+ handleUserCreated(event.data);
135
+ break;
136
+ case 'user.deleted':
137
+ handleUserDeleted(event.data);
138
+ break;
139
+ }
140
+
141
+ res.status(200).send('OK');
142
+ } catch (error) {
143
+ if (error instanceof WebhookError) {
144
+ console.error('Invalid webhook signature');
145
+ res.status(400).send('Invalid signature');
146
+ }
147
+ }
148
+ });
149
+ ```
150
+
151
+ ## Caching
152
+
153
+ Implement response caching for improved performance:
154
+
155
+ ```javascript
156
+ import { Acme } from '@acme/sdk';
157
+
158
+ const cache = new Map();
159
+
160
+ const client = new Acme({
161
+ apiKey: process.env.ACME_API_KEY,
162
+ cache: {
163
+ get: (key) => cache.get(key),
164
+ set: (key, value, ttl) => {
165
+ cache.set(key, value);
166
+ setTimeout(() => cache.delete(key), ttl);
167
+ },
168
+ },
169
+ cacheTTL: 60000, // 1 minute
170
+ });
171
+ ```
172
+
173
+ ## Migration from v1.1.x
174
+
175
+ > **Breaking Changes in v1.2.0**
176
+
177
+ ### Async/Await
178
+
179
+ All methods now return Promises instead of using callbacks:
180
+
181
+ ```javascript
182
+ // v1.1.x (deprecated)
183
+ client.users.get('user_123', (err, user) => {
184
+ if (err) throw err;
185
+ console.log(user);
186
+ });
187
+
188
+ // v1.2.x
189
+ const user = await client.users.get('user_123');
190
+ ```
191
+
192
+ ### Import Changes
193
+
194
+ ```javascript
195
+ // v1.1.x
196
+ const Acme = require('@acme/sdk');
197
+
198
+ // v1.2.x
199
+ import { Acme } from '@acme/sdk';
200
+ // or
201
+ const { Acme } = require('@acme/sdk');
202
+ ```
@@ -0,0 +1,204 @@
1
+ +++
2
+ title = "Deployment"
3
+ description = "Deploy applications using the Acme SDK."
4
+ weight = 5
5
+ +++
6
+
7
+ # Deployment
8
+
9
+ Best practices for deploying applications that use the Acme SDK.
10
+
11
+ ## Environment Setup
12
+
13
+ ### Production Checklist
14
+
15
+ Before deploying to production:
16
+
17
+ - [ ] Use production API keys (not sandbox)
18
+ - [ ] Set appropriate timeouts and retry limits
19
+ - [ ] Configure error monitoring
20
+ - [ ] Enable request logging
21
+ - [ ] Set up webhook endpoints
22
+
23
+ ### Environment Variables
24
+
25
+ Required environment variables:
26
+
27
+ ```bash
28
+ # Required
29
+ ACME_API_KEY=sk_live_xxxxx
30
+
31
+ # Optional
32
+ ACME_API_VERSION=v3
33
+ ACME_TIMEOUT=30000
34
+ ACME_RETRIES=3
35
+ ACME_WEBHOOK_SECRET=whsec_xxxxx
36
+ ```
37
+
38
+ ## Platform Guides
39
+
40
+ ### Node.js
41
+
42
+ ```javascript
43
+ // server.js
44
+ import { Acme } from '@acme/sdk';
45
+ import express from 'express';
46
+
47
+ const client = new Acme({
48
+ apiKey: process.env.ACME_API_KEY,
49
+ retries: 5,
50
+ timeout: 60000,
51
+ });
52
+
53
+ const app = express();
54
+
55
+ app.get('/api/users/:id', async (req, res) => {
56
+ try {
57
+ const user = await client.users.get(req.params.id);
58
+ res.json(user);
59
+ } catch (error) {
60
+ res.status(500).json({ error: error.message });
61
+ }
62
+ });
63
+
64
+ app.listen(3000);
65
+ ```
66
+
67
+ ### Serverless (AWS Lambda)
68
+
69
+ ```javascript
70
+ // handler.js
71
+ import { Acme } from '@acme/sdk';
72
+
73
+ // Initialize outside handler for connection reuse
74
+ const client = new Acme({
75
+ apiKey: process.env.ACME_API_KEY,
76
+ });
77
+
78
+ export const handler = async (event) => {
79
+ const user = await client.users.get(event.userId);
80
+ return {
81
+ statusCode: 200,
82
+ body: JSON.stringify(user),
83
+ };
84
+ };
85
+ ```
86
+
87
+ ### Edge Functions (Cloudflare Workers)
88
+
89
+ ```javascript
90
+ // worker.js
91
+ import { Acme } from '@acme/sdk/edge';
92
+
93
+ export default {
94
+ async fetch(request, env) {
95
+ const client = new Acme({
96
+ apiKey: env.ACME_API_KEY,
97
+ });
98
+
99
+ const url = new URL(request.url);
100
+ const userId = url.searchParams.get('id');
101
+ const user = await client.users.get(userId);
102
+
103
+ return new Response(JSON.stringify(user), {
104
+ headers: { 'Content-Type': 'application/json' },
105
+ });
106
+ },
107
+ };
108
+ ```
109
+
110
+ ## Monitoring
111
+
112
+ ### Health Checks
113
+
114
+ Implement health checks to monitor SDK connectivity:
115
+
116
+ ```javascript
117
+ app.get('/health', async (req, res) => {
118
+ try {
119
+ await client.ping();
120
+ res.json({ status: 'healthy', sdk: 'connected' });
121
+ } catch (error) {
122
+ res.status(503).json({ status: 'unhealthy', error: error.message });
123
+ }
124
+ });
125
+ ```
126
+
127
+ ### Error Tracking
128
+
129
+ Integrate with error tracking services:
130
+
131
+ ```javascript
132
+ import * as Sentry from '@sentry/node';
133
+ import { Acme, AcmeError } from '@acme/sdk';
134
+
135
+ const client = new Acme({
136
+ apiKey: process.env.ACME_API_KEY,
137
+ onError: (error) => {
138
+ if (error instanceof AcmeError) {
139
+ Sentry.captureException(error, {
140
+ tags: { sdk: 'acme', version: '1.2.0' },
141
+ extra: { requestId: error.requestId },
142
+ });
143
+ }
144
+ },
145
+ });
146
+ ```
147
+
148
+ ## Rate Limiting
149
+
150
+ The Acme API has rate limits. Handle them gracefully:
151
+
152
+ | Plan | Requests/min | Burst |
153
+ |------|--------------|-------|
154
+ | Free | 60 | 10 |
155
+ | Pro | 600 | 100 |
156
+ | Enterprise | 6000 | 1000 |
157
+
158
+ ```javascript
159
+ import { Acme, RateLimitError } from '@acme/sdk';
160
+
161
+ try {
162
+ await client.users.list();
163
+ } catch (error) {
164
+ if (error instanceof RateLimitError) {
165
+ console.log(`Rate limited. Retry after ${error.retryAfter}s`);
166
+ await sleep(error.retryAfter * 1000);
167
+ // Retry request
168
+ }
169
+ }
170
+ ```
171
+
172
+ ## Security
173
+
174
+ ### API Key Rotation
175
+
176
+ Rotate API keys periodically:
177
+
178
+ 1. Generate a new key in the [Dashboard](https://dashboard.acme.dev)
179
+ 2. Update your environment variables
180
+ 3. Deploy the update
181
+ 4. Revoke the old key
182
+
183
+ ### Webhook Security
184
+
185
+ Always verify webhook signatures:
186
+
187
+ ```javascript
188
+ const isValid = Acme.webhooks.verify(
189
+ payload,
190
+ signature,
191
+ process.env.ACME_WEBHOOK_SECRET
192
+ );
193
+
194
+ if (!isValid) {
195
+ throw new Error('Invalid webhook signature');
196
+ }
197
+ ```
198
+
199
+ ## Support
200
+
201
+ - **Documentation**: You're here!
202
+ - **API Status**: [status.acme.dev](https://status.acme.dev)
203
+ - **Support**: support@acme.dev
204
+ - **Enterprise**: enterprise@acme.dev
@@ -0,0 +1,59 @@
1
+ +++
2
+ title = "Installation"
3
+ description = "How to install the Acme SDK in your project."
4
+ weight = 1
5
+ +++
6
+
7
+ # Installation
8
+
9
+ Get started with the Acme SDK in your project.
10
+
11
+ ## Requirements
12
+
13
+ - Node.js 18.0 or later
14
+ - npm, yarn, or pnpm
15
+
16
+ ## Quick Start
17
+
18
+ Install the SDK using your preferred package manager:
19
+
20
+ ```bash
21
+ # npm
22
+ npm install @acme/sdk@1.2.0
23
+
24
+ # yarn
25
+ yarn add @acme/sdk@1.2.0
26
+
27
+ # pnpm
28
+ pnpm add @acme/sdk@1.2.0
29
+ ```
30
+
31
+ ## Verify Installation
32
+
33
+ Create a simple test to verify the SDK is working:
34
+
35
+ ```javascript
36
+ import { Acme } from '@acme/sdk';
37
+
38
+ const client = new Acme({
39
+ apiKey: process.env.ACME_API_KEY,
40
+ });
41
+
42
+ // Test the connection
43
+ const status = await client.ping();
44
+ console.log('Acme SDK connected:', status);
45
+ ```
46
+
47
+ ## Version Compatibility
48
+
49
+ | SDK Version | Node.js | API Version |
50
+ |-------------|---------|-------------|
51
+ | 1.2.x | ≥18.0 | v3 |
52
+ | 1.1.x | ≥16.0 | v2 |
53
+ | 1.0.x | ≥14.0 | v1 |
54
+
55
+ > **Upgrading?** See the [migration guide](/configuration/) for breaking changes between versions.
56
+
57
+ ## Next Steps
58
+
59
+ Once installed, head to [Configuration](/configuration/) to set up your API credentials.
@@ -0,0 +1,6 @@
1
+ +++
2
+ title = "Print Version"
3
+ template = "print.html"
4
+ weight = 999
5
+ render = true
6
+ +++