apsimo 1.4.2__tar.gz → 1.4.4__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 (1010) hide show
  1. {apsimo-1.4.2 → apsimo-1.4.4}/PKG-INFO +2 -4
  2. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/api/routers/host.py +2 -28
  3. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/cli.py +2 -11
  4. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/graph/recall.py +0 -2
  5. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/server.py +4 -10
  6. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/setup.py +2 -4
  7. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/setup_hermes.py +7 -14
  8. apsimo-1.4.4/apsimo/workers/__init__.py +12 -0
  9. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/workers/colony_worker.py +3 -3
  10. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/workers/queue_worker.py +4 -7
  11. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/workers/skills_sync.py +4 -7
  12. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/__init__.py +1 -1
  13. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/config.py +1 -5
  14. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/store.py +14 -81
  15. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo.egg-info/PKG-INFO +2 -4
  16. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo.egg-info/SOURCES.txt +1 -9
  17. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo.egg-info/entry_points.txt +0 -5
  18. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo.egg-info/requires.txt +1 -4
  19. apsimo-1.4.4/apsimo.egg-info/top_level.txt +1 -0
  20. {apsimo-1.4.2 → apsimo-1.4.4}/pyproject.toml +3 -9
  21. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_apsimo_compat.py +10 -20
  22. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_causal_falsifiability.py +1 -2
  23. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_causal_query.py +1 -1
  24. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_causal_query_only_guard.py +1 -1
  25. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_hermes_general_governance.py +3 -19
  26. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_native_initiative_work.py +1 -1
  27. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_native_setup.py +60 -18
  28. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_native_tool_observations.py +49 -16
  29. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_recall_source_presentation.py +30 -0
  30. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tom_p8_server_integration.py +1 -1
  31. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_workers_install.py +34 -55
  32. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_world_entity_reinforcement.py +1 -1
  33. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_world_model_prune.py +1 -13
  34. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_world_observations.py +2 -9
  35. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_world_populator.py +1 -1
  36. apsimo-1.4.4/tests/test_world_store_api.py +49 -0
  37. apsimo-1.4.2/apsimo/compat.py +0 -53
  38. apsimo-1.4.2/apsimo/seed.py +0 -41
  39. apsimo-1.4.2/apsimo/workers/__init__.py +0 -21
  40. apsimo-1.4.2/apsimo/world_model/neo4j/__init__.py +0 -5
  41. apsimo-1.4.2/apsimo/world_model/neo4j/backend.py +0 -654
  42. apsimo-1.4.2/apsimo/world_model/postgres/__init__.py +0 -1
  43. apsimo-1.4.2/apsimo/world_model/postgres/backend.py +0 -683
  44. apsimo-1.4.2/apsimo.egg-info/top_level.txt +0 -2
  45. apsimo-1.4.2/colony_sidecar/__init__.py +0 -4
  46. apsimo-1.4.2/tests/test_neo4j_backend.py +0 -211
  47. apsimo-1.4.2/tests/test_seed_retirement.py +0 -117
  48. {apsimo-1.4.2 → apsimo-1.4.4}/LICENSE +0 -0
  49. {apsimo-1.4.2 → apsimo-1.4.4}/README.md +0 -0
  50. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/__init__.py +0 -0
  51. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/__main__.py +0 -0
  52. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/agent/__init__.py +0 -0
  53. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/agent/client.py +0 -0
  54. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/agent/models.py +0 -0
  55. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/agents/__init__.py +0 -0
  56. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/agents/models.py +0 -0
  57. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/agents/store.py +0 -0
  58. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/agents/websocket.py +0 -0
  59. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/api/__init__.py +0 -0
  60. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/api/auth_telemetry.py +0 -0
  61. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/api/authority.py +0 -0
  62. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/api/contact_grants.py +0 -0
  63. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/api/middleware.py +0 -0
  64. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/api/routers/__init__.py +0 -0
  65. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/api/routers/commitment_work.py +0 -0
  66. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/api/routers/context_gate.py +0 -0
  67. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/api/routers/executions.py +0 -0
  68. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/api/routers/followup_plans.py +0 -0
  69. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/api/routers/governed_actions.py +0 -0
  70. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/api/routers/initiative_work.py +0 -0
  71. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/api/routers/mining.py +0 -0
  72. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/api/routers/observations.py +0 -0
  73. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/api/routers/social_state.py +0 -0
  74. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/api/routers/task_queue.py +0 -0
  75. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/api/routers/temporal_followups.py +0 -0
  76. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/api/routers/transport.py +0 -0
  77. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/api/routers/transport_ingress_api.py +0 -0
  78. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/api/schemas/__init__.py +0 -0
  79. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/api/schemas/host.py +0 -0
  80. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/autonomy/cli.py +0 -0
  81. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/autonomy/condition_worker.py +0 -0
  82. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/autonomy/config.py +0 -0
  83. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/autonomy/loop.py +0 -0
  84. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/autonomy/registry.py +0 -0
  85. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/autonomy/scheduler.py +0 -0
  86. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/autonomy/synthesis.py +0 -0
  87. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/backup.py +0 -0
  88. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/beliefs/__init__.py +0 -0
  89. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/beliefs/contradictions.py +0 -0
  90. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/beliefs/decay.py +0 -0
  91. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/beliefs/engine.py +0 -0
  92. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/beliefs/models.py +0 -0
  93. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/beliefs/promotion.py +0 -0
  94. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/beliefs/resolve.py +0 -0
  95. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/beliefs/source_claims.py +0 -0
  96. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/beliefs/source_projection.py +0 -0
  97. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/beliefs/source_time.py +0 -0
  98. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/beliefs/store.py +0 -0
  99. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/briefings/aggregators.py +0 -0
  100. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/briefings/composer.py +0 -0
  101. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/briefings/config.py +0 -0
  102. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/briefings/delivery.py +0 -0
  103. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/briefings/engagement.py +0 -0
  104. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/briefings/engine.py +0 -0
  105. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/briefings/enhancer.py +0 -0
  106. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/briefings/models.py +0 -0
  107. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/briefings/scheduler.py +0 -0
  108. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/briefings/store.py +0 -0
  109. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/chain/__init__.py +0 -0
  110. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/chain/block.py +0 -0
  111. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/chain/cli.py +0 -0
  112. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/chain/genesis.py +0 -0
  113. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/chain/identity.py +0 -0
  114. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/chain/keys.py +0 -0
  115. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/chain/local_keys.py +0 -0
  116. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/chain/manager.py +0 -0
  117. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/chain/node.py +0 -0
  118. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/chain/plugin_transactions.py +0 -0
  119. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/chain/protocol.py +0 -0
  120. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/chain/state_machine.py +0 -0
  121. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/chain/storage.py +0 -0
  122. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/chain/transactions.py +0 -0
  123. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/chain/validation.py +0 -0
  124. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/channels/__init__.py +0 -0
  125. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/channels/manifest.py +0 -0
  126. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/channels/migrations/001_channels_schema.sql +0 -0
  127. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/channels/phone_gateways.py +0 -0
  128. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/channels/presence.py +0 -0
  129. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/channels/router.py +0 -0
  130. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/channels/store.py +0 -0
  131. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/cognition/__init__.py +0 -0
  132. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/cognition/charter.py +0 -0
  133. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/cognition/drive_governance.py +0 -0
  134. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/cognition/evidence_pipeline.py +0 -0
  135. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/cognition/external_events.py +0 -0
  136. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/cognition/goal_spine.py +0 -0
  137. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/cognition/introspection.py +0 -0
  138. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/cognition/prompt.py +0 -0
  139. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/cognition/runtime.py +0 -0
  140. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/cognition/trigger.py +0 -0
  141. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/commitments/__init__.py +0 -0
  142. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/commitments/local_work.py +0 -0
  143. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/commitments/store.py +0 -0
  144. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/commitments/work.py +0 -0
  145. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/compression/__init__.py +0 -0
  146. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/connectors/__init__.py +0 -0
  147. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/connectors/base.py +0 -0
  148. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/connectors/caldav_calendar.py +0 -0
  149. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/connectors/fs_documents.py +0 -0
  150. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/connectors/imap_email.py +0 -0
  151. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/connectors/manager.py +0 -0
  152. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/connectors/webhook_pull.py +0 -0
  153. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/contacts/__init__.py +0 -0
  154. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/contacts/comms.py +0 -0
  155. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/contacts/config.py +0 -0
  156. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/contacts/exporters/__init__.py +0 -0
  157. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/contacts/exporters/vcard.py +0 -0
  158. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/contacts/identity_links.py +0 -0
  159. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/contacts/importer.py +0 -0
  160. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/contacts/importers/__init__.py +0 -0
  161. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/contacts/importers/batch.py +0 -0
  162. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/contacts/importers/macos_contacts.py +0 -0
  163. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/contacts/migrations/001_contacts_schema.sql +0 -0
  164. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/contacts/migrations/002_trust_scopes.sql +0 -0
  165. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/contacts/migrations/003_open_gateway_enum.sql +0 -0
  166. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/contacts/migrations/004_contact_provision_operations.sql +0 -0
  167. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/contacts/migrations/005_identity_links.sql +0 -0
  168. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/contacts/models.py +0 -0
  169. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/contacts/scoring.py +0 -0
  170. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/contacts/store.py +0 -0
  171. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/contacts/transport_ingress.py +0 -0
  172. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/contacts/world_bridge.py +0 -0
  173. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/contextgate/__init__.py +0 -0
  174. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/contextgate/chunker.py +0 -0
  175. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/contextgate/estimate.py +0 -0
  176. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/contextgate/gate.py +0 -0
  177. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/contextgate/retrieve.py +0 -0
  178. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/delivery/__init__.py +0 -0
  179. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/delivery/bridge.py +0 -0
  180. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/delivery/channels.py +0 -0
  181. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/delivery/classification.py +0 -0
  182. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/delivery/rate_limiter.py +0 -0
  183. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/delivery/reachout_policy.py +0 -0
  184. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/directed/__init__.py +0 -0
  185. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/directed/audit.py +0 -0
  186. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/directed/intake.py +0 -0
  187. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/directed/models.py +0 -0
  188. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/directed/service.py +0 -0
  189. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/directives/__init__.py +0 -0
  190. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/directives/evidence.py +0 -0
  191. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/directives/extractor.py +0 -0
  192. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/directives/guard.py +0 -0
  193. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/directives/models.py +0 -0
  194. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/directives/service.py +0 -0
  195. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/directives/store.py +0 -0
  196. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/doctor.py +0 -0
  197. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/environment.py +0 -0
  198. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/events/__init__.py +0 -0
  199. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/events/broadcaster.py +0 -0
  200. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/events/bus.py +0 -0
  201. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/events/journal.py +0 -0
  202. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/events/stream.py +0 -0
  203. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/events/types.py +0 -0
  204. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/execution_results.py +0 -0
  205. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/feedback/__init__.py +0 -0
  206. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/feedback/store.py +0 -0
  207. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/feeds/__init__.py +0 -0
  208. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/feeds/cli.py +0 -0
  209. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/feeds/engine.py +0 -0
  210. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/feeds/example-feed.yaml +0 -0
  211. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/feeds/hermes_cron.py +0 -0
  212. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/feeds/manager.py +0 -0
  213. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/feeds/spec.py +0 -0
  214. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/feeds/template.py +0 -0
  215. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/gate/__init__.py +0 -0
  216. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/gate/audit.py +0 -0
  217. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/gate/communication_policy.py +0 -0
  218. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/gate/config.py +0 -0
  219. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/gate/context_provenance.py +0 -0
  220. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/gate/env_risk.py +0 -0
  221. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/gate/guard_audit.py +0 -0
  222. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/gate/layers/__init__.py +0 -0
  223. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/gate/layers/base.py +0 -0
  224. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/gate/layers/l1_recipient.py +0 -0
  225. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/gate/layers/l2_pii.py +0 -0
  226. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/gate/layers/l3_cross_context.py +0 -0
  227. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/gate/layers/l4_trust_tier.py +0 -0
  228. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/gate/layers/l5_injection.py +0 -0
  229. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/gate/layers/l6_review.py +0 -0
  230. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/gate/layers/l7_delay.py +0 -0
  231. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/gate/layers/tom2_epistemic.py +0 -0
  232. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/gate/models.py +0 -0
  233. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/gate/pending_dispatch.py +0 -0
  234. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/gate/pipeline.py +0 -0
  235. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/gate/rejection.py +0 -0
  236. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/gate/response_guard.py +0 -0
  237. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/gate/rulesets/injection_v1.yaml +0 -0
  238. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/gate/surface_policy.py +0 -0
  239. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/gate/taint.py +0 -0
  240. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/genesis.json +0 -0
  241. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/goals/__init__.py +0 -0
  242. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/goals/config.py +0 -0
  243. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/goals/decomposer.py +0 -0
  244. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/goals/engine.py +0 -0
  245. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/goals/inference.py +0 -0
  246. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/goals/models.py +0 -0
  247. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/goals/priority.py +0 -0
  248. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/goals/queue_bridge.py +0 -0
  249. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/goals/replan.py +0 -0
  250. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/goals/schema.sql +0 -0
  251. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/goals/store.py +0 -0
  252. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/governed_actions.py +0 -0
  253. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/harness_integration/__init__.py +0 -0
  254. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/harness_integration/context.py +0 -0
  255. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/harness_integration/skills.py +0 -0
  256. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/identity/__init__.py +0 -0
  257. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/identity/participants.py +0 -0
  258. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/identity/resolver.py +0 -0
  259. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/identity_bootstrap/__init__.py +0 -0
  260. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/identity_bootstrap/builder.py +0 -0
  261. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/identity_bootstrap/corpus.py +0 -0
  262. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/identity_bootstrap/models.py +0 -0
  263. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/identity_bootstrap/runner.py +0 -0
  264. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/identity_bootstrap/seeders/__init__.py +0 -0
  265. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/identity_bootstrap/seeders/briefings.py +0 -0
  266. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/identity_bootstrap/seeders/chain.py +0 -0
  267. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/identity_bootstrap/seeders/goals.py +0 -0
  268. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/identity_bootstrap/seeders/memory.py +0 -0
  269. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/identity_bootstrap/seeders/neo4j_cognition.py +0 -0
  270. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/identity_bootstrap/seeders/relationship.py +0 -0
  271. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/identity_bootstrap/seeders/sessions.py +0 -0
  272. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/identity_bootstrap/seeders/skills.py +0 -0
  273. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/identity_bootstrap/seeders/task_queue.py +0 -0
  274. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/identity_bootstrap/seeders/world_model.py +0 -0
  275. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/identity_bootstrap/self_query.py +0 -0
  276. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/identity_bootstrap/self_reflection.py +0 -0
  277. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/identity_bootstrap/skill.py +0 -0
  278. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/identity_bootstrap/verifier.py +0 -0
  279. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/initiatives/__init__.py +0 -0
  280. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/initiatives/action_registry.py +0 -0
  281. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/initiatives/approval_authority.py +0 -0
  282. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/initiatives/approval_policy.py +0 -0
  283. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/initiatives/assignment.py +0 -0
  284. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/initiatives/backup_evidence.py +0 -0
  285. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/initiatives/context_freshness.py +0 -0
  286. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/initiatives/models.py +0 -0
  287. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/initiatives/native_work.py +0 -0
  288. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/initiatives/standing_approvals.py +0 -0
  289. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/initiatives/store.py +0 -0
  290. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/initiatives/temporal_followup.py +0 -0
  291. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/__init__.py +0 -0
  292. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/cognition/__init__.py +0 -0
  293. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/cognition/gap_detector.py +0 -0
  294. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/cognition/metalearner.py +0 -0
  295. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/cognition/metrics_collector.py +0 -0
  296. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/cognition/performance_index.py +0 -0
  297. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/cognition/registry.py +0 -0
  298. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/cognition/strategy_adjuster.py +0 -0
  299. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/cognition/types.py +0 -0
  300. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/components/__init__.py +0 -0
  301. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/components/anomaly_detector.py +0 -0
  302. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/components/initiative_engine.py +0 -0
  303. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/components/preference_learner.py +0 -0
  304. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/components/research_orchestrator.py +0 -0
  305. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/components/self_directed_thinker.py +0 -0
  306. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/components/self_reflector.py +0 -0
  307. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/components/session_continuity.py +0 -0
  308. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/components/task_planner.py +0 -0
  309. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/components/tool_learner.py +0 -0
  310. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/graph/__init__.py +0 -0
  311. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/graph/client.py +0 -0
  312. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/graph/consolidator.py +0 -0
  313. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/graph/distiller.py +0 -0
  314. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/graph/migrations.py +0 -0
  315. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/graph/queries.py +0 -0
  316. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/graph/reconciler.py +0 -0
  317. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/graph/schema.py +0 -0
  318. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/graph/selection.py +0 -0
  319. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/learning/__init__.py +0 -0
  320. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/learning/continuous_learner.py +0 -0
  321. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/learning/feedback_store.py +0 -0
  322. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/mind_model/__init__.py +0 -0
  323. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/mind_model/graph_baseline.py +0 -0
  324. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/mind_model/signal_collector.py +0 -0
  325. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/relationships/__init__.py +0 -0
  326. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/relationships/profiler.py +0 -0
  327. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/relationships/scorer.py +0 -0
  328. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/relationships/signal_floor.py +0 -0
  329. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/relationships/trust_tiers.py +0 -0
  330. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/synthesis/__init__.py +0 -0
  331. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/synthesis/connection_discoverer.py +0 -0
  332. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/synthesis/cross_domain_analyzer.py +0 -0
  333. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/synthesis/insight_deliverer.py +0 -0
  334. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/synthesis/insight_store.py +0 -0
  335. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/synthesis/insight_validator.py +0 -0
  336. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/synthesis/novelty_scorer.py +0 -0
  337. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/turn_middleware/__init__.py +0 -0
  338. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/intelligence/turn_middleware/memory_sync.py +0 -0
  339. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/mcp/__init__.py +0 -0
  340. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/mcp/__main__.py +0 -0
  341. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/mcp/config.py +0 -0
  342. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/mcp/server.py +0 -0
  343. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/migrations.py +0 -0
  344. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/mining/__init__.py +0 -0
  345. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/mining/corpus.py +0 -0
  346. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/mining/escalations.py +0 -0
  347. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/mining/models.py +0 -0
  348. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/mining/store.py +0 -0
  349. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/models/__init__.py +0 -0
  350. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/models/memory.py +0 -0
  351. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/models/mesh.py +0 -0
  352. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/models/person.py +0 -0
  353. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/models/signal.py +0 -0
  354. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/observations/__init__.py +0 -0
  355. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/observations/store.py +0 -0
  356. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/patterns/__init__.py +0 -0
  357. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/patterns/extract.py +0 -0
  358. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/patterns/store.py +0 -0
  359. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/persona/__init__.py +0 -0
  360. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/persona/engine.py +0 -0
  361. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/persona/manifest.py +0 -0
  362. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/projects/__init__.py +0 -0
  363. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/projects/engine.py +0 -0
  364. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/projects/event_outbox.py +0 -0
  365. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/projects/models.py +0 -0
  366. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/projects/planner.py +0 -0
  367. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/projects/store.py +0 -0
  368. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/proposals/__init__.py +0 -0
  369. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/proposals/engine.py +0 -0
  370. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/proposals/models.py +0 -0
  371. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/qualification/__init__.py +0 -0
  372. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/qualification/cases.py +0 -0
  373. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/qualification/cli.py +0 -0
  374. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/qualification/memory_cases.py +0 -0
  375. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/qualification/records.py +0 -0
  376. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/qualification/report.py +0 -0
  377. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/qualification/runner.py +0 -0
  378. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/qualification/structured_cases.py +0 -0
  379. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/reasoning/__init__.py +0 -0
  380. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/reasoning/executor.py +0 -0
  381. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/reasoning/loop.py +0 -0
  382. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/reasoning/native_tools/__init__.py +0 -0
  383. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/reasoning/native_tools/calculate.py +0 -0
  384. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/reasoning/native_tools/file_ops.py +0 -0
  385. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/reasoning/native_tools/web_search.py +0 -0
  386. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/reasoning/tool_policy.py +0 -0
  387. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/redact/__init__.py +0 -0
  388. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/repos/__init__.py +0 -0
  389. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/repos/mirrors.py +0 -0
  390. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/research/__init__.py +0 -0
  391. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/research/artifact.py +0 -0
  392. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/research/gatherer.py +0 -0
  393. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/research/pipeline.py +0 -0
  394. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/research/search/__init__.py +0 -0
  395. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/research/search/base.py +0 -0
  396. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/research/search/brave.py +0 -0
  397. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/research/search/cache.py +0 -0
  398. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/research/search/duckduckgo.py +0 -0
  399. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/research/search/orchestrator.py +0 -0
  400. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/research/search/serpapi.py +0 -0
  401. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/research/search/tavily.py +0 -0
  402. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/research/synthesizer.py +0 -0
  403. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/router/__init__.py +0 -0
  404. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/router/complexity_scorer.py +0 -0
  405. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/router/endpoints.py +0 -0
  406. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/router/fallback.py +0 -0
  407. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/router/functions.py +0 -0
  408. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/router/native_policy.py +0 -0
  409. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/router/router.py +0 -0
  410. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/router/self_learning.py +0 -0
  411. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/router/tiers.py +0 -0
  412. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/sandbox/__init__.py +0 -0
  413. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/sandbox/backend.py +0 -0
  414. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/sandbox/manager.py +0 -0
  415. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/scope_bounds.py +0 -0
  416. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/secrets/__init__.py +0 -0
  417. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/secrets/backends/__init__.py +0 -0
  418. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/secrets/backends/base.py +0 -0
  419. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/secrets/backends/env.py +0 -0
  420. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/secrets/backends/keyring.py +0 -0
  421. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/secrets/backends/onepassword.py +0 -0
  422. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/secrets/cli.py +0 -0
  423. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/secrets/manager.py +0 -0
  424. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/secrets/migration.py +0 -0
  425. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/secrets/types.py +0 -0
  426. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/self_model/__init__.py +0 -0
  427. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/self_model/appraisals.py +0 -0
  428. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/self_model/benchmark.py +0 -0
  429. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/self_model/brief.py +0 -0
  430. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/self_model/event_concerns.py +0 -0
  431. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/self_model/execution_forecasts.py +0 -0
  432. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/self_model/expectations.py +0 -0
  433. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/self_model/experiments.py +0 -0
  434. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/self_model/journal.py +0 -0
  435. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/self_model/judgments.py +0 -0
  436. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/self_model/native_outcomes.py +0 -0
  437. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/self_model/params.py +0 -0
  438. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/self_model/perspective.py +0 -0
  439. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/self_model/reconcile.py +0 -0
  440. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/self_model/reply_forecasts.py +0 -0
  441. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/self_model/runtime_forecasts.py +0 -0
  442. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/self_model/runtime_models.py +0 -0
  443. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/self_model/settlement.py +0 -0
  444. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/self_model/situation.py +0 -0
  445. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/self_model/store.py +0 -0
  446. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/self_model/supervised.py +0 -0
  447. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/self_model/thinker.py +0 -0
  448. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/self_model/trust.py +0 -0
  449. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/self_model/workspace.py +0 -0
  450. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/services/__init__.py +0 -0
  451. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/services/agent_bridge.py +0 -0
  452. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/services/initiative_executor.py +0 -0
  453. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/services/instance.py +0 -0
  454. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/sessions/__init__.py +0 -0
  455. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/sessions/config.py +0 -0
  456. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/sessions/context_loader.py +0 -0
  457. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/sessions/federation_session.py +0 -0
  458. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/sessions/isolated_session.py +0 -0
  459. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/sessions/reports.py +0 -0
  460. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/sessions/store.py +0 -0
  461. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/setup_local_work.py +0 -0
  462. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/setup_native_goals.py +0 -0
  463. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/setup_native_reviews.py +0 -0
  464. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/__init__.py +0 -0
  465. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/base.py +0 -0
  466. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/budget.py +0 -0
  467. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/executor.py +0 -0
  468. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/executors/__init__.py +0 -0
  469. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/executors/behavioral_correction.py +0 -0
  470. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/executors/capability_gap.py +0 -0
  471. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/executors/data_quality.py +0 -0
  472. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/executors/knowledge_acquisition.py +0 -0
  473. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/executors/operational_hygiene.py +0 -0
  474. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/executors/subsystem_health.py +0 -0
  475. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/hermes_export.py +0 -0
  476. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/index.py +0 -0
  477. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/learning/__init__.py +0 -0
  478. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/learning/novelty_detector.py +0 -0
  479. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/learning/pattern_extractor.py +0 -0
  480. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/learning/triggers.py +0 -0
  481. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/loader.py +0 -0
  482. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/migrations/002_progressive_loading.sql +0 -0
  483. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/migrations/backfill_triggers.py +0 -0
  484. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/models.py +0 -0
  485. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/packager.py +0 -0
  486. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/protocols.py +0 -0
  487. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/registry.py +0 -0
  488. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/runtime.py +0 -0
  489. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/sandbox_runner.py +0 -0
  490. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/scheduler.py +0 -0
  491. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/schema.py +0 -0
  492. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/security/__init__.py +0 -0
  493. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/security/guards.py +0 -0
  494. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills/security/scanner.py +0 -0
  495. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills_memory/__init__.py +0 -0
  496. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills_memory/distill.py +0 -0
  497. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills_memory/models.py +0 -0
  498. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills_memory/retrieve.py +0 -0
  499. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/skills_memory/store.py +0 -0
  500. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/surprise/__init__.py +0 -0
  501. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/surprise/accumulation.py +0 -0
  502. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/surprise/scorer.py +0 -0
  503. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/surprise/store.py +0 -0
  504. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/task_queue/__init__.py +0 -0
  505. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/task_queue/action_receipts.py +0 -0
  506. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/task_queue/approval_relay_canary.py +0 -0
  507. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/task_queue/config.py +0 -0
  508. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/task_queue/contract.py +0 -0
  509. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/task_queue/events.py +0 -0
  510. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/task_queue/governor.py +0 -0
  511. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/task_queue/handlers/__init__.py +0 -0
  512. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/task_queue/handlers/base.py +0 -0
  513. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/task_queue/handlers/inference.py +0 -0
  514. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/task_queue/handlers/monitoring.py +0 -0
  515. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/task_queue/handlers/registry.py +0 -0
  516. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/task_queue/handlers/subtask_handler.py +0 -0
  517. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/task_queue/handlers/system_maintenance.py +0 -0
  518. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/task_queue/mesh_integration.py +0 -0
  519. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/task_queue/models.py +0 -0
  520. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/task_queue/queue_manager.py +0 -0
  521. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/task_queue/routing.py +0 -0
  522. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/task_queue/scheduler.py +0 -0
  523. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/task_queue/schema.sql +0 -0
  524. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/task_queue/work_control.py +0 -0
  525. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/task_queue/worker.py +0 -0
  526. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/telemetry.py +0 -0
  527. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/tom/__init__.py +0 -0
  528. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/tom/affect.py +0 -0
  529. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/tom/approvals.py +0 -0
  530. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/tom/arcs.py +0 -0
  531. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/tom/asymmetry.py +0 -0
  532. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/tom/eligibility.py +0 -0
  533. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/tom/engagement.py +0 -0
  534. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/tom/exposure.py +0 -0
  535. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/tom/extractor.py +0 -0
  536. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/tom/fact_adapters.py +0 -0
  537. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/tom/facts.py +0 -0
  538. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/tom/integration.py +0 -0
  539. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/tom/leveled.py +0 -0
  540. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/tom/levels.py +0 -0
  541. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/tom/recipient_audit.py +0 -0
  542. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/tom/recipient_simulator.py +0 -0
  543. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/tom/source_lineage.py +0 -0
  544. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/tom/tom2.py +0 -0
  545. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/tom/visibility.py +0 -0
  546. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/tom/visibility_store.py +0 -0
  547. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/tools/__init__.py +0 -0
  548. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/tools/definitions.py +0 -0
  549. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/tools/handlers.py +0 -0
  550. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/toolsmith/__init__.py +0 -0
  551. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/toolsmith/authority.py +0 -0
  552. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/toolsmith/engine.py +0 -0
  553. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/toolsmith/integrity.py +0 -0
  554. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/toolsmith/miner.py +0 -0
  555. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/toolsmith/policy.py +0 -0
  556. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/toolsmith/registry.py +0 -0
  557. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/turns/__init__.py +0 -0
  558. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/turns/audio.py +0 -0
  559. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/turns/documents.py +0 -0
  560. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/turns/executions.py +0 -0
  561. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/turns/hermes_history.py +0 -0
  562. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/turns/hermes_kanban.py +0 -0
  563. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/turns/hermes_work.py +0 -0
  564. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/turns/history_references.py +0 -0
  565. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/turns/idempotency.py +0 -0
  566. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/turns/local_work.py +0 -0
  567. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/turns/media.py +0 -0
  568. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/turns/reported_workers.py +0 -0
  569. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/turns/source_annotations.py +0 -0
  570. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/turns/source_attribution.py +0 -0
  571. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/turns/source_read.py +0 -0
  572. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/turns/source_vectors.py +0 -0
  573. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/turns/tool_observations.py +0 -0
  574. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/turns/video.py +0 -0
  575. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/util/autonomy_preset.py +0 -0
  576. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/util/instance.py +0 -0
  577. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/util/model_output.py +0 -0
  578. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/util/quiet_hours.py +0 -0
  579. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/util/session_safety.py +0 -0
  580. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/util/temporal.py +0 -0
  581. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/vector/__init__.py +0 -0
  582. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/vector/backfill.py +0 -0
  583. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/vector/caption.py +0 -0
  584. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/vector/collections.py +0 -0
  585. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/vector/config.py +0 -0
  586. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/vector/embedder.py +0 -0
  587. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/vector/image_preprocess.py +0 -0
  588. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/vector/image_store.py +0 -0
  589. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/vector/indexes.py +0 -0
  590. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/vector/migrate.py +0 -0
  591. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/vector/multimodal_provider.py +0 -0
  592. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/vector/multimodal_types.py +0 -0
  593. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/vector/openai_provider.py +0 -0
  594. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/vector/query.py +0 -0
  595. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/vector/reranker.py +0 -0
  596. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/vector/safety_image.py +0 -0
  597. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/vector/scanner.py +0 -0
  598. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/vector/setup.py +0 -0
  599. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/vector/store.py +0 -0
  600. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/vector/tiers.py +0 -0
  601. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/work_orders.py +0 -0
  602. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/workers/agent_bridge.py +0 -0
  603. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/causal_maintenance.py +0 -0
  604. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/causal_policy.py +0 -0
  605. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/causal_query.py +0 -0
  606. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/confidence.py +0 -0
  607. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/constants.py +0 -0
  608. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/entities.py +0 -0
  609. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/expectation_resolvers.py +0 -0
  610. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/extraction/__init__.py +0 -0
  611. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/extraction/base.py +0 -0
  612. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/extraction/conversation_extractor.py +0 -0
  613. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/extraction/detector.py +0 -0
  614. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/extraction/document_extractor.py +0 -0
  615. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/extraction/formats/__init__.py +0 -0
  616. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/extraction/formats/csv_fmt.py +0 -0
  617. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/extraction/formats/html_fmt.py +0 -0
  618. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/extraction/formats/json_fmt.py +0 -0
  619. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/extraction/formats/pdf.py +0 -0
  620. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/extraction/formats/text.py +0 -0
  621. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/extraction/llm_extractor.py +0 -0
  622. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/extraction/pipeline.py +0 -0
  623. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/integrations/__init__.py +0 -0
  624. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/integrations/mind_model_bridge.py +0 -0
  625. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/integrations/social_intel_bridge.py +0 -0
  626. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/jobs/__init__.py +0 -0
  627. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/jobs/extraction_job.py +0 -0
  628. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/llm_extract.py +0 -0
  629. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/observations.py +0 -0
  630. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/populator.py +0 -0
  631. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/relationships.py +0 -0
  632. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/resolution/__init__.py +0 -0
  633. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/resolution/entity_resolver.py +0 -0
  634. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/resolution/merge_audit.py +0 -0
  635. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/resolution/merge_workflow.py +0 -0
  636. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/source_reports.py +0 -0
  637. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/sqlite/__init__.py +0 -0
  638. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/sqlite/backend.py +0 -0
  639. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo/world_model/sqlite/schema.sql +0 -0
  640. {apsimo-1.4.2 → apsimo-1.4.4}/apsimo.egg-info/dependency_links.txt +0 -0
  641. {apsimo-1.4.2 → apsimo-1.4.4}/setup.cfg +0 -0
  642. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_accepted_local_work.py +0 -0
  643. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_adaptive_params.py +0 -0
  644. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_affect.py +0 -0
  645. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_agent_action_routing.py +0 -0
  646. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_agent_api.py +0 -0
  647. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_agent_bridge.py +0 -0
  648. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_agent_bridge_service.py +0 -0
  649. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_agent_sdk.py +0 -0
  650. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_agent_sensor_loop.py +0 -0
  651. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_agent_snapshot.py +0 -0
  652. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_agent_store.py +0 -0
  653. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_annotated_recall_reinforcement.py +0 -0
  654. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_answer_source_lineage.py +0 -0
  655. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_appraisal_incident_decisions.py +0 -0
  656. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_approval_gate.py +0 -0
  657. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_approval_relay_canary.py +0 -0
  658. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_apsimo_harness_guidance.py +0 -0
  659. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_assignment_engine.py +0 -0
  660. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_audit_cleanup.py +0 -0
  661. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_auth_coverage.py +0 -0
  662. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_auth_migration_readiness.py +0 -0
  663. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_authz_scope_api.py +0 -0
  664. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_autonomy_preset.py +0 -0
  665. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_backup.py +0 -0
  666. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_backup_receipt_evidence.py +0 -0
  667. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_beliefs.py +0 -0
  668. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_bind_auth_guard.py +0 -0
  669. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_boundary_fail_closed.py +0 -0
  670. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_bounded_approval_authority.py +0 -0
  671. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_briefing_aggregators.py +0 -0
  672. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_canonical_scoped_context.py +0 -0
  673. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_canonical_source_read.py +0 -0
  674. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_causal_extract.py +0 -0
  675. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_causal_maintenance.py +0 -0
  676. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_causal_policy.py +0 -0
  677. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_chain_keys.py +0 -0
  678. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_channel_preferences.py +0 -0
  679. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_channel_registry.py +0 -0
  680. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_channel_store.py +0 -0
  681. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_cognition.py +0 -0
  682. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_cognition_evidence_pipeline.py +0 -0
  683. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_cognition_evidence_server_wiring.py +0 -0
  684. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_cognition_goal_spine.py +0 -0
  685. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_cognition_observability.py +0 -0
  686. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_cognition_p4_controlled_learning.py +0 -0
  687. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_cognition_p4_server_integration.py +0 -0
  688. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_cognition_p6_p7_server_wiring.py +0 -0
  689. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_cognition_p7_drive_governance.py +0 -0
  690. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_cognition_phase_b_runtime.py +0 -0
  691. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_cognition_phase_c_scheduler.py +0 -0
  692. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_cognition_server_wiring.py +0 -0
  693. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_colony_memory_provider.py +0 -0
  694. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_commitment_resolution.py +0 -0
  695. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_commitment_resolution_downgrade.py +0 -0
  696. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_commitment_resolution_schema.py +0 -0
  697. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_commitment_work.py +0 -0
  698. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_commitments.py +0 -0
  699. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_comms_source_erasure.py +0 -0
  700. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_competence_reconciliation.py +0 -0
  701. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_compression.py +0 -0
  702. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_concern_resolution_receipts.py +0 -0
  703. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_condition_producer.py +0 -0
  704. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_connectors.py +0 -0
  705. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_contact_fact_recall.py +0 -0
  706. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_contact_policy_projection.py +0 -0
  707. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_contact_provisioning.py +0 -0
  708. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_contact_timezone.py +0 -0
  709. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_contacts_intro.py +0 -0
  710. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_contacts_persistence.py +0 -0
  711. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_context_gate.py +0 -0
  712. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_context_phase1.py +0 -0
  713. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_context_provenance.py +0 -0
  714. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_context_skill_ownership.py +0 -0
  715. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_conversation_presence.py +0 -0
  716. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_conversation_turn_concerns.py +0 -0
  717. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_current_work_recall_selection.py +0 -0
  718. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_delivery_bridge_503.py +0 -0
  719. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_delivery_gateway_identity.py +0 -0
  720. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_delivery_reachout_routing.py +0 -0
  721. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_directed.py +0 -0
  722. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_directed_envelope.py +0 -0
  723. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_directed_reports.py +0 -0
  724. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_directed_trust.py +0 -0
  725. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_directive_sources.py +0 -0
  726. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_directives.py +0 -0
  727. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_distill.py +0 -0
  728. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_doctor.py +0 -0
  729. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_document_memory_guard.py +0 -0
  730. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_duckduckgo_provider.py +0 -0
  731. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_embedding_generations.py +0 -0
  732. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_enrolled_sender_turns.py +0 -0
  733. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_ensure_channel_id.py +0 -0
  734. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_env_risk.py +0 -0
  735. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_event_broadcasts.py +0 -0
  736. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_event_bus_types.py +0 -0
  737. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_event_concerns.py +0 -0
  738. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_event_stream_reliability.py +0 -0
  739. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_execution_forecasts.py +0 -0
  740. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_execution_input_purpose.py +0 -0
  741. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_execution_registry.py +0 -0
  742. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_expectations.py +0 -0
  743. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_expectations_v2.py +0 -0
  744. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_experiments.py +0 -0
  745. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_external_cognition_events.py +0 -0
  746. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_external_event_concerns.py +0 -0
  747. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_facts_backfill.py +0 -0
  748. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_feedback.py +0 -0
  749. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_followup_plans.py +0 -0
  750. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_forecast_learning.py +0 -0
  751. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_function_routing.py +0 -0
  752. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_gap_generators.py +0 -0
  753. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_genesis_manifest.py +0 -0
  754. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_global_pause.py +0 -0
  755. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_goal_dispatch_availability.py +0 -0
  756. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_goal_inference_provenance.py +0 -0
  757. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_goal_reader_imports.py +0 -0
  758. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_governed_actions.py +0 -0
  759. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_governed_research_handoff.py +0 -0
  760. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_graduated_approvals.py +0 -0
  761. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_grant_envelope.py +0 -0
  762. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_graph_reindex_metadata.py +0 -0
  763. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_guard_audit.py +0 -0
  764. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_guard_chat_mode.py +0 -0
  765. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_guard_derive_context.py +0 -0
  766. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_guard_enforce_policy.py +0 -0
  767. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_hermes_export.py +0 -0
  768. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_hermes_history_import.py +0 -0
  769. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_hermes_native_tool_authority.py +0 -0
  770. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_hermes_plugin_contract.py +0 -0
  771. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_hermes_plugin_event_lifecycle.py +0 -0
  772. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_hermes_plugin_event_replay.py +0 -0
  773. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_hermes_plugin_guard_shadow.py +0 -0
  774. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_hermes_plugin_signals.py +0 -0
  775. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_hermes_plugin_turn_id.py +0 -0
  776. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_hermes_queue_stats_projection.py +0 -0
  777. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_hermes_setup.py +0 -0
  778. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_hermes_turn_outbox.py +0 -0
  779. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_hermes_work_projection.py +0 -0
  780. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_host_input_provenance.py +0 -0
  781. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_hostworker_agreement.py +0 -0
  782. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_identity_continuity.py +0 -0
  783. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_identity_corrections.py +0 -0
  784. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_inference_context_gate.py +0 -0
  785. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_initiative_engine.py +0 -0
  786. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_initiative_evidence.py +0 -0
  787. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_initiative_executor.py +0 -0
  788. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_initiative_feedback.py +0 -0
  789. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_initiative_pipeline_v016.py +0 -0
  790. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_initiative_retry.py +0 -0
  791. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_initiative_store.py +0 -0
  792. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_input_source_lineage.py +0 -0
  793. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_insight_store.py +0 -0
  794. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_instance_service.py +0 -0
  795. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_instance_service_live.py +0 -0
  796. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_intelligence_components.py +0 -0
  797. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_intelligence_synthesis.py +0 -0
  798. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_introduction_initiatives.py +0 -0
  799. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_job_writeback.py +0 -0
  800. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_journal.py +0 -0
  801. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_legacy_fact_context.py +0 -0
  802. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_local_work_context.py +0 -0
  803. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_loop_stats_accuracy.py +0 -0
  804. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_mcp_config.py +0 -0
  805. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_mcp_server.py +0 -0
  806. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_media_read_reference_presentation.py +0 -0
  807. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_memory_decay.py +0 -0
  808. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_memory_formation.py +0 -0
  809. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_memory_governance.py +0 -0
  810. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_memory_promotion.py +0 -0
  811. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_memory_prune.py +0 -0
  812. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_memory_read_hydration.py +0 -0
  813. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_memory_response_schemas.py +0 -0
  814. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_migrations.py +0 -0
  815. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_mining.py +0 -0
  816. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_model_qualification_cli.py +0 -0
  817. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_model_qualification_memory.py +0 -0
  818. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_model_qualification_runner.py +0 -0
  819. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_model_qualification_structured.py +0 -0
  820. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_native_accepted_local_work.py +0 -0
  821. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_native_history_references.py +0 -0
  822. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_native_input_carrier.py +0 -0
  823. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_native_outcome_judgments.py +0 -0
  824. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_native_request_erasure.py +0 -0
  825. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_native_review_recurrence.py +0 -0
  826. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_native_source_image_read.py +0 -0
  827. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_native_source_read.py +0 -0
  828. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_native_source_video_read.py +0 -0
  829. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_operator_deck_read_truth.py +0 -0
  830. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_ordinary_context_briefings.py +0 -0
  831. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_owner_preferences.py +0 -0
  832. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_p2_wirings.py +0 -0
  833. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_partial_work_rendering.py +0 -0
  834. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_patterns.py +0 -0
  835. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_pending_work_coverage.py +0 -0
  836. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_persona.py +0 -0
  837. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_persona_setup_result.py +0 -0
  838. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_phase_capability_check.py +0 -0
  839. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_preset_loop_coupling.py +0 -0
  840. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_procedure_source_context.py +0 -0
  841. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_project_event_outbox.py +0 -0
  842. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_project_result_reconciliation_phase.py +0 -0
  843. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_projects.py +0 -0
  844. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_prompt_evals.py +0 -0
  845. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_proposals.py +0 -0
  846. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_provenance_population.py +0 -0
  847. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_pseudo_agi_production_chain.py +0 -0
  848. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_queue_completed_filter.py +0 -0
  849. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_queue_contract.py +0 -0
  850. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_quiet_hours_and_reload.py +0 -0
  851. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_reachout_policy.py +0 -0
  852. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_recall_hybrid.py +0 -0
  853. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_recall_person_boost.py +0 -0
  854. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_recall_ranking.py +0 -0
  855. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_recall_request_repetition.py +0 -0
  856. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_recall_rerank.py +0 -0
  857. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_recall_unified_context.py +0 -0
  858. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_recency.py +0 -0
  859. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_reflection_task_routing.py +0 -0
  860. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_rejection_loop.py +0 -0
  861. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_relationship_calendar_aggregators.py +0 -0
  862. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_relationship_score_refresh.py +0 -0
  863. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_relationship_signal_floor.py +0 -0
  864. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_relationships.py +0 -0
  865. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_reply_forecast_callback_order.py +0 -0
  866. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_reply_forecast_stops.py +0 -0
  867. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_reply_forecasts.py +0 -0
  868. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_repo_tools.py +0 -0
  869. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_reported_worker_status.py +0 -0
  870. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_request_capabilities.py +0 -0
  871. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_request_work_context.py +0 -0
  872. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_reranker_remote.py +0 -0
  873. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_research_orchestrator.py +0 -0
  874. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_resolve_messaging_handle.py +0 -0
  875. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_response_guard.py +0 -0
  876. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_response_guard_communication_policy.py +0 -0
  877. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_response_guard_endpoint.py +0 -0
  878. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_response_guard_surface_policy.py +0 -0
  879. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_router_tiers.py +0 -0
  880. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_runtime_model_observations.py +0 -0
  881. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_sandbox.py +0 -0
  882. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_scoped_api_authority.py +0 -0
  883. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_scoped_contact_resolution.py +0 -0
  884. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_secondary_review_contract.py +0 -0
  885. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_selected_autonomy.py +0 -0
  886. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_self_directed_thinker.py +0 -0
  887. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_self_initiatives.py +0 -0
  888. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_self_judgment_opt_in.py +0 -0
  889. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_self_judgment_premises.py +0 -0
  890. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_self_judgments.py +0 -0
  891. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_self_model.py +0 -0
  892. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_self_perspective.py +0 -0
  893. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_selfhood_benchmark.py +0 -0
  894. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_session_reports.py +0 -0
  895. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_shared_facts.py +0 -0
  896. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_shared_local_undertaking.py +0 -0
  897. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_short_source_context.py +0 -0
  898. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_sidecar.py +0 -0
  899. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_signals_attribution.py +0 -0
  900. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_situation_spine.py +0 -0
  901. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_skill_approval.py +0 -0
  902. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_skill_attribution.py +0 -0
  903. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_skill_sandbox.py +0 -0
  904. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_skill_synthesis.py +0 -0
  905. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_skill_synthesis_wiring.py +0 -0
  906. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_skills_memory.py +0 -0
  907. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_social_context_flow.py +0 -0
  908. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_social_transport.py +0 -0
  909. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_source_annotation_claim_survivors.py +0 -0
  910. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_source_annotations.py +0 -0
  911. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_source_appraisals.py +0 -0
  912. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_source_attribution.py +0 -0
  913. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_source_audio.py +0 -0
  914. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_source_audio_claims.py +0 -0
  915. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_source_claim_budget.py +0 -0
  916. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_source_claim_diagnostics.py +0 -0
  917. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_source_claim_media_eligibility.py +0 -0
  918. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_source_claim_projection.py +0 -0
  919. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_source_claim_review.py +0 -0
  920. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_source_claim_subject_basis.py +0 -0
  921. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_source_document_read.py +0 -0
  922. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_source_documents.py +0 -0
  923. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_source_episode_admission.py +0 -0
  924. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_source_episode_memory.py +0 -0
  925. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_source_episode_revisions.py +0 -0
  926. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_source_event_precision.py +0 -0
  927. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_source_excerpt_lineage.py +0 -0
  928. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_source_image_read.py +0 -0
  929. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_source_media.py +0 -0
  930. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_source_memory_backup.py +0 -0
  931. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_source_time_query.py +0 -0
  932. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_source_vectors.py +0 -0
  933. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_source_video.py +0 -0
  934. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_sqlite_connection_ownership.py +0 -0
  935. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_supervised_rung.py +0 -0
  936. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_surprise.py +0 -0
  937. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_sweep_fixes.py +0 -0
  938. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_synthesis.py +0 -0
  939. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_telemetry_staleness.py +0 -0
  940. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_temporal.py +0 -0
  941. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_temporal_followups.py +0 -0
  942. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_temporal_index.py +0 -0
  943. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_test_environment_isolation.py +0 -0
  944. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_thinking_phase.py +0 -0
  945. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_thought_function_routing.py +0 -0
  946. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tick_phase_budget.py +0 -0
  947. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tier_endpoints.py +0 -0
  948. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_timeline.py +0 -0
  949. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tom2_approvals.py +0 -0
  950. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tom2_asymmetry.py +0 -0
  951. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tom2_context.py +0 -0
  952. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tom2_cross_gate.py +0 -0
  953. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tom2_eligibility.py +0 -0
  954. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tom2_epistemic_guard.py +0 -0
  955. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tom2_exposure.py +0 -0
  956. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tom2_kill_switch.py +0 -0
  957. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tom2_level_coherence.py +0 -0
  958. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tom2_leveled.py +0 -0
  959. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tom2_levels.py +0 -0
  960. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tom2_source_corrections.py +0 -0
  961. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tom2_store.py +0 -0
  962. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tom2_taint.py +0 -0
  963. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tom2_wiring.py +0 -0
  964. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tom_event_lineage.py +0 -0
  965. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tom_extractor.py +0 -0
  966. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tom_p8_arcs.py +0 -0
  967. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tom_p8_boundary_corpus.py +0 -0
  968. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tom_p8_fact_adapters.py +0 -0
  969. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tom_p8_outbound_integration.py +0 -0
  970. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tom_p8_recipient_audit.py +0 -0
  971. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tom_p8_recipient_simulator.py +0 -0
  972. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tom_p8_visibility.py +0 -0
  973. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tom_p8_visibility_store.py +0 -0
  974. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tom_source_lineage.py +0 -0
  975. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tool_handlers_graph.py +0 -0
  976. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tool_observation_reader.py +0 -0
  977. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tool_provenance.py +0 -0
  978. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_tool_surface.py +0 -0
  979. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_toolsmith.py +0 -0
  980. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_transport_ingress.py +0 -0
  981. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_transport_ingress_api.py +0 -0
  982. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_trust_configure.py +0 -0
  983. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_trust_scopes.py +0 -0
  984. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_trust_scopes_p2.py +0 -0
  985. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_turn_idempotency_ledger.py +0 -0
  986. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_turn_idempotency_v2.py +0 -0
  987. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_turn_ner_entities.py +0 -0
  988. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_turn_source_erasure.py +0 -0
  989. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_turn_source_evidence.py +0 -0
  990. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_turn_survivor_delivery.py +0 -0
  991. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_validation_sweep_fixes.py +0 -0
  992. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_vector_vacuum.py +0 -0
  993. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_wizard_autonomy.py +0 -0
  994. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_work_ancestry_projection.py +0 -0
  995. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_work_control_production_blockers.py +0 -0
  996. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_work_control_v1.py +0 -0
  997. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_work_orders.py +0 -0
  998. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_work_read_surface_authority.py +0 -0
  999. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_work_source_coverage.py +0 -0
  1000. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_worker_handler_boundaries.py +0 -0
  1001. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_worker_heartbeat_truth.py +0 -0
  1002. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_worker_http_authority.py +0 -0
  1003. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_worker_integration.py +0 -0
  1004. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_worker_lifecycle_durability.py +0 -0
  1005. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_workers_governor.py +0 -0
  1006. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_workspace.py +0 -0
  1007. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_world_context_query.py +0 -0
  1008. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_world_llm_extract.py +0 -0
  1009. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_world_quality.py +0 -0
  1010. {apsimo-1.4.2 → apsimo-1.4.4}/tests/test_world_supervised.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apsimo
