ltcai 11.5.2 → 11.7.0
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.
- package/README.md +93 -148
- package/bin/ltcai.js +234 -24
- package/docs/CHANGELOG.md +119 -0
- package/docs/COMMUNITY_AND_PLUGINS.md +1 -1
- package/docs/DEVELOPMENT.md +8 -6
- package/docs/ENTERPRISE.md +2 -1
- package/docs/MULTI_AGENT_RUNTIME.md +12 -5
- package/docs/ONBOARDING.md +1 -1
- package/docs/OPERATIONS.md +6 -3
- package/docs/REALTIME_COLLABORATION.md +1 -1
- package/docs/TRUST_MODEL.md +1 -1
- package/docs/WHY_LATTICE.md +1 -1
- package/docs/WORKFLOW_DESIGNER.md +3 -2
- package/docs/kg-schema.md +1 -1
- package/docs/v11.6.0_ONE_DOOR_PLAN.md +170 -0
- package/lattice_brain/__init__.py +42 -79
- package/lattice_brain/graph/__init__.py +9 -24
- package/lattice_brain/graph/_kg_common/__init__.py +13 -24
- package/lattice_brain/ingestion/__init__.py +19 -58
- package/lattice_brain/ingestion/pipeline.py +20 -398
- package/lattice_brain/multimodal/__init__.py +7 -18
- package/lattice_brain/multimodal/images.py +6 -264
- package/lattice_brain/multimodal/video.py +8 -247
- package/lattice_brain/runtime/__init__.py +8 -79
- package/lattice_brain/runtime/hooks.py +22 -584
- package/latticeai/__init__.py +1 -1
- package/latticeai/api/agent_worker_seam.py +7 -80
- package/latticeai/api/health.py +6 -20
- package/latticeai/api/local_files.py +16 -613
- package/latticeai/api/models.py +12 -87
- package/latticeai/api/search.py +17 -255
- package/latticeai/api/tools.py +69 -750
- package/latticeai/api/voice_capture.py +8 -70
- package/latticeai/api/worker_compute.py +842 -0
- package/latticeai/api/worker_seams.py +216 -0
- package/latticeai/app_factory.py +23 -232
- package/latticeai/cli/entrypoint.py +36 -249
- package/latticeai/core/agent_permission.py +16 -91
- package/latticeai/core/messages.py +89 -531
- package/latticeai/runtime/access_runtime.py +0 -14
- package/latticeai/runtime/bootstrap.py +10 -21
- package/latticeai/runtime/brain_runtime.py +35 -43
- package/latticeai/runtime/build_phases/__init__.py +21 -37
- package/latticeai/runtime/build_phases/features.py +99 -389
- package/latticeai/runtime/build_phases/foundation.py +82 -392
- package/latticeai/runtime/build_phases/web.py +91 -408
- package/latticeai/runtime/build_phases/worker_profile.py +244 -0
- package/latticeai/runtime/lifespan_runtime.py +7 -16
- package/latticeai/runtime/platform_services_runtime.py +1 -15
- package/latticeai/runtime/runtime_context.py +13 -130
- package/latticeai/runtime/security_runtime.py +10 -103
- package/latticeai/services/architecture_readiness.py +82 -43
- package/latticeai/services/model_runtime/__init__.py +2 -11
- package/latticeai/services/model_runtime/service.py +4 -28
- package/latticeai/services/p_reinforce.py +10 -261
- package/latticeai/services/product_readiness.py +31 -38
- package/latticeai/services/search_service.py +37 -795
- package/latticeai/services/tool_dispatch.py +30 -386
- package/latticeai/services/voice_capture.py +13 -107
- package/latticeai/tools/__init__.py +22 -49
- package/latticeai/tools/commands.py +0 -163
- package/latticeai/tools/computer.py +0 -39
- package/latticeai/tools/documents.py +1 -134
- package/latticeai/tools/filesystem.py +1 -247
- package/latticeai/tools/knowledge.py +1 -52
- package/latticeai/tools/local_files.py +0 -20
- package/latticeai/worker_app.py +75 -0
- package/package.json +2 -3
- package/requirements.txt +0 -5
- package/scripts/agent_eval.py +16 -28
- package/scripts/brain_quality_eval.py +20 -183
- package/scripts/bump_version.py +5 -5
- package/scripts/check_current_release_docs.mjs +7 -4
- package/scripts/check_openapi_drift.mjs +10 -0
- package/scripts/check_server_i18n.mjs +2 -18
- package/scripts/compose_openapi.py +377 -0
- package/scripts/export_openapi.py +32 -4
- package/scripts/gen_messages_catalog_fixture.py +302 -0
- package/scripts/gen_openapi_fragments.py +365 -0
- package/scripts/gen_redact_fixture.py +196 -0
- package/scripts/gen_worker_allowlist_fixture.py +115 -0
- package/scripts/generate_agent_parity_fixtures.py +33 -14
- package/scripts/openapi_route_families.json +2161 -0
- package/scripts/release_screen_claims.json +54 -0
- package/scripts/run_integration_tests.mjs +134 -29
- package/scripts/run_sidecar_e2e.mjs +104 -11
- package/scripts/wheel_smoke.py +32 -22
- package/src-tauri/Cargo.lock +375 -9
- package/src-tauri/Cargo.toml +1 -1
- package/src-tauri/src/backend.rs +151 -45
- package/src-tauri/src/main.rs +18 -18
- package/src-tauri/src/topology.rs +58 -88
- package/src-tauri/tauri.conf.json +1 -2
- package/static/app/asset-manifest.json +41 -41
- package/static/app/assets/{Act-DcQizkl1.js → Act-BPcVAbOL.js} +1 -1
- package/static/app/assets/AdminConsole-Bw1ATQL0.js +1 -0
- package/static/app/assets/{Brain-3VCSHFcn.js → Brain-CT92Kos0.js} +2 -2
- package/static/app/assets/{BrainHome-Qm8eaztx.js → BrainHome-CFBkt1K_.js} +1 -1
- package/static/app/assets/{BrainSignals-DS9BtKOW.js → BrainSignals-ReLWF2H8.js} +1 -1
- package/static/app/assets/Capture-BsTokYkk.js +1 -0
- package/static/app/assets/{Chronicle-BGvuAchH.js → Chronicle-B6f0T9id.js} +1 -1
- package/static/app/assets/{CommandPalette-Bqhm0Urn.js → CommandPalette-CuvjTv1u.js} +1 -1
- package/static/app/assets/{Library-BV6NnF0a.js → Library-BGJbG9Hd.js} +1 -1
- package/static/app/assets/{LivingBrain-GzenJchP.js → LivingBrain-DGYK_Jsa.js} +1 -1
- package/static/app/assets/{ProductFlow-DEP6-vML.js → ProductFlow-DXBC6brE.js} +1 -1
- package/static/app/assets/{ReviewCard-CNZ7XjWG.js → ReviewCard-HXRle3qq.js} +2 -2
- package/static/app/assets/System-CMHSO9qM.js +1 -0
- package/static/app/assets/arrow-left-BfmkskWx.js +1 -0
- package/static/app/assets/{bot-B_K1Tdmw.js → bot-Cn8bWRuq.js} +1 -1
- package/static/app/assets/{brain-DWyaV1L1.js → brain-CQJberbE.js} +1 -1
- package/static/app/assets/{button-aTn4s84A.js → button-Ct9f2_oT.js} +1 -1
- package/static/app/assets/circle-check-DruOxB-4.js +1 -0
- package/static/app/assets/{circle-pause-xKgeGXkT.js → circle-pause-CmzC_apg.js} +1 -1
- package/static/app/assets/{circle-play-DkT6tYPX.js → circle-play-D8mW2aQ7.js} +1 -1
- package/static/app/assets/{cpu-85xYObUC.js → cpu-DZcdd0PZ.js} +1 -1
- package/static/app/assets/{download-B5Fm7YXo.js → download-bv1KEPGQ.js} +1 -1
- package/static/app/assets/{folder-open-kk2Xa52u.js → folder-open-d-Pip5gr.js} +1 -1
- package/static/app/assets/{hard-drive-DkA3zBW_.js → hard-drive-D20iavUb.js} +1 -1
- package/static/app/assets/index-D9x-kSNy.css +2 -0
- package/static/app/assets/{index-BMPdTmlY.js → index-Do83hDzJ.js} +3 -3
- package/static/app/assets/{input-B0nRf2jO.js → input-BLXVNmj1.js} +1 -1
- package/static/app/assets/{link-2-Dwb4gnTc.js → link-2-BPJOFlAy.js} +1 -1
- package/static/app/assets/{permissionCopy-CQDUBrOZ.js → permissionCopy-ChdJd493.js} +1 -1
- package/static/app/assets/primitives-Cv5tbZBY.js +1 -0
- package/static/app/assets/search-CT9aho2j.js +1 -0
- package/static/app/assets/{share-2-BsrxFglO.js → share-2-YNX_NtMU.js} +1 -1
- package/static/app/assets/{shield-alert-5BStfp2_.js → shield-alert-DuQ3zrVL.js} +1 -1
- package/static/app/assets/{textarea-Cg8IUA-k.js → textarea-DqwLnli4.js} +1 -1
- package/static/app/assets/{useFocusTrap-CYKvE46M.js → useFocusTrap-ZVI98jaW.js} +1 -1
- package/static/app/assets/{useMutation-CSn9t1op.js → useMutation-CVC4qv_D.js} +1 -1
- package/static/app/assets/{useQuery-CY2OI2uy.js → useQuery-C7BeG4HU.js} +1 -1
- package/static/app/assets/{utils-Ddol2RWD.js → utils-CiFtIdZq.js} +1 -1
- package/static/app/assets/{workspace-BqDwOz_p.js → workspace-DQz9vIId.js} +1 -1
- package/static/app/index.html +4 -4
- package/static/sw.js +1 -1
- package/lattice_brain/archive.py +0 -522
- package/lattice_brain/context.py +0 -325
- package/lattice_brain/conversations.py +0 -382
- package/lattice_brain/core.py +0 -82
- package/lattice_brain/graph/_kg_contract.py +0 -249
- package/lattice_brain/graph/curator.py +0 -676
- package/lattice_brain/graph/discovery.py +0 -595
- package/lattice_brain/graph/discovery_index/__init__.py +0 -35
- package/lattice_brain/graph/discovery_index/cleanup.py +0 -182
- package/lattice_brain/graph/discovery_index/extract.py +0 -137
- package/lattice_brain/graph/discovery_index/scan.py +0 -411
- package/lattice_brain/graph/discovery_index/upsert.py +0 -495
- package/lattice_brain/graph/documents.py +0 -380
- package/lattice_brain/graph/fusion.py +0 -395
- package/lattice_brain/graph/identity.py +0 -175
- package/lattice_brain/graph/image_vectors.py +0 -230
- package/lattice_brain/graph/ingest.py +0 -829
- package/lattice_brain/graph/network.py +0 -205
- package/lattice_brain/graph/proactive.py +0 -724
- package/lattice_brain/graph/projection/__init__.py +0 -42
- package/lattice_brain/graph/projection/curation.py +0 -500
- package/lattice_brain/graph/projection/v2_schema.py +0 -518
- package/lattice_brain/graph/provenance.py +0 -524
- package/lattice_brain/graph/rerank.py +0 -163
- package/lattice_brain/graph/retrieval/__init__.py +0 -54
- package/lattice_brain/graph/retrieval/context.py +0 -197
- package/lattice_brain/graph/retrieval/graph_view.py +0 -319
- package/lattice_brain/graph/retrieval/hybrid.py +0 -488
- package/lattice_brain/graph/retrieval/maintenance.py +0 -121
- package/lattice_brain/graph/retrieval/signals.py +0 -95
- package/lattice_brain/graph/retrieval_docgen.py +0 -253
- package/lattice_brain/graph/retrieval_policy.py +0 -180
- package/lattice_brain/graph/retrieval_reads.py +0 -769
- package/lattice_brain/graph/retrieval_vector/__init__.py +0 -42
- package/lattice_brain/graph/retrieval_vector/fingerprint.py +0 -97
- package/lattice_brain/graph/retrieval_vector/indexing.py +0 -347
- package/lattice_brain/graph/retrieval_vector/search.py +0 -560
- package/lattice_brain/graph/retrieval_vector/status.py +0 -374
- package/lattice_brain/graph/schema.py +0 -792
- package/lattice_brain/graph/store.py +0 -268
- package/lattice_brain/graph/vector_index/__init__.py +0 -85
- package/lattice_brain/graph/vector_index/base.py +0 -167
- package/lattice_brain/graph/vector_index/brute_force.py +0 -110
- package/lattice_brain/graph/vector_index/hnsw.py +0 -290
- package/lattice_brain/graph/vector_index/jobs.py +0 -287
- package/lattice_brain/graph/vector_index/quantized.py +0 -148
- package/lattice_brain/graph/vector_index/selector.py +0 -161
- package/lattice_brain/graph/write_master.py +0 -308
- package/lattice_brain/ingestion/_contract.py +0 -90
- package/lattice_brain/ingestion/folder_scan.py +0 -57
- package/lattice_brain/ingestion/folders.py +0 -258
- package/lattice_brain/ingestion/jobs_api.py +0 -107
- package/lattice_brain/ingestion/routing.py +0 -295
- package/lattice_brain/ingestion_jobs.py +0 -380
- package/lattice_brain/memory.py +0 -75
- package/lattice_brain/portability/__init__.py +0 -90
- package/lattice_brain/portability/_contract.py +0 -42
- package/lattice_brain/portability/backups.py +0 -338
- package/lattice_brain/portability/bundles.py +0 -136
- package/lattice_brain/portability/constants.py +0 -93
- package/lattice_brain/portability/fsops.py +0 -138
- package/lattice_brain/portability/service.py +0 -41
- package/lattice_brain/portability/sharing.py +0 -710
- package/lattice_brain/quality.py +0 -543
- package/lattice_brain/retrieval_benchmark_fixtures.py +0 -92
- package/lattice_brain/runtime/agent_runtime.py +0 -859
- package/lattice_brain/runtime/contracts.py +0 -460
- package/lattice_brain/runtime/multi_agent.py +0 -942
- package/lattice_brain/runtime/statuses.py +0 -10
- package/lattice_brain/sealed_box.py +0 -240
- package/lattice_brain/self_model.py +0 -675
- package/lattice_brain/sensitivity.py +0 -94
- package/lattice_brain/storage/__init__.py +0 -22
- package/lattice_brain/storage/base.py +0 -100
- package/lattice_brain/storage/docker.py +0 -105
- package/lattice_brain/storage/factory.py +0 -31
- package/lattice_brain/storage/migration.py +0 -191
- package/lattice_brain/storage/postgres.py +0 -123
- package/lattice_brain/storage/sqlite.py +0 -143
- package/lattice_brain/synthesis.py +0 -824
- package/lattice_brain/workflow.py +0 -497
- package/latticeai/api/admin.py +0 -471
- package/latticeai/api/agent_registry.py +0 -105
- package/latticeai/api/agents.py +0 -228
- package/latticeai/api/auth.py +0 -383
- package/latticeai/api/automation_intelligence.py +0 -401
- package/latticeai/api/brain_intelligence.py +0 -199
- package/latticeai/api/browser.py +0 -493
- package/latticeai/api/change_proposals.py +0 -89
- package/latticeai/api/chat.py +0 -572
- package/latticeai/api/chat_agent_http.py +0 -892
- package/latticeai/api/chat_contracts.py +0 -73
- package/latticeai/api/chat_documents.py +0 -276
- package/latticeai/api/chat_helpers.py +0 -460
- package/latticeai/api/chat_history.py +0 -101
- package/latticeai/api/chat_hybrid.py +0 -113
- package/latticeai/api/chat_intents.py +0 -646
- package/latticeai/api/chat_stream.py +0 -216
- package/latticeai/api/chronicle.py +0 -63
- package/latticeai/api/command_center.py +0 -51
- package/latticeai/api/computer_use.py +0 -474
- package/latticeai/api/evidence_actions.py +0 -48
- package/latticeai/api/features.py +0 -70
- package/latticeai/api/funnel_metrics.py +0 -31
- package/latticeai/api/garden.py +0 -34
- package/latticeai/api/hooks.py +0 -165
- package/latticeai/api/index_jobs.py +0 -145
- package/latticeai/api/invitations.py +0 -100
- package/latticeai/api/knowledge_graph.py +0 -536
- package/latticeai/api/marketplace.py +0 -105
- package/latticeai/api/mcp.py +0 -482
- package/latticeai/api/memory.py +0 -270
- package/latticeai/api/network.py +0 -81
- package/latticeai/api/network_boundary.py +0 -225
- package/latticeai/api/permission_mode.py +0 -61
- package/latticeai/api/permissions.py +0 -436
- package/latticeai/api/plugins.py +0 -126
- package/latticeai/api/portability.py +0 -391
- package/latticeai/api/project_sessions.py +0 -114
- package/latticeai/api/realtime.py +0 -118
- package/latticeai/api/review_queue.py +0 -364
- package/latticeai/api/security_dashboard.py +0 -604
- package/latticeai/api/setup.py +0 -319
- package/latticeai/api/static_routes.py +0 -354
- package/latticeai/api/ui_redirects.py +0 -26
- package/latticeai/api/workflow_designer.py +0 -394
- package/latticeai/api/workspace.py +0 -856
- package/latticeai/api/workspace_scope.py +0 -125
- package/latticeai/core/agent/__init__.py +0 -93
- package/latticeai/core/agent/_contract.py +0 -79
- package/latticeai/core/agent/context.py +0 -57
- package/latticeai/core/agent/deps.py +0 -125
- package/latticeai/core/agent/execution.py +0 -622
- package/latticeai/core/agent/planning.py +0 -145
- package/latticeai/core/agent/recovery.py +0 -157
- package/latticeai/core/agent/runtime.py +0 -210
- package/latticeai/core/agent/verification.py +0 -231
- package/latticeai/core/agent_eval.py +0 -739
- package/latticeai/core/agent_helpers.py +0 -493
- package/latticeai/core/agent_profiles.py +0 -110
- package/latticeai/core/agent_prompts.py +0 -171
- package/latticeai/core/agent_registry.py +0 -232
- package/latticeai/core/agent_state.py +0 -41
- package/latticeai/core/agent_trace.py +0 -104
- package/latticeai/core/artifact_ledger.py +0 -109
- package/latticeai/core/audit.py +0 -260
- package/latticeai/core/builtin_hooks.py +0 -105
- package/latticeai/core/context_builder.py +0 -394
- package/latticeai/core/document_generator.py +0 -103
- package/latticeai/core/enterprise.py +0 -154
- package/latticeai/core/enterprise_admin.py +0 -158
- package/latticeai/core/file_generation/__init__.py +0 -115
- package/latticeai/core/file_generation/bundles.py +0 -76
- package/latticeai/core/file_generation/extraction.py +0 -154
- package/latticeai/core/file_generation/inference.py +0 -235
- package/latticeai/core/file_generation/orchestration.py +0 -152
- package/latticeai/core/file_generation/prompting.py +0 -117
- package/latticeai/core/file_generation/repair.py +0 -114
- package/latticeai/core/file_generation/sanitize.py +0 -61
- package/latticeai/core/file_generation/validation.py +0 -201
- package/latticeai/core/invitations.py +0 -132
- package/latticeai/core/legacy_compatibility.py +0 -243
- package/latticeai/core/logging_safety.py +0 -46
- package/latticeai/core/marketplace.py +0 -293
- package/latticeai/core/mcp_catalog.py +0 -452
- package/latticeai/core/mcp_registry.py +0 -506
- package/latticeai/core/network_boundary.py +0 -168
- package/latticeai/core/oidc.py +0 -208
- package/latticeai/core/plugins.py +0 -432
- package/latticeai/core/product_hardening.py +0 -218
- package/latticeai/core/project_sessions.py +0 -337
- package/latticeai/core/realtime.py +0 -238
- package/latticeai/core/run_explain.py +0 -426
- package/latticeai/core/run_store.py +0 -252
- package/latticeai/core/timezones.py +0 -80
- package/latticeai/core/workspace_computer_memory.py +0 -84
- package/latticeai/core/workspace_graph_trace.py +0 -155
- package/latticeai/core/workspace_indexing.py +0 -102
- package/latticeai/core/workspace_memory.py +0 -77
- package/latticeai/core/workspace_onboarding.py +0 -104
- package/latticeai/core/workspace_os.py +0 -978
- package/latticeai/core/workspace_os_constants.py +0 -126
- package/latticeai/core/workspace_os_state.py +0 -180
- package/latticeai/core/workspace_os_utils.py +0 -103
- package/latticeai/core/workspace_permissions.py +0 -101
- package/latticeai/core/workspace_plugins.py +0 -97
- package/latticeai/core/workspace_relationships.py +0 -99
- package/latticeai/core/workspace_reorganization.py +0 -335
- package/latticeai/core/workspace_review_items.py +0 -112
- package/latticeai/core/workspace_runs.py +0 -726
- package/latticeai/core/workspace_skills.py +0 -109
- package/latticeai/core/workspace_snapshots.py +0 -198
- package/latticeai/core/workspace_timeline.py +0 -110
- package/latticeai/integrations/__init__.py +0 -0
- package/latticeai/integrations/telegram_bot/__init__.py +0 -123
- package/latticeai/integrations/telegram_bot/__main__.py +0 -17
- package/latticeai/integrations/telegram_bot/config.py +0 -86
- package/latticeai/integrations/telegram_bot/dispatch.py +0 -311
- package/latticeai/integrations/telegram_bot/flows.py +0 -478
- package/latticeai/integrations/telegram_bot/helpers.py +0 -322
- package/latticeai/integrations/telegram_bot/screens.py +0 -394
- package/latticeai/runtime/audit_runtime.py +0 -76
- package/latticeai/runtime/automation_runtime.py +0 -81
- package/latticeai/runtime/chat_wiring.py +0 -141
- package/latticeai/runtime/context_runtime.py +0 -66
- package/latticeai/runtime/feature_toggle_wiring.py +0 -157
- package/latticeai/runtime/history_runtime.py +0 -163
- package/latticeai/runtime/history_writer.py +0 -138
- package/latticeai/runtime/hooks_runtime.py +0 -77
- package/latticeai/runtime/model_wiring.py +0 -68
- package/latticeai/runtime/namespace_runtime.py +0 -163
- package/latticeai/runtime/network_boundary_wiring.py +0 -117
- package/latticeai/runtime/network_config_runtime.py +0 -56
- package/latticeai/runtime/permission_mode_wiring.py +0 -112
- package/latticeai/runtime/persistence_runtime.py +0 -159
- package/latticeai/runtime/platform_runtime_wiring.py +0 -89
- package/latticeai/runtime/review_wiring.py +0 -42
- package/latticeai/runtime/router_registration.py +0 -693
- package/latticeai/runtime/service_singletons.py +0 -55
- package/latticeai/runtime/sso_config_runtime.py +0 -128
- package/latticeai/runtime/user_key_runtime.py +0 -106
- package/latticeai/runtime/web_runtime.py +0 -92
- package/latticeai/server_app.py +0 -51
- package/latticeai/services/app_context.py +0 -130
- package/latticeai/services/automation_execution.py +0 -266
- package/latticeai/services/automation_intelligence.py +0 -614
- package/latticeai/services/brain_automation.py +0 -191
- package/latticeai/services/brain_intelligence/__init__.py +0 -58
- package/latticeai/services/brain_intelligence/_contract.py +0 -71
- package/latticeai/services/brain_intelligence/consistency.py +0 -193
- package/latticeai/services/brain_intelligence/constants.py +0 -47
- package/latticeai/services/brain_intelligence/digest.py +0 -258
- package/latticeai/services/brain_intelligence/health.py +0 -331
- package/latticeai/services/brain_intelligence/proposals.py +0 -259
- package/latticeai/services/brain_intelligence/sampling.py +0 -84
- package/latticeai/services/brain_intelligence/service.py +0 -48
- package/latticeai/services/change_proposals.py +0 -471
- package/latticeai/services/chat_service.py +0 -243
- package/latticeai/services/chronicle.py +0 -555
- package/latticeai/services/cloud_egress_audit.py +0 -85
- package/latticeai/services/cloud_extraction.py +0 -129
- package/latticeai/services/cloud_streaming.py +0 -268
- package/latticeai/services/cloud_token_guard.py +0 -84
- package/latticeai/services/command_center.py +0 -548
- package/latticeai/services/evidence_actions.py +0 -258
- package/latticeai/services/feature_toggles.py +0 -502
- package/latticeai/services/folder_watch.py +0 -520
- package/latticeai/services/funnel_metrics.py +0 -307
- package/latticeai/services/hybrid_chat.py +0 -316
- package/latticeai/services/hybrid_context.py +0 -228
- package/latticeai/services/hybrid_policy.py +0 -129
- package/latticeai/services/interop_bridges.py +0 -978
- package/latticeai/services/local_knowledge.py +0 -465
- package/latticeai/services/memory_service/__init__.py +0 -52
- package/latticeai/services/memory_service/_contract.py +0 -100
- package/latticeai/services/memory_service/brief.py +0 -431
- package/latticeai/services/memory_service/constants.py +0 -57
- package/latticeai/services/memory_service/maintenance.py +0 -138
- package/latticeai/services/memory_service/manager.py +0 -186
- package/latticeai/services/memory_service/proof.py +0 -136
- package/latticeai/services/memory_service/recall.py +0 -225
- package/latticeai/services/memory_service/service.py +0 -48
- package/latticeai/services/memory_service/stores.py +0 -110
- package/latticeai/services/mode_store.py +0 -132
- package/latticeai/services/model_recommendation.py +0 -224
- package/latticeai/services/model_runtime/cloud.py +0 -87
- package/latticeai/services/network_boundary_service.py +0 -117
- package/latticeai/services/obsidian_bridge.py +0 -609
- package/latticeai/services/openai_compatible_adapter.py +0 -101
- package/latticeai/services/permission_mode_service.py +0 -122
- package/latticeai/services/platform_runtime.py +0 -366
- package/latticeai/services/review_queue.py +0 -380
- package/latticeai/services/router_context.py +0 -59
- package/latticeai/services/run_executor.py +0 -387
- package/latticeai/services/self_model_service.py +0 -171
- package/latticeai/services/setup_detection.py +0 -147
- package/latticeai/services/triggers.py +0 -378
- package/latticeai/services/upload_service.py +0 -172
- package/latticeai/services/workspace_service.py +0 -165
- package/latticeai/setup/__init__.py +0 -25
- package/latticeai/setup/auto_setup.py +0 -846
- package/latticeai/setup/demo_corpus.py +0 -98
- package/latticeai/setup/wizard/__init__.py +0 -126
- package/latticeai/setup/wizard/catalog.py +0 -175
- package/latticeai/setup/wizard/detect.py +0 -302
- package/latticeai/setup/wizard/install.py +0 -348
- package/latticeai/setup/wizard/paths.py +0 -165
- package/latticeai/setup/wizard/plans.py +0 -74
- package/latticeai/setup/wizard/recommend.py +0 -320
- package/scripts/bench_agent_smoke.py +0 -409
- package/scripts/bench_models.py +0 -540
- package/scripts/bench_vector_index.py +0 -295
- package/scripts/funnel_soft_gate.py +0 -192
- package/scripts/generate_agent_loop_fixtures.py +0 -994
- package/scripts/generate_rust_parity_fixtures.py +0 -908
- package/scripts/migrate_brain_storage.py +0 -57
- package/scripts/parity_fixture_corpus_context.py +0 -162
- package/scripts/parity_fixture_corpus_docgen.py +0 -341
- package/scripts/profile_kg.py +0 -355
- package/server.py +0 -30
- package/static/app/assets/AdminConsole-cf4npybT.js +0 -1
- package/static/app/assets/Capture-DiQ219jW.js +0 -1
- package/static/app/assets/System-CieofHQa.js +0 -1
- package/static/app/assets/arrow-left-kfsrk0mv.js +0 -1
- package/static/app/assets/circle-check-qqLug9nU.js +0 -1
- package/static/app/assets/index-DxmOfNRi.css +0 -2
- package/static/app/assets/primitives-SNp0LRJz.js +0 -1
- package/static/app/assets/search-BcHqkjoy.js +0 -1
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
"""
|
|
2
|
-
|
|
1
|
+
"""The graph's *compute* vocabulary, in one importable place.
|
|
2
|
+
|
|
3
|
+
This package was the shared surface of the SQLite knowledge graph: constants,
|
|
4
|
+
path/hash helpers, chunking, concept and triple extraction, and the schema
|
|
5
|
+
handles the write mixins composed into ``KnowledgeGraphStore``. v11.6.0 moved
|
|
6
|
+
every write into ``lattice-core``, and the store went with them.
|
|
3
7
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
8
|
+
What is left is the half that produces *structures*: chunk a document, pull the
|
|
9
|
+
concepts and triples out of a passage, classify a node type, infer an edge verb,
|
|
10
|
+
hash a file. ``POST /worker/parse``, ``POST /worker/embed`` and
|
|
11
|
+
``POST /worker/extract`` are the routes that answer with them; Rust decides what
|
|
12
|
+
to write.
|
|
7
13
|
"""
|
|
8
14
|
|
|
9
15
|
# ruff: noqa: F401,F841
|
|
@@ -26,21 +32,7 @@ from datetime import datetime
|
|
|
26
32
|
from pathlib import Path
|
|
27
33
|
from typing import Any, Dict, Iterable, Iterator, List, Optional, Tuple
|
|
28
34
|
|
|
29
|
-
try:
|
|
30
|
-
from ..schema import EdgeType, KGStoreV2, NodeType, _exec_script
|
|
31
|
-
except Exception: # pragma: no cover - v2 schema is optional at import time
|
|
32
|
-
KGStoreV2 = None # type: ignore[assignment,misc]
|
|
33
|
-
NodeType = None # type: ignore[assignment,misc]
|
|
34
|
-
EdgeType = None # type: ignore[assignment,misc]
|
|
35
|
-
_exec_script = None # type: ignore[assignment]
|
|
36
|
-
|
|
37
35
|
from ...embeddings import LocalEmbeddingModel
|
|
38
|
-
from ..json_utils import _json, _safe_loads
|
|
39
|
-
from ..runtime import get_llm_router, set_llm_router
|
|
40
|
-
|
|
41
|
-
# Default read source for the graph queries: v2 reconstruction views.
|
|
42
|
-
# Override with LATTICEAI_KG_READ_V2=0 to fall back to the legacy tables.
|
|
43
|
-
_READ_FROM_V2_DEFAULT = os.getenv("LATTICEAI_KG_READ_V2", "1") != "0"
|
|
44
36
|
|
|
45
37
|
# Static constants (projection/format versions, local-ingestion classification
|
|
46
38
|
# tables, OS exclusion lists) live in ._kg_constants; re-exported here so every
|
|
@@ -96,6 +88,8 @@ from .._kg_fsutil import ( # noqa: E402,F401
|
|
|
96
88
|
_size_limit_for_category,
|
|
97
89
|
_slug,
|
|
98
90
|
)
|
|
91
|
+
from ..json_utils import _json, _safe_loads
|
|
92
|
+
from ..runtime import get_llm_router, set_llm_router
|
|
99
93
|
|
|
100
94
|
# The logic this module used to hold inline lives in three cohesive submodules
|
|
101
95
|
# (v11.3.0 decomposition). Every name is re-exported below, so the twelve
|
|
@@ -172,11 +166,9 @@ __all__ = [
|
|
|
172
166
|
"Dict",
|
|
173
167
|
"EDGE_VERB",
|
|
174
168
|
"ENABLE_LLM_EXTRACTION",
|
|
175
|
-
"EdgeType",
|
|
176
169
|
"GRAPH_SCHEMA_VERSION",
|
|
177
170
|
"Iterable",
|
|
178
171
|
"Iterator",
|
|
179
|
-
"KGStoreV2",
|
|
180
172
|
"LINUX_EXCLUDED_PREFIXES",
|
|
181
173
|
"LOCAL_CODE_EXTENSIONS",
|
|
182
174
|
"LOCAL_DOCUMENT_EXTENSIONS",
|
|
@@ -189,7 +181,6 @@ __all__ = [
|
|
|
189
181
|
"List",
|
|
190
182
|
"LocalEmbeddingModel",
|
|
191
183
|
"MACOS_EXCLUDED_PREFIXES",
|
|
192
|
-
"NodeType",
|
|
193
184
|
"Optional",
|
|
194
185
|
"Path",
|
|
195
186
|
"SENSITIVE_PATH_KEYWORDS",
|
|
@@ -214,7 +205,6 @@ __all__ = [
|
|
|
214
205
|
"_PROSE_MIN_SPAN_RATIO",
|
|
215
206
|
"_PROSE_STRONG_BOUNDARY_RE",
|
|
216
207
|
"_PROSE_WEAK_BOUNDARY_RE",
|
|
217
|
-
"_READ_FROM_V2_DEFAULT",
|
|
218
208
|
"_V2_WRITE_MASTER_KEY",
|
|
219
209
|
"_chunks",
|
|
220
210
|
"_classify_node_type",
|
|
@@ -224,7 +214,6 @@ __all__ = [
|
|
|
224
214
|
"_current_os_type",
|
|
225
215
|
"_drive_id_for_path",
|
|
226
216
|
"_excluded_directory_reason",
|
|
227
|
-
"_exec_script",
|
|
228
217
|
"_extract_concepts",
|
|
229
218
|
"_extract_concepts_rules",
|
|
230
219
|
"_extract_triples",
|
|
@@ -1,63 +1,34 @@
|
|
|
1
|
-
"""
|
|
1
|
+
"""Ingestion: what a source *is*, how it hashes, and how good it looks.
|
|
2
2
|
|
|
3
|
-
v3.6.0 Knowledge Graph First principle
|
|
4
|
-
Graph and no source creates an isolated silo
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
v3.6.0's Knowledge Graph First principle — *no data source bypasses the
|
|
4
|
+
Knowledge Graph and no source creates an isolated silo* — is still the rule.
|
|
5
|
+
The door it goes through is no longer here: v11.6.0 §Wave 2.5 made Rust the
|
|
6
|
+
single writer of the Brain, so ``IngestionPipeline.ingest``, the per-source
|
|
7
|
+
routing doors, the folder walk, the ``.latticeignore`` reader and the durable
|
|
8
|
+
background queue moved to ``lattice-core`` / ``lattice-ingest`` /
|
|
9
|
+
``lattice-jobs``.
|
|
8
10
|
|
|
9
|
-
|
|
11
|
+
What stays is the vocabulary both sides share, and the compute the write path
|
|
12
|
+
asks this worker for:
|
|
10
13
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
``
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
Web ingestion seam
|
|
20
|
-
------------------
|
|
21
|
-
The graph layer never fetches or parses the web. Fetching, rendering,
|
|
22
|
-
readability extraction, and parse quality are the responsibility of the
|
|
23
|
-
*upstream* capture surfaces (browser extension, tools layer, MCP servers):
|
|
24
|
-
they hand this module already-extracted text. :meth:`IngestionPipeline.
|
|
25
|
-
ingest_web_page` is the convenience wrapper for that hand-off — it normalizes
|
|
26
|
-
``(url, extracted_text)`` into an ``IngestionItem(source_type="web_url")`` and
|
|
27
|
-
routes it through the exact same :meth:`IngestionPipeline.ingest` door as every
|
|
28
|
-
other source. If the extracted text is bad, fix the extractor upstream; the
|
|
29
|
-
pipeline will not attempt network access or HTML parsing.
|
|
30
|
-
|
|
31
|
-
Folder ingestion (:meth:`IngestionPipeline.ingest_folder`) walks a local
|
|
32
|
-
directory, honors a gitignore-like ``.latticeignore`` file at the root
|
|
33
|
-
(blank lines, ``#`` comments, ``fnmatch`` glob patterns, ``dir/`` suffix for
|
|
34
|
-
directories), always skips common noise (``.git``, ``node_modules``,
|
|
35
|
-
``__pycache__``, virtualenvs, ``dist``, hidden entries by default), applies
|
|
36
|
-
size/extension filters, and either ingests inline or schedules through the
|
|
37
|
-
existing :class:`BackgroundIngestionQueue`.
|
|
38
|
-
|
|
39
|
-
Split into cohesive submodules in v11.3.0 (no behaviour change): ``constants``
|
|
40
|
-
(routing tables + gates), ``quality`` (advisory scoring), ``models`` (item and
|
|
41
|
-
result), ``hashing``, ``folder_scan`` (``.latticeignore``), and the three mixins
|
|
42
|
-
``routing`` / ``folders`` / ``jobs_api`` that ``pipeline`` composes into
|
|
43
|
-
``IngestionPipeline``. This module re-exports every name the single file
|
|
44
|
-
exposed, so ``lattice_brain.ingestion.X`` keeps working.
|
|
14
|
+
* ``constants`` — the routing tables and the multi-modal gates;
|
|
15
|
+
* ``models`` — :class:`IngestionItem` / :class:`IngestionResult`, now the DTOs
|
|
16
|
+
of a parse request rather than of a write;
|
|
17
|
+
* ``hashing`` — ``content_hash_text`` and the file digest, which decide
|
|
18
|
+
idempotency and must produce the same bytes on both sides;
|
|
19
|
+
* ``quality`` — the advisory extraction score behind ``POST /worker/parse``;
|
|
20
|
+
* ``pipeline`` — the multi-modal capability probe.
|
|
45
21
|
"""
|
|
46
22
|
|
|
47
23
|
from __future__ import annotations
|
|
48
24
|
|
|
49
|
-
#
|
|
50
|
-
#
|
|
51
|
-
# below therefore uses the redundant-alias form: it reproduces exactly that
|
|
52
|
-
# surface, and it marks each name as deliberate rather than a leftover import.
|
|
25
|
+
# Re-exports use the redundant-alias form: it says "this is a re-export", not a
|
|
26
|
+
# leftover import.
|
|
53
27
|
#
|
|
54
28
|
# Stubbing note: rebinding one of these *here* changes only this module's name.
|
|
55
29
|
# The submodule that calls it holds its own reference, so a test standing in for
|
|
56
30
|
# a helper patches the submodule that uses it.
|
|
57
31
|
from ..gates import FeatureGate as FeatureGate
|
|
58
|
-
from ..ingestion_jobs import JOB_ERRORS_CAP as JOB_ERRORS_CAP
|
|
59
|
-
from ..ingestion_jobs import BackgroundIngestionJob as BackgroundIngestionJob
|
|
60
|
-
from ..ingestion_jobs import BackgroundIngestionQueue as BackgroundIngestionQueue
|
|
61
32
|
from ..multimodal import AUDIO_EXTENSIONS as AUDIO_EXTENSIONS
|
|
62
33
|
from ..multimodal import DEFAULT_KEYFRAMES as DEFAULT_KEYFRAMES
|
|
63
34
|
from ..multimodal import IMAGE_EXTENSIONS as IMAGE_EXTENSIONS
|
|
@@ -75,12 +46,8 @@ from ..multimodal import ffmpeg_available as ffmpeg_available
|
|
|
75
46
|
from ..multimodal import image_quality_score as image_quality_score
|
|
76
47
|
from ..multimodal import read_video_facts as read_video_facts
|
|
77
48
|
from ..multimodal import transcribe_audio as transcribe_audio
|
|
78
|
-
from ..multimodal import video_frame_dir as video_frame_dir
|
|
79
49
|
from ..multimodal import video_quality_score as video_quality_score
|
|
80
|
-
from ..multimodal import write_image_memory as write_image_memory
|
|
81
|
-
from ..multimodal import write_video_memory as write_video_memory
|
|
82
50
|
from ..quiet import quiet as quiet
|
|
83
|
-
from ..runtime.hooks import dispatch_tool as dispatch_tool
|
|
84
51
|
from ..utils import utc_now_iso as utc_now_iso
|
|
85
52
|
from .constants import _MEMORY_NODE_TYPES as _MEMORY_NODE_TYPES
|
|
86
53
|
from .constants import ALLOW_MULTIMODAL_ENV as ALLOW_MULTIMODAL_ENV
|
|
@@ -107,15 +74,10 @@ from .constants import MULTIMODAL_GATE as MULTIMODAL_GATE
|
|
|
107
74
|
from .constants import TEXT_SOURCE_TYPES as TEXT_SOURCE_TYPES
|
|
108
75
|
from .constants import VIDEO_GATE as VIDEO_GATE
|
|
109
76
|
from .constants import VIDEO_SOURCE_TYPES as VIDEO_SOURCE_TYPES
|
|
110
|
-
from .folder_scan import _load_latticeignore as _load_latticeignore
|
|
111
|
-
from .folder_scan import _matches_ignore as _matches_ignore
|
|
112
|
-
from .folders import IngestionFolderMixin as IngestionFolderMixin
|
|
113
77
|
from .hashing import _file_digest as _file_digest
|
|
114
78
|
from .hashing import content_hash_text as content_hash_text
|
|
115
|
-
from .jobs_api import IngestionJobsMixin as IngestionJobsMixin
|
|
116
79
|
from .models import IngestionItem as IngestionItem
|
|
117
80
|
from .models import IngestionResult as IngestionResult
|
|
118
|
-
from .pipeline import VECTOR_TICK_LIMIT as VECTOR_TICK_LIMIT
|
|
119
81
|
from .pipeline import IngestionPipeline as IngestionPipeline
|
|
120
82
|
from .quality import _BOILERPLATE_LINE_MARKERS as _BOILERPLATE_LINE_MARKERS
|
|
121
83
|
from .quality import _CAPTURE_REASON_LABELS as _CAPTURE_REASON_LABELS
|
|
@@ -127,4 +89,3 @@ from .quality import QUALITY_LOW_WARNING as QUALITY_LOW_WARNING
|
|
|
127
89
|
from .quality import _quality_level as _quality_level
|
|
128
90
|
from .quality import assess_extraction_quality as assess_extraction_quality
|
|
129
91
|
from .quality import capture_quality_verdict as capture_quality_verdict
|
|
130
|
-
from .routing import IngestionRoutingMixin as IngestionRoutingMixin
|