pacomind 1.5.0__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 (997) hide show
  1. pacomind-1.5.0/LICENSE +21 -0
  2. pacomind-1.5.0/PKG-INFO +76 -0
  3. pacomind-1.5.0/README.md +19 -0
  4. pacomind-1.5.0/pacomind/__init__.py +32 -0
  5. pacomind-1.5.0/pacomind/__main__.py +6 -0
  6. pacomind-1.5.0/pacomind/agent/__init__.py +6 -0
  7. pacomind-1.5.0/pacomind/agent/client.py +276 -0
  8. pacomind-1.5.0/pacomind/agent/models.py +46 -0
  9. pacomind-1.5.0/pacomind/agents/__init__.py +20 -0
  10. pacomind-1.5.0/pacomind/agents/models.py +264 -0
  11. pacomind-1.5.0/pacomind/agents/store.py +861 -0
  12. pacomind-1.5.0/pacomind/agents/websocket.py +522 -0
  13. pacomind-1.5.0/pacomind/api/__init__.py +1 -0
  14. pacomind-1.5.0/pacomind/api/auth_telemetry.py +287 -0
  15. pacomind-1.5.0/pacomind/api/authority.py +1203 -0
  16. pacomind-1.5.0/pacomind/api/contact_grants.py +347 -0
  17. pacomind-1.5.0/pacomind/api/middleware.py +483 -0
  18. pacomind-1.5.0/pacomind/api/routers/__init__.py +1 -0
  19. pacomind-1.5.0/pacomind/api/routers/commitment_work.py +265 -0
  20. pacomind-1.5.0/pacomind/api/routers/context_gate.py +123 -0
  21. pacomind-1.5.0/pacomind/api/routers/executions.py +140 -0
  22. pacomind-1.5.0/pacomind/api/routers/followup_plans.py +147 -0
  23. pacomind-1.5.0/pacomind/api/routers/governed_actions.py +162 -0
  24. pacomind-1.5.0/pacomind/api/routers/host.py +13467 -0
  25. pacomind-1.5.0/pacomind/api/routers/initiative_work.py +115 -0
  26. pacomind-1.5.0/pacomind/api/routers/mining.py +104 -0
  27. pacomind-1.5.0/pacomind/api/routers/observations.py +110 -0
  28. pacomind-1.5.0/pacomind/api/routers/social_state.py +225 -0
  29. pacomind-1.5.0/pacomind/api/routers/task_queue.py +2715 -0
  30. pacomind-1.5.0/pacomind/api/routers/temporal_followups.py +251 -0
  31. pacomind-1.5.0/pacomind/api/routers/transport.py +110 -0
  32. pacomind-1.5.0/pacomind/api/routers/transport_ingress_api.py +240 -0
  33. pacomind-1.5.0/pacomind/api/schemas/__init__.py +1 -0
  34. pacomind-1.5.0/pacomind/api/schemas/host.py +1860 -0
  35. pacomind-1.5.0/pacomind/autonomy/cli.py +110 -0
  36. pacomind-1.5.0/pacomind/autonomy/condition_worker.py +437 -0
  37. pacomind-1.5.0/pacomind/autonomy/config.py +424 -0
  38. pacomind-1.5.0/pacomind/autonomy/loop.py +4316 -0
  39. pacomind-1.5.0/pacomind/autonomy/registry.py +339 -0
  40. pacomind-1.5.0/pacomind/autonomy/scheduler.py +1822 -0
  41. pacomind-1.5.0/pacomind/autonomy/synthesis.py +449 -0
  42. pacomind-1.5.0/pacomind/backup.py +962 -0
  43. pacomind-1.5.0/pacomind/beliefs/__init__.py +23 -0
  44. pacomind-1.5.0/pacomind/beliefs/contradictions.py +109 -0
  45. pacomind-1.5.0/pacomind/beliefs/decay.py +61 -0
  46. pacomind-1.5.0/pacomind/beliefs/engine.py +479 -0
  47. pacomind-1.5.0/pacomind/beliefs/models.py +67 -0
  48. pacomind-1.5.0/pacomind/beliefs/promotion.py +41 -0
  49. pacomind-1.5.0/pacomind/beliefs/resolve.py +58 -0
  50. pacomind-1.5.0/pacomind/beliefs/source_claims.py +690 -0
  51. pacomind-1.5.0/pacomind/beliefs/source_projection.py +923 -0
  52. pacomind-1.5.0/pacomind/beliefs/source_time.py +208 -0
  53. pacomind-1.5.0/pacomind/beliefs/store.py +133 -0
  54. pacomind-1.5.0/pacomind/briefings/aggregators.py +824 -0
  55. pacomind-1.5.0/pacomind/briefings/composer.py +420 -0
  56. pacomind-1.5.0/pacomind/briefings/config.py +55 -0
  57. pacomind-1.5.0/pacomind/briefings/delivery.py +439 -0
  58. pacomind-1.5.0/pacomind/briefings/engagement.py +97 -0
  59. pacomind-1.5.0/pacomind/briefings/engine.py +274 -0
  60. pacomind-1.5.0/pacomind/briefings/enhancer.py +99 -0
  61. pacomind-1.5.0/pacomind/briefings/models.py +183 -0
  62. pacomind-1.5.0/pacomind/briefings/scheduler.py +382 -0
  63. pacomind-1.5.0/pacomind/briefings/store.py +435 -0
  64. pacomind-1.5.0/pacomind/chain/__init__.py +48 -0
  65. pacomind-1.5.0/pacomind/chain/block.py +100 -0
  66. pacomind-1.5.0/pacomind/chain/cli.py +704 -0
  67. pacomind-1.5.0/pacomind/chain/genesis.py +443 -0
  68. pacomind-1.5.0/pacomind/chain/identity.py +369 -0
  69. pacomind-1.5.0/pacomind/chain/keys.py +1025 -0
  70. pacomind-1.5.0/pacomind/chain/local_keys.py +187 -0
  71. pacomind-1.5.0/pacomind/chain/manager.py +290 -0
  72. pacomind-1.5.0/pacomind/chain/node.py +163 -0
  73. pacomind-1.5.0/pacomind/chain/plugin_transactions.py +371 -0
  74. pacomind-1.5.0/pacomind/chain/protocol.py +220 -0
  75. pacomind-1.5.0/pacomind/chain/state_machine.py +676 -0
  76. pacomind-1.5.0/pacomind/chain/storage.py +503 -0
  77. pacomind-1.5.0/pacomind/chain/transactions.py +250 -0
  78. pacomind-1.5.0/pacomind/chain/validation.py +397 -0
  79. pacomind-1.5.0/pacomind/channels/__init__.py +1 -0
  80. pacomind-1.5.0/pacomind/channels/manifest.py +31 -0
  81. pacomind-1.5.0/pacomind/channels/migrations/001_channels_schema.sql +12 -0
  82. pacomind-1.5.0/pacomind/channels/phone_gateways.py +42 -0
  83. pacomind-1.5.0/pacomind/channels/presence.py +188 -0
  84. pacomind-1.5.0/pacomind/channels/router.py +235 -0
  85. pacomind-1.5.0/pacomind/channels/store.py +231 -0
  86. pacomind-1.5.0/pacomind/cli.py +2257 -0
  87. pacomind-1.5.0/pacomind/cognition/__init__.py +11 -0
  88. pacomind-1.5.0/pacomind/cognition/charter.py +398 -0
  89. pacomind-1.5.0/pacomind/cognition/drive_governance.py +3530 -0
  90. pacomind-1.5.0/pacomind/cognition/evidence_pipeline.py +1627 -0
  91. pacomind-1.5.0/pacomind/cognition/external_events.py +932 -0
  92. pacomind-1.5.0/pacomind/cognition/goal_spine.py +3488 -0
  93. pacomind-1.5.0/pacomind/cognition/introspection.py +214 -0
  94. pacomind-1.5.0/pacomind/cognition/prompt.py +150 -0
  95. pacomind-1.5.0/pacomind/cognition/runtime.py +108 -0
  96. pacomind-1.5.0/pacomind/cognition/trigger.py +154 -0
  97. pacomind-1.5.0/pacomind/commitments/__init__.py +18 -0
  98. pacomind-1.5.0/pacomind/commitments/local_work.py +355 -0
  99. pacomind-1.5.0/pacomind/commitments/store.py +1052 -0
  100. pacomind-1.5.0/pacomind/commitments/work.py +91 -0
  101. pacomind-1.5.0/pacomind/connectors/__init__.py +21 -0
  102. pacomind-1.5.0/pacomind/connectors/base.py +152 -0
  103. pacomind-1.5.0/pacomind/connectors/caldav_calendar.py +125 -0
  104. pacomind-1.5.0/pacomind/connectors/fs_documents.py +85 -0
  105. pacomind-1.5.0/pacomind/connectors/imap_email.py +138 -0
  106. pacomind-1.5.0/pacomind/connectors/manager.py +218 -0
  107. pacomind-1.5.0/pacomind/connectors/webhook_pull.py +88 -0
  108. pacomind-1.5.0/pacomind/contacts/__init__.py +33 -0
  109. pacomind-1.5.0/pacomind/contacts/comms.py +427 -0
  110. pacomind-1.5.0/pacomind/contacts/config.py +79 -0
  111. pacomind-1.5.0/pacomind/contacts/exporters/__init__.py +1 -0
  112. pacomind-1.5.0/pacomind/contacts/exporters/vcard.py +71 -0
  113. pacomind-1.5.0/pacomind/contacts/identity_links.py +251 -0
  114. pacomind-1.5.0/pacomind/contacts/importer.py +251 -0
  115. pacomind-1.5.0/pacomind/contacts/importers/__init__.py +1 -0
  116. pacomind-1.5.0/pacomind/contacts/importers/batch.py +43 -0
  117. pacomind-1.5.0/pacomind/contacts/importers/macos_contacts.py +101 -0
  118. pacomind-1.5.0/pacomind/contacts/migrations/001_contacts_schema.sql +141 -0
  119. pacomind-1.5.0/pacomind/contacts/migrations/002_trust_scopes.sql +36 -0
  120. pacomind-1.5.0/pacomind/contacts/migrations/003_open_gateway_enum.sql +32 -0
  121. pacomind-1.5.0/pacomind/contacts/migrations/004_contact_provision_operations.sql +18 -0
  122. pacomind-1.5.0/pacomind/contacts/migrations/005_identity_links.sql +27 -0
  123. pacomind-1.5.0/pacomind/contacts/models.py +308 -0
  124. pacomind-1.5.0/pacomind/contacts/scoring.py +16 -0
  125. pacomind-1.5.0/pacomind/contacts/store.py +1590 -0
  126. pacomind-1.5.0/pacomind/contacts/transport_ingress.py +252 -0
  127. pacomind-1.5.0/pacomind/contextgate/__init__.py +69 -0
  128. pacomind-1.5.0/pacomind/contextgate/chunker.py +169 -0
  129. pacomind-1.5.0/pacomind/contextgate/estimate.py +54 -0
  130. pacomind-1.5.0/pacomind/contextgate/gate.py +313 -0
  131. pacomind-1.5.0/pacomind/contextgate/retrieve.py +115 -0
  132. pacomind-1.5.0/pacomind/delivery/__init__.py +16 -0
  133. pacomind-1.5.0/pacomind/delivery/bridge.py +1260 -0
  134. pacomind-1.5.0/pacomind/delivery/channels.py +526 -0
  135. pacomind-1.5.0/pacomind/delivery/classification.py +50 -0
  136. pacomind-1.5.0/pacomind/delivery/rate_limiter.py +268 -0
  137. pacomind-1.5.0/pacomind/delivery/reachout_policy.py +206 -0
  138. pacomind-1.5.0/pacomind/directed/__init__.py +22 -0
  139. pacomind-1.5.0/pacomind/directed/audit.py +167 -0
  140. pacomind-1.5.0/pacomind/directed/intake.py +95 -0
  141. pacomind-1.5.0/pacomind/directed/models.py +191 -0
  142. pacomind-1.5.0/pacomind/directed/service.py +509 -0
  143. pacomind-1.5.0/pacomind/directives/__init__.py +25 -0
  144. pacomind-1.5.0/pacomind/directives/evidence.py +87 -0
  145. pacomind-1.5.0/pacomind/directives/extractor.py +188 -0
  146. pacomind-1.5.0/pacomind/directives/guard.py +364 -0
  147. pacomind-1.5.0/pacomind/directives/models.py +206 -0
  148. pacomind-1.5.0/pacomind/directives/service.py +372 -0
  149. pacomind-1.5.0/pacomind/directives/store.py +167 -0
  150. pacomind-1.5.0/pacomind/doctor.py +2148 -0
  151. pacomind-1.5.0/pacomind/events/__init__.py +33 -0
  152. pacomind-1.5.0/pacomind/events/broadcaster.py +98 -0
  153. pacomind-1.5.0/pacomind/events/bus.py +217 -0
  154. pacomind-1.5.0/pacomind/events/journal.py +863 -0
  155. pacomind-1.5.0/pacomind/events/stream.py +131 -0
  156. pacomind-1.5.0/pacomind/events/types.py +150 -0
  157. pacomind-1.5.0/pacomind/execution_results.py +357 -0
  158. pacomind-1.5.0/pacomind/feedback/__init__.py +5 -0
  159. pacomind-1.5.0/pacomind/feedback/store.py +76 -0
  160. pacomind-1.5.0/pacomind/feeds/__init__.py +19 -0
  161. pacomind-1.5.0/pacomind/feeds/cli.py +84 -0
  162. pacomind-1.5.0/pacomind/feeds/engine.py +437 -0
  163. pacomind-1.5.0/pacomind/feeds/example-feed.yaml +77 -0
  164. pacomind-1.5.0/pacomind/feeds/hermes_cron.py +126 -0
  165. pacomind-1.5.0/pacomind/feeds/manager.py +235 -0
  166. pacomind-1.5.0/pacomind/feeds/spec.py +250 -0
  167. pacomind-1.5.0/pacomind/feeds/template.py +202 -0
  168. pacomind-1.5.0/pacomind/gate/__init__.py +18 -0
  169. pacomind-1.5.0/pacomind/gate/audit.py +61 -0
  170. pacomind-1.5.0/pacomind/gate/communication_policy.py +166 -0
  171. pacomind-1.5.0/pacomind/gate/config.py +72 -0
  172. pacomind-1.5.0/pacomind/gate/context_provenance.py +170 -0
  173. pacomind-1.5.0/pacomind/gate/env_risk.py +226 -0
  174. pacomind-1.5.0/pacomind/gate/guard_audit.py +353 -0
  175. pacomind-1.5.0/pacomind/gate/layers/__init__.py +1 -0
  176. pacomind-1.5.0/pacomind/gate/layers/base.py +15 -0
  177. pacomind-1.5.0/pacomind/gate/layers/l1_recipient.py +66 -0
  178. pacomind-1.5.0/pacomind/gate/layers/l2_pii.py +134 -0
  179. pacomind-1.5.0/pacomind/gate/layers/l3_cross_context.py +50 -0
  180. pacomind-1.5.0/pacomind/gate/layers/l4_trust_tier.py +78 -0
  181. pacomind-1.5.0/pacomind/gate/layers/l5_injection.py +199 -0
  182. pacomind-1.5.0/pacomind/gate/layers/l6_review.py +86 -0
  183. pacomind-1.5.0/pacomind/gate/layers/l7_delay.py +100 -0
  184. pacomind-1.5.0/pacomind/gate/layers/tom2_epistemic.py +185 -0
  185. pacomind-1.5.0/pacomind/gate/models.py +64 -0
  186. pacomind-1.5.0/pacomind/gate/pending_dispatch.py +5 -0
  187. pacomind-1.5.0/pacomind/gate/pipeline.py +206 -0
  188. pacomind-1.5.0/pacomind/gate/rejection.py +259 -0
  189. pacomind-1.5.0/pacomind/gate/response_guard.py +700 -0
  190. pacomind-1.5.0/pacomind/gate/rulesets/injection_v1.yaml +51 -0
  191. pacomind-1.5.0/pacomind/gate/surface_policy.py +189 -0
  192. pacomind-1.5.0/pacomind/gate/taint.py +226 -0
  193. pacomind-1.5.0/pacomind/goals/__init__.py +100 -0
  194. pacomind-1.5.0/pacomind/goals/config.py +38 -0
  195. pacomind-1.5.0/pacomind/goals/decomposer.py +421 -0
  196. pacomind-1.5.0/pacomind/goals/engine.py +617 -0
  197. pacomind-1.5.0/pacomind/goals/inference.py +354 -0
  198. pacomind-1.5.0/pacomind/goals/models.py +302 -0
  199. pacomind-1.5.0/pacomind/goals/priority.py +270 -0
  200. pacomind-1.5.0/pacomind/goals/queue_bridge.py +149 -0
  201. pacomind-1.5.0/pacomind/goals/replan.py +450 -0
  202. pacomind-1.5.0/pacomind/goals/schema.sql +89 -0
  203. pacomind-1.5.0/pacomind/goals/store.py +692 -0
  204. pacomind-1.5.0/pacomind/governed_actions.py +1708 -0
  205. pacomind-1.5.0/pacomind/harness_integration/__init__.py +14 -0
  206. pacomind-1.5.0/pacomind/harness_integration/context.py +35 -0
  207. pacomind-1.5.0/pacomind/harness_integration/skills.py +217 -0
  208. pacomind-1.5.0/pacomind/identity/__init__.py +26 -0
  209. pacomind-1.5.0/pacomind/identity/participants.py +181 -0
  210. pacomind-1.5.0/pacomind/identity/resolver.py +329 -0
  211. pacomind-1.5.0/pacomind/identity_bootstrap/__init__.py +5 -0
  212. pacomind-1.5.0/pacomind/identity_bootstrap/builder.py +208 -0
  213. pacomind-1.5.0/pacomind/identity_bootstrap/corpus.py +443 -0
  214. pacomind-1.5.0/pacomind/identity_bootstrap/models.py +54 -0
  215. pacomind-1.5.0/pacomind/identity_bootstrap/runner.py +353 -0
  216. pacomind-1.5.0/pacomind/identity_bootstrap/seeders/__init__.py +25 -0
  217. pacomind-1.5.0/pacomind/identity_bootstrap/seeders/briefings.py +109 -0
  218. pacomind-1.5.0/pacomind/identity_bootstrap/seeders/chain.py +57 -0
  219. pacomind-1.5.0/pacomind/identity_bootstrap/seeders/goals.py +128 -0
  220. pacomind-1.5.0/pacomind/identity_bootstrap/seeders/memory.py +191 -0
  221. pacomind-1.5.0/pacomind/identity_bootstrap/seeders/neo4j_cognition.py +79 -0
  222. pacomind-1.5.0/pacomind/identity_bootstrap/seeders/relationship.py +152 -0
  223. pacomind-1.5.0/pacomind/identity_bootstrap/seeders/sessions.py +67 -0
  224. pacomind-1.5.0/pacomind/identity_bootstrap/seeders/skills.py +92 -0
  225. pacomind-1.5.0/pacomind/identity_bootstrap/seeders/task_queue.py +72 -0
  226. pacomind-1.5.0/pacomind/identity_bootstrap/seeders/world_model.py +143 -0
  227. pacomind-1.5.0/pacomind/identity_bootstrap/self_query.py +92 -0
  228. pacomind-1.5.0/pacomind/identity_bootstrap/self_reflection.py +155 -0
  229. pacomind-1.5.0/pacomind/identity_bootstrap/skill.py +37 -0
  230. pacomind-1.5.0/pacomind/identity_bootstrap/verifier.py +436 -0
  231. pacomind-1.5.0/pacomind/initiatives/__init__.py +20 -0
  232. pacomind-1.5.0/pacomind/initiatives/action_registry.py +454 -0
  233. pacomind-1.5.0/pacomind/initiatives/approval_authority.py +2105 -0
  234. pacomind-1.5.0/pacomind/initiatives/approval_policy.py +123 -0
  235. pacomind-1.5.0/pacomind/initiatives/assignment.py +263 -0
  236. pacomind-1.5.0/pacomind/initiatives/backup_evidence.py +100 -0
  237. pacomind-1.5.0/pacomind/initiatives/context_freshness.py +103 -0
  238. pacomind-1.5.0/pacomind/initiatives/models.py +318 -0
  239. pacomind-1.5.0/pacomind/initiatives/native_work.py +240 -0
  240. pacomind-1.5.0/pacomind/initiatives/standing_approvals.py +232 -0
  241. pacomind-1.5.0/pacomind/initiatives/store.py +1081 -0
  242. pacomind-1.5.0/pacomind/initiatives/temporal_followup.py +410 -0
  243. pacomind-1.5.0/pacomind/intelligence/__init__.py +1 -0
  244. pacomind-1.5.0/pacomind/intelligence/cognition/__init__.py +24 -0
  245. pacomind-1.5.0/pacomind/intelligence/cognition/gap_detector.py +148 -0
  246. pacomind-1.5.0/pacomind/intelligence/cognition/metalearner.py +547 -0
  247. pacomind-1.5.0/pacomind/intelligence/cognition/metrics_collector.py +217 -0
  248. pacomind-1.5.0/pacomind/intelligence/cognition/performance_index.py +299 -0
  249. pacomind-1.5.0/pacomind/intelligence/cognition/registry.py +192 -0
  250. pacomind-1.5.0/pacomind/intelligence/cognition/strategy_adjuster.py +222 -0
  251. pacomind-1.5.0/pacomind/intelligence/cognition/types.py +16 -0
  252. pacomind-1.5.0/pacomind/intelligence/components/__init__.py +66 -0
  253. pacomind-1.5.0/pacomind/intelligence/components/anomaly_detector.py +413 -0
  254. pacomind-1.5.0/pacomind/intelligence/components/initiative_engine.py +2653 -0
  255. pacomind-1.5.0/pacomind/intelligence/components/preference_learner.py +521 -0
  256. pacomind-1.5.0/pacomind/intelligence/components/research_orchestrator.py +358 -0
  257. pacomind-1.5.0/pacomind/intelligence/components/self_directed_thinker.py +221 -0
  258. pacomind-1.5.0/pacomind/intelligence/components/self_reflector.py +252 -0
  259. pacomind-1.5.0/pacomind/intelligence/components/session_continuity.py +154 -0
  260. pacomind-1.5.0/pacomind/intelligence/components/task_planner.py +320 -0
  261. pacomind-1.5.0/pacomind/intelligence/components/tool_learner.py +217 -0
  262. pacomind-1.5.0/pacomind/intelligence/graph/__init__.py +79 -0
  263. pacomind-1.5.0/pacomind/intelligence/graph/client.py +2446 -0
  264. pacomind-1.5.0/pacomind/intelligence/graph/consolidator.py +405 -0
  265. pacomind-1.5.0/pacomind/intelligence/graph/distiller.py +312 -0
  266. pacomind-1.5.0/pacomind/intelligence/graph/migrations.py +129 -0
  267. pacomind-1.5.0/pacomind/intelligence/graph/queries.py +258 -0
  268. pacomind-1.5.0/pacomind/intelligence/graph/reconciler.py +144 -0
  269. pacomind-1.5.0/pacomind/intelligence/graph/schema.py +337 -0
  270. pacomind-1.5.0/pacomind/intelligence/learning/__init__.py +17 -0
  271. pacomind-1.5.0/pacomind/intelligence/learning/continuous_learner.py +245 -0
  272. pacomind-1.5.0/pacomind/intelligence/learning/feedback_store.py +321 -0
  273. pacomind-1.5.0/pacomind/intelligence/mind_model/__init__.py +1 -0
  274. pacomind-1.5.0/pacomind/intelligence/mind_model/graph_baseline.py +136 -0
  275. pacomind-1.5.0/pacomind/intelligence/mind_model/signal_collector.py +361 -0
  276. pacomind-1.5.0/pacomind/intelligence/relationships/__init__.py +11 -0
  277. pacomind-1.5.0/pacomind/intelligence/relationships/profiler.py +389 -0
  278. pacomind-1.5.0/pacomind/intelligence/relationships/scorer.py +560 -0
  279. pacomind-1.5.0/pacomind/intelligence/relationships/signal_floor.py +66 -0
  280. pacomind-1.5.0/pacomind/intelligence/relationships/trust_tiers.py +300 -0
  281. pacomind-1.5.0/pacomind/intelligence/synthesis/__init__.py +40 -0
  282. pacomind-1.5.0/pacomind/intelligence/synthesis/connection_discoverer.py +379 -0
  283. pacomind-1.5.0/pacomind/intelligence/synthesis/cross_domain_analyzer.py +287 -0
  284. pacomind-1.5.0/pacomind/intelligence/synthesis/insight_deliverer.py +171 -0
  285. pacomind-1.5.0/pacomind/intelligence/synthesis/insight_store.py +79 -0
  286. pacomind-1.5.0/pacomind/intelligence/synthesis/insight_validator.py +183 -0
  287. pacomind-1.5.0/pacomind/intelligence/synthesis/novelty_scorer.py +267 -0
  288. pacomind-1.5.0/pacomind/intelligence/turn_middleware/__init__.py +15 -0
  289. pacomind-1.5.0/pacomind/intelligence/turn_middleware/memory_sync.py +119 -0
  290. pacomind-1.5.0/pacomind/mcp/__init__.py +41 -0
  291. pacomind-1.5.0/pacomind/mcp/__main__.py +6 -0
  292. pacomind-1.5.0/pacomind/mcp/config.py +277 -0
  293. pacomind-1.5.0/pacomind/mcp/server.py +492 -0
  294. pacomind-1.5.0/pacomind/memory/__init__.py +1 -0
  295. pacomind-1.5.0/pacomind/memory/recall.py +337 -0
  296. pacomind-1.5.0/pacomind/memory/search.py +140 -0
  297. pacomind-1.5.0/pacomind/memory/selection.py +274 -0
  298. pacomind-1.5.0/pacomind/migrations.py +187 -0
  299. pacomind-1.5.0/pacomind/mining/__init__.py +27 -0
  300. pacomind-1.5.0/pacomind/mining/corpus.py +239 -0
  301. pacomind-1.5.0/pacomind/mining/escalations.py +289 -0
  302. pacomind-1.5.0/pacomind/mining/models.py +169 -0
  303. pacomind-1.5.0/pacomind/mining/store.py +210 -0
  304. pacomind-1.5.0/pacomind/models/__init__.py +30 -0
  305. pacomind-1.5.0/pacomind/models/memory.py +80 -0
  306. pacomind-1.5.0/pacomind/models/mesh.py +72 -0
  307. pacomind-1.5.0/pacomind/models/person.py +104 -0
  308. pacomind-1.5.0/pacomind/models/signal.py +108 -0
  309. pacomind-1.5.0/pacomind/observations/__init__.py +15 -0
  310. pacomind-1.5.0/pacomind/observations/store.py +277 -0
  311. pacomind-1.5.0/pacomind/patterns/__init__.py +6 -0
  312. pacomind-1.5.0/pacomind/patterns/extract.py +187 -0
  313. pacomind-1.5.0/pacomind/patterns/store.py +227 -0
  314. pacomind-1.5.0/pacomind/projects/__init__.py +28 -0
  315. pacomind-1.5.0/pacomind/projects/engine.py +1681 -0
  316. pacomind-1.5.0/pacomind/projects/event_outbox.py +188 -0
  317. pacomind-1.5.0/pacomind/projects/models.py +216 -0
  318. pacomind-1.5.0/pacomind/projects/planner.py +181 -0
  319. pacomind-1.5.0/pacomind/projects/store.py +1446 -0
  320. pacomind-1.5.0/pacomind/proposals/__init__.py +12 -0
  321. pacomind-1.5.0/pacomind/proposals/engine.py +114 -0
  322. pacomind-1.5.0/pacomind/proposals/models.py +207 -0
  323. pacomind-1.5.0/pacomind/qualification/__init__.py +1 -0
  324. pacomind-1.5.0/pacomind/qualification/cases.py +75 -0
  325. pacomind-1.5.0/pacomind/qualification/cli.py +51 -0
  326. pacomind-1.5.0/pacomind/qualification/memory_cases.py +209 -0
  327. pacomind-1.5.0/pacomind/qualification/records.py +92 -0
  328. pacomind-1.5.0/pacomind/qualification/report.py +87 -0
  329. pacomind-1.5.0/pacomind/qualification/runner.py +311 -0
  330. pacomind-1.5.0/pacomind/qualification/structured_cases.py +131 -0
  331. pacomind-1.5.0/pacomind/reasoning/__init__.py +13 -0
  332. pacomind-1.5.0/pacomind/reasoning/executor.py +514 -0
  333. pacomind-1.5.0/pacomind/reasoning/loop.py +375 -0
  334. pacomind-1.5.0/pacomind/reasoning/native_tools/__init__.py +16 -0
  335. pacomind-1.5.0/pacomind/reasoning/native_tools/calculate.py +141 -0
  336. pacomind-1.5.0/pacomind/reasoning/native_tools/file_ops.py +150 -0
  337. pacomind-1.5.0/pacomind/reasoning/native_tools/web_search.py +49 -0
  338. pacomind-1.5.0/pacomind/reasoning/tool_policy.py +182 -0
  339. pacomind-1.5.0/pacomind/redact/__init__.py +176 -0
  340. pacomind-1.5.0/pacomind/repos/__init__.py +5 -0
  341. pacomind-1.5.0/pacomind/repos/mirrors.py +204 -0
  342. pacomind-1.5.0/pacomind/research/__init__.py +41 -0
  343. pacomind-1.5.0/pacomind/research/artifact.py +482 -0
  344. pacomind-1.5.0/pacomind/research/gatherer.py +387 -0
  345. pacomind-1.5.0/pacomind/research/pipeline.py +513 -0
  346. pacomind-1.5.0/pacomind/research/search/__init__.py +7 -0
  347. pacomind-1.5.0/pacomind/research/search/base.py +41 -0
  348. pacomind-1.5.0/pacomind/research/search/brave.py +59 -0
  349. pacomind-1.5.0/pacomind/research/search/cache.py +51 -0
  350. pacomind-1.5.0/pacomind/research/search/duckduckgo.py +103 -0
  351. pacomind-1.5.0/pacomind/research/search/orchestrator.py +119 -0
  352. pacomind-1.5.0/pacomind/research/search/serpapi.py +59 -0
  353. pacomind-1.5.0/pacomind/research/search/tavily.py +59 -0
  354. pacomind-1.5.0/pacomind/research/synthesizer.py +309 -0
  355. pacomind-1.5.0/pacomind/router/__init__.py +30 -0
  356. pacomind-1.5.0/pacomind/router/complexity_scorer.py +148 -0
  357. pacomind-1.5.0/pacomind/router/endpoints.py +153 -0
  358. pacomind-1.5.0/pacomind/router/fallback.py +58 -0
  359. pacomind-1.5.0/pacomind/router/functions.py +242 -0
  360. pacomind-1.5.0/pacomind/router/native_policy.py +52 -0
  361. pacomind-1.5.0/pacomind/router/router.py +762 -0
  362. pacomind-1.5.0/pacomind/router/self_learning.py +174 -0
  363. pacomind-1.5.0/pacomind/router/tiers.py +677 -0
  364. pacomind-1.5.0/pacomind/runtime_logging.py +189 -0
  365. pacomind-1.5.0/pacomind/sandbox/__init__.py +21 -0
  366. pacomind-1.5.0/pacomind/sandbox/backend.py +195 -0
  367. pacomind-1.5.0/pacomind/sandbox/manager.py +173 -0
  368. pacomind-1.5.0/pacomind/scope_bounds.py +7 -0
  369. pacomind-1.5.0/pacomind/secrets/__init__.py +6 -0
  370. pacomind-1.5.0/pacomind/secrets/backends/__init__.py +8 -0
  371. pacomind-1.5.0/pacomind/secrets/backends/base.py +42 -0
  372. pacomind-1.5.0/pacomind/secrets/backends/env.py +110 -0
  373. pacomind-1.5.0/pacomind/secrets/backends/keyring.py +72 -0
  374. pacomind-1.5.0/pacomind/secrets/backends/onepassword.py +232 -0
  375. pacomind-1.5.0/pacomind/secrets/cli.py +191 -0
  376. pacomind-1.5.0/pacomind/secrets/manager.py +160 -0
  377. pacomind-1.5.0/pacomind/secrets/migration.py +101 -0
  378. pacomind-1.5.0/pacomind/secrets/types.py +98 -0
  379. pacomind-1.5.0/pacomind/self_model/__init__.py +37 -0
  380. pacomind-1.5.0/pacomind/self_model/appraisals.py +673 -0
  381. pacomind-1.5.0/pacomind/self_model/benchmark.py +1314 -0
  382. pacomind-1.5.0/pacomind/self_model/brief.py +40 -0
  383. pacomind-1.5.0/pacomind/self_model/event_concerns.py +1128 -0
  384. pacomind-1.5.0/pacomind/self_model/execution_forecasts.py +353 -0
  385. pacomind-1.5.0/pacomind/self_model/expectations.py +1595 -0
  386. pacomind-1.5.0/pacomind/self_model/experiments.py +1150 -0
  387. pacomind-1.5.0/pacomind/self_model/journal.py +148 -0
  388. pacomind-1.5.0/pacomind/self_model/judgments.py +705 -0
  389. pacomind-1.5.0/pacomind/self_model/native_outcomes.py +55 -0
  390. pacomind-1.5.0/pacomind/self_model/params.py +220 -0
  391. pacomind-1.5.0/pacomind/self_model/perspective.py +246 -0
  392. pacomind-1.5.0/pacomind/self_model/reconcile.py +183 -0
  393. pacomind-1.5.0/pacomind/self_model/reply_forecasts.py +381 -0
  394. pacomind-1.5.0/pacomind/self_model/runtime_forecasts.py +296 -0
  395. pacomind-1.5.0/pacomind/self_model/runtime_models.py +67 -0
  396. pacomind-1.5.0/pacomind/self_model/settlement.py +207 -0
  397. pacomind-1.5.0/pacomind/self_model/situation.py +1731 -0
  398. pacomind-1.5.0/pacomind/self_model/store.py +883 -0
  399. pacomind-1.5.0/pacomind/self_model/supervised.py +137 -0
  400. pacomind-1.5.0/pacomind/self_model/thinker.py +99 -0
  401. pacomind-1.5.0/pacomind/self_model/trust.py +388 -0
  402. pacomind-1.5.0/pacomind/self_model/workspace.py +2388 -0
  403. pacomind-1.5.0/pacomind/server.py +4182 -0
  404. pacomind-1.5.0/pacomind/services/__init__.py +1 -0
  405. pacomind-1.5.0/pacomind/services/agent_bridge.py +474 -0
  406. pacomind-1.5.0/pacomind/services/initiative_executor.py +914 -0
  407. pacomind-1.5.0/pacomind/services/instance.py +282 -0
  408. pacomind-1.5.0/pacomind/sessions/__init__.py +22 -0
  409. pacomind-1.5.0/pacomind/sessions/config.py +13 -0
  410. pacomind-1.5.0/pacomind/sessions/context_loader.py +88 -0
  411. pacomind-1.5.0/pacomind/sessions/federation_session.py +75 -0
  412. pacomind-1.5.0/pacomind/sessions/isolated_session.py +98 -0
  413. pacomind-1.5.0/pacomind/sessions/reports.py +84 -0
  414. pacomind-1.5.0/pacomind/sessions/store.py +148 -0
  415. pacomind-1.5.0/pacomind/setup.py +386 -0
  416. pacomind-1.5.0/pacomind/setup_hermes.py +903 -0
  417. pacomind-1.5.0/pacomind/setup_local_work.py +213 -0
  418. pacomind-1.5.0/pacomind/setup_native_goals.py +133 -0
  419. pacomind-1.5.0/pacomind/setup_native_reviews.py +115 -0
  420. pacomind-1.5.0/pacomind/setup_skills.py +90 -0
  421. pacomind-1.5.0/pacomind/skills/__init__.py +10 -0
  422. pacomind-1.5.0/pacomind/skills/base.py +108 -0
  423. pacomind-1.5.0/pacomind/skills/budget.py +28 -0
  424. pacomind-1.5.0/pacomind/skills/executor.py +493 -0
  425. pacomind-1.5.0/pacomind/skills/executors/__init__.py +1 -0
  426. pacomind-1.5.0/pacomind/skills/executors/behavioral_correction.py +75 -0
  427. pacomind-1.5.0/pacomind/skills/executors/capability_gap.py +38 -0
  428. pacomind-1.5.0/pacomind/skills/executors/data_quality.py +163 -0
  429. pacomind-1.5.0/pacomind/skills/executors/knowledge_acquisition.py +41 -0
  430. pacomind-1.5.0/pacomind/skills/executors/operational_hygiene.py +185 -0
  431. pacomind-1.5.0/pacomind/skills/executors/subsystem_health.py +169 -0
  432. pacomind-1.5.0/pacomind/skills/hermes_export.py +431 -0
  433. pacomind-1.5.0/pacomind/skills/index.py +123 -0
  434. pacomind-1.5.0/pacomind/skills/learning/__init__.py +21 -0
  435. pacomind-1.5.0/pacomind/skills/learning/novelty_detector.py +206 -0
  436. pacomind-1.5.0/pacomind/skills/learning/pattern_extractor.py +199 -0
  437. pacomind-1.5.0/pacomind/skills/learning/triggers.py +159 -0
  438. pacomind-1.5.0/pacomind/skills/loader.py +246 -0
  439. pacomind-1.5.0/pacomind/skills/migrations/002_progressive_loading.sql +6 -0
  440. pacomind-1.5.0/pacomind/skills/migrations/backfill_triggers.py +20 -0
  441. pacomind-1.5.0/pacomind/skills/models.py +202 -0
  442. pacomind-1.5.0/pacomind/skills/packager.py +128 -0
  443. pacomind-1.5.0/pacomind/skills/protocols.py +70 -0
  444. pacomind-1.5.0/pacomind/skills/registry.py +191 -0
  445. pacomind-1.5.0/pacomind/skills/runtime.py +58 -0
  446. pacomind-1.5.0/pacomind/skills/sandbox_runner.py +229 -0
  447. pacomind-1.5.0/pacomind/skills/scheduler.py +129 -0
  448. pacomind-1.5.0/pacomind/skills/schema.py +79 -0
  449. pacomind-1.5.0/pacomind/skills/security/__init__.py +12 -0
  450. pacomind-1.5.0/pacomind/skills/security/guards.py +53 -0
  451. pacomind-1.5.0/pacomind/skills/security/scanner.py +223 -0
  452. pacomind-1.5.0/pacomind/skills_memory/__init__.py +26 -0
  453. pacomind-1.5.0/pacomind/skills_memory/distill.py +159 -0
  454. pacomind-1.5.0/pacomind/skills_memory/models.py +85 -0
  455. pacomind-1.5.0/pacomind/skills_memory/retrieve.py +62 -0
  456. pacomind-1.5.0/pacomind/skills_memory/store.py +172 -0
  457. pacomind-1.5.0/pacomind/surprise/__init__.py +6 -0
  458. pacomind-1.5.0/pacomind/surprise/accumulation.py +57 -0
  459. pacomind-1.5.0/pacomind/surprise/scorer.py +102 -0
  460. pacomind-1.5.0/pacomind/surprise/store.py +203 -0
  461. pacomind-1.5.0/pacomind/task_queue/__init__.py +69 -0
  462. pacomind-1.5.0/pacomind/task_queue/action_receipts.py +148 -0
  463. pacomind-1.5.0/pacomind/task_queue/approval_relay_canary.py +108 -0
  464. pacomind-1.5.0/pacomind/task_queue/config.py +85 -0
  465. pacomind-1.5.0/pacomind/task_queue/contract.py +361 -0
  466. pacomind-1.5.0/pacomind/task_queue/events.py +130 -0
  467. pacomind-1.5.0/pacomind/task_queue/governor.py +1031 -0
  468. pacomind-1.5.0/pacomind/task_queue/handlers/__init__.py +16 -0
  469. pacomind-1.5.0/pacomind/task_queue/handlers/base.py +37 -0
  470. pacomind-1.5.0/pacomind/task_queue/handlers/inference.py +640 -0
  471. pacomind-1.5.0/pacomind/task_queue/handlers/monitoring.py +116 -0
  472. pacomind-1.5.0/pacomind/task_queue/handlers/registry.py +75 -0
  473. pacomind-1.5.0/pacomind/task_queue/handlers/subtask_handler.py +173 -0
  474. pacomind-1.5.0/pacomind/task_queue/handlers/system_maintenance.py +147 -0
  475. pacomind-1.5.0/pacomind/task_queue/mesh_integration.py +111 -0
  476. pacomind-1.5.0/pacomind/task_queue/models.py +317 -0
  477. pacomind-1.5.0/pacomind/task_queue/queue_manager.py +8286 -0
  478. pacomind-1.5.0/pacomind/task_queue/routing.py +287 -0
  479. pacomind-1.5.0/pacomind/task_queue/scheduler.py +252 -0
  480. pacomind-1.5.0/pacomind/task_queue/schema.sql +197 -0
  481. pacomind-1.5.0/pacomind/task_queue/work_control.py +342 -0
  482. pacomind-1.5.0/pacomind/task_queue/worker.py +993 -0
  483. pacomind-1.5.0/pacomind/telemetry.py +145 -0
  484. pacomind-1.5.0/pacomind/tom/__init__.py +6 -0
  485. pacomind-1.5.0/pacomind/tom/affect.py +387 -0
  486. pacomind-1.5.0/pacomind/tom/approvals.py +171 -0
  487. pacomind-1.5.0/pacomind/tom/arcs.py +896 -0
  488. pacomind-1.5.0/pacomind/tom/asymmetry.py +131 -0
  489. pacomind-1.5.0/pacomind/tom/eligibility.py +248 -0
  490. pacomind-1.5.0/pacomind/tom/engagement.py +214 -0
  491. pacomind-1.5.0/pacomind/tom/exposure.py +214 -0
  492. pacomind-1.5.0/pacomind/tom/extractor.py +306 -0
  493. pacomind-1.5.0/pacomind/tom/fact_adapters.py +144 -0
  494. pacomind-1.5.0/pacomind/tom/facts.py +326 -0
  495. pacomind-1.5.0/pacomind/tom/integration.py +592 -0
  496. pacomind-1.5.0/pacomind/tom/leveled.py +118 -0
  497. pacomind-1.5.0/pacomind/tom/levels.py +247 -0
  498. pacomind-1.5.0/pacomind/tom/recipient_audit.py +995 -0
  499. pacomind-1.5.0/pacomind/tom/recipient_simulator.py +593 -0
  500. pacomind-1.5.0/pacomind/tom/source_lineage.py +93 -0
  501. pacomind-1.5.0/pacomind/tom/tom2.py +277 -0
  502. pacomind-1.5.0/pacomind/tom/visibility.py +559 -0
  503. pacomind-1.5.0/pacomind/tom/visibility_store.py +414 -0
  504. pacomind-1.5.0/pacomind/tools/__init__.py +0 -0
  505. pacomind-1.5.0/pacomind/tools/definitions.py +737 -0
  506. pacomind-1.5.0/pacomind/tools/handlers.py +912 -0
  507. pacomind-1.5.0/pacomind/toolsmith/__init__.py +26 -0
  508. pacomind-1.5.0/pacomind/toolsmith/authority.py +166 -0
  509. pacomind-1.5.0/pacomind/toolsmith/engine.py +559 -0
  510. pacomind-1.5.0/pacomind/toolsmith/integrity.py +100 -0
  511. pacomind-1.5.0/pacomind/toolsmith/miner.py +145 -0
  512. pacomind-1.5.0/pacomind/toolsmith/policy.py +110 -0
  513. pacomind-1.5.0/pacomind/toolsmith/registry.py +635 -0
  514. pacomind-1.5.0/pacomind/turns/__init__.py +17 -0
  515. pacomind-1.5.0/pacomind/turns/audio.py +134 -0
  516. pacomind-1.5.0/pacomind/turns/documents.py +235 -0
  517. pacomind-1.5.0/pacomind/turns/executions.py +486 -0
  518. pacomind-1.5.0/pacomind/turns/hermes_history.py +245 -0
  519. pacomind-1.5.0/pacomind/turns/hermes_kanban.py +268 -0
  520. pacomind-1.5.0/pacomind/turns/hermes_work.py +96 -0
  521. pacomind-1.5.0/pacomind/turns/history_references.py +41 -0
  522. pacomind-1.5.0/pacomind/turns/idempotency.py +765 -0
  523. pacomind-1.5.0/pacomind/turns/local_work.py +115 -0
  524. pacomind-1.5.0/pacomind/turns/media.py +581 -0
  525. pacomind-1.5.0/pacomind/turns/reported_workers.py +196 -0
  526. pacomind-1.5.0/pacomind/turns/source_annotations.py +292 -0
  527. pacomind-1.5.0/pacomind/turns/source_attribution.py +156 -0
  528. pacomind-1.5.0/pacomind/turns/source_read.py +417 -0
  529. pacomind-1.5.0/pacomind/turns/source_vectors.py +263 -0
  530. pacomind-1.5.0/pacomind/turns/tool_observations.py +147 -0
  531. pacomind-1.5.0/pacomind/turns/video.py +210 -0
  532. pacomind-1.5.0/pacomind/util/autonomy_preset.py +220 -0
  533. pacomind-1.5.0/pacomind/util/instance.py +74 -0
  534. pacomind-1.5.0/pacomind/util/model_output.py +25 -0
  535. pacomind-1.5.0/pacomind/util/quiet_hours.py +27 -0
  536. pacomind-1.5.0/pacomind/util/session_safety.py +37 -0
  537. pacomind-1.5.0/pacomind/util/temporal.py +343 -0
  538. pacomind-1.5.0/pacomind/vector/__init__.py +75 -0
  539. pacomind-1.5.0/pacomind/vector/backfill.py +171 -0
  540. pacomind-1.5.0/pacomind/vector/caption.py +114 -0
  541. pacomind-1.5.0/pacomind/vector/collections.py +51 -0
  542. pacomind-1.5.0/pacomind/vector/config.py +102 -0
  543. pacomind-1.5.0/pacomind/vector/embedder.py +670 -0
  544. pacomind-1.5.0/pacomind/vector/image_preprocess.py +406 -0
  545. pacomind-1.5.0/pacomind/vector/image_store.py +296 -0
  546. pacomind-1.5.0/pacomind/vector/indexes.py +162 -0
  547. pacomind-1.5.0/pacomind/vector/migrate.py +334 -0
  548. pacomind-1.5.0/pacomind/vector/multimodal_provider.py +417 -0
  549. pacomind-1.5.0/pacomind/vector/multimodal_types.py +87 -0
  550. pacomind-1.5.0/pacomind/vector/openai_provider.py +119 -0
  551. pacomind-1.5.0/pacomind/vector/query.py +49 -0
  552. pacomind-1.5.0/pacomind/vector/reranker.py +565 -0
  553. pacomind-1.5.0/pacomind/vector/safety_image.py +159 -0
  554. pacomind-1.5.0/pacomind/vector/scanner.py +197 -0
  555. pacomind-1.5.0/pacomind/vector/setup.py +289 -0
  556. pacomind-1.5.0/pacomind/vector/store.py +533 -0
  557. pacomind-1.5.0/pacomind/vector/tiers.py +263 -0
  558. pacomind-1.5.0/pacomind/work_orders.py +925 -0
  559. pacomind-1.5.0/pacomind/workers/__init__.py +12 -0
  560. pacomind-1.5.0/pacomind/workers/agent_bridge.py +640 -0
  561. pacomind-1.5.0/pacomind/workers/pacomind_worker.py +382 -0
  562. pacomind-1.5.0/pacomind/workers/queue_worker.py +438 -0
  563. pacomind-1.5.0/pacomind/workers/skills_sync.py +149 -0
  564. pacomind-1.5.0/pacomind/world_model/__init__.py +71 -0
  565. pacomind-1.5.0/pacomind/world_model/causal_maintenance.py +131 -0
  566. pacomind-1.5.0/pacomind/world_model/causal_policy.py +43 -0
  567. pacomind-1.5.0/pacomind/world_model/causal_query.py +125 -0
  568. pacomind-1.5.0/pacomind/world_model/confidence.py +54 -0
  569. pacomind-1.5.0/pacomind/world_model/config.py +60 -0
  570. pacomind-1.5.0/pacomind/world_model/constants.py +97 -0
  571. pacomind-1.5.0/pacomind/world_model/entities.py +145 -0
  572. pacomind-1.5.0/pacomind/world_model/expectation_resolvers.py +177 -0
  573. pacomind-1.5.0/pacomind/world_model/extraction/__init__.py +7 -0
  574. pacomind-1.5.0/pacomind/world_model/extraction/base.py +62 -0
  575. pacomind-1.5.0/pacomind/world_model/extraction/conversation_extractor.py +262 -0
  576. pacomind-1.5.0/pacomind/world_model/extraction/detector.py +74 -0
  577. pacomind-1.5.0/pacomind/world_model/extraction/document_extractor.py +78 -0
  578. pacomind-1.5.0/pacomind/world_model/extraction/formats/__init__.py +24 -0
  579. pacomind-1.5.0/pacomind/world_model/extraction/formats/csv_fmt.py +68 -0
  580. pacomind-1.5.0/pacomind/world_model/extraction/formats/html_fmt.py +72 -0
  581. pacomind-1.5.0/pacomind/world_model/extraction/formats/json_fmt.py +68 -0
  582. pacomind-1.5.0/pacomind/world_model/extraction/formats/pdf.py +43 -0
  583. pacomind-1.5.0/pacomind/world_model/extraction/formats/text.py +27 -0
  584. pacomind-1.5.0/pacomind/world_model/extraction/llm_extractor.py +164 -0
  585. pacomind-1.5.0/pacomind/world_model/extraction/pipeline.py +73 -0
  586. pacomind-1.5.0/pacomind/world_model/integrations/__init__.py +5 -0
  587. pacomind-1.5.0/pacomind/world_model/integrations/mind_model_bridge.py +115 -0
  588. pacomind-1.5.0/pacomind/world_model/integrations/social_intel_bridge.py +120 -0
  589. pacomind-1.5.0/pacomind/world_model/jobs/__init__.py +4 -0
  590. pacomind-1.5.0/pacomind/world_model/jobs/extraction_job.py +168 -0
  591. pacomind-1.5.0/pacomind/world_model/llm_extract.py +572 -0
  592. pacomind-1.5.0/pacomind/world_model/observations.py +155 -0
  593. pacomind-1.5.0/pacomind/world_model/populator.py +307 -0
  594. pacomind-1.5.0/pacomind/world_model/relationships.py +25 -0
  595. pacomind-1.5.0/pacomind/world_model/resolution/__init__.py +13 -0
  596. pacomind-1.5.0/pacomind/world_model/resolution/entity_resolver.py +232 -0
  597. pacomind-1.5.0/pacomind/world_model/resolution/merge_audit.py +16 -0
  598. pacomind-1.5.0/pacomind/world_model/resolution/merge_workflow.py +117 -0
  599. pacomind-1.5.0/pacomind/world_model/source_reports.py +121 -0
  600. pacomind-1.5.0/pacomind/world_model/sqlite/__init__.py +4 -0
  601. pacomind-1.5.0/pacomind/world_model/sqlite/backend.py +855 -0
  602. pacomind-1.5.0/pacomind/world_model/sqlite/schema.sql +132 -0
  603. pacomind-1.5.0/pacomind/world_model/store.py +478 -0
  604. pacomind-1.5.0/pacomind.egg-info/PKG-INFO +76 -0
  605. pacomind-1.5.0/pacomind.egg-info/SOURCES.txt +995 -0
  606. pacomind-1.5.0/pacomind.egg-info/dependency_links.txt +1 -0
  607. pacomind-1.5.0/pacomind.egg-info/entry_points.txt +6 -0
  608. pacomind-1.5.0/pacomind.egg-info/requires.txt +58 -0
  609. pacomind-1.5.0/pacomind.egg-info/top_level.txt +1 -0
  610. pacomind-1.5.0/pyproject.toml +65 -0
  611. pacomind-1.5.0/setup.cfg +4 -0
  612. pacomind-1.5.0/tests/test_accepted_local_work.py +159 -0
  613. pacomind-1.5.0/tests/test_adaptive_params.py +106 -0
  614. pacomind-1.5.0/tests/test_affect.py +226 -0
  615. pacomind-1.5.0/tests/test_agent_action_routing.py +1325 -0
  616. pacomind-1.5.0/tests/test_agent_api.py +506 -0
  617. pacomind-1.5.0/tests/test_agent_bridge.py +521 -0
  618. pacomind-1.5.0/tests/test_agent_bridge_service.py +132 -0
  619. pacomind-1.5.0/tests/test_agent_sdk.py +338 -0
  620. pacomind-1.5.0/tests/test_agent_sensor_loop.py +394 -0
  621. pacomind-1.5.0/tests/test_agent_snapshot.py +177 -0
  622. pacomind-1.5.0/tests/test_agent_store.py +390 -0
  623. pacomind-1.5.0/tests/test_annotated_recall_reinforcement.py +58 -0
  624. pacomind-1.5.0/tests/test_answer_source_lineage.py +245 -0
  625. pacomind-1.5.0/tests/test_appraisal_incident_decisions.py +196 -0
  626. pacomind-1.5.0/tests/test_approval_gate.py +513 -0
  627. pacomind-1.5.0/tests/test_approval_relay_canary.py +564 -0
  628. pacomind-1.5.0/tests/test_assignment_engine.py +330 -0
  629. pacomind-1.5.0/tests/test_audit_cleanup.py +387 -0
  630. pacomind-1.5.0/tests/test_auth_coverage.py +61 -0
  631. pacomind-1.5.0/tests/test_auth_migration_readiness.py +551 -0
  632. pacomind-1.5.0/tests/test_authz_scope_api.py +96 -0
  633. pacomind-1.5.0/tests/test_autonomy_preset.py +227 -0
  634. pacomind-1.5.0/tests/test_backup.py +414 -0
  635. pacomind-1.5.0/tests/test_backup_receipt_evidence.py +130 -0
  636. pacomind-1.5.0/tests/test_beliefs.py +565 -0
  637. pacomind-1.5.0/tests/test_bind_auth_guard.py +47 -0
  638. pacomind-1.5.0/tests/test_boundary_fail_closed.py +178 -0
  639. pacomind-1.5.0/tests/test_bounded_approval_authority.py +2321 -0
  640. pacomind-1.5.0/tests/test_briefing_aggregators.py +129 -0
  641. pacomind-1.5.0/tests/test_canonical_memory_search.py +273 -0
  642. pacomind-1.5.0/tests/test_canonical_scoped_context.py +134 -0
  643. pacomind-1.5.0/tests/test_canonical_source_read.py +309 -0
  644. pacomind-1.5.0/tests/test_causal_extract.py +212 -0
  645. pacomind-1.5.0/tests/test_causal_falsifiability.py +200 -0
  646. pacomind-1.5.0/tests/test_causal_maintenance.py +250 -0
  647. pacomind-1.5.0/tests/test_causal_policy.py +47 -0
  648. pacomind-1.5.0/tests/test_causal_query.py +88 -0
  649. pacomind-1.5.0/tests/test_causal_query_only_guard.py +191 -0
  650. pacomind-1.5.0/tests/test_chain_keys.py +109 -0
  651. pacomind-1.5.0/tests/test_channel_preferences.py +160 -0
  652. pacomind-1.5.0/tests/test_channel_registry.py +371 -0
  653. pacomind-1.5.0/tests/test_channel_store.py +164 -0
  654. pacomind-1.5.0/tests/test_cognition.py +147 -0
  655. pacomind-1.5.0/tests/test_cognition_evidence_pipeline.py +1233 -0
  656. pacomind-1.5.0/tests/test_cognition_evidence_server_wiring.py +313 -0
  657. pacomind-1.5.0/tests/test_cognition_goal_spine.py +1347 -0
  658. pacomind-1.5.0/tests/test_cognition_observability.py +61 -0
  659. pacomind-1.5.0/tests/test_cognition_p4_controlled_learning.py +617 -0
  660. pacomind-1.5.0/tests/test_cognition_p4_server_integration.py +458 -0
  661. pacomind-1.5.0/tests/test_cognition_p6_p7_server_wiring.py +1494 -0
  662. pacomind-1.5.0/tests/test_cognition_p7_drive_governance.py +1416 -0
  663. pacomind-1.5.0/tests/test_cognition_phase_b_runtime.py +628 -0
  664. pacomind-1.5.0/tests/test_cognition_phase_c_scheduler.py +1391 -0
  665. pacomind-1.5.0/tests/test_cognition_server_wiring.py +227 -0
  666. pacomind-1.5.0/tests/test_commitment_resolution.py +602 -0
  667. pacomind-1.5.0/tests/test_commitment_resolution_downgrade.py +109 -0
  668. pacomind-1.5.0/tests/test_commitment_resolution_schema.py +471 -0
  669. pacomind-1.5.0/tests/test_commitment_work.py +215 -0
  670. pacomind-1.5.0/tests/test_commitments.py +216 -0
  671. pacomind-1.5.0/tests/test_comms_source_erasure.py +241 -0
  672. pacomind-1.5.0/tests/test_competence_reconciliation.py +339 -0
  673. pacomind-1.5.0/tests/test_concern_resolution_receipts.py +1243 -0
  674. pacomind-1.5.0/tests/test_condition_producer.py +106 -0
  675. pacomind-1.5.0/tests/test_connectors.py +247 -0
  676. pacomind-1.5.0/tests/test_contact_fact_recall.py +192 -0
  677. pacomind-1.5.0/tests/test_contact_policy_projection.py +1376 -0
  678. pacomind-1.5.0/tests/test_contact_provisioning.py +424 -0
  679. pacomind-1.5.0/tests/test_contact_timezone.py +63 -0
  680. pacomind-1.5.0/tests/test_contacts_intro.py +140 -0
  681. pacomind-1.5.0/tests/test_contacts_persistence.py +120 -0
  682. pacomind-1.5.0/tests/test_context_gate.py +399 -0
  683. pacomind-1.5.0/tests/test_context_phase1.py +127 -0
  684. pacomind-1.5.0/tests/test_context_provenance.py +117 -0
  685. pacomind-1.5.0/tests/test_context_skill_ownership.py +35 -0
  686. pacomind-1.5.0/tests/test_conversation_presence.py +205 -0
  687. pacomind-1.5.0/tests/test_conversation_source_context.py +218 -0
  688. pacomind-1.5.0/tests/test_conversation_turn_concerns.py +1155 -0
  689. pacomind-1.5.0/tests/test_current_work_recall_selection.py +235 -0
  690. pacomind-1.5.0/tests/test_delivery_bridge_503.py +61 -0
  691. pacomind-1.5.0/tests/test_delivery_gateway_identity.py +556 -0
  692. pacomind-1.5.0/tests/test_delivery_reachout_routing.py +811 -0
  693. pacomind-1.5.0/tests/test_directed.py +211 -0
  694. pacomind-1.5.0/tests/test_directed_envelope.py +98 -0
  695. pacomind-1.5.0/tests/test_directed_reports.py +111 -0
  696. pacomind-1.5.0/tests/test_directed_trust.py +100 -0
  697. pacomind-1.5.0/tests/test_directive_sources.py +300 -0
  698. pacomind-1.5.0/tests/test_directives.py +409 -0
  699. pacomind-1.5.0/tests/test_distill.py +164 -0
  700. pacomind-1.5.0/tests/test_doctor.py +1261 -0
  701. pacomind-1.5.0/tests/test_document_memory_guard.py +199 -0
  702. pacomind-1.5.0/tests/test_duckduckgo_provider.py +60 -0
  703. pacomind-1.5.0/tests/test_embedding_generations.py +414 -0
  704. pacomind-1.5.0/tests/test_enrolled_sender_turns.py +94 -0
  705. pacomind-1.5.0/tests/test_ensure_channel_id.py +188 -0
  706. pacomind-1.5.0/tests/test_env_risk.py +269 -0
  707. pacomind-1.5.0/tests/test_event_broadcasts.py +193 -0
  708. pacomind-1.5.0/tests/test_event_bus_types.py +493 -0
  709. pacomind-1.5.0/tests/test_event_concerns.py +400 -0
  710. pacomind-1.5.0/tests/test_event_stream_reliability.py +240 -0
  711. pacomind-1.5.0/tests/test_execution_forecasts.py +331 -0
  712. pacomind-1.5.0/tests/test_execution_input_purpose.py +306 -0
  713. pacomind-1.5.0/tests/test_execution_registry.py +290 -0
  714. pacomind-1.5.0/tests/test_expectations.py +336 -0
  715. pacomind-1.5.0/tests/test_expectations_v2.py +393 -0
  716. pacomind-1.5.0/tests/test_experiments.py +162 -0
  717. pacomind-1.5.0/tests/test_external_cognition_events.py +902 -0
  718. pacomind-1.5.0/tests/test_external_event_concerns.py +1496 -0
  719. pacomind-1.5.0/tests/test_facts_backfill.py +115 -0
  720. pacomind-1.5.0/tests/test_feedback.py +35 -0
  721. pacomind-1.5.0/tests/test_followup_plans.py +136 -0
  722. pacomind-1.5.0/tests/test_forecast_learning.py +221 -0
  723. pacomind-1.5.0/tests/test_function_routing.py +852 -0
  724. pacomind-1.5.0/tests/test_gap_generators.py +368 -0
  725. pacomind-1.5.0/tests/test_genesis_manifest.py +118 -0
  726. pacomind-1.5.0/tests/test_global_pause.py +85 -0
  727. pacomind-1.5.0/tests/test_goal_dispatch_availability.py +179 -0
  728. pacomind-1.5.0/tests/test_goal_inference_provenance.py +89 -0
  729. pacomind-1.5.0/tests/test_goal_reader_imports.py +72 -0
  730. pacomind-1.5.0/tests/test_governed_actions.py +989 -0
  731. pacomind-1.5.0/tests/test_governed_research_handoff.py +1083 -0
  732. pacomind-1.5.0/tests/test_graduated_approvals.py +544 -0
  733. pacomind-1.5.0/tests/test_grant_envelope.py +260 -0
  734. pacomind-1.5.0/tests/test_graph_reindex_metadata.py +102 -0
  735. pacomind-1.5.0/tests/test_guard_audit.py +255 -0
  736. pacomind-1.5.0/tests/test_guard_chat_mode.py +62 -0
  737. pacomind-1.5.0/tests/test_guard_derive_context.py +185 -0
  738. pacomind-1.5.0/tests/test_guard_enforce_policy.py +107 -0
  739. pacomind-1.5.0/tests/test_hermes_export.py +438 -0
  740. pacomind-1.5.0/tests/test_hermes_general_governance.py +1924 -0
  741. pacomind-1.5.0/tests/test_hermes_history_import.py +159 -0
  742. pacomind-1.5.0/tests/test_hermes_native_tool_authority.py +146 -0
  743. pacomind-1.5.0/tests/test_hermes_plugin_contract.py +85 -0
  744. pacomind-1.5.0/tests/test_hermes_plugin_event_lifecycle.py +35 -0
  745. pacomind-1.5.0/tests/test_hermes_plugin_event_replay.py +39 -0
  746. pacomind-1.5.0/tests/test_hermes_plugin_guard_shadow.py +228 -0
  747. pacomind-1.5.0/tests/test_hermes_plugin_signals.py +223 -0
  748. pacomind-1.5.0/tests/test_hermes_plugin_turn_id.py +139 -0
  749. pacomind-1.5.0/tests/test_hermes_queue_stats_projection.py +92 -0
  750. pacomind-1.5.0/tests/test_hermes_setup.py +280 -0
  751. pacomind-1.5.0/tests/test_hermes_turn_outbox.py +1318 -0
  752. pacomind-1.5.0/tests/test_hermes_work_projection.py +120 -0
  753. pacomind-1.5.0/tests/test_host_input_provenance.py +506 -0
  754. pacomind-1.5.0/tests/test_hostworker_agreement.py +665 -0
  755. pacomind-1.5.0/tests/test_identity_continuity.py +180 -0
  756. pacomind-1.5.0/tests/test_identity_corrections.py +171 -0
  757. pacomind-1.5.0/tests/test_inference_context_gate.py +100 -0
  758. pacomind-1.5.0/tests/test_initiative_engine.py +76 -0
  759. pacomind-1.5.0/tests/test_initiative_evidence.py +204 -0
  760. pacomind-1.5.0/tests/test_initiative_executor.py +562 -0
  761. pacomind-1.5.0/tests/test_initiative_feedback.py +138 -0
  762. pacomind-1.5.0/tests/test_initiative_pipeline_v016.py +650 -0
  763. pacomind-1.5.0/tests/test_initiative_retry.py +115 -0
  764. pacomind-1.5.0/tests/test_initiative_store.py +368 -0
  765. pacomind-1.5.0/tests/test_input_source_lineage.py +119 -0
  766. pacomind-1.5.0/tests/test_insight_store.py +34 -0
  767. pacomind-1.5.0/tests/test_instance_http_readiness.py +43 -0
  768. pacomind-1.5.0/tests/test_instance_service.py +250 -0
  769. pacomind-1.5.0/tests/test_instance_service_live.py +118 -0
  770. pacomind-1.5.0/tests/test_intelligence_components.py +891 -0
  771. pacomind-1.5.0/tests/test_intelligence_synthesis.py +627 -0
  772. pacomind-1.5.0/tests/test_introduction_initiatives.py +157 -0
  773. pacomind-1.5.0/tests/test_job_writeback.py +263 -0
  774. pacomind-1.5.0/tests/test_journal.py +346 -0
  775. pacomind-1.5.0/tests/test_legacy_fact_context.py +221 -0
  776. pacomind-1.5.0/tests/test_local_work_context.py +169 -0
  777. pacomind-1.5.0/tests/test_loop_stats_accuracy.py +112 -0
  778. pacomind-1.5.0/tests/test_mcp_config.py +393 -0
  779. pacomind-1.5.0/tests/test_mcp_server.py +357 -0
  780. pacomind-1.5.0/tests/test_media_read_reference_presentation.py +147 -0
  781. pacomind-1.5.0/tests/test_memory_decay.py +207 -0
  782. pacomind-1.5.0/tests/test_memory_formation.py +135 -0
  783. pacomind-1.5.0/tests/test_memory_governance.py +319 -0
  784. pacomind-1.5.0/tests/test_memory_promotion.py +62 -0
  785. pacomind-1.5.0/tests/test_memory_prune.py +184 -0
  786. pacomind-1.5.0/tests/test_memory_read_hydration.py +45 -0
  787. pacomind-1.5.0/tests/test_memory_response_schemas.py +127 -0
  788. pacomind-1.5.0/tests/test_migrations.py +175 -0
  789. pacomind-1.5.0/tests/test_mining.py +371 -0
  790. pacomind-1.5.0/tests/test_model_qualification_cli.py +106 -0
  791. pacomind-1.5.0/tests/test_model_qualification_memory.py +245 -0
  792. pacomind-1.5.0/tests/test_model_qualification_runner.py +352 -0
  793. pacomind-1.5.0/tests/test_model_qualification_structured.py +145 -0
  794. pacomind-1.5.0/tests/test_native_accepted_local_work.py +344 -0
  795. pacomind-1.5.0/tests/test_native_history_references.py +54 -0
  796. pacomind-1.5.0/tests/test_native_initiative_work.py +125 -0
  797. pacomind-1.5.0/tests/test_native_input_carrier.py +80 -0
  798. pacomind-1.5.0/tests/test_native_outcome_judgments.py +204 -0
  799. pacomind-1.5.0/tests/test_native_request_erasure.py +507 -0
  800. pacomind-1.5.0/tests/test_native_review_recurrence.py +223 -0
  801. pacomind-1.5.0/tests/test_native_setup.py +1060 -0
  802. pacomind-1.5.0/tests/test_native_source_image_read.py +133 -0
  803. pacomind-1.5.0/tests/test_native_source_read.py +97 -0
  804. pacomind-1.5.0/tests/test_native_source_video_read.py +187 -0
  805. pacomind-1.5.0/tests/test_native_tool_observations.py +558 -0
  806. pacomind-1.5.0/tests/test_operator_deck_read_truth.py +109 -0
  807. pacomind-1.5.0/tests/test_ordinary_context_briefings.py +60 -0
  808. pacomind-1.5.0/tests/test_owner_preferences.py +138 -0
  809. pacomind-1.5.0/tests/test_p2_wirings.py +201 -0
  810. pacomind-1.5.0/tests/test_pacomind_compat.py +74 -0
  811. pacomind-1.5.0/tests/test_pacomind_harness_guidance.py +23 -0
  812. pacomind-1.5.0/tests/test_pacomind_memory_provider.py +1187 -0
  813. pacomind-1.5.0/tests/test_partial_work_rendering.py +120 -0
  814. pacomind-1.5.0/tests/test_patterns.py +150 -0
  815. pacomind-1.5.0/tests/test_pending_work_coverage.py +101 -0
  816. pacomind-1.5.0/tests/test_phase_capability_check.py +93 -0
  817. pacomind-1.5.0/tests/test_preset_loop_coupling.py +162 -0
  818. pacomind-1.5.0/tests/test_procedure_source_context.py +205 -0
  819. pacomind-1.5.0/tests/test_project_event_outbox.py +614 -0
  820. pacomind-1.5.0/tests/test_project_result_reconciliation_phase.py +64 -0
  821. pacomind-1.5.0/tests/test_projects.py +526 -0
  822. pacomind-1.5.0/tests/test_prompt_evals.py +264 -0
  823. pacomind-1.5.0/tests/test_proposals.py +70 -0
  824. pacomind-1.5.0/tests/test_provenance_population.py +59 -0
  825. pacomind-1.5.0/tests/test_pseudo_agi_production_chain.py +437 -0
  826. pacomind-1.5.0/tests/test_queue_completed_filter.py +51 -0
  827. pacomind-1.5.0/tests/test_queue_contract.py +390 -0
  828. pacomind-1.5.0/tests/test_quiet_hours_and_reload.py +136 -0
  829. pacomind-1.5.0/tests/test_reachout_policy.py +135 -0
  830. pacomind-1.5.0/tests/test_recall_hybrid.py +99 -0
  831. pacomind-1.5.0/tests/test_recall_person_boost.py +368 -0
  832. pacomind-1.5.0/tests/test_recall_ranking.py +294 -0
  833. pacomind-1.5.0/tests/test_recall_request_repetition.py +140 -0
  834. pacomind-1.5.0/tests/test_recall_rerank.py +206 -0
  835. pacomind-1.5.0/tests/test_recall_source_presentation.py +190 -0
  836. pacomind-1.5.0/tests/test_recall_unified_context.py +339 -0
  837. pacomind-1.5.0/tests/test_recency.py +27 -0
  838. pacomind-1.5.0/tests/test_reflection_task_routing.py +72 -0
  839. pacomind-1.5.0/tests/test_rejection_loop.py +563 -0
  840. pacomind-1.5.0/tests/test_relationship_calendar_aggregators.py +436 -0
  841. pacomind-1.5.0/tests/test_relationship_score_refresh.py +36 -0
  842. pacomind-1.5.0/tests/test_relationship_signal_floor.py +220 -0
  843. pacomind-1.5.0/tests/test_relationships.py +410 -0
  844. pacomind-1.5.0/tests/test_reply_forecast_callback_order.py +94 -0
  845. pacomind-1.5.0/tests/test_reply_forecast_stops.py +63 -0
  846. pacomind-1.5.0/tests/test_reply_forecasts.py +418 -0
  847. pacomind-1.5.0/tests/test_repo_tools.py +98 -0
  848. pacomind-1.5.0/tests/test_reported_worker_status.py +130 -0
  849. pacomind-1.5.0/tests/test_request_capabilities.py +104 -0
  850. pacomind-1.5.0/tests/test_request_work_context.py +194 -0
  851. pacomind-1.5.0/tests/test_reranker_remote.py +92 -0
  852. pacomind-1.5.0/tests/test_research_orchestrator.py +89 -0
  853. pacomind-1.5.0/tests/test_resolve_messaging_handle.py +66 -0
  854. pacomind-1.5.0/tests/test_response_guard.py +191 -0
  855. pacomind-1.5.0/tests/test_response_guard_communication_policy.py +364 -0
  856. pacomind-1.5.0/tests/test_response_guard_endpoint.py +95 -0
  857. pacomind-1.5.0/tests/test_response_guard_surface_policy.py +132 -0
  858. pacomind-1.5.0/tests/test_router_tiers.py +249 -0
  859. pacomind-1.5.0/tests/test_runtime_logging.py +117 -0
  860. pacomind-1.5.0/tests/test_runtime_model_observations.py +93 -0
  861. pacomind-1.5.0/tests/test_sandbox.py +292 -0
  862. pacomind-1.5.0/tests/test_scoped_api_authority.py +1127 -0
  863. pacomind-1.5.0/tests/test_scoped_contact_resolution.py +48 -0
  864. pacomind-1.5.0/tests/test_secondary_review_contract.py +56 -0
  865. pacomind-1.5.0/tests/test_selected_autonomy.py +91 -0
  866. pacomind-1.5.0/tests/test_self_directed_thinker.py +100 -0
  867. pacomind-1.5.0/tests/test_self_initiatives.py +212 -0
  868. pacomind-1.5.0/tests/test_self_judgment_opt_in.py +78 -0
  869. pacomind-1.5.0/tests/test_self_judgment_premises.py +181 -0
  870. pacomind-1.5.0/tests/test_self_judgments.py +577 -0
  871. pacomind-1.5.0/tests/test_self_model.py +310 -0
  872. pacomind-1.5.0/tests/test_self_perspective.py +267 -0
  873. pacomind-1.5.0/tests/test_selfhood_benchmark.py +335 -0
  874. pacomind-1.5.0/tests/test_session_reports.py +352 -0
  875. pacomind-1.5.0/tests/test_shared_facts.py +185 -0
  876. pacomind-1.5.0/tests/test_shared_local_undertaking.py +293 -0
  877. pacomind-1.5.0/tests/test_short_source_context.py +138 -0
  878. pacomind-1.5.0/tests/test_sidecar.py +980 -0
  879. pacomind-1.5.0/tests/test_signals_attribution.py +139 -0
  880. pacomind-1.5.0/tests/test_situation_spine.py +685 -0
  881. pacomind-1.5.0/tests/test_skill_approval.py +115 -0
  882. pacomind-1.5.0/tests/test_skill_attribution.py +104 -0
  883. pacomind-1.5.0/tests/test_skill_sandbox.py +360 -0
  884. pacomind-1.5.0/tests/test_skill_synthesis.py +47 -0
  885. pacomind-1.5.0/tests/test_skill_synthesis_wiring.py +86 -0
  886. pacomind-1.5.0/tests/test_skills_memory.py +181 -0
  887. pacomind-1.5.0/tests/test_social_context_flow.py +98 -0
  888. pacomind-1.5.0/tests/test_social_transport.py +71 -0
  889. pacomind-1.5.0/tests/test_source_annotation_claim_survivors.py +90 -0
  890. pacomind-1.5.0/tests/test_source_annotations.py +382 -0
  891. pacomind-1.5.0/tests/test_source_appraisals.py +538 -0
  892. pacomind-1.5.0/tests/test_source_attribution.py +92 -0
  893. pacomind-1.5.0/tests/test_source_audio.py +169 -0
  894. pacomind-1.5.0/tests/test_source_audio_claims.py +346 -0
  895. pacomind-1.5.0/tests/test_source_claim_budget.py +110 -0
  896. pacomind-1.5.0/tests/test_source_claim_diagnostics.py +150 -0
  897. pacomind-1.5.0/tests/test_source_claim_media_eligibility.py +56 -0
  898. pacomind-1.5.0/tests/test_source_claim_projection.py +375 -0
  899. pacomind-1.5.0/tests/test_source_claim_review.py +236 -0
  900. pacomind-1.5.0/tests/test_source_claim_subject_basis.py +361 -0
  901. pacomind-1.5.0/tests/test_source_document_read.py +328 -0
  902. pacomind-1.5.0/tests/test_source_documents.py +315 -0
  903. pacomind-1.5.0/tests/test_source_episode_admission.py +164 -0
  904. pacomind-1.5.0/tests/test_source_episode_memory.py +102 -0
  905. pacomind-1.5.0/tests/test_source_episode_revisions.py +375 -0
  906. pacomind-1.5.0/tests/test_source_event_precision.py +64 -0
  907. pacomind-1.5.0/tests/test_source_excerpt_lineage.py +181 -0
  908. pacomind-1.5.0/tests/test_source_image_read.py +155 -0
  909. pacomind-1.5.0/tests/test_source_media.py +305 -0
  910. pacomind-1.5.0/tests/test_source_memory_backup.py +344 -0
  911. pacomind-1.5.0/tests/test_source_time_query.py +85 -0
  912. pacomind-1.5.0/tests/test_source_vectors.py +404 -0
  913. pacomind-1.5.0/tests/test_source_video.py +301 -0
  914. pacomind-1.5.0/tests/test_sqlite_connection_ownership.py +62 -0
  915. pacomind-1.5.0/tests/test_supervised_rung.py +128 -0
  916. pacomind-1.5.0/tests/test_surprise.py +290 -0
  917. pacomind-1.5.0/tests/test_sweep_fixes.py +186 -0
  918. pacomind-1.5.0/tests/test_synthesis.py +465 -0
  919. pacomind-1.5.0/tests/test_telemetry_staleness.py +196 -0
  920. pacomind-1.5.0/tests/test_temporal.py +144 -0
  921. pacomind-1.5.0/tests/test_temporal_followups.py +153 -0
  922. pacomind-1.5.0/tests/test_temporal_index.py +68 -0
  923. pacomind-1.5.0/tests/test_test_environment_isolation.py +12 -0
  924. pacomind-1.5.0/tests/test_thinking_phase.py +91 -0
  925. pacomind-1.5.0/tests/test_thought_function_routing.py +105 -0
  926. pacomind-1.5.0/tests/test_tick_phase_budget.py +380 -0
  927. pacomind-1.5.0/tests/test_tier_endpoints.py +181 -0
  928. pacomind-1.5.0/tests/test_timeline.py +42 -0
  929. pacomind-1.5.0/tests/test_tom2_approvals.py +153 -0
  930. pacomind-1.5.0/tests/test_tom2_asymmetry.py +117 -0
  931. pacomind-1.5.0/tests/test_tom2_context.py +160 -0
  932. pacomind-1.5.0/tests/test_tom2_cross_gate.py +186 -0
  933. pacomind-1.5.0/tests/test_tom2_eligibility.py +326 -0
  934. pacomind-1.5.0/tests/test_tom2_epistemic_guard.py +305 -0
  935. pacomind-1.5.0/tests/test_tom2_exposure.py +185 -0
  936. pacomind-1.5.0/tests/test_tom2_kill_switch.py +207 -0
  937. pacomind-1.5.0/tests/test_tom2_level_coherence.py +161 -0
  938. pacomind-1.5.0/tests/test_tom2_leveled.py +174 -0
  939. pacomind-1.5.0/tests/test_tom2_levels.py +245 -0
  940. pacomind-1.5.0/tests/test_tom2_source_corrections.py +126 -0
  941. pacomind-1.5.0/tests/test_tom2_store.py +73 -0
  942. pacomind-1.5.0/tests/test_tom2_taint.py +148 -0
  943. pacomind-1.5.0/tests/test_tom2_wiring.py +370 -0
  944. pacomind-1.5.0/tests/test_tom_event_lineage.py +378 -0
  945. pacomind-1.5.0/tests/test_tom_extractor.py +210 -0
  946. pacomind-1.5.0/tests/test_tom_p8_arcs.py +362 -0
  947. pacomind-1.5.0/tests/test_tom_p8_boundary_corpus.py +99 -0
  948. pacomind-1.5.0/tests/test_tom_p8_fact_adapters.py +105 -0
  949. pacomind-1.5.0/tests/test_tom_p8_outbound_integration.py +291 -0
  950. pacomind-1.5.0/tests/test_tom_p8_recipient_audit.py +576 -0
  951. pacomind-1.5.0/tests/test_tom_p8_recipient_simulator.py +293 -0
  952. pacomind-1.5.0/tests/test_tom_p8_server_integration.py +1918 -0
  953. pacomind-1.5.0/tests/test_tom_p8_visibility.py +240 -0
  954. pacomind-1.5.0/tests/test_tom_p8_visibility_store.py +237 -0
  955. pacomind-1.5.0/tests/test_tom_source_lineage.py +179 -0
  956. pacomind-1.5.0/tests/test_tool_handlers_graph.py +112 -0
  957. pacomind-1.5.0/tests/test_tool_observation_reader.py +59 -0
  958. pacomind-1.5.0/tests/test_tool_provenance.py +584 -0
  959. pacomind-1.5.0/tests/test_tool_surface.py +176 -0
  960. pacomind-1.5.0/tests/test_toolsmith.py +674 -0
  961. pacomind-1.5.0/tests/test_transport_ingress.py +93 -0
  962. pacomind-1.5.0/tests/test_transport_ingress_api.py +233 -0
  963. pacomind-1.5.0/tests/test_trust_configure.py +157 -0
  964. pacomind-1.5.0/tests/test_trust_scopes.py +80 -0
  965. pacomind-1.5.0/tests/test_trust_scopes_p2.py +129 -0
  966. pacomind-1.5.0/tests/test_turn_idempotency_ledger.py +66 -0
  967. pacomind-1.5.0/tests/test_turn_idempotency_v2.py +227 -0
  968. pacomind-1.5.0/tests/test_turn_ner_entities.py +107 -0
  969. pacomind-1.5.0/tests/test_turn_source_erasure.py +197 -0
  970. pacomind-1.5.0/tests/test_turn_source_evidence.py +176 -0
  971. pacomind-1.5.0/tests/test_turn_survivor_delivery.py +109 -0
  972. pacomind-1.5.0/tests/test_validation_sweep_fixes.py +298 -0
  973. pacomind-1.5.0/tests/test_vector_vacuum.py +220 -0
  974. pacomind-1.5.0/tests/test_wizard_autonomy.py +222 -0
  975. pacomind-1.5.0/tests/test_work_ancestry_projection.py +190 -0
  976. pacomind-1.5.0/tests/test_work_control_production_blockers.py +2161 -0
  977. pacomind-1.5.0/tests/test_work_control_v1.py +780 -0
  978. pacomind-1.5.0/tests/test_work_orders.py +1450 -0
  979. pacomind-1.5.0/tests/test_work_read_surface_authority.py +266 -0
  980. pacomind-1.5.0/tests/test_work_source_coverage.py +146 -0
  981. pacomind-1.5.0/tests/test_worker_handler_boundaries.py +169 -0
  982. pacomind-1.5.0/tests/test_worker_heartbeat_truth.py +208 -0
  983. pacomind-1.5.0/tests/test_worker_http_authority.py +1112 -0
  984. pacomind-1.5.0/tests/test_worker_integration.py +512 -0
  985. pacomind-1.5.0/tests/test_worker_lifecycle_durability.py +723 -0
  986. pacomind-1.5.0/tests/test_workers_governor.py +1731 -0
  987. pacomind-1.5.0/tests/test_workers_install.py +247 -0
  988. pacomind-1.5.0/tests/test_workspace.py +301 -0
  989. pacomind-1.5.0/tests/test_world_context_query.py +101 -0
  990. pacomind-1.5.0/tests/test_world_entity_reinforcement.py +134 -0
  991. pacomind-1.5.0/tests/test_world_llm_extract.py +113 -0
  992. pacomind-1.5.0/tests/test_world_model_prune.py +83 -0
  993. pacomind-1.5.0/tests/test_world_observations.py +230 -0
  994. pacomind-1.5.0/tests/test_world_populator.py +104 -0
  995. pacomind-1.5.0/tests/test_world_quality.py +64 -0
  996. pacomind-1.5.0/tests/test_world_store_api.py +49 -0
  997. pacomind-1.5.0/tests/test_world_supervised.py +233 -0
