linkedparticles-core 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 (221) hide show
  1. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/PKG-INFO +1 -1
  2. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/artifacts/conformance/README.md +6 -3
  3. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/artifacts/conformance/profile.yaml +73 -1
  4. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/constraints.txt +50 -39
  5. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/config.py +313 -52
  6. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/conformance/profile.py +1 -0
  7. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/conformance/runner.py +1 -0
  8. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/conflict_resolution.py +89 -20
  9. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/contradiction_disclosure.py +9 -1
  10. linkedparticles_core-1.187.3/particles/core/held_release.py +166 -0
  11. linkedparticles_core-1.187.3/particles/core/past_value.py +46 -0
  12. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/reanchor.py +90 -8
  13. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/schema.py +8 -0
  14. linkedparticles_core-1.187.3/particles/egress.py +341 -0
  15. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/embeddings.py +32 -3
  16. linkedparticles_core-1.187.3/particles/extraction/agent.py +457 -0
  17. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/calibration.py +139 -4
  18. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/general.py +7 -4
  19. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/modality.py +6 -1
  20. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/registry.py +7 -0
  21. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/structure.py +5 -1
  22. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/wikidata.py +78 -31
  23. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/http.py +56 -1
  24. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/llm/__init__.py +12 -0
  25. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/llm/adapters/openai_compat.py +14 -1
  26. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/llm/breaker.py +52 -10
  27. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/llm/client.py +10 -1
  28. linkedparticles_core-1.187.3/particles/llm/logprobs.py +180 -0
  29. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/llm/registry.py +66 -0
  30. linkedparticles_core-1.187.3/particles/llm/replay.py +584 -0
  31. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/llm/usage.py +59 -17
  32. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/secrets.py +11 -0
  33. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/url_safety.py +19 -1
  34. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/pyproject.toml +1 -1
  35. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/_client_fixtures.py +12 -0
  36. linkedparticles_core-1.187.3/tests/test_calibration_isotonic.py +117 -0
  37. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/test_conformance_validator.py +4 -0
  38. linkedparticles_core-1.187.3/tests/test_core_held_release.py +146 -0
  39. linkedparticles_core-1.187.3/tests/test_egress_policy.py +198 -0
  40. linkedparticles_core-1.187.3/tests/test_extraction_agent.py +246 -0
  41. linkedparticles_core-1.187.3/tests/test_llm_logprobs.py +192 -0
  42. linkedparticles_core-1.187.3/tests/test_llm_replay.py +423 -0
  43. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/test_llm_usage.py +8 -0
  44. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/LICENSE +0 -0
  45. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/NOTICE +0 -0
  46. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/README.md +0 -0
  47. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/artifacts/conformance/similarity_vectors.json +0 -0
  48. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/artifacts/schemas/context.jsonld +0 -0
  49. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/artifacts/schemas/interchange.schema.json +0 -0
  50. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/artifacts/schemas/particle.schema.json +0 -0
  51. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/artifacts/schemas/shacl/CorpusSnapshotShape.ttl +0 -0
  52. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/artifacts/schemas/shacl/ParticleShape.ttl +0 -0
  53. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/artifacts/schemas/shacl/ProvenanceChainShape.ttl +0 -0
  54. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/artifacts/schemas/shacl/SubjectShape.ttl +0 -0
  55. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/artifacts/schemas/shacl/TrustStatementShape.ttl +0 -0
  56. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/artifacts/schemas/trust_lens.schema.json +0 -0
  57. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/__init__.py +0 -0
  58. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/conformance/__init__.py +0 -0
  59. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/conformance/_resources.py +0 -0
  60. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/conformance/contract.py +0 -0
  61. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/conformance/fixtures.py +0 -0
  62. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/conformance/jsonschema.py +0 -0
  63. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/conformance/shacl.py +0 -0
  64. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/conformance/types.py +0 -0
  65. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/conformance/validator.py +0 -0
  66. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/__init__.py +0 -0
  67. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/_resources.py +0 -0
  68. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/cascade_gate.py +0 -0
  69. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/claims.py +0 -0
  70. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/closure_measure.py +0 -0
  71. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/conflict_review.py +0 -0
  72. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/consolidation_cadence.py +0 -0
  73. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/duplicate_key.py +0 -0
  74. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/equivalence.py +0 -0
  75. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/fingerprint.py +0 -0
  76. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/generics.py +0 -0
  77. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/granularity.py +0 -0
  78. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/jsonld_context.py +0 -0
  79. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/modality.py +0 -0
  80. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/observer_scope.py +0 -0
  81. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/predicate_profile.py +0 -0
  82. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/probe_verdict.py +0 -0
  83. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/progress.py +0 -0
  84. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/provenance.py +0 -0
  85. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/scoring/__init__.py +0 -0
  86. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/scoring/confidence.py +0 -0
  87. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/scoring/decay.py +0 -0
  88. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/scoring/relevance.py +0 -0
  89. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/scoring/utility.py +0 -0
  90. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/spend_budget.py +0 -0
  91. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/stance.py +0 -0
  92. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/status.py +0 -0
  93. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/vocabulary.py +0 -0
  94. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/vocabulary_jsonld.py +0 -0
  95. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/core/vocabulary_report.py +0 -0
  96. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/__init__.py +0 -0
  97. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/append_delta.py +0 -0
  98. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/components.py +0 -0
  99. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/docstrings.py +0 -0
  100. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/github/__init__.py +0 -0
  101. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/github/_shared.py +0 -0
  102. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/github/gist.py +0 -0
  103. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/github/pages.py +0 -0
  104. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/github/repo.py +0 -0
  105. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/hackernews.py +0 -0
  106. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/incremental.py +0 -0
  107. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/journal.py +0 -0
  108. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/mastodon.py +0 -0
  109. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/mcp_memory.py +0 -0
  110. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/migration_preview.py +0 -0
  111. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/nomisma.py +0 -0
  112. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/numista/__init__.py +0 -0
  113. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/numista/_shared.py +0 -0
  114. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/numista/coin.py +0 -0
  115. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/numista/issuer.py +0 -0
  116. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/numista/listing.py +0 -0
  117. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/polarity.py +0 -0
  118. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/property_keys.py +0 -0
  119. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/rdf.py +0 -0
  120. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/reddit.py +0 -0
  121. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/scope.py +0 -0
  122. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/session_state.py +0 -0
  123. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/subject_gate.py +0 -0
  124. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/subject_scope.py +0 -0
  125. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/taxonomy.py +0 -0
  126. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/tool_turns.py +0 -0
  127. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/trust_lens.py +0 -0
  128. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/extraction/vocabulary.py +0 -0
  129. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/interchange/__init__.py +0 -0
  130. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/interchange/codec.py +0 -0
  131. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/interchange/jsonl.py +0 -0
  132. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/interchange/yaml_ld.py +0 -0
  133. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/llm/adapters/__init__.py +0 -0
  134. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/llm/adapters/anthropic.py +0 -0
  135. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/llm/adapters/local.py +0 -0
  136. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/llm/batch_budget.py +0 -0
  137. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/llm/errors.py +0 -0
  138. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/llm/fencing.py +0 -0
  139. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/llm/pool.py +0 -0
  140. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/llm/spend_budget.py +0 -0
  141. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/py.typed +0 -0
  142. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/render/__init__.py +0 -0
  143. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/render/markdown.py +0 -0
  144. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/particles/url_canonical.py +0 -0
  145. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/__init__.py +0 -0
  146. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/_upstream.py +0 -0
  147. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/MANIFEST.yaml +0 -0
  148. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/hackernews-thread-001/content.bin +0 -0
  149. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/hackernews-thread-001/manifest.yaml +0 -0
  150. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/hackernews-thread-001/snapshot.json +0 -0
  151. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/journal-entry-001/content.bin +0 -0
  152. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/journal-entry-001/manifest.yaml +0 -0
  153. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/journal-entry-001/snapshot.json +0 -0
  154. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/mastodon-thread-001/content.bin +0 -0
  155. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/mastodon-thread-001/manifest.yaml +0 -0
  156. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/mastodon-thread-001/snapshot.json +0 -0
  157. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/mcp-memory-export-001/content.bin +0 -0
  158. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/mcp-memory-export-001/manifest.yaml +0 -0
  159. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/mcp-memory-export-001/snapshot.json +0 -0
  160. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/nomisma-concept-001/content.bin +0 -0
  161. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/nomisma-concept-001/manifest.yaml +0 -0
  162. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/nomisma-concept-001/snapshot.json +0 -0
  163. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/numista-coin-001/content.bin +0 -0
  164. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/numista-coin-001/manifest.yaml +0 -0
  165. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/numista-coin-001/snapshot.json +0 -0
  166. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/numista-issuer-001/content.bin +0 -0
  167. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/numista-issuer-001/manifest.yaml +0 -0
  168. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/numista-issuer-001/snapshot.json +0 -0
  169. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/numista-listing-001/content.bin +0 -0
  170. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/numista-listing-001/manifest.yaml +0 -0
  171. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/numista-listing-001/snapshot.json +0 -0
  172. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/rdf-graph-001/content.bin +0 -0
  173. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/rdf-graph-001/manifest.yaml +0 -0
  174. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/rdf-graph-001/snapshot.json +0 -0
  175. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/reddit-thread-001/content.bin +0 -0
  176. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/reddit-thread-001/manifest.yaml +0 -0
  177. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/reddit-thread-001/snapshot.json +0 -0
  178. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/taxonomy-coins-001/content.bin +0 -0
  179. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/taxonomy-coins-001/manifest.yaml +0 -0
  180. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/taxonomy-coins-001/snapshot.json +0 -0
  181. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/trust-lens-001/content.bin +0 -0
  182. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/trust-lens-001/manifest.yaml +0 -0
  183. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/trust-lens-001/snapshot.json +0 -0
  184. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/web-article-001/content.bin +0 -0
  185. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/web-article-001/manifest.yaml +0 -0
  186. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/web-article-001/snapshot.json +0 -0
  187. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/web-article-002/content.bin +0 -0
  188. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/web-article-002/manifest.yaml +0 -0
  189. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/web-article-002/snapshot.json +0 -0
  190. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/web-essay-001/content.bin +0 -0
  191. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/web-essay-001/manifest.yaml +0 -0
  192. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/web-essay-001/snapshot.json +0 -0
  193. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/web-interview-001/content.bin +0 -0
  194. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/web-interview-001/manifest.yaml +0 -0
  195. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/web-interview-001/snapshot.json +0 -0
  196. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/wikidata-entity-001/content.bin +0 -0
  197. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/wikidata-entity-001/manifest.yaml +0 -0
  198. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conformance/fixtures/wikidata-entity-001/snapshot.json +0 -0
  199. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/conftest.py +0 -0
  200. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/fixtures/scope/normative-rule-file.md +0 -0
  201. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/fixtures/scope/normative-rule-file.recorded.json +0 -0
  202. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/fixtures/scope/rule-file-agents-md.md +0 -0
  203. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/fixtures/scope/rule-file-agents-md.recorded.json +0 -0
  204. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/test_confidence.py +0 -0
  205. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/test_config_client_sections.py +0 -0
  206. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/test_config_sample.py +0 -0
  207. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/test_conformance_fixture_gen.py +0 -0
  208. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/test_conformance_similarity_vectors.py +0 -0
  209. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/test_core_contradiction_disclosure.py +0 -0
  210. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/test_core_observer_scope.py +0 -0
  211. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/test_core_provenance.py +0 -0
  212. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/test_core_vocabulary.py +0 -0
  213. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/test_embeddings.py +0 -0
  214. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/test_extraction_vision.py +0 -0
  215. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/test_interchange_schema.py +0 -0
  216. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/test_llm_batch_budget.py +0 -0
  217. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/test_llm_pool.py +0 -0
  218. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/test_schema.py +0 -0
  219. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/test_secrets.py +0 -0
  220. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/test_url_canonical.py +0 -0
  221. {linkedparticles_core-1.172.0 → linkedparticles_core-1.187.3}/tests/test_validity_extraction.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: linkedparticles-core
