initrunner 0.2.0__py3-none-any.whl

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 (196) hide show
  1. initrunner/__init__.py +1 -0
  2. initrunner/_compat.py +55 -0
  3. initrunner/_examples_catalog.json +569 -0
  4. initrunner/_graph.py +76 -0
  5. initrunner/_html.py +55 -0
  6. initrunner/_ids.py +10 -0
  7. initrunner/_log.py +51 -0
  8. initrunner/_paths.py +19 -0
  9. initrunner/_signal.py +37 -0
  10. initrunner/_static/app.js +283 -0
  11. initrunner/_static/daisyui.css +19 -0
  12. initrunner/_static/ext/sse.js +290 -0
  13. initrunner/_static/ext/ws.js +471 -0
  14. initrunner/_static/htmx.min.js +1 -0
  15. initrunner/_static/style.css +73 -0
  16. initrunner/_static/tailwindcss.js +83 -0
  17. initrunner/_templates/_macros.html +45 -0
  18. initrunner/_templates/_nav.html +27 -0
  19. initrunner/_templates/audit/_detail.html +84 -0
  20. initrunner/_templates/audit/_table.html +24 -0
  21. initrunner/_templates/audit/list.html +77 -0
  22. initrunner/_templates/auth/login.html +40 -0
  23. initrunner/_templates/base.html +21 -0
  24. initrunner/_templates/chat/_message.html +10 -0
  25. initrunner/_templates/chat/_tool_call.html +17 -0
  26. initrunner/_templates/chat/page.html +179 -0
  27. initrunner/_templates/daemon/page.html +154 -0
  28. initrunner/_templates/ingest/page.html +162 -0
  29. initrunner/_templates/memory/page.html +81 -0
  30. initrunner/_templates/roles/_table.html +41 -0
  31. initrunner/_templates/roles/create.html +300 -0
  32. initrunner/_templates/roles/detail.html +203 -0
  33. initrunner/_templates/roles/list.html +43 -0
  34. initrunner/_yaml.py +45 -0
  35. initrunner/agent/__init__.py +0 -0
  36. initrunner/agent/_env.py +19 -0
  37. initrunner/agent/_paths.py +43 -0
  38. initrunner/agent/_subprocess.py +180 -0
  39. initrunner/agent/_truncate.py +14 -0
  40. initrunner/agent/_urls.py +111 -0
  41. initrunner/agent/api_tools.py +154 -0
  42. initrunner/agent/delegation.py +212 -0
  43. initrunner/agent/executor.py +450 -0
  44. initrunner/agent/git_tools.py +220 -0
  45. initrunner/agent/history.py +46 -0
  46. initrunner/agent/loader.py +188 -0
  47. initrunner/agent/memory_ops.py +165 -0
  48. initrunner/agent/plugins.py +76 -0
  49. initrunner/agent/policies.py +270 -0
  50. initrunner/agent/python_tools.py +111 -0
  51. initrunner/agent/reflection.py +38 -0
  52. initrunner/agent/sandbox.py +355 -0
  53. initrunner/agent/schema.py +719 -0
  54. initrunner/agent/shell_tools.py +121 -0
  55. initrunner/agent/skills.py +272 -0
  56. initrunner/agent/slack_tools.py +65 -0
  57. initrunner/agent/sql_tools.py +114 -0
  58. initrunner/agent/tools/__init__.py +74 -0
  59. initrunner/agent/tools/_registry.py +180 -0
  60. initrunner/agent/tools/custom.py +270 -0
  61. initrunner/agent/tools/datetime_tools.py +42 -0
  62. initrunner/agent/tools/filesystem.py +78 -0
  63. initrunner/agent/tools/http.py +44 -0
  64. initrunner/agent/tools/memory.py +106 -0
  65. initrunner/agent/tools/reflection.py +71 -0
  66. initrunner/agent/tools/registry.py +88 -0
  67. initrunner/agent/tools/retrieval.py +76 -0
  68. initrunner/agent/tools/scheduling.py +90 -0
  69. initrunner/agent/tools/web_reader.py +49 -0
  70. initrunner/agent/tools/web_scraper.py +143 -0
  71. initrunner/api/__init__.py +1 -0
  72. initrunner/api/_helpers.py +54 -0
  73. initrunner/api/app.py +199 -0
  74. initrunner/api/auth.py +36 -0
  75. initrunner/api/facehash.py +146 -0
  76. initrunner/api/models.py +165 -0
  77. initrunner/api/routes/__init__.py +0 -0
  78. initrunner/api/routes/audit.py +55 -0
  79. initrunner/api/routes/auth_ui.py +81 -0
  80. initrunner/api/routes/chat_ui.py +277 -0
  81. initrunner/api/routes/daemon.py +237 -0
  82. initrunner/api/routes/daemon_ui.py +37 -0
  83. initrunner/api/routes/ingest.py +137 -0
  84. initrunner/api/routes/ingest_ui.py +52 -0
  85. initrunner/api/routes/memory.py +71 -0
  86. initrunner/api/routes/memory_ui.py +91 -0
  87. initrunner/api/routes/pages.py +168 -0
  88. initrunner/api/routes/roles.py +220 -0
  89. initrunner/api/state.py +161 -0
  90. initrunner/audit/__init__.py +0 -0
  91. initrunner/audit/_redact.py +31 -0
  92. initrunner/audit/logger.py +583 -0
  93. initrunner/cli/__init__.py +0 -0
  94. initrunner/cli/_helpers.py +147 -0
  95. initrunner/cli/audit_cmd.py +98 -0
  96. initrunner/cli/compose_cmd.py +388 -0
  97. initrunner/cli/examples_cmd.py +131 -0
  98. initrunner/cli/main.py +102 -0
  99. initrunner/cli/mcp_cmd.py +46 -0
  100. initrunner/cli/memory_cmd.py +68 -0
  101. initrunner/cli/plugin_cmd.py +34 -0
  102. initrunner/cli/registry_cmd.py +168 -0
  103. initrunner/cli/role_cmd.py +289 -0
  104. initrunner/cli/run_cmd.py +326 -0
  105. initrunner/cli/server_cmd.py +337 -0
  106. initrunner/cli/setup_cmd.py +405 -0
  107. initrunner/cli/skill_cmd.py +133 -0
  108. initrunner/cli/wizard.py +207 -0
  109. initrunner/compose/__init__.py +38 -0
  110. initrunner/compose/delegate_sink.py +399 -0
  111. initrunner/compose/health.py +92 -0
  112. initrunner/compose/loader.py +17 -0
  113. initrunner/compose/orchestrator.py +457 -0
  114. initrunner/compose/schema.py +126 -0
  115. initrunner/compose/systemd.py +360 -0
  116. initrunner/config.py +53 -0
  117. initrunner/eval/__init__.py +1 -0
  118. initrunner/eval/assertions.py +58 -0
  119. initrunner/eval/runner.py +116 -0
  120. initrunner/eval/schema.py +54 -0
  121. initrunner/examples.py +166 -0
  122. initrunner/ingestion/__init__.py +0 -0
  123. initrunner/ingestion/chunker.py +78 -0
  124. initrunner/ingestion/embeddings.py +127 -0
  125. initrunner/ingestion/extractors.py +124 -0
  126. initrunner/ingestion/pipeline.py +753 -0
  127. initrunner/mcp/__init__.py +0 -0
  128. initrunner/mcp/introspect.py +95 -0
  129. initrunner/mcp/server.py +97 -0
  130. initrunner/memory/__init__.py +0 -0
  131. initrunner/middleware.py +203 -0
  132. initrunner/pipeline/__init__.py +16 -0
  133. initrunner/pipeline/executor.py +255 -0
  134. initrunner/pipeline/loader.py +35 -0
  135. initrunner/pipeline/schema.py +75 -0
  136. initrunner/py.typed +0 -0
  137. initrunner/registry.py +555 -0
  138. initrunner/role_generator.py +274 -0
  139. initrunner/runner/__init__.py +33 -0
  140. initrunner/runner/autonomous.py +244 -0
  141. initrunner/runner/budget.py +55 -0
  142. initrunner/runner/daemon.py +228 -0
  143. initrunner/runner/display.py +146 -0
  144. initrunner/runner/interactive.py +104 -0
  145. initrunner/runner/single.py +38 -0
  146. initrunner/server/__init__.py +0 -0
  147. initrunner/server/app.py +524 -0
  148. initrunner/server/conversations.py +71 -0
  149. initrunner/server/convert.py +90 -0
  150. initrunner/server/models.py +71 -0
  151. initrunner/server/rate_limiter.py +40 -0
  152. initrunner/services.py +583 -0
  153. initrunner/sinks/__init__.py +0 -0
  154. initrunner/sinks/base.py +70 -0
  155. initrunner/sinks/custom.py +30 -0
  156. initrunner/sinks/dispatcher.py +105 -0
  157. initrunner/sinks/file.py +45 -0
  158. initrunner/sinks/webhook.py +51 -0
  159. initrunner/stores/__init__.py +39 -0
  160. initrunner/stores/base.py +258 -0
  161. initrunner/stores/factory.py +69 -0
  162. initrunner/stores/sqlite_vec.py +872 -0
  163. initrunner/templates.py +476 -0
  164. initrunner/triggers/__init__.py +0 -0
  165. initrunner/triggers/base.py +40 -0
  166. initrunner/triggers/cron.py +39 -0
  167. initrunner/triggers/dispatcher.py +104 -0
  168. initrunner/triggers/file_watcher.py +67 -0
  169. initrunner/triggers/schedule_queue.py +101 -0
  170. initrunner/triggers/webhook.py +102 -0
  171. initrunner/tui/__init__.py +15 -0
  172. initrunner/tui/app.py +44 -0
  173. initrunner/tui/app.tcss +364 -0
  174. initrunner/tui/screens/__init__.py +1 -0
  175. initrunner/tui/screens/audit.py +148 -0
  176. initrunner/tui/screens/base.py +95 -0
  177. initrunner/tui/screens/daemon.py +200 -0
  178. initrunner/tui/screens/detail.py +474 -0
  179. initrunner/tui/screens/detail_fields.py +350 -0
  180. initrunner/tui/screens/detail_modals.py +162 -0
  181. initrunner/tui/screens/detail_yaml.py +49 -0
  182. initrunner/tui/screens/help.py +116 -0
  183. initrunner/tui/screens/ingest.py +156 -0
  184. initrunner/tui/screens/memory.py +153 -0
  185. initrunner/tui/screens/roles.py +303 -0
  186. initrunner/tui/screens/run.py +444 -0
  187. initrunner/tui/services.py +220 -0
  188. initrunner/tui/theme.py +26 -0
  189. initrunner/tui/widgets/__init__.py +1 -0
  190. initrunner/tui/widgets/chat_input.py +27 -0
  191. initrunner/tui/widgets/chat_view.py +246 -0
  192. initrunner-0.2.0.dist-info/METADATA +486 -0
  193. initrunner-0.2.0.dist-info/RECORD +196 -0
  194. initrunner-0.2.0.dist-info/WHEEL +4 -0
  195. initrunner-0.2.0.dist-info/entry_points.txt +2 -0
  196. initrunner-0.2.0.dist-info/licenses/LICENSE +21 -0
