jvagent 0.1.1__tar.gz

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 (657) hide show
  1. jvagent-0.1.1/.env.example +279 -0
  2. jvagent-0.1.1/AUTHORS +15 -0
  3. jvagent-0.1.1/LICENSE +21 -0
  4. jvagent-0.1.1/MANIFEST.in +23 -0
  5. jvagent-0.1.1/PKG-INFO +380 -0
  6. jvagent-0.1.1/README.md +306 -0
  7. jvagent-0.1.1/docs/ORCHESTRATOR.md +295 -0
  8. jvagent-0.1.1/docs/configuration.md +135 -0
  9. jvagent-0.1.1/docs/database-indexing.md +40 -0
  10. jvagent-0.1.1/docs/deprecated-api-migration.md +34 -0
  11. jvagent-0.1.1/docs/environment-keys-reference.md +253 -0
  12. jvagent-0.1.1/docs/error-logging.md +401 -0
  13. jvagent-0.1.1/docs/integrations-environment.md +127 -0
  14. jvagent-0.1.1/docs/interaction-logging.md +275 -0
  15. jvagent-0.1.1/docs/jvchat.md +68 -0
  16. jvagent-0.1.1/docs/language-models.md +108 -0
  17. jvagent-0.1.1/docs/logging.md +793 -0
  18. jvagent-0.1.1/docs/orchestration-modes.md +36 -0
  19. jvagent-0.1.1/docs/proactive-messages.md +282 -0
  20. jvagent-0.1.1/docs/scaffolding.md +233 -0
  21. jvagent-0.1.1/docs/security-review.md +553 -0
  22. jvagent-0.1.1/docs/task-tracking.md +242 -0
  23. jvagent-0.1.1/docs/thin-harness.md +93 -0
  24. jvagent-0.1.1/jvagent/__init__.py +35 -0
  25. jvagent-0.1.1/jvagent/__main__.py +6 -0
  26. jvagent-0.1.1/jvagent/_logging_compat.py +70 -0
  27. jvagent-0.1.1/jvagent/_mimetypes_compat.py +53 -0
  28. jvagent-0.1.1/jvagent/action/AGENTS.md +1 -0
  29. jvagent-0.1.1/jvagent/action/CLAUDE.md +145 -0
  30. jvagent-0.1.1/jvagent/action/README.md +34 -0
  31. jvagent-0.1.1/jvagent/action/__init__.py +33 -0
  32. jvagent-0.1.1/jvagent/action/access_control/README.md +230 -0
  33. jvagent-0.1.1/jvagent/action/access_control/__init__.py +10 -0
  34. jvagent-0.1.1/jvagent/action/access_control/access_control_action.py +452 -0
  35. jvagent-0.1.1/jvagent/action/access_control/endpoints.py +602 -0
  36. jvagent-0.1.1/jvagent/action/access_control/info.yaml +17 -0
  37. jvagent-0.1.1/jvagent/action/actions.py +728 -0
  38. jvagent-0.1.1/jvagent/action/agent_utils/README.md +3 -0
  39. jvagent-0.1.1/jvagent/action/agent_utils/__init__.py +10 -0
  40. jvagent-0.1.1/jvagent/action/agent_utils/agent_utils.py +112 -0
  41. jvagent-0.1.1/jvagent/action/agent_utils/endpoints.py +59 -0
  42. jvagent-0.1.1/jvagent/action/agent_utils/info.yaml +16 -0
  43. jvagent-0.1.1/jvagent/action/avatar_action/README.md +20 -0
  44. jvagent-0.1.1/jvagent/action/avatar_action/__init__.py +10 -0
  45. jvagent-0.1.1/jvagent/action/avatar_action/avatar_action.py +228 -0
  46. jvagent-0.1.1/jvagent/action/avatar_action/endpoints.py +275 -0
  47. jvagent-0.1.1/jvagent/action/avatar_action/info.yaml +14 -0
  48. jvagent-0.1.1/jvagent/action/base.py +1297 -0
  49. jvagent-0.1.1/jvagent/action/channels/__init__.py +1 -0
  50. jvagent-0.1.1/jvagent/action/channels/media.py +159 -0
  51. jvagent-0.1.1/jvagent/action/code_execution/__init__.py +8 -0
  52. jvagent-0.1.1/jvagent/action/code_execution/code_execution_action.py +203 -0
  53. jvagent-0.1.1/jvagent/action/code_execution/executor.py +223 -0
  54. jvagent-0.1.1/jvagent/action/code_execution/info.yaml +20 -0
  55. jvagent-0.1.1/jvagent/action/email_action/README.md +35 -0
  56. jvagent-0.1.1/jvagent/action/email_action/__init__.py +6 -0
  57. jvagent-0.1.1/jvagent/action/email_action/canonical_send_builder.py +191 -0
  58. jvagent-0.1.1/jvagent/action/email_action/email_action.py +685 -0
  59. jvagent-0.1.1/jvagent/action/email_action/email_adapter.py +222 -0
  60. jvagent-0.1.1/jvagent/action/email_action/email_filter.py +100 -0
  61. jvagent-0.1.1/jvagent/action/email_action/email_payload.py +74 -0
  62. jvagent-0.1.1/jvagent/action/email_action/email_utterance.py +68 -0
  63. jvagent-0.1.1/jvagent/action/email_action/email_webhook_helpers.py +172 -0
  64. jvagent-0.1.1/jvagent/action/email_action/endpoints.py +536 -0
  65. jvagent-0.1.1/jvagent/action/email_action/gmail_inbox.py +153 -0
  66. jvagent-0.1.1/jvagent/action/email_action/inbound/__init__.py +7 -0
  67. jvagent-0.1.1/jvagent/action/email_action/inbound/gmail.py +172 -0
  68. jvagent-0.1.1/jvagent/action/email_action/inbound/outlook.py +125 -0
  69. jvagent-0.1.1/jvagent/action/email_action/inbound/sendgrid.py +181 -0
  70. jvagent-0.1.1/jvagent/action/email_action/inbound/text_utils.py +11 -0
  71. jvagent-0.1.1/jvagent/action/email_action/info.yaml +21 -0
  72. jvagent-0.1.1/jvagent/action/email_action/modules/__init__.py +15 -0
  73. jvagent-0.1.1/jvagent/action/email_action/modules/base.py +42 -0
  74. jvagent-0.1.1/jvagent/action/email_action/modules/gmail.py +151 -0
  75. jvagent-0.1.1/jvagent/action/email_action/modules/outlook.py +135 -0
  76. jvagent-0.1.1/jvagent/action/email_action/modules/sendgrid.py +294 -0
  77. jvagent-0.1.1/jvagent/action/email_action/outlook_inbox.py +149 -0
  78. jvagent-0.1.1/jvagent/action/email_action/utils/__init__.py +1 -0
  79. jvagent-0.1.1/jvagent/action/email_action/webhook_auth.py +12 -0
  80. jvagent-0.1.1/jvagent/action/endpoints.py +587 -0
  81. jvagent-0.1.1/jvagent/action/facebook_action/README.md +142 -0
  82. jvagent-0.1.1/jvagent/action/facebook_action/__init__.py +9 -0
  83. jvagent-0.1.1/jvagent/action/facebook_action/endpoints.py +803 -0
  84. jvagent-0.1.1/jvagent/action/facebook_action/facebook_action.py +844 -0
  85. jvagent-0.1.1/jvagent/action/facebook_action/facebook_api.py +807 -0
  86. jvagent-0.1.1/jvagent/action/facebook_action/info.yaml +16 -0
  87. jvagent-0.1.1/jvagent/action/facebook_action/messenger_adapter.py +121 -0
  88. jvagent-0.1.1/jvagent/action/facebook_action/messenger_filter.py +27 -0
  89. jvagent-0.1.1/jvagent/action/facebook_action/messenger_message_coalescer.py +161 -0
  90. jvagent-0.1.1/jvagent/action/facebook_action/messenger_voice_filter.py +58 -0
  91. jvagent-0.1.1/jvagent/action/facebook_action/messenger_webhook_helpers.py +551 -0
  92. jvagent-0.1.1/jvagent/action/facebook_action/webhook_auth.py +12 -0
  93. jvagent-0.1.1/jvagent/action/file_interface/__init__.py +5 -0
  94. jvagent-0.1.1/jvagent/action/file_interface/_core.py +271 -0
  95. jvagent-0.1.1/jvagent/action/file_interface/file_interface_action.py +187 -0
  96. jvagent-0.1.1/jvagent/action/file_interface/info.yaml +19 -0
  97. jvagent-0.1.1/jvagent/action/google/__init__.py +5 -0
  98. jvagent-0.1.1/jvagent/action/google/endpoints.py +385 -0
  99. jvagent-0.1.1/jvagent/action/google/google_action.py +382 -0
  100. jvagent-0.1.1/jvagent/action/google/google_calendar_action/README.md +86 -0
  101. jvagent-0.1.1/jvagent/action/google/google_calendar_action/__init__.py +6 -0
  102. jvagent-0.1.1/jvagent/action/google/google_calendar_action/endpoints.py +237 -0
  103. jvagent-0.1.1/jvagent/action/google/google_calendar_action/google_calendar_action.py +121 -0
  104. jvagent-0.1.1/jvagent/action/google/google_calendar_action/info.yaml +22 -0
  105. jvagent-0.1.1/jvagent/action/google/google_docs_action/__init__.py +6 -0
  106. jvagent-0.1.1/jvagent/action/google/google_docs_action/endpoints.py +135 -0
  107. jvagent-0.1.1/jvagent/action/google/google_docs_action/google_docs_action.py +330 -0
  108. jvagent-0.1.1/jvagent/action/google/google_docs_action/info.yaml +24 -0
  109. jvagent-0.1.1/jvagent/action/google/google_drive_action/README.md +240 -0
  110. jvagent-0.1.1/jvagent/action/google/google_drive_action/__init__.py +6 -0
  111. jvagent-0.1.1/jvagent/action/google/google_drive_action/endpoints.py +408 -0
  112. jvagent-0.1.1/jvagent/action/google/google_drive_action/google_drive_action.py +421 -0
  113. jvagent-0.1.1/jvagent/action/google/google_drive_action/info.yaml +24 -0
  114. jvagent-0.1.1/jvagent/action/google/google_gmail_action/README.md +64 -0
  115. jvagent-0.1.1/jvagent/action/google/google_gmail_action/__init__.py +6 -0
  116. jvagent-0.1.1/jvagent/action/google/google_gmail_action/endpoints.py +170 -0
  117. jvagent-0.1.1/jvagent/action/google/google_gmail_action/google_gmail_action.py +138 -0
  118. jvagent-0.1.1/jvagent/action/google/google_gmail_action/info.yaml +23 -0
  119. jvagent-0.1.1/jvagent/action/google/google_sheets_action/README.md +88 -0
  120. jvagent-0.1.1/jvagent/action/google/google_sheets_action/__init__.py +6 -0
  121. jvagent-0.1.1/jvagent/action/google/google_sheets_action/endpoints.py +1098 -0
  122. jvagent-0.1.1/jvagent/action/google/google_sheets_action/google_sheets_action.py +1264 -0
  123. jvagent-0.1.1/jvagent/action/google/google_sheets_action/info.yaml +22 -0
  124. jvagent-0.1.1/jvagent/action/google/google_token.py +61 -0
  125. jvagent-0.1.1/jvagent/action/handoff_interact_action/README.md +13 -0
  126. jvagent-0.1.1/jvagent/action/handoff_interact_action/__init__.py +5 -0
  127. jvagent-0.1.1/jvagent/action/handoff_interact_action/handoff_interact_action.py +454 -0
  128. jvagent-0.1.1/jvagent/action/handoff_interact_action/info.yaml +37 -0
  129. jvagent-0.1.1/jvagent/action/interact/AGENTS.md +1 -0
  130. jvagent-0.1.1/jvagent/action/interact/CLAUDE.md +139 -0
  131. jvagent-0.1.1/jvagent/action/interact/README.md +453 -0
  132. jvagent-0.1.1/jvagent/action/interact/__init__.py +12 -0
  133. jvagent-0.1.1/jvagent/action/interact/base.py +543 -0
  134. jvagent-0.1.1/jvagent/action/interact/conversation_lock_manager.py +51 -0
  135. jvagent-0.1.1/jvagent/action/interact/endpoints.py +929 -0
  136. jvagent-0.1.1/jvagent/action/interact/interact_walker.py +1013 -0
  137. jvagent-0.1.1/jvagent/action/interact/rate_limiter.py +328 -0
  138. jvagent-0.1.1/jvagent/action/interact/response_builder.py +233 -0
  139. jvagent-0.1.1/jvagent/action/interact/session_token.py +406 -0
  140. jvagent-0.1.1/jvagent/action/interact/utils/__init__.py +1 -0
  141. jvagent-0.1.1/jvagent/action/interact/utils/uploads.py +225 -0
  142. jvagent-0.1.1/jvagent/action/interact/webhook_pipeline.py +394 -0
  143. jvagent-0.1.1/jvagent/action/interview/AGENTS.md +1 -0
  144. jvagent-0.1.1/jvagent/action/interview/CLAUDE.md +119 -0
  145. jvagent-0.1.1/jvagent/action/interview/README.md +507 -0
  146. jvagent-0.1.1/jvagent/action/interview/SKILL.md +100 -0
  147. jvagent-0.1.1/jvagent/action/interview/__init__.py +24 -0
  148. jvagent-0.1.1/jvagent/action/interview/_validate_contract.py +65 -0
  149. jvagent-0.1.1/jvagent/action/interview/activation_seed.py +146 -0
  150. jvagent-0.1.1/jvagent/action/interview/directive_compose.py +175 -0
  151. jvagent-0.1.1/jvagent/action/interview/docs/extending.md +553 -0
  152. jvagent-0.1.1/jvagent/action/interview/docs/frontmatter-schema.md +165 -0
  153. jvagent-0.1.1/jvagent/action/interview/docs/multi-turn-flow.md +239 -0
  154. jvagent-0.1.1/jvagent/action/interview/docs/skill_custom_instructions.md +102 -0
  155. jvagent-0.1.1/jvagent/action/interview/docs/thin-harness.md +92 -0
  156. jvagent-0.1.1/jvagent/action/interview/docs/troubleshooting.md +204 -0
  157. jvagent-0.1.1/jvagent/action/interview/engine.py +1852 -0
  158. jvagent-0.1.1/jvagent/action/interview/examples/example_account_gating/README.md +57 -0
  159. jvagent-0.1.1/jvagent/action/interview/examples/example_account_gating/example_booking_interview/SKILL.md +65 -0
  160. jvagent-0.1.1/jvagent/action/interview/examples/example_account_gating/example_signin_interview/SKILL.md +37 -0
  161. jvagent-0.1.1/jvagent/action/interview/examples/example_account_gating/use-cases/booking-gated-no-session.yaml +34 -0
  162. jvagent-0.1.1/jvagent/action/interview/examples/example_account_gating/use-cases/booking-with-session.yaml +32 -0
  163. jvagent-0.1.1/jvagent/action/interview/examples/example_for_each_interview/SKILL.md +57 -0
  164. jvagent-0.1.1/jvagent/action/interview/examples/example_for_each_interview/scripts/custom_tools.py +59 -0
  165. jvagent-0.1.1/jvagent/action/interview/examples/example_interview/SKILL.md +95 -0
  166. jvagent-0.1.1/jvagent/action/interview/examples/example_interview/scripts/custom_tools.py +331 -0
  167. jvagent-0.1.1/jvagent/action/interview/flow.py +477 -0
  168. jvagent-0.1.1/jvagent/action/interview/for_each.py +398 -0
  169. jvagent-0.1.1/jvagent/action/interview/hooks.py +709 -0
  170. jvagent-0.1.1/jvagent/action/interview/info.yaml +23 -0
  171. jvagent-0.1.1/jvagent/action/interview/interview_action.py +372 -0
  172. jvagent-0.1.1/jvagent/action/interview/procedure.py +33 -0
  173. jvagent-0.1.1/jvagent/action/interview/session.py +168 -0
  174. jvagent-0.1.1/jvagent/action/interview/spec.py +403 -0
  175. jvagent-0.1.1/jvagent/action/interview/tasks.py +133 -0
  176. jvagent-0.1.1/jvagent/action/interview/tools.py +220 -0
  177. jvagent-0.1.1/jvagent/action/interview/validators.py +246 -0
  178. jvagent-0.1.1/jvagent/action/intro/README.md +62 -0
  179. jvagent-0.1.1/jvagent/action/intro/__init__.py +5 -0
  180. jvagent-0.1.1/jvagent/action/intro/info.yaml +26 -0
  181. jvagent-0.1.1/jvagent/action/intro/intro_interact_action.py +132 -0
  182. jvagent-0.1.1/jvagent/action/leadgen/README.md +42 -0
  183. jvagent-0.1.1/jvagent/action/leadgen/SKILL.md +58 -0
  184. jvagent-0.1.1/jvagent/action/leadgen/__init__.py +12 -0
  185. jvagent-0.1.1/jvagent/action/leadgen/_validate_contract.py +46 -0
  186. jvagent-0.1.1/jvagent/action/leadgen/docs/extending.md +41 -0
  187. jvagent-0.1.1/jvagent/action/leadgen/docs/frontmatter-schema.md +104 -0
  188. jvagent-0.1.1/jvagent/action/leadgen/docs/thin-harness.md +25 -0
  189. jvagent-0.1.1/jvagent/action/leadgen/docs/troubleshooting.md +12 -0
  190. jvagent-0.1.1/jvagent/action/leadgen/engine.py +413 -0
  191. jvagent-0.1.1/jvagent/action/leadgen/examples/example_leadgen/SKILL.md +80 -0
  192. jvagent-0.1.1/jvagent/action/leadgen/examples/example_leadgen/scripts/custom_tools.py +21 -0
  193. jvagent-0.1.1/jvagent/action/leadgen/hooks.py +97 -0
  194. jvagent-0.1.1/jvagent/action/leadgen/info.yaml +15 -0
  195. jvagent-0.1.1/jvagent/action/leadgen/leadgen_action.py +148 -0
  196. jvagent-0.1.1/jvagent/action/leadgen/procedure.py +21 -0
  197. jvagent-0.1.1/jvagent/action/leadgen/spec.py +240 -0
  198. jvagent-0.1.1/jvagent/action/leadgen/store.py +255 -0
  199. jvagent-0.1.1/jvagent/action/leadgen/sync.py +166 -0
  200. jvagent-0.1.1/jvagent/action/leadgen/tools.py +178 -0
  201. jvagent-0.1.1/jvagent/action/leadgen/validators.py +97 -0
  202. jvagent-0.1.1/jvagent/action/loader/__init__.py +14 -0
  203. jvagent-0.1.1/jvagent/action/loader/action_loader.py +1300 -0
  204. jvagent-0.1.1/jvagent/action/loader/core_discovery.py +129 -0
  205. jvagent-0.1.1/jvagent/action/loader/factory.py +44 -0
  206. jvagent-0.1.1/jvagent/action/loader/importer.py +153 -0
  207. jvagent-0.1.1/jvagent/action/loader/info_yaml.py +46 -0
  208. jvagent-0.1.1/jvagent/action/loader/metadata.py +128 -0
  209. jvagent-0.1.1/jvagent/action/loader/module_loading.py +167 -0
  210. jvagent-0.1.1/jvagent/action/manifest.py +298 -0
  211. jvagent-0.1.1/jvagent/action/mcp/README.md +142 -0
  212. jvagent-0.1.1/jvagent/action/mcp/__init__.py +6 -0
  213. jvagent-0.1.1/jvagent/action/mcp/client.py +215 -0
  214. jvagent-0.1.1/jvagent/action/mcp/fs_server_factory.py +112 -0
  215. jvagent-0.1.1/jvagent/action/mcp/info.yaml +20 -0
  216. jvagent-0.1.1/jvagent/action/mcp/jvspatial_fs_server.py +308 -0
  217. jvagent-0.1.1/jvagent/action/mcp/mcp_action.py +878 -0
  218. jvagent-0.1.1/jvagent/action/mcp/prompts.py +35 -0
  219. jvagent-0.1.1/jvagent/action/mcp/result.py +25 -0
  220. jvagent-0.1.1/jvagent/action/microsoft/README.md +111 -0
  221. jvagent-0.1.1/jvagent/action/microsoft/__init__.py +3 -0
  222. jvagent-0.1.1/jvagent/action/microsoft/endpoints.py +333 -0
  223. jvagent-0.1.1/jvagent/action/microsoft/microsoft_action.py +347 -0
  224. jvagent-0.1.1/jvagent/action/microsoft/microsoft_excel_action/README.md +58 -0
  225. jvagent-0.1.1/jvagent/action/microsoft/microsoft_excel_action/__init__.py +4 -0
  226. jvagent-0.1.1/jvagent/action/microsoft/microsoft_excel_action/endpoints.py +187 -0
  227. jvagent-0.1.1/jvagent/action/microsoft/microsoft_excel_action/info.yaml +18 -0
  228. jvagent-0.1.1/jvagent/action/microsoft/microsoft_excel_action/microsoft_excel_action.py +583 -0
  229. jvagent-0.1.1/jvagent/action/microsoft/microsoft_onedrive_action/README.md +44 -0
  230. jvagent-0.1.1/jvagent/action/microsoft/microsoft_onedrive_action/__init__.py +4 -0
  231. jvagent-0.1.1/jvagent/action/microsoft/microsoft_onedrive_action/endpoints.py +260 -0
  232. jvagent-0.1.1/jvagent/action/microsoft/microsoft_onedrive_action/info.yaml +17 -0
  233. jvagent-0.1.1/jvagent/action/microsoft/microsoft_onedrive_action/microsoft_onedrive_action.py +293 -0
  234. jvagent-0.1.1/jvagent/action/microsoft/microsoft_outlook_calendar_action/README.md +38 -0
  235. jvagent-0.1.1/jvagent/action/microsoft/microsoft_outlook_calendar_action/__init__.py +4 -0
  236. jvagent-0.1.1/jvagent/action/microsoft/microsoft_outlook_calendar_action/endpoints.py +168 -0
  237. jvagent-0.1.1/jvagent/action/microsoft/microsoft_outlook_calendar_action/info.yaml +17 -0
  238. jvagent-0.1.1/jvagent/action/microsoft/microsoft_outlook_calendar_action/microsoft_outlook_calendar_action.py +163 -0
  239. jvagent-0.1.1/jvagent/action/microsoft/microsoft_outlook_mail_action/README.md +43 -0
  240. jvagent-0.1.1/jvagent/action/microsoft/microsoft_outlook_mail_action/__init__.py +4 -0
  241. jvagent-0.1.1/jvagent/action/microsoft/microsoft_outlook_mail_action/endpoints.py +161 -0
  242. jvagent-0.1.1/jvagent/action/microsoft/microsoft_outlook_mail_action/info.yaml +17 -0
  243. jvagent-0.1.1/jvagent/action/microsoft/microsoft_outlook_mail_action/microsoft_outlook_mail_action.py +253 -0
  244. jvagent-0.1.1/jvagent/action/microsoft/microsoft_token.py +60 -0
  245. jvagent-0.1.1/jvagent/action/model/README.md +783 -0
  246. jvagent-0.1.1/jvagent/action/model/__init__.py +72 -0
  247. jvagent-0.1.1/jvagent/action/model/base.py +482 -0
  248. jvagent-0.1.1/jvagent/action/model/context.py +259 -0
  249. jvagent-0.1.1/jvagent/action/model/cost_estimator.py +108 -0
  250. jvagent-0.1.1/jvagent/action/model/embedding/__init__.py +24 -0
  251. jvagent-0.1.1/jvagent/action/model/embedding/base.py +152 -0
  252. jvagent-0.1.1/jvagent/action/model/embedding/endpoints.py +459 -0
  253. jvagent-0.1.1/jvagent/action/model/embedding/generic/__init__.py +5 -0
  254. jvagent-0.1.1/jvagent/action/model/embedding/generic/generic.py +191 -0
  255. jvagent-0.1.1/jvagent/action/model/embedding/generic/info.yaml +34 -0
  256. jvagent-0.1.1/jvagent/action/model/embedding/huggingface/__init__.py +5 -0
  257. jvagent-0.1.1/jvagent/action/model/embedding/huggingface/huggingface.py +132 -0
  258. jvagent-0.1.1/jvagent/action/model/embedding/huggingface/info.yaml +34 -0
  259. jvagent-0.1.1/jvagent/action/model/embedding/ollama/__init__.py +5 -0
  260. jvagent-0.1.1/jvagent/action/model/embedding/ollama/info.yaml +22 -0
  261. jvagent-0.1.1/jvagent/action/model/embedding/ollama/ollama.py +117 -0
  262. jvagent-0.1.1/jvagent/action/model/embedding/openai/__init__.py +5 -0
  263. jvagent-0.1.1/jvagent/action/model/embedding/openai/info.yaml +35 -0
  264. jvagent-0.1.1/jvagent/action/model/embedding/openai/openai.py +180 -0
  265. jvagent-0.1.1/jvagent/action/model/embedding/openrouter/__init__.py +5 -0
  266. jvagent-0.1.1/jvagent/action/model/embedding/openrouter/info.yaml +34 -0
  267. jvagent-0.1.1/jvagent/action/model/embedding/openrouter/openrouter.py +136 -0
  268. jvagent-0.1.1/jvagent/action/model/language/__init__.py +39 -0
  269. jvagent-0.1.1/jvagent/action/model/language/anthropic/__init__.py +5 -0
  270. jvagent-0.1.1/jvagent/action/model/language/anthropic/anthropic.py +625 -0
  271. jvagent-0.1.1/jvagent/action/model/language/anthropic/info.yaml +22 -0
  272. jvagent-0.1.1/jvagent/action/model/language/base.py +1238 -0
  273. jvagent-0.1.1/jvagent/action/model/language/endpoints.py +498 -0
  274. jvagent-0.1.1/jvagent/action/model/language/groq/__init__.py +5 -0
  275. jvagent-0.1.1/jvagent/action/model/language/groq/groq.py +100 -0
  276. jvagent-0.1.1/jvagent/action/model/language/groq/info.yaml +37 -0
  277. jvagent-0.1.1/jvagent/action/model/language/ollama/__init__.py +5 -0
  278. jvagent-0.1.1/jvagent/action/model/language/ollama/info.yaml +22 -0
  279. jvagent-0.1.1/jvagent/action/model/language/ollama/ollama.py +475 -0
  280. jvagent-0.1.1/jvagent/action/model/language/openai/__init__.py +5 -0
  281. jvagent-0.1.1/jvagent/action/model/language/openai/info.yaml +35 -0
  282. jvagent-0.1.1/jvagent/action/model/language/openai/openai.py +702 -0
  283. jvagent-0.1.1/jvagent/action/model/language/openrouter/__init__.py +5 -0
  284. jvagent-0.1.1/jvagent/action/model/language/openrouter/info.yaml +34 -0
  285. jvagent-0.1.1/jvagent/action/model/language/openrouter/openrouter.py +222 -0
  286. jvagent-0.1.1/jvagent/action/model/language/templates.py +255 -0
  287. jvagent-0.1.1/jvagent/action/model/language/tools.py +405 -0
  288. jvagent-0.1.1/jvagent/action/model/ollama_endpoint.py +15 -0
  289. jvagent-0.1.1/jvagent/action/model/utils/__init__.py +1 -0
  290. jvagent-0.1.1/jvagent/action/model/utils/message_format.py +87 -0
  291. jvagent-0.1.1/jvagent/action/model/utils/token_estimation.py +201 -0
  292. jvagent-0.1.1/jvagent/action/oauth/__init__.py +29 -0
  293. jvagent-0.1.1/jvagent/action/oauth/audit.py +92 -0
  294. jvagent-0.1.1/jvagent/action/oauth/state.py +162 -0
  295. jvagent-0.1.1/jvagent/action/oauth/token_crypto.py +219 -0
  296. jvagent-0.1.1/jvagent/action/orchestrator/__init__.py +21 -0
  297. jvagent-0.1.1/jvagent/action/orchestrator/access.py +66 -0
  298. jvagent-0.1.1/jvagent/action/orchestrator/catalog.py +236 -0
  299. jvagent-0.1.1/jvagent/action/orchestrator/constants.py +37 -0
  300. jvagent-0.1.1/jvagent/action/orchestrator/continuation.py +326 -0
  301. jvagent-0.1.1/jvagent/action/orchestrator/core_tools.py +298 -0
  302. jvagent-0.1.1/jvagent/action/orchestrator/egress.py +127 -0
  303. jvagent-0.1.1/jvagent/action/orchestrator/info.yaml +33 -0
  304. jvagent-0.1.1/jvagent/action/orchestrator/loop.py +867 -0
  305. jvagent-0.1.1/jvagent/action/orchestrator/loop_helpers.py +16 -0
  306. jvagent-0.1.1/jvagent/action/orchestrator/orchestrator_interact_action.py +2790 -0
  307. jvagent-0.1.1/jvagent/action/orchestrator/preconditions.py +74 -0
  308. jvagent-0.1.1/jvagent/action/orchestrator/proactive_tools.py +73 -0
  309. jvagent-0.1.1/jvagent/action/orchestrator/prompts.py +252 -0
  310. jvagent-0.1.1/jvagent/action/orchestrator/skill_providers.py +59 -0
  311. jvagent-0.1.1/jvagent/action/orchestrator/skill_tasks.py +1011 -0
  312. jvagent-0.1.1/jvagent/action/orchestrator/skills.py +204 -0
  313. jvagent-0.1.1/jvagent/action/orchestrator/task_runners.py +95 -0
  314. jvagent-0.1.1/jvagent/action/orchestrator/tools.py +164 -0
  315. jvagent-0.1.1/jvagent/action/orchestrator/uploads.py +291 -0
  316. jvagent-0.1.1/jvagent/action/orchestrator/walk_path.py +48 -0
  317. jvagent-0.1.1/jvagent/action/pageindex/README.md +228 -0
  318. jvagent-0.1.1/jvagent/action/pageindex/__init__.py +50 -0
  319. jvagent-0.1.1/jvagent/action/pageindex/adapter.py +265 -0
  320. jvagent-0.1.1/jvagent/action/pageindex/config.py +439 -0
  321. jvagent-0.1.1/jvagent/action/pageindex/core/README.md +16 -0
  322. jvagent-0.1.1/jvagent/action/pageindex/core/__init__.py +2 -0
  323. jvagent-0.1.1/jvagent/action/pageindex/core/config.yaml +9 -0
  324. jvagent-0.1.1/jvagent/action/pageindex/core/page_index.py +1389 -0
  325. jvagent-0.1.1/jvagent/action/pageindex/core/page_index_md.py +419 -0
  326. jvagent-0.1.1/jvagent/action/pageindex/core/utils.py +722 -0
  327. jvagent-0.1.1/jvagent/action/pageindex/docling_convert.py +252 -0
  328. jvagent-0.1.1/jvagent/action/pageindex/document_walker.py +105 -0
  329. jvagent-0.1.1/jvagent/action/pageindex/documents.py +1307 -0
  330. jvagent-0.1.1/jvagent/action/pageindex/endpoints.py +2241 -0
  331. jvagent-0.1.1/jvagent/action/pageindex/jvforge_assimilate.py +363 -0
  332. jvagent-0.1.1/jvagent/action/pageindex/jvforge_routing.py +34 -0
  333. jvagent-0.1.1/jvagent/action/pageindex/lexical_index.py +326 -0
  334. jvagent-0.1.1/jvagent/action/pageindex/llm_bridge.py +148 -0
  335. jvagent-0.1.1/jvagent/action/pageindex/llm_override.py +59 -0
  336. jvagent-0.1.1/jvagent/action/pageindex/markdown_pages.py +108 -0
  337. jvagent-0.1.1/jvagent/action/pageindex/md_tree_enriched.py +667 -0
  338. jvagent-0.1.1/jvagent/action/pageindex/models.py +200 -0
  339. jvagent-0.1.1/jvagent/action/pageindex/pageindex_action/__init__.py +13 -0
  340. jvagent-0.1.1/jvagent/action/pageindex/pageindex_action/info.yaml +30 -0
  341. jvagent-0.1.1/jvagent/action/pageindex/pageindex_action/pageindex_action.py +949 -0
  342. jvagent-0.1.1/jvagent/action/pageindex/pageindex_action/runtime_config.py +133 -0
  343. jvagent-0.1.1/jvagent/action/pageindex/pageindex_google_drive_sync_action/README.md +195 -0
  344. jvagent-0.1.1/jvagent/action/pageindex/pageindex_google_drive_sync_action/__init__.py +21 -0
  345. jvagent-0.1.1/jvagent/action/pageindex/pageindex_google_drive_sync_action/drive_ingest_filter.py +55 -0
  346. jvagent-0.1.1/jvagent/action/pageindex/pageindex_google_drive_sync_action/endpoints.py +693 -0
  347. jvagent-0.1.1/jvagent/action/pageindex/pageindex_google_drive_sync_action/google_drive_documents.py +52 -0
  348. jvagent-0.1.1/jvagent/action/pageindex/pageindex_google_drive_sync_action/info.yaml +30 -0
  349. jvagent-0.1.1/jvagent/action/pageindex/pageindex_google_drive_sync_action/pageindex_google_drive_sync_action.py +1629 -0
  350. jvagent-0.1.1/jvagent/action/pageindex/pageindex_google_drive_sync_action/webhook_auth.py +12 -0
  351. jvagent-0.1.1/jvagent/action/pageindex/prompts.py +39 -0
  352. jvagent-0.1.1/jvagent/action/pageindex/ranking.py +70 -0
  353. jvagent-0.1.1/jvagent/action/pageindex/retrieval.py +888 -0
  354. jvagent-0.1.1/jvagent/action/pageindex/tokenizer.py +127 -0
  355. jvagent-0.1.1/jvagent/action/pageindex/url_guard.py +133 -0
  356. jvagent-0.1.1/jvagent/action/pageindex/webhook_auth.py +24 -0
  357. jvagent-0.1.1/jvagent/action/parameters.py +356 -0
  358. jvagent-0.1.1/jvagent/action/plugin_contracts.py +32 -0
  359. jvagent-0.1.1/jvagent/action/postiz_action/README.md +72 -0
  360. jvagent-0.1.1/jvagent/action/postiz_action/__init__.py +4 -0
  361. jvagent-0.1.1/jvagent/action/postiz_action/endpoints.py +74 -0
  362. jvagent-0.1.1/jvagent/action/postiz_action/info.yaml +17 -0
  363. jvagent-0.1.1/jvagent/action/postiz_action/postiz_action.py +285 -0
  364. jvagent-0.1.1/jvagent/action/reply/__init__.py +16 -0
  365. jvagent-0.1.1/jvagent/action/reply/endpoints.py +202 -0
  366. jvagent-0.1.1/jvagent/action/reply/info.yaml +19 -0
  367. jvagent-0.1.1/jvagent/action/reply/reply_action.py +803 -0
  368. jvagent-0.1.1/jvagent/action/response/README.md +664 -0
  369. jvagent-0.1.1/jvagent/action/response/__init__.py +28 -0
  370. jvagent-0.1.1/jvagent/action/response/channel_adapter.py +105 -0
  371. jvagent-0.1.1/jvagent/action/response/channel_filter.py +121 -0
  372. jvagent-0.1.1/jvagent/action/response/chunking.py +153 -0
  373. jvagent-0.1.1/jvagent/action/response/message.py +127 -0
  374. jvagent-0.1.1/jvagent/action/response/response_bus.py +1066 -0
  375. jvagent-0.1.1/jvagent/action/response/streaming.py +120 -0
  376. jvagent-0.1.1/jvagent/action/response/thought_formatting.py +44 -0
  377. jvagent-0.1.1/jvagent/action/sentdm_broadcast/README.md +193 -0
  378. jvagent-0.1.1/jvagent/action/sentdm_broadcast/__init__.py +11 -0
  379. jvagent-0.1.1/jvagent/action/sentdm_broadcast/broadcast_tester.py +843 -0
  380. jvagent-0.1.1/jvagent/action/sentdm_broadcast/docs/openapi.json +3159 -0
  381. jvagent-0.1.1/jvagent/action/sentdm_broadcast/docs/openapi.yaml +2691 -0
  382. jvagent-0.1.1/jvagent/action/sentdm_broadcast/docs/postman.json +2074 -0
  383. jvagent-0.1.1/jvagent/action/sentdm_broadcast/endpoints.py +551 -0
  384. jvagent-0.1.1/jvagent/action/sentdm_broadcast/info.yaml +17 -0
  385. jvagent-0.1.1/jvagent/action/sentdm_broadcast/models.py +135 -0
  386. jvagent-0.1.1/jvagent/action/sentdm_broadcast/sentdm_broadcast_action.py +1545 -0
  387. jvagent-0.1.1/jvagent/action/sentdm_broadcast/webhook_auth.py +12 -0
  388. jvagent-0.1.1/jvagent/action/sentdm_broadcast/webhook_debug.py +62 -0
  389. jvagent-0.1.1/jvagent/action/skill_hub/__init__.py +5 -0
  390. jvagent-0.1.1/jvagent/action/skill_hub/_installer.py +294 -0
  391. jvagent-0.1.1/jvagent/action/skill_hub/_skills_cli.py +268 -0
  392. jvagent-0.1.1/jvagent/action/skill_hub/info.yaml +22 -0
  393. jvagent-0.1.1/jvagent/action/skill_hub/skill_hub_action.py +484 -0
  394. jvagent-0.1.1/jvagent/action/skill_spec/__init__.py +39 -0
  395. jvagent-0.1.1/jvagent/action/skill_spec/base.py +129 -0
  396. jvagent-0.1.1/jvagent/action/skill_spec/contract.py +133 -0
  397. jvagent-0.1.1/jvagent/action/skill_spec/docs/thin-harness.md +20 -0
  398. jvagent-0.1.1/jvagent/action/skill_spec/registry.py +68 -0
  399. jvagent-0.1.1/jvagent/action/skill_spec/task_lock.py +15 -0
  400. jvagent-0.1.1/jvagent/action/spreadsheet/__init__.py +1 -0
  401. jvagent-0.1.1/jvagent/action/spreadsheet/range_utils.py +45 -0
  402. jvagent-0.1.1/jvagent/action/streaming.py +18 -0
  403. jvagent-0.1.1/jvagent/action/stt_action/README.md +106 -0
  404. jvagent-0.1.1/jvagent/action/stt_action/__init__.py +12 -0
  405. jvagent-0.1.1/jvagent/action/stt_action/base.py +87 -0
  406. jvagent-0.1.1/jvagent/action/stt_action/deepgram/__init__.py +3 -0
  407. jvagent-0.1.1/jvagent/action/stt_action/deepgram/deepgram.py +229 -0
  408. jvagent-0.1.1/jvagent/action/stt_action/deepgram/info.yaml +17 -0
  409. jvagent-0.1.1/jvagent/action/stt_action/endpoints.py +108 -0
  410. jvagent-0.1.1/jvagent/action/task_creation_interact_action/__init__.py +7 -0
  411. jvagent-0.1.1/jvagent/action/task_creation_interact_action/info.yaml +17 -0
  412. jvagent-0.1.1/jvagent/action/task_creation_interact_action/prompts.py +55 -0
  413. jvagent-0.1.1/jvagent/action/task_creation_interact_action/task_creation_interact_action.py +326 -0
  414. jvagent-0.1.1/jvagent/action/task_monitor/__init__.py +6 -0
  415. jvagent-0.1.1/jvagent/action/task_monitor/endpoints.py +120 -0
  416. jvagent-0.1.1/jvagent/action/task_monitor/finalize.py +117 -0
  417. jvagent-0.1.1/jvagent/action/task_monitor/info.yaml +16 -0
  418. jvagent-0.1.1/jvagent/action/task_monitor/task_monitor.py +464 -0
  419. jvagent-0.1.1/jvagent/action/task_trigger_interact_action/__init__.py +7 -0
  420. jvagent-0.1.1/jvagent/action/task_trigger_interact_action/info.yaml +17 -0
  421. jvagent-0.1.1/jvagent/action/task_trigger_interact_action/task_trigger_interact_action.py +84 -0
  422. jvagent-0.1.1/jvagent/action/tts_action/README.md +130 -0
  423. jvagent-0.1.1/jvagent/action/tts_action/__init__.py +12 -0
  424. jvagent-0.1.1/jvagent/action/tts_action/base.py +80 -0
  425. jvagent-0.1.1/jvagent/action/tts_action/elevenlabs/__init__.py +3 -0
  426. jvagent-0.1.1/jvagent/action/tts_action/elevenlabs/elevenlabs.py +215 -0
  427. jvagent-0.1.1/jvagent/action/tts_action/elevenlabs/info.yaml +17 -0
  428. jvagent-0.1.1/jvagent/action/tts_action/endpoints.py +178 -0
  429. jvagent-0.1.1/jvagent/action/utils/__init__.py +17 -0
  430. jvagent-0.1.1/jvagent/action/utils/endpoint_helpers.py +31 -0
  431. jvagent-0.1.1/jvagent/action/utils/meta_webhook.py +23 -0
  432. jvagent-0.1.1/jvagent/action/utils/webhook_reconcile.py +121 -0
  433. jvagent-0.1.1/jvagent/action/utils/webhook_system_user.py +68 -0
  434. jvagent-0.1.1/jvagent/action/vectorstore/__init__.py +18 -0
  435. jvagent-0.1.1/jvagent/action/vectorstore/base.py +378 -0
  436. jvagent-0.1.1/jvagent/action/vectorstore/endpoints.py +466 -0
  437. jvagent-0.1.1/jvagent/action/vectorstore/typesense/__init__.py +5 -0
  438. jvagent-0.1.1/jvagent/action/vectorstore/typesense/info.yaml +34 -0
  439. jvagent-0.1.1/jvagent/action/vectorstore/typesense/typesense.py +703 -0
  440. jvagent-0.1.1/jvagent/action/video_generation/README.md +37 -0
  441. jvagent-0.1.1/jvagent/action/video_generation/__init__.py +1 -0
  442. jvagent-0.1.1/jvagent/action/video_generation/heygen.py +558 -0
  443. jvagent-0.1.1/jvagent/action/video_generation/info.yaml +17 -0
  444. jvagent-0.1.1/jvagent/action/vision/__init__.py +5 -0
  445. jvagent-0.1.1/jvagent/action/vision/info.yaml +23 -0
  446. jvagent-0.1.1/jvagent/action/vision/multimodal.py +138 -0
  447. jvagent-0.1.1/jvagent/action/vision/prompts.py +11 -0
  448. jvagent-0.1.1/jvagent/action/vision/vision_action.py +144 -0
  449. jvagent-0.1.1/jvagent/action/web_fetch/__init__.py +5 -0
  450. jvagent-0.1.1/jvagent/action/web_fetch/info.yaml +22 -0
  451. jvagent-0.1.1/jvagent/action/web_fetch/web_fetch_action.py +202 -0
  452. jvagent-0.1.1/jvagent/action/web_search/README.md +133 -0
  453. jvagent-0.1.1/jvagent/action/web_search/__init__.py +20 -0
  454. jvagent-0.1.1/jvagent/action/web_search/base.py +62 -0
  455. jvagent-0.1.1/jvagent/action/web_search/brave/__init__.py +3 -0
  456. jvagent-0.1.1/jvagent/action/web_search/brave/brave.py +131 -0
  457. jvagent-0.1.1/jvagent/action/web_search/brave/info.yaml +17 -0
  458. jvagent-0.1.1/jvagent/action/web_search/prompts.py +8 -0
  459. jvagent-0.1.1/jvagent/action/web_search/serpapi/__init__.py +3 -0
  460. jvagent-0.1.1/jvagent/action/web_search/serpapi/info.yaml +18 -0
  461. jvagent-0.1.1/jvagent/action/web_search/serpapi/serpapi.py +116 -0
  462. jvagent-0.1.1/jvagent/action/web_search/serper/__init__.py +3 -0
  463. jvagent-0.1.1/jvagent/action/web_search/serper/info.yaml +16 -0
  464. jvagent-0.1.1/jvagent/action/web_search/serper/serper.py +134 -0
  465. jvagent-0.1.1/jvagent/action/whatsapp/README.md +698 -0
  466. jvagent-0.1.1/jvagent/action/whatsapp/__init__.py +13 -0
  467. jvagent-0.1.1/jvagent/action/whatsapp/endpoints.py +1378 -0
  468. jvagent-0.1.1/jvagent/action/whatsapp/info.yaml +19 -0
  469. jvagent-0.1.1/jvagent/action/whatsapp/modules/base.py +643 -0
  470. jvagent-0.1.1/jvagent/action/whatsapp/modules/meta_api.py +907 -0
  471. jvagent-0.1.1/jvagent/action/whatsapp/modules/registry.py +41 -0
  472. jvagent-0.1.1/jvagent/action/whatsapp/modules/ultramsg.py +592 -0
  473. jvagent-0.1.1/jvagent/action/whatsapp/modules/wppconnect.py +421 -0
  474. jvagent-0.1.1/jvagent/action/whatsapp/modules/wwebjs_api.py +965 -0
  475. jvagent-0.1.1/jvagent/action/whatsapp/utils/__init__.py +1 -0
  476. jvagent-0.1.1/jvagent/action/whatsapp/utils/conversation_lock_manager.py +5 -0
  477. jvagent-0.1.1/jvagent/action/whatsapp/utils/endpoint_helpers.py +652 -0
  478. jvagent-0.1.1/jvagent/action/whatsapp/utils/media_batch_manager.py +756 -0
  479. jvagent-0.1.1/jvagent/action/whatsapp/utils/meta_audio.py +59 -0
  480. jvagent-0.1.1/jvagent/action/whatsapp/utils/meta_verify_token.py +22 -0
  481. jvagent-0.1.1/jvagent/action/whatsapp/utils/meta_webhook_dedup.py +65 -0
  482. jvagent-0.1.1/jvagent/action/whatsapp/utils/meta_webhook_verify.py +153 -0
  483. jvagent-0.1.1/jvagent/action/whatsapp/utils/typing_state_manager.py +49 -0
  484. jvagent-0.1.1/jvagent/action/whatsapp/webhook_auth.py +12 -0
  485. jvagent-0.1.1/jvagent/action/whatsapp/whatsapp_action.py +1122 -0
  486. jvagent-0.1.1/jvagent/action/whatsapp/whatsapp_adapter.py +300 -0
  487. jvagent-0.1.1/jvagent/action/whatsapp/whatsapp_filter.py +61 -0
  488. jvagent-0.1.1/jvagent/action/whatsapp/whatsapp_voice_filter.py +68 -0
  489. jvagent-0.1.1/jvagent/bundle/README.md +176 -0
  490. jvagent-0.1.1/jvagent/bundle/__init__.py +5 -0
  491. jvagent-0.1.1/jvagent/bundle/bundler.py +74 -0
  492. jvagent-0.1.1/jvagent/bundle/dockerfile_generator.py +196 -0
  493. jvagent-0.1.1/jvagent/cli/AGENTS.md +1 -0
  494. jvagent-0.1.1/jvagent/cli/CLAUDE.md +138 -0
  495. jvagent-0.1.1/jvagent/cli/__init__.py +5 -0
  496. jvagent-0.1.1/jvagent/cli/__main__.py +6 -0
  497. jvagent-0.1.1/jvagent/cli/agent_commands.py +363 -0
  498. jvagent-0.1.1/jvagent/cli/app_commands.py +220 -0
  499. jvagent-0.1.1/jvagent/cli/bootstrap.py +244 -0
  500. jvagent-0.1.1/jvagent/cli/chat.py +77 -0
  501. jvagent-0.1.1/jvagent/cli/commands.py +40 -0
  502. jvagent-0.1.1/jvagent/cli/main.py +249 -0
  503. jvagent-0.1.1/jvagent/cli/server.py +616 -0
  504. jvagent-0.1.1/jvagent/cli/server_config.py +618 -0
  505. jvagent-0.1.1/jvagent/cli/skill_commands.py +540 -0
  506. jvagent-0.1.1/jvagent/cli/validate.py +184 -0
  507. jvagent-0.1.1/jvagent/core/AGENTS.md +1 -0
  508. jvagent-0.1.1/jvagent/core/CLAUDE.md +123 -0
  509. jvagent-0.1.1/jvagent/core/__init__.py +40 -0
  510. jvagent-0.1.1/jvagent/core/agent.py +444 -0
  511. jvagent-0.1.1/jvagent/core/agent_loader.py +761 -0
  512. jvagent-0.1.1/jvagent/core/agent_yaml_validator.py +163 -0
  513. jvagent-0.1.1/jvagent/core/agents.py +302 -0
  514. jvagent-0.1.1/jvagent/core/app.py +599 -0
  515. jvagent-0.1.1/jvagent/core/app_context.py +39 -0
  516. jvagent-0.1.1/jvagent/core/app_loader.py +569 -0
  517. jvagent-0.1.1/jvagent/core/app_yaml_validator.py +323 -0
  518. jvagent-0.1.1/jvagent/core/bootstrap_logger.py +82 -0
  519. jvagent-0.1.1/jvagent/core/bootstrap_update_mode.py +77 -0
  520. jvagent-0.1.1/jvagent/core/cache.py +398 -0
  521. jvagent-0.1.1/jvagent/core/callback.py +380 -0
  522. jvagent-0.1.1/jvagent/core/channel.py +27 -0
  523. jvagent-0.1.1/jvagent/core/config.py +631 -0
  524. jvagent-0.1.1/jvagent/core/dependency_installer.py +212 -0
  525. jvagent-0.1.1/jvagent/core/embed_endpoints.py +42 -0
  526. jvagent-0.1.1/jvagent/core/endpoints/__init__.py +54 -0
  527. jvagent-0.1.1/jvagent/core/endpoints/agents.py +263 -0
  528. jvagent-0.1.1/jvagent/core/endpoints/app.py +56 -0
  529. jvagent-0.1.1/jvagent/core/endpoints/conversation.py +107 -0
  530. jvagent-0.1.1/jvagent/core/endpoints/graph_repair.py +262 -0
  531. jvagent-0.1.1/jvagent/core/endpoints/status.py +30 -0
  532. jvagent-0.1.1/jvagent/core/env_resolver.py +119 -0
  533. jvagent-0.1.1/jvagent/core/errors.py +190 -0
  534. jvagent-0.1.1/jvagent/core/graph_repair.py +524 -0
  535. jvagent-0.1.1/jvagent/core/graph_repair_handlers.py +339 -0
  536. jvagent-0.1.1/jvagent/core/graph_repair_job.py +1469 -0
  537. jvagent-0.1.1/jvagent/core/index_bootstrap.py +179 -0
  538. jvagent-0.1.1/jvagent/core/jvspatial_compat.py +50 -0
  539. jvagent-0.1.1/jvagent/core/observability.py +40 -0
  540. jvagent-0.1.1/jvagent/core/profiling.py +382 -0
  541. jvagent-0.1.1/jvagent/core/public_url.py +9 -0
  542. jvagent-0.1.1/jvagent/core/repair_phases/__init__.py +27 -0
  543. jvagent-0.1.1/jvagent/core/repair_phases/engine.py +5 -0
  544. jvagent-0.1.1/jvagent/core/repair_phases/memory.py +205 -0
  545. jvagent-0.1.1/jvagent/core/repair_phases/types.py +43 -0
  546. jvagent-0.1.1/jvagent/core/repair_scratch.py +201 -0
  547. jvagent-0.1.1/jvagent/core/repair_state.py +388 -0
  548. jvagent-0.1.1/jvagent/core/sandbox.py +271 -0
  549. jvagent-0.1.1/jvagent/core/scheduler_bootstrap.py +169 -0
  550. jvagent-0.1.1/jvagent/core/startup.py +172 -0
  551. jvagent-0.1.1/jvagent/core/yaml_validation_utils.py +59 -0
  552. jvagent-0.1.1/jvagent/embed/__init__.py +66 -0
  553. jvagent-0.1.1/jvagent/embed/bootstrap.py +295 -0
  554. jvagent-0.1.1/jvagent/embed/interact.py +793 -0
  555. jvagent-0.1.1/jvagent/env.py +49 -0
  556. jvagent-0.1.1/jvagent/logging/AGENTS.md +1 -0
  557. jvagent-0.1.1/jvagent/logging/CLAUDE.md +96 -0
  558. jvagent-0.1.1/jvagent/logging/__init__.py +21 -0
  559. jvagent-0.1.1/jvagent/logging/endpoints.py +113 -0
  560. jvagent-0.1.1/jvagent/logging/service.py +20 -0
  561. jvagent-0.1.1/jvagent/memory/AGENTS.md +1 -0
  562. jvagent-0.1.1/jvagent/memory/CLAUDE.md +130 -0
  563. jvagent-0.1.1/jvagent/memory/README.md +92 -0
  564. jvagent-0.1.1/jvagent/memory/__init__.py +27 -0
  565. jvagent-0.1.1/jvagent/memory/artifact.py +98 -0
  566. jvagent-0.1.1/jvagent/memory/conversation.py +1231 -0
  567. jvagent-0.1.1/jvagent/memory/distributed_conversation_lock.py +306 -0
  568. jvagent-0.1.1/jvagent/memory/endpoints.py +547 -0
  569. jvagent-0.1.1/jvagent/memory/evidence_log.py +205 -0
  570. jvagent-0.1.1/jvagent/memory/interaction.py +776 -0
  571. jvagent-0.1.1/jvagent/memory/lock_manager.py +143 -0
  572. jvagent-0.1.1/jvagent/memory/manager.py +1182 -0
  573. jvagent-0.1.1/jvagent/memory/services/__init__.py +9 -0
  574. jvagent-0.1.1/jvagent/memory/task_eligibility.py +161 -0
  575. jvagent-0.1.1/jvagent/memory/task_graph.py +108 -0
  576. jvagent-0.1.1/jvagent/memory/task_payload.py +37 -0
  577. jvagent-0.1.1/jvagent/memory/task_proactive.py +105 -0
  578. jvagent-0.1.1/jvagent/memory/task_store.py +1149 -0
  579. jvagent-0.1.1/jvagent/memory/user.py +329 -0
  580. jvagent-0.1.1/jvagent/scaffold/__init__.py +18 -0
  581. jvagent-0.1.1/jvagent/scaffold/builtin_profiles/__init__.py +1 -0
  582. jvagent-0.1.1/jvagent/scaffold/builtin_profiles/conversational.yaml +6 -0
  583. jvagent-0.1.1/jvagent/scaffold/builtin_profiles/minimal.yaml +34 -0
  584. jvagent-0.1.1/jvagent/scaffold/builtin_profiles/orchestrator.yaml +89 -0
  585. jvagent-0.1.1/jvagent/scaffold/builtin_profiles/research.yaml +6 -0
  586. jvagent-0.1.1/jvagent/scaffold/builtin_profiles/whatsapp_voice.yaml +19 -0
  587. jvagent-0.1.1/jvagent/scaffold/interact_action.py +218 -0
  588. jvagent-0.1.1/jvagent/scaffold/operations.py +585 -0
  589. jvagent-0.1.1/jvagent/scaffold/profile_resolve.py +186 -0
  590. jvagent-0.1.1/jvagent/scaffold/profile_stub.py +33 -0
  591. jvagent-0.1.1/jvagent/scaffold/resource_io.py +46 -0
  592. jvagent-0.1.1/jvagent/scaffold/skill_resolve.py +692 -0
  593. jvagent-0.1.1/jvagent/scaffold/sop_extend.py +704 -0
  594. jvagent-0.1.1/jvagent/scaffold/static/__init__.py +1 -0
  595. jvagent-0.1.1/jvagent/scaffold/static/env.example.txt +196 -0
  596. jvagent-0.1.1/jvagent/scaffold/yaml_io.py +104 -0
  597. jvagent-0.1.1/jvagent/schemas/use-case-v1.schema.json +224 -0
  598. jvagent-0.1.1/jvagent/skills/README.md +297 -0
  599. jvagent-0.1.1/jvagent/skills/__init__.py +1 -0
  600. jvagent-0.1.1/jvagent/skills/answer/SKILL.md +80 -0
  601. jvagent-0.1.1/jvagent/skills/pageindex_search_with_references/SKILL.md +97 -0
  602. jvagent-0.1.1/jvagent/skills/pdf_generation/SKILL.md +63 -0
  603. jvagent-0.1.1/jvagent/skills/pdf_generation/resources/requirements.txt +19 -0
  604. jvagent-0.1.1/jvagent/skills/pdf_generation/scripts/render_pdf.py +118 -0
  605. jvagent-0.1.1/jvagent/skills/research/SKILL.md +41 -0
  606. jvagent-0.1.1/jvagent/skills/research/__init__.py +1 -0
  607. jvagent-0.1.1/jvagent/skills/triage/SKILL.md +49 -0
  608. jvagent-0.1.1/jvagent/skills/triage/scripts/prioritize.py +59 -0
  609. jvagent-0.1.1/jvagent/stress_seed_graph.py +455 -0
  610. jvagent-0.1.1/jvagent/testing/__init__.py +9 -0
  611. jvagent-0.1.1/jvagent/testing/use_case_loader.py +59 -0
  612. jvagent-0.1.1/jvagent/tooling/__init__.py +19 -0
  613. jvagent-0.1.1/jvagent/tooling/signature_schema.py +180 -0
  614. jvagent-0.1.1/jvagent/tooling/tool.py +85 -0
  615. jvagent-0.1.1/jvagent/tooling/tool_decorator.py +215 -0
  616. jvagent-0.1.1/jvagent/tooling/tool_executor.py +251 -0
  617. jvagent-0.1.1/jvagent/tooling/tool_observability.py +50 -0
  618. jvagent-0.1.1/jvagent/tooling/tool_registry.py +104 -0
  619. jvagent-0.1.1/jvagent/tooling/tool_result.py +39 -0
  620. jvagent-0.1.1/jvagent/tooling/tool_schema_validator.py +116 -0
  621. jvagent-0.1.1/jvagent/tooling/tool_serializer.py +24 -0
  622. jvagent-0.1.1/jvagent/version.py +3 -0
  623. jvagent-0.1.1/jvagent/webui/__init__.py +11 -0
  624. jvagent-0.1.1/jvagent/webui/dist/assets/ChatInterface-C61tS6kJ.js +267 -0
  625. jvagent-0.1.1/jvagent/webui/dist/assets/ChatInterface-CpKl2eGN.css +1 -0
  626. jvagent-0.1.1/jvagent/webui/dist/assets/ChatRedirect-bolUSsJG.js +1 -0
  627. jvagent-0.1.1/jvagent/webui/dist/assets/DebugInteractions-BGGM2vNQ.js +47 -0
  628. jvagent-0.1.1/jvagent/webui/dist/assets/Login-Bep8PiER.js +1 -0
  629. jvagent-0.1.1/jvagent/webui/dist/assets/main-DSMdJ_OX.css +1 -0
  630. jvagent-0.1.1/jvagent/webui/dist/assets/main-yV_cwtCQ.js +13 -0
  631. jvagent-0.1.1/jvagent/webui/dist/assets/useAgents-CdIk_6vr.js +1 -0
  632. jvagent-0.1.1/jvagent/webui/dist/assets/useAuth-DoodL4QV.js +1 -0
  633. jvagent-0.1.1/jvagent/webui/dist/assets/vendor-cytoscape-CUqq0XTU.js +331 -0
  634. jvagent-0.1.1/jvagent/webui/dist/assets/vendor-d3-DznK3MmS.js +5 -0
  635. jvagent-0.1.1/jvagent/webui/dist/assets/vendor-dagre-bridge-B2IYeVxy.js +6 -0
  636. jvagent-0.1.1/jvagent/webui/dist/assets/vendor-graphviz-C9sQj0WI.js +3 -0
  637. jvagent-0.1.1/jvagent/webui/dist/assets/vendor-markdown-B9moJQqy.js +14 -0
  638. jvagent-0.1.1/jvagent/webui/dist/assets/vendor-react-CEqf_TvG.js +60 -0
  639. jvagent-0.1.1/jvagent/webui/dist/index.html +34 -0
  640. jvagent-0.1.1/jvagent/webui/server.py +183 -0
  641. jvagent-0.1.1/jvagent.egg-info/PKG-INFO +380 -0
  642. jvagent-0.1.1/jvagent.egg-info/SOURCES.txt +655 -0
  643. jvagent-0.1.1/jvagent.egg-info/dependency_links.txt +1 -0
  644. jvagent-0.1.1/jvagent.egg-info/entry_points.txt +2 -0
  645. jvagent-0.1.1/jvagent.egg-info/requires.txt +51 -0
  646. jvagent-0.1.1/jvagent.egg-info/top_level.txt +1 -0
  647. jvagent-0.1.1/pyproject.toml +251 -0
  648. jvagent-0.1.1/setup.cfg +4 -0
  649. jvagent-0.1.1/tests/test_embed.py +197 -0
  650. jvagent-0.1.1/tests/test_embed_stream.py +53 -0
  651. jvagent-0.1.1/tests/test_env_load.py +55 -0
  652. jvagent-0.1.1/tests/test_framework_domain_agnostic.py +44 -0
  653. jvagent-0.1.1/tests/test_logging_compat.py +101 -0
  654. jvagent-0.1.1/tests/test_mimetypes_compat.py +47 -0
  655. jvagent-0.1.1/tests/test_stress_seed_graph.py +154 -0
  656. jvagent-0.1.1/tests/test_stress_seed_integration.py +45 -0
  657. jvagent-0.1.1/tests/test_tool_schema_audit.py +144 -0