3
- Version: 1.172.0
3
+ Version: 1.187.3
4
4
  Summary: Store-free client library for Particles: define, validate, serialize, and extract provenance-tracked belief particles
5
5
  Project-URL: Homepage, https://linkedparticles.org
6
6
  Project-URL: Documentation, https://docs.linkedparticles.org
@@ -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
@@ -10,13 +10,14 @@ annotated-doc==0.0.5
10
10
  # typer
11
11
  annotated-types==0.8.0
12
12
  # via pydantic
13
- anthropic==1.9.0
13
+ anthropic==1.11.0
14
14
  # via linkedparticles
15
15
  anyio==4.14.2 ; python_full_version < '3.15'
16
16
  # via
17
17
  # anthropic
18
18
  # httpx
19
19
  # httpx2
20
+ # langsmith
20
21
  # mcp
21
22
  # sse-starlette
22
23
  # starlette
@@ -26,6 +27,7 @@ anyio==4.15.1 ; python_full_version >= '3.15'
26
27
  # anthropic
27
28
  # httpx
28
29
  # httpx2
30
+ # langsmith
29
31
  # mcp
30
32
  # sse-starlette
31
33
  # starlette
@@ -50,19 +52,24 @@ cffi==2.1.1 ; platform_python_implementation != 'PyPy'
50
52
  charset-normalizer==3.5.1
