ltcai 11.5.2 → 11.6.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 +91 -148
- package/bin/ltcai.js +234 -24
- package/docs/CHANGELOG.md +75 -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 +21 -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-CToZnOHz.js} +1 -1
- package/static/app/assets/{AdminConsole-cf4npybT.js → AdminConsole-D5kbrBu8.js} +1 -1
- package/static/app/assets/{Brain-3VCSHFcn.js → Brain-C6zCdv4S.js} +1 -1
- package/static/app/assets/{BrainHome-Qm8eaztx.js → BrainHome-D4n3EDUt.js} +1 -1
- package/static/app/assets/{BrainSignals-DS9BtKOW.js → BrainSignals-CzeZ-vQ9.js} +1 -1
- package/static/app/assets/{Capture-DiQ219jW.js → Capture-DPcyTczq.js} +1 -1
- package/static/app/assets/{Chronicle-BGvuAchH.js → Chronicle-D3Nx-oWS.js} +1 -1
- package/static/app/assets/{CommandPalette-Bqhm0Urn.js → CommandPalette-DPPvpp28.js} +1 -1
- package/static/app/assets/{Library-BV6NnF0a.js → Library-Co2qTu3I.js} +1 -1
- package/static/app/assets/{LivingBrain-GzenJchP.js → LivingBrain-Bsmzwy8_.js} +1 -1
- package/static/app/assets/{ProductFlow-DEP6-vML.js → ProductFlow-CBLdmesT.js} +1 -1
- package/static/app/assets/{ReviewCard-CNZ7XjWG.js → ReviewCard-CfR6DLs7.js} +1 -1
- package/static/app/assets/{System-CieofHQa.js → System-Ce-P2YL6.js} +1 -1
- package/static/app/assets/arrow-left-DD5jFGHV.js +1 -0
- package/static/app/assets/{bot-B_K1Tdmw.js → bot-C5-XIww2.js} +1 -1
- package/static/app/assets/{brain-DWyaV1L1.js → brain-CFRJUvdX.js} +1 -1
- package/static/app/assets/{button-aTn4s84A.js → button-DI1KcQP-.js} +1 -1
- package/static/app/assets/circle-check-CY20XMCh.js +1 -0
- package/static/app/assets/{circle-pause-xKgeGXkT.js → circle-pause-C8HHyood.js} +1 -1
- package/static/app/assets/{circle-play-DkT6tYPX.js → circle-play-Cufc235E.js} +1 -1
- package/static/app/assets/{cpu-85xYObUC.js → cpu-DW2_JVsv.js} +1 -1
- package/static/app/assets/{download-B5Fm7YXo.js → download-gbdKTBb8.js} +1 -1
- package/static/app/assets/{folder-open-kk2Xa52u.js → folder-open-C9ydyX33.js} +1 -1
- package/static/app/assets/{hard-drive-DkA3zBW_.js → hard-drive-BxNMzBM3.js} +1 -1
- package/static/app/assets/index-BovSWRmQ.css +2 -0
- package/static/app/assets/{index-BMPdTmlY.js → index-q9XyDY7A.js} +3 -3
- package/static/app/assets/{input-B0nRf2jO.js → input-GLD94Y_K.js} +1 -1
- package/static/app/assets/{link-2-Dwb4gnTc.js → link-2-B4Y0gz1S.js} +1 -1
- package/static/app/assets/{permissionCopy-CQDUBrOZ.js → permissionCopy-CxrV0fvU.js} +1 -1
- package/static/app/assets/{primitives-SNp0LRJz.js → primitives-2ANdAsu2.js} +1 -1
- package/static/app/assets/search-DTxtjQ07.js +1 -0
- package/static/app/assets/{share-2-BsrxFglO.js → share-2-DxArfiuI.js} +1 -1
- package/static/app/assets/{shield-alert-5BStfp2_.js → shield-alert-CgftuFFs.js} +1 -1
- package/static/app/assets/{textarea-Cg8IUA-k.js → textarea-BHVBAoCr.js} +1 -1
- package/static/app/assets/{useFocusTrap-CYKvE46M.js → useFocusTrap-Dzq2j_OG.js} +1 -1
- package/static/app/assets/{useMutation-CSn9t1op.js → useMutation-BcqfMLNq.js} +1 -1
- package/static/app/assets/{useQuery-CY2OI2uy.js → useQuery-DBzLKCOv.js} +1 -1
- package/static/app/assets/{utils-Ddol2RWD.js → utils-B-Aah1bO.js} +1 -1
- package/static/app/assets/{workspace-BqDwOz_p.js → workspace-B6fFhoko.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/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/search-BcHqkjoy.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),l=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),ee=Symbol.for(`react.activity`),f=Symbol.iterator;function p(e){return typeof e!=`object`||!e?null:(e=f&&e[f]||e[`@@iterator`],typeof e==`function`?e:null)}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h=Object.assign,g={};function _(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}_.prototype.isReactComponent={},_.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},_.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function v(){}v.prototype=_.prototype;function y(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}var b=y.prototype=new v;b.constructor=y,h(b,_.prototype),b.isPureReactComponent=!0;var x=Array.isArray;function S(){}var C={H:null,A:null,T:null,S:null},w=Object.prototype.hasOwnProperty;function T(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function E(e,t){return T(e.type,t,e.props)}function D(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function O(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var k=/\/+/g;function A(e,t){return typeof e==`object`&&e&&e.key!=null?O(``+e.key):t.toString(36)}function j(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(S,S):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function M(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,M(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+A(e,0):a,x(o)?(i=``,c!=null&&(i=c.replace(k,`$&/`)+`/`),M(o,r,i,``,function(e){return e})):o!=null&&(D(o)&&(o=E(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(k,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(x(e))for(var u=0;u<e.length;u++)a=e[u],s=l+A(a,u),c+=M(a,r,i,s,o);else if(u=p(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+A(a,u++),c+=M(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return M(j(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function N(e,t,n){if(e==null)return e;var r=[],i=0;return M(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function P(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var F=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},te={map:N,forEach:function(e,t,n){N(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return N(e,function(){t++}),t},toArray:function(e){return N(e,function(e){return e})||[]},only:function(e){if(!D(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=ee,e.Children=te,e.Component=_,e.Fragment=r,e.Profiler=a,e.PureComponent=y,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=C,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return C.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=h({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!w.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return T(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)w.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return T(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=D,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:P}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=C.T,n={};C.T=n;try{var r=e(),i=C.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(S,F)}catch(e){F(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),C.T=t}},e.unstable_useCacheRefresh=function(){return C.H.useCacheRefresh()},e.use=function(e){return C.H.use(e)},e.useActionState=function(e,t,n){return C.H.useActionState(e,t,n)},e.useCallback=function(e,t){return C.H.useCallback(e,t)},e.useContext=function(e){return C.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return C.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return C.H.useEffect(e,t)},e.useEffectEvent=function(e){return C.H.useEffectEvent(e)},e.useId=function(){return C.H.useId()},e.useImperativeHandle=function(e,t,n){return C.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return C.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return C.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return C.H.useMemo(e,t)},e.useOptimistic=function(e,t){return C.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return C.H.useReducer(e,t,n)},e.useRef=function(e){return C.H.useRef(e)},e.useState=function(e){return C.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return C.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return C.H.useTransition()},e.version=`19.2.7`})),u=o(((e,t)=>{t.exports=l()})),d=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),ee=o(((e,t)=>{t.exports=d()})),f=c(u(),1),p=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(r,i,a);return a},m=(e=>e?p(e):p),h=e=>e;function g(e,t=h){let n=f.useSyncExternalStore(e.subscribe,f.useCallback(()=>t(e.getState()),[e,t]),f.useCallback(()=>t(e.getInitialState()),[e,t]));return f.useDebugValue(n),n}var _=e=>{let t=m(e),n=e=>g(t,e);return Object.assign(n,t),n},v=(e=>e?_(e):_);function y(){try{let e=localStorage.getItem(`lattice.theme`);if(e===`light`||e===`dark`)return e}catch{}return`light`}function b(){try{let e=localStorage.getItem(`lattice.mode`);if(e===`basic`||e===`advanced`||e===`admin`)return e}catch{}return`basic`}function x(){try{return localStorage.getItem(`lattice.workspace`)||null}catch{}return null}function S(){try{let e=localStorage.getItem(`lattice.language`);if(e===`ko`||e===`en`)return e}catch{}return(typeof navigator<`u`?navigator.language.toLowerCase():``).startsWith(`ko`)?`ko`:`en`}var C=v(e=>({theme:y(),mode:b(),workspaceId:x(),apiBase:null,language:S(),setTheme:t=>{document.documentElement.dataset.theme=t;try{localStorage.setItem(`lattice.theme`,t)}catch{}e({theme:t})},setMode:t=>{try{localStorage.setItem(`lattice.mode`,t)}catch{}e({mode:t})},setWorkspaceId:t=>{if(t)try{localStorage.setItem(`lattice.workspace`,t)}catch{}else try{localStorage.removeItem(`lattice.workspace`)}catch{}e({workspaceId:t})},setApiBase:t=>e({apiBase:t}),setLanguage:t=>{document.documentElement.lang=t===`ko`?`ko`:`en`;try{localStorage.setItem(`lattice.language`,t)}catch{}e({language:t})}})),w=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),T=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),E=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),D=e=>{let t=E(e);return t.charAt(0).toUpperCase()+t.slice(1)},O={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`},k=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},A=(0,f.createContext)({}),j=()=>(0,f.useContext)(A),M=(0,f.forwardRef)(({color:e,size:t,strokeWidth:n,absoluteStrokeWidth:r,className:i=``,children:a,iconNode:o,...s},c)=>{let{size:l=24,strokeWidth:u=2,absoluteStrokeWidth:d=!1,color:ee=`currentColor`,className:p=``}=j()??{},m=r??d?Number(n??u)*24/Number(t??l):n??u;return(0,f.createElement)(`svg`,{ref:c,...O,width:t??l??O.width,height:t??l??O.height,stroke:e??ee,strokeWidth:m,className:w(`lucide`,p,i),...!a&&!k(s)&&{"aria-hidden":`true`},...s},[...o.map(([e,t])=>(0,f.createElement)(e,t)),...Array.isArray(a)?a:[a]])}),N=(e,t)=>{let n=(0,f.forwardRef)(({className:n,...r},i)=>(0,f.createElement)(M,{ref:i,iconNode:t,className:w(`lucide-${T(D(e))}`,`lucide-${e}`,n),...r}));return n.displayName=D(e),n},P=/\{[^{}]+\}/g,F=()=>typeof process==`object`&&Number.parseInt(process?.versions?.node?.substring(0,2))>=18&&process.versions.undici;function te(){return Math.random().toString(36).slice(2,11)}function ne(e){let{baseUrl:t=``,Request:n=globalThis.Request,fetch:r=globalThis.fetch,querySerializer:i,bodySerializer:a,pathSerializer:o,headers:s,requestInitExt:c=void 0,...l}={...e};c=F()?c:void 0,t=ce(t);let u=[];async function d(e,d){let{baseUrl:ee,fetch:f=r,Request:p=n,headers:m,params:h={},parseAs:g=`json`,querySerializer:_,bodySerializer:v=a??oe,pathSerializer:y,body:b,middleware:x=[],...S}=d||{},C=t;ee&&(C=ce(ee)??t);let w=typeof i==`function`?i:L(i);_&&(w=typeof _==`function`?_:L({...typeof i==`object`?i:{},..._}));let T=y||o||ae,E=b===void 0?void 0:v(b,se(s,m,h.header)),D=se(E===void 0||E instanceof FormData?{}:{"Content-Type":`application/json`},s,m,h.header),O=[...u,...x],k={redirect:`follow`,...l,...S,body:E,headers:D},A,j,M=new p(R(e,{baseUrl:C,params:h,querySerializer:w,pathSerializer:T}),k),N;for(let e in S)e in M||(M[e]=S[e]);if(O.length){A=te(),j=Object.freeze({baseUrl:C,fetch:f,parseAs:g,querySerializer:w,bodySerializer:v,pathSerializer:T});for(let t of O)if(t&&typeof t==`object`&&typeof t.onRequest==`function`){let n=await t.onRequest({request:M,schemaPath:e,params:h,options:j,id:A});if(n)if(n instanceof p)M=n;else if(n instanceof Response){N=n;break}else throw Error(`onRequest: must return new Request() or Response() when modifying the request`)}}if(!N){try{N=await f(M,c)}catch(t){let n=t;if(O.length)for(let t=O.length-1;t>=0;t--){let r=O[t];if(r&&typeof r==`object`&&typeof r.onError==`function`){let t=await r.onError({request:M,error:n,schemaPath:e,params:h,options:j,id:A});if(t){if(t instanceof Response){n=void 0,N=t;break}if(t instanceof Error){n=t;continue}throw Error(`onError: must return new Response() or instance of Error`)}}}if(n)throw n}if(O.length)for(let t=O.length-1;t>=0;t--){let n=O[t];if(n&&typeof n==`object`&&typeof n.onResponse==`function`){let t=await n.onResponse({request:M,response:N,schemaPath:e,params:h,options:j,id:A});if(t){if(!(t instanceof Response))throw Error(`onResponse: must return new Response() when modifying the response`);N=t}}}}let P=N.headers.get(`Content-Length`);if(N.status===204||M.method===`HEAD`||P===`0`&&!N.headers.get(`Transfer-Encoding`)?.includes(`chunked`))return N.ok?{data:void 0,response:N}:{error:void 0,response:N};if(N.ok)return{data:await(async()=>{if(g===`stream`)return N.body;if(g===`json`&&!P){let e=await N.text();return e?JSON.parse(e):void 0}return await N[g]()})(),response:N};let F=await N.text();try{F=JSON.parse(F)}catch{}return{error:F,response:N}}return{request(e,t,n){return d(t,{...n,method:e.toUpperCase()})},GET(e,t){return d(e,{...t,method:`GET`})},PUT(e,t){return d(e,{...t,method:`PUT`})},POST(e,t){return d(e,{...t,method:`POST`})},DELETE(e,t){return d(e,{...t,method:`DELETE`})},OPTIONS(e,t){return d(e,{...t,method:`OPTIONS`})},HEAD(e,t){return d(e,{...t,method:`HEAD`})},PATCH(e,t){return d(e,{...t,method:`PATCH`})},TRACE(e,t){return d(e,{...t,method:`TRACE`})},use(...e){for(let t of e)if(t){if(typeof t!=`object`||!(`onRequest`in t||`onResponse`in t||`onError`in t))throw Error("Middleware must be an object with one of `onRequest()`, `onResponse() or `onError()`");u.push(t)}},eject(...e){for(let t of e){let e=u.indexOf(t);e!==-1&&u.splice(e,1)}}}}function re(e,t,n){if(t==null)return``;if(typeof t==`object`)throw Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${e}=${n?.allowReserved===!0?t:encodeURIComponent(t)}`}function ie(e,t,n){if(!t||typeof t!=`object`)return``;let r=[],i={simple:`,`,label:`.`,matrix:`;`}[n.style]||`&`;if(n.style!==`deepObject`&&n.explode===!1){for(let e in t)r.push(e,n.allowReserved===!0?t[e]:encodeURIComponent(t[e]));let i=r.join(`,`);switch(n.style){case`form`:return`${e}=${i}`;case`label`:return`.${i}`;case`matrix`:return`;${e}=${i}`;default:return i}}for(let i in t){let a=n.style===`deepObject`?`${e}[${i}]`:i;r.push(re(a,t[i],n))}let a=r.join(i);return n.style===`label`||n.style===`matrix`?`${i}${a}`:a}function I(e,t,n){if(!Array.isArray(t))return``;if(n.explode===!1){let r={form:`,`,spaceDelimited:`%20`,pipeDelimited:`|`}[n.style]||`,`,i=(n.allowReserved===!0?t:t.map(e=>encodeURIComponent(e))).join(r);switch(n.style){case`simple`:return i;case`label`:return`.${i}`;case`matrix`:return`;${e}=${i}`;default:return`${e}=${i}`}}let r={simple:`,`,label:`.`,matrix:`;`}[n.style]||`&`,i=[];for(let r of t)n.style===`simple`||n.style===`label`?i.push(n.allowReserved===!0?r:encodeURIComponent(r)):i.push(re(e,r,n));return n.style===`label`||n.style===`matrix`?`${r}${i.join(r)}`:i.join(r)}function L(e){return function(t){let n=[];if(t&&typeof t==`object`)for(let r in t){let i=t[r];if(i!=null){if(Array.isArray(i)){if(i.length===0)continue;n.push(I(r,i,{style:`form`,explode:!0,...e?.array,allowReserved:e?.allowReserved||!1}));continue}if(typeof i==`object`){n.push(ie(r,i,{style:`deepObject`,explode:!0,...e?.object,allowReserved:e?.allowReserved||!1}));continue}n.push(re(r,i,e))}}return n.join(`&`)}}function ae(e,t){let n=e;for(let r of e.match(P)??[]){let e=r.substring(1,r.length-1),i=!1,a=`simple`;if(e.endsWith(`*`)&&(i=!0,e=e.substring(0,e.length-1)),e.startsWith(`.`)?(a=`label`,e=e.substring(1)):e.startsWith(`;`)&&(a=`matrix`,e=e.substring(1)),!t||t[e]===void 0||t[e]===null)continue;let o=t[e];if(Array.isArray(o)){n=n.replace(r,I(e,o,{style:a,explode:i}));continue}if(typeof o==`object`){n=n.replace(r,ie(e,o,{style:a,explode:i}));continue}if(a===`matrix`){n=n.replace(r,`;${re(e,o)}`);continue}n=n.replace(r,a===`label`?`.${encodeURIComponent(o)}`:encodeURIComponent(o))}return n}function oe(e,t){return e instanceof FormData?e:t&&(t.get instanceof Function?t.get(`Content-Type`)??t.get(`content-type`):t[`Content-Type`]??t[`content-type`])===`application/x-www-form-urlencoded`?new URLSearchParams(e).toString():JSON.stringify(e)}function R(e,t){let n=`${t.baseUrl}${e}`;t.params?.path&&(n=t.pathSerializer(n,t.params.path));let r=t.querySerializer(t.params.query??{});return r.startsWith(`?`)&&(r=r.substring(1)),r&&(n+=`?${r}`),n}function se(...e){let t=new Headers;for(let n of e){if(!n||typeof n!=`object`)continue;let e=n instanceof Headers?n.entries():Object.entries(n);for(let[n,r]of e)if(r===null)t.delete(n);else if(Array.isArray(r))for(let e of r)t.append(n,e);else r!==void 0&&t.set(n,r)}return t}function ce(e){return e.endsWith(`/`)?e.substring(0,e.length-1):e}var z={ko:{},en:{}},le=new Set;function ue(e){le.has(e)||(le.add(e),Object.assign(z.ko,e.ko),Object.assign(z.en,e.en))}ue({ko:{"brain.title":`Lattice Brain`,"language.label":`언어`,"language.ko":`한국어`,"language.en":`English`,"shell.localBadge":`이 컴퓨터 안에서만`,"shell.route.brain":`대화`,"shell.route.capture":`자료`,"shell.route.memory":`기억`,"shell.route.chronicle":`연대기`,"shell.route.library":`AI 모델`,"shell.route.system":`설정`,"shell.route.act":`작업`,"shell.skip":`본문으로 건너뛰기`,"shell.menu.open":`메뉴 열기`,"shell.menu.close":`메뉴 닫기`,"shell.menu.title":`더보기`,"shell.theme.toLight":`밝은 화면으로 바꾸기`,"shell.theme.toDark":`어두운 화면으로 바꾸기`,"shell.menu.nav":`화면 이동`,"shell.menu.manage":`관리`,"shell.nav.utility":`관리 화면 이동`,"shell.menu.workspace":`작업 공간`,"shell.loading":`Brain 작업공간을 여는 중...`,"shell.workspace.label":`작업공간 및 프로필`,"shell.workspace.current":`현재 작업공간`,"shell.workspace.switch":`전환`,"shell.workspace.active":`사용 중`,"shell.workspace.empty":`아직 작업공간이 없습니다`,"shell.workspace.personal":`개인 Brain`,"shell.workspace.manageSpaces":`작업공간 관리`,"shell.workspace.close":`닫기`,"shell.profile.label":`프로필`,"shell.profile.owner":`소유자`,"shell.profile.signedOut":`로그인하지 않음`,"shell.profile.you":`내 계정`,"shell.profile.manage":`계정 설정 열기`,"shell.admin.label":`관리자`,"shell.admin.open":`관리자 콘솔 열기`,"shell.admin.tooltip":`설정, 에이전트, 도구 레지스트리 관리`,"shell.admin.needsMode":`관리자 콘솔은 고급 또는 관리자 모드에서만 사용할 수 있습니다`,"shell.admin.enable":`관리자 모드로 전환`,"shell.mode.label":`모드`,"shell.mode.basic":`기본`,"shell.mode.advanced":`고급`,"shell.mode.admin":`관리자`,"shell.mode.info":`모드는 표시되는 도구와 관리자 화면의 범위를 정합니다`,"shell.account.aria":`계정과 워크스페이스`,"shell.account.workspaceLabel":`워크스페이스`,"shell.account.personal":`개인 Brain`,"shell.account.modeLabel":`보기 모드`,"shell.account.mode.basic":`기본`,"shell.account.mode.advanced":`고급`,"shell.account.mode.admin":`관리자`,"shell.account.open":`계정·워크스페이스 메뉴 열기`,"shell.account.menuAria":`계정과 워크스페이스 메뉴`,"shell.account.profile":`프로필과 계정`,"shell.account.workspaces":`워크스페이스 전환`,"shell.account.admin":`관리자 콘솔`,"shell.account.settings":`설정 열기`,"shell.sync.aria":`VS Code 확장 연동 상태`,"shell.sync.label":`VS Code`,"shell.sync.connected":`연결됨`,"shell.sync.indexing":`정리 중`,"shell.sync.synced":`동기화됨`,"shell.sync.offline":`연결 안 됨`,"shell.sync.checking":`확인 중`,"shell.sync.detail":`확장과 메인 앱이 같은 Brain을 공유합니다.`,"shell.sync.detailOffline":`VS Code 확장이 아직 이 Brain에 연결되지 않았습니다.`,"feedback.retry":`다시 시도`,"service.unavailable.title":`로컬 Lattice 서비스를 사용할 수 없습니다`,"service.unavailable.detail":`빈 Brain으로 표시하지 않았습니다. 연결을 확인한 뒤 다시 시도하세요. ({detail})`,"feedback.error.title":`문제가 생겼어요`,"feedback.error.body":`잠시 후 다시 시도하거나 설정에서 연결을 확인하세요.`,"ui.status.notLoaded":`확인 전`,"ui.status.ready":`사용 가능`,"ui.status.connected":`연결됨`,"ui.status.needsSetup":`준비 필요`,"ui.status.unavailable":`응답 없음`,"ui.empty.title":`아직 비어 있어요`,"ui.empty.basicDetail":`자료를 넣거나 준비가 끝나면 여기에 내용이 나타납니다.`,"ui.empty.advancedDetail":`이 기능이 지금 응답하지 않습니다.`,"ui.empty.listDetail":`새 항목이 생기면 여기에 표시됩니다.`,"ui.loading":`불러오는 중…`,"ui.cancel":`취소`,"ui.done":`완료`,"ui.requestCompleted":`요청이 완료되었습니다`,"ui.requestUnavailable":`요청을 처리하지 못했어요`,"ui.noValues":`표시할 값이 없어요`,"ui.value.enabled":`활성화됨`,"ui.value.disabled":`비활성화됨`,"ui.value.none":`없음`,"ui.value.records":`레코드 {count}개`,"ui.value.noFields":`필드 없음`,"ui.value.fields":`내용 {count}가지`,"ui.entity.Task":`할 일`,"ui.entity.Concept":`주제`,"ui.entity.Document":`문서`,"ui.entity.Chunk":`문서 조각`,"ui.entity.Source":`출처`,"ui.entity.Chat":`대화`,"ui.entity.Message":`메시지`,"ui.entity.AIResponse":`Brain 답변`,"ui.entity.Person":`사람`,"ui.entity.Event":`일정`,"ui.entity.Place":`장소`,"ui.entity.Organization":`조직`,"ui.field.status":`상태`,"ui.field.state":`상태`,"ui.field.version":`버전`,"ui.field.mode":`모드`,"ui.field.platform":`플랫폼`,"ui.field.device":`장치`,"ui.field.current_model":`지금 쓰는 모델`,"ui.field.loaded_models":`불러온 모델`,"ui.field.model":`모델`,"ui.field.model_id":`모델 이름`,"ui.field.provider":`제공자`,"ui.field.requested_provider":`요청한 제공자`,"ui.field.active_provider":`실제 제공자`,"ui.field.dimensions":`벡터 차원`,"ui.field.grade":`품질 등급`,"ui.field.runtime":`실행 환경`,"ui.field.health":`상태 점검`,"ui.field.ready":`사용 준비`,"ui.field.execution_mode":`실행 방식`,"ui.field.roles":`역할`,"ui.field.agents":`에이전트`,"ui.field.runs":`실행 기록`,"ui.field.contracts":`계약`,"ui.field.checks":`점검 항목`,"ui.field.cpu_pct":`CPU 사용률`,"ui.field.ram_pct":`메모리 사용률`,"ui.field.gpu_mem_pct":`GPU 메모리 사용률`,"ui.field.gpu_mem_gb":`GPU 메모리`,"ui.field.features":`기능 설정`,"ui.entity.Indexed":`정리 완료`,"ui.entity.Ingested":`정리 중`,"ui.entity.Ready":`준비됨`,"ui.entity.Pending":`대기 중`,"ui.entity.Queued":`대기 중`,"ui.entity.Running":`진행 중`,"ui.entity.Complete":`완료`,"ui.entity.Completed":`완료`,"ui.entity.Failed":`실패`,"ui.entity.Error":`오류`,"ui.entity.Ok":`정상`,"ui.entity.Record":`항목`,"ui.entity.Active":`사용 중`,"ui.entity.Disabled":`꺼짐`,"ui.entity.Enabled":`켜짐`,"ui.field.available":`사용 가능`,"ui.field.directory":`저장 위치`,"ui.field.count":`개수`,"ui.field.latest":`가장 최근`,"ui.field.latest_bytes":`최근 파일 크기`,"ui.field.encrypted_archives":`암호화된 백업`,"ui.field.zip_backups":`압축 백업`,"ui.field.last_verified":`마지막 확인`,"ui.field.failure":`실패`,"ui.field.enabled":`사용`,"ui.field.capabilities":`할 수 있는 일`,"ui.field.engine":`저장 엔진`,"ui.field.detail":`설명`,"ui.field.description":`설명`,"ui.field.summary":`요약`,"ui.field.name":`이름`,"ui.field.title":`제목`,"ui.field.type":`종류`,"ui.field.id":`식별자`,"ui.field.path":`경로`,"ui.field.size_bytes":`크기`,"ui.field.total_items":`전체 항목`,"ui.field.sources":`출처`,"ui.field.approved":`승인됨`,"ui.field.approved_at":`승인 시각`,"ui.field.approved_by":`승인한 사람`,"ui.field.created_at":`만든 시각`,"ui.field.updated_at":`수정 시각`,"ui.field.backup_health":`백업 상태`,"ui.field.reason":`이유`,"ui.field.message":`메시지`,"ui.field.scopes":`허용 폴더`,"ui.field.running":`실행 중`,"ui.field.armed":`예약됨`,"ui.field.tick_seconds":`확인 주기(초)`,"ui.field.tz":`표준시`,"ui.field.activities":`활동`,"ui.field.notice":`안내`,"ui.field.kind":`종류`,"ui.field.source":`출처`,"ui.field.enabled_at":`켠 시각`,"ui.field.disabled":`꺼짐`,"ui.modeGate.title":`고급 설정`,"ui.modeGate.detail":`진단이나 관리 기능이 필요할 때 모드를 전환하세요. 기본 모드는 일상 사용에 집중합니다.`,"ui.modeGate.advanced":`고급 모드로 전환`,"ui.modeGate.admin":`관리자 콘솔로 전환`,"command.title":`명령 팔레트`,"command.shortcutKey":`K`,"command.placeholder":`검색하거나 이동할 곳을 입력하세요...`,"command.results":`검색 결과`,"command.searching":`Brain에서 찾는 중...`,"command.empty":`일치하는 항목이 없습니다`,"command.footer":`↑↓로 이동, Enter로 선택, Esc로 닫기`,"command.group.pages":`화면 이동`,"command.group.knowledge":`지식`,"command.group.conversation":`지난 대화`,"command.group.automation":`자동화`,"command.automation.enabled":`켜짐`,"command.automation.draft":`초안`,"command.page.review":`검토함`,"briefing.title":`오늘의 브리핑`,"briefing.subtitle":`Brain이 정리한 오늘의 현황과 다음 할 일`,"briefing.loading":`브리핑을 준비하는 중...`,"briefing.stat.questions":`질문`,"briefing.stat.automations":`자동화 켜짐`,"briefing.stat.review":`검토 대기`,"briefing.stat.health":`Brain 건강`,"briefing.recent":`최근 담긴 지식`,"briefing.suggestions":`나를 위한 자동화 제안 {count}개가 기다리고 있어요`,"briefing.action.reviewPending":`검토 대기 {count}건 확인하기`,"briefing.action.enableDrafts":`꺼져 있는 자동화 초안 {count}개 살펴보기`,"briefing.action.installSuggestion":`추천 자동화 {count}개 보러 가기`,"briefing.action.connectKnowledge":`지식 폴더 연결하기`,"briefing.action.checkHealth":`Brain 건강 점검하기`,"briefing.action.askBrain":`Brain에게 질문하기`,"briefing.empty":`아직 보여드릴 브리핑이 없어요. 자료를 넣고 대화를 시작하면 이곳에 하루 요약이 쌓입니다.`,"command.proactive.title":`지금 바로`,"command.proactive.briefing":`오늘의 브리핑 열기`,"command.proactive.review":`검토 대기 항목 보기`,"command.proactive.suggestions":`오늘의 제안 {count}개`,"command.proactive.pending":`{count}건 대기 중`,"proposals.title":`변경 제안`,"proposals.subtitle":`기존 파일을 바꾸는 작업은 검토 후 적용됩니다`,"proposals.loading":`제안을 불러오는 중...`,"proposals.empty":`대기 중인 변경 제안이 없습니다`,"proposals.diff":`변경 내용 미리보기`,"proposals.tier.small":`작은 수정`,"proposals.tier.large":`큰 수정`,"proposals.kind.delete":`삭제`,"proposals.approve":`승인하고 적용`,"proposals.reject":`거절`,"proposals.note":`새 파일 생성은 바로 실행되고, 기존 내용 수정과 삭제만 여기에서 검토합니다. 승인 전에는 아무것도 바뀌지 않습니다.`,"proposals.conflict.title":`파일이 그 사이 변경되었습니다`,"proposals.conflict.detail":`제안을 만든 뒤 파일 내용이 바뀌어 그대로 적용하면 최근 수정이 사라질 수 있어요. 현재 파일을 다시 읽어 새 제안으로 만들 수 있습니다.`,"proposals.conflict.rebase":`다시 읽어서 재적용`,"proposals.conflict.rebasing":`현재 파일을 다시 읽는 중…`,"proposals.conflict.rebased":`현재 파일 기준으로 새 제안을 만들었어요. 새 변경 내용을 확인해 주세요.`,"proposals.conflict.alreadyApplied":`이미 같은 내용이 반영되어 있어 이 제안을 정리했어요.`,"proposals.conflict.failed":`다시 적용을 준비하지 못했어요: {reason}`},en:{"brain.title":`Lattice Brain`,"language.label":`Language`,"language.ko":`한국어`,"language.en":`English`,"shell.localBadge":`Local PC only`,"shell.route.brain":`Chat`,"shell.route.capture":`Sources`,"shell.route.memory":`Memory`,"shell.route.chronicle":`Chronicle`,"shell.route.library":`AI model`,"shell.route.system":`Settings`,"shell.route.act":`Work`,"shell.skip":`Skip to content`,"shell.menu.open":`Open menu`,"shell.menu.close":`Close menu`,"shell.menu.title":`More`,"shell.theme.toLight":`Switch to the light screen`,"shell.theme.toDark":`Switch to the dark screen`,"shell.menu.nav":`Go to`,"shell.menu.manage":`Manage`,"shell.nav.utility":`Go to management`,"shell.menu.workspace":`Workspace`,"shell.loading":`Loading Brain workspace...`,"shell.workspace.label":`Workspace and profile`,"shell.workspace.current":`Current workspace`,"shell.workspace.switch":`Switch`,"shell.workspace.active":`Active`,"shell.workspace.empty":`No workspaces yet`,"shell.workspace.personal":`Personal Brain`,"shell.workspace.manageSpaces":`Manage workspaces`,"shell.workspace.close":`Close`,"shell.profile.label":`Profile`,"shell.profile.owner":`Owner`,"shell.profile.signedOut":`Not signed in`,"shell.profile.you":`You`,"shell.profile.manage":`Open account settings`,"shell.admin.label":`Admin`,"shell.admin.open":`Open Admin Console`,"shell.admin.tooltip":`Manage settings, agents, and the tool registry`,"shell.admin.needsMode":`Admin Console is available in Advanced or Admin mode`,"shell.admin.enable":`Switch to Admin mode`,"shell.mode.label":`Mode`,"shell.mode.basic":`Basic`,"shell.mode.advanced":`Advanced`,"shell.mode.admin":`Admin`,"shell.mode.info":`Mode sets which tools and admin surfaces are shown`,"shell.account.aria":`Account and workspace`,"shell.account.workspaceLabel":`Workspace`,"shell.account.personal":`Personal Brain`,"shell.account.modeLabel":`View mode`,"shell.account.mode.basic":`Basic`,"shell.account.mode.advanced":`Advanced`,"shell.account.mode.admin":`Admin`,"shell.account.open":`Open account and workspace menu`,"shell.account.menuAria":`Account and workspace menu`,"shell.account.profile":`Profile & account`,"shell.account.workspaces":`Switch workspace`,"shell.account.admin":`Admin console`,"shell.account.settings":`Open settings`,"shell.sync.aria":`VS Code extension link status`,"shell.sync.label":`VS Code`,"shell.sync.connected":`Connected`,"shell.sync.indexing":`Updating`,"shell.sync.synced":`Synced`,"shell.sync.offline":`Not connected`,"shell.sync.checking":`Checking`,"shell.sync.detail":`The extension and main app share the same Brain.`,"shell.sync.detailOffline":`The VS Code extension is not linked to this Brain yet.`,"feedback.retry":`Retry`,"service.unavailable.title":`The local Lattice service is unavailable`,"service.unavailable.detail":`This is not being shown as an empty Brain. Check the connection and retry. ({detail})`,"feedback.error.title":`Something went wrong`,"feedback.error.body":`Try again shortly or check the connection in Settings.`,"ui.status.notLoaded":`Not loaded`,"ui.status.ready":`Ready`,"ui.status.connected":`Connected`,"ui.status.needsSetup":`Needs setup`,"ui.status.unavailable":`Not responding`,"ui.empty.title":`Nothing here yet`,"ui.empty.basicDetail":`Add material or finish setup and content will appear here.`,"ui.empty.advancedDetail":`This capability is not reporting right now.`,"ui.empty.listDetail":`New items will appear here when Lattice has something to show.`,"ui.loading":`Loading…`,"ui.cancel":`Cancel`,"ui.done":`Done`,"ui.requestCompleted":`Request completed`,"ui.requestUnavailable":`Request could not be completed`,"ui.noValues":`No values to show`,"ui.value.enabled":`enabled`,"ui.value.disabled":`disabled`,"ui.value.none":`None`,"ui.value.records":`{count} records`,"ui.value.noFields":`No fields`,"ui.value.fields":`{count} details`,"ui.entity.Task":`Task`,"ui.entity.Concept":`Topic`,"ui.entity.Document":`Document`,"ui.entity.Chunk":`Excerpt`,"ui.entity.Source":`Source`,"ui.entity.Chat":`Conversation`,"ui.entity.Message":`Message`,"ui.entity.AIResponse":`Brain reply`,"ui.entity.Person":`Person`,"ui.entity.Event":`Event`,"ui.entity.Place":`Place`,"ui.entity.Organization":`Organization`,"ui.field.status":`Status`,"ui.field.state":`State`,"ui.field.version":`Version`,"ui.field.mode":`Mode`,"ui.field.platform":`Platform`,"ui.field.device":`Device`,"ui.field.current_model":`Model in use`,"ui.field.loaded_models":`Loaded models`,"ui.field.model":`Model`,"ui.field.model_id":`Model name`,"ui.field.provider":`Provider`,"ui.field.requested_provider":`Requested provider`,"ui.field.active_provider":`Active provider`,"ui.field.dimensions":`Vector size`,"ui.field.grade":`Quality grade`,"ui.field.runtime":`Runtime`,"ui.field.health":`Health check`,"ui.field.ready":`Ready`,"ui.field.execution_mode":`Execution`,"ui.field.roles":`Roles`,"ui.field.agents":`Agents`,"ui.field.runs":`Runs`,"ui.field.contracts":`Contracts`,"ui.field.checks":`Checks`,"ui.field.cpu_pct":`CPU use`,"ui.field.ram_pct":`Memory use`,"ui.field.gpu_mem_pct":`GPU memory use`,"ui.field.gpu_mem_gb":`GPU memory`,"ui.field.features":`Feature settings`,"ui.entity.Indexed":`Ready to search`,"ui.entity.Ingested":`Being sorted`,"ui.entity.Ready":`Ready`,"ui.entity.Pending":`Pending`,"ui.entity.Queued":`Queued`,"ui.entity.Running":`Running`,"ui.entity.Complete":`Complete`,"ui.entity.Completed":`Complete`,"ui.entity.Failed":`Failed`,"ui.entity.Error":`Error`,"ui.entity.Ok":`OK`,"ui.entity.Record":`Item`,"ui.entity.Active":`Active`,"ui.entity.Disabled":`Off`,"ui.entity.Enabled":`On`,"ui.field.available":`Available`,"ui.field.directory":`Location`,"ui.field.count":`Count`,"ui.field.latest":`Most recent`,"ui.field.latest_bytes":`Latest size`,"ui.field.encrypted_archives":`Encrypted backups`,"ui.field.zip_backups":`Zip backups`,"ui.field.last_verified":`Last verified`,"ui.field.failure":`Failure`,"ui.field.enabled":`Enabled`,"ui.field.capabilities":`Can do`,"ui.field.engine":`Storage engine`,"ui.field.detail":`Detail`,"ui.field.description":`Description`,"ui.field.summary":`Summary`,"ui.field.name":`Name`,"ui.field.title":`Title`,"ui.field.type":`Type`,"ui.field.id":`Identifier`,"ui.field.path":`Path`,"ui.field.size_bytes":`Size`,"ui.field.total_items":`Total items`,"ui.field.sources":`Sources`,"ui.field.approved":`Approved`,"ui.field.approved_at":`Approved at`,"ui.field.approved_by":`Approved by`,"ui.field.created_at":`Created`,"ui.field.updated_at":`Updated`,"ui.field.backup_health":`Backup health`,"ui.field.reason":`Reason`,"ui.field.message":`Message`,"ui.field.scopes":`Allowed folders`,"ui.field.running":`Running`,"ui.field.armed":`Armed`,"ui.field.tick_seconds":`Check interval (s)`,"ui.field.tz":`Time zone`,"ui.field.activities":`Activity`,"ui.field.notice":`Notice`,"ui.field.kind":`Kind`,"ui.field.source":`Source`,"ui.field.enabled_at":`Turned on`,"ui.field.disabled":`Off`,"ui.modeGate.title":`Advanced controls`,"ui.modeGate.detail":`Switch modes when you want diagnostics or administrative controls. Basic mode keeps the product focused on everyday use.`,"ui.modeGate.advanced":`Switch to Advanced`,"ui.modeGate.admin":`Switch to Admin Console`,"command.title":`Command palette`,"command.shortcutKey":`K`,"command.placeholder":`Search or jump anywhere...`,"command.results":`Search results`,"command.searching":`Searching your Brain...`,"command.empty":`No matches found`,"command.footer":`↑↓ to move, Enter to select, Esc to close`,"command.group.pages":`Go to`,"command.group.knowledge":`Knowledge`,"command.group.conversation":`Past conversations`,"command.group.automation":`Automations`,"command.automation.enabled":`Enabled`,"command.automation.draft":`Draft`,"command.page.review":`Review inbox`,"briefing.title":`Today's briefing`,"briefing.subtitle":`What your Brain sees today, and what to do next`,"briefing.loading":`Preparing your briefing...`,"briefing.stat.questions":`Questions`,"briefing.stat.automations":`Automations on`,"briefing.stat.review":`Awaiting review`,"briefing.stat.health":`Brain health`,"briefing.recent":`Recently added knowledge`,"briefing.suggestions":`{count} automation suggestions are waiting for you`,"briefing.action.reviewPending":`Check {count} items awaiting review`,"briefing.action.enableDrafts":`Look at {count} disabled automation drafts`,"briefing.action.installSuggestion":`See {count} suggested automations`,"briefing.action.connectKnowledge":`Connect a knowledge folder`,"briefing.action.checkHealth":`Check Brain health`,"briefing.action.askBrain":`Ask your Brain`,"briefing.empty":`Nothing to brief yet. Add some knowledge and start a conversation — your daily summary will build up here.`,"command.proactive.title":`Right now`,"command.proactive.briefing":`Open today's briefing`,"command.proactive.review":`See items awaiting review`,"command.proactive.suggestions":`{count} suggestions today`,"command.proactive.pending":`{count} waiting`,"proposals.title":`Change proposals`,"proposals.subtitle":`Changes to existing files apply only after your review`,"proposals.loading":`Loading proposals...`,"proposals.empty":`No pending change proposals`,"proposals.diff":`Change preview`,"proposals.tier.small":`Small change`,"proposals.tier.large":`Large change`,"proposals.kind.delete":`Deletion`,"proposals.approve":`Approve & apply`,"proposals.reject":`Reject`,"proposals.note":`Creating new files runs immediately; only edits and deletions of existing content are reviewed here. Nothing changes until you approve.`,"proposals.conflict.title":`The file changed in the meantime`,"proposals.conflict.detail":`The file was edited after this proposal was staged, so applying it as-is could erase recent changes. You can re-read the current file and stage a fresh proposal against it.`,"proposals.conflict.rebase":`Re-read & re-apply`,"proposals.conflict.rebasing":`Re-reading the current file…`,"proposals.conflict.rebased":`Staged a fresh proposal against the current file. Please review the new changes.`,"proposals.conflict.alreadyApplied":`The file already contains this change, so the proposal was retired.`,"proposals.conflict.failed":`Could not prepare the re-apply: {reason}`}});function de(e){try{let t=e();return typeof t==`string`?t:`dev`}catch{return`dev`}}var fe=de(()=>`11.5.2`),pe={ko:`한국어`,en:`English`};function me(e,t,n){let{defaultValue:r,...i}=n||{},a=z[e]?.[t]??z.ko[t]??r??t,o={version:fe,...i};for(let[e,t]of Object.entries(o))a=a.replaceAll(`{${e}}`,String(t));return a}var he=`modulepreload`,ge=function(e){return`/static/app/`+e},_e={},ve=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=ge(t,n),t in _e)return;_e[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:he,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},ye=1e4,be=new Map,xe=null;function Se(){return``}function Ce(){return!!(window.__TAURI_INTERNALS__||window.__TAURI__?.core?.invoke)}async function we(){return Ce()?(xe||=ve(async()=>{let{invoke:e}=await import(`./core-CwxXejkd.js`);return{invoke:e}},[]).then(({invoke:e})=>e(`backend_origin`)).then(e=>e||null).catch(()=>null),xe):null}async function Te(e,t){let n=window.__TAURI__?.core?.invoke;if(n)try{return await n(e,t)}catch{return null}if(!window.__TAURI_INTERNALS__)return null;try{let{invoke:n}=await ve(async()=>{let{invoke:e}=await import(`./core-CwxXejkd.js`);return{invoke:e}},[]);return await n(e,t)}catch{return null}}async function Ee(){let e=await Te(`select_folder`);if(e)return e;try{return await window.latticeDesktop?.selectFolder?.()||null}catch{return null}}async function B(){let e=C.getState().apiBase;if(e)return e;let t=await we();return t?(C.getState().setApiBase(t),t):Se()}function De(e){return be.has(e)||be.set(e,ne({baseUrl:e,credentials:`include`})),be.get(e)}function Oe(e){return Array.isArray(e)?[]:e&&typeof e==`object`?{...e}:e}function V(){let e=C.getState().workspaceId;return{"X-Lattice-Language":ke(),...e?{"X-Workspace-Id":e}:{}}}function ke(){try{return C.getState().language}catch{return`ko`}}function Ae(){return me(ke(),`api.error.unreachable`)}function je(e){return me(ke(),`api.error.request`,{status:e})}function H(e,t){if(!e)return t;let n=typeof e==`object`&&e?e:null,r=n?.detail;if(typeof r==`string`)return r;let i=typeof r==`object`&&r?r:null;if(i){let e=i.user_message||i.reason||i.action||i.status;if(e)return String(e)}let a=n?.message||n?.error;return a?String(a):t}function Me(e,t){let n=e instanceof Error?e.message:String(e);return/not valid JSON|Unexpected token|JSON/i.test(n)?t:/aborted|abort|timed?\s?out/i.test(n)?me(ke(),`api.error.timeout`):/failed to fetch|load failed|networkerror|network request failed/i.test(n)?me(ke(),`api.error.unreachable`):n||t}async function Ne(e,t,n){let r=De(await B()),i=new AbortController,a=window.setTimeout(()=>i.abort(),ye);try{let a={body:n.body,params:{query:n.query||{}},headers:{...V(),...n.headers||{}},signal:i.signal},{data:o,error:s,response:c}=await(e===`GET`?r.GET:e===`POST`?r.POST:e===`PATCH`?r.PATCH:r.DELETE)(t,a);return c.ok&&o!==void 0?{ok:!0,status:c.status,data:o,source:`live`}:{ok:!1,status:c.status,data:Oe(n.shape),source:`unavailable`,error:H(s,je(c.status))}}catch(e){return{ok:!1,status:0,data:Oe(n.shape),source:`unavailable`,error:Me(e,Ae())}}finally{window.clearTimeout(a)}}async function Pe(e,t){let n=De(await B()),r=new AbortController,i=window.setTimeout(()=>r.abort(),ye);try{let{data:i,error:a,response:o}=await t(n,r.signal);return o.ok&&i!==void 0?{ok:!0,status:o.status,data:i,source:`live`}:{ok:!1,status:o.status,data:Oe(e),source:`unavailable`,error:H(a,je(o.status))}}catch(t){return{ok:!1,status:0,data:Oe(e),source:`unavailable`,error:Me(t,Ae())}}finally{window.clearTimeout(i)}}function U(e,t,n){return Ne(`GET`,e,{query:n,shape:t})}function W(e,t,n){return Ne(`POST`,e,{body:t,shape:n})}function Fe(e,t,n){return Ne(`PATCH`,e,{body:t,shape:n})}function Ie(e,t){return Ne(`DELETE`,e,{shape:t})}var Le={chronicleOverview:()=>U(`/api/chronicle/overview`,{first_activity_at:null,last_activity_at:null,totals:{sources:0,entities:0,connections:0,conversations:0},series:[]}),chronicleDay:e=>U(`/api/chronicle/day/${encodeURIComponent(e)}`,{date:e,counts:{sources:0,entities:0,conversations:0,changes:0},groups:{sources:[],entities:[],conversations:[],changes:[]}}),chronicleAsOf:e=>U(`/api/chronicle/as-of`,{ts:e,stats:{entities:0,connections:0},top_entities:[]},{ts:e})};function Re(e){let t=e.split(`
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),l=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),ee=Symbol.for(`react.activity`),f=Symbol.iterator;function p(e){return typeof e!=`object`||!e?null:(e=f&&e[f]||e[`@@iterator`],typeof e==`function`?e:null)}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h=Object.assign,g={};function _(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}_.prototype.isReactComponent={},_.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},_.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function v(){}v.prototype=_.prototype;function y(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}var b=y.prototype=new v;b.constructor=y,h(b,_.prototype),b.isPureReactComponent=!0;var x=Array.isArray;function S(){}var C={H:null,A:null,T:null,S:null},w=Object.prototype.hasOwnProperty;function T(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function E(e,t){return T(e.type,t,e.props)}function D(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function O(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var k=/\/+/g;function A(e,t){return typeof e==`object`&&e&&e.key!=null?O(``+e.key):t.toString(36)}function j(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(S,S):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function M(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,M(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+A(e,0):a,x(o)?(i=``,c!=null&&(i=c.replace(k,`$&/`)+`/`),M(o,r,i,``,function(e){return e})):o!=null&&(D(o)&&(o=E(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(k,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(x(e))for(var u=0;u<e.length;u++)a=e[u],s=l+A(a,u),c+=M(a,r,i,s,o);else if(u=p(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+A(a,u++),c+=M(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return M(j(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function N(e,t,n){if(e==null)return e;var r=[],i=0;return M(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function P(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var F=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},te={map:N,forEach:function(e,t,n){N(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return N(e,function(){t++}),t},toArray:function(e){return N(e,function(e){return e})||[]},only:function(e){if(!D(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=ee,e.Children=te,e.Component=_,e.Fragment=r,e.Profiler=a,e.PureComponent=y,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=C,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return C.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=h({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!w.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return T(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)w.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return T(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=D,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:P}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=C.T,n={};C.T=n;try{var r=e(),i=C.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(S,F)}catch(e){F(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),C.T=t}},e.unstable_useCacheRefresh=function(){return C.H.useCacheRefresh()},e.use=function(e){return C.H.use(e)},e.useActionState=function(e,t,n){return C.H.useActionState(e,t,n)},e.useCallback=function(e,t){return C.H.useCallback(e,t)},e.useContext=function(e){return C.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return C.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return C.H.useEffect(e,t)},e.useEffectEvent=function(e){return C.H.useEffectEvent(e)},e.useId=function(){return C.H.useId()},e.useImperativeHandle=function(e,t,n){return C.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return C.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return C.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return C.H.useMemo(e,t)},e.useOptimistic=function(e,t){return C.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return C.H.useReducer(e,t,n)},e.useRef=function(e){return C.H.useRef(e)},e.useState=function(e){return C.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return C.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return C.H.useTransition()},e.version=`19.2.7`})),u=o(((e,t)=>{t.exports=l()})),d=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),ee=o(((e,t)=>{t.exports=d()})),f=c(u(),1),p=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(r,i,a);return a},m=(e=>e?p(e):p),h=e=>e;function g(e,t=h){let n=f.useSyncExternalStore(e.subscribe,f.useCallback(()=>t(e.getState()),[e,t]),f.useCallback(()=>t(e.getInitialState()),[e,t]));return f.useDebugValue(n),n}var _=e=>{let t=m(e),n=e=>g(t,e);return Object.assign(n,t),n},v=(e=>e?_(e):_);function y(){try{let e=localStorage.getItem(`lattice.theme`);if(e===`light`||e===`dark`)return e}catch{}return`light`}function b(){try{let e=localStorage.getItem(`lattice.mode`);if(e===`basic`||e===`advanced`||e===`admin`)return e}catch{}return`basic`}function x(){try{return localStorage.getItem(`lattice.workspace`)||null}catch{}return null}function S(){try{let e=localStorage.getItem(`lattice.language`);if(e===`ko`||e===`en`)return e}catch{}return(typeof navigator<`u`?navigator.language.toLowerCase():``).startsWith(`ko`)?`ko`:`en`}var C=v(e=>({theme:y(),mode:b(),workspaceId:x(),apiBase:null,language:S(),setTheme:t=>{document.documentElement.dataset.theme=t;try{localStorage.setItem(`lattice.theme`,t)}catch{}e({theme:t})},setMode:t=>{try{localStorage.setItem(`lattice.mode`,t)}catch{}e({mode:t})},setWorkspaceId:t=>{if(t)try{localStorage.setItem(`lattice.workspace`,t)}catch{}else try{localStorage.removeItem(`lattice.workspace`)}catch{}e({workspaceId:t})},setApiBase:t=>e({apiBase:t}),setLanguage:t=>{document.documentElement.lang=t===`ko`?`ko`:`en`;try{localStorage.setItem(`lattice.language`,t)}catch{}e({language:t})}})),w=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),T=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),E=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),D=e=>{let t=E(e);return t.charAt(0).toUpperCase()+t.slice(1)},O={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`},k=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},A=(0,f.createContext)({}),j=()=>(0,f.useContext)(A),M=(0,f.forwardRef)(({color:e,size:t,strokeWidth:n,absoluteStrokeWidth:r,className:i=``,children:a,iconNode:o,...s},c)=>{let{size:l=24,strokeWidth:u=2,absoluteStrokeWidth:d=!1,color:ee=`currentColor`,className:p=``}=j()??{},m=r??d?Number(n??u)*24/Number(t??l):n??u;return(0,f.createElement)(`svg`,{ref:c,...O,width:t??l??O.width,height:t??l??O.height,stroke:e??ee,strokeWidth:m,className:w(`lucide`,p,i),...!a&&!k(s)&&{"aria-hidden":`true`},...s},[...o.map(([e,t])=>(0,f.createElement)(e,t)),...Array.isArray(a)?a:[a]])}),N=(e,t)=>{let n=(0,f.forwardRef)(({className:n,...r},i)=>(0,f.createElement)(M,{ref:i,iconNode:t,className:w(`lucide-${T(D(e))}`,`lucide-${e}`,n),...r}));return n.displayName=D(e),n},P=/\{[^{}]+\}/g,F=()=>typeof process==`object`&&Number.parseInt(process?.versions?.node?.substring(0,2))>=18&&process.versions.undici;function te(){return Math.random().toString(36).slice(2,11)}function ne(e){let{baseUrl:t=``,Request:n=globalThis.Request,fetch:r=globalThis.fetch,querySerializer:i,bodySerializer:a,pathSerializer:o,headers:s,requestInitExt:c=void 0,...l}={...e};c=F()?c:void 0,t=ce(t);let u=[];async function d(e,d){let{baseUrl:ee,fetch:f=r,Request:p=n,headers:m,params:h={},parseAs:g=`json`,querySerializer:_,bodySerializer:v=a??oe,pathSerializer:y,body:b,middleware:x=[],...S}=d||{},C=t;ee&&(C=ce(ee)??t);let w=typeof i==`function`?i:L(i);_&&(w=typeof _==`function`?_:L({...typeof i==`object`?i:{},..._}));let T=y||o||ae,E=b===void 0?void 0:v(b,se(s,m,h.header)),D=se(E===void 0||E instanceof FormData?{}:{"Content-Type":`application/json`},s,m,h.header),O=[...u,...x],k={redirect:`follow`,...l,...S,body:E,headers:D},A,j,M=new p(R(e,{baseUrl:C,params:h,querySerializer:w,pathSerializer:T}),k),N;for(let e in S)e in M||(M[e]=S[e]);if(O.length){A=te(),j=Object.freeze({baseUrl:C,fetch:f,parseAs:g,querySerializer:w,bodySerializer:v,pathSerializer:T});for(let t of O)if(t&&typeof t==`object`&&typeof t.onRequest==`function`){let n=await t.onRequest({request:M,schemaPath:e,params:h,options:j,id:A});if(n)if(n instanceof p)M=n;else if(n instanceof Response){N=n;break}else throw Error(`onRequest: must return new Request() or Response() when modifying the request`)}}if(!N){try{N=await f(M,c)}catch(t){let n=t;if(O.length)for(let t=O.length-1;t>=0;t--){let r=O[t];if(r&&typeof r==`object`&&typeof r.onError==`function`){let t=await r.onError({request:M,error:n,schemaPath:e,params:h,options:j,id:A});if(t){if(t instanceof Response){n=void 0,N=t;break}if(t instanceof Error){n=t;continue}throw Error(`onError: must return new Response() or instance of Error`)}}}if(n)throw n}if(O.length)for(let t=O.length-1;t>=0;t--){let n=O[t];if(n&&typeof n==`object`&&typeof n.onResponse==`function`){let t=await n.onResponse({request:M,response:N,schemaPath:e,params:h,options:j,id:A});if(t){if(!(t instanceof Response))throw Error(`onResponse: must return new Response() when modifying the response`);N=t}}}}let P=N.headers.get(`Content-Length`);if(N.status===204||M.method===`HEAD`||P===`0`&&!N.headers.get(`Transfer-Encoding`)?.includes(`chunked`))return N.ok?{data:void 0,response:N}:{error:void 0,response:N};if(N.ok)return{data:await(async()=>{if(g===`stream`)return N.body;if(g===`json`&&!P){let e=await N.text();return e?JSON.parse(e):void 0}return await N[g]()})(),response:N};let F=await N.text();try{F=JSON.parse(F)}catch{}return{error:F,response:N}}return{request(e,t,n){return d(t,{...n,method:e.toUpperCase()})},GET(e,t){return d(e,{...t,method:`GET`})},PUT(e,t){return d(e,{...t,method:`PUT`})},POST(e,t){return d(e,{...t,method:`POST`})},DELETE(e,t){return d(e,{...t,method:`DELETE`})},OPTIONS(e,t){return d(e,{...t,method:`OPTIONS`})},HEAD(e,t){return d(e,{...t,method:`HEAD`})},PATCH(e,t){return d(e,{...t,method:`PATCH`})},TRACE(e,t){return d(e,{...t,method:`TRACE`})},use(...e){for(let t of e)if(t){if(typeof t!=`object`||!(`onRequest`in t||`onResponse`in t||`onError`in t))throw Error("Middleware must be an object with one of `onRequest()`, `onResponse() or `onError()`");u.push(t)}},eject(...e){for(let t of e){let e=u.indexOf(t);e!==-1&&u.splice(e,1)}}}}function re(e,t,n){if(t==null)return``;if(typeof t==`object`)throw Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${e}=${n?.allowReserved===!0?t:encodeURIComponent(t)}`}function ie(e,t,n){if(!t||typeof t!=`object`)return``;let r=[],i={simple:`,`,label:`.`,matrix:`;`}[n.style]||`&`;if(n.style!==`deepObject`&&n.explode===!1){for(let e in t)r.push(e,n.allowReserved===!0?t[e]:encodeURIComponent(t[e]));let i=r.join(`,`);switch(n.style){case`form`:return`${e}=${i}`;case`label`:return`.${i}`;case`matrix`:return`;${e}=${i}`;default:return i}}for(let i in t){let a=n.style===`deepObject`?`${e}[${i}]`:i;r.push(re(a,t[i],n))}let a=r.join(i);return n.style===`label`||n.style===`matrix`?`${i}${a}`:a}function I(e,t,n){if(!Array.isArray(t))return``;if(n.explode===!1){let r={form:`,`,spaceDelimited:`%20`,pipeDelimited:`|`}[n.style]||`,`,i=(n.allowReserved===!0?t:t.map(e=>encodeURIComponent(e))).join(r);switch(n.style){case`simple`:return i;case`label`:return`.${i}`;case`matrix`:return`;${e}=${i}`;default:return`${e}=${i}`}}let r={simple:`,`,label:`.`,matrix:`;`}[n.style]||`&`,i=[];for(let r of t)n.style===`simple`||n.style===`label`?i.push(n.allowReserved===!0?r:encodeURIComponent(r)):i.push(re(e,r,n));return n.style===`label`||n.style===`matrix`?`${r}${i.join(r)}`:i.join(r)}function L(e){return function(t){let n=[];if(t&&typeof t==`object`)for(let r in t){let i=t[r];if(i!=null){if(Array.isArray(i)){if(i.length===0)continue;n.push(I(r,i,{style:`form`,explode:!0,...e?.array,allowReserved:e?.allowReserved||!1}));continue}if(typeof i==`object`){n.push(ie(r,i,{style:`deepObject`,explode:!0,...e?.object,allowReserved:e?.allowReserved||!1}));continue}n.push(re(r,i,e))}}return n.join(`&`)}}function ae(e,t){let n=e;for(let r of e.match(P)??[]){let e=r.substring(1,r.length-1),i=!1,a=`simple`;if(e.endsWith(`*`)&&(i=!0,e=e.substring(0,e.length-1)),e.startsWith(`.`)?(a=`label`,e=e.substring(1)):e.startsWith(`;`)&&(a=`matrix`,e=e.substring(1)),!t||t[e]===void 0||t[e]===null)continue;let o=t[e];if(Array.isArray(o)){n=n.replace(r,I(e,o,{style:a,explode:i}));continue}if(typeof o==`object`){n=n.replace(r,ie(e,o,{style:a,explode:i}));continue}if(a===`matrix`){n=n.replace(r,`;${re(e,o)}`);continue}n=n.replace(r,a===`label`?`.${encodeURIComponent(o)}`:encodeURIComponent(o))}return n}function oe(e,t){return e instanceof FormData?e:t&&(t.get instanceof Function?t.get(`Content-Type`)??t.get(`content-type`):t[`Content-Type`]??t[`content-type`])===`application/x-www-form-urlencoded`?new URLSearchParams(e).toString():JSON.stringify(e)}function R(e,t){let n=`${t.baseUrl}${e}`;t.params?.path&&(n=t.pathSerializer(n,t.params.path));let r=t.querySerializer(t.params.query??{});return r.startsWith(`?`)&&(r=r.substring(1)),r&&(n+=`?${r}`),n}function se(...e){let t=new Headers;for(let n of e){if(!n||typeof n!=`object`)continue;let e=n instanceof Headers?n.entries():Object.entries(n);for(let[n,r]of e)if(r===null)t.delete(n);else if(Array.isArray(r))for(let e of r)t.append(n,e);else r!==void 0&&t.set(n,r)}return t}function ce(e){return e.endsWith(`/`)?e.substring(0,e.length-1):e}var z={ko:{},en:{}},le=new Set;function ue(e){le.has(e)||(le.add(e),Object.assign(z.ko,e.ko),Object.assign(z.en,e.en))}ue({ko:{"brain.title":`Lattice Brain`,"language.label":`언어`,"language.ko":`한국어`,"language.en":`English`,"shell.localBadge":`이 컴퓨터 안에서만`,"shell.route.brain":`대화`,"shell.route.capture":`자료`,"shell.route.memory":`기억`,"shell.route.chronicle":`연대기`,"shell.route.library":`AI 모델`,"shell.route.system":`설정`,"shell.route.act":`작업`,"shell.skip":`본문으로 건너뛰기`,"shell.menu.open":`메뉴 열기`,"shell.menu.close":`메뉴 닫기`,"shell.menu.title":`더보기`,"shell.theme.toLight":`밝은 화면으로 바꾸기`,"shell.theme.toDark":`어두운 화면으로 바꾸기`,"shell.menu.nav":`화면 이동`,"shell.menu.manage":`관리`,"shell.nav.utility":`관리 화면 이동`,"shell.menu.workspace":`작업 공간`,"shell.loading":`Brain 작업공간을 여는 중...`,"shell.workspace.label":`작업공간 및 프로필`,"shell.workspace.current":`현재 작업공간`,"shell.workspace.switch":`전환`,"shell.workspace.active":`사용 중`,"shell.workspace.empty":`아직 작업공간이 없습니다`,"shell.workspace.personal":`개인 Brain`,"shell.workspace.manageSpaces":`작업공간 관리`,"shell.workspace.close":`닫기`,"shell.profile.label":`프로필`,"shell.profile.owner":`소유자`,"shell.profile.signedOut":`로그인하지 않음`,"shell.profile.you":`내 계정`,"shell.profile.manage":`계정 설정 열기`,"shell.admin.label":`관리자`,"shell.admin.open":`관리자 콘솔 열기`,"shell.admin.tooltip":`설정, 에이전트, 도구 레지스트리 관리`,"shell.admin.needsMode":`관리자 콘솔은 고급 또는 관리자 모드에서만 사용할 수 있습니다`,"shell.admin.enable":`관리자 모드로 전환`,"shell.mode.label":`모드`,"shell.mode.basic":`기본`,"shell.mode.advanced":`고급`,"shell.mode.admin":`관리자`,"shell.mode.info":`모드는 표시되는 도구와 관리자 화면의 범위를 정합니다`,"shell.account.aria":`계정과 워크스페이스`,"shell.account.workspaceLabel":`워크스페이스`,"shell.account.personal":`개인 Brain`,"shell.account.modeLabel":`보기 모드`,"shell.account.mode.basic":`기본`,"shell.account.mode.advanced":`고급`,"shell.account.mode.admin":`관리자`,"shell.account.open":`계정·워크스페이스 메뉴 열기`,"shell.account.menuAria":`계정과 워크스페이스 메뉴`,"shell.account.profile":`프로필과 계정`,"shell.account.workspaces":`워크스페이스 전환`,"shell.account.admin":`관리자 콘솔`,"shell.account.settings":`설정 열기`,"shell.sync.aria":`VS Code 확장 연동 상태`,"shell.sync.label":`VS Code`,"shell.sync.connected":`연결됨`,"shell.sync.indexing":`정리 중`,"shell.sync.synced":`동기화됨`,"shell.sync.offline":`연결 안 됨`,"shell.sync.checking":`확인 중`,"shell.sync.detail":`확장과 메인 앱이 같은 Brain을 공유합니다.`,"shell.sync.detailOffline":`VS Code 확장이 아직 이 Brain에 연결되지 않았습니다.`,"feedback.retry":`다시 시도`,"service.unavailable.title":`로컬 Lattice 서비스를 사용할 수 없습니다`,"service.unavailable.detail":`빈 Brain으로 표시하지 않았습니다. 연결을 확인한 뒤 다시 시도하세요. ({detail})`,"feedback.error.title":`문제가 생겼어요`,"feedback.error.body":`잠시 후 다시 시도하거나 설정에서 연결을 확인하세요.`,"ui.status.notLoaded":`확인 전`,"ui.status.ready":`사용 가능`,"ui.status.connected":`연결됨`,"ui.status.needsSetup":`준비 필요`,"ui.status.unavailable":`응답 없음`,"ui.empty.title":`아직 비어 있어요`,"ui.empty.basicDetail":`자료를 넣거나 준비가 끝나면 여기에 내용이 나타납니다.`,"ui.empty.advancedDetail":`이 기능이 지금 응답하지 않습니다.`,"ui.empty.listDetail":`새 항목이 생기면 여기에 표시됩니다.`,"ui.loading":`불러오는 중…`,"ui.cancel":`취소`,"ui.done":`완료`,"ui.requestCompleted":`요청이 완료되었습니다`,"ui.requestUnavailable":`요청을 처리하지 못했어요`,"ui.noValues":`표시할 값이 없어요`,"ui.value.enabled":`활성화됨`,"ui.value.disabled":`비활성화됨`,"ui.value.none":`없음`,"ui.value.records":`레코드 {count}개`,"ui.value.noFields":`필드 없음`,"ui.value.fields":`내용 {count}가지`,"ui.entity.Task":`할 일`,"ui.entity.Concept":`주제`,"ui.entity.Document":`문서`,"ui.entity.Chunk":`문서 조각`,"ui.entity.Source":`출처`,"ui.entity.Chat":`대화`,"ui.entity.Message":`메시지`,"ui.entity.AIResponse":`Brain 답변`,"ui.entity.Person":`사람`,"ui.entity.Event":`일정`,"ui.entity.Place":`장소`,"ui.entity.Organization":`조직`,"ui.field.status":`상태`,"ui.field.state":`상태`,"ui.field.version":`버전`,"ui.field.mode":`모드`,"ui.field.platform":`플랫폼`,"ui.field.device":`장치`,"ui.field.current_model":`지금 쓰는 모델`,"ui.field.loaded_models":`불러온 모델`,"ui.field.model":`모델`,"ui.field.model_id":`모델 이름`,"ui.field.provider":`제공자`,"ui.field.requested_provider":`요청한 제공자`,"ui.field.active_provider":`실제 제공자`,"ui.field.dimensions":`벡터 차원`,"ui.field.grade":`품질 등급`,"ui.field.runtime":`실행 환경`,"ui.field.health":`상태 점검`,"ui.field.ready":`사용 준비`,"ui.field.execution_mode":`실행 방식`,"ui.field.roles":`역할`,"ui.field.agents":`에이전트`,"ui.field.runs":`실행 기록`,"ui.field.contracts":`계약`,"ui.field.checks":`점검 항목`,"ui.field.cpu_pct":`CPU 사용률`,"ui.field.ram_pct":`메모리 사용률`,"ui.field.gpu_mem_pct":`GPU 메모리 사용률`,"ui.field.gpu_mem_gb":`GPU 메모리`,"ui.field.features":`기능 설정`,"ui.entity.Indexed":`정리 완료`,"ui.entity.Ingested":`정리 중`,"ui.entity.Ready":`준비됨`,"ui.entity.Pending":`대기 중`,"ui.entity.Queued":`대기 중`,"ui.entity.Running":`진행 중`,"ui.entity.Complete":`완료`,"ui.entity.Completed":`완료`,"ui.entity.Failed":`실패`,"ui.entity.Error":`오류`,"ui.entity.Ok":`정상`,"ui.entity.Record":`항목`,"ui.entity.Active":`사용 중`,"ui.entity.Disabled":`꺼짐`,"ui.entity.Enabled":`켜짐`,"ui.field.available":`사용 가능`,"ui.field.directory":`저장 위치`,"ui.field.count":`개수`,"ui.field.latest":`가장 최근`,"ui.field.latest_bytes":`최근 파일 크기`,"ui.field.encrypted_archives":`암호화된 백업`,"ui.field.zip_backups":`압축 백업`,"ui.field.last_verified":`마지막 확인`,"ui.field.failure":`실패`,"ui.field.enabled":`사용`,"ui.field.capabilities":`할 수 있는 일`,"ui.field.engine":`저장 엔진`,"ui.field.detail":`설명`,"ui.field.description":`설명`,"ui.field.summary":`요약`,"ui.field.name":`이름`,"ui.field.title":`제목`,"ui.field.type":`종류`,"ui.field.id":`식별자`,"ui.field.path":`경로`,"ui.field.size_bytes":`크기`,"ui.field.total_items":`전체 항목`,"ui.field.sources":`출처`,"ui.field.approved":`승인됨`,"ui.field.approved_at":`승인 시각`,"ui.field.approved_by":`승인한 사람`,"ui.field.created_at":`만든 시각`,"ui.field.updated_at":`수정 시각`,"ui.field.backup_health":`백업 상태`,"ui.field.reason":`이유`,"ui.field.message":`메시지`,"ui.field.scopes":`허용 폴더`,"ui.field.running":`실행 중`,"ui.field.armed":`예약됨`,"ui.field.tick_seconds":`확인 주기(초)`,"ui.field.tz":`표준시`,"ui.field.activities":`활동`,"ui.field.notice":`안내`,"ui.field.kind":`종류`,"ui.field.source":`출처`,"ui.field.enabled_at":`켠 시각`,"ui.field.disabled":`꺼짐`,"ui.modeGate.title":`고급 설정`,"ui.modeGate.detail":`진단이나 관리 기능이 필요할 때 모드를 전환하세요. 기본 모드는 일상 사용에 집중합니다.`,"ui.modeGate.advanced":`고급 모드로 전환`,"ui.modeGate.admin":`관리자 콘솔로 전환`,"command.title":`명령 팔레트`,"command.shortcutKey":`K`,"command.placeholder":`검색하거나 이동할 곳을 입력하세요...`,"command.results":`검색 결과`,"command.searching":`Brain에서 찾는 중...`,"command.empty":`일치하는 항목이 없습니다`,"command.footer":`↑↓로 이동, Enter로 선택, Esc로 닫기`,"command.group.pages":`화면 이동`,"command.group.knowledge":`지식`,"command.group.conversation":`지난 대화`,"command.group.automation":`자동화`,"command.automation.enabled":`켜짐`,"command.automation.draft":`초안`,"command.page.review":`검토함`,"briefing.title":`오늘의 브리핑`,"briefing.subtitle":`Brain이 정리한 오늘의 현황과 다음 할 일`,"briefing.loading":`브리핑을 준비하는 중...`,"briefing.stat.questions":`질문`,"briefing.stat.automations":`자동화 켜짐`,"briefing.stat.review":`검토 대기`,"briefing.stat.health":`Brain 건강`,"briefing.recent":`최근 담긴 지식`,"briefing.suggestions":`나를 위한 자동화 제안 {count}개가 기다리고 있어요`,"briefing.action.reviewPending":`검토 대기 {count}건 확인하기`,"briefing.action.enableDrafts":`꺼져 있는 자동화 초안 {count}개 살펴보기`,"briefing.action.installSuggestion":`추천 자동화 {count}개 보러 가기`,"briefing.action.connectKnowledge":`지식 폴더 연결하기`,"briefing.action.checkHealth":`Brain 건강 점검하기`,"briefing.action.askBrain":`Brain에게 질문하기`,"briefing.empty":`아직 보여드릴 브리핑이 없어요. 자료를 넣고 대화를 시작하면 이곳에 하루 요약이 쌓입니다.`,"command.proactive.title":`지금 바로`,"command.proactive.briefing":`오늘의 브리핑 열기`,"command.proactive.review":`검토 대기 항목 보기`,"command.proactive.suggestions":`오늘의 제안 {count}개`,"command.proactive.pending":`{count}건 대기 중`,"proposals.title":`변경 제안`,"proposals.subtitle":`기존 파일을 바꾸는 작업은 검토 후 적용됩니다`,"proposals.loading":`제안을 불러오는 중...`,"proposals.empty":`대기 중인 변경 제안이 없습니다`,"proposals.diff":`변경 내용 미리보기`,"proposals.tier.small":`작은 수정`,"proposals.tier.large":`큰 수정`,"proposals.kind.delete":`삭제`,"proposals.approve":`승인하고 적용`,"proposals.reject":`거절`,"proposals.note":`새 파일 생성은 바로 실행되고, 기존 내용 수정과 삭제만 여기에서 검토합니다. 승인 전에는 아무것도 바뀌지 않습니다.`,"proposals.conflict.title":`파일이 그 사이 변경되었습니다`,"proposals.conflict.detail":`제안을 만든 뒤 파일 내용이 바뀌어 그대로 적용하면 최근 수정이 사라질 수 있어요. 현재 파일을 다시 읽어 새 제안으로 만들 수 있습니다.`,"proposals.conflict.rebase":`다시 읽어서 재적용`,"proposals.conflict.rebasing":`현재 파일을 다시 읽는 중…`,"proposals.conflict.rebased":`현재 파일 기준으로 새 제안을 만들었어요. 새 변경 내용을 확인해 주세요.`,"proposals.conflict.alreadyApplied":`이미 같은 내용이 반영되어 있어 이 제안을 정리했어요.`,"proposals.conflict.failed":`다시 적용을 준비하지 못했어요: {reason}`},en:{"brain.title":`Lattice Brain`,"language.label":`Language`,"language.ko":`한국어`,"language.en":`English`,"shell.localBadge":`Local PC only`,"shell.route.brain":`Chat`,"shell.route.capture":`Sources`,"shell.route.memory":`Memory`,"shell.route.chronicle":`Chronicle`,"shell.route.library":`AI model`,"shell.route.system":`Settings`,"shell.route.act":`Work`,"shell.skip":`Skip to content`,"shell.menu.open":`Open menu`,"shell.menu.close":`Close menu`,"shell.menu.title":`More`,"shell.theme.toLight":`Switch to the light screen`,"shell.theme.toDark":`Switch to the dark screen`,"shell.menu.nav":`Go to`,"shell.menu.manage":`Manage`,"shell.nav.utility":`Go to management`,"shell.menu.workspace":`Workspace`,"shell.loading":`Loading Brain workspace...`,"shell.workspace.label":`Workspace and profile`,"shell.workspace.current":`Current workspace`,"shell.workspace.switch":`Switch`,"shell.workspace.active":`Active`,"shell.workspace.empty":`No workspaces yet`,"shell.workspace.personal":`Personal Brain`,"shell.workspace.manageSpaces":`Manage workspaces`,"shell.workspace.close":`Close`,"shell.profile.label":`Profile`,"shell.profile.owner":`Owner`,"shell.profile.signedOut":`Not signed in`,"shell.profile.you":`You`,"shell.profile.manage":`Open account settings`,"shell.admin.label":`Admin`,"shell.admin.open":`Open Admin Console`,"shell.admin.tooltip":`Manage settings, agents, and the tool registry`,"shell.admin.needsMode":`Admin Console is available in Advanced or Admin mode`,"shell.admin.enable":`Switch to Admin mode`,"shell.mode.label":`Mode`,"shell.mode.basic":`Basic`,"shell.mode.advanced":`Advanced`,"shell.mode.admin":`Admin`,"shell.mode.info":`Mode sets which tools and admin surfaces are shown`,"shell.account.aria":`Account and workspace`,"shell.account.workspaceLabel":`Workspace`,"shell.account.personal":`Personal Brain`,"shell.account.modeLabel":`View mode`,"shell.account.mode.basic":`Basic`,"shell.account.mode.advanced":`Advanced`,"shell.account.mode.admin":`Admin`,"shell.account.open":`Open account and workspace menu`,"shell.account.menuAria":`Account and workspace menu`,"shell.account.profile":`Profile & account`,"shell.account.workspaces":`Switch workspace`,"shell.account.admin":`Admin console`,"shell.account.settings":`Open settings`,"shell.sync.aria":`VS Code extension link status`,"shell.sync.label":`VS Code`,"shell.sync.connected":`Connected`,"shell.sync.indexing":`Updating`,"shell.sync.synced":`Synced`,"shell.sync.offline":`Not connected`,"shell.sync.checking":`Checking`,"shell.sync.detail":`The extension and main app share the same Brain.`,"shell.sync.detailOffline":`The VS Code extension is not linked to this Brain yet.`,"feedback.retry":`Retry`,"service.unavailable.title":`The local Lattice service is unavailable`,"service.unavailable.detail":`This is not being shown as an empty Brain. Check the connection and retry. ({detail})`,"feedback.error.title":`Something went wrong`,"feedback.error.body":`Try again shortly or check the connection in Settings.`,"ui.status.notLoaded":`Not loaded`,"ui.status.ready":`Ready`,"ui.status.connected":`Connected`,"ui.status.needsSetup":`Needs setup`,"ui.status.unavailable":`Not responding`,"ui.empty.title":`Nothing here yet`,"ui.empty.basicDetail":`Add material or finish setup and content will appear here.`,"ui.empty.advancedDetail":`This capability is not reporting right now.`,"ui.empty.listDetail":`New items will appear here when Lattice has something to show.`,"ui.loading":`Loading…`,"ui.cancel":`Cancel`,"ui.done":`Done`,"ui.requestCompleted":`Request completed`,"ui.requestUnavailable":`Request could not be completed`,"ui.noValues":`No values to show`,"ui.value.enabled":`enabled`,"ui.value.disabled":`disabled`,"ui.value.none":`None`,"ui.value.records":`{count} records`,"ui.value.noFields":`No fields`,"ui.value.fields":`{count} details`,"ui.entity.Task":`Task`,"ui.entity.Concept":`Topic`,"ui.entity.Document":`Document`,"ui.entity.Chunk":`Excerpt`,"ui.entity.Source":`Source`,"ui.entity.Chat":`Conversation`,"ui.entity.Message":`Message`,"ui.entity.AIResponse":`Brain reply`,"ui.entity.Person":`Person`,"ui.entity.Event":`Event`,"ui.entity.Place":`Place`,"ui.entity.Organization":`Organization`,"ui.field.status":`Status`,"ui.field.state":`State`,"ui.field.version":`Version`,"ui.field.mode":`Mode`,"ui.field.platform":`Platform`,"ui.field.device":`Device`,"ui.field.current_model":`Model in use`,"ui.field.loaded_models":`Loaded models`,"ui.field.model":`Model`,"ui.field.model_id":`Model name`,"ui.field.provider":`Provider`,"ui.field.requested_provider":`Requested provider`,"ui.field.active_provider":`Active provider`,"ui.field.dimensions":`Vector size`,"ui.field.grade":`Quality grade`,"ui.field.runtime":`Runtime`,"ui.field.health":`Health check`,"ui.field.ready":`Ready`,"ui.field.execution_mode":`Execution`,"ui.field.roles":`Roles`,"ui.field.agents":`Agents`,"ui.field.runs":`Runs`,"ui.field.contracts":`Contracts`,"ui.field.checks":`Checks`,"ui.field.cpu_pct":`CPU use`,"ui.field.ram_pct":`Memory use`,"ui.field.gpu_mem_pct":`GPU memory use`,"ui.field.gpu_mem_gb":`GPU memory`,"ui.field.features":`Feature settings`,"ui.entity.Indexed":`Ready to search`,"ui.entity.Ingested":`Being sorted`,"ui.entity.Ready":`Ready`,"ui.entity.Pending":`Pending`,"ui.entity.Queued":`Queued`,"ui.entity.Running":`Running`,"ui.entity.Complete":`Complete`,"ui.entity.Completed":`Complete`,"ui.entity.Failed":`Failed`,"ui.entity.Error":`Error`,"ui.entity.Ok":`OK`,"ui.entity.Record":`Item`,"ui.entity.Active":`Active`,"ui.entity.Disabled":`Off`,"ui.entity.Enabled":`On`,"ui.field.available":`Available`,"ui.field.directory":`Location`,"ui.field.count":`Count`,"ui.field.latest":`Most recent`,"ui.field.latest_bytes":`Latest size`,"ui.field.encrypted_archives":`Encrypted backups`,"ui.field.zip_backups":`Zip backups`,"ui.field.last_verified":`Last verified`,"ui.field.failure":`Failure`,"ui.field.enabled":`Enabled`,"ui.field.capabilities":`Can do`,"ui.field.engine":`Storage engine`,"ui.field.detail":`Detail`,"ui.field.description":`Description`,"ui.field.summary":`Summary`,"ui.field.name":`Name`,"ui.field.title":`Title`,"ui.field.type":`Type`,"ui.field.id":`Identifier`,"ui.field.path":`Path`,"ui.field.size_bytes":`Size`,"ui.field.total_items":`Total items`,"ui.field.sources":`Sources`,"ui.field.approved":`Approved`,"ui.field.approved_at":`Approved at`,"ui.field.approved_by":`Approved by`,"ui.field.created_at":`Created`,"ui.field.updated_at":`Updated`,"ui.field.backup_health":`Backup health`,"ui.field.reason":`Reason`,"ui.field.message":`Message`,"ui.field.scopes":`Allowed folders`,"ui.field.running":`Running`,"ui.field.armed":`Armed`,"ui.field.tick_seconds":`Check interval (s)`,"ui.field.tz":`Time zone`,"ui.field.activities":`Activity`,"ui.field.notice":`Notice`,"ui.field.kind":`Kind`,"ui.field.source":`Source`,"ui.field.enabled_at":`Turned on`,"ui.field.disabled":`Off`,"ui.modeGate.title":`Advanced controls`,"ui.modeGate.detail":`Switch modes when you want diagnostics or administrative controls. Basic mode keeps the product focused on everyday use.`,"ui.modeGate.advanced":`Switch to Advanced`,"ui.modeGate.admin":`Switch to Admin Console`,"command.title":`Command palette`,"command.shortcutKey":`K`,"command.placeholder":`Search or jump anywhere...`,"command.results":`Search results`,"command.searching":`Searching your Brain...`,"command.empty":`No matches found`,"command.footer":`↑↓ to move, Enter to select, Esc to close`,"command.group.pages":`Go to`,"command.group.knowledge":`Knowledge`,"command.group.conversation":`Past conversations`,"command.group.automation":`Automations`,"command.automation.enabled":`Enabled`,"command.automation.draft":`Draft`,"command.page.review":`Review inbox`,"briefing.title":`Today's briefing`,"briefing.subtitle":`What your Brain sees today, and what to do next`,"briefing.loading":`Preparing your briefing...`,"briefing.stat.questions":`Questions`,"briefing.stat.automations":`Automations on`,"briefing.stat.review":`Awaiting review`,"briefing.stat.health":`Brain health`,"briefing.recent":`Recently added knowledge`,"briefing.suggestions":`{count} automation suggestions are waiting for you`,"briefing.action.reviewPending":`Check {count} items awaiting review`,"briefing.action.enableDrafts":`Look at {count} disabled automation drafts`,"briefing.action.installSuggestion":`See {count} suggested automations`,"briefing.action.connectKnowledge":`Connect a knowledge folder`,"briefing.action.checkHealth":`Check Brain health`,"briefing.action.askBrain":`Ask your Brain`,"briefing.empty":`Nothing to brief yet. Add some knowledge and start a conversation — your daily summary will build up here.`,"command.proactive.title":`Right now`,"command.proactive.briefing":`Open today's briefing`,"command.proactive.review":`See items awaiting review`,"command.proactive.suggestions":`{count} suggestions today`,"command.proactive.pending":`{count} waiting`,"proposals.title":`Change proposals`,"proposals.subtitle":`Changes to existing files apply only after your review`,"proposals.loading":`Loading proposals...`,"proposals.empty":`No pending change proposals`,"proposals.diff":`Change preview`,"proposals.tier.small":`Small change`,"proposals.tier.large":`Large change`,"proposals.kind.delete":`Deletion`,"proposals.approve":`Approve & apply`,"proposals.reject":`Reject`,"proposals.note":`Creating new files runs immediately; only edits and deletions of existing content are reviewed here. Nothing changes until you approve.`,"proposals.conflict.title":`The file changed in the meantime`,"proposals.conflict.detail":`The file was edited after this proposal was staged, so applying it as-is could erase recent changes. You can re-read the current file and stage a fresh proposal against it.`,"proposals.conflict.rebase":`Re-read & re-apply`,"proposals.conflict.rebasing":`Re-reading the current file…`,"proposals.conflict.rebased":`Staged a fresh proposal against the current file. Please review the new changes.`,"proposals.conflict.alreadyApplied":`The file already contains this change, so the proposal was retired.`,"proposals.conflict.failed":`Could not prepare the re-apply: {reason}`}});function de(e){try{let t=e();return typeof t==`string`?t:`dev`}catch{return`dev`}}var fe=de(()=>`11.6.0`),pe={ko:`한국어`,en:`English`};function me(e,t,n){let{defaultValue:r,...i}=n||{},a=z[e]?.[t]??z.ko[t]??r??t,o={version:fe,...i};for(let[e,t]of Object.entries(o))a=a.replaceAll(`{${e}}`,String(t));return a}var he=`modulepreload`,ge=function(e){return`/static/app/`+e},_e={},ve=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=ge(t,n),t in _e)return;_e[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:he,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},ye=1e4,be=new Map,xe=null;function Se(){return``}function Ce(){return!!(window.__TAURI_INTERNALS__||window.__TAURI__?.core?.invoke)}async function we(){return Ce()?(xe||=ve(async()=>{let{invoke:e}=await import(`./core-CwxXejkd.js`);return{invoke:e}},[]).then(({invoke:e})=>e(`backend_origin`)).then(e=>e||null).catch(()=>null),xe):null}async function Te(e,t){let n=window.__TAURI__?.core?.invoke;if(n)try{return await n(e,t)}catch{return null}if(!window.__TAURI_INTERNALS__)return null;try{let{invoke:n}=await ve(async()=>{let{invoke:e}=await import(`./core-CwxXejkd.js`);return{invoke:e}},[]);return await n(e,t)}catch{return null}}async function Ee(){let e=await Te(`select_folder`);if(e)return e;try{return await window.latticeDesktop?.selectFolder?.()||null}catch{return null}}async function B(){let e=C.getState().apiBase;if(e)return e;let t=await we();return t?(C.getState().setApiBase(t),t):Se()}function De(e){return be.has(e)||be.set(e,ne({baseUrl:e,credentials:`include`})),be.get(e)}function Oe(e){return Array.isArray(e)?[]:e&&typeof e==`object`?{...e}:e}function V(){let e=C.getState().workspaceId;return{"X-Lattice-Language":ke(),...e?{"X-Workspace-Id":e}:{}}}function ke(){try{return C.getState().language}catch{return`ko`}}function Ae(){return me(ke(),`api.error.unreachable`)}function je(e){return me(ke(),`api.error.request`,{status:e})}function H(e,t){if(!e)return t;let n=typeof e==`object`&&e?e:null,r=n?.detail;if(typeof r==`string`)return r;let i=typeof r==`object`&&r?r:null;if(i){let e=i.user_message||i.reason||i.action||i.status;if(e)return String(e)}let a=n?.message||n?.error;return a?String(a):t}function Me(e,t){let n=e instanceof Error?e.message:String(e);return/not valid JSON|Unexpected token|JSON/i.test(n)?t:/aborted|abort|timed?\s?out/i.test(n)?me(ke(),`api.error.timeout`):/failed to fetch|load failed|networkerror|network request failed/i.test(n)?me(ke(),`api.error.unreachable`):n||t}async function Ne(e,t,n){let r=De(await B()),i=new AbortController,a=window.setTimeout(()=>i.abort(),ye);try{let a={body:n.body,params:{query:n.query||{}},headers:{...V(),...n.headers||{}},signal:i.signal},{data:o,error:s,response:c}=await(e===`GET`?r.GET:e===`POST`?r.POST:e===`PATCH`?r.PATCH:r.DELETE)(t,a);return c.ok&&o!==void 0?{ok:!0,status:c.status,data:o,source:`live`}:{ok:!1,status:c.status,data:Oe(n.shape),source:`unavailable`,error:H(s,je(c.status))}}catch(e){return{ok:!1,status:0,data:Oe(n.shape),source:`unavailable`,error:Me(e,Ae())}}finally{window.clearTimeout(a)}}async function Pe(e,t){let n=De(await B()),r=new AbortController,i=window.setTimeout(()=>r.abort(),ye);try{let{data:i,error:a,response:o}=await t(n,r.signal);return o.ok&&i!==void 0?{ok:!0,status:o.status,data:i,source:`live`}:{ok:!1,status:o.status,data:Oe(e),source:`unavailable`,error:H(a,je(o.status))}}catch(t){return{ok:!1,status:0,data:Oe(e),source:`unavailable`,error:Me(t,Ae())}}finally{window.clearTimeout(i)}}function U(e,t,n){return Ne(`GET`,e,{query:n,shape:t})}function W(e,t,n){return Ne(`POST`,e,{body:t,shape:n})}function Fe(e,t,n){return Ne(`PATCH`,e,{body:t,shape:n})}function Ie(e,t){return Ne(`DELETE`,e,{shape:t})}var Le={chronicleOverview:()=>U(`/api/chronicle/overview`,{first_activity_at:null,last_activity_at:null,totals:{sources:0,entities:0,connections:0,conversations:0},series:[]}),chronicleDay:e=>U(`/api/chronicle/day/${encodeURIComponent(e)}`,{date:e,counts:{sources:0,entities:0,conversations:0,changes:0},groups:{sources:[],entities:[],conversations:[],changes:[]}}),chronicleAsOf:e=>U(`/api/chronicle/as-of`,{ts:e,stats:{entities:0,connections:0},top_entities:[]},{ts:e})};function Re(e){let t=e.split(`
|
|
2
2
|
`),n=t.find(e=>e.startsWith(`data:`));if(!n)return null;let r=t.find(e=>e.startsWith(`event:`))?.slice(6).trim()||`message`,i=n.slice(5).trim();if(!i)return{event:r,raw:i,data:{},malformed:!1};try{let e=JSON.parse(i);return{event:r,raw:i,data:typeof e==`object`&&e&&!Array.isArray(e)?e:null,malformed:!1}}catch{return{event:r,raw:i,data:null,malformed:!0}}}async function*ze(e){let t=e.getReader(),n=new TextDecoder,r=``;try{for(;;){let{done:e,value:i}=await t.read();if(e)break;r+=n.decode(i,{stream:!0});let a=r.split(`
|
|
3
3
|
|
|
4
4
|
`);r=a.pop()||``;for(let e of a){let t=Re(e);t&&(yield t)}}let e=r+n.decode();if(e.trim()){let t=Re(e);t&&(yield t)}}finally{try{t.cancel().catch(()=>void 0)}catch{}}}function Be(){return{id:``,status:`pending`,effective_status:`pending`,title:``,summary:``,source:`workflow_run`,kind:`suggestion`,payload:{},provenance:{}}}function Ve(){return{items:[]}}function He(e){return Pe(Ve(),(t,n)=>t.GET(`/automation/reviews`,{params:{query:e||{}},headers:V(),signal:n}))}function Ue(e,t){return Pe(Be(),(n,r)=>{let i={params:{path:{item_id:e}},headers:V(),signal:r};return t===`approve`?n.POST(`/automation/reviews/{item_id}/approve`,i):t===`dismiss`?n.POST(`/automation/reviews/{item_id}/dismiss`,i):t===`run_now`?n.POST(`/automation/reviews/{item_id}/run_now`,i):n.POST(`/automation/reviews/{item_id}/unsnooze`,i)})}function We(e,t){return Pe(Be(),(n,r)=>n.POST(`/automation/reviews/{item_id}/snooze`,{params:{path:{item_id:e}},body:{until:t},headers:V(),signal:r}))}async function Ge(e){let t=await B(),n=new FormData;n.append(`file`,e);try{let e=await fetch(`${t}/upload/document`,{method:`POST`,credentials:`include`,headers:{Accept:`application/json`,...V()},body:n}),r=await e.json().catch(()=>null);return{ok:e.ok,status:e.status,data:r,source:e.ok?`live`:`unavailable`,error:e.ok?void 0:H(r,e.statusText||`Upload failed`)}}catch(e){return{ok:!1,status:0,data:null,source:`unavailable`,error:String(e)}}}async function Ke(e,t={}){let n=await B(),r=await fetch(`${n}/engines/prepare-model/stream`,{method:`POST`,credentials:`include`,signal:t.signal,headers:{"Content-Type":`application/json`,Accept:`text/event-stream`,...V()},body:JSON.stringify({engine:null,allow_download:!1,...e})});if(!r.ok||!r.body||!(r.headers.get(`content-type`)||``).includes(`text/event-stream`)){let e=await r.json().catch(()=>null),n=e?.detail&&typeof e.detail==`object`?e.detail:e,i=H(e,r.statusText);return t.onError?.({status:`error`,user_message:i,...n||{}}),{source:`live`,ok:!1,status:r.status,data:n||{},error:i,malformedFrames:0}}let i={},a=0;for await(let e of ze(r.body)){if(e.malformed){a+=1;continue}let n=e.data||{};if(e.event===`progress`&&t.onProgress?.(n),e.event===`error`){let e=typeof n.detail==`object`&&n.detail!==null?n.detail:n;return t.onError?.(e),{source:`live`,ok:!1,status:Number(n.status_code||500),data:e,error:H({detail:e},`Model setup failed`),malformedFrames:a}}e.event===`done`&&(i=n,t.onDone?.(n))}return{source:`live`,ok:!0,status:200,data:i,malformedFrames:a}}async function qe(e,t={}){let n=await B(),r=await fetch(`${n}/chat`,{method:`POST`,credentials:`include`,signal:t.signal,headers:{"Content-Type":`application/json`,Accept:`text/event-stream`,...V()},body:JSON.stringify({stream:!0,max_tokens:2048,temperature:.2,...e})});if(!r.ok||!r.body||!(r.headers.get(`content-type`)||``).includes(`text/event-stream`)){let e=await r.json().catch(()=>null);return{source:`live`,text:``,trace:null,error:e?.error||e?.detail||r.statusText,malformedFrames:0}}let i=``,a=null,o=null,s=null,c=null,l=0;for await(let e of ze(r.body)){if(e.event===`message`&&e.raw===`[DONE]`)return{source:`live`,text:i,trace:a,agent:o,contextQuality:s,grounding:c,malformedFrames:l};if(e.malformed){l+=1;continue}if(e.event===`agent_step`){e.data&&t.onAgentStep?.(e.data);continue}if(e.event!==`message`)continue;let n=e.data;if(!n)continue;let r=n.chunk||n.text||``;r&&(i+=r,t.onChunk?.(r,i)),n.trace&&(a=n.trace,t.onTrace?.(a)),n.context_quality&&typeof n.context_quality==`object`&&(s=n.context_quality),n.grounding&&typeof n.grounding==`object`&&(c=n.grounding),n.agent&&typeof n.agent==`object`&&(o=n.agent,t.onAgent?.(o))}return{source:`live`,text:i,trace:a,agent:o,contextQuality:s,grounding:c,malformedFrames:l}}async function Je(e,t){return W(`/tools/write_file`,{path:e,content:t},{})}async function Ye(e){let t=await B();try{let n=await fetch(`${t}/agent/resume`,{method:`POST`,credentials:`include`,headers:{"Content-Type":`application/json`,Accept:`application/json`,...V()},body:JSON.stringify(e)}),r=await n.json().catch(()=>null);return{ok:n.ok,status:n.status,data:r&&typeof r==`object`?r:{},source:n.ok?`live`:`unavailable`,error:n.ok?void 0:H(r,n.statusText||`HTTP ${n.status}`)}}catch(e){return{ok:!1,status:0,data:{},source:`unavailable`,error:Me(e,`unreachable`)}}}async function Xe(){let e=await B(),t={status:``,ingested:0,duplicates:0,documents:[],suggested_questions:[]};try{let n=await fetch(`${e}/api/setup/demo-corpus`,{method:`POST`,credentials:`include`,headers:{"Content-Type":`application/json`,Accept:`application/json`,...V()},body:JSON.stringify({})}),r=await n.json().catch(()=>null);return n.ok?{ok:!0,status:n.status,data:{...t,...r&&typeof r==`object`?r:{}},source:`live`}:{ok:!1,status:n.status,data:t,source:`unavailable`,error:H(r,n.statusText||`HTTP ${n.status}`)}}catch(e){return{ok:!1,status:0,data:t,source:`unavailable`,error:Me(e,`unreachable`)}}}async function Ze(e,t){let n=await W(`/agents/api/run`,{goal:e,roles:t},{});if(!n.ok)throw Error(n.error||`Agent run failed with HTTP ${n.status}`);return n}async function Qe(e){let t=await B();try{let n=await fetch(`${t}/tools/download?path=${encodeURIComponent(e)}`,{credentials:`include`,headers:V()});if(!n.ok){let e=await n.json().catch(()=>null);return{ok:!1,status:n.status,data:{content:``},source:`unavailable`,error:H(e,n.statusText||`HTTP ${n.status}`)}}let r=await n.text();return{ok:!0,status:n.status,data:{content:r},source:`live`}}catch(e){return{ok:!1,status:0,data:{content:``},source:`unavailable`,error:Me(e,`unreachable`)}}}async function $e(e,t){let n=await B();try{let r=await fetch(`${n}/tools/download?path=${encodeURIComponent(e)}`,{credentials:`include`,headers:V()});if(!r.ok)return{ok:!1,error:H(await r.json().catch(()=>null),r.statusText||`Download failed`)};let i=await r.blob(),a=URL.createObjectURL(i),o=document.createElement(`a`);return o.href=a,o.download=t||e.split(`/`).pop()||`download`,document.body.appendChild(o),o.click(),o.remove(),URL.revokeObjectURL(a),{ok:!0}}catch(e){return{ok:!1,error:Me(e,`Download failed`)}}}var et={...Le,raw:U,selectFolder:Ee,desktopBackendStatus:async()=>{let e=await Te(`backend_status`);return e?{ok:!0,status:200,data:e,source:`live`}:{ok:!1,status:0,data:{},source:`unavailable`,error:`Desktop backend status is available only inside the Tauri shell.`}},health:()=>U(`/health`,{}),workspaceOs:()=>U(`/workspace/os`,{counts:{},models:{},workspace_registry:{workspaces:[]}}),workspaceVscodeStatus:()=>U(`/workspace/vscode/status`,{connected:!1,last_seen_ms:0,status:`offline`,index_status:`unknown`}),indexStatus:()=>U(`/api/index/status`,{}),rebuildIndex:()=>W(`/api/index/rebuild`,{full:!1,include_nodes:!0,include_chunks:!0},{}),graph:()=>U(`/knowledge-graph/graph`,{nodes:[],edges:[]}),graphPreview:(e=48)=>U(`/knowledge-graph/graph`,{nodes:[],edges:[]},{limit:e}),graphStats:()=>U(`/knowledge-graph/stats`,{nodes:{},edges:{},total_nodes:0,total_edges:0}),graphPortability:()=>U(`/api/knowledge-graph/portability`,{}),brainStorage:()=>U(`/api/brain/storage`,{}),backupHealth:()=>U(`/api/knowledge-graph/backup-health`,{}),dockerPostgres:e=>W(`/api/brain/storage/postgres/docker`,e,{}),migratePostgres:e=>W(`/api/brain/storage/migrate-postgres`,e,{}),graphProvenance:(e=50)=>U(`/api/knowledge-graph/provenance`,{items:[]},{limit:e}),graphCoverage:()=>U(`/knowledge-graph/provenance/coverage`,{}),graphExport:()=>W(`/api/knowledge-graph/export`,{},{}),graphBackup:()=>W(`/api/knowledge-graph/backup`,{},{}),graphImport:(e,t=!0)=>W(`/api/knowledge-graph/import`,{artifact:e,mode:`merge`,dry_run:t},{}),brainArchive:e=>W(`/api/knowledge-graph/archive`,e,{}),brainArchiveInspect:e=>W(`/api/knowledge-graph/archive/inspect`,e,{}),brainArchiveVerify:e=>W(`/api/knowledge-graph/archive/verify`,e,{}),brainArchiveRestore:e=>W(`/api/knowledge-graph/archive/restore`,e,{}),brainArchiveImport:e=>W(`/api/knowledge-graph/archive/import`,e,{}),hybridSearch:async(e,t)=>{let n=await W(`/api/search/hybrid`,{query:e,...t?{weights:t}:{}},{matches:[]}),r=n.data;return n.ok&&!Array.isArray(r.matches)&&Array.isArray(r.results)?{...n,data:{...r,matches:r.results}}:n},browserReadUrl:e=>W(`/api/browser/read-url`,{url:e},{}),ingestNote:(e,t=`Brain note`)=>W(`/knowledge-graph/ingest`,{type:`note`,content:e,title:t,source:`brain_home`},{}),memoryManager:()=>U(`/api/memory/manager`,{sources:[],tiers:[],usage:{}}),memoryBrainQuality:()=>U(`/api/memory/brain-quality`,{}),memoryBrainBrief:(e=``,t=3)=>U(`/api/memory/brain-brief`,{focus:{},next_actions:[],proactive_actions:[],evidence:[]},{q:e,limit:t}),memoryBrainProof:(e=``,t=3)=>U(`/api/memory/brain-proof`,{proofs:{},recall:{items:[]},model_continuity:{},claims:{}},{q:e,limit:t}),memoryRecall:(e,t=20)=>W(`/api/memory/recall`,{query:e,limit:t},{matches:[]}),automationOverview:()=>U(`/api/automation/overview`,{suggestions:[],installed:[],questions_scanned:0}),automationPatterns:()=>U(`/api/automation/patterns`,{patterns:[],questions_scanned:0}),installAutomationSuggestion:(e,t=!1)=>W(`/api/automation/install`,{suggestion_id:e,enabled:t},{}),runAutomationNow:(e,t=!0)=>W(`/api/automation/run-now`,{workflow_id:e,dry_run:t},{}),commandBriefing:()=>U(`/api/command/briefing`,{sections:{},quick_actions:[]}),permissionMode:()=>U(`/api/permission-mode`,{mode:`strict`,label:`Strict`,label_ko:`엄격`,risk:`low`,requires_ack:!1,proposal_first:!0,workspace_writes_auto:!1,knowledge_reads_auto:!1,exec_auto:!1,computer_observation_auto:!1,computer_control_auto:!1,circuit_breakers:!0,catalog:[]}),setPermissionMode:(e,t=!1)=>W(`/api/permission-mode`,{mode:e,acknowledge_risk:t},{}),networkBoundary:()=>U(`/api/network-boundary/ui-state`,{mode:`local_only`,label:`Local only`,label_ko:`로컬만`,allows_cloud:!1,requires_ack:!1,warning_ko:null,policy:{},token_budget:{},catalog:[]}),setNetworkBoundary:(e,t=!1)=>W(`/api/network-boundary`,{mode:e,acknowledge_risk:t},{mode:`local_only`}),setNodeSensitivity:(e,t,n)=>W(`/api/network-boundary/node-sensitivity`,{node_id:e,local_only:t,reason:n},{ok:!1,node_id:e,local_only:t}),features:()=>U(`/api/features`,{features:[],note:``}),setFeature:(e,t)=>W(`/api/features/${encodeURIComponent(e)}`,{value:t},{}),setHybridPolicy:e=>W(`/api/network-boundary/policy`,e,{}),previewCloudContext:(e,t=6)=>W(`/api/network-boundary/preview`,{message:e,top_k:t},{mode:`local_only`,allows_cloud:!1,node_ids:[],keywords:[],titles:[],types:[],token_estimate:0,quality:``,compact_preview:``,token_budget:{},would_block:null}),proposals:()=>U(`/api/proposals`,{items:[],count:0,contract:{}}),proposalCounts:()=>U(`/api/proposals/counts`,{pending:0}),proposalDetail:e=>U(`/api/proposals/${encodeURIComponent(e)}`,{payload:{},provenance:{}}),approveProposal:e=>W(`/api/proposals/${encodeURIComponent(e)}/approve`,{},{}),rejectProposal:(e,t=``)=>W(`/api/proposals/${encodeURIComponent(e)}/reject`,t?{reason:t}:{},{}),commandSearch:(e,t=8)=>U(`/api/command/search`,{query:e,groups:[],total:0},{q:e,limit:t}),brainHealth:()=>U(`/api/brain/health`,{overall_score:null,grade:null,dimensions:{},recommended_actions:[]}),brainVectorFreshness:()=>U(`/api/brain/vector-freshness`,{status:`unavailable`,pending_items:0,total_items:0,detail:``}),ingestionJobs:()=>U(`/api/ingestion/jobs`,{jobs:[]}),resumeIngestionJob:e=>W(`/api/ingestion/jobs/${encodeURIComponent(e)}/resume`,{},{}),brainInsights:()=>U(`/api/brain/insights`,{activity:{},attention:{},suggested_questions:[]}),brainContradictions:()=>U(`/api/brain/contradictions`,{items:[],count:0}),brainGarden:(e=8)=>U(`/api/brain/garden`,{available:!1,beds:{}},{limit:e}),brainConsolidate:(e=!1)=>W(`/api/brain/consolidate`,{apply:e},{}),memoryCompact:()=>W(`/api/memory/compact`,{},{}),memoryRebuild:()=>W(`/api/memory/rebuild`,{target:`vector`},{}),chatHistory:()=>U(`/history/conversations`,[]),conversation:e=>U(`/history/conversations/${encodeURIComponent(e)}`,{messages:[]}),deleteConversation:e=>Ie(`/history/conversations/${encodeURIComponent(e)}`,{}),streamChat:qe,resumeAgentApproval:Ye,agentApprovals:()=>U(`/agent/approvals`,{pending:[]}),evidenceActions:(e,t,n)=>W(`/api/evidence/actions`,{question:e,source_ids:t,language:n},{sources:[],missing:[],actions:[],reason:``}),graphNode:e=>U(`/api/graph/node`,{node:{}},{node_id:e,include_neighbors:!1}),ingestionWatchStatus:()=>U(`/api/ingestion/watch`,{enabled_count:0,polling:!1,interval_seconds:0,watches:[]}),demoCorpusStatus:()=>U(`/api/setup/demo-corpus`,{installed:!1,documents:[],document_count:0,suggested_questions:[]}),installDemoCorpus:Xe,removeDemoCorpus:()=>Ie(`/api/setup/demo-corpus`,{status:``,removed_count:0,removed:[]}),saveChatFile:Je,downloadWorkspaceFile:$e,readWorkspaceFile:Qe,uploadDocument:Ge,documents:(e=200)=>U(`/knowledge-graph/documents`,{documents:[]},{limit:e}),localSources:()=>U(`/knowledge-graph/local/sources`,{sources:[],watch:{available:!1,active:{}}}),localFolderHealth:()=>U(`/knowledge-graph/local/health`,{folders:[],count:0}),localAgent:()=>U(`/api/local-agent/status`,{agent:{online:!1},sources:[]}),connectFolder:e=>W(`/knowledge-graph/local/index`,{path:e,approved:!0,watch_enabled:!0,consent:{approved:!0,source:`desktop-spa`}},{}),localWatchStop:e=>W(`/knowledge-graph/local/watch/stop`,{source_id:e},{}),models:()=>U(`/models`,{catalog:[],loaded:[],recommended:[]}),setupScan:()=>U(`/setup/scan`,{environment:{},recommendations:{},zero_config:{}}),modelRecommendations:(e=`local_mlx`)=>U(`/models/recommendations`,{profile:{},recommendations:{models:[],families:[],counts:{}}},{engine:e}),installEngine:e=>W(`/engines/install`,{engine:e},{}),prepareModel:(e,t,n=!1)=>W(`/engines/prepare-model`,{model:e,engine:t||null,allow_download:n},{}),streamModelPrepare:Ke,loadModel:(e,t,n=!1)=>W(`/models/load`,{model_id:e,engine:t||null,allow_download:n},{}),unloadModel:e=>Ie(`/models/unload/${encodeURIComponent(e)}`,{}),embeddingsStatus:()=>U(`/api/embeddings/status`,{}),agentRuntime:()=>U(`/agents/api/runtime/status`,{runtime:{},agents:[],runs:[]}),agentRunPreview:(e,t=[])=>W(`/agents/api/run/preview`,{goal:e,roles:t},{ready:!1,blocking_reasons:[]}),runAgent:Ze,toolRegistryDiagnostics:()=>U(`/tools/registry/diagnostics`,{diagnostics:{ready:!1}}),toolRegistry:()=>U(`/tools/registry`,{status:`unavailable`,diagnostics:{},tools:[]}),agentRun:e=>U(`/agents/api/runs/${encodeURIComponent(e)}`,{}),stopAgentRun:e=>W(`/agents/api/runs/${encodeURIComponent(e)}/stop`,{},{}),agentRegistry:()=>U(`/agents/api/registry`,{agents:[]}),agentCapabilities:()=>U(`/agents/api/registry/capabilities`,{capabilities:{}}),registerAgent:e=>W(`/agents/api/registry`,e,{}),updateAgent:(e,t)=>Fe(`/agents/api/registry/${encodeURIComponent(e)}`,t,{}),removeAgent:e=>Ie(`/agents/api/registry/${encodeURIComponent(e)}`,{}),workflowDefinitions:()=>U(`/workflows/api/definitions`,{workflows:[]}),workflowRuns:()=>U(`/workflows/api/runs`,{runs:[]}),workflowTriggers:()=>U(`/workflows/api/triggers`,{armed:[]}),automationRecipes:()=>U(`/workflows/api/automation/recipes`,{recipes:[],principles:{}}),installAutomationRecipe:(e,t=!1)=>W(`/workflows/api/automation/recipes/${encodeURIComponent(e)}`,{enabled:t},{}),createWorkflow:e=>W(`/workflows/api/definitions`,e,{}),importWorkflow:e=>W(`/workflows/api/import`,{data:e},{}),exportWorkflow:e=>U(`/workflows/api/export/${encodeURIComponent(e)}`,{}),runWorkflow:e=>W(`/workflows/api/definitions/${encodeURIComponent(e)}/run`,{},{}),updateWorkflow:(e,t)=>Fe(`/workflows/api/definitions/${encodeURIComponent(e)}`,t,{}),stopWorkflowRun:e=>W(`/workflows/api/runs/${encodeURIComponent(e)}/stop`,{},{}),resumeWorkflowRun:(e,t)=>W(`/workflows/api/runs/${encodeURIComponent(e)}/resume`,{approved:t},{}),hooks:()=>U(`/api/hooks`,{hooks:[]}),hookRuns:()=>U(`/api/hooks/runs`,{runs:[]},{limit:50}),hookRun:(e={})=>W(`/api/hooks/run`,{kind:`pre_run`,event:`manual`,...e},{}),automationReviews:He,createReviewItem:e=>W(`/automation/reviews`,e,Be()),approveReviewItem:e=>Ue(e,`approve`),dismissReviewItem:e=>Ue(e,`dismiss`),snoozeReviewItem:We,unsnoozeReviewItem:e=>Ue(e,`unsnooze`),runNowReviewItem:e=>Ue(e,`run_now`),permissionsPending:()=>U(`/permissions/pending`,{pending:{},count:0}),approvePermission:e=>W(`/permissions/approve/${encodeURIComponent(e)}`,{},{}),denyPermission:e=>W(`/permissions/deny/${encodeURIComponent(e)}`,{},{}),skills:()=>U(`/workspace/skills`,{skills:[]}),skillToggle:(e,t)=>W(t?`/workspace/skills/disable`:`/workspace/skills/enable`,{skill:e},{}),skillsMarketplace:()=>U(`/skills/marketplace`,{skills:[]}),skillInstall:(e,t)=>W(`/workspace/skills/install`,{skill:e,plugin:t||``},{}),mcpTools:()=>U(`/mcp/tools`,{tools:[],installed_mcps:[]}),mcpRecommend:e=>W(`/mcp/recommend`,{query:e,limit:6},{}),templates:()=>U(`/marketplace/templates`,{templates:[],kinds:[]}),installTemplate:e=>W(`/marketplace/templates/install`,{data:e},{}),pluginsRegistry:()=>U(`/plugins/registry`,{plugins:[]}),pluginsDirectory:()=>U(`/plugins/directory`,{plugins:[]}),profile:()=>U(`/account/profile`,{}),login:(e,t)=>W(`/login`,{email:e,password:t},{}),register:e=>W(`/register`,e,{}),logout:()=>W(`/logout`,{},{}),updateProfile:e=>Fe(`/account/profile`,e,{}),changePassword:(e,t)=>W(`/account/change-password`,{current_password:e,new_password:t},{}),ssoConfig:()=>U(`/auth/sso/config`,{enabled:!1,providers:[]}),workspaceRegistry:()=>U(`/workspace/registry`,{workspaces:[]}),createOrg:e=>W(`/workspace/orgs`,{name:e},{}),activateWorkspace:e=>W(`/workspace/activate`,{workspace_id:e},{}),archiveWorkspace:e=>W(`/workspace/orgs/${encodeURIComponent(e)}/archive`,{},{}),addWorkspaceMember:(e,t,n)=>W(`/workspace/orgs/${encodeURIComponent(e)}/members`,{user_id:t,role:n},{}),removeWorkspaceMember:(e,t)=>Ie(`/workspace/orgs/${encodeURIComponent(e)}/members/${encodeURIComponent(t)}`,{}),invitations:()=>U(`/invitations`,{invitations:[]}),createInvitation:e=>W(`/invitations`,e,{}),acceptInvitation:e=>W(`/invitations/${encodeURIComponent(e)}/accept`,{},{}),snapshots:()=>U(`/workspace/snapshots`,{snapshots:[]}),createSnapshot:e=>W(`/workspace/snapshots`,{name:e},{}),compareSnapshots:(e,t)=>W(`/workspace/snapshots/compare`,{before_id:e,after_id:t},{}),restoreSnapshot:e=>W(`/workspace/snapshots/${encodeURIComponent(e)}/restore`,{},{}),exportSnapshot:e=>W(`/workspace/snapshots/${encodeURIComponent(e)}/export`,{},{}),timeMachine:()=>U(`/workspace/time-machine`,{events:[]},{limit:100}),realtimeFeed:()=>U(`/realtime/feed`,{events:[]},{limit:80}),presence:()=>U(`/realtime/presence`,{presence:[]}),networkIdentity:()=>U(`/network/identity`,{}),networkPeers:()=>U(`/network/peers`,{peers:[]}),pairPeer:e=>W(`/network/peers`,e,{}),unpairPeer:e=>Ie(`/network/peers/${encodeURIComponent(e)}`,{}),pushPeer:(e,t)=>W(`/network/push/${encodeURIComponent(e)}`,{workspace_id:t},{}),sysinfo:()=>U(`/local/sysinfo`,{}),computerMemory:()=>U(`/workspace/computer-memory`,{}),setComputerMemory:e=>W(`/workspace/computer-memory`,{enabled:e,consent:{approved:e}},{}),adminSummary:()=>U(`/admin/summary`,{}),adminStats:()=>U(`/admin/stats`,{}),adminUsers:()=>U(`/admin/users`,[]),adminAudit:e=>U(`/admin/audit`,{recent_events:[],filters:{}},e),adminRoles:()=>U(`/admin/roles`,{roles:[]}),adminPolicies:()=>U(`/admin/policies`,{policies:[]}),adminLogRetention:()=>U(`/admin/log-retention`,{}),adminProductHardening:()=>U(`/admin/product-hardening`,{}),adminSecurity:()=>U(`/admin/security/overview`,{}),adminSecurityEvents:(e=50)=>U(`/admin/security/events`,{events:[]},{limit:e}),vpcStatus:()=>U(`/vpc/status`,{}),toolPermissions:()=>U(`/tools/permissions`,{permissions:[]}),pipelineStatus:()=>U(`/knowledge-graph/pipeline/status`,{}),activityRuns:(e=20)=>U(`/api/activity/runs`,{runs:[]},{limit:e}),adminHealthSummary:()=>U(`/admin/health-summary`,{status:`ok`,issue_count:0,issues:[]})};function tt(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=tt(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function nt(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=tt(e))&&(r&&(r+=` `),r+=t);return r}var rt=(e,t)=>{let n=Array(e.length+t.length);for(let t=0;t<e.length;t++)n[t]=e[t];for(let r=0;r<t.length;r++)n[e.length+r]=t[r];return n},it=(e,t)=>({classGroupId:e,validator:t}),at=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),ot=`-`,st=[],ct=`arbitrary..`,lt=e=>{let t=ft(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{if(e.startsWith(`[`)&&e.endsWith(`]`))return dt(e);let n=e.split(ot);return ut(n,+(n[0]===``&&n.length>1),t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=r[e],i=n[e];return t?i?rt(i,t):t:i||st}return n[e]||st}}},ut=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;let r=e[t],i=n.nextPart.get(r);if(i){let n=ut(e,t+1,i);if(n)return n}let a=n.validators;if(a===null)return;let o=t===0?e.join(ot):e.slice(t).join(ot),s=a.length;for(let e=0;e<s;e++){let t=a[e];if(t.validator(o))return t.classGroupId}},dt=e=>e.slice(1,-1).indexOf(`:`)===-1?void 0:(()=>{let t=e.slice(1,-1),n=t.indexOf(`:`),r=t.slice(0,n);return r?ct+r:void 0})(),ft=e=>{let{theme:t,classGroups:n}=e;return pt(n,t)},pt=(e,t)=>{let n=at();for(let r in e){let i=e[r];mt(i,n,r,t)}return n},mt=(e,t,n,r)=>{let i=e.length;for(let a=0;a<i;a++){let i=e[a];ht(i,t,n,r)}},ht=(e,t,n,r)=>{if(typeof e==`string`){gt(e,t,n);return}if(typeof e==`function`){_t(e,t,n,r);return}vt(e,t,n,r)},gt=(e,t,n)=>{let r=e===``?t:yt(t,e);r.classGroupId=n},_t=(e,t,n,r)=>{if(bt(e)){mt(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(it(n,e))},vt=(e,t,n,r)=>{let i=Object.entries(e),a=i.length;for(let e=0;e<a;e++){let[a,o]=i[e];mt(o,yt(t,a),n,r)}},yt=(e,t)=>{let n=e,r=t.split(ot),i=r.length;for(let e=0;e<i;e++){let t=r[e],i=n.nextPart.get(t);i||(i=at(),n.nextPart.set(t,i)),n=i}return n},bt=e=>`isThemeGetter`in e&&e.isThemeGetter===!0,xt=e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null),i=(i,a)=>{n[i]=a,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(e){let t=n[e];if(t!==void 0)return t;if((t=r[e])!==void 0)return i(e,t),t},set(e,t){e in n?n[e]=t:i(e,t)}}},St=`!`,Ct=`:`,wt=[],Tt=(e,t,n,r,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:i}),Et=e=>{let{prefix:t,experimentalParseClassName:n}=e,r=e=>{let t=[],n=0,r=0,i=0,a,o=e.length;for(let s=0;s<o;s++){let o=e[s];if(n===0&&r===0){if(o===Ct){t.push(e.slice(i,s)),i=s+1;continue}if(o===`/`){a=s;continue}}o===`[`?n++:o===`]`?n--:o===`(`?r++:o===`)`&&r--}let s=t.length===0?e:e.slice(i),c=s,l=!1;s.endsWith(St)?(c=s.slice(0,-1),l=!0):s.startsWith(St)&&(c=s.slice(1),l=!0);let u=a&&a>i?a-i:void 0;return Tt(t,l,c,u)};if(t){let e=t+Ct,n=r;r=t=>t.startsWith(e)?n(t.slice(e.length)):Tt(wt,!1,t,void 0,!0)}if(n){let e=r;r=t=>n({className:t,parseClassName:e})}return r},Dt=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((e,n)=>{t.set(e,1e6+n)}),e=>{let n=[],r=[];for(let i=0;i<e.length;i++){let a=e[i],o=a[0]===`[`,s=t.has(a);o||s?(r.length>0&&(r.sort(),n.push(...r),r=[]),n.push(a)):r.push(a)}return r.length>0&&(r.sort(),n.push(...r)),n}},Ot=e=>({cache:xt(e.cacheSize),parseClassName:Et(e),sortModifiers:Dt(e),postfixLookupClassGroupIds:kt(e),...lt(e)}),kt=e=>{let t=Object.create(null),n=e.postfixLookupClassGroups;if(n)for(let e=0;e<n.length;e++)t[n[e]]=!0;return t},At=/\s+/,jt=(e,t)=>{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:a,postfixLookupClassGroupIds:o}=t,s=[],c=e.trim().split(At),l=``;for(let e=c.length-1;e>=0;--e){let t=c[e],{isExternal:u,modifiers:d,hasImportantModifier:ee,baseClassName:f,maybePostfixModifierPosition:p}=n(t);if(u){l=t+(l.length>0?` `+l:l);continue}let m=!!p,h;if(m){h=r(f.substring(0,p));let e=h&&o[h]?r(f):void 0;e&&e!==h&&(h=e,m=!1)}else h=r(f);if(!h){if(!m){l=t+(l.length>0?` `+l:l);continue}if(h=r(f),!h){l=t+(l.length>0?` `+l:l);continue}m=!1}let g=d.length===0?``:d.length===1?d[0]:a(d).join(`:`),_=ee?g+St:g,v=_+h;if(s.indexOf(v)>-1)continue;s.push(v);let y=i(h,m);for(let e=0;e<y.length;++e){let t=y[e];s.push(_+t)}l=t+(l.length>0?` `+l:l)}return l},Mt=(...e)=>{let t=0,n,r,i=``;for(;t<e.length;)(n=e[t++])&&(r=Nt(n))&&(i&&(i+=` `),i+=r);return i},Nt=e=>{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r<e.length;r++)e[r]&&(t=Nt(e[r]))&&(n&&(n+=` `),n+=t);return n},Pt=(e,...t)=>{let n,r,i,a,o=o=>(n=Ot(t.reduce((e,t)=>t(e),e())),r=n.cache.get,i=n.cache.set,a=s,s(o)),s=e=>{let t=r(e);if(t)return t;let a=jt(e,n);return i(e,a),a};return a=o,(...e)=>a(Mt(...e))},Ft=[],G=e=>{let t=t=>t[e]||Ft;return t.isThemeGetter=!0,t},It=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Lt=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Rt=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,zt=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Bt=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Vt=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Ht=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Ut=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,K=e=>Rt.test(e),q=e=>!!e&&!Number.isNaN(Number(e)),J=e=>!!e&&Number.isInteger(Number(e)),Wt=e=>e.endsWith(`%`)&&q(e.slice(0,-1)),Y=e=>zt.test(e),Gt=()=>!0,Kt=e=>Bt.test(e)&&!Vt.test(e),qt=()=>!1,Jt=e=>Ht.test(e),Yt=e=>Ut.test(e),Xt=e=>!X(e)&&!Z(e),Zt=e=>e.startsWith(`@container`)&&(e[10]===`/`&&e[11]!==void 0||e[11]===`s`&&e[16]!==void 0&&e.startsWith(`-size/`,10)||e[11]===`n`&&e[18]!==void 0&&e.startsWith(`-normal/`,10)),Qt=e=>Q(e,gn,qt),X=e=>It.test(e),$t=e=>Q(e,_n,Kt),en=e=>Q(e,vn,q),tn=e=>Q(e,bn,Gt),nn=e=>Q(e,yn,qt),rn=e=>Q(e,mn,qt),an=e=>Q(e,hn,Yt),on=e=>Q(e,xn,Jt),Z=e=>Lt.test(e),sn=e=>$(e,_n),cn=e=>$(e,yn),ln=e=>$(e,mn),un=e=>$(e,gn),dn=e=>$(e,hn),fn=e=>$(e,xn,!0),pn=e=>$(e,bn,!0),Q=(e,t,n)=>{let r=It.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},$=(e,t,n=!1)=>{let r=Lt.exec(e);return r?r[1]?t(r[1]):n:!1},mn=e=>e===`position`||e===`percentage`,hn=e=>e===`image`||e===`url`,gn=e=>e===`length`||e===`size`||e===`bg-size`,_n=e=>e===`length`,vn=e=>e===`number`,yn=e=>e===`family-name`,bn=e=>e===`number`||e===`weight`,xn=e=>e===`shadow`,Sn=Pt(()=>{let e=G(`color`),t=G(`font`),n=G(`text`),r=G(`font-weight`),i=G(`tracking`),a=G(`leading`),o=G(`breakpoint`),s=G(`container`),c=G(`spacing`),l=G(`radius`),u=G(`shadow`),d=G(`inset-shadow`),ee=G(`text-shadow`),f=G(`drop-shadow`),p=G(`blur`),m=G(`perspective`),h=G(`aspect`),g=G(`ease`),_=G(`animate`),v=()=>[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],y=()=>[`center`,`top`,`bottom`,`left`,`right`,`top-left`,`left-top`,`top-right`,`right-top`,`bottom-right`,`right-bottom`,`bottom-left`,`left-bottom`],b=()=>[...y(),Z,X],x=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],S=()=>[`auto`,`contain`,`none`],C=()=>[Z,X,c],w=()=>[K,`full`,`auto`,...C()],T=()=>[J,`none`,`subgrid`,Z,X],E=()=>[`auto`,{span:[`full`,J,Z,X]},J,Z,X],D=()=>[J,`auto`,Z,X],O=()=>[`auto`,`min`,`max`,`fr`,Z,X],k=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`,`baseline`,`center-safe`,`end-safe`],A=()=>[`start`,`end`,`center`,`stretch`,`center-safe`,`end-safe`],j=()=>[`auto`,...C()],M=()=>[K,`auto`,`full`,`dvw`,`dvh`,`lvw`,`lvh`,`svw`,`svh`,`min`,`max`,`fit`,...C()],N=()=>[K,`screen`,`full`,`dvw`,`lvw`,`svw`,`min`,`max`,`fit`,...C()],P=()=>[K,`screen`,`full`,`lh`,`dvh`,`lvh`,`svh`,`min`,`max`,`fit`,...C()],F=()=>[e,Z,X],te=()=>[...y(),ln,rn,{position:[Z,X]}],ne=()=>[`no-repeat`,{repeat:[``,`x`,`y`,`space`,`round`]}],re=()=>[`auto`,`cover`,`contain`,un,Qt,{size:[Z,X]}],ie=()=>[Wt,sn,$t],I=()=>[``,`none`,`full`,l,Z,X],L=()=>[``,q,sn,$t],ae=()=>[`solid`,`dashed`,`dotted`,`double`],oe=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],R=()=>[q,Wt,ln,rn],se=()=>[``,`none`,p,Z,X],ce=()=>[`none`,q,Z,X],z=()=>[`none`,q,Z,X],le=()=>[q,Z,X],ue=()=>[K,`full`,...C()];return{cacheSize:500,theme:{animate:[`spin`,`ping`,`pulse`,`bounce`],aspect:[`video`],blur:[Y],breakpoint:[Y],color:[Gt],container:[Y],"drop-shadow":[Y],ease:[`in`,`out`,`in-out`],font:[Xt],"font-weight":[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`],"inset-shadow":[Y],leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`],perspective:[`dramatic`,`near`,`normal`,`midrange`,`distant`,`none`],radius:[Y],shadow:[Y],spacing:[`px`,q],text:[Y],"text-shadow":[Y],tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`]},classGroups:{aspect:[{aspect:[`auto`,`square`,K,X,Z,h]}],container:[`container`],"container-type":[{"@container":[``,`normal`,`size`,Z,X]}],"container-named":[Zt],columns:[{columns:[q,X,Z,s]}],"break-after":[{"break-after":v()}],"break-before":[{"break-before":v()}],"break-inside":[{"break-inside":[`auto`,`avoid`,`avoid-page`,`avoid-column`]}],"box-decoration":[{"box-decoration":[`slice`,`clone`]}],box:[{box:[`border`,`content`]}],display:[`block`,`inline-block`,`inline`,`flex`,`inline-flex`,`table`,`inline-table`,`table-caption`,`table-cell`,`table-column`,`table-column-group`,`table-footer-group`,`table-header-group`,`table-row-group`,`table-row`,`flow-root`,`grid`,`inline-grid`,`contents`,`list-item`,`hidden`],sr:[`sr-only`,`not-sr-only`],float:[{float:[`right`,`left`,`none`,`start`,`end`]}],clear:[{clear:[`left`,`right`,`both`,`none`,`start`,`end`]}],isolation:[`isolate`,`isolation-auto`],"object-fit":[{object:[`contain`,`cover`,`fill`,`none`,`scale-down`]}],"object-position":[{object:b()}],overflow:[{overflow:x()}],"overflow-x":[{"overflow-x":x()}],"overflow-y":[{"overflow-y":x()}],overscroll:[{overscroll:S()}],"overscroll-x":[{"overscroll-x":S()}],"overscroll-y":[{"overscroll-y":S()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:w()}],"inset-x":[{"inset-x":w()}],"inset-y":[{"inset-y":w()}],start:[{"inset-s":w(),start:w()}],end:[{"inset-e":w(),end:w()}],"inset-bs":[{"inset-bs":w()}],"inset-be":[{"inset-be":w()}],top:[{top:w()}],right:[{right:w()}],bottom:[{bottom:w()}],left:[{left:w()}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[J,`auto`,Z,X]}],basis:[{basis:[K,`full`,`auto`,s,...C()]}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`nowrap`,`wrap`,`wrap-reverse`]}],flex:[{flex:[q,K,`auto`,`initial`,`none`,X]}],grow:[{grow:[``,q,Z,X]}],shrink:[{shrink:[``,q,Z,X]}],order:[{order:[J,`first`,`last`,`none`,Z,X]}],"grid-cols":[{"grid-cols":T()}],"col-start-end":[{col:E()}],"col-start":[{"col-start":D()}],"col-end":[{"col-end":D()}],"grid-rows":[{"grid-rows":T()}],"row-start-end":[{row:E()}],"row-start":[{"row-start":D()}],"row-end":[{"row-end":D()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":O()}],"auto-rows":[{"auto-rows":O()}],gap:[{gap:C()}],"gap-x":[{"gap-x":C()}],"gap-y":[{"gap-y":C()}],"justify-content":[{justify:[...k(),`normal`]}],"justify-items":[{"justify-items":[...A(),`normal`]}],"justify-self":[{"justify-self":[`auto`,...A()]}],"align-content":[{content:[`normal`,...k()]}],"align-items":[{items:[...A(),{baseline:[``,`last`]}]}],"align-self":[{self:[`auto`,...A(),{baseline:[``,`last`]}]}],"place-content":[{"place-content":k()}],"place-items":[{"place-items":[...A(),`baseline`]}],"place-self":[{"place-self":[`auto`,...A()]}],p:[{p:C()}],px:[{px:C()}],py:[{py:C()}],ps:[{ps:C()}],pe:[{pe:C()}],pbs:[{pbs:C()}],pbe:[{pbe:C()}],pt:[{pt:C()}],pr:[{pr:C()}],pb:[{pb:C()}],pl:[{pl:C()}],m:[{m:j()}],mx:[{mx:j()}],my:[{my:j()}],ms:[{ms:j()}],me:[{me:j()}],mbs:[{mbs:j()}],mbe:[{mbe:j()}],mt:[{mt:j()}],mr:[{mr:j()}],mb:[{mb:j()}],ml:[{ml:j()}],"space-x":[{"space-x":C()}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":C()}],"space-y-reverse":[`space-y-reverse`],size:[{size:M()}],"inline-size":[{inline:[`auto`,...N()]}],"min-inline-size":[{"min-inline":[`auto`,...N()]}],"max-inline-size":[{"max-inline":[`none`,...N()]}],"block-size":[{block:[`auto`,...P()]}],"min-block-size":[{"min-block":[`auto`,...P()]}],"max-block-size":[{"max-block":[`none`,...P()]}],w:[{w:[s,`screen`,...M()]}],"min-w":[{"min-w":[s,`screen`,`none`,...M()]}],"max-w":[{"max-w":[s,`screen`,`none`,`prose`,{screen:[o]},...M()]}],h:[{h:[`screen`,`lh`,...M()]}],"min-h":[{"min-h":[`screen`,`lh`,`none`,...M()]}],"max-h":[{"max-h":[`screen`,`lh`,...M()]}],"font-size":[{text:[`base`,n,sn,$t]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[r,pn,tn]}],"font-stretch":[{"font-stretch":[`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`normal`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`,Wt,X]}],"font-family":[{font:[cn,nn,t]}],"font-features":[{"font-features":[X]}],"fvn-normal":[`normal-nums`],"fvn-ordinal":[`ordinal`],"fvn-slashed-zero":[`slashed-zero`],"fvn-figure":[`lining-nums`,`oldstyle-nums`],"fvn-spacing":[`proportional-nums`,`tabular-nums`],"fvn-fraction":[`diagonal-fractions`,`stacked-fractions`],tracking:[{tracking:[i,Z,X]}],"line-clamp":[{"line-clamp":[q,`none`,Z,en]}],leading:[{leading:[a,...C()]}],"list-image":[{"list-image":[`none`,Z,X]}],"list-style-position":[{list:[`inside`,`outside`]}],"list-style-type":[{list:[`disc`,`decimal`,`none`,Z,X]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"placeholder-color":[{placeholder:F()}],"text-color":[{text:F()}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...ae(),`wavy`]}],"text-decoration-thickness":[{decoration:[q,`from-font`,`auto`,Z,$t]}],"text-decoration-color":[{decoration:F()}],"underline-offset":[{"underline-offset":[q,`auto`,Z,X]}],"text-transform":[`uppercase`,`lowercase`,`capitalize`,`normal-case`],"text-overflow":[`truncate`,`text-ellipsis`,`text-clip`],"text-wrap":[{text:[`wrap`,`nowrap`,`balance`,`pretty`]}],indent:[{indent:C()}],"tab-size":[{tab:[J,Z,X]}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,Z,X]}],whitespace:[{whitespace:[`normal`,`nowrap`,`pre`,`pre-line`,`pre-wrap`,`break-spaces`]}],break:[{break:[`normal`,`words`,`all`,`keep`]}],wrap:[{wrap:[`break-word`,`anywhere`,`normal`]}],hyphens:[{hyphens:[`none`,`manual`,`auto`]}],content:[{content:[`none`,Z,X]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:te()}],"bg-repeat":[{bg:ne()}],"bg-size":[{bg:re()}],"bg-image":[{bg:[`none`,{linear:[{to:[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},J,Z,X],radial:[``,Z,X],conic:[J,Z,X]},dn,an]}],"bg-color":[{bg:F()}],"gradient-from-pos":[{from:ie()}],"gradient-via-pos":[{via:ie()}],"gradient-to-pos":[{to:ie()}],"gradient-from":[{from:F()}],"gradient-via":[{via:F()}],"gradient-to":[{to:F()}],rounded:[{rounded:I()}],"rounded-s":[{"rounded-s":I()}],"rounded-e":[{"rounded-e":I()}],"rounded-t":[{"rounded-t":I()}],"rounded-r":[{"rounded-r":I()}],"rounded-b":[{"rounded-b":I()}],"rounded-l":[{"rounded-l":I()}],"rounded-ss":[{"rounded-ss":I()}],"rounded-se":[{"rounded-se":I()}],"rounded-ee":[{"rounded-ee":I()}],"rounded-es":[{"rounded-es":I()}],"rounded-tl":[{"rounded-tl":I()}],"rounded-tr":[{"rounded-tr":I()}],"rounded-br":[{"rounded-br":I()}],"rounded-bl":[{"rounded-bl":I()}],"border-w":[{border:L()}],"border-w-x":[{"border-x":L()}],"border-w-y":[{"border-y":L()}],"border-w-s":[{"border-s":L()}],"border-w-e":[{"border-e":L()}],"border-w-bs":[{"border-bs":L()}],"border-w-be":[{"border-be":L()}],"border-w-t":[{"border-t":L()}],"border-w-r":[{"border-r":L()}],"border-w-b":[{"border-b":L()}],"border-w-l":[{"border-l":L()}],"divide-x":[{"divide-x":L()}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":L()}],"divide-y-reverse":[`divide-y-reverse`],"border-style":[{border:[...ae(),`hidden`,`none`]}],"divide-style":[{divide:[...ae(),`hidden`,`none`]}],"border-color":[{border:F()}],"border-color-x":[{"border-x":F()}],"border-color-y":[{"border-y":F()}],"border-color-s":[{"border-s":F()}],"border-color-e":[{"border-e":F()}],"border-color-bs":[{"border-bs":F()}],"border-color-be":[{"border-be":F()}],"border-color-t":[{"border-t":F()}],"border-color-r":[{"border-r":F()}],"border-color-b":[{"border-b":F()}],"border-color-l":[{"border-l":F()}],"divide-color":[{divide:F()}],"outline-style":[{outline:[...ae(),`none`,`hidden`]}],"outline-offset":[{"outline-offset":[q,Z,X]}],"outline-w":[{outline:[``,q,sn,$t]}],"outline-color":[{outline:F()}],shadow:[{shadow:[``,`none`,u,fn,on]}],"shadow-color":[{shadow:F()}],"inset-shadow":[{"inset-shadow":[`none`,d,fn,on]}],"inset-shadow-color":[{"inset-shadow":F()}],"ring-w":[{ring:L()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:F()}],"ring-offset-w":[{"ring-offset":[q,$t]}],"ring-offset-color":[{"ring-offset":F()}],"inset-ring-w":[{"inset-ring":L()}],"inset-ring-color":[{"inset-ring":F()}],"text-shadow":[{"text-shadow":[`none`,ee,fn,on]}],"text-shadow-color":[{"text-shadow":F()}],opacity:[{opacity:[q,Z,X]}],"mix-blend":[{"mix-blend":[...oe(),`plus-darker`,`plus-lighter`]}],"bg-blend":[{"bg-blend":oe()}],"mask-clip":[{"mask-clip":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]},`mask-no-clip`],"mask-composite":[{mask:[`add`,`subtract`,`intersect`,`exclude`]}],"mask-image-linear-pos":[{"mask-linear":[q]}],"mask-image-linear-from-pos":[{"mask-linear-from":R()}],"mask-image-linear-to-pos":[{"mask-linear-to":R()}],"mask-image-linear-from-color":[{"mask-linear-from":F()}],"mask-image-linear-to-color":[{"mask-linear-to":F()}],"mask-image-t-from-pos":[{"mask-t-from":R()}],"mask-image-t-to-pos":[{"mask-t-to":R()}],"mask-image-t-from-color":[{"mask-t-from":F()}],"mask-image-t-to-color":[{"mask-t-to":F()}],"mask-image-r-from-pos":[{"mask-r-from":R()}],"mask-image-r-to-pos":[{"mask-r-to":R()}],"mask-image-r-from-color":[{"mask-r-from":F()}],"mask-image-r-to-color":[{"mask-r-to":F()}],"mask-image-b-from-pos":[{"mask-b-from":R()}],"mask-image-b-to-pos":[{"mask-b-to":R()}],"mask-image-b-from-color":[{"mask-b-from":F()}],"mask-image-b-to-color":[{"mask-b-to":F()}],"mask-image-l-from-pos":[{"mask-l-from":R()}],"mask-image-l-to-pos":[{"mask-l-to":R()}],"mask-image-l-from-color":[{"mask-l-from":F()}],"mask-image-l-to-color":[{"mask-l-to":F()}],"mask-image-x-from-pos":[{"mask-x-from":R()}],"mask-image-x-to-pos":[{"mask-x-to":R()}],"mask-image-x-from-color":[{"mask-x-from":F()}],"mask-image-x-to-color":[{"mask-x-to":F()}],"mask-image-y-from-pos":[{"mask-y-from":R()}],"mask-image-y-to-pos":[{"mask-y-to":R()}],"mask-image-y-from-color":[{"mask-y-from":F()}],"mask-image-y-to-color":[{"mask-y-to":F()}],"mask-image-radial":[{"mask-radial":[Z,X]}],"mask-image-radial-from-pos":[{"mask-radial-from":R()}],"mask-image-radial-to-pos":[{"mask-radial-to":R()}],"mask-image-radial-from-color":[{"mask-radial-from":F()}],"mask-image-radial-to-color":[{"mask-radial-to":F()}],"mask-image-radial-shape":[{"mask-radial":[`circle`,`ellipse`]}],"mask-image-radial-size":[{"mask-radial":[{closest:[`side`,`corner`],farthest:[`side`,`corner`]}]}],"mask-image-radial-pos":[{"mask-radial-at":y()}],"mask-image-conic-pos":[{"mask-conic":[q]}],"mask-image-conic-from-pos":[{"mask-conic-from":R()}],"mask-image-conic-to-pos":[{"mask-conic-to":R()}],"mask-image-conic-from-color":[{"mask-conic-from":F()}],"mask-image-conic-to-color":[{"mask-conic-to":F()}],"mask-mode":[{mask:[`alpha`,`luminance`,`match`]}],"mask-origin":[{"mask-origin":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]}],"mask-position":[{mask:te()}],"mask-repeat":[{mask:ne()}],"mask-size":[{mask:re()}],"mask-type":[{"mask-type":[`alpha`,`luminance`]}],"mask-image":[{mask:[`none`,Z,X]}],filter:[{filter:[``,`none`,Z,X]}],blur:[{blur:se()}],brightness:[{brightness:[q,Z,X]}],contrast:[{contrast:[q,Z,X]}],"drop-shadow":[{"drop-shadow":[``,`none`,f,fn,on]}],"drop-shadow-color":[{"drop-shadow":F()}],grayscale:[{grayscale:[``,q,Z,X]}],"hue-rotate":[{"hue-rotate":[q,Z,X]}],invert:[{invert:[``,q,Z,X]}],saturate:[{saturate:[q,Z,X]}],sepia:[{sepia:[``,q,Z,X]}],"backdrop-filter":[{"backdrop-filter":[``,`none`,Z,X]}],"backdrop-blur":[{"backdrop-blur":se()}],"backdrop-brightness":[{"backdrop-brightness":[q,Z,X]}],"backdrop-contrast":[{"backdrop-contrast":[q,Z,X]}],"backdrop-grayscale":[{"backdrop-grayscale":[``,q,Z,X]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[q,Z,X]}],"backdrop-invert":[{"backdrop-invert":[``,q,Z,X]}],"backdrop-opacity":[{"backdrop-opacity":[q,Z,X]}],"backdrop-saturate":[{"backdrop-saturate":[q,Z,X]}],"backdrop-sepia":[{"backdrop-sepia":[``,q,Z,X]}],"border-collapse":[{border:[`collapse`,`separate`]}],"border-spacing":[{"border-spacing":C()}],"border-spacing-x":[{"border-spacing-x":C()}],"border-spacing-y":[{"border-spacing-y":C()}],"table-layout":[{table:[`auto`,`fixed`]}],caption:[{caption:[`top`,`bottom`]}],transition:[{transition:[``,`all`,`colors`,`opacity`,`shadow`,`transform`,`none`,Z,X]}],"transition-behavior":[{transition:[`normal`,`discrete`]}],duration:[{duration:[q,`initial`,Z,X]}],ease:[{ease:[`linear`,`initial`,g,Z,X]}],delay:[{delay:[q,Z,X]}],animate:[{animate:[`none`,_,Z,X]}],backface:[{backface:[`hidden`,`visible`]}],perspective:[{perspective:[m,Z,X]}],"perspective-origin":[{"perspective-origin":b()}],rotate:[{rotate:ce()}],"rotate-x":[{"rotate-x":ce()}],"rotate-y":[{"rotate-y":ce()}],"rotate-z":[{"rotate-z":ce()}],scale:[{scale:z()}],"scale-x":[{"scale-x":z()}],"scale-y":[{"scale-y":z()}],"scale-z":[{"scale-z":z()}],"scale-3d":[`scale-3d`],skew:[{skew:le()}],"skew-x":[{"skew-x":le()}],"skew-y":[{"skew-y":le()}],transform:[{transform:[Z,X,``,`none`,`gpu`,`cpu`]}],"transform-origin":[{origin:b()}],"transform-style":[{transform:[`3d`,`flat`]}],translate:[{translate:ue()}],"translate-x":[{"translate-x":ue()}],"translate-y":[{"translate-y":ue()}],"translate-z":[{"translate-z":ue()}],"translate-none":[`translate-none`],zoom:[{zoom:[J,Z,X]}],accent:[{accent:F()}],appearance:[{appearance:[`none`,`auto`]}],"caret-color":[{caret:F()}],"color-scheme":[{scheme:[`normal`,`dark`,`light`,`light-dark`,`only-dark`,`only-light`]}],cursor:[{cursor:[`auto`,`default`,`pointer`,`wait`,`text`,`move`,`help`,`not-allowed`,`none`,`context-menu`,`progress`,`cell`,`crosshair`,`vertical-text`,`alias`,`copy`,`no-drop`,`grab`,`grabbing`,`all-scroll`,`col-resize`,`row-resize`,`n-resize`,`e-resize`,`s-resize`,`w-resize`,`ne-resize`,`nw-resize`,`se-resize`,`sw-resize`,`ew-resize`,`ns-resize`,`nesw-resize`,`nwse-resize`,`zoom-in`,`zoom-out`,Z,X]}],"field-sizing":[{"field-sizing":[`fixed`,`content`]}],"pointer-events":[{"pointer-events":[`auto`,`none`]}],resize:[{resize:[`none`,``,`y`,`x`]}],"scroll-behavior":[{scroll:[`auto`,`smooth`]}],"scrollbar-thumb-color":[{"scrollbar-thumb":F()}],"scrollbar-track-color":[{"scrollbar-track":F()}],"scrollbar-gutter":[{"scrollbar-gutter":[`auto`,`stable`,`both`]}],"scrollbar-w":[{scrollbar:[`auto`,`thin`,`none`]}],"scroll-m":[{"scroll-m":C()}],"scroll-mx":[{"scroll-mx":C()}],"scroll-my":[{"scroll-my":C()}],"scroll-ms":[{"scroll-ms":C()}],"scroll-me":[{"scroll-me":C()}],"scroll-mbs":[{"scroll-mbs":C()}],"scroll-mbe":[{"scroll-mbe":C()}],"scroll-mt":[{"scroll-mt":C()}],"scroll-mr":[{"scroll-mr":C()}],"scroll-mb":[{"scroll-mb":C()}],"scroll-ml":[{"scroll-ml":C()}],"scroll-p":[{"scroll-p":C()}],"scroll-px":[{"scroll-px":C()}],"scroll-py":[{"scroll-py":C()}],"scroll-ps":[{"scroll-ps":C()}],"scroll-pe":[{"scroll-pe":C()}],"scroll-pbs":[{"scroll-pbs":C()}],"scroll-pbe":[{"scroll-pbe":C()}],"scroll-pt":[{"scroll-pt":C()}],"scroll-pr":[{"scroll-pr":C()}],"scroll-pb":[{"scroll-pb":C()}],"scroll-pl":[{"scroll-pl":C()}],"snap-align":[{snap:[`start`,`end`,`center`,`align-none`]}],"snap-stop":[{snap:[`normal`,`always`]}],"snap-type":[{snap:[`none`,`x`,`y`,`both`]}],"snap-strictness":[{snap:[`mandatory`,`proximity`]}],touch:[{touch:[`auto`,`none`,`manipulation`]}],"touch-x":[{"touch-pan":[`x`,`left`,`right`]}],"touch-y":[{"touch-pan":[`y`,`up`,`down`]}],"touch-pz":[`touch-pinch-zoom`],select:[{select:[`none`,`text`,`all`,`auto`]}],"will-change":[{"will-change":[`auto`,`scroll`,`contents`,`transform`,Z,X]}],fill:[{fill:[`none`,...F()]}],"stroke-w":[{stroke:[q,sn,$t,en]}],stroke:[{stroke:[`none`,...F()]}],"forced-color-adjust":[{"forced-color-adjust":[`auto`,`none`]}]},conflictingClassGroups:{"container-named":[`container-type`],overflow:[`overflow-x`,`overflow-y`],overscroll:[`overscroll-x`,`overscroll-y`],inset:[`inset-x`,`inset-y`,`inset-bs`,`inset-be`,`start`,`end`,`top`,`right`,`bottom`,`left`],"inset-x":[`right`,`left`],"inset-y":[`top`,`bottom`],flex:[`basis`,`grow`,`shrink`],gap:[`gap-x`,`gap-y`],p:[`px`,`py`,`ps`,`pe`,`pbs`,`pbe`,`pt`,`pr`,`pb`,`pl`],px:[`pr`,`pl`],py:[`pt`,`pb`],m:[`mx`,`my`,`ms`,`me`,`mbs`,`mbe`,`mt`,`mr`,`mb`,`ml`],mx:[`mr`,`ml`],my:[`mt`,`mb`],size:[`w`,`h`],"font-size":[`leading`],"fvn-normal":[`fvn-ordinal`,`fvn-slashed-zero`,`fvn-figure`,`fvn-spacing`,`fvn-fraction`],"fvn-ordinal":[`fvn-normal`],"fvn-slashed-zero":[`fvn-normal`],"fvn-figure":[`fvn-normal`],"fvn-spacing":[`fvn-normal`],"fvn-fraction":[`fvn-normal`],"line-clamp":[`display`,`overflow`],rounded:[`rounded-s`,`rounded-e`,`rounded-t`,`rounded-r`,`rounded-b`,`rounded-l`,`rounded-ss`,`rounded-se`,`rounded-ee`,`rounded-es`,`rounded-tl`,`rounded-tr`,`rounded-br`,`rounded-bl`],"rounded-s":[`rounded-ss`,`rounded-es`],"rounded-e":[`rounded-se`,`rounded-ee`],"rounded-t":[`rounded-tl`,`rounded-tr`],"rounded-r":[`rounded-tr`,`rounded-br`],"rounded-b":[`rounded-br`,`rounded-bl`],"rounded-l":[`rounded-tl`,`rounded-bl`],"border-spacing":[`border-spacing-x`,`border-spacing-y`],"border-w":[`border-w-x`,`border-w-y`,`border-w-s`,`border-w-e`,`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-r`,`border-w-b`,`border-w-l`],"border-w-x":[`border-w-r`,`border-w-l`],"border-w-y":[`border-w-t`,`border-w-b`],"border-color":[`border-color-x`,`border-color-y`,`border-color-s`,`border-color-e`,`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-r`,`border-color-b`,`border-color-l`],"border-color-x":[`border-color-r`,`border-color-l`],"border-color-y":[`border-color-t`,`border-color-b`],translate:[`translate-x`,`translate-y`,`translate-none`],"translate-none":[`translate`,`translate-x`,`translate-y`,`translate-z`],"scroll-m":[`scroll-mx`,`scroll-my`,`scroll-ms`,`scroll-me`,`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mr`,`scroll-mb`,`scroll-ml`],"scroll-mx":[`scroll-mr`,`scroll-ml`],"scroll-my":[`scroll-mt`,`scroll-mb`],"scroll-p":[`scroll-px`,`scroll-py`,`scroll-ps`,`scroll-pe`,`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pr`,`scroll-pb`,`scroll-pl`],"scroll-px":[`scroll-pr`,`scroll-pl`],"scroll-py":[`scroll-pt`,`scroll-pb`],touch:[`touch-x`,`touch-y`,`touch-pz`],"touch-x":[`touch`],"touch-y":[`touch`],"touch-pz":[`touch`]},conflictingClassGroupModifiers:{"font-size":[`leading`]},postfixLookupClassGroups:[`container-type`],orderSensitiveModifiers:[`*`,`**`,`after`,`backdrop`,`before`,`details-content`,`file`,`first-letter`,`first-line`,`marker`,`placeholder`,`selection`]}});function Cn(...e){return Sn(nt(e))}function wn(e,t=`0`){let n=Number(e);return Number.isFinite(n)?new Intl.NumberFormat().format(n):t}function Tn(e,t=10){let n=String(e||``);return n.length>t?`${n.slice(0,t)}...`:n}function En(e){return Array.isArray(e)?e:[]}function Dn(e){return!!(e&&typeof e==`object`&&!Array.isArray(e))}function On(e,t,n){return Math.max(t,Math.min(n,e))}function kn(e){return String(e||``).replace(/[_-]+/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function An(e){if(e==null||e===``)return``;let t=String(e).replace(/```[\s\S]*?```/g,` `).replace(/`([^`]*)`/g,`$1`).replace(/!?\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/(\*\*|__)(.*?)\1/g,`$2`).replace(/(^|\s)[*_]([^*_\n]+)[*_](?=\s|$)/g,`$1$2`).replace(/^\s{0,3}#{1,6}\s+/gm,``).replace(/^\s*[-*+]\s+/gm,``).replace(/^\s*>\s?/gm,``).replace(/\s+/g,` `).trim();return t===`-`?``:t}function jn(e){let t=(e.split(`/`).pop()||e).replace(/[-_]/g,` `).replace(/\b(4bit|8bit|6bit|bf16|fp16|gguf|mlx|q4[\w]*|k m)\b/gi,``).replace(/\s+/g,` `).trim();return t?t.split(` `).map(e=>/^[a-z]/.test(e)?e[0].toUpperCase()+e.slice(1):e).join(` `):e}export{c as C,o as S,N as _,jn as a,ee as b,Tn as c,et as d,ve as f,ue as g,z as h,wn as i,kn as l,me as m,On as n,Dn as o,pe as p,Cn as r,An as s,En as t,nt as u,C as v,u as x,v as y};
|