3
- Version: 1.4.2
3
+ Version: 1.4.4
4
4
  Summary: Persistent identity, memory and autonomy for AI agents
5
5
  License-Expression: MIT
6
6
  Requires-Python: >=3.11
@@ -28,15 +28,13 @@ Requires-Dist: pandas>=2.0; extra == "vectors"
28
28
  Requires-Dist: pyarrow>=15.0; extra == "vectors"
29
29
  Requires-Dist: lancedb>=0.10; extra == "vectors"
30
30
  Provides-Extra: hermes
31
- Requires-Dist: apsimo-hermes<2,>=1.4.2; extra == "hermes"
31
+ Requires-Dist: apsimo-hermes<2,>=1.4.4; extra == "hermes"
32
32
  Provides-Extra: mcp
33
33
  Requires-Dist: mcp[cli]<2,>=1.0; extra == "mcp"
34
34
  Provides-Extra: lancedb
35
35
  Requires-Dist: lancedb>=0.6; extra == "lancedb"
36
36
  Requires-Dist: pyarrow>=14.0; extra == "lancedb"
37
37
  Requires-Dist: pandas>=2.0; extra == "lancedb"
38
- Provides-Extra: postgres
39
- Requires-Dist: asyncpg>=0.29; extra == "postgres"
40
38
  Provides-Extra: extraction