51
53
  # via requests
52
54
  click==8.5.0
53
- # via uvicorn
55
+ # via
56
+ # huggingface-hub
57
+ # uvicorn
58
+ cloudpickle==3.1.2
59
+ # via joblib
54
60
  colorama==0.4.6 ; sys_platform == 'win32'
55
61
  # via
56
- # click
57
62
  # tqdm
58
63
  # typer
59
64
  cryptography==50.0.1
60
65
  # via pyjwt
66
+ distro==1.9.0
67
+ # via langsmith
61
68
  docstring-parser==0.18.0
62
69
  # via anthropic
63
- fastapi==0.141.1
70
+ fastapi==0.142.2
64
71
  # via linkedparticles
65
- filelock==4.0.6
72
+ filelock==4.0.12
66
73
  # via
67
74
  # huggingface-hub
68
75
  # linkedparticles
@@ -98,15 +105,16 @@ httptools==0.8.0
98
105
  # via uvicorn
99
106
  httpx==0.28.1
100
107
  # via
101
- # huggingface-hub
102
108
  # langchain-core
103
- # langsmith
104
109
  # linkedparticles
105
110
  # mcp
106
111
  httpx-sse==0.4.3
107
112
  # via mcp
108
113
  httpx2==2.13.1
109
- # via anthropic
114
+ # via
115
+ # anthropic
116
+ # huggingface-hub
117
+ # langsmith
110
118
  httpx2-jsfetch==1.0 ; python_full_version >= '3.12' and sys_platform == 'emscripten'
