linkedparticles 1.132.1__py3-none-any.whl

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 (306) hide show
  1. linkedparticles-1.132.1.dist-info/METADATA +159 -0
  2. linkedparticles-1.132.1.dist-info/RECORD +306 -0
  3. linkedparticles-1.132.1.dist-info/WHEEL +4 -0
  4. linkedparticles-1.132.1.dist-info/entry_points.txt +2 -0
  5. linkedparticles-1.132.1.dist-info/licenses/LICENSE +201 -0
  6. linkedparticles-1.132.1.dist-info/licenses/NOTICE +18 -0
  7. particles/_alembic/alembic.ini +38 -0
  8. particles/_alembic/env.py +77 -0
  9. particles/_alembic/script.py.mako +27 -0
  10. particles/_alembic/versions/001_initial.py +112 -0
  11. particles/_alembic/versions/002_subjects.py +47 -0
  12. particles/_alembic/versions/003_wikidata_label_cache.py +28 -0
  13. particles/_alembic/versions/004_source_trust.py +112 -0
  14. particles/_alembic/versions/005_structured_properties.py +35 -0
  15. particles/_alembic/versions/006_extractor_records.py +35 -0
  16. particles/_alembic/versions/007_domain_hint.py +24 -0
  17. particles/_alembic/versions/008_content_published_at.py +25 -0
  18. particles/_alembic/versions/009_provenance_chunk_hash.py +31 -0
  19. particles/_alembic/versions/010_context_fingerprint.py +25 -0
  20. particles/_alembic/versions/011_particle_relations.py +48 -0
  21. particles/_alembic/versions/012_taxonomies.py +63 -0
  22. particles/_alembic/versions/013_extractor_calibration.py +25 -0
  23. particles/_alembic/versions/014_corpus_follow_edges.py +42 -0
  24. particles/_alembic/versions/015_synthesis_cache.py +38 -0
  25. particles/_alembic/versions/016_snapshot_extraction_started_at.py +36 -0
  26. particles/_alembic/versions/017_operator_events.py +49 -0
  27. particles/_alembic/versions/018_contributor_refs.py +33 -0
  28. particles/_alembic/versions/019_embedding_model_id.py +29 -0
  29. particles/_alembic/versions/020_trust_lenses.py +67 -0
  30. particles/_alembic/versions/021_registered_at_string.py +62 -0
  31. particles/_alembic/versions/022_assertion_modality.py +37 -0
  32. particles/_alembic/versions/023_url_mentions.py +44 -0
  33. particles/_alembic/versions/024_corpus_document_supersession.py +33 -0
  34. particles/_alembic/versions/025_per_provider_calibration.py +83 -0
  35. particles/_alembic/versions/026_conformance_trust_cap.py +35 -0
  36. particles/_alembic/versions/027_lens_decay_rules.py +38 -0
  37. particles/_alembic/versions/028_utility_lens.py +61 -0
  38. particles/_alembic/versions/029_retired_at.py +34 -0
  39. particles/_alembic/versions/030_utility_rank_lift.py +56 -0
  40. particles/_alembic/versions/031_content_norm_hash.py +89 -0
  41. particles/_alembic/versions/032_utility_event_source.py +78 -0
  42. particles/_alembic/versions/033_structured_claim.py +77 -0
  43. particles/_alembic/versions/034_extraction_provider_model.py +66 -0
  44. particles/_alembic/versions/035_prefix_extraction_properties_keys.py +106 -0
  45. particles/_alembic/versions/036_curation_snapshots.py +53 -0
  46. particles/_artifacts/design/tokens.css +237 -0
  47. particles/_artifacts/graph/LICENSE.cytoscape.txt +19 -0
  48. particles/_artifacts/graph/cytoscape.min.js +31 -0
  49. particles/_orm_modules.py +35 -0
  50. particles/api/__init__.py +1 -0
  51. particles/api/_middleware.py +106 -0
  52. particles/api/_rate_limit.py +103 -0
  53. particles/api/app.py +2549 -0
  54. particles/api/auth.py +256 -0
  55. particles/api/cli/__init__.py +357 -0
  56. particles/api/cli/_claude_code.py +972 -0
  57. particles/api/cli/_id_norm.py +36 -0
  58. particles/api/cli/_logging.py +42 -0
  59. particles/api/cli/_memory_projection.py +327 -0
  60. particles/api/cli/_output.py +124 -0
  61. particles/api/cli/_progress.py +149 -0
  62. particles/api/cli/_projection_git.py +240 -0
  63. particles/api/cli/_remote.py +49 -0
  64. particles/api/cli/audit.py +540 -0
  65. particles/api/cli/benchmark.py +378 -0
  66. particles/api/cli/config.py +82 -0
  67. particles/api/cli/conformance.py +82 -0
  68. particles/api/cli/corpus.py +1234 -0
  69. particles/api/cli/curate.py +210 -0
  70. particles/api/cli/db.py +104 -0
  71. particles/api/cli/deposit.py +366 -0
  72. particles/api/cli/engine.py +154 -0
  73. particles/api/cli/events.py +114 -0
  74. particles/api/cli/export.py +420 -0
  75. particles/api/cli/extract.py +383 -0
  76. particles/api/cli/extractor.py +2185 -0
  77. particles/api/cli/hook.py +687 -0
  78. particles/api/cli/import_vault.py +357 -0
  79. particles/api/cli/inbox.py +191 -0
  80. particles/api/cli/init.py +779 -0
  81. particles/api/cli/interchange.py +171 -0
  82. particles/api/cli/links.py +659 -0
  83. particles/api/cli/lint.py +197 -0
  84. particles/api/cli/mcp.py +141 -0
  85. particles/api/cli/memory.py +882 -0
  86. particles/api/cli/particle.py +514 -0
  87. particles/api/cli/project.py +321 -0
  88. particles/api/cli/quality.py +68 -0
  89. particles/api/cli/query.py +414 -0
  90. particles/api/cli/reconcile.py +49 -0
  91. particles/api/cli/reindex.py +151 -0
  92. particles/api/cli/review.py +224 -0
  93. particles/api/cli/rules.py +314 -0
  94. particles/api/cli/skills.py +119 -0
  95. particles/api/cli/structure.py +102 -0
  96. particles/api/cli/subjects.py +590 -0
  97. particles/api/cli/synthesis_cache.py +176 -0
  98. particles/api/cli/trust.py +421 -0
  99. particles/api/client/__init__.py +45 -0
  100. particles/api/client/base.py +563 -0
  101. particles/api/client/http.py +914 -0
  102. particles/api/client/local.py +855 -0
  103. particles/api/daemon.py +441 -0
  104. particles/api/web_app.py +101 -0
  105. particles/benchmark/__init__.py +25 -0
  106. particles/benchmark/compare.py +144 -0
  107. particles/benchmark/equivalence.py +233 -0
  108. particles/benchmark/loader.py +256 -0
  109. particles/benchmark/memory/__init__.py +107 -0
  110. particles/benchmark/memory/comparators.py +358 -0
  111. particles/benchmark/memory/loader.py +308 -0
  112. particles/benchmark/memory/metrics.py +124 -0
  113. particles/benchmark/memory/runner.py +1626 -0
  114. particles/benchmark/memory/schema.py +369 -0
  115. particles/benchmark/metrics.py +79 -0
  116. particles/benchmark/modality/__init__.py +69 -0
  117. particles/benchmark/modality/loader.py +170 -0
  118. particles/benchmark/modality/metrics.py +93 -0
  119. particles/benchmark/modality/runner.py +263 -0
  120. particles/benchmark/modality/schema.py +61 -0
  121. particles/benchmark/polarity/__init__.py +75 -0
  122. particles/benchmark/polarity/loader.py +169 -0
  123. particles/benchmark/polarity/metrics.py +109 -0
  124. particles/benchmark/polarity/runner.py +269 -0
  125. particles/benchmark/polarity/schema.py +86 -0
  126. particles/benchmark/runner.py +476 -0
  127. particles/benchmark/schema.py +93 -0
  128. particles/benchmark/validity/__init__.py +72 -0
  129. particles/benchmark/validity/loader.py +206 -0
  130. particles/benchmark/validity/metrics.py +113 -0
  131. particles/benchmark/validity/runner.py +247 -0
  132. particles/benchmark/validity/schema.py +93 -0
  133. particles/corpus/__init__.py +1 -0
  134. particles/corpus/blob_fsck.py +313 -0
  135. particles/corpus/blob_health.py +173 -0
  136. particles/corpus/deposit.py +1538 -0
  137. particles/corpus/fetch.py +349 -0
  138. particles/corpus/follow_edges.py +106 -0
  139. particles/corpus/rule_sources.py +307 -0
  140. particles/corpus/store.py +692 -0
  141. particles/corpus/supersession.py +301 -0
  142. particles/db.py +437 -0
  143. particles/exporters/__init__.py +0 -0
  144. particles/exporters/anki.py +242 -0
  145. particles/exporters/article_synthesis/__init__.py +114 -0
  146. particles/exporters/graph/__init__.py +5 -0
  147. particles/exporters/graph/_assets.py +50 -0
  148. particles/exporters/graph/exporter.py +113 -0
  149. particles/exporters/graph/render.py +457 -0
  150. particles/exporters/jsonl.py +96 -0
  151. particles/exporters/logseq/__init__.py +22 -0
  152. particles/exporters/logseq/exporter.py +71 -0
  153. particles/exporters/logseq/format.py +256 -0
  154. particles/exporters/logseq/narrative.py +83 -0
  155. particles/exporters/logseq/synthesis.py +251 -0
  156. particles/exporters/logseq/vault.py +572 -0
  157. particles/exporters/markdown.py +60 -0
  158. particles/exporters/notion.py +539 -0
  159. particles/exporters/obsidian/__init__.py +90 -0
  160. particles/exporters/obsidian/exporter.py +68 -0
  161. particles/exporters/obsidian/format.py +498 -0
  162. particles/exporters/obsidian/narrative.py +104 -0
  163. particles/exporters/obsidian/synthesis.py +291 -0
  164. particles/exporters/obsidian/vault.py +1078 -0
  165. particles/exporters/registry.py +101 -0
  166. particles/exporters/summaries.py +178 -0
  167. particles/exporters/wiki.py +831 -0
  168. particles/ingest/__init__.py +20 -0
  169. particles/ingest/authorities/__init__.py +28 -0
  170. particles/ingest/authorities/_shared.py +131 -0
  171. particles/ingest/authorities/registry.py +171 -0
  172. particles/ingest/authorities/wikidata.py +310 -0
  173. particles/ingest/candidate_dedup.py +134 -0
  174. particles/ingest/duplicate_suppression.py +149 -0
  175. particles/ingest/generation.py +179 -0
  176. particles/ingest/importers/__init__.py +31 -0
  177. particles/ingest/importers/github.py +601 -0
  178. particles/ingest/importers/hackernews.py +122 -0
  179. particles/ingest/importers/mastodon.py +161 -0
  180. particles/ingest/importers/nomisma.py +78 -0
  181. particles/ingest/importers/numista.py +128 -0
  182. particles/ingest/importers/reddit.py +136 -0
  183. particles/ingest/importers/registry.py +134 -0
  184. particles/ingest/importers/wikidata.py +70 -0
  185. particles/ingest/narrative_merge.py +120 -0
  186. particles/ingest/pipeline.py +1582 -0
  187. particles/ingest/subject_resolver.py +357 -0
  188. particles/integrations/__init__.py +61 -0
  189. particles/integrations/_mapping.py +81 -0
  190. particles/integrations/langchain.py +275 -0
  191. particles/interchange/store.py +425 -0
  192. particles/mcp/__init__.py +15 -0
  193. particles/mcp/memory_compat/__init__.py +10 -0
  194. particles/mcp/memory_compat/graph.py +330 -0
  195. particles/mcp/memory_compat/ops.py +422 -0
  196. particles/mcp/memory_compat/server.py +580 -0
  197. particles/mcp/resources.py +92 -0
  198. particles/mcp/server.py +184 -0
  199. particles/mcp/tools/__init__.py +14 -0
  200. particles/mcp/tools/corpus.py +52 -0
  201. particles/mcp/tools/diagnostics.py +21 -0
  202. particles/mcp/tools/events.py +54 -0
  203. particles/mcp/tools/graph.py +141 -0
  204. particles/mcp/tools/links_suggest.py +75 -0
  205. particles/mcp/tools/lint.py +75 -0
  206. particles/mcp/tools/particles.py +170 -0
  207. particles/mcp/tools/query.py +183 -0
  208. particles/mcp/tools/subjects.py +100 -0
  209. particles/mcp/tools/taxonomy.py +34 -0
  210. particles/mcp/tools/write.py +343 -0
  211. particles/observability/__init__.py +24 -0
  212. particles/observability/setup.py +310 -0
  213. particles/observability/spans.py +41 -0
  214. particles/operations/__init__.py +1 -0
  215. particles/operations/_llm.py +209 -0
  216. particles/operations/_quarantine.py +95 -0
  217. particles/operations/_scope.py +34 -0
  218. particles/operations/abstraction.py +1020 -0
  219. particles/operations/agent_write.py +644 -0
  220. particles/operations/audit.py +810 -0
  221. particles/operations/cascade.py +272 -0
  222. particles/operations/consolidation.py +1539 -0
  223. particles/operations/curation/__init__.py +42 -0
  224. particles/operations/curation/cards.py +225 -0
  225. particles/operations/curation/collect.py +205 -0
  226. particles/operations/curation/leverage.py +188 -0
  227. particles/operations/curation/session.py +608 -0
  228. particles/operations/curation/snapshot.py +301 -0
  229. particles/operations/deposit.py +47 -0
  230. particles/operations/deposit_suggest.py +194 -0
  231. particles/operations/digest.py +88 -0
  232. particles/operations/extract.py +23 -0
  233. particles/operations/graph_view.py +907 -0
  234. particles/operations/inbox.py +147 -0
  235. particles/operations/links_suggest.py +1068 -0
  236. particles/operations/lint/__init__.py +99 -0
  237. particles/operations/lint/assertion_quality.py +55 -0
  238. particles/operations/lint/citation_signal.py +42 -0
  239. particles/operations/lint/contestedness.py +345 -0
  240. particles/operations/lint/contradictions.py +345 -0
  241. particles/operations/lint/coverage.py +364 -0
  242. particles/operations/lint/granularity.py +94 -0
  243. particles/operations/lint/orchestrator.py +145 -0
  244. particles/operations/lint/retirement.py +74 -0
  245. particles/operations/lint/staleness.py +232 -0
  246. particles/operations/lint/wikidata_links.py +63 -0
  247. particles/operations/narrative.py +110 -0
  248. particles/operations/narrative_synthesis.py +124 -0
  249. particles/operations/projection/__init__.py +57 -0
  250. particles/operations/projection/manifest.py +264 -0
  251. particles/operations/projection/project.py +1026 -0
  252. particles/operations/quality.py +81 -0
  253. particles/operations/query/__init__.py +42 -0
  254. particles/operations/query/as_of.py +276 -0
  255. particles/operations/query/contested.py +145 -0
  256. particles/operations/query/contestedness.py +198 -0
  257. particles/operations/query/decay_policy.py +136 -0
  258. particles/operations/query/effective_confidence.py +183 -0
  259. particles/operations/query/gaps.py +83 -0
  260. particles/operations/query/main.py +1010 -0
  261. particles/operations/query/owner_policy.py +218 -0
  262. particles/operations/query/precedence.py +142 -0
  263. particles/operations/query/rank.py +163 -0
  264. particles/operations/query/respond.py +196 -0
  265. particles/operations/query/source_info.py +89 -0
  266. particles/operations/query/source_trust.py +313 -0
  267. particles/operations/query/stance.py +111 -0
  268. particles/operations/query/structural.py +483 -0
  269. particles/operations/query/utility_policy.py +217 -0
  270. particles/operations/reconcile.py +272 -0
  271. particles/operations/reindex.py +571 -0
  272. particles/operations/retract.py +107 -0
  273. particles/operations/review.py +303 -0
  274. particles/operations/structure.py +217 -0
  275. particles/operations/trust.py +54 -0
  276. particles/operations/utility_feedback.py +209 -0
  277. particles/operations/utility_mining.py +531 -0
  278. particles/operations/utility_sweep.py +458 -0
  279. particles/operations/version_guard.py +39 -0
  280. particles/render/article_synthesis/__init__.py +217 -0
  281. particles/render/article_synthesis/cache.py +395 -0
  282. particles/render/article_synthesis/layer_a.py +118 -0
  283. particles/render/article_synthesis/layer_b.py +326 -0
  284. particles/render/article_synthesis/orchestrate.py +403 -0
  285. particles/render/article_synthesis/render.py +873 -0
  286. particles/render/article_synthesis/topic.py +58 -0
  287. particles/skills/__init__.py +62 -0
  288. particles/skills/asking-the-store.md +64 -0
  289. particles/skills/keeping-it-clean.md +58 -0
  290. particles/skills/recording-a-belief.md +79 -0
  291. particles/sql_safety.py +37 -0
  292. particles/store/__init__.py +1 -0
  293. particles/store/curation_snapshot_store.py +181 -0
  294. particles/store/event_store.py +467 -0
  295. particles/store/extractor_store.py +315 -0
  296. particles/store/lens_store.py +372 -0
  297. particles/store/particle_store.py +1786 -0
  298. particles/store/relation_store.py +359 -0
  299. particles/store/subject_cache.py +112 -0
  300. particles/store/subject_store.py +973 -0
  301. particles/store/synthesis_cache_store.py +161 -0
  302. particles/store/taxonomy_store.py +344 -0
  303. particles/store/trust_store.py +275 -0
  304. particles/store/url_mention_store.py +222 -0
  305. particles/store/utility_store.py +284 -0
  306. particles/store/wikidata_cache.py +89 -0