41
39
  Requires-Dist: PyMuPDF>=1.24; extra == "extraction"
42
40
  Requires-Dist: beautifulsoup4>=4.12; extra == "extraction"
@@ -485,8 +485,6 @@ def supported_capabilities() -> List[str]:
485
485
  if _world_store is not None:
486
486
  caps.append("context")
487
487
  caps.append("world_model_api")
488
- if _world_store is not None and hasattr(_world_store, '_config') and _world_store._config.backend == "neo4j":
489
- caps.append("neo4j_backend")
490
488
  caps.append("event_journal")
491
489
  if _external_event_intake is not None:
492
490
  caps.append("external_cognition_events")
@@ -820,8 +818,6 @@ async def health() -> HostHealthResponse:
820
818
  if _world_store is not None and hasattr(_world_store, '_backend') and _world_store._backend is not None:
821
819
  backend_type = type(_world_store._backend).__name__
822
820
  notes["world_model_backend"] = f"{backend_type} connected"
823
- if _world_store is not None and hasattr(_world_store, '_config') and _world_store._config.backend == "neo4j":
824
- notes["neo4j"] = "Neo4j backend selected"
825
821
 
826
822
  health_status = "ok"
827
823
  if model_mismatch or embed_degraded or memory_backend_down:
@@ -12032,20 +12028,6 @@ async def executor_status() -> dict:
12032
12028
  }
