linkedparticles 1.172.0__tar.gz → 1.187.3__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 (852) hide show
  1. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/PKG-INFO +2 -2
  2. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/artifacts/conformance/README.md +6 -3
  3. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/artifacts/conformance/profile.yaml +73 -1
  4. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/artifacts/openapi.json +17 -1
  5. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/config.yaml.sample +137 -30
  6. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/constraints.txt +50 -39
  7. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/app.py +27 -0
  8. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/__init__.py +14 -0
  9. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/_claude_code.py +325 -6
  10. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/_progress.py +17 -0
  11. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/audit.py +13 -4
  12. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/benchmark.py +77 -32
  13. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/config.py +27 -0
  14. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/corpus.py +13 -6
  15. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/db.py +2 -1
  16. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/extract.py +20 -0
  17. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/extractor.py +39 -12
  18. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/hook.py +421 -4
  19. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/inbox.py +7 -2
  20. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/init.py +24 -1
  21. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/links.py +2 -1
  22. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/lint.py +6 -0
  23. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/memory.py +10 -8
  24. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/particle.py +2 -1
  25. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/reconcile.py +31 -5
  26. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/reindex.py +2 -2
  27. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/review.py +2 -1
  28. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/rules.py +9 -3
  29. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/subjects.py +52 -19
  30. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/synthesis_cache.py +2 -1
  31. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/client/http.py +3 -1
  32. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/daemon.py +8 -2
  33. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/equivalence.py +10 -1
  34. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/memory/loader.py +9 -0
  35. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/observer/runner.py +5 -2
  36. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/rot/runner.py +28 -4
  37. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/corpus/deposit.py +47 -0
  38. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/corpus/store.py +117 -15
  39. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/exporters/notion.py +5 -0
  40. linkedparticles-1.187.3/particles/ingest/agent_extraction.py +376 -0
  41. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/append_base.py +26 -1
  42. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/authorities/__init__.py +3 -0
  43. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/authorities/registry.py +16 -0
  44. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/authorities/wikidata.py +27 -11
  45. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/conflict_plan.py +19 -0
  46. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/narrative_merge.py +8 -4
  47. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/pair_selection.py +148 -27
  48. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/pipeline.py +462 -81
  49. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/subject_resolver.py +59 -1
  50. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/update_supersession.py +164 -7
  51. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/mcp/memory_compat/server.py +3 -0
  52. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/mcp/server.py +9 -0
  53. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/mcp/tools/write.py +44 -0
  54. linkedparticles-1.187.3/particles/network_posture.py +221 -0
  55. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/observability/setup.py +28 -2
  56. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/_quarantine.py +36 -1
  57. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/abstraction.py +10 -3
  58. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/audit.py +351 -70
  59. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/consolidation.py +276 -10
  60. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/consolidation_plan.py +67 -5
  61. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/contradiction_disclosure.py +4 -16
  62. linkedparticles-1.187.3/particles/operations/held_release.py +566 -0
  63. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/inbox.py +22 -1
  64. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/links_suggest.py +64 -43
  65. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/lint/contradictions.py +6 -3
  66. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/lint/granularity.py +3 -1
  67. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/lint/open_inconsistency.py +71 -6
  68. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/lint/orchestrator.py +14 -4
  69. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/lint/staleness.py +7 -2
  70. linkedparticles-1.187.3/particles/operations/paraphrases.py +482 -0
  71. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/query/as_of.py +16 -3
  72. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/reanchor.py +265 -61
  73. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/reconcile.py +158 -55
  74. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/spend_estimate.py +26 -18
  75. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/utility_exposure.py +67 -14
  76. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/store/event_store.py +38 -2
  77. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/store/particle_store.py +88 -5
  78. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/store/wikidata_cache.py +9 -6
  79. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/pyproject.toml +2 -2
  80. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/_client_fixtures.py +12 -0
  81. linkedparticles-1.187.3/tests/benchmark/escalation/prose-holdout-001.yaml +1229 -0
  82. linkedparticles-1.187.3/tests/fixtures/ledgerly/session-03.md +9 -0
  83. linkedparticles-1.187.3/tests/fixtures/ledgerly/session-09.md +7 -0
  84. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/fixtures/reanchor/cases.json +94 -1
  85. linkedparticles-1.187.3/tests/fixtures/reanchor/trip_plans.json +193 -0
  86. linkedparticles-1.187.3/tests/fixtures/trip_vs_move/session-04.md +7 -0
  87. linkedparticles-1.187.3/tests/fixtures/trip_vs_move/session-11.md +7 -0
  88. linkedparticles-1.187.3/tests/fixtures/trip_vs_move/session-12-moved.md +5 -0
  89. linkedparticles-1.187.3/tests/fixtures/trip_vs_move/session-12.md +5 -0
  90. linkedparticles-1.187.3/tests/fixtures/trip_vs_move/session-13.md +5 -0
  91. linkedparticles-1.187.3/tests/fixtures/trip_vs_move/session-14.md +5 -0
  92. linkedparticles-1.187.3/tests/fixtures/trip_vs_move/session-15.md +5 -0
  93. linkedparticles-1.187.3/tests/fixtures/trip_vs_move/session-16.md +5 -0
  94. linkedparticles-1.187.3/tests/fixtures/trip_vs_move/session-17.md +5 -0
  95. linkedparticles-1.187.3/tests/fixtures/trip_vs_move/window_questions.json +123 -0
  96. linkedparticles-1.187.3/tests/fixtures/update_probe/configuration_pairs.json +24 -0
  97. linkedparticles-1.187.3/tests/fixtures/update_probe/gate_pairs.json +53 -0
  98. linkedparticles-1.187.3/tests/fixtures/update_probe/gate_pairs_heldout.json +26 -0
  99. linkedparticles-1.187.3/tests/fixtures/update_probe/past_marker_heldout.json +25 -0
  100. linkedparticles-1.187.3/tests/fixtures/update_probe/past_value_pairs.json +24 -0
  101. linkedparticles-1.187.3/tests/fixtures/update_probe/stay_pairs.json +33 -0
  102. linkedparticles-1.187.3/tests/fixtures/update_probe/stay_pairs_heldout.json +20 -0
  103. linkedparticles-1.187.3/tests/test_agent_extraction_submit.py +328 -0
  104. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_api_client.py +6 -4
  105. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_audit.py +228 -25
  106. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_benchmark_rot.py +11 -4
  107. linkedparticles-1.187.3/tests/test_claude_code_agent_asks.py +181 -0
  108. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_claude_code_hook.py +226 -0
  109. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_claude_code_init.py +42 -0
  110. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_cli_audit.py +57 -1
  111. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_cli_output.py +41 -0
  112. linkedparticles-1.187.3/tests/test_cli_subjects_fix_labels.py +45 -0
  113. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_config.py +36 -2
  114. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_conflict_plan.py +30 -0
  115. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_conflict_resolution.py +78 -1
  116. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_consolidation.py +140 -3
  117. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_consolidation_plan.py +60 -0
  118. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_corpus_store.py +163 -0
  119. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_curation.py +1 -2
  120. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_curation_rulings.py +28 -0
  121. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_daemon.py +3 -3
  122. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_decide_ladder.py +60 -0
  123. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_deposit_date.py +34 -0
  124. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_egress_chokepoint.py +59 -1
  125. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_extract.py +2 -2
  126. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_extractor_registry.py +3 -1
  127. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_generic_instance_pair.py +3 -1
  128. linkedparticles-1.187.3/tests/test_held_release.py +604 -0
  129. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_inbox.py +3 -3
  130. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_ingest_authorities_wikidata.py +50 -5
  131. linkedparticles-1.187.3/tests/test_integration_ledgerly.py +184 -0
  132. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_links_suggest.py +106 -7
  133. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_llm_circuit_breaker.py +21 -0
  134. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_llm_openai_compat.py +11 -0
  135. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_mcp_routing.py +3 -2
  136. linkedparticles-1.187.3/tests/test_no_egress.py +649 -0
  137. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_observer_gate.py +3 -1
  138. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_pair_selection.py +178 -2
  139. linkedparticles-1.187.3/tests/test_paraphrases.py +673 -0
  140. linkedparticles-1.187.3/tests/test_past_value.py +73 -0
  141. linkedparticles-1.187.3/tests/test_probe_budget.py +300 -0
  142. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_probe_verdicts.py +23 -3
  143. linkedparticles-1.187.3/tests/test_reanchor.py +1890 -0
  144. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_rule_sources.py +2 -1
  145. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_second_reading.py +17 -0
  146. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_session_exposure.py +3 -2
  147. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_subjects.py +20 -0
  148. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_update_supersession.py +856 -16
  149. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_utility_exposure.py +213 -7
  150. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_wikidata_cache.py +12 -0
  151. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_wikidata_extractor.py +112 -0
  152. linkedparticles-1.172.0/tests/test_reanchor.py +0 -763
  153. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/LICENSE +0 -0
  154. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/NOTICE +0 -0
  155. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/README.md +0 -0
  156. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/env.py +0 -0
  157. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/script.py.mako +0 -0
  158. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/001_initial.py +0 -0
  159. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/002_subjects.py +0 -0
  160. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/003_wikidata_label_cache.py +0 -0
  161. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/004_source_trust.py +0 -0
  162. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/005_structured_properties.py +0 -0
  163. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/006_extractor_records.py +0 -0
  164. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/007_domain_hint.py +0 -0
  165. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/008_content_published_at.py +0 -0
  166. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/009_provenance_chunk_hash.py +0 -0
  167. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/010_context_fingerprint.py +0 -0
  168. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/011_particle_relations.py +0 -0
  169. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/012_taxonomies.py +0 -0
  170. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/013_extractor_calibration.py +0 -0
  171. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/014_corpus_follow_edges.py +0 -0
  172. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/015_synthesis_cache.py +0 -0
  173. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/016_snapshot_extraction_started_at.py +0 -0
  174. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/017_operator_events.py +0 -0
  175. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/018_contributor_refs.py +0 -0
  176. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/019_embedding_model_id.py +0 -0
  177. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/020_trust_lenses.py +0 -0
  178. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/021_registered_at_string.py +0 -0
  179. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/022_assertion_modality.py +0 -0
  180. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/023_url_mentions.py +0 -0
  181. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/024_corpus_document_supersession.py +0 -0
  182. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/025_per_provider_calibration.py +0 -0
  183. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/026_conformance_trust_cap.py +0 -0
  184. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/027_lens_decay_rules.py +0 -0
  185. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/028_utility_lens.py +0 -0
  186. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/029_retired_at.py +0 -0
  187. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/030_utility_rank_lift.py +0 -0
  188. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/031_content_norm_hash.py +0 -0
  189. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/032_utility_event_source.py +0 -0
  190. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/033_structured_claim.py +0 -0
  191. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/034_extraction_provider_model.py +0 -0
  192. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/035_prefix_extraction_properties_keys.py +0 -0
  193. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/036_curation_snapshots.py +0 -0
  194. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/037_rekey_reviewer_trust_statements.py +0 -0
  195. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/038_snapshot_superseded_by.py +0 -0
  196. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/039_observer_scope_statements.py +0 -0
  197. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/040_backfill_particle_tag_edges.py +0 -0
  198. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/041_snapshot_extraction_attempts.py +0 -0
  199. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/042_born_retired.py +0 -0
  200. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/043_snapshot_extracted_through.py +0 -0
  201. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/044_probe_verdicts.py +0 -0
  202. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/045_snapshot_extraction_components.py +0 -0
  203. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/046_probe_verdict_answer.py +0 -0
  204. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/047_snapshot_resume_whole.py +0 -0
  205. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/048_vocabulary_documents.py +0 -0
  206. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/049_modality_stamp.py +0 -0
  207. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic/versions/050_session_exposures.py +0 -0
  208. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/alembic.ini +0 -0
  209. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/artifacts/conformance/similarity_vectors.json +0 -0
  210. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/artifacts/graph/LICENSE.cytoscape.txt +0 -0
  211. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/artifacts/graph/cytoscape.min.js +0 -0
  212. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/artifacts/schemas/context.jsonld +0 -0
  213. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/artifacts/schemas/interchange.schema.json +0 -0
  214. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/artifacts/schemas/particle.schema.json +0 -0
  215. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/artifacts/schemas/shacl/CorpusSnapshotShape.ttl +0 -0
  216. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/artifacts/schemas/shacl/ParticleShape.ttl +0 -0
  217. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/artifacts/schemas/shacl/ProvenanceChainShape.ttl +0 -0
  218. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/artifacts/schemas/shacl/SubjectShape.ttl +0 -0
  219. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/artifacts/schemas/shacl/TrustStatementShape.ttl +0 -0
  220. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/artifacts/schemas/trust_lens.schema.json +0 -0
  221. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/design/tokens.css +0 -0
  222. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/_orm_modules.py +0 -0
  223. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/__init__.py +0 -0
  224. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/_middleware.py +0 -0
  225. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/_rate_limit.py +0 -0
  226. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/auth.py +0 -0
  227. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/_id_norm.py +0 -0
  228. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/_logging.py +0 -0
  229. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/_memory_projection.py +0 -0
  230. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/_output.py +0 -0
  231. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/_projection_git.py +0 -0
  232. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/_remote.py +0 -0
  233. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/_source_passage.py +0 -0
  234. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/conformance.py +0 -0
  235. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/curate.py +0 -0
  236. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/deposit.py +0 -0
  237. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/engine.py +0 -0
  238. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/events.py +0 -0
  239. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/export.py +0 -0
  240. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/import_vault.py +0 -0
  241. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/interchange.py +0 -0
  242. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/mcp.py +0 -0
  243. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/modality.py +0 -0
  244. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/project.py +0 -0
  245. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/quality.py +0 -0
  246. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/query.py +0 -0
  247. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/skills.py +0 -0
  248. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/structure.py +0 -0
  249. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/trust.py +0 -0
  250. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/cli/vocab.py +0 -0
  251. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/client/__init__.py +0 -0
  252. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/client/base.py +0 -0
  253. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/client/local.py +0 -0
  254. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/api/web_app.py +0 -0
  255. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/__init__.py +0 -0
  256. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/compare.py +0 -0
  257. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/leakage/__init__.py +0 -0
  258. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/leakage/metrics.py +0 -0
  259. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/leakage/render.py +0 -0
  260. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/leakage/runner.py +0 -0
  261. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/leakage/schema.py +0 -0
  262. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/loader.py +0 -0
  263. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/memory/__init__.py +0 -0
  264. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/memory/comparators.py +0 -0
  265. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/memory/metrics.py +0 -0
  266. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/memory/rejudge.py +0 -0
  267. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/memory/runner.py +0 -0
  268. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/memory/schema.py +0 -0
  269. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/metrics.py +0 -0
  270. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/modality/__init__.py +0 -0
  271. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/modality/loader.py +0 -0
  272. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/modality/metrics.py +0 -0
  273. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/modality/runner.py +0 -0
  274. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/modality/schema.py +0 -0
  275. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/observer/__init__.py +0 -0
  276. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/observer/generator.py +0 -0
  277. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/observer/oracle.py +0 -0
  278. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/observer/render.py +0 -0
  279. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/observer/schema.py +0 -0
  280. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/polarity/__init__.py +0 -0
  281. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/polarity/loader.py +0 -0
  282. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/polarity/metrics.py +0 -0
  283. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/polarity/runner.py +0 -0
  284. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/polarity/schema.py +0 -0
  285. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/relevance_floor/__init__.py +0 -0
  286. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/relevance_floor/harvest.py +0 -0
  287. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/relevance_floor/metrics.py +0 -0
  288. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/relevance_floor/render.py +0 -0
  289. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/relevance_floor/runner.py +0 -0
  290. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/relevance_floor/schema.py +0 -0
  291. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/resolution.py +0 -0
  292. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/rot/__init__.py +0 -0
  293. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/rot/generator.py +0 -0
  294. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/rot/oracle.py +0 -0
  295. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/rot/real_pairs.py +0 -0
  296. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/rot/render.py +0 -0
  297. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/rot/rescore.py +0 -0
  298. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/rot/schema.py +0 -0
  299. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/rot/scoring.py +0 -0
  300. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/runner.py +0 -0
  301. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/schema.py +0 -0
  302. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/validity/__init__.py +0 -0
  303. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/validity/loader.py +0 -0
  304. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/validity/metrics.py +0 -0
  305. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/validity/runner.py +0 -0
  306. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/benchmark/validity/schema.py +0 -0
  307. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/corpus/__init__.py +0 -0
  308. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/corpus/blob_fsck.py +0 -0
  309. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/corpus/blob_health.py +0 -0
  310. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/corpus/fetch.py +0 -0
  311. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/corpus/follow_edges.py +0 -0
  312. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/corpus/refresh_outcome.py +0 -0
  313. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/corpus/rule_sources.py +0 -0
  314. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/corpus/supersession.py +0 -0
  315. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/db.py +0 -0
  316. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/exporters/__init__.py +0 -0
  317. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/exporters/anki.py +0 -0
  318. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/exporters/article_synthesis/__init__.py +0 -0
  319. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/exporters/graph/__init__.py +0 -0
  320. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/exporters/graph/_assets.py +0 -0
  321. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/exporters/graph/exporter.py +0 -0
  322. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/exporters/graph/render.py +0 -0
  323. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/exporters/jsonl.py +0 -0
  324. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/exporters/logseq/__init__.py +0 -0
  325. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/exporters/logseq/exporter.py +0 -0
  326. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/exporters/logseq/format.py +0 -0
  327. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/exporters/logseq/narrative.py +0 -0
  328. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/exporters/logseq/synthesis.py +0 -0
  329. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/exporters/logseq/vault.py +0 -0
  330. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/exporters/markdown.py +0 -0
  331. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/exporters/obsidian/__init__.py +0 -0
  332. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/exporters/obsidian/exporter.py +0 -0
  333. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/exporters/obsidian/format.py +0 -0
  334. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/exporters/obsidian/narrative.py +0 -0
  335. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/exporters/obsidian/synthesis.py +0 -0
  336. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/exporters/obsidian/vault.py +0 -0
  337. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/exporters/registry.py +0 -0
  338. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/exporters/summaries.py +0 -0
  339. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/exporters/wiki.py +0 -0
  340. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/__init__.py +0 -0
  341. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/artifact_namespace.py +0 -0
  342. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/authorities/_shared.py +0 -0
  343. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/authorities/artifact.py +0 -0
  344. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/authorities/wikidata_judge.py +0 -0
  345. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/candidate_dedup.py +0 -0
  346. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/duplicate_suppression.py +0 -0
  347. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/generation.py +0 -0
  348. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/importers/__init__.py +0 -0
  349. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/importers/github.py +0 -0
  350. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/importers/hackernews.py +0 -0
  351. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/importers/mastodon.py +0 -0
  352. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/importers/nomisma.py +0 -0
  353. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/importers/numista.py +0 -0
  354. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/importers/reddit.py +0 -0
  355. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/importers/registry.py +0 -0
  356. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/importers/wikidata.py +0 -0
  357. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/observer_gate.py +0 -0
  358. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/partial_read.py +0 -0
  359. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/pending_collapse.py +0 -0
  360. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/routing.py +0 -0
  361. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/second_reading.py +0 -0
  362. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/source_passage.py +0 -0
  363. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/ingest/structure_edges.py +0 -0
  364. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/integrations/__init__.py +0 -0
  365. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/integrations/_mapping.py +0 -0
  366. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/integrations/langchain.py +0 -0
  367. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/interchange/store.py +0 -0
  368. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/mcp/__init__.py +0 -0
  369. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/mcp/memory_compat/__init__.py +0 -0
  370. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/mcp/memory_compat/graph.py +0 -0
  371. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/mcp/memory_compat/ops.py +0 -0
  372. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/mcp/observer.py +0 -0
  373. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/mcp/resources.py +0 -0
  374. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/mcp/tools/__init__.py +0 -0
  375. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/mcp/tools/corpus.py +0 -0
  376. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/mcp/tools/diagnostics.py +0 -0
  377. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/mcp/tools/events.py +0 -0
  378. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/mcp/tools/graph.py +0 -0
  379. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/mcp/tools/links_suggest.py +0 -0
  380. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/mcp/tools/lint.py +0 -0
  381. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/mcp/tools/particles.py +0 -0
  382. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/mcp/tools/query.py +0 -0
  383. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/mcp/tools/subjects.py +0 -0
  384. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/mcp/tools/taxonomy.py +0 -0
  385. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/observability/__init__.py +0 -0
  386. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/observability/spans.py +0 -0
  387. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/__init__.py +0 -0
  388. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/_llm.py +0 -0
  389. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/_scope.py +0 -0
  390. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/agent_write.py +0 -0
  391. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/candidate_pairs.py +0 -0
  392. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/cascade.py +0 -0
  393. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/closure_measure.py +0 -0
  394. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/corpus_delete.py +0 -0
  395. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/corpus_refresh.py +0 -0
  396. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/curation/__init__.py +0 -0
  397. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/curation/cards.py +0 -0
  398. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/curation/collect.py +0 -0
  399. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/curation/leverage.py +0 -0
  400. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/curation/precision.py +0 -0
  401. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/curation/rulings.py +0 -0
  402. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/curation/session.py +0 -0
  403. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/curation/snapshot.py +0 -0
  404. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/deposit.py +0 -0
  405. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/deposit_suggest.py +0 -0
  406. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/digest.py +0 -0
  407. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/entailment.py +0 -0
  408. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/extract.py +0 -0
  409. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/graph_view.py +0 -0
  410. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/lint/__init__.py +0 -0
  411. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/lint/assertion_quality.py +0 -0
  412. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/lint/citation_signal.py +0 -0
  413. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/lint/contestedness.py +0 -0
  414. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/lint/coverage.py +0 -0
  415. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/lint/modality.py +0 -0
  416. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/lint/retirement.py +0 -0
  417. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/lint/wikidata_links.py +0 -0
  418. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/llm_spend.py +0 -0
  419. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/modality.py +0 -0
  420. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/narrative.py +0 -0
  421. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/narrative_synthesis.py +0 -0
  422. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/observer_scope.py +0 -0
  423. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/probe_ledger.py +0 -0
  424. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/projection/__init__.py +0 -0
  425. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/projection/manifest.py +0 -0
  426. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/projection/project.py +0 -0
  427. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/quality.py +0 -0
  428. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/query/__init__.py +0 -0
  429. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/query/contested.py +0 -0
  430. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/query/contestedness.py +0 -0
  431. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/query/decay_policy.py +0 -0
  432. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/query/effective_confidence.py +0 -0
  433. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/query/gaps.py +0 -0
  434. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/query/grounding.py +0 -0
  435. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/query/main.py +0 -0
  436. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/query/observer_scope.py +0 -0
  437. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/query/owner_policy.py +0 -0
  438. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/query/precedence.py +0 -0
  439. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/query/rank.py +0 -0
  440. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/query/respond.py +0 -0
  441. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/query/source_info.py +0 -0
  442. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/query/source_trust.py +0 -0
  443. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/query/stance.py +0 -0
  444. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/query/structural.py +0 -0
  445. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/query/utility_policy.py +0 -0
  446. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/query/vocabulary_report.py +0 -0
  447. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/reindex.py +0 -0
  448. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/reindex_estimate.py +0 -0
  449. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/reindex_scope.py +0 -0
  450. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/retract.py +0 -0
  451. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/review.py +0 -0
  452. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/source_passage.py +0 -0
  453. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/structure.py +0 -0
  454. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/subject_relink.py +0 -0
  455. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/trust.py +0 -0
  456. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/utility_feedback.py +0 -0
  457. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/utility_mining.py +0 -0
  458. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/utility_sweep.py +0 -0
  459. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/version_guard.py +0 -0
  460. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/operations/vocabulary.py +0 -0
  461. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/render/article_synthesis/__init__.py +0 -0
  462. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/render/article_synthesis/cache.py +0 -0
  463. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/render/article_synthesis/layer_a.py +0 -0
  464. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/render/article_synthesis/layer_b.py +0 -0
  465. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/render/article_synthesis/orchestrate.py +0 -0
  466. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/render/article_synthesis/render.py +0 -0
  467. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/render/article_synthesis/topic.py +0 -0
  468. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/skills/__init__.py +0 -0
  469. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/skills/asking-the-store.md +0 -0
  470. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/skills/keeping-it-clean.md +0 -0
  471. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/skills/recording-a-belief.md +0 -0
  472. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/sql_safety.py +0 -0
  473. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/store/__init__.py +0 -0
  474. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/store/curation_snapshot_store.py +0 -0
  475. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/store/extractor_store.py +0 -0
  476. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/store/lens_store.py +0 -0
  477. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/store/observer_scope_join.py +0 -0
  478. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/store/observer_scope_store.py +0 -0
  479. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/store/probe_verdict_store.py +0 -0
  480. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/store/relation_store.py +0 -0
  481. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/store/session_exposure_store.py +0 -0
  482. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/store/subject_cache.py +0 -0
  483. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/store/subject_store.py +0 -0
  484. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/store/synthesis_cache_store.py +0 -0
  485. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/store/taxonomy_store.py +0 -0
  486. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/store/trust_store.py +0 -0
  487. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/store/url_mention_store.py +0 -0
  488. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/store/utility_store.py +0 -0
  489. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/particles/store/vocabulary_store.py +0 -0
  490. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/__init__.py +0 -0
  491. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/_capped_http.py +0 -0
  492. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/_claude_projects.py +0 -0
  493. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/_observer_scope.py +0 -0
  494. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/_upstream.py +0 -0
  495. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/_write_probe.py +0 -0
  496. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/benchmark/abstraction/premise-scope-negative-001.yaml +0 -0
  497. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/benchmark/calibration/numismatic-calibration-001.yaml +0 -0
  498. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/benchmark/calibration/prose-calibration-001.yaml +0 -0
  499. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/benchmark/calibration/rdf-calibration-001.yaml +0 -0
  500. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/benchmark/memory/fixtures/NOTICE +0 -0
  501. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/benchmark/memory/fixtures/longmemeval_oracle_synthetic.json +0 -0
  502. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/benchmark/modality/journal-modality-seed-001.yaml +0 -0
  503. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/benchmark/polarity/adr-polarity-seed-001.yaml +0 -0
  504. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/benchmark/resolution/ordinary-prose-001.yaml +0 -0
  505. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/benchmark/suites/hackernews-seed-001.yaml +0 -0
  506. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/benchmark/suites/numismatic-seed-001.yaml +0 -0
  507. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/benchmark/suites/prose-article-seed-001.yaml +0 -0
  508. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/benchmark/suites/rdf-seed-001.yaml +0 -0
  509. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/benchmark/suites/reddit-seed-001.yaml +0 -0
  510. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/benchmark/suites/wikidata-seed-001.yaml +0 -0
  511. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/benchmark/validity/durability-seed-001.yaml +0 -0
  512. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/MANIFEST.yaml +0 -0
  513. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/hackernews-thread-001/content.bin +0 -0
  514. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/hackernews-thread-001/manifest.yaml +0 -0
  515. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/hackernews-thread-001/snapshot.json +0 -0
  516. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/journal-entry-001/content.bin +0 -0
  517. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/journal-entry-001/manifest.yaml +0 -0
  518. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/journal-entry-001/snapshot.json +0 -0
  519. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/mastodon-thread-001/content.bin +0 -0
  520. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/mastodon-thread-001/manifest.yaml +0 -0
  521. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/mastodon-thread-001/snapshot.json +0 -0
  522. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/mcp-memory-export-001/content.bin +0 -0
  523. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/mcp-memory-export-001/manifest.yaml +0 -0
  524. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/mcp-memory-export-001/snapshot.json +0 -0
  525. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/nomisma-concept-001/content.bin +0 -0
  526. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/nomisma-concept-001/manifest.yaml +0 -0
  527. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/nomisma-concept-001/snapshot.json +0 -0
  528. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/numista-coin-001/content.bin +0 -0
  529. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/numista-coin-001/manifest.yaml +0 -0
  530. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/numista-coin-001/snapshot.json +0 -0
  531. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/numista-issuer-001/content.bin +0 -0
  532. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/numista-issuer-001/manifest.yaml +0 -0
  533. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/numista-issuer-001/snapshot.json +0 -0
  534. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/numista-listing-001/content.bin +0 -0
  535. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/numista-listing-001/manifest.yaml +0 -0
  536. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/numista-listing-001/snapshot.json +0 -0
  537. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/rdf-graph-001/content.bin +0 -0
  538. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/rdf-graph-001/manifest.yaml +0 -0
  539. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/rdf-graph-001/snapshot.json +0 -0
  540. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/reddit-thread-001/content.bin +0 -0
  541. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/reddit-thread-001/manifest.yaml +0 -0
  542. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/reddit-thread-001/snapshot.json +0 -0
  543. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/taxonomy-coins-001/content.bin +0 -0
  544. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/taxonomy-coins-001/manifest.yaml +0 -0
  545. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/taxonomy-coins-001/snapshot.json +0 -0
  546. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/trust-lens-001/content.bin +0 -0
  547. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/trust-lens-001/manifest.yaml +0 -0
  548. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/trust-lens-001/snapshot.json +0 -0
  549. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/web-article-001/content.bin +0 -0
  550. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/web-article-001/manifest.yaml +0 -0
  551. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/web-article-001/snapshot.json +0 -0
  552. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/web-article-002/content.bin +0 -0
  553. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/web-article-002/manifest.yaml +0 -0
  554. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/web-article-002/snapshot.json +0 -0
  555. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/web-essay-001/content.bin +0 -0
  556. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/web-essay-001/manifest.yaml +0 -0
  557. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/web-essay-001/snapshot.json +0 -0
  558. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/web-interview-001/content.bin +0 -0
  559. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/web-interview-001/manifest.yaml +0 -0
  560. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/web-interview-001/snapshot.json +0 -0
  561. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/wikidata-entity-001/content.bin +0 -0
  562. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/wikidata-entity-001/manifest.yaml +0 -0
  563. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conformance/fixtures/wikidata-entity-001/snapshot.json +0 -0
  564. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/conftest.py +0 -0
  565. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/dogfood/__init__.py +0 -0
  566. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/dogfood/corpus.yaml +0 -0
  567. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/dogfood/llm_responses.yaml +0 -0
  568. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/dogfood/record.py +0 -0
  569. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/fixtures/llm_wiki_vault/.obsidian/app.json +0 -0
  570. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/fixtures/llm_wiki_vault/1933 Double Eagle.md +0 -0
  571. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/fixtures/llm_wiki_vault/Coin Silver Standards.md +0 -0
  572. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/fixtures/llm_wiki_vault/Flowing Hair Dollar.md +0 -0
  573. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/fixtures/llm_wiki_vault/Grading and Condition.md +0 -0
  574. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/fixtures/llm_wiki_vault/Home.md +0 -0
  575. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/fixtures/llm_wiki_vault/Mint Records.md +0 -0
  576. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/fixtures/llm_wiki_vault/Morgan Dollar.md +0 -0
  577. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/fixtures/llm_wiki_vault/Most Expensive Coins.md +0 -0
  578. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/fixtures/llm_wiki_vault/Philadelphia Mint.md +0 -0
  579. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/fixtures/llm_wiki_vault/Seated Liberty Dollar.md +0 -0
  580. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/fixtures/llm_wiki_vault/US Mint History.md +0 -0
  581. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/fixtures/llm_wiki_vault/_GROUND_TRUTH.md +0 -0
  582. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/fixtures/llm_wiki_vault/_templates/Coin Note Template.md +0 -0
  583. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/fixtures/llm_wiki_vault/inventory.csv +0 -0
  584. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/fixtures/memory_dir/MEMORY.md +0 -0
  585. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/fixtures/memory_dir/deploy-pipeline.md +0 -0
  586. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/fixtures/memory_dir/orion-api.md +0 -0
  587. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/fixtures/moved_city/session-04.md +0 -0
  588. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/fixtures/moved_city/session-07.md +0 -0
  589. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/fixtures/scope/normative-rule-file.md +0 -0
  590. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/fixtures/scope/normative-rule-file.recorded.json +0 -0
  591. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/fixtures/scope/rule-file-agents-md.md +0 -0
  592. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/fixtures/scope/rule-file-agents-md.recorded.json +0 -0
  593. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/mcp/memory-tool-schema.json +0 -0
  594. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/mcp/resource-schema.json +0 -0
  595. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/mcp/tool-schema.json +0 -0
  596. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_abstraction.py +0 -0
  597. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_abstraction_premise_scope.py +0 -0
  598. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_account_level_failure.py +0 -0
  599. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_agent_write_operator.py +0 -0
  600. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_anki.py +0 -0
  601. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_api_middleware.py +0 -0
  602. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_api_rate_limit.py +0 -0
  603. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_app.py +0 -0
  604. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_append_base.py +0 -0
  605. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_append_delta.py +0 -0
  606. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_article_synthesis.py +0 -0
  607. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_artifact_authority.py +0 -0
  608. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_as_of.py +0 -0
  609. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_auth.py +0 -0
  610. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_benchmark_compare.py +0 -0
  611. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_benchmark_leakage.py +0 -0
  612. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_benchmark_memory.py +0 -0
  613. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_benchmark_memory_comparators.py +0 -0
  614. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_benchmark_modality.py +0 -0
  615. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_benchmark_observer.py +0 -0
  616. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_benchmark_polarity.py +0 -0
  617. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_benchmark_relevance_floor.py +0 -0
  618. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_benchmark_resolution.py +0 -0
  619. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_benchmark_runner.py +0 -0
  620. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_benchmark_schema.py +0 -0
  621. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_benchmark_validity.py +0 -0
  622. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_blob_fsck.py +0 -0
  623. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_blob_health.py +0 -0
  624. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_calibration.py +0 -0
  625. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_calibration_integration.py +0 -0
  626. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_calibration_version.py +0 -0
  627. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_candidate_dedup.py +0 -0
  628. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_candidate_pairs.py +0 -0
  629. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_cascade.py +0 -0
  630. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_cascade_gate.py +0 -0
  631. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_claims.py +0 -0
  632. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_claude_code_binding.py +0 -0
  633. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_claude_code_project.py +0 -0
  634. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_cli.py +0 -0
  635. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_cli_benchmark_memory.py +0 -0
  636. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_cli_curate.py +0 -0
  637. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_cli_extract.py +0 -0
  638. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_cli_lint.py +0 -0
  639. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_cli_logging.py +0 -0
  640. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_cli_memory.py +0 -0
  641. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_cli_memory_rebuild_utility.py +0 -0
  642. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_cli_memory_useful.py +0 -0
  643. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_cli_modality.py +0 -0
  644. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_cli_particle_retract.py +0 -0
  645. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_cli_particle_source.py +0 -0
  646. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_cli_progress.py +0 -0
  647. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_cli_query.py +0 -0
  648. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_cli_reindex_estimate.py +0 -0
  649. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_cli_structure.py +0 -0
  650. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_cli_suggested_commands.py +0 -0
  651. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_cli_vocab.py +0 -0
  652. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_closure_measure.py +0 -0
  653. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_co_evidential_cli.py +0 -0
  654. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_co_evidential_merge.py +0 -0
  655. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_co_evidential_query_collapse.py +0 -0
  656. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_component_stamp.py +0 -0
  657. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_conflict_review.py +0 -0
  658. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_conformance.py +0 -0
  659. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_conformance_cli.py +0 -0
  660. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_conformance_profile.py +0 -0
  661. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_consolidation_cadence.py +0 -0
  662. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_contested_badge.py +0 -0
  663. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_context_fingerprint.py +0 -0
  664. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_context_schema_sync.py +0 -0
  665. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_contradiction_disclosure.py +0 -0
  666. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_contributor_ref.py +0 -0
  667. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_corpus_cat.py +0 -0
  668. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_corpus_delete.py +0 -0
  669. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_corpus_delete_operation.py +0 -0
  670. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_corpus_fetch.py +0 -0
  671. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_corpus_fsck_cli.py +0 -0
  672. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_corpus_links_cli.py +0 -0
  673. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_corpus_retract.py +0 -0
  674. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_curation_precision.py +0 -0
  675. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_curation_snapshot.py +0 -0
  676. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_db.py +0 -0
  677. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_decay.py +0 -0
  678. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_decay_policy.py +0 -0
  679. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_deposit_follow.py +0 -0
  680. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_deposit_project_keys.py +0 -0
  681. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_deposit_routing.py +0 -0
  682. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_deposit_suggest.py +0 -0
  683. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_deposit_versioned.py +0 -0
  684. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_docstrings.py +0 -0
  685. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_document_scope.py +0 -0
  686. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_dogfood_corpus.py +0 -0
  687. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_dogfood_record.py +0 -0
  688. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_duplicate_suppression.py +0 -0
  689. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_embedding_model_marker.py +0 -0
  690. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_engine_cli.py +0 -0
  691. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_equivalence.py +0 -0
  692. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_export_ownership.py +0 -0
  693. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_exporter_quality_threshold.py +0 -0
  694. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_exporters_registry.py +0 -0
  695. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_extraction_components.py +0 -0
  696. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_extraction_provider_model.py +0 -0
  697. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_extractor_ref.py +0 -0
  698. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_fingerprint.py +0 -0
  699. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_generation_cascade.py +0 -0
  700. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_github_extractor.py +0 -0
  701. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_granularity.py +0 -0
  702. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_graph_exporter.py +0 -0
  703. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_graph_layout.py +0 -0
  704. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_hackernews_extractor.py +0 -0
  705. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_http.py +0 -0
  706. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_id_norm.py +0 -0
  707. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_incremental.py +0 -0
  708. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_ingest_authorities_shared.py +0 -0
  709. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_integration_abstraction_scope.py +0 -0
  710. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_integration_audit.py +0 -0
  711. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_integration_journal_modality.py +0 -0
  712. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_integration_llm.py +0 -0
  713. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_integration_memory_benchmark.py +0 -0
  714. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_integration_moved_city.py +0 -0
  715. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_integration_polarity.py +0 -0
  716. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_integration_polarity_benchmark.py +0 -0
  717. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_integration_rot_benchmark.py +0 -0
  718. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_integration_validity_benchmark.py +0 -0
  719. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_integrations_langchain.py +0 -0
  720. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_interchange.py +0 -0
  721. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_journal.py +0 -0
  722. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_jsonl_exporter.py +0 -0
  723. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_jsonld_context.py +0 -0
  724. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_layer_boundary.py +0 -0
  725. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_links_dedup.py +0 -0
  726. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_links_unmerge.py +0 -0
  727. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_lint.py +0 -0
  728. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_lint_callouts.py +0 -0
  729. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_lint_citation_signal.py +0 -0
  730. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_lint_contested.py +0 -0
  731. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_lint_contestedness.py +0 -0
  732. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_lint_granularity.py +0 -0
  733. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_lint_open_inconsistency.py +0 -0
  734. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_llm.py +0 -0
  735. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_llm_batch.py +0 -0
  736. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_llm_spend.py +0 -0
  737. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_logseq_exporter.py +0 -0
  738. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_markdown.py +0 -0
  739. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_mastodon_extractor.py +0 -0
  740. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_mcp_links_suggest.py +0 -0
  741. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_mcp_memory.py +0 -0
  742. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_mcp_server.py +0 -0
  743. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_mcp_write.py +0 -0
  744. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_memory_compat.py +0 -0
  745. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_memory_projection.py +0 -0
  746. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_memory_rescope_cli.py +0 -0
  747. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_migration_035_properties_keys.py +0 -0
  748. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_migration_037_reviewer_statement_key.py +0 -0
  749. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_migration_040_tag_edges.py +0 -0
  750. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_migration_042_born_retired.py +0 -0
  751. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_migration_043_extracted_through.py +0 -0
  752. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_migration_045_extraction_components.py +0 -0
  753. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_migration_047_resume_whole.py +0 -0
  754. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_migration_preview.py +0 -0
  755. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_modality.py +0 -0
  756. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_narrative.py +0 -0
  757. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_narrative_cli.py +0 -0
  758. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_narrative_merge.py +0 -0
  759. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_narrative_synthesis.py +0 -0
  760. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_no_derived_columns.py +0 -0
  761. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_nomisma.py +0 -0
  762. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_notion_exporter.py +0 -0
  763. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_numista.py +0 -0
  764. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_observability.py +0 -0
  765. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_observer_scope.py +0 -0
  766. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_observer_scope_surfaces.py +0 -0
  767. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_obsidian.py +0 -0
  768. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_openapi_snapshot.py +0 -0
  769. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_operations_scope.py +0 -0
  770. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_operator_events.py +0 -0
  771. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_operator_verb_routing.py +0 -0
  772. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_owner_policy.py +0 -0
  773. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_packaging.py +0 -0
  774. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_partial_read.py +0 -0
  775. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_particle_store.py +0 -0
  776. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_pending_collapse.py +0 -0
  777. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_plan_collapse.py +0 -0
  778. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_plan_unmerge_group.py +0 -0
  779. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_polarity.py +0 -0
  780. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_predicate_profile.py +0 -0
  781. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_project_import.py +0 -0
  782. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_projection.py +0 -0
  783. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_projection_git.py +0 -0
  784. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_projection_manifest.py +0 -0
  785. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_property_keys.py +0 -0
  786. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_provenance_append_only.py +0 -0
  787. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_quality.py +0 -0
  788. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_query.py +0 -0
  789. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_query_contestedness.py +0 -0
  790. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_query_gaps.py +0 -0
  791. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_query_grounded.py +0 -0
  792. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_query_negative_retrieval.py +0 -0
  793. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_query_source_trust.py +0 -0
  794. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_query_stance.py +0 -0
  795. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_rdf.py +0 -0
  796. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_reconcile.py +0 -0
  797. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_reddit.py +0 -0
  798. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_refresh_outcome.py +0 -0
  799. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_reindex.py +0 -0
  800. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_reindex_append_only.py +0 -0
  801. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_reindex_estimate.py +0 -0
  802. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_reindex_scope.py +0 -0
  803. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_relation_store.py +0 -0
  804. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_relevance.py +0 -0
  805. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_resolver_alias_attach.py +0 -0
  806. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_retired_value_quarantine.py +0 -0
  807. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_review.py +0 -0
  808. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_routing.py +0 -0
  809. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_scope_exemption.py +0 -0
  810. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_session_state.py +0 -0
  811. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_skills.py +0 -0
  812. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_source_passage.py +0 -0
  813. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_spend_budget.py +0 -0
  814. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_spend_estimate.py +0 -0
  815. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_sql_safety.py +0 -0
  816. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_stance.py +0 -0
  817. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_store_adjacent_paths.py +0 -0
  818. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_store_engine.py +0 -0
  819. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_structural_query.py +0 -0
  820. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_structure_edges.py +0 -0
  821. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_structured_claim.py +0 -0
  822. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_subject_authority.py +0 -0
  823. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_subject_relink.py +0 -0
  824. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_subject_scope.py +0 -0
  825. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_subjects_split.py +0 -0
  826. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_synthesis_cache_integration.py +0 -0
  827. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_synthesis_cache_store.py +0 -0
  828. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_synthesis_topic.py +0 -0
  829. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_taxonomy_extractor.py +0 -0
  830. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_taxonomy_schema.py +0 -0
  831. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_taxonomy_store.py +0 -0
  832. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_transitions.py +0 -0
  833. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_trust_lens.py +0 -0
  834. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_url_mention_store.py +0 -0
  835. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_url_safety.py +0 -0
  836. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_utility.py +0 -0
  837. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_utility_feedback.py +0 -0
  838. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_utility_mining.py +0 -0
  839. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_utility_policy.py +0 -0
  840. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_utility_store.py +0 -0
  841. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_vault_import.py +0 -0
  842. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_version_guard.py +0 -0
  843. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_vocabulary.py +0 -0
  844. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_vocabulary_report.py +0 -0
  845. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_vocabulary_store.py +0 -0
  846. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_web_app.py +0 -0
  847. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_web_clipper_import.py +0 -0
  848. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_wiki_exporter.py +0 -0
  849. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_wikidata_candidate_selection.py +0 -0
  850. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_wikidata_importer.py +0 -0
  851. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_wikidata_judge.py +0 -0
  852. {linkedparticles-1.172.0 → linkedparticles-1.187.3}/tests/test_wikidata_link_confidence.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: linkedparticles