111
119
  # via httpx2
112
120
  huggingface-hub==2.0.0
@@ -140,7 +148,7 @@ jsonschema==4.26.0
140
148
  # mcp
141
149
  jsonschema-specifications==2025.9.1
142
150
  # via jsonschema
143
- langchain-core==1.6.5
151
+ langchain-core==1.6.7
144
152
  # via linkedparticles
145
153
  langchain-protocol==0.0.19
146
154
  # via langchain-core
@@ -162,7 +170,7 @@ mcp==1.30.0
162
170
  # via linkedparticles
163
171
  mdurl==0.1.2
164
172
  # via markdown-it-py
165
- mpmath==1.4.1
173
+ mpmath==1.3.0
166
174
  # via sympy
167
175
  narwhals==2.26.0
168
176
  # via scikit-learn
@@ -175,8 +183,9 @@ numpy==2.4.6
175
183
  # scipy
176
184
  # sentence-transformers
177
185
  # transformers
178
- opentelemetry-api==1.45.0
186
+ opentelemetry-api==1.45.1
179
187
  # via
188
+ # fastapi
180
189
  # linkedparticles
181
190
  # opentelemetry-exporter-http-transport
182
191
  # opentelemetry-exporter-otlp-proto-http
@@ -188,41 +197,41 @@ opentelemetry-api==1.45.0
188
197
  # opentelemetry-instrumentation-sqlalchemy