@@ -0,0 +1,279 @@
1
+ # jvagent Environment Configuration Template
2
+ # Copy to .env and fill in your values. Never commit .env to version control.
3
+ # Overrides app.yaml; env vars take precedence. See app.yaml config section for defaults.
4
+
5
+ # ============================================================================
6
+ # REQUIRED SECRETS (production)
7
+ # ============================================================================
8
+
9
+ # JWT Secret (CHANGE IN PRODUCTION!)
10
+ # Generate: openssl rand -hex 32
11
+ JVSPATIAL_JWT_SECRET_KEY=your-jwt-secret-key-change-in-production
12
+
13
+ # Admin bootstrap (required to create initial admin user)
14
+ JVAGENT_ADMIN_PASSWORD=your-admin-password-here
15
+
16
+ # OpenAI API Key — OpenAI-compatible APIs and PageIndex tree search.
17
+ OPENAI_API_KEY=your-openai-api-key-here
18
+ # Legacy alias supported as fallback only:
19
+
20
+ # Ollama Cloud / hosted Ollama
21
+ OLLAMA_API_KEY=your-ollama-api-key-here
22
+ OLLAMA_API_ENDPOINT=your-ollama-compatible-api-endpoint-here
23
+ OLLAMA_MODEL=your-ollama-model
24
+
25
+ # Secrets are read from environment only.
26
+ # Secret-like keys in agent.yaml context are ignored with a warning.
27
+
28
+ # Typesense API Key (for vector store actions)
29
+ TYPESENSE_API_KEY=your-typesense-api-key-here
30
+
31
+ # ============================================================================
32
+ # ADMIN BOOTSTRAP
33
+ # ============================================================================
34
+ # JVAGENT_ADMIN_USERNAME=admin
35
+ # JVAGENT_ADMIN_EMAIL=admin@jvagent.example
36
+
37
+ # ============================================================================
38
+ # ACTION LOADING (production)
39
+ # ============================================================================
40
+ # When true, skip pip install for action info.yaml dependencies.pip (use image/requirements instead)
41
+ # JVAGENT_DISABLE_RUNTIME_PIP_INSTALL=false
42
+
43
+ # When true, load_app_config() re-raises if app.yaml config cannot be loaded (fail-fast for CI)
44
+ # JVAGENT_STRICT_CONFIG=false
45
+
46
+ # When true, log a warning for every ${VAR} in YAML that resolves to an empty string (optional placeholders stay quiet by default)
47
+ # JVAGENT_WARN_EMPTY_PLACEHOLDERS=false
48
+
49
+ # ============================================================================
50
+ # SERVER
51
+ # ============================================================================
52
+ # JVAGENT_APP_ID= # Unique app identifier (overrides app node's app_id when set)
53
+ # JVAGENT_HOST=127.0.0.1
54
+ # JVAGENT_PORT=8000
55
+ # JVAGENT_TITLE=jvagent API
56
+ # JVAGENT_DESCRIPTION=jvagent Agentive Platform API
57
+ # JVAGENT_VERSION=0.0.1
58
+
59
+ # Public origin for webhooks, OAuth callbacks, and absolute media URLs (WhatsApp, Facebook Messenger, Google)
60
+ # Example: https://your-app.example.com or http://localhost:8000
61
+ # JVAGENT_PUBLIC_BASE_URL=https://your-app.example.com
62
+
63
+ # ============================================================================
64
+ # DATABASE
65
+ # ============================================================================
66
+ # JVSPATIAL_DB_TYPE=json
67
+ # JVSPATIAL_DB_PATH=./jvagent_db
68
+ # (Do not use JVSPATIAL_JSONDB_PATH / JVSPATIAL_SQLITE_PATH — forbidden by jvspatial.)
69
+
70
+ # MongoDB
71
+ # JVSPATIAL_MONGODB_URI=mongodb://localhost:27017
72
+ # JVSPATIAL_MONGODB_DB_NAME=jvagent_db
73
+ # JVSPATIAL_MONGODB_MAX_POOL_SIZE=10
74
+ # JVSPATIAL_MONGODB_MIN_POOL_SIZE=0
75
+
76
+ # DynamoDB (AWS Lambda / serverless)
77
+ # JVSPATIAL_DYNAMODB_TABLE_NAME=jvspatial
78
+ # JVSPATIAL_DYNAMODB_REGION=us-east-1
79
+ # JVSPATIAL_DYNAMODB_ENDPOINT_URL=
80
+ # AWS_ACCESS_KEY_ID=
81
+ # AWS_SECRET_ACCESS_KEY=
82
+
83
+ # ============================================================================
84
+ # LOGGING DATABASE (jvspatial: JVSPATIAL_DB_LOGGING_* / JVSPATIAL_LOG_DB_*)
85
+ # ============================================================================
86
+ # JVSPATIAL_DB_LOGGING_ENABLED=true
87
+ # JVSPATIAL_DB_LOGGING_LEVELS=INTERACTION,ERROR,CRITICAL
88
+ # JVSPATIAL_LOG_DB_TYPE=mongodb
89
+ # JVSPATIAL_LOG_DB_URI=mongodb://localhost:27017
90
+ # JVSPATIAL_LOG_DB_NAME=jvagent_logs
91
+ # JVSPATIAL_LOG_DB_PATH=./jvagent_logs
92
+ # JVSPATIAL_LOG_RETENTION_DEFAULT_DAYS=60 # Log retention in days (0 = indefinite); shared with jvspatial load_env
93
+
94
+ # DynamoDB logging (when JVSPATIAL_LOG_DB_TYPE=dynamodb)
95
+ # JVSPATIAL_LOG_DB_TABLE_NAME=jvagent_logs
96
+ # JVSPATIAL_LOG_DB_REGION=us-east-1
97
+ # JVSPATIAL_LOG_DB_ENDPOINT_URL=
98
+
99
+ # ============================================================================
100
+ # AUTHENTICATION
101
+ # ============================================================================
102
+ # JVAGENT_AUTH_ENABLED=true
103
+ # JVSPATIAL_JWT_EXPIRE_MINUTES=60
104
+ # JVAGENT_API_KEY_MANAGEMENT_ENABLED=true
105
+ # JVAGENT_API_KEY_PREFIX=jv_
106
+ # JVAGENT_API_KEY_HEADER=x-api-key
107
+
108
+ # ============================================================================
109
+ # CORS
110
+ # ============================================================================
111
+ # JVSPATIAL_CORS_ENABLED=true
112
+ # JVSPATIAL_CORS_ORIGINS=http://localhost:3000,http://localhost:5173
113
+
114
+ # ============================================================================
115
+ # FILE STORAGE
116
+ # ============================================================================
117
+ # JVSPATIAL_FILE_STORAGE_ENABLED=false
118
+ # Public GET for {JVSPATIAL_API_PREFIX}/files/{path} (jvspatial default: true)
119
+ # JVSPATIAL_FILES_PUBLIC_READ=true
120
+ # Prefer JVSPATIAL_FILE_STORAGE_PROVIDER (aligns with app.yaml file_storage.provider).
121
+ # JVSPATIAL_FILE_STORAGE_PROVIDER=local
122
+ # JVSPATIAL_FILES_ROOT_PATH=./.files
123
+ # JVSPATIAL_FILE_STORAGE_BASE_URL=http://localhost:8000
124
+ # JVSPATIAL_FILE_STORAGE_MAX_SIZE=104857600
125
+
126
+ # S3 (canonical names — do not use *_REGION_NAME / *_ACCESS_KEY_ID / *_SECRET_ACCESS_KEY)
127
+ # JVSPATIAL_S3_BUCKET_NAME=
128
+ # JVSPATIAL_S3_REGION=us-east-1
129
+ # JVSPATIAL_S3_ACCESS_KEY=
130
+ # JVSPATIAL_S3_SECRET_KEY=
131
+ # JVSPATIAL_S3_ENDPOINT_URL=
132
+
133
+ # MCP filesystem sandbox (MCPAction): paths <files_root>/<agentId>/<userId>/
134
+ # MCP_FILESYSTEM_SANDBOX_MODE=false
135
+ # MCP_FILESYSTEM_SANDBOX_ROOT=
136
+ # MCP_FILESYSTEM_SANDBOX_USER_SCOPED=false
137
+ # Default user id for tool list + fulfill() when no visitor (default anonymous)
138
+ # MCP_FILESYSTEM_SANDBOX_DEFAULT_USER=anonymous
139
+
140
+ # ============================================================================
141
+ # API
142
+ # ============================================================================
143
+ # Graph REST API (allowlisted JVSPATIAL_* key; see jvspatial environment-configuration.md)
144
+ # JVSPATIAL_GRAPH_ENDPOINT_ENABLED=true
145
+
146
+ # ============================================================================
147
+ # INTERACT ENDPOINT
148
+ # ============================================================================
149
+ # JVAGENT_INTERACT_RATE_LIMIT_PER_MINUTE=60
150
+ # JVAGENT_INTERACT_MAX_UTTERANCE_LENGTH=2000 # null or empty = unlimited
151
+ # Max interaction nodes pruned per add_interaction call when over rolling limit (bounded tail latency).
152
+ # JVAGENT_MAX_INTERACTIONS_PRUNED_PER_CALL=100
153
+ # Cross-process serialization for conversation chain updates (recommended in multi-worker prod).
154
+ # JVAGENT_CONVERSATION_LOCK_REDIS_URL=
155
+ # JVAGENT_CONVERSATION_LOCK_DYNAMODB_TABLE=
156
+
157
+ # ============================================================================
158
+ # DEVELOPMENT & LOGGING
159
+ # ============================================================================
160
+ # JVSPATIAL_LOG_LEVEL=info
161
+ # JVSPATIAL_DEBUG=false
162
+ # JVSPATIAL_ENVIRONMENT=development
163
+
164
+ # jvspatial serverless override (optional; Lambda/Cloud Run etc. auto-detected).
165
+ # See jvspatial docs: serverless-mode.md
166
+ # SERVERLESS_MODE=true
167
+
168
+ # ============================================================================
169
+ # WHATSAPP INTEGRATION
170
+ # ============================================================================
171
+ # WHATSAPP_API_URL=http://your-whatsapp-provider:21000
172
+ # WHATSAPP_API_KEY=your-whatsapp-api-key-here
173
+ # WHATSAPP_SESSION=your-session-id-here
174
+ # WHATSAPP_TOKEN=your-token-here
175
+ # WHATSAPP_SESSION_REGISTER_TIMEOUT_SECONDS=120
176
+ # WHATSAPP_SKIP_STARTUP_REGISTRATION=false
177
+ # WHATSAPP_REQUEST_TIMEOUT=15
178
+ # Work-claim lease TTL for persistent batches (seconds); see jvspatial serverless-mode.md
179
+ # JVSPATIAL_WORK_CLAIM_STALE_SECONDS=600
180
+
181
+ # Serverless / LWA: deferred tasks hit POST {JVSPATIAL_API_PREFIX}/_internal/deferred (default /api/_internal/deferred).
182
+ # Optional: AWS_LWA_INVOKE_MODE=RESPONSE_STREAM and AWS_LWA_PASS_THROUGH_PATH=/api/_internal/deferred (see jvspatial serverless-mode.md).
183
+
184
+ # EventBridge scheduler: JVSPATIAL_EVENTBRIDGE_SCHEDULER_ENABLED defaults to true on serverless AWS; set false for Lambda invoke only.
185
+ # JVSPATIAL_EVENTBRIDGE_ROLE_ARN=arn:aws:iam::... # required for schedules to succeed
186
+ # JVSPATIAL_EVENTBRIDGE_LAMBDA_ARN=arn:aws:lambda:...
187
+ # If JVSPATIAL_EVENTBRIDGE_LAMBDA_ARN unset, ARN built from AWS_LAMBDA_FUNCTION_NAME + AWS_REGION + AWS_ACCOUNT_ID:
188
+ # AWS_REGION=us-east-1
189
+ # AWS_ACCOUNT_ID=123456789012
190
+ # JVSPATIAL_EVENTBRIDGE_SCHEDULER_GROUP=default
191
+
192
+ # ============================================================================
193
+ # EMAIL (EmailAction — package jvagent/email_action: gmail | sendgrid)
194
+ # ============================================================================
195
+ # Gmail (default): add GoogleGmailAction on the same agent; OAuth via:
196
+ # GOOGLE_CLIENT_SECRETS_JSON= # path or JSON string (same as other Google actions)
197
+ # Optional override From (else Gmail profile emailAddress):
198
+ # EMAIL_DEFAULT_SENDER=
199
+ # EMAIL_DEFAULT_SENDER_NAME=
200
+ # SendGrid: set provider=sendgrid on EmailAction
201
+ # SENDGRID_API_KEY=
202
+ # SENDGRID_API_BASE_URL=https://api.sendgrid.com/v3
203
+ # SENDGRID_FROM_EMAIL= # optional fallback if EMAIL_DEFAULT_SENDER unset
204
+ # SENDGRID_FROM_NAME=
205
+
206
+ # ============================================================================
207
+ # TTS / STT
208
+ # ============================================================================
209
+ # TTS_API_KEY=your-tts-api-key-here
210
+ # STT_API_KEY=your-stt-api-key-here
211
+
212
+ # ============================================================================
213
+ # WEBHOOK (jvspatial)
214
+ # ============================================================================
215
+ # JVSPATIAL_WEBHOOK_HMAC_SECRET=
216
+ # JVSPATIAL_WEBHOOK_HMAC_ALGORITHM=sha256
217
+ # JVSPATIAL_WEBHOOK_MAX_PAYLOAD_SIZE=1048576
218
+ # JVSPATIAL_WEBHOOK_IDEMPOTENCY_TTL=3600
219
+ # JVSPATIAL_WEBHOOK_HTTPS_REQUIRED=true
220
+
221
+ # ============================================================================
222
+ # PAGEINDEX (document indexing/retrieval)
223
+ # ============================================================================
224
+ # JVAGENT_PAGEINDEX_DB_TYPE=json
225
+ # JVAGENT_PAGEINDEX_DB_PATH=./pageindex_db
226
+ # JVAGENT_PAGEINDEX_DB_NAME=pageindex_db
227
+ # Default when unset: {app_id}_pageindex_db (one db per app, agents share it)
228
+ # JVAGENT_PAGEINDEX_DB_ROOT=. # Root for path when DB_PATH not set
229
+ # MongoDB/DynamoDB (when DB_TYPE is mongodb/dynamodb):
230
+ # JVAGENT_PAGEINDEX_DB_URI=mongodb://localhost:27017
231
+ # When unset/blank, Pageindex uses JVSPATIAL_MONGODB_URI, then mongodb://localhost:27017
232
+ # JVAGENT_PAGEINDEX_DB_TABLE_NAME=
233
+ # JVAGENT_PAGEINDEX_DB_REGION=us-east-1
234
+
235
+ # ============================================================================
236
+ # JVSPATIAL CACHE (entity cache)
237
+ # ============================================================================
238
+ # JVSPATIAL_CACHE_BACKEND=memory
239
+ # JVSPATIAL_CACHE_SIZE=1000
240
+ # JVSPATIAL_L1_CACHE_SIZE=500
241
+ # JVSPATIAL_REDIS_URL=redis://localhost:6379
242
+ # JVSPATIAL_REDIS_TTL=3600
243
+
244
+ # ============================================================================
245
+ # PERFORMANCE (jvagent)
246
+ # ============================================================================
247
+ # JVAGENT_ENABLE_PROFILING=false
248
+ # JVAGENT_ENABLE_AGENT_CACHE=true
249
+ # JVAGENT_AGENT_CACHE_TTL=300
250
+ # JVAGENT_ENABLE_ACTION_CACHE=true
251
+ # JVAGENT_ACTION_CACHE_TTL=60
252
+ # JVAGENT_ENABLE_DSPY_CACHE=false
253
+ # JVAGENT_CACHE_CLEANUP_PROBABILITY=0.1
254
+ # JVAGENT_ENABLE_INTERACT_ROUTER_CACHE=false
255
+ # JVAGENT_INTERACT_ROUTER_CACHE_TTL=45
256
+
257
+ # ============================================================================
258
+ # JVSPATIAL_* (framework keys used by jvagent)
259
+ # ============================================================================
260
+ # Set only names documented in docs/environment-keys-reference.md and jvspatial
261
+ # docs/md/environment-keys-reference.md. For file storage use JVSPATIAL_FILE_STORAGE_PROVIDER;
262
+ # for public webhook/OAuth URLs use JVAGENT_PUBLIC_BASE_URL.
263
+
264
+ # ============================================================================
265
+ # JVSPATIAL PERFORMANCE
266
+ # ============================================================================
267
+ # Batch saves (ignored when serverless / SERVERLESS_MODE — see jvspatial deferred_saves_globally_allowed)
268
+ # JVSPATIAL_ENABLE_DEFERRED_SAVES=true
269
+
270
+
271
+ # jvforge (PageIndex delegated ingest): base URL of the jvforge service (e.g. http://127.0.0.1:8088)
272
+ # JVAGENT_JVFORGE_BASE_URL=http://127.0.0.1:8088
273
+ # Optional API key only if jvforge has JVFORGE_API_KEY set
274
+ # JVAGENT_JVFORGE_API_KEY=
275
+ # JVFORGE_API_KEY=
276
+ # When true, ingest uses jvforge POST /v1/jobs (async queue) instead of synchronous /v1/process
277
+ # JVAGENT_JVFORGE_ASYNC=false
278
+ # Webhook path: set JVAGENT_PUBLIC_BASE_URL so PageIndex interact webhook URLs are reachable from jvforge.
279
+ # Align JVFORGE_PUBLIC_BASE_URL on the jvforge side with a host jvagent can use to GET artifacts (often same as JVAGENT_JVFORGE_BASE_URL for local dev).
jvagent-0.1.1/AUTHORS ADDED
@@ -0,0 +1,15 @@
1
+ jvagent — Authors & Maintainers
2
+ ===============================
3
+
4
+ jvagent is an agent harness built on jvspatial.
5
+
6
+ Creator & Lead Maintainer
7
+ Eldon Marks (@eldonm) — https://github.com/eldonm
8
+
9
+ Contributors
10
+ This list grows with the project. Contributions are welcome.
11
+
12
+ ---------------------------------------------------------------------
13
+ This file records authorship and ongoing maintenance of the project.
14
+ Authorship and maintenance are distinct from copyright ownership and
15
+ license terms, which are set out in LICENSE.
jvagent-0.1.1/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 TrueSelph Inc.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,23 @@
1
+ include README.md
2
+ include LICENSE
3
+ include pyproject.toml
4
+ include .env.example
5
+ recursive-include jvagent *.py
6
+
7
+ # Action + skill data — every action package ships an `info.yaml` (the
8
+ # action loader walks these to discover core actions at runtime), every
9
+ # skill bundle ships a `SKILL.md`, and some packages ship per-package
10
+ # READMEs or pinned `requirements.txt` files. Without these, non-editable
11
+ # wheel installs cannot discover any core action and emit
12
+ # "Action jvagent/<x> not found locally or in core library" warnings.
13
+ recursive-include jvagent *.yaml
14
+ recursive-include jvagent *.yml
15
+ recursive-include jvagent *.md
16
+ recursive-include jvagent *.json
17
+ recursive-include jvagent requirements.txt
18
+ recursive-include jvagent/scaffold/static *.txt
19
+
20
+ # Bundled jvchat UI (built by scripts/build_jvchat.py; served by `jvagent chat`).
21
+ recursive-include jvagent/webui/dist *
22
+
23
+ recursive-include docs *.md