3
- Version: 1.172.0
3
+ Version: 1.187.3
4
4
  Summary: Auditable, provenance-tracked memory for AI agents — the Particles engine and its API, CLI, and MCP surfaces
5
5
  Project-URL: Homepage, https://linkedparticles.org
6
6
  Project-URL: Documentation, https://docs.linkedparticles.org
@@ -39,7 +39,7 @@ Requires-Dist: fastapi>=0.111
39
39
  Requires-Dist: filelock>=3.13
40
40
  Requires-Dist: greenlet>=3.5.0
41
41
  Requires-Dist: jinja2>=3.1
42
- Requires-Dist: linkedparticles-core==1.172.0
42
+ Requires-Dist: linkedparticles-core==1.187.3
43
43
  Requires-Dist: mcp<2,>=1.27.1
44
44
  Requires-Dist: opentelemetry-api>=1.27
45
45
  Requires-Dist: python-multipart>=0.0.9
@@ -65,11 +65,14 @@ its own types from them.
65
65
  `assertion_modality` (the §1.7 truth-apt gate; truth-apt iff `FALSIFIABLE`)
66
66
  and `uncertainty_nature` (the §1 `ALEATORY` exclusion) — plus the
67
67
  caller-resolved inputs (the replacement signal, the two supersession
68
- directions, both trust scores, the differential threshold, and whether the
69
- store has a single trust order). Omitted keys take the documented defaults.
68
+ directions, both trust scores, the differential threshold, whether the
69
+ store has a single trust order, and the rung 2.5 `update_order`). Omitted
70
+ keys take the documented defaults.
70
71
  Because the family is about *ordering*, the vectors deliberately set up rungs