189
198
  # opentelemetry-sdk
190
199
  # opentelemetry-semantic-conventions
191
- opentelemetry-exporter-http-transport==0.66b0
200
+ opentelemetry-exporter-http-transport==0.66b1
192
201
  # via opentelemetry-exporter-otlp-proto-http
193
- opentelemetry-exporter-otlp-common==0.66b0
202
+ opentelemetry-exporter-otlp-common==0.66b1
194
203
  # via opentelemetry-exporter-otlp-proto-http
195
- opentelemetry-exporter-otlp-proto-common==1.45.0
204
+ opentelemetry-exporter-otlp-proto-common==1.45.1
196
205
  # via opentelemetry-exporter-otlp-proto-http
197
- opentelemetry-exporter-otlp-proto-http==1.45.0
206
+ opentelemetry-exporter-otlp-proto-http==1.45.1
198
207
  # via linkedparticles
199
- opentelemetry-instrumentation==0.66b0
208
+ opentelemetry-instrumentation==0.66b1
200
209
  # via
201
210
  # opentelemetry-instrumentation-asgi
202
211
  # opentelemetry-instrumentation-fastapi
203
212
  # opentelemetry-instrumentation-httpx
204
213
  # opentelemetry-instrumentation-logging
205
214
  # opentelemetry-instrumentation-sqlalchemy
206
- opentelemetry-instrumentation-asgi==0.66b0
215
+ opentelemetry-instrumentation-asgi==0.66b1
207
216
  # via opentelemetry-instrumentation-fastapi
208
- opentelemetry-instrumentation-fastapi==0.66b0
217
+ opentelemetry-instrumentation-fastapi==0.66b1
209
218
  # via linkedparticles
210
- opentelemetry-instrumentation-httpx==0.66b0
219
+ opentelemetry-instrumentation-httpx==0.66b1
211
220
  # via linkedparticles
212
- opentelemetry-instrumentation-logging==0.66b0
221
+ opentelemetry-instrumentation-logging==0.66b1
213
222
  # via linkedparticles
214
- opentelemetry-instrumentation-sqlalchemy==0.66b0
223
+ opentelemetry-instrumentation-sqlalchemy==0.66b1
215
224
  # via linkedparticles
216
- opentelemetry-proto==1.45.0
225
+ opentelemetry-proto==1.45.1
217
226
  # via
218
227
  # opentelemetry-exporter-otlp-proto-common
219
228
  # opentelemetry-exporter-otlp-proto-http
220
- opentelemetry-sdk==1.45.0
229
+ opentelemetry-sdk==1.45.1
221
230
  # via
222
231
  # linkedparticles
223
232
  # opentelemetry-exporter-otlp-common
224
233
  # opentelemetry-exporter-otlp-proto-http
225
- opentelemetry-semantic-conventions==0.66b0
234
+ opentelemetry-semantic-conventions==0.66b1
226
235
  # via
227
236
  # opentelemetry-instrumentation
228
237
  # opentelemetry-instrumentation-asgi
@@ -231,7 +240,7 @@ opentelemetry-semantic-conventions==0.66b0
231
240
  # opentelemetry-instrumentation-logging
232
241
  # opentelemetry-instrumentation-sqlalchemy
233
242
  # opentelemetry-sdk