pacomind-1.5.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Aevonix
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,76 @@
1
+ Metadata-Version: 2.4
2
+ Name: pacomind
3
+ Version: 1.5.0
4
+ Summary: Persistent identity, memory and autonomy for AI agents
5
+ License-Expression: MIT
6
+ Requires-Python: >=3.11
7
+ Description-Content-Type: text/markdown
8
+ License-File: LICENSE
9
+ Requires-Dist: fastapi>=0.110
10
+ Requires-Dist: uvicorn[standard]>=0.29
11
+ Requires-Dist: litellm>=1.40
12
+ Requires-Dist: pydantic>=2.6
13
+ Requires-Dist: PyYAML>=6.0
14
+ Requires-Dist: aiosqlite>=0.19
15
+ Requires-Dist: httpx>=0.27
16
+ Requires-Dist: websockets>=12.0
17
+ Requires-Dist: Pillow>=10.0
18
+ Requires-Dist: cryptography>=42.0
19
+ Requires-Dist: pypdf<7,>=6.18.0
20
+ Requires-Dist: psutil<8,>=7.2.2; sys_platform == "darwin"
21
+ Provides-Extra: graph
22
+ Requires-Dist: neo4j>=5.18; extra == "graph"
23
+ Provides-Extra: neo4j
24
+ Requires-Dist: neo4j>=5.18; extra == "neo4j"
25
+ Provides-Extra: vectors
26
+ Requires-Dist: sentence-transformers>=3.0; extra == "vectors"
27
+ Requires-Dist: pandas>=2.0; extra == "vectors"
28
+ Requires-Dist: pyarrow>=15.0; extra == "vectors"
29
+ Requires-Dist: lancedb>=0.10; extra == "vectors"
30
+ Provides-Extra: hermes
31
+ Requires-Dist: pacomind-hermes<2,>=1.5.0; extra == "hermes"
32
+ Provides-Extra: mcp
33
+ Requires-Dist: mcp[cli]<2,>=1.0; extra == "mcp"
34
+ Provides-Extra: lancedb
35
+ Requires-Dist: lancedb>=0.6; extra == "lancedb"
36
+ Requires-Dist: pyarrow>=14.0; extra == "lancedb"
37
+ Requires-Dist: pandas>=2.0; extra == "lancedb"
38
+ Provides-Extra: extraction
39
+ Requires-Dist: PyMuPDF>=1.24; extra == "extraction"
40
+ Requires-Dist: beautifulsoup4>=4.12; extra == "extraction"
41
+ Provides-Extra: video
42
+ Requires-Dist: av==18.1.0; extra == "video"
43
+ Provides-Extra: dev
44
+ Requires-Dist: av==18.1.0; extra == "dev"
45
+ Requires-Dist: psutil<8,>=7.2.2; extra == "dev"
46
+ Requires-Dist: neo4j>=5.18; extra == "dev"
47
+ Requires-Dist: sentence-transformers>=3.0; extra == "dev"
48
+ Requires-Dist: pandas>=2.0; extra == "dev"
49
+ Requires-Dist: pyarrow>=15.0; extra == "dev"
50
+ Requires-Dist: lancedb>=0.10; extra == "dev"
51
+ Requires-Dist: pytest>=8.0; extra == "dev"
52
+ Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
53
+ Requires-Dist: httpx>=0.27; extra == "dev"
54
+ Requires-Dist: jsonschema>=4.21; extra == "dev"
55
+ Requires-Dist: mcp[cli]<2,>=1.0; extra == "dev"
56
+ Dynamic: license-file
57
+
58
+ # PacoMind sidecar
59
+
60
+ PacoMind provides persistent source memory, relevant context and shared work for
61
+ a personal agent using locally configured models. This package runs the sidecar
62
+ and supplies the `pacomind` command.
63
+
64
+ Native Hermes attachment also requires the companion `pacomind-hermes` package
65
+ and an existing supported Hermes installation. The guided local setup uses one
66
+ OpenAI-compatible chat endpoint and SQLite; graph and vector dependencies are
67
+ optional.
68
+
69
+ See the [public setup guide](https://github.com/Aevonix/PacoMind/blob/main/docs/LOCAL-HERMES-SETUP.md)
70
+ for installation, private identity setup, supported runtime and operation.
71
+ The [project README](https://github.com/Aevonix/PacoMind/blob/main/README.md)
72
+ describes current capabilities and their limits. Personal configuration,
73
+ credentials and hardware adapters belong in the private deployment.
74
+
75
+ Licensed under the included MIT license. Optional dependencies retain their
76
+ own licenses.
@@ -0,0 +1,19 @@
1
+ # PacoMind sidecar
2
+
3
+ PacoMind provides persistent source memory, relevant context and shared work for
4
+ a personal agent using locally configured models. This package runs the sidecar
5
+ and supplies the `pacomind` command.
6
+
7
+ Native Hermes attachment also requires the companion `pacomind-hermes` package
8
+ and an existing supported Hermes installation. The guided local setup uses one
9
+ OpenAI-compatible chat endpoint and SQLite; graph and vector dependencies are
10
+ optional.
11
+
12
+ See the [public setup guide](https://github.com/Aevonix/PacoMind/blob/main/docs/LOCAL-HERMES-SETUP.md)
13
+ for installation, private identity setup, supported runtime and operation.
14
+ The [project README](https://github.com/Aevonix/PacoMind/blob/main/README.md)
15
+ describes current capabilities and their limits. Personal configuration,
16
+ credentials and hardware adapters belong in the private deployment.
17
+
18
+ Licensed under the included MIT license. Optional dependencies retain their
19
+ own licenses.
@@ -0,0 +1,32 @@
1
+ """PacoMind cognition server for agent runtimes.
2
+
3
+ A standalone FastAPI server that agent hosts (Hermes plugin, MCP harnesses,
4
+ REST integrations) mount via the ``/v1/host`` API surface.
5
+ """
6
+
7
+ from pathlib import Path
8
+ import os
9
+
10
+
11
+ try: # single source of truth: the installed package metadata (pyproject)
12
+ from importlib.metadata import version as _pkg_version
13
+ __version__ = _pkg_version("pacomind")
14
+ except Exception: # editable/unbuilt checkouts without installed metadata
15
+ __version__ = "0.0.0+unknown"
16
+
17
+
18
+ def get_state_dir() -> Path:
19
+ """Return the selected state directory without moving existing state.
20
+
21
+ Guided setup selects an explicit private instance directory. Unconfigured
22
+ library use defaults to ~/.pacomind/data.
23
+
24
+ Creates the directory if it does not exist.
25
+ """
26
+ explicit = os.environ.get("PACOMIND_STATE_DIR")
27
+ if explicit:
28
+ path = Path(explicit)
29
+ else:
30
+ path = Path.home() / ".pacomind" / "data"
31
+ path.mkdir(parents=True, exist_ok=True)
32
+ return path
@@ -0,0 +1,6 @@
1
+ """Run the same CLI used by the installed ``pacomind`` command."""
2
+ from pacomind.cli import main
3
+
4
+
5
+ if __name__ == "__main__":
6
+ main()
@@ -0,0 +1,6 @@
1
+ """PacoMind Agent SDK — Python client for remote agents."""
2
+
3
+ from .client import AgentClient
4
+ from .models import AgentConfig, NodeCertificate
5
+
6
+ __all__ = ["AgentClient", "AgentConfig", "NodeCertificate"]
@@ -0,0 +1,276 @@
1
+ """PacoMind Agent Client — WebSocket client for remote agents.
2
+
3
+ Usage:
4
+ from pacomind.agent import AgentClient
5
+
6
+ client = AgentClient(config_path="~/.pacomind/agent.json")
7
+
8
+ @client.on_initiative
9
+ async def handle_initiative(initiative):
10
+ print(f"Received: {initiative['description']}")
11
+ await client.acknowledge(initiative["id"])
12
+ result = await process_initiative(initiative)
13
+ await client.complete(initiative["id"], result=result)
14
+
15
+ await client.start()
16
+ """
17
+
18
+ import asyncio
19
+ import json
20
+ import time
21
+ from pathlib import Path
22
+ from typing import Any, Callable, Dict, Optional
23
+
24
+ import websockets
25
+
26
+ from .models import AgentConfig
27
+
28
+
29
+ class AgentClient:
30
+ """WebSocket client for remote PacoMind agents.
31
+
32
+ Handles:
33
+ - WebSocket connection with auth
34
+ - Heartbeat loop
35
+ - Initiative delivery
36
+ - Reconnection with exponential backoff
37
+ """
38
+
39
+ def __init__(
40
+ self,
41
+ config_path: str = "~/.pacomind/agent.json",
42
+ config: Optional[AgentConfig] = None,
43
+ ) -> None:
44
+ """Initialize agent client.
45
+
46
+ Args:
47
+ config_path: Path to agent config file
48
+ config: Optional pre-loaded config (skips file read)
49
+ """
50
+ if config:
51
+ self.config = config
52
+ else:
53
+ config_file = Path(config_path).expanduser()
54
+ if not config_file.exists():
55
+ raise FileNotFoundError(f"Agent config not found: {config_file}")
56
+ self.config = AgentConfig.parse_file(config_file)
57
+
58
+ self._ws: Optional[websockets.WebSocketClientProtocol] = None
59
+ self._running = False
60
+ self._seq = 0
61
+ self._pending_acks: Dict[int, asyncio.Future] = {}
62
+ self._handlers: Dict[str, Callable] = {
63
+ "initiative": None,
64
+ "config": None,
65
+ "disconnect": None,
66
+ }
67
+
68
+ # Reconnection state
69
+ self._reconnect_delay = 1.0
70
+ self._max_reconnect_delay = 60.0
71
+
72
+ def on_initiative(self, handler: Callable) -> Callable:
73
+ """Register initiative handler."""
74
+ self._handlers["initiative"] = handler
75
+ return handler
76
+
77
+ def on_config(self, handler: Callable) -> Callable:
78
+ """Register config update handler."""
79
+ self._handlers["config"] = handler
80
+ return handler
81
+
82
+ def on_disconnect(self, handler: Callable) -> Callable:
83
+ """Register disconnect handler."""
84
+ self._handlers["disconnect"] = handler
85
+ return handler
86
+
87
+ async def start(self) -> None:
88
+ """Connect to PacoMind and start message loop."""
89
+ if not self.config.websocket_url:
90
+ raise ValueError("No websocket_url in config (local mode?)")
91
+
92
+ self._running = True
93
+
94
+ while self._running:
95
+ try:
96
+ await self._connect()
97
+ await self._message_loop()
98
+ except Exception as e:
99
+ if not self._running:
100
+ break
101
+ print(f"Connection error: {e}, reconnecting in {self._reconnect_delay}s...")
102
+ await asyncio.sleep(self._reconnect_delay)
103
+ self._reconnect_delay = min(
104
+ self._reconnect_delay * 2,
105
+ self._max_reconnect_delay,
106
+ )
107
+
108
+ async def stop(self) -> None:
109
+ """Disconnect from PacoMind."""
110
+ self._running = False
111
+ if self._ws:
112
+ await self._ws.close()
113
+
114
+ async def _connect(self) -> None:
115
+ """Establish WebSocket connection with auth."""
116
+ headers = {}
117
+ if self.config.node_cert:
118
+ # Sign challenge with node cert
119
+ headers["Authorization"] = f"Bearer {self.config.node_cert.signature}"
120
+ headers["X-Agent-Id"] = self.config.agent_id
121
+
122
+ self._ws = await websockets.connect(
123
+ self.config.websocket_url,
124
+ extra_headers=headers,
125
+ ping_interval=30,
126
+ ping_timeout=10,
127
+ )
128
+ self._reconnect_delay = 1.0 # Reset on successful connection
129
+ print(f"Connected to PacoMind: {self.config.websocket_url}")
130
+
131
+ # Start heartbeat task
132
+ asyncio.create_task(self._heartbeat_loop())
133
+
134
+ async def _message_loop(self) -> None:
135
+ """Process incoming messages."""
136
+ if not self._ws:
137
+ return
138
+
139
+ async for message in self._ws:
140
+ try:
141
+ data = json.loads(message)
142
+ await self._handle_message(data)
143
+ except json.JSONDecodeError:
144
+ print(f"Invalid JSON: {message}")
145
+ except Exception as e:
146
+ print(f"Error handling message: {e}")
147
+
148
+ async def _handle_message(self, data: Dict[str, Any]) -> None:
149
+ """Handle incoming message."""
150
+ msg_type = data.get("type")
151
+ seq = data.get("seq")
152
+
153
+ # Handle ACKs for our messages
154
+ if msg_type == "ack" and seq in self._pending_acks:
155
+ self._pending_acks[seq].set_result(data)
156
+ return
157
+
158
+ # Handle initiative delivery
159
+ if msg_type == "initiative":
160
+ if self._handlers["initiative"]:
161
+ await self._handlers["initiative"](data.get("initiative", {}))
162
+ # Auto-ack receipt
163
+ await self._send_ack(seq)
164
+
165
+ # Handle config update
166
+ elif msg_type == "config":
167
+ if self._handlers["config"]:
168
+ await self._handlers["config"](data.get("config", {}))
169
+
170
+ # Handle disconnect notice
171
+ elif msg_type == "disconnect":
172
+ if self._handlers["disconnect"]:
173
+ await self._handlers["disconnect"](data.get("reason", "unknown"))
174
+ await self.stop()
175
+
176
+ # Handle ping
177
+ elif msg_type == "ping":
178
+ await self._send({"type": "pong", "seq": seq})
179
+
180
+ async def _heartbeat_loop(self) -> None:
181
+ """Send periodic heartbeats."""
182
+ # The pacomind side tracks current_assignments via the agents table
183
+ # (incremented/decremented when initiatives are assigned/completed),
184
+ # so the heartbeat does not need to carry it — the server only uses
185
+ # this message to update last_seen_at.
186
+ while self._running and self._ws:
187
+ try:
188
+ await self._send({
189
+ "type": "heartbeat",
190
+ "status": "online",
191
+ })
192
+ await asyncio.sleep(30)
193
+ except Exception:
194
+ break
195
+
196
+ async def _send(self, message: Dict[str, Any]) -> bool:
197
+ """Send message with sequencing."""
198
+ if not self._ws:
199
+ return False
200
+
201
+ self._seq += 1
202
+ message["seq"] = self._seq
203
+
204
+ try:
205
+ await self._ws.send(json.dumps(message))
206
+ return True
207
+ except Exception as e:
208
+ print(f"Send error: {e}")
209
+ return False
210
+
211
+ async def _send_ack(self, seq: Optional[int]) -> None:
212
+ """Send acknowledgment."""
213
+ await self._send({"type": "ack", "ack_seq": seq})
214
+
215
+ # --- Public API ---
216
+
217
+ async def acknowledge(self, initiative_id: str) -> bool:
218
+ """Acknowledge initiative receipt."""
219
+ return await self._send({
220
+ "type": "initiative_ack",
221
+ "initiative_id": initiative_id,
222
+ })
223
+
224
+ async def complete(
225
+ self,
226
+ initiative_id: str,
227
+ result: Optional[str] = None,
228
+ metadata: Optional[Dict[str, Any]] = None,
229
+ ) -> bool:
230
+ """Mark initiative as completed."""
231
+ return await self._send({
232
+ "type": "initiative_complete",
233
+ "initiative_id": initiative_id,
234
+ "result": result,
235
+ "result_metadata": metadata or {},
236
+ })
237
+
238
+ async def fail(
239
+ self,
240
+ initiative_id: str,
241
+ reason: str,
242
+ retry: bool = True,
243
+ ) -> bool:
244
+ """Mark initiative as failed."""
245
+ return await self._send({
246
+ "type": "initiative_fail",
247
+ "initiative_id": initiative_id,
248
+ "reason": reason,
249
+ "retry": retry,
250
+ })
251
+
252
+ async def delegate(
253
+ self,
254
+ initiative_id: str,
255
+ reason: str,
256
+ target_agent_id: Optional[str] = None,
257
+ ) -> bool:
258
+ """Delegate initiative to another agent."""
259
+ return await self._send({
260
+ "type": "initiative_delegate",
261
+ "initiative_id": initiative_id,
262
+ "reason": reason,
263
+ "target_agent_id": target_agent_id,
264
+ })
265
+
266
+ async def update_status(
267
+ self,
268
+ status: str = "online",
269
+ current_assignments: int = 0,
270
+ ) -> bool:
271
+ """Update agent status."""
272
+ return await self._send({
273
+ "type": "status_update",
274
+ "status": status,
275
+ "current_assignments": current_assignments,
276
+ })
@@ -0,0 +1,46 @@
1
+ """Agent SDK models."""
2
+
3
+ from datetime import datetime
4
+ from typing import Any, Dict, List, Optional
5
+
6
+ from pydantic import BaseModel, Field
7
+
8
+
9
+ class NodeCertificate(BaseModel):
10
+ """Node certificate structure."""
11
+
12
+ pacomind_id: str
13
+ node_id: str
14
+ public_key: Optional[str] = None # node_public_key_ed25519 in spec
15
+ issued_at: str # ISO timestamp
16
+ expires_at: Optional[str] = None # ISO timestamp
17
+ signature: str
18
+
19
+
20
+ class AgentConfig(BaseModel):
21
+ """Agent configuration file schema.
22
+
23
+ This is the structure saved to ~/.pacomind/agent.json after
24
+ running `pacomind agent connect`.
25
+ """
26
+
27
+ agent_id: str
28
+ node_id: str
29
+ pacomind_id: str
30
+ websocket_url: Optional[str] = None # For remote mode
31
+ name: str
32
+ capabilities: List[str] = Field(default_factory=list)
33
+ is_primary: bool = False
34
+ max_concurrent: int = 5
35
+ node_cert: Optional[NodeCertificate] = None
36
+ connection_mode: str = "remote"
37
+ registered_at: Optional[str] = None # ISO timestamp
38
+
39
+ # Optional fields
40
+ priority: int = 1
41
+ excluded_types: List[str] = Field(default_factory=list)
42
+ included_types: List[str] = Field(default_factory=list)
43
+ metadata: Dict[str, Any] = Field(default_factory=dict)
44
+
45
+ class Config:
46
+ extra = "allow" # Forward compatibility
@@ -0,0 +1,20 @@
1
+ """Multi-agent support for PacoMind.
2
+
3
+ Provides:
4
+ - AgentStore: Registry of connected agents
5
+ - InviteStore: Setup code management
6
+ - WebSocketManager: Remote agent connections
7
+ """
8
+
9
+ from .models import Agent, AgentStatus, AgentMetadata
10
+ from .store import AgentStore, InviteStore
11
+ from .websocket import WebSocketManager
12
+
13
+ __all__ = [
14
+ "Agent",
15
+ "AgentStatus",
16
+ "AgentMetadata",
17
+ "AgentStore",
18
+ "InviteStore",
19
+ "WebSocketManager",
20
+ ]