71
72
  to compete: an `ALEATORY` pair with both a supersession edge and a decisive
72
- trust gap must still come out `INCONSISTENT`.
73
+ trust gap must still come out `INCONSISTENT`. Rung 2.5 reads `ALEATORY` on
74
+ the newer claim only, the side the sign of `update_order` names:
75
+ the `cl-17` vectors pin all four arrangements.
73
76
  - `context_fingerprint` carries `(id, status)` rows rather than a bare id list,
74
77
  so all three steps are pinned: the ACTIVE-only filter (step 1), the
75
78
  lexicographic sort (step 2 — one vector supplies its ids out of order), and
@@ -453,11 +453,41 @@ test_vectors:
453
453
  trust_score_new: 0.20
454
454
  update_order: 1
455
455
  expected: SUPERSEDED_BY_EXISTING
456
- # rung 1 outranks 2.5: an ALEATORY pair is never retired by a timestamp.
456
+ # a settled report retires an earlier aleatory claim: rung 2.5
457
+ # reads ALEATORY on the newer claim only. Rungs 1.5 and 2 pick between
458
+ # sources and keep the exclusion on either side; a same-lineage update
459
+ # whose newer claim states the matter as settled is how aleatory
460
+ # uncertainty is resolved.
457
461
  - id: cl-17