initrunner/__init__.py ADDED
@@ -0,0 +1 @@
1
+ __version__ = "0.2.0"
initrunner/_compat.py ADDED
@@ -0,0 +1,55 @@
1
+ """Optional dependency helpers with actionable error messages."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import importlib
6
+
7
+ _PROVIDER_PACKAGES: dict[str, str] = {
8
+ "openai": "openai",
9
+ "anthropic": "anthropic",
10
+ "google": "google.generativeai",
11
+ "groq": "groq",
12
+ "mistral": "mistralai",
13
+ "cohere": "cohere",
14
+ }
15
+
16
+ _PROVIDER_EXTRAS: dict[str, str] = {
17
+ "anthropic": "anthropic",
18
+ "google": "google",
19
+ "groq": "groq",
20
+ "mistral": "mistral",
21
+ "cohere": "all-models",
22
+ }
23
+
24
+ _INGEST_PACKAGES: dict[str, str] = {
25
+ "pymupdf4llm": "pymupdf4llm",
26
+ "docx": "python-docx",
27
+ "openpyxl": "openpyxl",
28
+ }
29
+
30
+
31
+ def require_provider(provider: str) -> None:
32
+ """Check that the SDK for *provider* is importable, or raise with install hint."""
33
+ if provider in ("openai", "ollama"):
34
+ return # openai SDK always available with core install; ollama uses it
35
+ module = _PROVIDER_PACKAGES.get(provider)
36
+ if module is None:
37
+ raise RuntimeError(f"Unknown provider '{provider}'")
38
+ try:
39
+ importlib.import_module(module)
40
+ except ImportError:
41
+ extra = _PROVIDER_EXTRAS.get(provider, "all-models")
42
+ raise RuntimeError(
43
+ f"Provider '{provider}' requires: pip install initrunner[{extra}]"
44
+ ) from None
45
+
46
+
47
+ def require_ingest(package: str) -> None:
48
+ """Check that a heavy ingest dependency is importable, or raise with install hint."""
49
+ try:
50
+ importlib.import_module(package)
51
+ except ImportError:
52
+ pip_name = _INGEST_PACKAGES.get(package, package)
53
+ raise RuntimeError(
54
+ f"'{pip_name}' is required for this file type: pip install initrunner[ingest]"
55
+ ) from None