234
- opentelemetry-util-http==0.66b0
243
+ opentelemetry-util-http==0.66b1
235
244
  # via
236
245
  # opentelemetry-instrumentation-asgi
237
246
  # opentelemetry-instrumentation-fastapi
@@ -266,7 +275,7 @@ pydantic==2.13.5
266
275
  # linkedparticles
267
276
  # mcp
268
277
  # pydantic-settings
269
- pydantic-core==2.49.0
278
+ pydantic-core==2.46.5
270
279
  # via pydantic
271
280
  pydantic-settings==2.15.0
272
281
  # via mcp
@@ -280,7 +289,7 @@ pyparsing==3.3.3
280
289
  # via rdflib
281
290
  pypdf==6.19.0
282
291
  # via linkedparticles
283
- pypdfium2==5.13.0
292
+ pypdfium2==5.14.0
284
293
  # via linkedparticles
285
294
  pyshacl==0.40.1
286
295
  # via linkedparticles
@@ -315,6 +324,8 @@ regex==2026.9.29
315
324
  requests==2.34.2
316
325
  # via
317
326
  # langsmith
327
+ # opentelemetry-exporter-http-transport
328
+ # opentelemetry-exporter-otlp-proto-http
318
329
  # requests-toolbelt
319
330
  requests-toolbelt==1.0.0
320
331
  # via langsmith
@@ -342,8 +353,10 @@ shellingham==1.5.4
342
353
  six==1.17.0
343
354
  # via warcio
344
355
  sniffio==1.3.1
345
- # via anthropic
346
- sqlalchemy==2.1.1
356
+ # via
357
+ # anthropic
358
+ # langsmith
359
+ sqlalchemy==2.1.3
347
360
  # via
348
361
  # alembic
349
362
  # linkedparticles
@@ -360,15 +373,15 @@ tenacity==9.1.4
360
373
  # via langchain-core
361
374
  threadpoolctl==3.7.0
362
375
  # via scikit-learn
363
- tokenizers==0.23.2
376
+ tokenizers==0.23.3
364
377
  # via
365
378
  # sentence-transformers
366
379
  # transformers
367
- torch==2.14.0 ; sys_platform == 'darwin'
380
+ torch==2.14.1 ; sys_platform == 'darwin'
368
381
  # via
369
382
  # linkedparticles
370
383
  # sentence-transformers
371
- torch==2.14.0+cpu ; sys_platform != 'darwin'
384
+ torch==2.14.1+cpu ; sys_platform != 'darwin'
372
385
  # via
373
386
  # linkedparticles
374
387
  # sentence-transformers
@@ -377,15 +390,14 @@ tqdm==4.70.1
377
390
  # huggingface-hub
378
391
  # sentence-transformers
379
392
  # transformers
380
- transformers==5.17.0
393
+ transformers==5.19.0
381
394
  # via sentence-transformers
382
395
  truststore==0.10.4 ; sys_platform != 'emscripten'
383
396
  # via
384
397
  # httpcore2
385
398
  # httpx2
386
- typer==0.27.2
399
+ typer==0.27.3
387
400
  # via
388
- # huggingface-hub
389
401
  # linkedparticles
390
402
  # transformers
391
403
  typing-extensions==4.16.0
@@ -398,6 +410,7 @@ typing-extensions==4.16.0
398
410
  # huggingface-hub
399
411
  # langchain-core
400
412
  # langchain-protocol
413
+ # langsmith
401
414
  # mcp
402
415
  # opentelemetry-api
403
416
  # opentelemetry-exporter-otlp-proto-http
@@ -422,10 +435,8 @@ tzdata==2026.4 ; sys_platform == 'win32'
422
435
  tzlocal==5.4.4
423
436
  # via apscheduler
424
437
  urllib3==2.8.0
425
- # via
426
- # opentelemetry-exporter-http-transport
427
- # requests
428
- uuid-utils==1.0.0
438
+ # via requests
439
+ uuid-utils==0.16.2
429
440
  # via
430
441
  # langchain-core
431
442
  # langsmith