458
462
  existing: { assertion_modality: FALSIFIABLE, uncertainty_nature: ALEATORY }
459
463
  new: { assertion_modality: FALSIFIABLE, uncertainty_nature: EPISTEMIC }
460
464
  update_order: 1
465
+ expected: UPDATE_SUPERSEDES
466
+ # a newer ALEATORY claim (a forecast) never retires a settled one.
467
+ - id: cl-17b
468
+ existing: { assertion_modality: FALSIFIABLE, uncertainty_nature: EPISTEMIC }
469
+ new: { assertion_modality: FALSIFIABLE, uncertainty_nature: ALEATORY }
470
+ update_order: 1
471
+ expected: INCONSISTENT
472
+ # two ALEATORY claims (a revised forecast, or a BOTH_VALID pair): nothing
473
+ # has been settled, so neither retires the other.
474
+ - id: cl-17c
475
+ existing: { assertion_modality: FALSIFIABLE, uncertainty_nature: ALEATORY }
476
+ new: { assertion_modality: FALSIFIABLE, uncertainty_nature: ALEATORY }
477
+ update_order: 1
478
+ expected: INCONSISTENT
479
+ # "newer" follows the sign of update_order: an out-of-order ALEATORY new
480
+ # claim is the older one, and the settled existing claim retires it.
481
+ - id: cl-17d
482
+ existing: { assertion_modality: FALSIFIABLE, uncertainty_nature: EPISTEMIC }
483
+ new: { assertion_modality: FALSIFIABLE, uncertainty_nature: ALEATORY }
484
+ update_order: -1
485
+ expected: UPDATE_SUPERSEDED_BY_EXISTING
486
+ # the -1 mirror of cl-17b: the newer side is the ALEATORY existing claim.
487
+ - id: cl-17e
488
+ existing: { assertion_modality: FALSIFIABLE, uncertainty_nature: ALEATORY }
489
+ new: { assertion_modality: FALSIFIABLE, uncertainty_nature: EPISTEMIC }
490
+ update_order: -1
461
491
  expected: INCONSISTENT