@@ -0,0 +1,159 @@
1
+ Metadata-Version: 2.5
2
+ Name: linkedparticles
3
+ Version: 1.132.1
4
+ Summary: Python reference SDK for the Particles epistemic knowledge standard — Engine layer and surfaces
5
+ Project-URL: Homepage, https://github.com/LinkedParticles/particles-engine-py
6
+ Project-URL: Repository, https://github.com/LinkedParticles/particles-engine-py
7
+ Project-URL: Issues, https://github.com/LinkedParticles/particles-engine-py/issues
8
+ Author: The Particles authors
9
+ License: Apache-2.0
10
+ License-File: LICENSE
11
+ License-File: NOTICE
12
+ Keywords: agents,beliefs,citations,epistemic,knowledge-graph,knowledge-management,llm,provenance,psum,rag,uncertainty
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Intended Audience :: Science/Research
16
+ Classifier: License :: OSI Approved :: Apache Software License
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
22
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
23
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
24
+ Classifier: Typing :: Typed
25
+ Requires-Python: >=3.11
26
+ Requires-Dist: aiosqlite>=0.20
27
+ Requires-Dist: alembic>=1.13
28
+ Requires-Dist: apscheduler>=3.10
29
+ Requires-Dist: fastapi>=0.111
30
+ Requires-Dist: filelock>=3.13
31
+ Requires-Dist: greenlet>=3.5.0
32
+ Requires-Dist: jinja2>=3.1
33
+ Requires-Dist: linkedparticles-core==1.132.1
34
+ Requires-Dist: mcp<2,>=1.27.1
35
+ Requires-Dist: opentelemetry-api>=1.27
36
+ Requires-Dist: python-multipart>=0.0.9
37
+ Requires-Dist: sqlalchemy>=2.0
38
+ Requires-Dist: typer>=0.12
39
+ Requires-Dist: uvicorn[standard]>=0.30
40
+ Requires-Dist: warcio>=1.7
41
+ Provides-Extra: langchain
42
+ Requires-Dist: langchain-core>=0.3; extra == 'langchain'
43
+ Provides-Extra: otel
44
+ Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.27; extra == 'otel'
45
+ Requires-Dist: opentelemetry-instrumentation-fastapi>=0.48b0; extra == 'otel'
46
+ Requires-Dist: opentelemetry-instrumentation-httpx>=0.48b0; extra == 'otel'
47
+ Requires-Dist: opentelemetry-instrumentation-logging>=0.48b0; extra == 'otel'
48
+ Requires-Dist: opentelemetry-instrumentation-sqlalchemy>=0.48b0; extra == 'otel'
49
+ Requires-Dist: opentelemetry-sdk>=1.27; extra == 'otel'
50
+ Description-Content-Type: text/markdown
51
+
52
+ # linkedparticles
53
+
54
+ > **Particles is shared memory for humans and AI agents.** Each particle is one
55
+ > claim, plus what you need to judge it: who said it, where, when, and how
56
+ > confident they were. Facts, opinions, and memories are all claims, recorded
57
+ > the same way as particles. Particles are not edited or deleted. Particles are
58
+ > superseded, retracted, or disputed in the open. How much to trust it is a
59
+ > perspective applied at query time, never baked into the record.
60
+
61
+ The **Engine layer** of the Particles reference implementation — the
62
+ state-holding SDK and its surfaces. This is the package you install to actually
63
+ run a Particles knowledge store. The core loop:
64
+
65
+ - **deposit** source material into an append-only corpus;
66
+ - **extract** claim-granularity particles with subject resolution and
67
+ confidence/provenance metadata;
68
+ - **query** with effective-confidence ranking and subject filtering;
69
+ - **lint** for contradictions and staleness;
70
+ - **review** inconsistencies into a reusable source-trust policy.
71
+
72
+ When your agent is wrong, you can see exactly why, and fix it at the source.
73
+
74
+ The Engine is a library first. The FastAPI server, the CLI, the read-only MCP
75
+ server, and the resident daemon are all *surfaces* over it.
76
+
77
+ ## Why Particles?
78
+
79
+ <!-- BEGIN PROJECTED: what-is (manifest: docs/projection/readme.yaml) -->
80
+ Most Retrieval-Augmented Generation systems re-derive knowledge from scratch on every query, operating over raw text chunks without any persistent record of what was learned, how confidently it was held, or where it came from. Particles takes a different approach: rather than retrieving passages, it stores discrete, citable, revisable claims — natural-language sentences paired with structured metadata for confidence, provenance, and uncertainty — so that an agent's knowledge accumulates as an auditable ledger rather than evaporating between sessions. Corpus-entry-level provenance is required at Core, meaning every belief can be traced back to the source that produced it, and the particle store itself is a derived view that can be rebuilt from the corpus by re-running extractors, giving the system both durability and reproducibility.
81
+
82
+ The Particles standard defines the particle schema, the source-corpus model, the extraction protocol, and a set of operations — deposit, extract, query, lint, review, and reindex — that together form the spine along which an agent's knowledge is built, queried, audited, and revised one belief at a time. A developer working with this loop deposits a source into the append-only corpus, extracts claim-granularity particles with resolved subjects, queries by effective-confidence ranking, lints for contradictions and staleness, and reviews inconsistencies into a reusable trust policy. Because particles carry explicit confidence and provenance, Particles can answer queries that require finding relevant claims about a subject and synthesising them with provenance intact, rather than returning a ranked list of chunks whose epistemic status is opaque.
83
+
84
+ Particles is a minimal interoperable substrate for claim-granularity agent knowledge — narrower than a formal-ontology knowledge graph such as RDF/SPARQL and more structured than augmented markdown. Anchoring every particle to a subject is what makes this precision possible: the Subject store is the standard's catalogue of real-world entities against which particles are indexed, aligning beliefs to canonical entities that can, in principle, be mapped to external ontologies. A developer choosing Particles is therefore choosing a substrate where each belief is a first-class object with an identity, a confidence score, a source, and a subject — not a position in a vector space.
85
+
86
+ <!-- sources: p-21f11766, p-3f71ca93, p-7931228a, p-80f9b726, p-a5a42fe0, p-ba8cfa2c, p-cb10c54c, p-d3fd6c56 -->
87
+ <!-- END PROJECTED: what-is -->
88
+
89
+ ## Design rationale
90
+
91
+ <!-- BEGIN PROJECTED: design-rationale (manifest: docs/projection/readme.yaml) -->
92
+ The foundation of Particles is the guarantee that nothing already written is ever overwritten. The Source Corpus is constituted as an append-only archive of all materials from which particles have been or may be extracted, meaning that every ingested source and every derived claim accumulates in place rather than displacing what came before. Provenance is carried by each particle from the moment of its creation, and when a source must be handled in a mutable mode rather than a purely append-only one, the system does not silently absorb the change: particles whose provenance location falls within the changed regions are flagged with `PROVENANCE_STALE`, making the disturbance visible rather than burying it. Supersession and retraction therefore propagate deterministically through the provenance graph, touching every claim whose origin is implicated, so the ledger remains a faithful record of what was asserted and when, never a quietly revised version of the past.
93
+
94
+ Trust in Particles is not a property baked into a stored record but a lens applied at the moment of reading. The raw confidence value is stored immutably, calibrated at the time a particle is created and never subsequently altered; what changes with each query is the effective confidence, which is computed at query time rather than stored. Trust weighting, recency decay, and the as-of instant are all applied per observer at query time, never written back into the record. This means that a belief does not need to be retracted or rewritten to sink in the rankings as its source ages or as the extractor that produced it loses credibility: the stored particle remains intact while the effective confidence computed over it falls, allowing stale beliefs to recede naturally without any mutation of the underlying ledger. When `as_of` is set to a past instant T, the query evaluates the store on the assertion-time axis — what the store believed at T — rather than on any world-time validity dimension, so the same immutable corpus can answer questions about present belief and historical belief without ambiguity.
95
+
96
+ Contradictions in Particles are treated as first-class citizens of the knowledge graph rather than anomalies to be suppressed. When two sources or two principals disagree, the conflict-resolution ladder surfaces an `INCONSISTENCY` record for review instead of silently overwriting either side, preserving both competing claims in the ledger and making the disagreement legible to any downstream consumer. Contestedness, the property that marks a particle as being in tension with one or more others, must be computed at read time and is never stored; like effective confidence, it is a read-time lens rather than a durable annotation, which means that as new particles arrive or old ones are superseded, the contested status of any given claim is always freshly derived from the current state of the graph rather than from a stale flag written at some earlier moment.
97
+
98
+ Memory in Particles maintains itself through a periodic, automated health discipline. The Lint operation performs health checks for contradictions, stale claims, orphan pages, and missing cross-references, scanning the corpus on a scheduled basis so that problems accumulate into visible findings rather than silently degrading the quality of the belief store. Because nothing is overwritten and contradictions are surfaced rather than resolved by fiat, Lint operates on a stable substrate: it traverses the same immutable record that queries read, and its findings feed back into the trust-policy review cycle, closing the loop between ingestion, querying, and the ongoing stewardship of the ledger's integrity.
99
+
100
+ <!-- sources: p-0296afc0, p-8476c2ac, p-8767ad66, p-9cf41a46, p-c3b1cef6, p-cea0186c, p-d0d41702, p-f1ced6c4, p-f35e1dee -->
101
+ <!-- END PROJECTED: design-rationale -->
102
+
103
+ ## Install
104
+
105
+ ```bash
106
+ pip install linkedparticles
107
+ ```
108
+
109
+ This depends on `linkedparticles-core` (the store-free Client layer) — it is
110
+ pulled in automatically.
111
+
112
+ ## Architecture
113
+
114
+ <!-- BEGIN PROJECTED: architecture (manifest: docs/projection/readme.yaml) -->
115
+ A Particles deployment is organized around two distinct storage subsystems: a Source Corpus store and a Particle store. The Source Corpus store is an append-only object store, compatible with a local filesystem, an S3-compatible backend, or a content-addressed store, while corpus entries and snapshot metadata are held in queryable form, either relational or document store. Together these two subsystems form the durable foundation on which all operations act.
116
+
117
+ The Core SDK exposes both a clean Python API and a CLI, and the six core operations — Deposit, Extract, Query, Lint, Reindex, and Review — each map to a CLI subcommand and a `POST` API endpoint in the reference SDK. A developer therefore has two symmetric surfaces for every operation: a scriptable command line suitable for pipelines and a programmatic endpoint suitable for application integration.
118
+
119
+ The journey from a raw source to a set of particles begins with Deposit, which writes the source into the append-only corpus, and continues with Extract, which drives the extraction pipeline. That pipeline selects the most specific registered extractor whose applicability specification matches the deposited source; the general extractor is used if and only if no domain-specific extractor applies. Once particles exist in the Particle store, Query retrieves them ranked by effective confidence, Lint checks for contradictions and staleness, Reindex rebuilds derived indexes, and Review consolidates inconsistencies into a reusable trust policy. Each step in this sequence is a discrete, named operation rather than an implicit side effect, which means a developer can invoke any stage independently and observe its inputs and outputs in isolation.
120
+
121
+ <!-- sources: p-3bd3740c, p-5a941962, p-8f670063, p-a4bdde07, p-ac28fba0, p-cb1cd190, p-e5639e78 -->
122
+ <!-- END PROJECTED: architecture -->
123
+
124
+ > The *Why Particles?*, *Design rationale*, and *Architecture* sections are
125
+ > **cited projections of a particle store**, not hand-authored prose. Each
126
+ > marked block is rendered from [`docs/projection/readme.yaml`](docs/projection/readme.yaml)
127
+ > and the corpus bundle committed beside it, and the trailer under each block
128
+ > names the exact claims it was built from. Edit the manifest or the underlying
129
+ > particles and re-render — never the prose between the sentinels. Check it
130
+ > yourself: `python scripts/projection_drift.py` restores the bundle into a
131
+ > throwaway store, re-derives the deterministic render, and fails if any block
132
+ > has drifted from the claims it cites.
133
+ >
134
+ > This is the project eating its own dogfood: the README argues for
135
+ > claim-granularity knowledge with provenance, and is itself assembled that way.
136
+
137
+ ## The three repositories
138
+
139
+ | Repo | What it is |
140
+ |---|---|
141
+ | [`particles-standard`](https://github.com/LinkedParticles/particles-standard) | The standard: whitepaper, technical specification, normative schema + SHACL artifacts, conformance fixtures |
142
+ | [`particles-core-py`](https://github.com/LinkedParticles/particles-core-py) | The Python Client layer (`linkedparticles-core`) |
143
+ | [`particles-engine-py`](https://github.com/LinkedParticles/particles-engine-py) | **This repo** — the Python Engine layer + surfaces (`linkedparticles`) |
144
+
145
+ ## Deployment
146
+
147
+ Container and chart artifacts live under [`deploy/`](deploy/). The engine ships
148
+ as a single-writer service; see the
149
+ [operator guide](docs/operator-guide/index.md).
150
+
151
+ ## License
152
+
153
+ Apache-2.0. See [LICENSE](LICENSE) and [NOTICE](NOTICE).
154
+
155
+ ## Contributing
156
+
157
+ See [CONTRIBUTING.md](CONTRIBUTING.md) and [ARCHITECTURE.md](ARCHITECTURE.md).
158
+ Contributions are accepted under a Developer Certificate of Origin sign-off —
159
+ there is no CLA.
@@ -0,0 +1,306 @@
1
+ particles/_orm_modules.py,sha256=dmUnLo1H_ErqOfAICD_SM1qiHXT3K-Lf0-_xQ3Rezgo,1612
2
+ particles/db.py,sha256=KOOTieAPbjb4Scqn0beyTKDMtF9fZLNQpZFYpLdutJE,19116
3
+ particles/sql_safety.py,sha256=I7oSQ_Ypytr5_rKkNh0PZpZ4X5bcIoMLDZZnu1l4ago,1397
4
+ particles/api/__init__.py,sha256=jIKbtR2Qk9CaR79MOhWrZwW3WA3XiEF_FmZVX4ooci4,41
5
+ particles/api/_middleware.py,sha256=mbEvUVsKNKGSYwkGRzwmzGvmgMHXiRvGZenlVblsmjs,3823
6
+ particles/api/_rate_limit.py,sha256=nkscVGeDDn0uDhtPXriIpKgrYe2A2eKGDXL9dzFziR8,4483
7
+ particles/api/app.py,sha256=BeeWQfpip0RkhTearsiiXivq2my8wxd3t_0fOCp5YFY,100219
8
+ particles/api/auth.py,sha256=T3Thj19yytfLRyP2KDMe7dNFvz2XFDo3aVi4hbFvfV4,11296
9
+ particles/api/daemon.py,sha256=wOxDr384QhB5ddXYIsWl5SeF8xDlTvfpbBXlmVIkf0Y,17851
10
+ particles/api/web_app.py,sha256=BGVgjgjT8jkwpFPa6ZF42vtZrAp2_Da00tYirg4HQrE,4656
11
+ particles/api/cli/__init__.py,sha256=tYD9L5nMWxYiSc5fPfFWhIRe0Zw-aOcP-uQCWhv3UQk,15620
12
+ particles/api/cli/_claude_code.py,sha256=eSGayHoxxyohtNqdr4z5aDKHSFBRDGwLVNdx4PDfmIE,40068
13
+ particles/api/cli/_id_norm.py,sha256=LrWFFHkxj3Zh1YA1Yp6noUPgbW-rcLWuN9ga11uQWdQ,1513
14
+ particles/api/cli/_logging.py,sha256=4VM7p8rQR2pnwf7KpmvVfgN_fVD2Xi0vCgZVP9DIcyQ,2142
15
+ particles/api/cli/_memory_projection.py,sha256=ugo25c-K1CfNOKNOlImsx1TuH3Zufldm-4yGZA4ym8I,13474
16
+ particles/api/cli/_output.py,sha256=LlqYVRHCwvIhY0sj2Log4g7gAzQhkVk_gjFwwQmfDHU,4924
17
+ particles/api/cli/_progress.py,sha256=joqo8u_Z6nNeCD5JMXKqhwoRSTOf-e82JHfQeds0g9E,6219
18
+ particles/api/cli/_projection_git.py,sha256=hyTyYmwddIlCS9eLNvMh8lq-TjbvHW0YX3BT1kZv3Lc,9582
19
+ particles/api/cli/_remote.py,sha256=BFJrRn418T6PxtjdqxzBo3MdqMniPQl6zmQ6FEQmdnw,1970
20
+ particles/api/cli/audit.py,sha256=hCHF4tmPun0A4dVzU-xor9stngj-OjXIEA5oE5-Wdro,20423
21
+ particles/api/cli/benchmark.py,sha256=lEAUCwb-bJrxVbO_1Xn1KmQfbmHxs99H0vSIkwtt63g,14107
22
+ particles/api/cli/config.py,sha256=xmHXhkGA9A2rLwoBxud7l9f8mtGn-z4zd3bEwQTWzFE,2870
23
+ particles/api/cli/conformance.py,sha256=tSUjwlMHXN26dm6k4is_7SJ1MrIn1rGTJpSQBXyqPdk,3035
24
+ particles/api/cli/corpus.py,sha256=MBlew25QQthOpKgDjNpcBDHOTNheg7QjjszV1ALfq6w,49137
25
+ particles/api/cli/curate.py,sha256=sJc3NN1pLMpoaYIjzrgg1OgskV5ztC09cusLUFccI9g,7599
26
+ particles/api/cli/db.py,sha256=T19xsMCgG6e64P4dRFS7slzXBGWN-A6xTYbS7pejDyY,4211
27
+ particles/api/cli/deposit.py,sha256=YAjB5oACSCGFGEVJxklqo1X0pd1Qux_DCyL9Sipa0B4,14851
28
+ particles/api/cli/engine.py,sha256=xmmLcqC8XHA0aTXD5GMyZyl_dtp-zLTJeKHPk9mz6y0,6478
29
+ particles/api/cli/events.py,sha256=SFCw9_TObjGLrOUvRRh-lH3iy1bqbleaMS0gisEgOq4,3940
30
+ particles/api/cli/export.py,sha256=qpC-OlPQ0pXSRyInu9O85UlIVXmhsWBgEj2DdoqNsdg,17684
31
+ particles/api/cli/extract.py,sha256=mAO76awHUE5Zpzdgq6NvfSYF_-8kkAMU7F3zHh-fICo,16163
32
+ particles/api/cli/extractor.py,sha256=q7tl86TyRezkhfLN6ed5ep2yF35EKQHZoEo6fwTzFfY,88212
33
+ particles/api/cli/hook.py,sha256=QRzCBgjOuetBR8ToQqELeGcTuaB8d7VeGgOhZXK8W3Q,28204
34
+ particles/api/cli/import_vault.py,sha256=76YmmlZa2qbpLSW4J0Of5pi6aa6sYb-y04gKJSrJKBQ,14048
35
+ particles/api/cli/inbox.py,sha256=rOTAESlCurGbP1ihEMck7tZBcJqctzG1p3MRX9wqgfo,6919
36
+ particles/api/cli/init.py,sha256=qkwJVRhI1U_DUPAxkL9l5y7fXOHS4Hm5lGkX2o0UqMs,31800
37
+ particles/api/cli/interchange.py,sha256=MXB6d3ykgnWyZqjkTp1m7clCdOiuwAJ_LPV0kLH8t68,6703
38
+ particles/api/cli/links.py,sha256=kSO7UEdeij3uPvWW3x35ntJ2CxGdbmnjp74pqEyqfLs,25363
39
+ particles/api/cli/lint.py,sha256=OPLTk8lfB5UtTyS8t0H8Dy0BBcgyNpb_oJGCrU_Kimo,6871
40
+ particles/api/cli/mcp.py,sha256=nuwN-Fj0kdM2WjrxShYjz2yf1eLow5RAnEQq1TvTsS4,4952
41
+ particles/api/cli/memory.py,sha256=rY40Yj_H-JFzIh88hcs6wYsZoPr7QKAh_Sej5teg2-M,34061
42
+ particles/api/cli/particle.py,sha256=jE-s9w0zKQjSAdLN2P1y4eQAd_tfCp704Yrg3vY1rvk,20757
43
+ particles/api/cli/project.py,sha256=x8jqGFoK2kESQ4GTAyeYNUfveQqR6SZY7ttICzbhJAY,12795
44
+ particles/api/cli/quality.py,sha256=9xAh76Y2FITJwP_Az-s0RTpGN3cPNj6Ov-sEiPoSzT0,2763
45
+ particles/api/cli/query.py,sha256=h6uydEx8YHKnTcsHxoi6GUfjJmwRVRkrK5dfD5sHY_A,17698
46
+ particles/api/cli/reconcile.py,sha256=g5RI1UYk1jos3HoV1TAXRAj-a9Z36tEXfvVHDKF3bz8,1695
47
+ particles/api/cli/reindex.py,sha256=jqR4P12JnOIw-8REZZeOrwe8aaPVxDZCuZ4yJbZ3sZE,6041
48
+ particles/api/cli/review.py,sha256=RLo6dte0ONQGwrsroqDjxVLhuKiVtwlYNd_SSvdN4GU,8572
49
+ particles/api/cli/rules.py,sha256=apzYfunCUVZkF3yXGCw6Wjgy0dIkR9oSI8ujsci36R0,12371
50
+ particles/api/cli/skills.py,sha256=kZ3FlpUKo4p8C-EcMVjOPfr3hPvohpQZUL_InDmsziA,4349
51
+ particles/api/cli/structure.py,sha256=NC8-UbRot3EVf8R1lK7-9MM_GbE1s7w9JdVj3xbOGuc,3755
52
+ particles/api/cli/subjects.py,sha256=x6566g-78BDWE-GvC0HGb9q4-h2k9w_jIf3MCzG63ec,24202
53
+ particles/api/cli/synthesis_cache.py,sha256=00nfv3gah0SY-wrWsEuwZiV8GOnO1Bl-DX8xVy0UwQ0,6458
54
+ particles/api/cli/trust.py,sha256=rvOHpp7EiyTLPyJtKlfsdKgPaF_D_zuuefABX9ZkT8E,14556
55
+ particles/api/client/__init__.py,sha256=d1pqmycSzIUXzHnDg249x2Juu9BYGXgvoTqWmqIo0r0,1254
56
+ particles/api/client/base.py,sha256=t5YrL9By-KJgCYdAk1PEoVs5uhTqLVfczHXh7ezvhBg,18922
57
+ particles/api/client/http.py,sha256=8BBKmXUWBLCPsv7pfGgwoenolaa4-lCsu8EYYpnradY,35762
58
+ particles/api/client/local.py,sha256=Ndv5zsk5fs-_ybRTakCF4w8toLCd4ipO5UXgNt60e_U,32086
59
+ particles/benchmark/__init__.py,sha256=PHcpm691qV0rzpw-PVTIJpnjhFafPDZA6JrGIxbVSSI,1105
60
+ particles/benchmark/compare.py,sha256=l1-J34eLzx3aS9nktAicjPUZrGI3Ce2GL27s9pRKuuw,5404
61
+ particles/benchmark/equivalence.py,sha256=uhzVzWJARdbq4UyotYo_TDDddfzDtaIXOP3CIbg2KNs,9532
62
+ particles/benchmark/loader.py,sha256=6l9V4b3Ls0LP1Quekv-mrwpDw6IuaRDfUEN1KJhg5ZA,10169
63
+ particles/benchmark/metrics.py,sha256=pZWMbWS_X_gK6g69YT5RD-EGJdk2z4fX5QxDZdP6VX0,3217
64
+ particles/benchmark/runner.py,sha256=8xeB8sUUsseeNsVD20ZSibl7l8oJDovuX9etkKGoiAE,17939
65
+ particles/benchmark/schema.py,sha256=mKHIyQYhZesSj1V1ExLeX0MhkBUmeKG19UUK8PeOmzA,3325
66
+ particles/benchmark/memory/__init__.py,sha256=WrKggYTFtz0Z_-z1kqQ-NwKKAHSt1nDPvEdJbXj_UpE,3593
67
+ particles/benchmark/memory/comparators.py,sha256=9t75riXX3UeKwVFh3fx3gU6X9rCM0XgsMdiJIHRkH00,15237
68
+ particles/benchmark/memory/loader.py,sha256=0SvWJYW3Cm99pljt5a6FoZOX-NrsKeFp51iEvg36pUQ,13278
69
+ particles/benchmark/memory/metrics.py,sha256=Q9bV8049giVcVJqJGBTQcu2Vn_RRaF_cCD6OfUdGkQ4,5391
70
+ particles/benchmark/memory/runner.py,sha256=PNG4DPqhZDjAfcpJCe09wqcfrpuVKjYgI-_Nwr1OPTY,72628
71
+ particles/benchmark/memory/schema.py,sha256=Im72giXW7rIlxtZgij010tzwQ6hyXCEJOF3LbytK9Vw,16353
72
+ particles/benchmark/modality/__init__.py,sha256=CwBErrp0g4EbBTEEKYeNprcc50cLwIAXpWCodnsE0Ck,2479
73
+ particles/benchmark/modality/loader.py,sha256=3vL7Fo3gCtH_w3I2u4Lk7K99Scq-iyfbTo4v4wXe-nw,6470
74
+ particles/benchmark/modality/metrics.py,sha256=fCE5FEr0Ig2uwCQURhFBbNGXOAVYuTWHk90NEukc9PA,4029
75
+ particles/benchmark/modality/runner.py,sha256=kOalbEerDA5L0KFeDiF-Pux0xjnJBkYcZB7tFM_16vE,9610
76
+ particles/benchmark/modality/schema.py,sha256=erzRtyVr3ful3UHOaxCKByywOcGw-eMgGGJi6gMzdko,1965
77
+ particles/benchmark/polarity/__init__.py,sha256=6WlPhJA_kLgwvaWt0OIQgTS2jZONYwj2scSq6yrj5Gg,2734
78
+ particles/benchmark/polarity/loader.py,sha256=FJSz885VBTLrWJaUSqH2VYaVI0GvMILKcGolKnYDkHE,6345
79
+ particles/benchmark/polarity/metrics.py,sha256=PeT1M64qXv6VQBROz9orIMM_e6N9Dg0FPhbP3-6aIDg,5207
80
+ particles/benchmark/polarity/runner.py,sha256=Nw8R2ZOnrvDkRXjgdEzDJGv0ZY7pELektN8FYzQKEzk,10146
81
+ particles/benchmark/polarity/schema.py,sha256=PqabwQlQDH7jWIDCEZ9STfrr9xnBr6fXJghCJWPL4RQ,2799
82
+ particles/benchmark/validity/__init__.py,sha256=Vr7FLDV0-YPlrSSD6aTngK2msDxTN84qIAJ4LJGbeXg,2624
83
+ particles/benchmark/validity/loader.py,sha256=HPwjgah24QXoDg_TlAMhIGt-_Qa8i10zoKo4HaCwYQc,8147
84
+ particles/benchmark/validity/metrics.py,sha256=2TEV2kGZbA1Z-njHhlMwYa4VU3B9bfT8tCrQoaXTleU,5467
85
+ particles/benchmark/validity/runner.py,sha256=04aw_HmihHNQJCVAe0S6l1s0_o1mVYYngYxWyIumqrA,9478
86
+ particles/benchmark/validity/schema.py,sha256=n5DuSVDW4Lu5SANfXfZ4xjT7FJhNNa-KPG1OlNdOzhU,3705
87
+ particles/corpus/__init__.py,sha256=nxOXOWVxzuTcS7QvcE3f5G9EtN9r1tmRx5t8K2PWdVo,59
88
+ particles/corpus/blob_fsck.py,sha256=RqF7lynsW_hn4dSDJKhqpk_EZ8HKzvqia0B3wDjpKRI,12331
89
+ particles/corpus/blob_health.py,sha256=FzLIfFgmLor1CtDSGKZiUpHejyDKdNVS_32E_AmEAu4,7271
90
+ particles/corpus/deposit.py,sha256=jQjMxuuVFrZ6SxSeUC-sfYQsWHBGY0r8Gcy_lDvXyCE,62148
91
+ particles/corpus/fetch.py,sha256=b96hck3mAMfhVuytthtzvlhqc4wDTyn-eRojug8qdLo,13045
92
+ particles/corpus/follow_edges.py,sha256=2KPrRuYd7j9cHMlGj-59qU1ovned-gqd13pOUv2xpCs,3974
93
+ particles/corpus/rule_sources.py,sha256=kmDvIHVeTtCeELB1oPz8mRW1O6UZUihAN_SsdH21vCA,12199
94
+ particles/corpus/store.py,sha256=J_w40gaRhxiTzC-sxpncgoXQKLYDWPOmYBWDBo1jjCM,27563
95
+ particles/corpus/supersession.py,sha256=5J7yUpDo88HdbDe-v4mNvsCS6g3j30k6et6U2OEJadw,11751
96
+ particles/exporters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
97
+ particles/exporters/anki.py,sha256=ULXCsq_si_sbXl3Cyh1Ja3pQU9IL_bSJFI9dJapQibQ,10353
98
+ particles/exporters/jsonl.py,sha256=bxaTd3qn90HkLoV-fk9CwY6toV4YrnXavMdREAnhWjA,3876
99
+ particles/exporters/markdown.py,sha256=NdKpkjBZ2mw3SjYm4U9HlQkLhc2_uuSWRrz42SF7-D4,1725
100
+ particles/exporters/notion.py,sha256=EoxcRPhpb_M8zkKfwV-vcOfYO4iOsnlDv9mpw6YC4R0,23090
101
+ particles/exporters/registry.py,sha256=kX7xZTeTcnrXOwqh5J8YdYroRhgG34PjpdC2zUaxPUw,3691
102
+ particles/exporters/summaries.py,sha256=wEYPW97bgw05M0kxkDVhGWkAH7XiTjayUvtIbpHBvRg,6881
103
+ particles/exporters/wiki.py,sha256=ssgeKpFsJPB3RQCPTNeJFLaKGxpgwdXD7JTdGwynouY,37313
104
+ particles/exporters/article_synthesis/__init__.py,sha256=AnKscQtoT0L4iZpVk5s3LWA1x39ncpWz_kXvudIzOH0,3503
105
+ particles/exporters/graph/__init__.py,sha256=to3adIpBSoSTy6JNZ03J9Rcw53XwDbDfeWyFUEgDtkg,165
106
+ particles/exporters/graph/_assets.py,sha256=aa3yqMZxMD9QEAzOyr5Kqo0dy6zBjH56LT1h6ptNsCo,2112
107
+ particles/exporters/graph/exporter.py,sha256=A8SjcVSFD153tXKONoDlPp0NV7tMh8Mm8OwqdT_Yaes,4466
108
+ particles/exporters/graph/render.py,sha256=zFbyBM6-b7t69HIc80M7IGvAk9f2R51brDL_IMhoQ0A,20200
109
+ particles/exporters/logseq/__init__.py,sha256=_LRVcSko0ycIhvjO72E0fxmPTgtoX1YC9kA00bQH3B0,817
110
+ particles/exporters/logseq/exporter.py,sha256=JRIg2cV-IhKBTc0LKXccEQyA43Suh3H5CZb5oZiRyHw,2864
111
+ particles/exporters/logseq/format.py,sha256=XYLy66ib9GFTaYfYCW0xYX5jsY5LEMRiLBR7-rpPR-I,10467
112
+ particles/exporters/logseq/narrative.py,sha256=7epHkEfmBWEs4tfbs52JUBmbV28J1RxMWY5LFH_G2z8,3365
113
+ particles/exporters/logseq/synthesis.py,sha256=vZrJOkuivd-uDhvGGGyelr-s9PVGr5mTfQ5imQIjOfw,9589
114
+ particles/exporters/logseq/vault.py,sha256=O-sWGlTgmUoz61D7fKtJK3_006pD2heX6qwSZh6VQsI,25343
115
+ particles/exporters/obsidian/__init__.py,sha256=7VbZtlppjfdj9nyikEuoUvpZ7Kdc-F-XcHh31__PgSs,2867
116
+ particles/exporters/obsidian/exporter.py,sha256=0E04wTKUBv5bayK6XLNrJ7TpVMKFcLSke8v1a0B3vtk,2748
117
+ particles/exporters/obsidian/format.py,sha256=24zMwL1CTQbsKL5qbWZjaMYREsczFX0VpuKQuRmddA8,19931
118
+ particles/exporters/obsidian/narrative.py,sha256=mh_ORuusQUiFfLsbpMXVYP5xC1nKLiSs8DpOYWZ_ex4,4129
119
+ particles/exporters/obsidian/synthesis.py,sha256=dbqfj23s-ibElutu8RJHCGZp3QUxpQ_rXaxwvWv8HAA,12320
120
+ particles/exporters/obsidian/vault.py,sha256=Uwjbd8IQlveuRNORiVHR8tPDGbvrYw_0yvRGeMZLks0,45205
121
+ particles/ingest/__init__.py,sha256=hFyJFkxxh_CTp1Zu1nMSVBdHKISbb3P45GuCFCRJHAw,997
122
+ particles/ingest/candidate_dedup.py,sha256=AzSqPlA796itspgNePV-WGaK0osi1YwcW2Yfido6aT8,6426
123
+ particles/ingest/duplicate_suppression.py,sha256=1axPh2GRUvhWp-PTwlkRLy08Fmnr94h0VttoBgYXq_A,6253
124
+ particles/ingest/generation.py,sha256=Y9oJQSPXxQxfxu6ovv6JnBqy38eN9TOt-gv9vP3wGU8,7377
125
+ particles/ingest/narrative_merge.py,sha256=9jQLvkkN55OLmFLSun_fKtWApsfFAE0jBDMK4fpKb7s,5516
126
+ particles/ingest/pipeline.py,sha256=02DWHoS5F1BuGsv6Xg70wTNZ9skdXCSmDS0sXW4AcA0,74885
127
+ particles/ingest/subject_resolver.py,sha256=j6r0PGa0AUBm6vaCVHo4fJbWXB5BpKjlSgIk_G_Yj8k,15255
128
+ particles/ingest/authorities/__init__.py,sha256=iFK01cDq8A1sz_DJhXWlj3e-6rAsR50iTblfFbWOPMQ,717
129
+ particles/ingest/authorities/_shared.py,sha256=H-vtsdQi3c5AYxKmnVUZavJtU2sH1Scwpn5exFKxUnU,4421
130
+ particles/ingest/authorities/registry.py,sha256=2G4RwY8gDB_99Gc5kPbfgwXa8h7T2APouAe6uNJqhdE,6235
131
+ particles/ingest/authorities/wikidata.py,sha256=hjraov_dJME8-Hdz6B9Rh6HVOTncB1pw_X_PtAV3tn8,12394
132
+ particles/ingest/importers/__init__.py,sha256=G3nSX--BObDvbvl8kvwQvjPLGHw0UsUbr9qFCkzi_10,1209
133
+ particles/ingest/importers/github.py,sha256=2ITwPnBSCyrH84dz3mJm6JEGJbrmpls4qIDg9_U8Ieg,22718
134
+ particles/ingest/importers/hackernews.py,sha256=upsohiaEVC5SL5ynXUpGPdtVYBCHnTO9q_zcZJRUwnc,4374
135
+ particles/ingest/importers/mastodon.py,sha256=oKxy521fdk5NStzX-UsIyN_2wuGbh9UXpYuLSHdGLGA,6171
136
+ particles/ingest/importers/nomisma.py,sha256=A4idnyQd5H9sH6FBCsFYMe46zYtSqnVgSreTbXgp4IE,2903
137
+ particles/ingest/importers/numista.py,sha256=HLv2Az_u25rfn1M8LmbXKTtHoYvmr8kshIt3NCYzDSw,4593
138
+ particles/ingest/importers/reddit.py,sha256=uYjoaxI5csg5jLjBKP5vh0ev0xXpbQw5ILLcbPNLZhw,5031
139
+ particles/ingest/importers/registry.py,sha256=-_6012FrHCG7baAS2xRNVMtKK33KK5jrN4X0GPxj87M,5199
140
+ particles/ingest/importers/wikidata.py,sha256=usGSsVGtqRalNvczd1mTPV1QwCMHVXg0PRbE3Ulc_Jg,2254
141
+ particles/integrations/__init__.py,sha256=7_PybXA7S_uPEXfCtMGjY1pJuqIJBGTfU_A02UjYmc4,2414
142
+ particles/integrations/_mapping.py,sha256=Vmbp1tSd3ZsxElXvqFBMBswCMk94vsTXUbsz0-pr4Zo,3516
143
+ particles/integrations/langchain.py,sha256=wWWTDWhDWIyYXWJCuBPVhEOcT2_D6Q28aKB5zLzcxUU,11082
144
+ particles/interchange/store.py,sha256=wLKZ9b8ln5cmhoONIgo2VCe-gSf_Vfqfe6O4JqgUFgs,17703
145
+ particles/mcp/__init__.py,sha256=XyjntdfHVMWs-Ry8Oy_zfpwprSUKQzsc2O3mmOXxwds,591
146
+ particles/mcp/resources.py,sha256=ey-tfPOAyKH0tZnHKnPQEfYVHabn-ksEhhcater5owo,3627
147
+ particles/mcp/server.py,sha256=GNx9QBdIZQ-NkxkekkWxylszMuBlZb3Zr8xPWSTA6Us,7320
148
+ particles/mcp/memory_compat/__init__.py,sha256=6d_PTtY0ThXJhUC9D1YJwk5Q2yVn6hS0WpY2xsdGLI0,397
149
+ particles/mcp/memory_compat/graph.py,sha256=aiElAnSm0gybX_Naq05otfkCVlxdDbm95TaxR_APQQ0,13424
150
+ particles/mcp/memory_compat/ops.py,sha256=qIqLg_IvEHgfyWzNPv4Fh1EkK3wQFTt5Gn7YdG9jVCM,15386
151
+ particles/mcp/memory_compat/server.py,sha256=Ly0r5SXqO05BZRwTr8ScXwRzvizCNpwPhL99NoRsZDk,21963
152
+ particles/mcp/tools/__init__.py,sha256=Ge5tcwRTKynGsbfTE9sT239zQQ3a_ET7FSFpHjHXWww,680
153
+ particles/mcp/tools/corpus.py,sha256=AiN4f4tlfazghbaGL6gYSgCvcWxMKn-jW7j0xqJxr4Y,1821
154
+ particles/mcp/tools/diagnostics.py,sha256=gJWw2cdckt8Y2Ph8FH3nQ6Qzrl4kLPnIq1ovR6AEUBg,593
155
+ particles/mcp/tools/events.py,sha256=oO0oHAcXBP9RTRfz8Y4I5LkssOAfIDMMVnDqFSIRK4M,2058
156
+ particles/mcp/tools/graph.py,sha256=k6ogYPEpTQ7t3XLwPI-Jed2DSGzm66WE-98ea8szHpU,6358
157
+ particles/mcp/tools/links_suggest.py,sha256=vrXx6RXTWnr7YH7dn7_j9DVo_ygfzXaH0OxUuULaf78,3049
158
+ particles/mcp/tools/lint.py,sha256=9jGlkohmkFL5PlXpcA8SkSM2nFVdHiS3WoAbSSp_ERU,3110
159
+ particles/mcp/tools/particles.py,sha256=mUGivdadeQ-G9Cz7leBjNOL9XSpdrwFgnqrP-GQGl5I,6826
160
+ particles/mcp/tools/query.py,sha256=30KkPe1a3gutEyqU3OCb8R-skfEZdSnUGuEPiMHk33s,8904
161
+ particles/mcp/tools/subjects.py,sha256=IOCXCgYH8U8PE-4QjHoK-Nx_q89bMBWdTb8euKUcjkw,3799
162
+ particles/mcp/tools/taxonomy.py,sha256=2bGqeDFMKHr-68wcri3Yphv5yutQjFivsZ73OpSqvjA,1082
163
+ particles/mcp/tools/write.py,sha256=EDwlzgxi9klNuJNr8p0fElg77ILw3FwaFjVXFuIpz_4,13644
164
+ particles/observability/__init__.py,sha256=bOx3sOe39fvVRdfFddUYJcPuNYEBOALOAUw5jMDwOKU,1067
165
+ particles/observability/setup.py,sha256=n2uPHLMRWj9KhPhQXLKyfdRuf8jtXdIgvxIgCjvISo4,13575
166
+ particles/observability/spans.py,sha256=frjQIbpluIfAlUYQtU-Hnlg59r7hOgDwxdPT3MqaJgc,1501
167
+ particles/operations/__init__.py,sha256=D3zAQPjxJVjRe9xswE9INYTFF9Ur8XoUuwh8y6jXL_s,77
168
+ particles/operations/_llm.py,sha256=PmAl6QKrZVHRpHQg21W9EkBgEcv8avSpW7bPkQp2C70,8834
169
+ particles/operations/_quarantine.py,sha256=E-UC-Mdd7O-FKatc5KvLouHM6RIPbc-4p_gtkuVsdkg,3559
170
+ particles/operations/_scope.py,sha256=CSUKAYCVOvoDtOq2Up-hirujLbjzgCoWy8zhewX5uJU,1627
171
+ particles/operations/abstraction.py,sha256=ju3pYte10SxBfkcYIvql-8SpCYrhyK7SmTW_T3iQj1o,41064
172
+ particles/operations/agent_write.py,sha256=-bkdpUF-QvltrmJChHMDZ6RgcWExkYbI0BjWShyDNiY,26480
173
+ particles/operations/audit.py,sha256=1ESnq9mV5CaTf9BDPLX8UzTZ2RVnK683XbTZM9F-46g,35609
174
+ particles/operations/cascade.py,sha256=ldQWXbnZNv0WLgRJxcShfVQqlNVs3SE-AVeKUofd_ZA,9476
175
+ particles/operations/consolidation.py,sha256=DXxItXeAvLPw4KwtD8GJRNicxEC-cbMiQUIZYC0rua8,66152
176
+ particles/operations/deposit.py,sha256=Fl5xDfroKU7XPd5NQNTupnikFLrBBtSCpSjMEeNWkNM,1591
177
+ particles/operations/deposit_suggest.py,sha256=r0MqsSYkmrGV4TufYUcRcxwTBwrHaKLP8RXUh62Yy0Q,7354
178
+ particles/operations/digest.py,sha256=F9ZQb76R_LDF7kWbfV9GyXYuGBepuZc0sVqlAuCzaOk,4447
179
+ particles/operations/extract.py,sha256=T3M8fce--rzdO6z2Bt_tWgF4IE8wlZnss56FPstFBio,942
180
+ particles/operations/graph_view.py,sha256=cV8gekU6T8579dr_XWxqvPe5ACqktxIgsEtO_btiNV8,37066
181
+ particles/operations/inbox.py,sha256=R6Kma0SoYccq7aOKv6xxRXO6gDbfJaEomiM_stKnLzg,5516
182
+ particles/operations/links_suggest.py,sha256=zyn3B5lWN8c30ZXZcMEoInlzWrL68Wj7bEUVcg1LkAw,44570
183
+ particles/operations/narrative.py,sha256=IROcK_vxvq7-3NzLBwa8Fm3NkbWQtLeXDyrf1h4FmW4,5076
184
+ particles/operations/narrative_synthesis.py,sha256=xbfQR62nanh2GOWPqS27VMLLGxX5E8CSbyeehgbojtc,4933
185
+ particles/operations/quality.py,sha256=hDFOyXV46zsyYKQkfEhroyeynyTzlhDbhYQp8Dxl5QA,3465
186
+ particles/operations/reconcile.py,sha256=NZnHkBZ7lpmTbtb-jMY_GhbPbLIu-KB5KMuoytcvUSk,11650
187
+ particles/operations/reindex.py,sha256=0Waf-Jt4QDOJMj76QLslqWtOoFCU-ucrEC77-_CPMCU,22260
188
+ particles/operations/retract.py,sha256=JBR9Mqz9MGytqO-C7M7gwxt3DI-8CGVoNfprRDjaIpA,3765
189
+ particles/operations/review.py,sha256=6hE6AM1sQf5hvDYyPsDr90UEuRWi8MWDb_3CYAGQ1zA,12540
190
+ particles/operations/structure.py,sha256=vfFkXBweDqFhx797aCF7t_ZqgMahnvquqzHYTIYfwPE,9376
191
+ particles/operations/trust.py,sha256=IZ7cbMzjbGVhV4Jd5LWFw_uujG9GOxlhTgRsKy1WY8g,2025
192
+ particles/operations/utility_feedback.py,sha256=tQeNEDv4gZT2PqFt2UXW5_TF28w6uRNs5cZ9m9Ojb0U,8560
193
+ particles/operations/utility_mining.py,sha256=cJtyL_opao1mWY0IQlqV5RYmJdeo8shVBQX826VIHtY,22726
194
+ particles/operations/utility_sweep.py,sha256=FYU3yc-jt8DSnceQKL2RWvEkHW14RLDjj3-R9XHniQo,20360
195
+ particles/operations/version_guard.py,sha256=5z0E9AkFRVeJpK95Svq8F1_X-ylnTVugtYBW7eWqbVA,1682
196
+ particles/operations/curation/__init__.py,sha256=LgL_lhE5W8yux6VfunxubBQ-0CQFyxK0TPswqMWQ1fI,1838
197
+ particles/operations/curation/cards.py,sha256=WSr5-3aLJauRn1bcxhw_oc6nKWmDZeXVzX08wbsBzQE,10814
198
+ particles/operations/curation/collect.py,sha256=EsK9WRpNyIsU7_MXJhwcC5ZMUObAyyqpa7hHhuH3WM8,9012
199
+ particles/operations/curation/leverage.py,sha256=AH58V5HJdkeOljQ3zfDwbtPtoJYfUwObbCiv6HE5xwE,8022
200
+ particles/operations/curation/session.py,sha256=Nr8NWyl7FuspYFyquSrV17TmanFVXkcFSMBCcYEyKkc,25485
201
+ particles/operations/curation/snapshot.py,sha256=ApkYavJvy3n6GMvteZBNNNfzNz2NYoy7-_v95YhyL5c,11721
202
+ particles/operations/lint/__init__.py,sha256=5BIDzGPFjw9vh7px-HJlLyiemerkBxLjssKkn6VW2W8,3295
203
+ particles/operations/lint/assertion_quality.py,sha256=fp5hNfQZ1MJa_7O2U-NfcgIh3LNiefyOp73Sjp53nwE,2354
204
+ particles/operations/lint/citation_signal.py,sha256=kEUX2xNLoFM5Nfka6p6I0rX8rM7IboIxIN39r2yTfL4,1811
205
+ particles/operations/lint/contestedness.py,sha256=K32Ia0Cz5_aL2VWYibbzVRJfAfyPuKHXMUODS7X7LUU,14385
206
+ particles/operations/lint/contradictions.py,sha256=pL3wohZKLdXrSOyTmCytxHezHYQXRmH3UJd6ILX3HbY,16269
207
+ particles/operations/lint/coverage.py,sha256=u0MkfRtlt3EDQmfAKZE09OLjQUlLcalbG-YVOdWplMQ,16216
208
+ particles/operations/lint/granularity.py,sha256=uN4tdTTVeqSgUWIq0u4G3yl-D8c7W-Q7wnpx4Eb1PpY,4029
209
+ particles/operations/lint/orchestrator.py,sha256=Vp1kIaS1Z4TYgZHjoYZBS9cFKqd2vNeZyzSoiVx6bng,6120
210
+ particles/operations/lint/retirement.py,sha256=fZk8IWl-oZn5XrLMfGnOu3R7h5wbX2mXQb55t-E__gY,3204
211
+ particles/operations/lint/staleness.py,sha256=vspjeE-0J9KNHza7NGlhwlurWg-UdnWMCpsBoo8mejE,10556
212
+ particles/operations/lint/wikidata_links.py,sha256=M_y8hoyeAklGqO5KgiXdMZ7D90rLSvb_k1dP970aaGM,3091
213
+ particles/operations/projection/__init__.py,sha256=isaQ_0JQWv8x4vixf8X4FbZb9NMfypU6jo2mJ4FqWL4,1555
214
+ particles/operations/projection/manifest.py,sha256=FaQHkEIRvajM4FeOCee4b4WoT515en2Mz4Xs8gIj1m0,12570
215
+ particles/operations/projection/project.py,sha256=IsMgaW8pOhvld3FE2p1K4MUi-hxek3sTzzONOaA897k,43147
216
+ particles/operations/query/__init__.py,sha256=ZNz1MxtOR5cvtpQRhr4VQptplH4PCJ6_s25J_G5wau4,1394
217
+ particles/operations/query/as_of.py,sha256=PyRhcA_ap8cQFR7U444i767zVHRAhEohPnWupf8YgJ8,11761
218
+ particles/operations/query/contested.py,sha256=TEsFT5y-PtWXWTXOJ0XkIh9mLvUN8tVZ6firbegknQo,6170
219
+ particles/operations/query/contestedness.py,sha256=RQFFtXNGmyJkp-9FFmrLIaGHzjZMzsjTYeWDUoCCbNI,9080
220
+ particles/operations/query/decay_policy.py,sha256=hYWIcq9W6XF18UoIFnv0nQlyOI1AHUS5XpWNZPdL4ks,5852
221
+ particles/operations/query/effective_confidence.py,sha256=2IW-eOWoFfb7MAjk9lBidiLUfZBrJxKphF4ulZsFoSw,8524
222
+ particles/operations/query/gaps.py,sha256=vPNYhwuj-nHcT7TlWja7tJP_eJKQPFdAW9WUVxUyWv8,2869
223
+ particles/operations/query/main.py,sha256=CyZy718IRWFoC6HPAjvn-ybgac4DqPfp87wt-JRo9JA,46545
224
+ particles/operations/query/owner_policy.py,sha256=YZoZqjS9thFyD8SGceD3mvNcXtctaGDQgeJ5mPK38No,9621
225
+ particles/operations/query/precedence.py,sha256=_S_ZxrPqWVoprwru-eQnJA8IksDGZXdLHEUXjfRO3X0,6173
226
+ particles/operations/query/rank.py,sha256=w3G7E-ekaUCtiR9zvRvdYIljkUFCKqjMtXVlraQ1dbQ,7092
227
+ particles/operations/query/respond.py,sha256=__g58Gh3xKMbIg3sAK9Dyt564wT2TQkBqDG_seevRX4,8935
228
+ particles/operations/query/source_info.py,sha256=XnuFeNDl69FyT-8m83S73tylMdYkOKTi06Dup7TsYyY,3681
229
+ particles/operations/query/source_trust.py,sha256=xQfSNZ07pOc8jDO8cRG64HzNYEmNcF9_7C9-hl2SwzQ,13516
230
+ particles/operations/query/stance.py,sha256=8uMF0pzXg31y_RiyXlCUqvWyI-tt8ZiWuU4y6c0HrrM,4812
231
+ particles/operations/query/structural.py,sha256=LbzWXhNrX6jkXlsRW6r20xSX_BX02Qd4BvXYV2OW638,18858
232
+ particles/operations/query/utility_policy.py,sha256=iJE6aPyyfg6Fl-3bWu9l_MwS6L7hjQDO4e-0a1M8B7o,9493
233
+ particles/render/article_synthesis/__init__.py,sha256=2HE-J6DEgMIzOEy6dDdjv2P5ssY5PfFYNFrvSspwBYk,8382
234
+ particles/render/article_synthesis/cache.py,sha256=4TJihESwwChDfcA8ooizeZHS4BX38VLl7E-P9M0j16s,16555
235
+ particles/render/article_synthesis/layer_a.py,sha256=cdHpU1vxJ0Eb_S0N0CHlPwAcfB5-7wI620pk59Jd96c,5041
236
+ particles/render/article_synthesis/layer_b.py,sha256=w6x1TtH9lbzollNtjn8fotbFMHnzh4pZC8yx-ClQI3g,12737
237
+ particles/render/article_synthesis/orchestrate.py,sha256=RZzknRDRfO-n7DgcFWKQs__vBr3KNPAO_6VGwIkNKKI,17941
238
+ particles/render/article_synthesis/render.py,sha256=kaB38HntWrqiYoY1-9w_9QFUhIl8uEhC-PzvIDj86iU,39304
239
+ particles/render/article_synthesis/topic.py,sha256=RpCeBL71Ao-2_58Q2xZAfxOoFQy5S2P6BUnaNDMhHTc,2273
240
+ particles/skills/__init__.py,sha256=DhK1qAW7QpUszEqH0uiuPim6RA2yu1_lOatBmco3SM8,2469
241
+ particles/skills/asking-the-store.md,sha256=wlmz0eH6Ub9FM470mvcxcdqyGKrRi4a5CmHSIQI90xk,2824
242
+ particles/skills/keeping-it-clean.md,sha256=_HfLondQjFQcR372L_kV6emYAooD59uThVgtc-HzYe8,2936
243
+ particles/skills/recording-a-belief.md,sha256=edHdBE-L9eCoBdaEJqgrjbhHRB41n4LHBeAAOCYK8fU,4002
244
+ particles/store/__init__.py,sha256=9Vo9U1-JAuNwvPMHb8K8J148l22-a2KI49PSrCqQwOA,45
245
+ particles/store/curation_snapshot_store.py,sha256=gg6TONxDLi-UdH8tpP6Yn7_2q03H3tkyxrMO78nu4Hw,6997
246
+ particles/store/event_store.py,sha256=XtZhlKjV88Yuij5CDyF8z9AEmM1UbXByYOlZrrIhny8,19648
247
+ particles/store/extractor_store.py,sha256=wQbKymjhkauejN6UTQnIlPu29fWMna28ztbXNeOBM4c,13800
248
+ particles/store/lens_store.py,sha256=ZAeDkCgJlyZZQIDawXonxqkG7ZeLRFfzE3BS8T4NkE8,14850
249
+ particles/store/particle_store.py,sha256=OwBHpt9uuqmBUCnD6jHzcLp6zr7P81jEEz9B_l4yfUU,78364
250
+ particles/store/relation_store.py,sha256=T3idk_hWWIMug4wUySLtRHHGVS9D1yotChEXaWA1bWg,14569
251
+ particles/store/subject_cache.py,sha256=GnjlQECKAw3R5RMJZzjW6aQ_g47pxi6v_rUmnF9EoTg,4126
252
+ particles/store/subject_store.py,sha256=W20NTv_KnhpclcB8t_WuipO6n3QStrofYzWtcnUbZ_o,37200
253
+ particles/store/synthesis_cache_store.py,sha256=BnK2rdWg9XEYFx_JqX3v2354IeqkyMzLmNQGLmKY-2A,6279
254
+ particles/store/taxonomy_store.py,sha256=FNBCXLDPE_i87DMNvfkrwv6415jxLCRfbaGF1-N8QxQ,12953
255
+ particles/store/trust_store.py,sha256=t_yDWunByGOM1jSiaEvb_BuyUAeQp5YE8EADwP33ZLo,9852
256
+ particles/store/url_mention_store.py,sha256=BkUfJgV8mX9aVEKWMfrcQqcxnC21ML0EfYHQE_--gbI,8048
257
+ particles/store/utility_store.py,sha256=Iy3Tn6djuD6ZQm7MbTWjM1ok9d4YDl1SzQwiVTIj52I,11995
258
+ particles/store/wikidata_cache.py,sha256=Fn-qv9IJOCfOrj47WiZri7xh5TyC1R9atiDPsbgTEV8,3034
259
+ particles/_alembic/alembic.ini,sha256=k9Ysq5cqU8t0Dt5Pbfyt8YYvAf3tPzA2PllAEo2nO0A,563
260
+ particles/_alembic/env.py,sha256=KU8dOxVtzOGbxuKer4EKer1AMDkwKcG3Vvxz1Yp-EX8,2702
261
+ particles/_alembic/script.py.mako,sha256=vDxdMUscPOgqvJlYxAmd9BYDWclWJlkz-yilJOlW1GY,708
262
+ particles/_alembic/versions/001_initial.py,sha256=ZyDExEfNLQPch0BeBsSL56e6jcbor96QI-2yKas8kc0,5085
263
+ particles/_alembic/versions/002_subjects.py,sha256=pcn5s10w974gKlpc8r0cbLlmwDJk6LI9Aj2eUQgjN68,1377
264
+ particles/_alembic/versions/003_wikidata_label_cache.py,sha256=22AdLU5osJjkO1uUaW7QrJOZdpfGL2g4A3LxwPbgH4M,554
265
+ particles/_alembic/versions/004_source_trust.py,sha256=DsfNSkj8SQJAMvLHnoZMQweB5BDQvWnN6AWECWa1Ij8,3131
266
+ particles/_alembic/versions/005_structured_properties.py,sha256=x6W3yU0s6XmixeBpzYTHwHjfaJ_jQzXFNCpA3sQpXPQ,799
267
+ particles/_alembic/versions/006_extractor_records.py,sha256=AYHHtqPjRa48VT1wvmsfmTQzTgQuHNKP2tPr62UmsWs,975
268
+ particles/_alembic/versions/007_domain_hint.py,sha256=EexI2X3QLgzZcZAaVvr5ya8x3RMFHypks4YBOc4pTYY,577
269
+ particles/_alembic/versions/008_content_published_at.py,sha256=0a78ehQCMHSMGC9M9f0qJEJXVLY_IBZCT06ZCWt3Mu4,458
270
+ particles/_alembic/versions/009_provenance_chunk_hash.py,sha256=zRN3G2SXrF4yrxXMLUMA6jLD_bKQ9Or1JjamtuTvsMs,680
271
+ particles/_alembic/versions/010_context_fingerprint.py,sha256=blR-j55ADrmY7bHHA-tJkBNKRqkT4DZB9IYcpx4c_ZY,443
272
+ particles/_alembic/versions/011_particle_relations.py,sha256=0Gi-0AXwJahgGe8TJmWohKsAZ_GIQqSuk_vpPCpwGdE,1369
273
+ particles/_alembic/versions/012_taxonomies.py,sha256=gySgBKx6zxnKf5Vky2soAXs0Z7DSr9lDmpUT_nrJRDA,1935
274
+ particles/_alembic/versions/013_extractor_calibration.py,sha256=KaYFf73GOKH11F0y1Ua1wKKVxxDxdqr9dPaB6l0rT2o,456
275
+ particles/_alembic/versions/014_corpus_follow_edges.py,sha256=tZThv_NvzOaql_h0C-uwfPUFJeRemLJHNFMxKthv9AI,1254
276
+ particles/_alembic/versions/015_synthesis_cache.py,sha256=PbYrO5dR9lOvvrWGZx8VbDrRtIjeyNAN58UzNJ9aw2c,1177
277
+ particles/_alembic/versions/016_snapshot_extraction_started_at.py,sha256=UQJjORk-wW0dU2Pyv_hzn6M9YpF5Fzfi4Zwv5uI1FFs,946
278
+ particles/_alembic/versions/017_operator_events.py,sha256=LrC3fiQc7akJMVSECA6C0JII3J0SbjdtVrmwfB3FDCk,1755
279
+ particles/_alembic/versions/018_contributor_refs.py,sha256=pRaU6vBzKLiQJcki-ymQOnPiVWivGSdeeYGm7qVNa58,957
280
+ particles/_alembic/versions/019_embedding_model_id.py,sha256=OQGawyDYZcDZccvuws1KsQ1aK0l_izdsUl1jsznKcGI,866
281
+ particles/_alembic/versions/020_trust_lenses.py,sha256=XvvB3xfBwAqfl9IwMF38sWWx_yfUjys_8jsLnFXyXyw,2713
282
+ particles/_alembic/versions/021_registered_at_string.py,sha256=yxL16m3zebslw1sdlbRCyluOJE4Gzyitfsyl5VqGq78,2505
283
+ particles/_alembic/versions/022_assertion_modality.py,sha256=RiWCPCQRERocd5ETMEyrHT1NqTL9uQiFhf3efAefKpI,946
284
+ particles/_alembic/versions/023_url_mentions.py,sha256=ZoYhM18Sw5sYUjNnddzEOSIQ3QerfiXcjwg7DQatb8g,1469
285
+ particles/_alembic/versions/024_corpus_document_supersession.py,sha256=QGjlqmT0BAp-D0AAE7bRCrRjeH-JeBoZntr3DrsB248,982
286
+ particles/_alembic/versions/025_per_provider_calibration.py,sha256=CgG-Ic3m3Ep9nphd3OgcnmcdgrBEJmxhHfzdt75KTM8,3107
287
+ particles/_alembic/versions/026_conformance_trust_cap.py,sha256=1f3OUolR6bPIjZG75nyvz8jXbNmspoR94yJf5g0y8a0,1272
288
+ particles/_alembic/versions/027_lens_decay_rules.py,sha256=SimL7LcusC5pFD5deYwD3I8jR8Vykr8JsULBhnx3uS8,1370
289
+ particles/_alembic/versions/028_utility_lens.py,sha256=zgIa1Q5b-6-JrZQSDpVciaplR9CqpA9S2suwLq8ayuE,2518
290
+ particles/_alembic/versions/029_retired_at.py,sha256=FvqAMPi_SngUPXyjHLCKSd-wGckREnGxmOGu2akusQs,1164
291
+ particles/_alembic/versions/030_utility_rank_lift.py,sha256=8RDglgovo3y--KcNeHxKdxn22BEFzqpk7KkG6Nt77hg,2405
292
+ particles/_alembic/versions/031_content_norm_hash.py,sha256=Yg7ftv7yeDCSp5tpmRtdNoN9tT3BInsCq7wqPD6luIg,3432
293
+ particles/_alembic/versions/032_utility_event_source.py,sha256=GuoXikY2Rb_3f5ZS_FRfJpCXP0_9QzJ-HWQ8rVg-CDU,3142
294
+ particles/_alembic/versions/033_structured_claim.py,sha256=FXuZdxjBfLnXP0kjdn3xSxRVIDF-pB-hS6kyBJtdT30,3101
295
+ particles/_alembic/versions/034_extraction_provider_model.py,sha256=hO7vR9M9JNttKNWIkHy_-ldYQlOITX-QtRZ4wsI_eso,2884
296
+ particles/_alembic/versions/035_prefix_extraction_properties_keys.py,sha256=J14oBvf_J7NVzEfZCU1LI3lIA2gCzpC5x9oqlhqVkC4,4158
297
+ particles/_alembic/versions/036_curation_snapshots.py,sha256=q_kZHwERAnU69RJn4HU46x0Q79MmWBGRnyBNOwUpXeI,2016
298
+ particles/_artifacts/graph/LICENSE.cytoscape.txt,sha256=9-vcKjbEi1QT_gtg96FrYWP_Fx1bs18n39pDKWLdT0k,1083
299
+ particles/_artifacts/graph/cytoscape.min.js,sha256=nCo78lkuCxSh977AfAOlTxbe3zKvnNCvFVxxaqbIe8M,435328
300
+ particles/_artifacts/design/tokens.css,sha256=VBeatHWSsY1UqOUPgK9xVcMKomHRiJ0kW3Xmkgq8Ias,9454
301
+ linkedparticles-1.132.1.dist-info/METADATA,sha256=NfOC7EHRkselxNEGpKl5UoelD8iae3G48xAVXo7oaP4,14094
302
+ linkedparticles-1.132.1.dist-info/WHEEL,sha256=zOwg4jB6zX2kU910N-cMawjivD6tO8NEWvE12je1bVk,87
303
+ linkedparticles-1.132.1.dist-info/entry_points.txt,sha256=Fw2Oqcc0vmCmAFeJrex48286vaGqa7reKuL_ka6VflY,52
304
+ linkedparticles-1.132.1.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
305
+ linkedparticles-1.132.1.dist-info/licenses/NOTICE,sha256=-_Y9qhiSrnY7qqmLL0f5w5zQpvQFR782WuVi4yOyGAg,805
306
+ linkedparticles-1.132.1.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.32.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ particles = particles.api.cli:app