12033
12029
 
12034
12030
 
12035
- # ---------------------------------------------------------------------------
12036
- # Self-Knowledge Seeding
12037
- # ---------------------------------------------------------------------------
12038
-
12039
-
12040
- class SeedResponse(BaseModel):
12041
- memories: int = 0
12042
- entities: int = 0
12043
- skills: int = 0
12044
- insights: int = 0
12045
- errors: list[str] = []
12046
- skipped: list[str] = [] # Machine-readable dispositions, including retirement
12047
-
12048
-
12049
12031
  # ---------------------------------------------------------------------------
12050
12032
  # Commitment Tracking
12051
12033
  # ---------------------------------------------------------------------------
@@ -13043,14 +13025,6 @@ async def extract_tom(
13043
13025
  )
13044
13026
 
13045
13027
 
13046
- @router.post("/seed", response_model=SeedResponse)
13047
- async def seed_self_knowledge_endpoint(force: bool = Query(False, description="Compatibility flag; built-in seeding remains retired")) -> SeedResponse:
13048
- """Return the retired built-in seeding disposition without opening stores."""
13049
- from apsimo.seed import seed_self_knowledge
13050
-
13051
- return SeedResponse(**await seed_self_knowledge(force=force))
13052
-
13053
-
13054
13028
  # ============================================================================