462
492
  # the probe outranks 2.5: no contradiction, no supersession.
463
493
  - id: cl-18
@@ -472,6 +502,48 @@ test_vectors:
472
502
  new: { assertion_modality: FALSIFIABLE, uncertainty_nature: EPISTEMIC }
473
503
  update_order: 1
474
504
  expected: CORROBORATES
505
+ # rung 2.5 rests on the same-slot check: with no contradiction
506
+ # signal, a settled same-slot update still resolves to the newer claim.
507
+ # Two claims giving one slot successive values can both be true at their
508
+ # own times, so the contradiction probe is not the test of an update.
509
+ - id: cl-20
510
+ existing: { assertion_modality: FALSIFIABLE, uncertainty_nature: EPISTEMIC }
511
+ new: { assertion_modality: FALSIFIABLE, uncertainty_nature: EPISTEMIC }
512
+ has_contradiction_signal: false
513
+ update_order: 1
514
+ same_slot_update: true
515
+ expected: UPDATE_SUPERSEDES
516
+ # its mirror: an out-of-order (older) new claim is the one retired.
517
+ - id: cl-21
518
+ existing: { assertion_modality: FALSIFIABLE, uncertainty_nature: EPISTEMIC }
519
+ new: { assertion_modality: FALSIFIABLE, uncertainty_nature: EPISTEMIC }
520
+ has_contradiction_signal: false
521
+ update_order: -1
522
+ same_slot_update: true
523
+ expected: UPDATE_SUPERSEDED_BY_EXISTING
524
+ # the ALEATORY condition reads the newer claim, as at rung 2.5.
525
+ - id: cl-22
526
+ existing: { assertion_modality: FALSIFIABLE, uncertainty_nature: EPISTEMIC }
527
+ new: { assertion_modality: FALSIFIABLE, uncertainty_nature: ALEATORY }
528
+ has_contradiction_signal: false
529
+ update_order: 1
530
+ same_slot_update: true
531
+ expected: CORROBORATES
532
+ # the truth-apt gate outranks the update answer too.
533
+ - id: cl-23
534
+ existing: { assertion_modality: EVALUATIVE, uncertainty_nature: EPISTEMIC }
535
+ new: { assertion_modality: FALSIFIABLE, uncertainty_nature: EPISTEMIC }
536
+ has_contradiction_signal: false
537
+ update_order: 1
538
+ same_slot_update: true
539
+ expected: CORROBORATES
540
+ # no lineage order, no update: the answer alone retires nothing.
541
+ - id: cl-24
542
+ existing: { assertion_modality: FALSIFIABLE, uncertainty_nature: EPISTEMIC }
543
+ new: { assertion_modality: FALSIFIABLE, uncertainty_nature: EPISTEMIC }
544
+ has_contradiction_signal: false
545
+ same_slot_update: true
546
+ expected: CORROBORATES
475
547
 
476
548
  # --- §16.1 context fingerprint -----------------------------------
477
549
  # Procedure: (1) take every ACTIVE particle in the store, (2) sort the UUIDs
@@ -2785,6 +2785,17 @@
2785
2785
  "title": "Semantic Skipped",
2786
2786
  "type": "boolean"
2787
2787
  },
2788
+ "semantic_skipped_reason": {
2789
+ "anyOf": [
2790
+ {
2791
+ "type": "string"
2792
+ },
2793
+ {
2794
+ "type": "null"
2795
+ }
2796
+ ],
2797
+ "title": "Semantic Skipped Reason"
2798
+ },
2788
2799
  "summary": {
2789
2800
  "additionalProperties": {
2790
2801
  "type": "integer"
@@ -3121,6 +3132,8 @@
3121
3132
  "EXTRACT_RUN",
3122
3133
  "INCONSISTENCY_CLOSED",
3123
3134
  "DEPENDENT_CLAIM_EXAMINED",
3135
+ "UPDATE_SUPERSESSION",
3136
+ "HELD_CLAIM_EXAMINED",
3124
3137
  "ABSTRACTION_CANDIDATE",
3125
3138
  "ABSTRACTION_RESOLVED",
3126
3139
  "DUPLICATES_MERGED",
@@ -3134,7 +3147,10 @@
3134
3147
  "VOCABULARY_PROPOSED",
3135
3148
  "VOCABULARY_RULED",
3136
3149
  "MODALITY_RECLASSIFIED",
3137
- "MODALITY_GRANT_QUEUED"
3150
+ "MODALITY_GRANT_QUEUED",
3151
+ "AGENT_EXTRACTION_ASKED",
3152
+ "AGENT_EXTRACTION_CONTINUED",
3153
+ "AGENT_EXTRACTION_SUBMITTED"
3138
3154
  ],
3139
3155
  "title": "OperatorEventType",
3140
3156
  "type": "string"
@@ -83,6 +83,30 @@ http: # [client]
83
83
  # Reddit curl subprocess as --max-filesize. Default 100 MiB.
84
84
  max_bytes: 104857600
85
85
 
86
+ # The no-egress posture. Running the LLM locally is not enough to
87
+ # keep data on the machine: subject resolution reaches Wikidata, URL deposits
88
+ # fetch, the encoder downloads from Hugging Face, and any hosted LLM purpose
89
+ # left configured calls out. This one switch governs all of them.
90
+ # open no check (the default; today's behaviour)
91
+ # none refuse every outbound connection and name lookup, loopback included
92
+ # allowlist refuse everything except the destinations listed in `allow`
93
+ # Local is never inferred: an endpoint counts as local only when it matches an
94
+ # entry. `localhost` and `127.0.0.1` are different entries, and a private
95
+ # address is not local unless listed. `particles config validate` and
96
+ # `particles hook doctor` report what the posture switches off.
97
+ network: # [client]
98
+ egress: open
99
+ # Each entry: `host` is an IP literal, a CIDR block, or an exact host name
100
+ # (no wildcards); `port` is optional (omitted means any port).
101
+ allow: []
102
+ # Example: a model server on this machine and one on the LAN.
103
+ # egress: allowlist
104
+ # allow:
105
+ # - host: localhost
106
+ # port: 11434
107
+ # - host: 192.168.1.20
108
+ # port: 8000
109
+
86
110
  # FastAPI app limits (defense-in-depth for the HTTP surface).
87
111
  api: # [engine]
88
112
  # Cap on the accepted *inbound* request body, in bytes. Bodies larger than
@@ -311,6 +335,36 @@ claude_code: # [engine]
311
335
  # current session (covers SIGKILL / crashes / an unreachable store at a
312
336
  # prior session end). 0 disables the sweep.
313
337
  catchup_limit: 5
338
+ # Agent-side extraction: a Stop hook asks the session's own agent
339
+ # to extract a span of its deposited transcript, through the
340
+ # `extraction_submit` MCP tool. The user's plan pays; no API key is needed
341
+ # for extraction. Defaults come from the 2026-10-09 offline replay and store
342
+ # query (docs/benchmarks/agent-extraction-defaults-2026-10-09.md).
343
+ agent_extraction:
344
+ # off | shadow | on. shadow asks and verifies but writes and marks
345
+ # nothing, logging what would have happened.
346
+ mode: "off"
347
+ # Ask when the distilled transcript has grown this much past what was
348
+ # extracted (replay: about 1.7 asks per active hour).
349
+ min_new_chars: 8000
350
+ # Seconds between asks in one session.
351
+ min_interval_seconds: 600
352
+ # Waive the interval while more than one span is owed and the last ask
353
+ # was answered with progress (its span is not owed again).
354
+ catch_up: true
355
+ # Asks per session where a background extractor can take the rest. A
356
+ # keyless install is never capped.
357
+ max_asks_per_session: 6
358
+ # Largest span one ask carries; its text rides in the ask.
359
+ max_span_chars: 40000
360
+ # An ask unanswered after this many seconds expires.
361
+ ask_ttl_seconds: 900
362
+ # A submission covers its span with at least this many accepted claims per
363
+ # 1000 characters (10th percentile of the general extractor's deltas).
364
+ min_claims_per_kchar: 2.7
365
+ # ...and at most this share of candidates dropped for missing evidence.
366
+ # Placeholder until the shadow week measures it.
367
+ max_evidence_drop_ratio: 0.5
314
368
 
315
369
  # Agent-memory product surface — the MEMORY.md projection.
316
370
  # Namespace shared with the claude_code hook integration above:
@@ -414,6 +468,8 @@ llm: # [client]
414
468
  # base_url: https://api.openai.com/v1 # the adapter appends /chat/completions
415
469
  # max_tokens_param: max_completion_tokens # reasoning models reject max_tokens
416
470
  # send_temperature: false # …and non-default temperatures
471
+ # reasoning_effort: minimal # sent as-is when set; unset sends nothing.
472
+ # # "none" turns qwen3 thinking off on Ollama
417
473
  # structured_output: strict # strict-dialect JSON schemas (see below)
418
474
  # deepseek:
419
475
  # base_url: https://api.deepseek.com/v1
@@ -1048,6 +1104,19 @@ reconciliation: # [engine]
1048
1104
  subject_floor: 0.45
1049
1105
  # Contradiction probes per extracted claim from this search, at most.
1050
1106
  max_candidates: 3
1107
+ # Paraphrases pass: when an update retires a claim, the other
1108
+ # ACTIVE claims about the same subject at this cosine to the retired claim
1109
+ # or above are put to the update probe against the claim that replaced it,
1110
+ # and retired when both readings say the value changed.
1111
+ paraphrase_floor: 0.70
1112
+ # Candidates asked per retirement, highest cosine first. 0 turns the pass off.
1113
+ max_paraphrases: 3
1114
+ # an update is established by the update probe, read twice, not
1115
+ # by the contradiction probe, so a dated "moved to X" retires the old home.
1116
+ # A pair whose older claim records a past value ("until 2025", "used to")
1117
+ # still needs the contradiction probe too. false restores the pre-1.187.0
1118
+ # gate on every pair.
1119
+ same_slot_admits: true
1051
1120
 
1052
1121
  # Content age decay — effective_confidence multiplier based on publication age..
1053
1122
  # Omit a source type entirely to disable decay for it.
@@ -1332,8 +1401,10 @@ subjects: # [engine]
1332
1401
  # docs/benchmarks/subject-resolution-judge-2026-10-01.md. With no LLM key or
1333
1402
  # an unusable reply it takes the top hit; set top_hit for no model call at all.
1334
1403
  wikidata_candidate_selection: llm_judge
1335
- # Output budget of one llm_judge call.
1336
- wikidata_judge_max_tokens: 200
1404
+ # Output budget of one llm_judge call. The reply is one short JSON object;
1405
+ # the rest is room for a model that thinks by default, whose thinking spends
1406
+ # from this budget. Lowering it can leave such a model with no text.
1407
+ wikidata_judge_max_tokens: 4096
1337
1408
  # How many search hits the llm_judge is shown (5 to 50). The ambiguity gate
1338
1409
  # and the other selection values still read the first five, so which names
1339
1410
  # reach the model is unchanged; the extra hits come with the same one search
@@ -1378,6 +1449,13 @@ subjects: # [engine]
1378
1449
  # ("the owner", or a first name) adds them to persona_aliases, or merges
1379
1450
  # the Subjects with `particles subjects merge`.
1380
1451
  persona_source_tags: [memory-file]
1452
+ # speaker references a first-person claim may open on. A claim
1453
+ # from a persona source (not JOURNAL) that opens on one of these, or on
1454
+ # persona_canonical_name, gains the speaker as a subject when the extractor
1455
+ # left it out, and is also keyed on the speaker for update supersession.
1456
+ # An opener counts only when it is also in persona_aliases, so add a house
1457
+ # term ("the owner") to both lists. An empty list turns this off.
1458
+ persona_openers: [the user, the speaker]
1381
1459
  # Source types that skip live-ontology authorities (Wikidata) during
1382
1460
  # resolution. Chat-transcript harvests and personal journals name private
1383
1461
  # referents by construction: ~none of the names resolve and the fruitless,
@@ -1937,51 +2015,60 @@ audit: # [engine]
1937
2015
  max_contradiction_verifications: 25
1938
2016
  # Output budget of one second reading. llm.verification defaults to a model
1939
2017
  # that may think before it answers, and the thinking spends from this budget.
2018
+ # The update probe's second reading, before an update retires a claim, uses
2019
+ # this budget and the retry below as well.
1940
2020
  verify_max_tokens: 1024
1941
2021
  # A second reading cut at verify_max_tokens (or empty, the budget spent on
1942
2022
  # thinking) is re-issued once at this larger budget; a reply still cut
1943
2023
  # leaves its flag unverified. At or below verify_max_tokens disables it.
1944
2024
  verify_retry_max_tokens: 4096
1945
2025
  # Assumptions behind the dollar range and wall time the estimate prints
1946
- # (priced from llm.price_per_mtok; each figure is disclosed with it). Measured
1947
- # on 2026-09-25: a first-run audit of 96 Claude Code memory files (~53k
1948
- # source tokens) into a fresh store, claude-sonnet-5 extraction at
1949
- # extraction.max_tokens 16384 with the retry at 20000 (since raised to 32000
1950
- # and 64000), claude-haiku-4-5
1951
- # probes, a 200-probe cap. It made 104 extraction calls averaging ~7,000
1952
- # output tokens each (mostly thinking, so nearly flat in the source size),
1953
- # retried 8 of the 96 first calls, made 374 semantic-lint calls (the 200
1954
- # audit probes plus ~174 §6.6 probes during extraction), billed $7.97, and
1955
- # took 96 minutes. The estimate before this re-basing printed $1.92-3.57.
2026
+ # (priced from llm.price_per_mtok; each figure is disclosed with it). Fitted
2027
+ # to two measured claude-sonnet-5 runs: 96 Claude Code memory files (~2.2k
2028
+ # characters each; 104 calls, $7.97, 96 minutes, 2026-09-25) and 6 active
2029
+ # ADRs (13-22k characters each; 11 chunked calls plus 2 retries, 317k output
2030
+ # tokens, about 7 claims per 1,000 characters, 2026-10-04).
1956
2031
  #
1957
- # Expected output tokens per extraction call, retries averaged in. The
1958
- # per-model mapping is keyed like llm.price_per_mtok and wins over the
1959
- # scalar; the 2026-09 provider survey measured ~3,600 per call on
1960
- # claude-haiku-4-5, for example:
1961
- # estimate_output_tokens_per_extraction_call_by_model: {claude-haiku-4-5: 3600}
1962
- estimate_output_tokens_per_extraction_call: 7000
1963
- estimate_output_tokens_per_extraction_call_by_model: {}
1964
- # The expected range runs from (1 - spread) x that figure with no retries to
1965
- # (1 + spread) x it with the expected retries. The ceiling is every call at
1966
- # extraction.max_tokens plus the expected retries at
2032
+ # Output per extraction call is a fixed part plus a part proportional to the
2033
+ # characters the call reads: ~6,000 for a memory note, ~31,600 for a full
2034
+ # 15,000-character chunk of a dense design document. The estimate only
2035
+ # counts the files the run will extract: an unchanged file already
2036
+ # extracted is skipped and the skip is disclosed.
2037
+ estimate_output_tokens_per_call_base: 1600
2038
+ estimate_output_tokens_per_source_char: 2.0
2039
+ # Multiplies both figures for an extraction model that writes more or less
2040
+ # than claude-sonnet-5, keyed like llm.price_per_mtok. The 2026-09 provider
2041
+ # survey measured about 0.55 of sonnet's output on claude-haiku-4-5:
2042
+ # estimate_output_scale_by_model: {claude-haiku-4-5: 0.55}
2043
+ estimate_output_scale_by_model: {}
2044
+ # The expected range takes every call at (1 - spread) up to every call at
2045
+ # (1 + spread) of its figure. A call whose output passes
2046
+ # extraction.max_tokens at that end is billed that whole budget plus a retry
2047
+ # at extraction.retry_max_tokens, and one that passes the retry budget too
2048
+ # is disclosed as at risk of losing the claims past the cut. The ceiling is
2049
+ # every call at extraction.max_tokens plus the high end's retries at
1967
2050
  # extraction.retry_max_tokens.
1968
2051
  estimate_output_spread: 0.25
1969
- # Fraction of extraction calls retried at extraction.retry_max_tokens (8 of
1970
- # 96 in the measured run, at the old 16384 first budget, so a conservative
1971
- # bound now). Ignored when the retry is disabled.
2052
+ # Fraction of extraction calls retried for any reason (empty or unparseable
2053
+ # replies as well as cut ones), a floor under the length retries above: 8
2054
+ # of 96 in the memory run, at the old 16384 first budget, so a conservative
2055
+ # bound. Ignored when the retry is disabled.
1972
2056
  estimate_extraction_retry_rate: 0.083
1973
2057
  # §6.6 contradiction probes the extraction pipeline makes per extraction
1974
2058
  # call, on top of the capped audit probes. Uncapped and density-dependent.
1975
2059
  estimate_reconcile_probes_per_extraction_call: 1.8
1976
2060
  # One contradiction probe: instruction + two claims in, a one-sentence reason
1977
- # and a verdict line out (the probe call's own max_tokens is 250, so the
1978
- # output figure is a bound; the measured run averaged ~305 in, ~56 out).
2061
+ # and a verdict line out (the measured run, on a model that did not think,
2062
+ # averaged ~305 in, ~56 out). An expectation, not a bound: the probe's own
2063
+ # max_tokens leaves a thinking model room, and thinking is billed as output.
2064
+ # Raise it if a run's usage line shows probes averaging more.
1979
2065
  estimate_probe_input_tokens: 350
1980
2066
  estimate_probe_output_tokens: 250
1981
- # Wall time per call; calls run one at a time. 50 s per extraction call and
1982
- # 1.5 s per probe reproduce the measured run's 96 minutes (the total is
2067
+ # Wall time; calls run one at a time. Extraction is timed by the output it
2068
+ # writes: 125 tokens a second and 1.5 s per probe reproduce the memory run's
2069
+ # 96 minutes and the 22 minutes one 49k-character ADR took (the totals are
1983
2070
  # measured, the split between the two is assumed).
1984
- estimate_seconds_per_extraction_call: 50
2071
+ estimate_extraction_output_tokens_per_second: 125
1985
2072
  estimate_seconds_per_probe: 1.5
1986
2073
  # One second reading: instruction + two claims with their passages in, and
1987
2074
  # the call's own budget (verify_max_tokens, 1024) out as a bound; the
@@ -2017,6 +2104,11 @@ consolidation: # [engine]
2017
2104
  # Pass 1 per-run cap; a capped run discloses the remainder and the next run
2018
2105
  # continues (level-triggered — the corpus is the state).
2019
2106
  max_pending_entries: 20
2107
+ # Pass 1 priority class: entries carrying any of these tags
2108
+ # (rule files, Claude Code memory files) take the cap's slots first, so a
2109
+ # file edited during the day is extracted that night. The cap is unchanged;
2110
+ # transcripts fill what remains. [] restores plain longest-owed order.
2111
+ priority_tags: [rule-file, memory-file]
2020
2112
  # Pass 1 pooled batching: run the capped set as concurrent
2021
2113
  # per-snapshot tasks whose LLM requests merge into one Message
2022
2114
  # Batches job at 50% price (batch mechanics reuse the llm.batch.* knobs;
@@ -2043,6 +2135,9 @@ consolidation: # [engine]
2043
2135
  # spent on a pair the update rung can actually act on (the sweep pre-filters
2044
2136
  # by lineage and date), so the budget goes further than the figure above.
2045
2137
  max_update_probes: 100
2138
+ # Per-run cap on the paraphrases pass's update probes, first
2139
+ # readings only. A capped run resumes at the next retirement on the next run.
2140
+ max_paraphrase_probes: 30
2046
2141
  # Cycle lock. The kernel holds consolidate.lock for the whole
2047
2142
  # cycle: a live cycle is never reclaimed, and a crashed one frees it at once.
2048
2143
  # Minutes after which a skipped caller warns on stderr that the holder may
@@ -2125,6 +2220,18 @@ consolidation: # [engine]
2125
2220
  max_candidates_per_retirement: 8
2126
2221
  # Second readings, and so writes, per run.
2127
2222
  max_restatements_per_run: 20
2223
+ # Held-claim release: a newer claim held quarantined behind a
2224
+ # stored claim (a rung-3 record) is re-checked once an update, the re-anchor
2225
+ # pass or the document sweep retires that stored claim. It is released
2226
+ # (minted ACTIVE, the record closed) only when no ACTIVE claim still
2227
+ # contradicts it; otherwise nothing changes, and the record's curation card
2228
+ # names what blocks it. The pass never retires a claim.
2229
+ release:
2230
+ enabled: true
2231
+ # Records examined per run, oldest retirement first. Each costs one
2232
+ # contradiction probe and at most one second reading per pair (the nearest
2233
+ # claim plus up to reconciliation.update_supersession.max_candidates).
2234
+ max_records: 10
2128
2235
  # Run-level batch-wait budget. llm.batch.max_wait_seconds bounds
2129
2236
  # one Message Batches job; this bounds the total one run waits on all of
2130
2237
  # them. Each batch waits at most the balance left; below the floor, the