13055
13029
  # World Model — Entity CRUD
13056
13030
  # ============================================================================
@@ -13062,7 +13036,7 @@ async def create_world_entity(body: WorldEntityCreateRequest) -> WorldEntityDeta
13062
13036
  raise HTTPException(status_code=501, detail="World model not initialized")
13063
13037
  try:
13064
13038
  from apsimo.world_model.entities import BaseEntity, ENTITY_CLASS_MAP
13065
- from apsimo.world_model.neo4j.backend import _generate_id
13039
+ from apsimo.world_model.sqlite.backend import _generate_id
13066
13040
  cls = ENTITY_CLASS_MAP.get(body.entity_type, BaseEntity)
13067
13041
  import dataclasses
13068
13042
  valid = {f.name for f in dataclasses.fields(cls)}
@@ -13155,7 +13129,7 @@ async def create_world_relationship(body: WorldRelationshipCreateRequest) -> Wor
13155
13129
  raise HTTPException(status_code=501, detail="World model not initialized")
13156
13130
  try:
13157
13131
  from apsimo.world_model.relationships import WorldRelationship
13158
- from apsimo.world_model.neo4j.backend import _generate_id
13132
+ from apsimo.world_model.sqlite.backend import _generate_id
13159
13133
  now = datetime.now(timezone.utc).isoformat()
13160
13134
  rel = WorldRelationship(
13161
13135
  id=_generate_id("wr"),
@@ -105,11 +105,6 @@ def main() -> None:
105
105
  # --- generate-types ---
106
106
  sub.add_parser("generate-types", help="Export OpenAPI spec (for TypeScript generation)")
107
107
 
108
- # --- seed ---
109
- seed_p = sub.add_parser("seed", help="Show the retired built-in seeding disposition")
110
- seed_p.add_argument("--verify", action="store_true", help="Compatibility flag; show the retirement disposition")
111
- seed_p.add_argument("--force", action="store_true", help="Compatibility flag; built-in seeding remains retired")
112
-
113
108
  # --- backfill ---
114
109
  backfill_p = sub.add_parser("backfill", help="Re-embed all vectors with current model")
115
110
  backfill_p.add_argument("--collection", default=None, help="Specific collection to backfill (default: all)")
@@ -441,10 +436,6 @@ def main() -> None:
441
436
  p = len(spec.get("paths", {}))
442
437
  print(f"✅ OpenAPI spec written to {out} ({n} schemas, {p} paths)")
443
438
 
444
- elif args.command == "seed":
445
- from apsimo.seed import seed_self_knowledge_summary
446
- print(seed_self_knowledge_summary())
447
-
448
439
  elif args.command == "backfill":
449
440
  _load_dotenv()
450
441
  import httpx
@@ -2398,8 +2389,8 @@ def _cmd_validate(args) -> None:
2398
2389
  if llm_ok and len(found) >= 2:
2399
2390
  print(" ✅ Full sidecar pipeline working — context assembly + LLM router live")
2400
2391
  elif llm_ok:
2401
- print(" ⚠️ LLM live but cognitive context sections are thin — seed data "
2402
- "or run a few turns, then re-validate")
2392
+ print(" ⚠️ LLM live but cognitive context sections are thin — run a few "
2393
+ "ordinary turns and check their retained evidence")
2403
2394
  else:
2404
2395
  print(" ⚪ LLM not verified — context pipeline validated, reasoning not")
2405
2396
 
@@ -91,8 +91,6 @@ def render_memory_context(memories: list[dict[str, Any]]) -> str:
91
91
  source["event_time"] = "unprojected"
92
92
  if memory.get("contradiction_count"):
93
93
  source["contradictions"] = memory["contradiction_count"]
94
- if memory.get("rerank_calibration"):
95
- source["rerank_calibration"] = memory["rerank_calibration"]
96
94
  if memory.get("rerank_status") == "unavailable":
97
95
  source["rerank_status"] = "unavailable"
98
96
  content = str(memory.get('content', ''))
@@ -2592,11 +2592,10 @@ async def lifespan(app: FastAPI):
2592
2592
  try:
2593
2593
  from apsimo.world_model.store import WorldModelStore
2594
2594
  from apsimo.world_model.config import WorldModelConfig
2595
- _wm_backend = os.environ.get("WORLD_MODEL_BACKEND", "sqlite")
2596
- world_store = WorldModelStore(WorldModelConfig(backend=_wm_backend))
2595
+ world_store = WorldModelStore(WorldModelConfig())
2597
2596
  await world_store.connect()
2598
2597
  set_world_store(world_store)
2599
- logger.info("WorldModelStore initialized and connected (backend=%s)", _wm_backend)
2598
+ logger.info("WorldModelStore connected to SQLite")
2600
2599
 
2601
2600
  # World-model population from conversation (shadow-first). Boundary-checked
2602
2601
  # via the directive manager. Mode from COLONY_WORLD_POPULATE_MODE
@@ -2687,13 +2686,8 @@ async def lifespan(app: FastAPI):
2687
2686
  logger.warning("Extraction pipeline init skipped: %s", eexc)
2688
2687
  except Exception as exc:
2689
2688
  logger.warning("WorldModelStore init failed: %s", exc)
2690
- # Try without connect() — some operations work without it
2691
- try:
2692
- world_store = WorldModelStore(WorldModelConfig(backend=_wm_backend))
2693
- set_world_store(world_store)
2694
- logger.info("WorldModelStore initialized (without connect)")
2695
- except Exception as exc2:
2696
- logger.error("WorldModelStore fallback init also failed: %s", exc2)
2689
+ world_store = None
2690
+ set_world_store(None)
2697
2691
 
2698
2692
  # --- 11. Cognition (CognitionPipeline) ---
2699
2693
  cognition_pipeline = None
@@ -9,7 +9,6 @@ Guides the user through first-time configuration:
9
9
  6. Write .env
10
10
  7. Database setup
11
11
  8. Autonomy & approvals (owner contact, approval policy, gates, home channel)
12
- 9. Self-knowledge seeding
13
12
  10. Start sidecar + verify (10e: schedule agent workers via crontab)
14
13
  11. Summary
15
14
  12. Health check (colony doctor)
@@ -1685,14 +1684,14 @@ def run_autonomy_step(
1685
1684
  #: (for the `python -m` fallback) and cron schedule.
1686
1685
  WORKER_SPECS = (
1687
1686
  {
1688
- "name": "colony-queue-worker",
1687
+ "name": "apsimo-queue-worker",
1689
1688
  "module": "apsimo.workers.queue_worker",
1690
1689
  "schedule": "*/5 * * * *",
1691
1690
  "blurb": "claims approved agent_action jobs every 5 minutes and hands "
1692
1691
  "them to your agent (without it, auto-approved jobs sit QUEUED forever)",
1693
1692
  },
1694
1693
  {
1695
- "name": "colony-skills-sync",
1694
+ "name": "apsimo-skills-sync",
1696
1695
  "module": "apsimo.workers.skills_sync",
1697
1696
  "schedule": "0 9 * * *",
1698
1697
  "blurb": "reports your agent's installed skill index to Apsimo once a "
@@ -2378,7 +2377,6 @@ def run_init(root_dir: str | None = None, args=None) -> int:
2378
2377
  "NEO4J_USER": existing.get("NEO4J_USER", "neo4j"),
2379
2378
  "NEO4J_PASSWORD": neo4j_password or existing.get("NEO4J_PASSWORD", ""),
2380
2379
  "NEO4J_DATABASE": existing.get("NEO4J_DATABASE", "neo4j"),
2381
- "WORLD_MODEL_BACKEND": existing.get("WORLD_MODEL_BACKEND", "neo4j" if neo4j_password else "sqlite"),
2382
2380
  "COLONY_API_KEY": existing.get("COLONY_API_KEY", secrets.token_urlsafe(32)),
2383
2381
  "COLONY_CONTACTS_DB": existing.get("COLONY_CONTACTS_DB", str(colony_home / "data" / "contacts.db")),
2384
2382
  "COLONY_EMBED_PROVIDER": embed_provider,
@@ -282,7 +282,7 @@ def _select_home(args, ask):
282
282
 
283
283
 
284
284
  def _adapter_resources(wheel=None):
285
- packages = ('apsimo_hermes/', 'apsimo_memory/', 'colony_hermes/', 'colony_memory/')
285
+ packages = ('apsimo_hermes/', 'apsimo_memory/')
286
286
  if wheel:
287
287
  with zipfile.ZipFile(wheel) as archive:
288
288
  resources = {name: archive.read(name) for name in archive.namelist()
@@ -344,13 +344,6 @@ import hashlib, importlib.metadata, importlib.util, json, sys
344
344
  from pathlib import Path
345
345
  expected = json.load(sys.stdin)
346
346
  entries = importlib.metadata.entry_points()
347
- aliases = []
348
- for group, name, target in [('hermes_agent.plugins', 'colony', 'apsimo_hermes'),
349
- ('hermes_agent.memory_providers', 'colony-memory', 'apsimo_memory')]:
350
- matches = [ep for ep in entries.select(group=group) if ep.name == name]
351
- if len(matches) > 1 or any(ep.value != target for ep in matches):
352
- raise ValueError('Conflicting legacy adapter distribution or target')
353
- aliases.extend(matches)
354
347
  selected = []
355
348
  for group, name, module in [('hermes_agent.plugins', 'apsimo', 'apsimo_hermes'),
356
349
  ('hermes_agent.memory_providers', 'apsimo-memory', 'apsimo_memory')]:
@@ -358,14 +351,14 @@ for group, name, module in [('hermes_agent.plugins', 'apsimo', 'apsimo_hermes'),
358
351
  if len(matches) > 1 or (matches and matches[0].value != module):
359
352
  raise ValueError('Conflicting Apsimo entry point')
360
353
  selected.append(matches[0] if matches else None)
361
- if not any(selected) and not aliases:
354
+ if not any(selected):
362
355
  print(json.dumps({'mode': 'private-directory'}))
363
356
  sys.exit(0)
364
357
  if not all(selected):
365
358
  raise ValueError('Both canonical native Apsimo entry points are required')
366
- identities = {(ep.dist.metadata['Name'].lower().replace('_', '-'), ep.dist.version) for ep in [*selected, *aliases]}
359
+ identities = {(ep.dist.metadata['Name'].lower().replace('_', '-'), ep.dist.version) for ep in selected}
367
360
  if len(identities) != 1:
368
- raise ValueError('Canonical and legacy adapter registrations come from different distributions')
361
+ raise ValueError('Canonical adapter registrations come from different distributions')
369
362
  sources, external_modules, versions = {}, {}, set()
370
363
  for ep in selected:
371
364
  module = ep.value
@@ -473,14 +466,14 @@ def refresh_adapter(state, args):
473
466
  raise ValueError('Expected one managed adapter directory; reconcile duplicate or missing bindings')
474
467
  directory = directories[0]
475
468
  forwarder = directory/'__init__.py'
476
- modules = ('apsimo_memory','colony_memory') if memory else ('apsimo_hermes','colony_hermes')
469
+ modules = ('apsimo_memory',) if memory else ('apsimo_hermes',)
477
470
  matches = [module for module in modules if not forwarder.is_symlink()
478
471
  and forwarder.read_text() == _forwarder(adapter, module, memory)]
479
472
  if len(matches) != 1:
480
473
  raise ValueError('The selected profile adapter forwarder changed; reconcile it before refreshing')
481
474
  module = matches[0]
482
475
  if module+'/__init__.py' not in resources:
483
- raise ValueError('New adapter lacks the compatibility module required by this forwarder')
476
+ raise ValueError('New adapter lacks the canonical module required by this forwarder')
484
477
  target = directory/'plugin.yaml'
485
478
  if target.is_symlink() or target.read_bytes() != old_resources[module+'/plugin.yaml']:
486
479
  raise ValueError('The selected profile adapter manifest changed; reconcile it before refreshing')
@@ -771,7 +764,7 @@ def run(root_dir=None, args=None):
771
764
  'COLONY_PERSONA_NAME': agent_name, 'COLONY_CONTACTS_DB': str(state/'contacts.db'),
772
765
  'COLONY_API_KEYRING_PATH': str(state/'api-keyring.json'), 'COLONY_API_KEY': '',
773
766
  'COLONY_CLIENT_API_KEY': key, 'COLONY_GRAPH_ENABLED': 'false',
774
- 'COLONY_EMBED_PROVIDER': 'skip', 'WORLD_MODEL_BACKEND': 'sqlite',
767
+ 'COLONY_EMBED_PROVIDER': 'skip',
775
768
  'COLONY_AUTONOMY_PRESET': 'passive', 'COLONY_EMBEDDED_WORKER_ENABLED': 'false',
776
769
  'COLONY_SOURCE_CLAIMS': 'on'}
777
770
  values.update({
@@ -0,0 +1,12 @@
1
+ """Schedulable agent-side workers, available as installed console commands.
2
+
3
+ - ``apsimo-agent-bridge`` (:mod:`apsimo.workers.agent_bridge`) runs
4
+ initiative polling, job dispatch, skills sync and circuit health checks.
5
+ - ``apsimo-queue-worker`` (:mod:`apsimo.workers.queue_worker`) claims
6
+ approved ``agent_action`` jobs and hands them to the agent.
7
+ - ``apsimo-skills-sync`` (:mod:`apsimo.workers.skills_sync`) reports
8
+ the agent's installed skill index to Apsimo.
9
+
10
+ These modules are stdlib-only so the workers can run without the full
11
+ sidecar dependency stack. Do not import heavy dependencies here.
12
+ """
@@ -332,7 +332,7 @@ def run_cycle(cfg: Dict[str, Any]) -> int:
332
332
 
333
333
 
334
334
  def run_forever(cfg: Dict[str, Any]) -> None:
335
- print(f"colony-worker {cfg['node_id']} polling {cfg['colony_url']} "
335
+ print(f"apsimo-worker {cfg['node_id']} polling {cfg['colony_url']} "
336
336
  f"every {cfg['poll_secs']}s (caps={cfg['capabilities']}, "
337
337
  f"types={cfg['job_types']})")
338
338
  while True:
@@ -354,7 +354,7 @@ def main(argv: Optional[list] = None) -> int:
354
354
  except Exception:
355
355
  pass
356
356
  parser = argparse.ArgumentParser(
357
- prog="colony-worker",
357
+ prog="apsimo-worker",
358
358
  description="Claim typed Colony jobs and execute them read/analyse-only.")
359
359
  parser.add_argument("--dry-run", action="store_true",
360
360
  help="print resolved config and exit (no network)")
@@ -367,7 +367,7 @@ def main(argv: Optional[list] = None) -> int:
367
367
  safe = dict(cfg)
368
368
  safe["api_key"] = "***" if cfg["api_key"] else ""
369
369
  safe["llm_api_key"] = "***" if cfg["llm_api_key"] else ""
370
- print("colony-worker (dry run -- no network calls):")
370
+ print("apsimo-worker (dry run -- no network calls):")
371
371
  for k, v in safe.items():
372
372
  print(f" {k}: {v}")
373
373
  return 0
@@ -1,9 +1,6 @@
1
1
  """Claim Colony agent_action jobs and hand them to the agent.
2
2
 
3
- Installed as the ``colony-queue-worker`` console script (v0.20.0); the
4
- logic moved here unchanged from
5
- ``plugins/hermes-plugin/poller/colony-queue-worker.py`` (v0.16.0),
6
- which remains as a thin back-compat wrapper.
3
+ Installed as the ``apsimo-queue-worker`` console command.
7
4
 
8
5
  This is the execution half of the agent-as-sensor loop:
9
6
 
@@ -24,7 +21,7 @@ close the loop with plain curl — no special tooling needed:
24
21
  - complete the job: POST {COLONY_URL}/v1/host/queue/jobs/{id}/complete
25
22
  - fail the job: POST {COLONY_URL}/v1/host/queue/jobs/{id}/fail
26
23
 
27
- Environment (unchanged from the v0.16 script):
24
+ Environment:
28
25
  COLONY_URL sidecar URL (default http://127.0.0.1:7777)
29
26
  COLONY_API_KEY API key (default dev-mode-no-key)
30
27
  COLONY_JOBS_WEBHOOK_URL agent webhook (default http://127.0.0.1:8644/webhooks/colony-jobs)
@@ -414,7 +411,7 @@ def run(cfg: Dict[str, Any]) -> int:
414
411
 
415
412
  def main(argv: Optional[list] = None) -> int:
416
413
  parser = argparse.ArgumentParser(
417
- prog="colony-queue-worker",
414
+ prog="apsimo-queue-worker",
418
415
  description="Claim Colony agent_action jobs and hand them to the agent webhook.",
419
416
  )
420
417
  parser.add_argument(
@@ -426,7 +423,7 @@ def main(argv: Optional[list] = None) -> int:
426
423
 
427
424
  cfg = load_config()
428
425
  if args.dry_run:
429
- print("colony-queue-worker (dry run — no network calls):")
426
+ print("apsimo-queue-worker (dry run — no network calls):")
430
427
  print(f" colony_url: {cfg['colony_url']}")
431
428
  print(f" webhook_url: {cfg['webhook_url']}")
432
429
  print(f" node_id: {cfg['node_id']}")
@@ -1,9 +1,6 @@
1
1
  """Report the agent's skill index to Colony.
2
2
 
3
- Installed as the ``colony-skills-sync`` console script (v0.20.0); the
4
- logic moved here unchanged from
5
- ``plugins/hermes-plugin/poller/colony-skills-sync.py`` (v0.18.0),
6
- which remains as a thin back-compat wrapper.
3
+ Installed as the ``apsimo-skills-sync`` console command.
7
4
 
8
5
  Scans the Hermes skills directory for SKILL.md files, parses the
9
6
  frontmatter (name / description / tags), and POSTs the index to
@@ -16,7 +13,7 @@ installing new skills. The TypeScript OpenClaw plugin ships the same
16
13
  sync built-in (src/hermes-skills.ts); this worker is for deployments
17
14
  using the Python Hermes plugin.
18
15
 
19
- Environment (unchanged from the v0.18 script):
16
+ Environment:
20
17
  COLONY_URL sidecar URL (default http://127.0.0.1:7777)
21
18
  COLONY_API_KEY API key (default dev-mode-no-key)
22
19
  HERMES_SKILLS_DIR skills tree (default ~/.hermes/skills)
@@ -121,7 +118,7 @@ def report(observations: list) -> int:
121
118
 
122
119
  def main(argv: Optional[list] = None) -> int:
123
120
  parser = argparse.ArgumentParser(
124
- prog="colony-skills-sync",
121
+ prog="apsimo-skills-sync",
125
122
  description="Report the agent's installed skill index to Colony.",
126
123
  )
127
124
  parser.add_argument(
@@ -137,7 +134,7 @@ def main(argv: Optional[list] = None) -> int:
137
134
  print(f"No skills found under {base}")
138
135
  return 0
139
136
  if args.dry_run:
140
- print("colony-skills-sync (dry run — nothing reported):")
137
+ print("apsimo-skills-sync (dry run — nothing reported):")
141
138
  for obs in observations:
142
139
  print(f" - {obs['entity_id']}: {obs['payload'].get('description', '')}")
143
140
  print(f"Would report {len(observations)} skills from {base}")
@@ -8,7 +8,7 @@ Quick start::
8
8
 
9
9
  from apsimo.world_model import WorldModelStore, WorldModelConfig
10
10
 
11
- config = WorldModelConfig(backend="sqlite", sqlite_path=":memory:")
11
+ config = WorldModelConfig(sqlite_path=":memory:")
12
12
  async with WorldModelStore(config) as store:
13
13
  entity = await store.upsert_entity(PersonEntity(
14
14
  id="we-000-test",
@@ -29,11 +29,7 @@ class WorldModelConfig:
29
29
  entity_resolution_enabled: bool = True
30
30
 
31
31
  # ── Backend ────────────────────────────────────────────────────────
32
- # SQLite supports canonical typed observations. Alternate backends retain
33
- # only the legacy entity/relationship graph, not observation parity.
34
- backend: str = "sqlite" # "sqlite" | "neo4j" | "postgres"
35
- neo4j_uri: str = "bolt://localhost:7687"
36
- neo4j_database: str = "neo4j"
32
+ # Entities, relationships and source-backed observations share one store.
37
33
  sqlite_path: str = field(default_factory=_default_sqlite_path)
38
34
 
39
35
  # ── Confidence thresholds ──────────────────────────────────────────
@@ -1,12 +1,10 @@
1
1
  """World Model primary store interface.
2
2
 
3
- SQLite is the canonical typed-observation backend. Neo4j and PostgreSQL are
4
- legacy entity/relationship adapters without typed-observation support.
3
+ SQLite stores entities, relationships and source-backed typed observations.
5
4
  All callers must use this interface and never access the backend directly.
6
5
  """
7
6
 
8
7
  import logging
9
- import os
10
8
  from datetime import datetime, timedelta, timezone
11
9
  from dataclasses import dataclass, field
12
10
  from typing import Any, Dict, List, Optional, Union
@@ -58,10 +56,8 @@ class WorldModelStats:
58
56
  class WorldModelStore:
59
57
  """Primary interface to the Colony World Model entity graph.
60
58
 
61
- SQLite is selected by default. Explicit legacy Neo4j/Postgres configurations
62
- may fall back to SQLite when credentials or drivers are missing. Typed
63
- observation methods reject an actual legacy backend rather than claiming
64
- equivalent provenance, correction, temporal-view or erasure behavior.
59
+ SQLite provides provenance, correction, temporal views and erasure for
60
+ typed observations alongside the entity and relationship graph.
65
61
  All methods are async. Callers MUST NOT access the backing store directly.
66
62
  """
67
63
 
@@ -70,44 +66,8 @@ class WorldModelStore:
70
66
  self._backend: Optional[SQLiteBackend] = None
71
67
 
72
68
  async def connect(self) -> None:
73
- """Initialize and connect to the storage backend."""
74
- if self._config.backend == "neo4j":
75
- try:
76
- from apsimo.world_model.neo4j.backend import Neo4jBackend
77
- neo4j_uri = self._config.neo4j_uri
78
- neo4j_db = self._config.neo4j_database
79
- neo4j_user = os.environ.get("NEO4J_USER", "neo4j")
80
- neo4j_pass = os.environ.get("NEO4J_PASSWORD", "")
81
- if neo4j_uri and neo4j_pass:
82
- self._backend = Neo4jBackend(
83
- uri=neo4j_uri,
84
- database=neo4j_db,
85
- username=neo4j_user,
86
- password=neo4j_pass,
87
- )
88
- else:
89
- logger.warning("NEO4J_URI or NEO4J_PASSWORD not set — falling back to sqlite")
90
- self._backend = SQLiteBackend(self._config.sqlite_path)
91
- except ImportError:
92
- logger.warning("neo4j driver not installed — falling back to sqlite")
93
- self._backend = SQLiteBackend(self._config.sqlite_path)
94
- elif self._config.backend == "postgres":
95
- try:
96
- from apsimo.world_model.postgres.backend import PostgresBackend
97
- pg_conn = os.environ.get("WORLD_MODEL_PG_CONNECTION", "")
98
- if pg_conn:
99
- self._backend = PostgresBackend(pg_conn)
100
- else:
101
- logger.warning("WORLD_MODEL_PG_CONNECTION not set — falling back to sqlite")
102
- self._backend = SQLiteBackend(self._config.sqlite_path)
103
- except ImportError:
104
- logger.warning("asyncpg not installed — falling back to sqlite")
105
- self._backend = SQLiteBackend(self._config.sqlite_path)
106
- elif self._config.backend == "sqlite":
107
- self._backend = SQLiteBackend(self._config.sqlite_path)
108
- else:
109
- logger.warning("WorldModel backend '%s' not supported — defaulting to sqlite", self._config.backend)
110
- self._backend = SQLiteBackend(self._config.sqlite_path)
69
+ """Open the canonical SQLite world-model store."""
70
+ self._backend = SQLiteBackend(self._config.sqlite_path)
111
71
  await self._backend.connect()
112
72
 
113
73
  async def close(self) -> None:
@@ -381,14 +341,9 @@ class WorldModelStore:
381
341
  async def reinforce_entity(self, entity_id: str) -> None:
382
342
  """Record a repeat mention without raising evidential confidence.
383
343
 
384
- Familiarity updates last_seen/count. No-op on unsupported backends.
344
+ Familiarity updates last_seen/count.
385
345
  """
386
- fn = getattr(self._backend, "reinforce_entity", None)
387
- if fn is None:
388
- logger.debug("reinforce_entity unsupported by %s backend",
389
- type(self._backend).__name__)
390
- return
391
- await fn(entity_id)
346
+ await self._backend.reinforce_entity(entity_id)
392
347
 
393
348
  async def add_entity_alias(self, entity_id: str, alias: str) -> None:
394
349
  """Add an alias to an entity's alias list if not already present."""
@@ -432,31 +387,20 @@ class WorldModelStore:
432
387
  # ── Observations ─────────────────────────────────────────────────────────
433
388
 
434
389
  async def record_property_observation(self, **kwargs):
435
- """Append one scoped assertion; producers must supply canonical evidence.
436
-
437
- SQLite is the qualified observation backend in this release. Other
438
- adapters remain valid for legacy entities/edges and report unsupported
439
- rather than substituting old unqualified property values.
440
- """
390
+ """Append one scoped assertion; producers must supply canonical evidence."""
441
391
  from .observations import observation
442
- put = getattr(self._backend, 'put_property_observation', None)
443
- if put is None:
444
- raise NotImplementedError('typed_world_observations_require_sqlite')
445
392
  data = observation(**kwargs)
446
393
  if await self.get_entity(data['entity_id'], min_confidence=0) is None:
447
394
  raise ValueError('world_observation_entity_not_found')
448
- result = await put(data)
395
+ result = await self._backend.put_property_observation(data)
449
396
  self._emit_change('property_observed', entity_id=data['entity_id'], observation_id=data['observation_id'])
450
397
  return result
451
398
 
452
399
  async def property_state(self, entity_id, property_key, *, subject_person_id,
453
400
  viewer_scope, shareability, as_of=None, source_ledger=None):
454
401
  from .observations import project, iso
455
- reader = getattr(self._backend, 'current_property_observations', None)
456
- if reader is None:
457
- raise NotImplementedError('typed_world_observations_require_sqlite')
458
402
  moment = iso(as_of if as_of is not None else datetime.now(timezone.utc).isoformat())
459
- rows = await reader(entity_id, property_key, subject_person_id=subject_person_id,
403
+ rows = await self._backend.current_property_observations(entity_id, property_key, subject_person_id=subject_person_id,
460
404
  viewer_scope=viewer_scope, shareability=shareability, as_of=moment)
461
405
  from .source_reports import validate_reports
462
406
  rows = validate_reports(rows, source_ledger)
@@ -465,10 +409,7 @@ class WorldModelStore:
465
409
  as_of=moment, coverage_limited=len(rows) >= 2001)
466
410
 
467
411
  async def erase_property_evidence(self, evidence_refs, *, subject_person_id):
468
- eraser = getattr(self._backend, 'erase_property_evidence', None)
469
- if eraser is None:
470
- raise NotImplementedError('typed_world_observations_require_sqlite')
471
- removed = await eraser(evidence_refs, subject_person_id=subject_person_id)
412
+ removed = await self._backend.erase_property_evidence(evidence_refs, subject_person_id=subject_person_id)
472
413
  if removed:
473
414
  self._emit_change('property_evidence_invalidated', observation_ids=removed)
474
415
  return removed
@@ -476,13 +417,10 @@ class WorldModelStore:
476
417
  async def property_views(self, entity_ids, *, subject_person_id, viewer_scope, shareability,
477
418
  as_of=None, source_ledger=None, limit=8):
478
419
  """Bounded scoped facts about already-relevant entities for turn context."""
479
- keys = getattr(self._backend, 'property_keys', None)
480
- if keys is None:
481
- raise NotImplementedError('typed_world_observations_require_sqlite')
482
420
  limit = max(1, min(int(limit), 32))
483
421
  result = []
484
422
  for entity_id in list(dict.fromkeys(entity_ids))[:8]:
485
- properties = await keys(entity_id, subject_person_id=subject_person_id, viewer_scope=viewer_scope,
423
+ properties = await self._backend.property_keys(entity_id, subject_person_id=subject_person_id, viewer_scope=viewer_scope,
486
424
  shareability=shareability, limit=limit)
487
425
  for key in properties:
488
426
  result.append(await self.property_state(entity_id, key, subject_person_id=subject_person_id,
@@ -510,19 +448,14 @@ class WorldModelStore:
510
448
  """Remove low-confidence entities that haven't been seen within the
511
449
  TTL (config: low_confidence_entity_ttl_days / min_confidence_for_query
512
450
  by default). High-confidence entities are never pruned regardless of
513
- age. Returns {"status", "pruned", "cutoff", "max_confidence"};
514
- backends without a prune primitive report skipped instead of lying."""
515
- backend_prune = getattr(self._backend, "prune_entities", None)
516
- if backend_prune is None:
517
- return {"status": "skipped",
518
- "reason": f"{type(self._backend).__name__} has no prune"}
451
+ age. Returns {"status", "pruned", "cutoff", "max_confidence"}."""
519
452
  ttl = int(ttl_days if ttl_days is not None
520
453
  else self._config.low_confidence_entity_ttl_days)
521
454
  ceiling = float(max_confidence if max_confidence is not None
522
455
  else self._config.min_confidence_for_query)
523
456
  cutoff = (datetime.now(timezone.utc) - timedelta(days=ttl)
524
457
  ).strftime("%Y-%m-%dT%H:%M:%SZ")
525
- pruned = await backend_prune(cutoff, ceiling)
458
+ pruned = await self._backend.prune_entities(cutoff, ceiling)
526
459
  if pruned:
527
460
  logger.info("world model pruned %d stale low-confidence entities "
528
461
  "(last_seen < %s, confidence < %.2f)",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apsimo
3
- Version: 1.4.2
3
+ Version: 1.4.4
4
4
  Summary: Persistent identity, memory and autonomy for AI agents
5
5
  License-Expression: MIT
6
6
  Requires-Python: >=3.11
@@ -28,15 +28,13 @@ Requires-Dist: pandas>=2.0; extra == "vectors"
28
28
  Requires-Dist: pyarrow>=15.0; extra == "vectors"
29
29
  Requires-Dist: lancedb>=0.10; extra == "vectors"
30
30
  Provides-Extra: hermes
31
- Requires-Dist: apsimo-hermes<2,>=1.4.2; extra == "hermes"
31
+ Requires-Dist: apsimo-hermes<2,>=1.4.4; extra == "hermes"
32
32
  Provides-Extra: mcp
33
33
  Requires-Dist: mcp[cli]<2,>=1.0; extra == "mcp"
34
34
  Provides-Extra: lancedb
35
35
  Requires-Dist: lancedb>=0.6; extra == "lancedb"
36
36
  Requires-Dist: pyarrow>=14.0; extra == "lancedb"
37
37
  Requires-Dist: pandas>=2.0; extra == "lancedb"
38
- Provides-Extra: postgres
39
- Requires-Dist: asyncpg>=0.29; extra == "postgres"
40
38
  Provides-Extra: extraction
41
39
  Requires-Dist: PyMuPDF>=1.24; extra == "extraction"
42
40
  Requires-Dist: beautifulsoup4>=4.12; extra == "extraction"