fuli-context 0.20.0-beta.6 → 0.20.0-beta.9
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 +49 -4
- package/README.zh-CN.md +31 -3
- package/dist/web/assets/AboutPage-BybzKsx-.js +1 -0
- package/dist/web/assets/{AboutPage-BkpqvBhp.css → AboutPage-Dy3drTbS.css} +1 -1
- package/dist/web/assets/AgentName-CXf8heW-.js +1 -0
- package/dist/web/assets/AgentProfilePage-B2yMnmQP.css +1 -0
- package/dist/web/assets/AgentProfilePage-D0YyiAA6.js +1 -0
- package/dist/web/assets/AgentsDirectoryPage-DvPJNJm-.css +1 -0
- package/dist/web/assets/AgentsDirectoryPage-LU-bRYPw.js +1 -0
- package/dist/web/assets/BackLink-Dgc1V1EN.js +1 -0
- package/dist/web/assets/BoardMoveMenu-XrAiFzGj.js +1 -0
- package/dist/web/assets/CaptureChangePage-C833Eiqu.css +1 -0
- package/dist/web/assets/CaptureChangePage-DcJKvaGf.js +1 -0
- package/dist/web/assets/Card-96u8qomm.js +1 -0
- package/dist/web/assets/CardHeader-4je7E12I.js +1 -0
- package/dist/web/assets/CardTitle-bjMusOR6.js +1 -0
- package/dist/web/assets/ConnectionsPage-EFMP-UeV.js +1 -0
- package/dist/web/assets/CreateProjectDialog-BDwT_wZd.js +2 -0
- package/dist/web/assets/CreateProjectDialog-BaPfiS1T.css +1 -0
- package/dist/web/assets/DataFormatPage-DERqhmng.css +1 -0
- package/dist/web/assets/DataFormatPage-PxwqDWeZ.js +1 -0
- package/dist/web/assets/DialogFooter-DwgFgHdH.js +1 -0
- package/dist/web/assets/EmployeeRecruitDialog-C6ADVxkQ.css +1 -0
- package/dist/web/assets/EmployeeRecruitDialog-DjX_wOWx.js +1 -0
- package/dist/web/assets/EmployeeWorkbenchPage-DWhBevwY.js +3 -0
- package/dist/web/assets/EmployeeWorkbenchPage-l_LYqBnr.css +1 -0
- package/dist/web/assets/GrowthLoading-DssogOkP.js +1 -0
- package/dist/web/assets/InboxPage-BF38gnSV.js +4 -0
- package/dist/web/assets/InboxPage-fFg4gETv.css +1 -0
- package/dist/web/assets/Input-DHF3Ivr3.js +1 -0
- package/dist/web/assets/KnowledgeEditDialog-D0se__D4.css +1 -0
- package/dist/web/assets/KnowledgeEditDialog-uAzeQbMB.js +1 -0
- package/dist/web/assets/KnowledgeHardDeleteSection-qGeE1YrK.js +1 -0
- package/dist/web/assets/KnowledgeItemEditPage-Cj5uNVo6.js +1 -0
- package/dist/web/assets/KnowledgeItemSummaryCard-CeOSN36n.js +1 -0
- package/dist/web/assets/KnowledgeOrganizerPage-7VC_JAWQ.css +1 -0
- package/dist/web/assets/KnowledgeOrganizerPage-BVLMc2jL.js +1 -0
- package/dist/web/assets/KnowledgePage-8ct5iO0F.js +1 -0
- package/dist/web/assets/KnowledgePeek-BD2zoQqA.js +1 -0
- package/dist/web/assets/KnowledgePeek-DEo6IbBP.css +1 -0
- package/dist/web/assets/KnowledgeTurnReceiptPage-Yn3jhDyx.js +1 -0
- package/dist/web/assets/KnowledgeWorkspace-C6l_yvWO.css +1 -0
- package/dist/web/assets/KnowledgeWorkspace-CgFI31jK.js +4 -0
- package/dist/web/assets/Label-DM1yZ2CL.js +1 -0
- package/dist/web/assets/ModelSettingsPage-5RkvgNYN.js +1 -0
- package/dist/web/assets/ModelSettingsPage-BqtWIKEA.css +1 -0
- package/dist/web/assets/NotFoundPage-BUUf2-MZ.js +1 -0
- package/dist/web/assets/OccupationsPage-B55DftFp.css +1 -0
- package/dist/web/assets/OccupationsPage-CHgGGvDu.js +1 -0
- package/dist/web/assets/OverviewPage-CpHmwB7u.css +1 -0
- package/dist/web/assets/OverviewPage-E0tfzQRr.js +2 -0
- package/dist/web/assets/PersonalProfilePage-CfqsnB1K.css +1 -0
- package/dist/web/assets/PersonalProfilePage-o5Gpo9nJ.js +1 -0
- package/dist/web/assets/PersonalProjectsPage-Boj9kG6I.js +1 -0
- package/dist/web/assets/PersonalProjectsPage-aU1rApzX.css +1 -0
- package/dist/web/assets/PopperContent-BDOio_9z.js +1 -0
- package/dist/web/assets/Presence-Bk6m9rvx.js +3 -0
- package/dist/web/assets/ProjectAgentDetailPage-Cyl3ZPBO.js +8 -0
- package/dist/web/assets/ProjectAgentDetailPage-Ns2ATys8.css +1 -0
- package/dist/web/assets/ProjectAgentDialog-C1_KluEx.js +5 -0
- package/dist/web/assets/ProjectAgentDialog-DHP7BfAf.css +1 -0
- package/dist/web/assets/ProjectAgentFirstTask-BVDcaNNi.css +1 -0
- package/dist/web/assets/ProjectAgentFirstTask-CXKvWwhZ.js +1 -0
- package/dist/web/assets/ProjectAgentsPage-DHTo0uNy.js +1 -0
- package/dist/web/assets/ProjectAgentsPage-DKNDXWow.css +1 -0
- package/dist/web/assets/ProjectScopePicker-BM3MbIYV.css +1 -0
- package/dist/web/assets/ProjectScopePicker-GjK7Hm4N.js +1 -0
- package/dist/web/assets/PublicProjectsPage-BuJo0ReR.js +1 -0
- package/dist/web/assets/PublicProjectsPage-yA6Md4oM.css +1 -0
- package/dist/web/assets/RadioGroupItem-DxktHt0c.js +1 -0
- package/dist/web/assets/RoundtablesPage-Bd3XCn7B.js +1 -0
- package/dist/web/assets/RoundtablesPage-BmmsB1mW.css +1 -0
- package/dist/web/assets/RovingFocusGroup-DyZDm-Bn.js +1 -0
- package/dist/web/assets/RovingFocusItem-BKyXKG9n.js +1 -0
- package/dist/web/assets/SessionMigrationPage-CQhrJ1OQ.js +1 -0
- package/dist/web/assets/SessionRecordsPage-CvGaB3h3.js +1 -0
- package/dist/web/assets/SettingsPage-DG3ialW3.css +1 -0
- package/dist/web/assets/SettingsPage-OasIZiIz.js +1 -0
- package/dist/web/assets/SharedJefaReportPage-CcD-06mK.css +1 -0
- package/dist/web/assets/SharedJefaReportPage-_f2bnFY-.js +1 -0
- package/dist/web/assets/TabsContent-CTM6GBGk.js +1 -0
- package/dist/web/assets/TabsTrigger-BFj6S2XJ.js +1 -0
- package/dist/web/assets/TagVocabularyPage-Cp1UVDoe.js +1 -0
- package/dist/web/assets/TaskExecutionPlan-C9kJJJKk.css +1 -0
- package/dist/web/assets/TaskExecutionPlan-D_MbMVvj.js +2 -0
- package/dist/web/assets/TaskSchedulesPage-CDalUfNj.css +1 -0
- package/dist/web/assets/TaskSchedulesPage-Dd38ntqQ.js +1 -0
- package/dist/web/assets/Teleport-D5d1fEVm.js +1 -0
- package/dist/web/assets/TextField-DUZTbKVz.js +1 -0
- package/dist/web/assets/UiDialog-CU8nqGKC.js +1 -0
- package/dist/web/assets/UiDisclosure-DbxNZe0B.js +1 -0
- package/dist/web/assets/UiIcon-DSkB5Juh.js +1 -0
- package/dist/web/assets/UiIconButton-Bgy8Hoy4.js +1 -0
- package/dist/web/assets/UiSegmented-BwkPHeLK.js +1 -0
- package/dist/web/assets/UiSelect-CW3HNsRZ.js +1 -0
- package/dist/web/assets/UiToggle--Z_LpW41.js +1 -0
- package/dist/web/assets/UiWeight-D8U0orbz.js +1 -0
- package/dist/web/assets/UiWeight-aUNtanHz.css +1 -0
- package/dist/web/assets/UnassignedConversationsPanel-BeWzhuBr.js +1 -0
- package/dist/web/assets/VirtualDirectoryList-BT099Zuk.js +1 -0
- package/dist/web/assets/Workbench3D-BAb5m-Qk.js +2 -0
- package/dist/web/assets/WritingTastePage-BsekLhC3.js +1 -0
- package/dist/web/assets/WritingTastePage-Dh1qW6bK.css +1 -0
- package/dist/web/assets/_plugin-vue_export-helper-Crd8aFkh.js +10 -0
- package/dist/web/assets/accordion-C-pFa1cg.js +1 -0
- package/dist/web/assets/agent-occupation-BooDHzf0.js +1 -0
- package/dist/web/assets/agent-pins-CFO-xYmz.js +1 -0
- package/dist/web/assets/agent-profile-Bi--2zRQ.css +1 -0
- package/dist/web/assets/agent-profile.css_vue_type_style_index_0_src_true_lang-BKk2RVxy.js +1 -0
- package/dist/web/assets/agent-work-summary-BIZoVGaT.js +1 -0
- package/dist/web/assets/attention-store-dDH6VA6Z.js +1 -0
- package/dist/web/assets/badge-BnU2j9Nh.js +1 -0
- package/dist/web/assets/board-task-peek-C7CQ78B5.js +1 -0
- package/dist/web/assets/button-B4gCj85U.js +1 -0
- package/dist/web/assets/checkbox-CzVOT2cF.js +1 -0
- package/dist/web/assets/client-Cg0bLxrO.js +1 -0
- package/dist/web/assets/console-k05BnLkZ.js +1 -0
- package/dist/web/assets/conversation-launcher-settings-C745vZJa.js +1 -0
- package/dist/web/assets/date-time-Clwafva-.js +1 -0
- package/dist/web/assets/debounce-CFk-gEUl.js +1 -0
- package/dist/web/assets/design-lab-CJiqHzsm.js +1 -0
- package/dist/web/assets/dialog-DQaUWk4W.js +1 -0
- package/dist/web/assets/dist-2CLFk118.js +1 -0
- package/dist/web/assets/dropdown-menu-CN5wjWUD.js +1 -0
- package/dist/web/assets/field-6gOLsuT_.js +1 -0
- package/dist/web/assets/{galaxy-scene-7sJk1pHo.js → galaxy-scene-BwL9s-x4.js} +1 -1
- package/dist/web/assets/handleAndDispatchCustomEvent-Bng2rRDf.js +1 -0
- package/dist/web/assets/identity-NbL1GGSB.js +1 -0
- package/dist/web/assets/index-C2rHjaT6.css +1 -0
- package/dist/web/assets/index-DYEE8nDj.js +2 -0
- package/dist/web/assets/judgment-types-DfSuVLnV.js +1 -0
- package/dist/web/assets/model-2BvryZbU.js +1 -0
- package/dist/web/assets/model-BjNAHvfb.js +1 -0
- package/dist/web/assets/model-BsfqK9w_.js +1 -0
- package/dist/web/assets/model-DPykou4S.js +1 -0
- package/dist/web/assets/model-DrZFCNN6.js +1 -0
- package/dist/web/assets/model-YYqd0CSe.js +1 -0
- package/dist/web/assets/motion-preference-CxKthhLy.js +1 -0
- package/dist/web/assets/occupation-catalog-JHFMVvBn.js +1 -0
- package/dist/web/assets/office-scene-Df4cLTmp.js +1 -0
- package/dist/web/assets/orchestration-filters-B7ZbjZKo.js +1 -0
- package/dist/web/assets/page-title-BawJ25Bw.js +1 -0
- package/dist/web/assets/{personal-profile-graph-FucCAuBm.js → personal-profile-graph-BEjSAQMe.js} +1 -1
- package/dist/web/assets/preload-helper-BLdHbfdN.js +1 -0
- package/dist/web/assets/{profile-model-BQO4zNs9.js → profile-model-kCmPHrmk.js} +1 -1
- package/dist/web/assets/project-capture-BUtkhbr1.js +1 -0
- package/dist/web/assets/project-origin-DI7ft7I8.js +1 -0
- package/dist/web/assets/project-team-api-BZMMPuUd.js +1 -0
- package/dist/web/assets/quick-edit-api-CTMfc9uz.js +1 -0
- package/dist/web/assets/shared-report-eUYPCJTS.css +1 -0
- package/dist/web/assets/shared-report-o1Tvfyn-.js +7 -0
- package/dist/web/assets/short-ids-BpNwVgnt.js +1 -0
- package/dist/web/assets/stage-Bw1Kfjt_.js +1 -0
- package/dist/web/assets/stage-ucn3npX-.js +3835 -0
- package/dist/web/assets/task-board-model-BohbBuwF.js +1 -0
- package/dist/web/assets/task-labels-dW28Ybet.js +1 -0
- package/dist/web/assets/ui-BkbPVq3y.js +1 -0
- package/dist/web/assets/ui-CE38wkv4.css +1 -0
- package/dist/web/assets/useAgentRecords-D6BTApmV.js +1 -0
- package/dist/web/assets/useApi-CROJJdhE-BMswzZdS.js +1 -0
- package/dist/web/assets/useArrowNavigation-LczgkNfS.js +1 -0
- package/dist/web/assets/useFocusReturn-DQOtrYO8.js +1 -0
- package/dist/web/assets/useKnowledgeItemPeek-CGzVMWJz.js +1 -0
- package/dist/web/assets/useMinimumLoadingDisplay-DEBBYuGI.js +1 -0
- package/dist/web/assets/useRoutePeek-R9W605pr.js +1 -0
- package/dist/web/assets/vue-router-BUjBh_Iw.js +1 -0
- package/dist/web/assets/workbench-model-CaNC35vW.js +1 -0
- package/dist/web/index.html +39 -25
- package/docs/agent-apps.md +105 -0
- package/docs/employee-agents.md +21 -1
- package/docs/external-knowledge-architecture.md +1 -1
- package/docs/judgment-and-autonomy.md +36 -2
- package/docs/project-agent-memory.md +6 -1
- package/graph-provider/fuli_graph/agent_confirmation_progress.py +4 -0
- package/graph-provider/fuli_graph/agent_conversation_routes.py +6 -1
- package/graph-provider/fuli_graph/app.py +85 -4
- package/graph-provider/fuli_graph/collaboration_context.py +31 -28
- package/graph-provider/fuli_graph/config.py +4 -0
- package/graph-provider/fuli_graph/conversation_context.py +16 -0
- package/graph-provider/fuli_graph/conversation_scope.py +80 -0
- package/graph-provider/fuli_graph/conversation_triage_models.py +5 -0
- package/graph-provider/fuli_graph/graph_field_contract.py +844 -0
- package/graph-provider/fuli_graph/graph_format.py +454 -0
- package/graph-provider/fuli_graph/graph_format_backfills.py +490 -0
- package/graph-provider/fuli_graph/graph_format_confirm.py +359 -0
- package/graph-provider/fuli_graph/graph_format_journal.py +329 -0
- package/graph-provider/fuli_graph/graph_format_ledger.py +239 -0
- package/graph-provider/fuli_graph/graph_format_migrations.py +145 -0
- package/graph-provider/fuli_graph/graph_format_routes.py +73 -0
- package/graph-provider/fuli_graph/graph_format_schema.py +251 -0
- package/graph-provider/fuli_graph/graph_models.py +11 -0
- package/graph-provider/fuli_graph/graph_query.py +29 -4
- package/graph-provider/fuli_graph/graph_schema_state.py +99 -0
- package/graph-provider/fuli_graph/knowledge_audit.py +77 -16
- package/graph-provider/fuli_graph/knowledge_audit_models.py +29 -0
- package/graph-provider/fuli_graph/knowledge_basis_review.py +244 -0
- package/graph-provider/fuli_graph/knowledge_batch_confirmation.py +120 -40
- package/graph-provider/fuli_graph/knowledge_deletion_watermark.py +36 -0
- package/graph-provider/fuli_graph/knowledge_dependencies.py +199 -0
- package/graph-provider/fuli_graph/knowledge_hard_delete.py +626 -0
- package/graph-provider/fuli_graph/knowledge_hard_delete_models.py +177 -0
- package/graph-provider/fuli_graph/knowledge_hard_delete_operations.py +131 -0
- package/graph-provider/fuli_graph/knowledge_hard_delete_publications.py +42 -0
- package/graph-provider/fuli_graph/knowledge_hard_delete_routes.py +57 -0
- package/graph-provider/fuli_graph/knowledge_hard_delete_traces.py +149 -0
- package/graph-provider/fuli_graph/knowledge_integrity.py +135 -0
- package/graph-provider/fuli_graph/knowledge_item_routes.py +54 -0
- package/graph-provider/fuli_graph/knowledge_item_version.py +38 -0
- package/graph-provider/fuli_graph/knowledge_item_view.py +271 -0
- package/graph-provider/fuli_graph/knowledge_item_view_models.py +220 -0
- package/graph-provider/fuli_graph/knowledge_management.py +347 -48
- package/graph-provider/fuli_graph/knowledge_outdated.py +80 -0
- package/graph-provider/fuli_graph/knowledge_project_scope.py +109 -0
- package/graph-provider/fuli_graph/knowledge_records.py +3 -1
- package/graph-provider/fuli_graph/knowledge_review.py +121 -2
- package/graph-provider/fuli_graph/knowledge_review_models.py +36 -0
- package/graph-provider/fuli_graph/knowledge_scope_edit.py +149 -0
- package/graph-provider/fuli_graph/knowledge_search.py +33 -11
- package/graph-provider/fuli_graph/knowledge_session_migration.py +137 -0
- package/graph-provider/fuli_graph/knowledge_session_migration_models.py +78 -0
- package/graph-provider/fuli_graph/knowledge_source_delete_copies.py +62 -0
- package/graph-provider/fuli_graph/knowledge_source_delete_inventory.py +71 -0
- package/graph-provider/fuli_graph/knowledge_source_delete_lineages.py +64 -0
- package/graph-provider/fuli_graph/knowledge_source_delete_models.py +87 -0
- package/graph-provider/fuli_graph/knowledge_source_delete_mutation.py +39 -0
- package/graph-provider/fuli_graph/knowledge_source_delete_plan.py +100 -0
- package/graph-provider/fuli_graph/knowledge_source_delete_selection.py +65 -0
- package/graph-provider/fuli_graph/knowledge_source_delete_target.py +44 -0
- package/graph-provider/fuli_graph/knowledge_source_fence.py +38 -0
- package/graph-provider/fuli_graph/knowledge_source_memory.py +109 -0
- package/graph-provider/fuli_graph/knowledge_source_tasks.py +52 -0
- package/graph-provider/fuli_graph/knowledge_tag_governance.py +713 -0
- package/graph-provider/fuli_graph/knowledge_tag_governance_models.py +240 -0
- package/graph-provider/fuli_graph/knowledge_tag_models.py +225 -0
- package/graph-provider/fuli_graph/knowledge_tag_ranking.py +109 -0
- package/graph-provider/fuli_graph/knowledge_tag_redirects.py +24 -0
- package/graph-provider/fuli_graph/knowledge_tag_relations.py +213 -0
- package/graph-provider/fuli_graph/knowledge_tag_routes.py +77 -0
- package/graph-provider/fuli_graph/knowledge_tag_similarity.py +114 -0
- package/graph-provider/fuli_graph/knowledge_tag_vocabulary.py +169 -0
- package/graph-provider/fuli_graph/knowledge_tags.py +425 -0
- package/graph-provider/fuli_graph/knowledge_versions.py +581 -0
- package/graph-provider/fuli_graph/migrate_lead_occupation.py +22 -0
- package/graph-provider/fuli_graph/model_validation.py +4 -0
- package/graph-provider/fuli_graph/models.py +65 -2
- package/graph-provider/fuli_graph/name_identity.py +31 -0
- package/graph-provider/fuli_graph/negative_feedback_block.py +53 -0
- package/graph-provider/fuli_graph/preference_conflicts.py +4 -2
- package/graph-provider/fuli_graph/preference_task_scope.py +74 -0
- package/graph-provider/fuli_graph/project_agent_attention_routes.py +9 -1
- package/graph-provider/fuli_graph/project_agent_dismissal_models.py +122 -0
- package/graph-provider/fuli_graph/project_agent_dismissal_routes.py +52 -0
- package/graph-provider/fuli_graph/project_agent_executor_models.py +3 -0
- package/graph-provider/fuli_graph/project_agent_memory_models.py +22 -3
- package/graph-provider/fuli_graph/project_agent_models.py +4 -1
- package/graph-provider/fuli_graph/project_agent_routes.py +27 -3
- package/graph-provider/fuli_graph/project_agent_score_card.py +237 -0
- package/graph-provider/fuli_graph/project_agent_score_card_models.py +126 -0
- package/graph-provider/fuli_graph/project_agent_score_card_routes.py +24 -0
- package/graph-provider/fuli_graph/project_agent_task_models.py +6 -0
- package/graph-provider/fuli_graph/project_knowledge.py +38 -9
- package/graph-provider/fuli_graph/publication_source_copies.py +98 -0
- package/graph-provider/fuli_graph/publication_submission.py +105 -0
- package/graph-provider/fuli_graph/publication_submission_models.py +40 -0
- package/graph-provider/fuli_graph/runtime.py +204 -573
- package/graph-provider/fuli_graph/session_records.py +257 -0
- package/graph-provider/fuli_graph/session_records_models.py +96 -0
- package/graph-provider/fuli_graph/store.py +6 -0
- package/graph-provider/fuli_graph/store_agent_conversations.py +34 -17
- package/graph-provider/fuli_graph/store_conversation_triage.py +17 -3
- package/graph-provider/fuli_graph/store_identity.py +3 -1
- package/graph-provider/fuli_graph/store_knowledge.py +479 -363
- package/graph-provider/fuli_graph/store_knowledge_tags.py +391 -0
- package/graph-provider/fuli_graph/store_occupation_catalog.py +9 -5
- package/graph-provider/fuli_graph/store_project_agent_attention.py +18 -1
- package/graph-provider/fuli_graph/store_project_agent_dismissal.py +314 -0
- package/graph-provider/fuli_graph/store_project_agent_executor_learning.py +2 -2
- package/graph-provider/fuli_graph/store_project_agent_memory.py +17 -2
- package/graph-provider/fuli_graph/store_project_agent_score_card.py +97 -0
- package/graph-provider/fuli_graph/store_project_agent_task_recruitment.py +2 -1
- package/graph-provider/fuli_graph/store_project_agent_tasks.py +47 -6
- package/graph-provider/fuli_graph/store_project_agent_worker_runs.py +14 -1
- package/graph-provider/fuli_graph/store_project_agents.py +5 -89
- package/graph-provider/fuli_graph/store_publication.py +97 -43
- package/graph-provider/fuli_graph/store_records.py +12 -3
- package/graph-provider/fuli_graph/store_task_contexts.py +17 -2
- package/graph-provider/fuli_graph/store_transcript_recovery.py +6 -0
- package/graph-provider/fuli_graph/system_agents.py +13 -5
- package/graph-provider/fuli_graph/system_hr_identity.py +8 -1
- package/graph-provider/fuli_graph/task_context_models.py +22 -3
- package/graph-provider/fuli_graph/task_context_routes.py +15 -1
- package/graph-provider/fuli_graph/task_scene.py +60 -0
- package/graph-provider/fuli_graph/task_session_hints.py +47 -0
- package/graph-provider/fuli_graph/task_turn_receipts.py +92 -0
- package/graph-provider/fuli_graph/task_worker_attribution.py +14 -5
- package/graph-provider/fuli_graph/temporary_project_scope.py +26 -8
- package/graph-provider/pyproject.toml +2 -1
- package/native/win32/fuli-win-helper.exe +0 -0
- package/npm-shrinkwrap.json +1156 -229
- package/package.json +23 -6
- package/packages/roundtable/bin/fuli-roundtable.js +9 -0
- package/packages/roundtable/package.json +31 -0
- package/{src → packages/roundtable/src}/agents/claude-code/wake.js +7 -9
- package/{src → packages/roundtable/src}/agents/codex/wake.js +0 -7
- package/packages/roundtable/src/errors.js +10 -0
- package/packages/roundtable/src/host.js +48 -0
- package/{src/agent-peer → packages/roundtable/src/peer}/chat-coordinator.js +3 -3
- package/{src/agent-peer → packages/roundtable/src/peer}/chat-port.js +8 -9
- package/packages/roundtable/src/peer/control-cli.js +97 -0
- package/packages/roundtable/src/peer/control.js +47 -0
- package/{src/agent-peer → packages/roundtable/src/peer}/coordinator-store.js +19 -20
- package/{src/agent-peer → packages/roundtable/src/peer}/node-store.js +18 -19
- package/{src/agent-peer → packages/roundtable/src/peer}/peer-port.js +6 -7
- package/{src/agent-peer → packages/roundtable/src/peer}/peer-runtime.js +30 -37
- package/{src/agent-peer → packages/roundtable/src/peer}/runner.js +5 -7
- package/{src/agent-roundtable → packages/roundtable/src/roundtable}/attention-inbox-store.js +8 -6
- package/{src/agent-roundtable → packages/roundtable/src/roundtable}/chat-contract.js +1 -1
- package/{src/agent-roundtable → packages/roundtable/src/roundtable}/chat-service.js +2 -2
- package/{src/agent-roundtable → packages/roundtable/src/roundtable}/chat-snapshot.js +2 -2
- package/{src/agent-roundtable → packages/roundtable/src/roundtable}/chat-store.js +7 -4
- package/{src/agent-roundtable → packages/roundtable/src/roundtable}/chat-updates.js +1 -1
- package/{src/agent-roundtable → packages/roundtable/src/roundtable}/chat.js +20 -21
- package/{src/agent-roundtable → packages/roundtable/src/roundtable}/memory-observation.js +3 -4
- package/packages/roundtable/src/roundtable/project-target.js +37 -0
- package/{src/agent-roundtable → packages/roundtable/src/roundtable}/service.js +47 -49
- package/{src/agent-roundtable → packages/roundtable/src/roundtable}/store.js +28 -28
- package/{src/agent-roundtable → packages/roundtable/src/roundtable}/wake.js +11 -4
- package/packages/roundtable/src/standalone/cli.js +134 -0
- package/packages/roundtable/src/standalone/host.js +114 -0
- package/packages/roundtable/src/standalone/mcp.js +98 -0
- package/packages/roundtable/src/standalone/runtime.js +25 -0
- package/packages/roundtable/src/standalone/serve.js +60 -0
- package/packages/roundtable/src/standalone/store.js +111 -0
- package/packages/roundtable/src/storage/data-format-error.js +34 -0
- package/packages/roundtable/src/storage/database-backup-process.js +12 -0
- package/packages/roundtable/src/storage/database-format.js +575 -0
- package/packages/roundtable/src/storage/database-migration.js +375 -0
- package/packages/roundtable/src/storage/format-backup-names.js +41 -0
- package/skills/capturing-session-knowledge/references/capture.md +19 -3
- package/skills/flreview/SKILL.md +1 -1
- package/skills/fuli/SKILL.md +12 -0
- package/skills/operating-fuli/SKILL.md +2 -2
- package/skills/operating-fuli/references/workflow-recipes.md +6 -1
- package/src/adaptive-runtime/settings.js +5 -2
- package/src/adaptive-runtime/state.js +5 -2
- package/src/agent-apps/activation.js +94 -0
- package/src/agent-apps/app-data-fs.js +134 -0
- package/src/agent-apps/app-host.js +150 -0
- package/src/agent-apps/app-launcher.js +25 -0
- package/src/agent-apps/app-tokens.js +84 -0
- package/src/agent-apps/authorization.js +78 -0
- package/src/agent-apps/bounded-wait.js +13 -0
- package/src/agent-apps/confirmed-decisions.js +262 -0
- package/src/agent-apps/data-deletion.js +127 -0
- package/src/agent-apps/data-directory.js +110 -0
- package/src/agent-apps/decision-source.js +31 -0
- package/src/agent-apps/errors.js +28 -0
- package/src/agent-apps/host-identity.js +166 -0
- package/src/agent-apps/host-tools/catalog.js +214 -0
- package/src/agent-apps/host-tools/fuli-tools.js +13 -0
- package/src/agent-apps/instances.js +414 -0
- package/src/agent-apps/manifest.js +74 -0
- package/src/agent-apps/operations.js +33 -0
- package/src/agent-apps/owner-lease.js +157 -0
- package/src/agent-apps/package-files.js +118 -0
- package/src/agent-apps/removal.js +112 -0
- package/src/agent-apps/run-gate.js +50 -0
- package/src/agent-apps/service.js +108 -0
- package/src/agent-apps/store.js +434 -0
- package/src/agent-apps/trust-terms.js +23 -0
- package/src/agent-apps/trusted-runner.js +136 -0
- package/src/agent-apps/versions.js +145 -0
- package/src/agent-apps/views.js +93 -0
- package/src/agent-apps/write-gate.js +41 -0
- package/src/agent-peer/http.js +5 -44
- package/src/agent-roundtable/http.js +1 -1
- package/src/agent-tools/agent-app-definitions.js +29 -0
- package/src/agent-tools/agent-dismissal-definitions.js +38 -0
- package/src/agent-tools/agent-score-card-definitions.js +24 -0
- package/src/agent-tools/checkpoint-definitions.js +9 -4
- package/src/agent-tools/graph-definitions.js +19 -13
- package/src/agent-tools/graph-handlers.js +105 -23
- package/src/agent-tools/interface-catalog.js +30 -1
- package/src/agent-tools/interface-definitions.js +21 -6
- package/src/agent-tools/judgment-definitions.js +1 -1
- package/src/agent-tools/knowledge-tag-definitions.js +43 -0
- package/src/agent-tools/knowledge-usage-definitions.js +2 -1
- package/src/agent-tools/model-backend-definitions.js +16 -0
- package/src/agent-tools/project-agent-definitions.js +2 -1
- package/src/agent-tools/session-fuli-gate.js +81 -0
- package/src/agent-tools.js +11 -7
- package/src/agents/agent-label.js +8 -0
- package/src/agents/claude-code/host-notification.js +29 -57
- package/src/agents/claude-code/judgment.js +9 -0
- package/src/agents/claude-code/lifecycle-hook.js +116 -21
- package/src/agents/claude-code/preference-evidence.js +6 -3
- package/src/agents/claude-code/session-file.js +30 -0
- package/src/agents/claude-code/turn-ownership.js +51 -0
- package/src/agents/codex/judgment.js +9 -0
- package/src/agents/codex/lifecycle-hook.js +130 -20
- package/src/agents/codex/lifecycle-hooks.js +33 -41
- package/src/agents/codex/preference-evidence.js +27 -2
- package/src/agents/codex/review-command.js +29 -0
- package/src/agents/codex/shell-session.js +23 -0
- package/src/agents/cursor/lifecycle-hook.js +20 -2
- package/src/agents/cursor/lifecycle-hooks.js +10 -9
- package/src/agents/directory-snapshots.js +98 -29
- package/src/agents/identity-receipt.js +53 -10
- package/src/agents/judgment-registry.js +11 -0
- package/src/agents/lifecycle-message.js +3 -0
- package/src/agents/memory-state.js +6 -0
- package/src/agents/native-session-env.js +13 -0
- package/src/agents/preference-evidence.js +9 -2
- package/src/agents/system-prompt.js +5 -8
- package/src/agents/turn-receipt.js +142 -0
- package/src/app/agent-request-context.js +29 -1
- package/src/app/application-error.js +8 -0
- package/src/backup/graph-backup.js +2 -12
- package/src/backup/identity-reconciliation.js +9 -2
- package/src/cli/app-command.js +170 -0
- package/src/cli/capture-scope-prompt.js +49 -0
- package/src/cli/clients-command.js +94 -0
- package/src/cli/command-registry.js +16 -0
- package/src/cli/local-runtime-command.js +4 -2
- package/src/cli/mcp-command.js +1 -1
- package/src/cli/migrate-command.js +308 -0
- package/src/cli/models-command.js +55 -0
- package/src/cli/peer-command.js +9 -90
- package/src/cli/session-command.js +80 -0
- package/src/cli/setup-command.js +28 -2
- package/src/cli/terminal-io.js +73 -3
- package/src/cli/workspace-connection-command.js +5 -3
- package/src/cli.js +22 -0
- package/src/conversations/capture-window.js +26 -5
- package/src/conversations/entry-rules.js +26 -2
- package/src/conversations/preference-evidence.js +39 -14
- package/src/conversations/preference-lifecycle.js +21 -7
- package/src/conversations/preference-session.js +157 -46
- package/src/conversations/preference-snapshot.js +139 -29
- package/src/conversations/recent-context.js +170 -0
- package/src/conversations/session-fuli-entry.js +64 -0
- package/src/conversations/sync-transcript.js +141 -46
- package/src/conversations/task-context-view.js +4 -10
- package/src/conversations/transcript-append.js +18 -0
- package/src/conversations/transcript-capture-gap.js +435 -0
- package/src/conversations/transcript-guard.js +32 -18
- package/src/conversations/transcript-lifecycle.js +73 -11
- package/src/conversations/transcript-reader.js +15 -11
- package/src/conversations/unresolved-turns.js +132 -0
- package/src/data-format/apply-receipts.js +36 -0
- package/src/data-format/backup-retention.js +127 -0
- package/src/data-format/external-writers.js +16 -0
- package/src/data-format/format-notices.js +109 -0
- package/src/data-format/format-retention.js +126 -0
- package/src/data-format/format-status.js +75 -0
- package/src/data-format/graph-format-client.js +44 -0
- package/src/data-format/local-stores.js +139 -0
- package/src/data-format/maintenance-lock.js +70 -0
- package/src/data-format/migration-operations.js +196 -0
- package/src/data-format/migration-plan.js +68 -0
- package/src/data-format/operations-log.js +32 -0
- package/src/employees/catalog/bole.json +7 -6
- package/src/employees/install-package.js +10 -7
- package/src/employees/management-policy.js +19 -12
- package/src/employees/manifest.js +12 -10
- package/src/employees/task-entry.js +6 -2
- package/src/external-knowledge/conflict-policy.js +4 -2
- package/src/external-knowledge/connected-search.js +1 -0
- package/src/external-knowledge/registry.js +74 -35
- package/src/graphiti/agent-access-policy.js +6 -23
- package/src/graphiti/agent-attention.js +7 -1
- package/src/graphiti/agent-conversations.js +49 -15
- package/src/graphiti/agent-knowledge-workflows.js +44 -21
- package/src/graphiti/agent-performance-review.js +117 -0
- package/src/graphiti/agent-score-card.js +82 -0
- package/src/graphiti/assistant-project-candidate.js +137 -0
- package/src/graphiti/capture-change-confirmation.js +244 -0
- package/src/graphiti/capture-decision.js +220 -0
- package/src/graphiti/capture-notice.js +68 -0
- package/src/graphiti/capture-onboarding.js +144 -0
- package/src/graphiti/capture-policy.js +213 -45
- package/src/graphiti/capture-project-mode.js +167 -0
- package/src/graphiti/capture-session-pause.js +341 -0
- package/src/graphiti/checkpoint-capture.js +26 -0
- package/src/graphiti/collaboration-preference-workflow.js +22 -5
- package/src/graphiti/conversation-triage.js +7 -0
- package/src/graphiti/federated-application.js +203 -67
- package/src/graphiti/human-review-channel.js +63 -0
- package/src/graphiti/jefa-board-match.js +167 -0
- package/src/graphiti/knowledge-item-edit.js +57 -0
- package/src/graphiti/knowledge-provider-mapping.js +6 -1
- package/src/graphiti/knowledge-result-budget.js +1 -10
- package/src/graphiti/knowledge-review.js +11 -0
- package/src/graphiti/knowledge-tags.js +138 -0
- package/src/graphiti/preference-task-scope.js +55 -12
- package/src/graphiti/project-agent-control-plane.js +42 -4
- package/src/graphiti/project-agent-dismissal.js +106 -0
- package/src/graphiti/project-agent-mapping.js +3 -0
- package/src/graphiti/project-agent-memory.js +18 -7
- package/src/graphiti/project-agent-task-entry.js +14 -16
- package/src/graphiti/project-agent-workflows.js +22 -2
- package/src/graphiti/project-memory-usage.js +6 -0
- package/src/graphiti/provider-client.js +111 -18
- package/src/graphiti/public-submission-reconciliation.js +37 -0
- package/src/graphiti/public-submission.js +77 -0
- package/src/graphiti/publication-draft-input.js +11 -0
- package/src/graphiti/recall-policy.js +49 -0
- package/src/graphiti/role-suggestion-note.js +51 -0
- package/src/graphiti/role-work-sessions.js +10 -0
- package/src/graphiti/roundtable-host.js +70 -0
- package/src/graphiti/runtime-config.js +3 -0
- package/src/graphiti/session-capture-pause-request.js +58 -0
- package/src/graphiti/session-fuli-switch.js +135 -0
- package/src/graphiti/session-knowledge-migration.js +96 -0
- package/src/graphiti/session-layer-decision.js +138 -0
- package/src/graphiti/session-records.js +212 -0
- package/src/graphiti/task-collaboration-attribution.js +4 -2
- package/src/graphiti/task-entry-preferences.js +36 -11
- package/src/graphiti/task-entry-project-mention.js +11 -5
- package/src/graphiti/task-experiences.js +1 -0
- package/src/graphiti/task-knowledge-recall.js +46 -5
- package/src/graphiti/task-knowledge-routing.js +51 -11
- package/src/graphiti/task-preference-pages.js +1 -1
- package/src/graphiti/task-preference-reader.js +8 -3
- package/src/graphiti/task-remember.js +23 -4
- package/src/graphiti/task-scene.js +93 -0
- package/src/graphiti/temporary-project-scope.js +34 -0
- package/src/graphiti/turn-receipt-delivery.js +100 -0
- package/src/graphiti/user-taste-skill.js +1 -1
- package/src/graphiti/worker-run-host.js +14 -3
- package/src/graphiti/worker-task-context.js +5 -2
- package/src/graphiti/workflow-observation.js +1 -1
- package/src/graphiti/writing-taste-profile.js +5 -1
- package/src/http/agent-app-api-router.js +60 -0
- package/src/http/agent-attention-api-router.js +7 -0
- package/src/http/agent-score-card-api-router.js +28 -0
- package/src/http/api-router.js +35 -3
- package/src/http/capture-change-api-router.js +19 -0
- package/src/http/capture-onboarding-api-router.js +18 -0
- package/src/http/data-format-api-router.js +44 -0
- package/src/http/error-mapping.js +20 -4
- package/src/http/graph-api-router.js +25 -5
- package/src/http/knowledge-hard-delete-api-router.js +35 -0
- package/src/http/knowledge-item-api-router.js +36 -0
- package/src/http/knowledge-scope-api-router.js +28 -0
- package/src/http/knowledge-tags-api-router.js +77 -0
- package/src/http/request-policy.js +9 -0
- package/src/http/session-records-api-router.js +13 -0
- package/src/judgment/acceptance.js +47 -19
- package/src/judgment/backend.js +83 -0
- package/src/judgment/conversation.js +9 -2
- package/src/judgment/engine.js +156 -40
- package/src/judgment/http.js +15 -2
- package/src/judgment/model.js +6 -4
- package/src/judgment/preference-receipt.js +64 -0
- package/src/judgment/review-prompt.js +13 -0
- package/src/judgment/review-recovery.js +35 -0
- package/src/judgment/review-undo.js +51 -0
- package/src/judgment/review-verdicts.js +29 -0
- package/src/judgment/routing.js +31 -15
- package/src/judgment/runtime.js +21 -0
- package/src/judgment/scheduler.js +4 -2
- package/src/judgment/service.js +21 -4
- package/src/judgment/store.js +127 -38
- package/src/judgment/verdict-schema.js +8 -0
- package/src/knowledge-hard-delete/console-port.js +247 -0
- package/src/knowledge-hard-delete/delete-ledger.js +226 -0
- package/src/knowledge-hard-delete/forget-references.js +56 -0
- package/src/knowledge-hard-delete/input.js +50 -0
- package/src/knowledge-hard-delete/ledger-format.js +24 -0
- package/src/knowledge-hard-delete/memory-scopes.js +37 -0
- package/src/knowledge-hard-delete/reconcile-local.js +45 -0
- package/src/knowledge-hard-delete/recovery-gate.js +105 -0
- package/src/knowledge-hard-delete/role-work-references.js +36 -0
- package/src/knowledge-scope/console-port.js +22 -0
- package/src/knowledge-tags/console-port.js +20 -0
- package/src/local-runtime/lifecycle.js +5 -0
- package/src/local-runtime/windows-process-handle.js +96 -0
- package/src/mcp/create-mcp-server.js +45 -24
- package/src/mcp/direct-call.js +5 -2
- package/src/mcp/preference-delivery.js +1 -1
- package/src/mcp/provider-task-context-registry.js +29 -0
- package/src/mcp/remote-http-server.js +6 -11
- package/src/mcp/session-id.js +32 -5
- package/src/mcp/tool-annotations.js +14 -4
- package/src/mcp/tool-input-budget.js +121 -0
- package/src/mcp/tool-result.js +4 -4
- package/src/model-backends/adapters/anthropic-messages.js +94 -0
- package/src/model-backends/adapters/exchange.js +116 -0
- package/src/model-backends/adapters/ollama-local-build.js +48 -0
- package/src/model-backends/adapters/openai-chat.js +83 -0
- package/src/model-backends/adapters/registry.js +10 -0
- package/src/model-backends/adapters/typesafe-systemone.js +56 -0
- package/src/model-backends/budget.js +57 -0
- package/src/model-backends/config.js +231 -0
- package/src/model-backends/decision-contract.js +116 -0
- package/src/model-backends/egress.js +16 -0
- package/src/model-backends/evaluation-record.js +49 -0
- package/src/model-backends/failures.js +55 -0
- package/src/model-backends/http.js +95 -0
- package/src/model-backends/no-redirect-fetch.js +26 -0
- package/src/model-backends/port.js +288 -0
- package/src/model-backends/prompt.js +38 -0
- package/src/model-backends/receipt.js +6 -0
- package/src/model-backends/request.js +92 -0
- package/src/model-backends/role-settings.js +54 -0
- package/src/model-backends/role-trust.js +159 -0
- package/src/model-backends/role-work-store.js +318 -0
- package/src/model-backends/role-work.js +245 -0
- package/src/model-backends/runtime.js +36 -0
- package/src/model-backends/secret-store.js +118 -0
- package/src/model-backends/suggestion-log.js +234 -0
- package/src/model-backends/usage-ledger.js +212 -0
- package/src/model-backends/usage.js +25 -0
- package/src/model-backends/windows-dpapi.js +47 -0
- package/src/native-runtime/runtime.js +2 -12
- package/src/native-runtime/windows-job-process.js +7 -1
- package/src/native-runtime/windows-processes.js +4 -50
- package/src/presence/platforms.js +23 -0
- package/src/presence/port.js +16 -0
- package/src/presence/windows-hello.js +113 -0
- package/src/presence/windows-helper-pin.js +6 -0
- package/src/security/digest.js +13 -0
- package/src/server/blocked-ports.js +1 -1
- package/src/server/listen.js +27 -0
- package/src/server/worker-plan-runtime.js +8 -1
- package/src/server.js +164 -88
- package/src/setup/agent-installation-status.js +4 -2
- package/src/setup/agents/claude-code/adapter.test.js +3 -1
- package/src/setup/agents/claude-code/descriptor.json +96 -0
- package/src/setup/agents/claude-desktop/index.js +7 -2
- package/src/setup/agents/client-manifest.js +78 -0
- package/src/setup/agents/client-pack-change.js +133 -0
- package/src/setup/agents/client-pack-store.js +44 -0
- package/src/setup/agents/codex/adapter.test.js +3 -1
- package/src/setup/agents/codex/config-preview.js +15 -0
- package/src/setup/agents/codex/descriptor-schema.js +13 -0
- package/src/setup/agents/codex/descriptor.json +115 -0
- package/src/setup/agents/config-preview.js +25 -0
- package/src/setup/agents/config-writers.js +14 -0
- package/src/setup/agents/cursor/adapter.test.js +3 -1
- package/src/setup/agents/cursor/descriptor.json +83 -0
- package/src/setup/agents/descriptor-adapter.js +56 -0
- package/src/setup/agents/descriptor-adapter.test.js +99 -0
- package/src/setup/agents/descriptor-packs.js +37 -0
- package/src/setup/agents/descriptor-packs.test.js +98 -0
- package/src/setup/agents/descriptor-schema.js +109 -0
- package/src/setup/agents/mcp-entry-template.js +17 -0
- package/src/setup/agents/registration.js +7 -7
- package/src/setup/agents/registry.js +21 -12
- package/src/setup/agents.js +7 -4
- package/src/setup/claude-code-config.js +34 -43
- package/src/setup/codex-bootstrap.js +13 -24
- package/src/setup/codex-config.js +47 -30
- package/src/setup/cursor-config.js +22 -15
- package/src/setup/first-run-capture.js +29 -0
- package/src/setup/graph-runtime.js +5 -8
- package/src/setup/install-agent.js +2 -1
- package/src/setup/paths.js +9 -1
- package/src/setup/provider-env.js +13 -0
- package/src/setup/setup.js +19 -6
- package/src/setup/uninstall.js +7 -4
- package/src/storage/file-lock.js +26 -0
- package/src/storage/json-file.js +59 -10
- package/src/storage/json-format-migration.js +259 -0
- package/src/storage/json-format.js +342 -0
- package/src/system/client-connection-install.js +4 -3
- package/src/system/client-connection-status.js +9 -4
- package/src/system/runtime-settings.js +4 -2
- package/src/system/settings-guide.js +5 -2
- package/src/system/system-service.js +3 -1
- package/src/task-schedules/dispatch.js +104 -0
- package/src/task-schedules/scheduler.js +3 -1
- package/src/task-schedules/service.js +16 -23
- package/src/task-schedules/store.js +97 -24
- package/src/text/clock-time.js +8 -0
- package/src/text/model-json.js +6 -0
- package/src/text/single-line.js +3 -2
- package/src/text/utf8-preview.js +12 -0
- package/src/workspace-protocol/publication-contract.js +1 -1
- package/src/workspace-protocol/sync-contract.js +1 -1
- package/dist/web/assets/AboutPage-D0DxmN7G.js +0 -1
- package/dist/web/assets/AgentName-DSgPVCJM.js +0 -1
- package/dist/web/assets/AgentProfilePage-0ksQ58aV.css +0 -1
- package/dist/web/assets/AgentProfilePage-DHej4Q8z.js +0 -1
- package/dist/web/assets/AgentsDirectoryPage-Bp04jLM9.js +0 -1
- package/dist/web/assets/AgentsDirectoryPage-DoOXStj-.css +0 -1
- package/dist/web/assets/ConnectionsPage-Bh8fi-W4.js +0 -1
- package/dist/web/assets/CreateProjectDialog-CbpAuu4W.js +0 -2
- package/dist/web/assets/CreateProjectDialog-t947qHxl.css +0 -1
- package/dist/web/assets/EmployeeRecruitDialog-BPT132zr.css +0 -1
- package/dist/web/assets/EmployeeRecruitDialog-DNER6Mdz.js +0 -1
- package/dist/web/assets/EmployeeWorkbenchPage-BFSzzB5b.css +0 -1
- package/dist/web/assets/EmployeeWorkbenchPage-CoX4t8P4.js +0 -3
- package/dist/web/assets/InboxPage-D9_prKzQ.js +0 -4
- package/dist/web/assets/InboxPage-DiIA1trj.css +0 -1
- package/dist/web/assets/KnowledgeEditDialog-BXS3rlWg.css +0 -1
- package/dist/web/assets/KnowledgeEditDialog-ByZImgXm.js +0 -1
- package/dist/web/assets/KnowledgeInspector-DKyY0jH6.js +0 -1
- package/dist/web/assets/KnowledgeInspector-DaknAv7P.css +0 -1
- package/dist/web/assets/KnowledgeOrganizerPage-CdhkB0oX.js +0 -1
- package/dist/web/assets/KnowledgeOrganizerPage-CxICN_0p.css +0 -1
- package/dist/web/assets/KnowledgePage-Cxc4qYQv.js +0 -1
- package/dist/web/assets/KnowledgeWorkspace-BUKzHpCS.js +0 -4
- package/dist/web/assets/KnowledgeWorkspace-BY_OoTDG.css +0 -1
- package/dist/web/assets/NotFoundPage-BUgxeES-.js +0 -1
- package/dist/web/assets/OccupationsPage-BXCJPqBB.css +0 -1
- package/dist/web/assets/OccupationsPage-qqlBfp4E.js +0 -1
- package/dist/web/assets/OverviewPage-C7OJfsL0.css +0 -1
- package/dist/web/assets/OverviewPage-DgYfW1qa.js +0 -2
- package/dist/web/assets/PersonalProfilePage-CwKslGo_.js +0 -1
- package/dist/web/assets/PersonalProfilePage-bKUVSOge.css +0 -1
- package/dist/web/assets/PersonalProjectsPage-C7k2sBQN.css +0 -1
- package/dist/web/assets/PersonalProjectsPage-PnJo8Lf1.js +0 -1
- package/dist/web/assets/ProjectAgentFirstTask-CwFObBkw.js +0 -1
- package/dist/web/assets/ProjectAgentFirstTask-D1RrWjaX.css +0 -1
- package/dist/web/assets/ProjectAgentsPage-B885dHk8.js +0 -12
- package/dist/web/assets/ProjectAgentsPage-BdAKFeHd.css +0 -1
- package/dist/web/assets/ProjectScopePicker-DYA7L1Ex.css +0 -1
- package/dist/web/assets/ProjectScopePicker-gcCX7RAh.js +0 -1
- package/dist/web/assets/PublicProjectsPage-DI8v22Ai.js +0 -1
- package/dist/web/assets/PublicProjectsPage-DlmcjqGj.css +0 -1
- package/dist/web/assets/RoundtablesPage-BBLNUlJP.js +0 -1
- package/dist/web/assets/RoundtablesPage-DLZIf0Pu.css +0 -1
- package/dist/web/assets/SettingsPage-CfyHImb3.css +0 -1
- package/dist/web/assets/SettingsPage-D2irp49P.js +0 -1
- package/dist/web/assets/SharedJefaReportPage-D92FSPru.css +0 -1
- package/dist/web/assets/SharedJefaReportPage-cuzk7CDX.js +0 -1
- package/dist/web/assets/TaskExecutionPlan-BFVcb7KN.css +0 -1
- package/dist/web/assets/TaskExecutionPlan-CdUCSs5D.js +0 -2
- package/dist/web/assets/TaskSchedulesPage-fExFp8nI.js +0 -1
- package/dist/web/assets/TaskSchedulesPage-sheRrvlF.css +0 -1
- package/dist/web/assets/TextField-Cbr28Gy8.js +0 -1
- package/dist/web/assets/UiDialog-DT7Q8XAV.js +0 -1
- package/dist/web/assets/UiDisclosure-C6Tl1kJO.js +0 -1
- package/dist/web/assets/UiIcon-CW44gKUi.js +0 -1
- package/dist/web/assets/UiIconButton-BVG74yak.js +0 -1
- package/dist/web/assets/UiIconButton-CSFA7F4B.css +0 -1
- package/dist/web/assets/UiSegmented-BqraEIxm.js +0 -1
- package/dist/web/assets/UiSelect-DdLp-PYy.js +0 -1
- package/dist/web/assets/UiToggle-D2nOut_A.js +0 -1
- package/dist/web/assets/UnassignedConversationsPanel-CIxP_pnN.js +0 -1
- package/dist/web/assets/VirtualDirectoryList-CAyAj-kb.js +0 -1
- package/dist/web/assets/Workbench3D-CNXjcwxc.js +0 -2
- package/dist/web/assets/WritingTastePage-B9nMV49S.css +0 -1
- package/dist/web/assets/WritingTastePage-DJInuoHu.js +0 -1
- package/dist/web/assets/_plugin-vue_export-helper-BDNMzG2s.js +0 -1
- package/dist/web/assets/agent-occupation-DOxmEgGF.js +0 -1
- package/dist/web/assets/agent-pins-CCJNG__y.js +0 -1
- package/dist/web/assets/agent-profile-DtKpT0up.css +0 -1
- package/dist/web/assets/agent-work-summary-CLlvAYd9.js +0 -1
- package/dist/web/assets/attention-store-BmxXW1J5.js +0 -1
- package/dist/web/assets/catalog-G4BFWyaC.js +0 -1
- package/dist/web/assets/client-D-1EftNy.js +0 -1
- package/dist/web/assets/console-CwLNvN5Y.js +0 -1
- package/dist/web/assets/conversation-launcher-settings-BXbC2kQx.js +0 -1
- package/dist/web/assets/date-time-DBa_h9cD.js +0 -1
- package/dist/web/assets/design-lab-BP5ty-i1.js +0 -1
- package/dist/web/assets/i18n-DUkThQlr.js +0 -10
- package/dist/web/assets/identity-Bl_ro5EM.js +0 -1
- package/dist/web/assets/index-Big7gwZz.js +0 -2
- package/dist/web/assets/index-CI9E82Y5.css +0 -1
- package/dist/web/assets/judgment-types-B3_NM0bp.js +0 -1
- package/dist/web/assets/model-C52X3aIL.js +0 -1
- package/dist/web/assets/motion-preference-DDHtlfMn.js +0 -1
- package/dist/web/assets/occupation-catalog-CVv7y_iI.js +0 -1
- package/dist/web/assets/office-scene-CbmeA3ZZ.js +0 -1
- package/dist/web/assets/preload-helper-Czpn1I53.js +0 -1
- package/dist/web/assets/project-origin-DrKurHvp.js +0 -1
- package/dist/web/assets/project-team-api-sYC7_opa.js +0 -1
- package/dist/web/assets/shared-report-CgWun3V4.js +0 -1
- package/dist/web/assets/shared-report-NXHxLp5x.css +0 -1
- package/dist/web/assets/stage-CWdBY1y-.js +0 -1
- package/dist/web/assets/stage-D1RyodHo.js +0 -3835
- package/dist/web/assets/task-labels-BJraC-F1.js +0 -1
- package/dist/web/assets/ui-BEG3nZcy.js +0 -1
- package/dist/web/assets/ui-gkBKztsv.css +0 -1
- package/dist/web/assets/useAgentRecords-DnSCBOw-.js +0 -1
- package/dist/web/assets/useApi-CROJJdhE-SqXJr_RU.js +0 -1
- package/dist/web/assets/vue-router-CSaEmqy7.js +0 -1
- package/dist/web/assets/workbench-model-D9ytk327.js +0 -1
- package/src/agent-roundtable/project-target.js +0 -43
- package/src/setup/agents/claude-code/index.js +0 -35
- package/src/setup/agents/codex/index.js +0 -47
- package/src/setup/agents/cursor/index.js +0 -35
- package/src/setup/review-skill-adapters.js +0 -49
- /package/dist/web/assets/{client-B_QrPkEy.css → GrowthLoading-B_QrPkEy.css} +0 -0
- /package/{src → packages/roundtable/src}/agents/session-log.js +0 -0
- /package/{src → packages/roundtable/src}/agents/wake-registry.js +0 -0
- /package/{src/publication → packages/roundtable/src}/canonical-json.js +0 -0
- /package/{src/agent-peer → packages/roundtable/src/peer}/coordinator-http.js +0 -0
- /package/{src/agent-peer → packages/roundtable/src/peer}/coordinator-service.js +0 -0
- /package/{src/agent-peer → packages/roundtable/src/peer}/device-identity.js +0 -0
- /package/{src/agent-peer → packages/roundtable/src/peer}/origin-proof.js +0 -0
- /package/{src/agent-peer → packages/roundtable/src/peer}/peer-transport.js +0 -0
- /package/{src/agent-peer → packages/roundtable/src/peer}/protocol.js +0 -0
- /package/{src/agent-roundtable → packages/roundtable/src/roundtable}/attention-inbox.js +0 -0
- /package/{src/agent-roundtable → packages/roundtable/src/roundtable}/chat-notifications.js +0 -0
- /package/{src/agent-roundtable → packages/roundtable/src/roundtable}/chat-wait.js +0 -0
- /package/{src/agent-roundtable → packages/roundtable/src/roundtable}/chat-wake.js +0 -0
- /package/{src/agent-roundtable → packages/roundtable/src/roundtable}/discovery.js +0 -0
package/README.md
CHANGED
|
@@ -361,8 +361,48 @@ At task end, hook mode calls `checkpoint_task_knowledge`: use `capture_candidate
|
|
|
361
361
|
durable, evidence-backed batch; otherwise use `retain_nothing`. A prompt-fallback Agent applies the
|
|
362
362
|
same rule and writes through `capture_session_knowledge`. Personal preferences set the correct
|
|
363
363
|
`profileAspect` and stable `attributes.preferenceKey`; project facts omit `profileAspect`. If
|
|
364
|
-
automatic capture is disabled under Settings, writes return `capture_disabled` and no
|
|
365
|
-
created
|
|
364
|
+
automatic capture is disabled under Settings, automatic writes return `capture_disabled` and no
|
|
365
|
+
category is created: transcripts, checkpoints, knowledge and preference candidates, knowledge usage,
|
|
366
|
+
view records, and feedback or corrections reported through an Agent all stop. If the capture
|
|
367
|
+
settings cannot be read, automatic writes stop the same way (`reason: policy_unavailable`). Edits
|
|
368
|
+
you submit yourself in the FULI console and an explicit `新项目:` request still save, and reading
|
|
369
|
+
existing knowledge keeps working. Session turns written while automatic recording is off are skipped
|
|
370
|
+
with a content-free marker and are never imported after it comes back on.
|
|
371
|
+
|
|
372
|
+
Capture can also be limited to projects. `projectMode` is `all` (the default), `all_except` with
|
|
373
|
+
`excludedProjectIds`, or `selected` with `selectedProjectIds`; `unregisteredDirectories`
|
|
374
|
+
(`skip` by default under `selected`, `capture` otherwise) decides work outside every registered
|
|
375
|
+
project. A directory resolves to its project the same way task entry does, so a worktree of a
|
|
376
|
+
repository is that repository's project. A project that is not recorded returns
|
|
377
|
+
`reason: project_off`, an unregistered directory `project_unregistered`, and every task receipt
|
|
378
|
+
ends with the reason and that explicit edits still save, for example
|
|
379
|
+
`此项目未开启记忆;你明确提交的修改仍会保存`. Switching a project off never hides or
|
|
380
|
+
deletes what it already recorded; `projectsOffSince` keeps when it stopped. Agents read the
|
|
381
|
+
settings with `get_capture_policy` (pass `projectPath` to learn about the current project) and
|
|
382
|
+
change them with `update_capture_policy` only after restating the change and getting the user's
|
|
383
|
+
confirmation; the settings page uses `PATCH /api/capture-policy`. Saying "这次别记" in a session pauses
|
|
384
|
+
only that session at once, without a confirmation: the Agent calls `update_capture_policy` with just
|
|
385
|
+
`sessionPaused: true` and its `taskContextToken`, and every later receipt in the session says
|
|
386
|
+
`本会话已暂停记录(自 HH:mm 起)` (`reason: session_paused`). Earlier records stay, workers the session
|
|
387
|
+
starts are paused with it, "继续记" (`sessionPaused: false`) resumes from then on, and nothing written
|
|
388
|
+
while paused is recorded later. The pause lives in the local runtime directory and ends with the session.
|
|
389
|
+
|
|
390
|
+
To turn FULI off for one session altogether, the person types `/fuli stop` (Claude Code and Cursor, where
|
|
391
|
+
setup installs the `fuli` command Skill) or `fuli stop` (any client; Codex accepts no custom slash command).
|
|
392
|
+
The prompt hook answers the line itself, so the model never sees it: from then on that session gets no
|
|
393
|
+
injected memory, preferences or recall, its Agent's own FULI reads (searches, Agent memory, conversations)
|
|
394
|
+
are refused, it records nothing and starts no collaboration (workers, loans, other Agents, role work), while other sessions, the local service and existing memories stay as they are.
|
|
395
|
+
`fuli start` turns it back on within the existing settings (a pause or a stricter global, client or project
|
|
396
|
+
setting still applies), `fuli restart` also gives the next turn the full context again, and `fuli status`
|
|
397
|
+
shows the session and the default; nothing said while FULI was off is recorded later. Context already sent
|
|
398
|
+
to the model cannot be taken back, so isolation needs a new session. Only a task token shows which session a
|
|
399
|
+
tool call is for (Claude Code keeps its tool connection across /clear; Codex and Cursor connections name no
|
|
400
|
+
session), so while any session of a client is off FULI refuses that client's tool calls without a task token,
|
|
401
|
+
rather than serve memory to a session that may be the stopped one. Agents pass the `taskContextToken` they
|
|
402
|
+
already have (entry, searches and team reads take it), so other windows keep working. The same switch runs from a shell the
|
|
403
|
+
client started (`!fuli session stop`), so an Agent with shell access can run it too (the same trust as
|
|
404
|
+
access to your files); the console and `fuli mcp --call` still read for you, and `fuli session default off` makes new sessions start with FULI
|
|
405
|
+
off until started; sessions already open keep theirs.
|
|
366
406
|
|
|
367
407
|
Run these local contract tests to check that the README and project-path behavior still match the
|
|
368
408
|
implementation:
|
|
@@ -453,7 +493,8 @@ are isolated per target. Use Bind projects on an existing connection to add or r
|
|
|
453
493
|
`export PROJECT_KB_TOKEN='...'` and then `fl restart`.
|
|
454
494
|
3. Open `http://127.0.0.1:2727/connections`. Under External knowledge, enter a connection name,
|
|
455
495
|
connector, one or more bound projects, and retrieval mode.
|
|
456
|
-
4. For MCP HTTP, enter the
|
|
496
|
+
4. For MCP HTTP, enter the final endpoint URL (redirects to another origin are not followed) and an
|
|
497
|
+
optional token environment-variable name. For MCP stdio,
|
|
457
498
|
enter its command and arguments. For Notion, enter the token environment-variable name and Page
|
|
458
499
|
IDs or Data Source IDs. For Feishu/Lark, enter the token environment-variable name, region, and
|
|
459
500
|
an explicit Space ID, root-node token, or node tokens. For RAG Retrieval API, enter a
|
|
@@ -701,6 +742,8 @@ Tonborg's workbench shows decisions and feedback. **Project Agents → Hire an A
|
|
|
701
742
|
Recruitment reuses a durable identity with separate project assignments. An installed employee workbench,
|
|
702
743
|
API and A2A share the FULI port; existing FULI MCP clients discover and call its tools. Recruitment does not
|
|
703
744
|
start a model or rewrite client settings. See the [employee package and extension contract](docs/employee-agents.md).
|
|
745
|
+
Agents can also grow small [Agent apps](docs/agent-apps.md); in this version an approved app runs
|
|
746
|
+
unsandboxed with your account's permissions, after you confirm it with `fl app approve` in a terminal.
|
|
704
747
|
|
|
705
748
|
Project Agent identities remain control-plane records rather than one resident process per identity.
|
|
706
749
|
Roles now keep versioned, project-private working memory in the same Neo4j Provider. Task entry
|
|
@@ -789,7 +832,9 @@ reuse the same data.
|
|
|
789
832
|
|
|
790
833
|
Fuli installs the `capturing-session-knowledge`, `grilling-project`, `operating-fuli`, and `flreview` Skills for
|
|
791
834
|
supported agents. `/flreview` asks FULI for ranked candidates, then the invoking Agent generates a
|
|
792
|
-
fresh interactive review artifact.
|
|
835
|
+
fresh interactive review artifact. Codex rejects custom slash commands before any hook runs, so there the person
|
|
836
|
+
types `fuli review` (or `flreview`) on its own line; the Codex prompt hook passes that exact line to the model with
|
|
837
|
+
the installed Skill named, and in a session where FULI is off it answers the line itself without starting a review. FULI remains the durable source of truth and write surface; no
|
|
793
838
|
permanent review tab or one-question-at-a-time chat flow is required.
|
|
794
839
|
`operating-fuli` makes Agents inspect the structured interface-parity catalog before changing data,
|
|
795
840
|
verify writes through matching read tools, and treat browser automation as visual verification only.
|
package/README.zh-CN.md
CHANGED
|
@@ -292,7 +292,33 @@ Code、Codex 和 Cursor 生命周期适配器。已加载、获信任的入口 H
|
|
|
292
292
|
`capture_candidates`;否则使用 `retain_nothing`。Prompt fallback Agent 遵守相同判断标准,并
|
|
293
293
|
通过 `capture_session_knowledge` 写入。写个人偏好时设置正确的 `profileAspect` 和稳定的
|
|
294
294
|
`attributes.preferenceKey`;写项目事实时不设置 `profileAspect`。如果“设置”中的自动沉淀已
|
|
295
|
-
|
|
295
|
+
关闭,自动写入会返回 `capture_disabled`,不会产生任何类别的条目:会话原文、checkpoint、知识和
|
|
296
|
+
偏好候选、知识使用记录、查看记录,以及经由 Agent 上报的反馈或纠正都会停止。记录设置读取失败时
|
|
297
|
+
自动写入同样停止(`reason: policy_unavailable`)。你在 FULI 控制台里明确提交的修改和显式的
|
|
298
|
+
`新项目:` 仍会保存,查询已有知识不受影响。关闭期间写下的会话轮次只留一条不含内容的跳过标记,重新打开后
|
|
299
|
+
也不会补记。
|
|
300
|
+
|
|
301
|
+
记录范围还可以按项目选择。`projectMode` 为 `all`(默认)、`all_except`(配合
|
|
302
|
+
`excludedProjectIds`)或 `selected`(配合 `selectedProjectIds`);`unregisteredDirectories`
|
|
303
|
+
决定没有登记为 FULI 项目的目录记不记(`selected` 下默认 `skip`,其余默认 `capture`)。目录按
|
|
304
|
+
任务入口相同的规则解析为项目,所以同一仓库的 worktree 就是同一个项目。未开启的项目返回
|
|
305
|
+
`reason: project_off`,未登记目录返回 `project_unregistered`,每轮任务回执末尾都会写明原因以及
|
|
306
|
+
明确提交的修改仍会保存,例如「此项目未开启记忆;你明确提交的修改仍会保存」。关闭某个项目不会隐藏或删除它已有的记录,`projectsOffSince` 记下它从何时
|
|
307
|
+
停止记录。Agent 用 `get_capture_policy` 读取(传 `projectPath` 可得知当前项目是否记录),用
|
|
308
|
+
`update_capture_policy` 修改前必须先复述改动并得到用户确认;设置页使用 `PATCH /api/capture-policy`。
|
|
309
|
+
在会话里说「这次别记」只暂停这一个会话、立即生效、无需确认:Agent 只带 `sessionPaused: true` 和当前
|
|
310
|
+
`taskContextToken` 调用 `update_capture_policy`,此后本会话每轮回执都写「本会话已暂停记录(自 HH:mm 起)」
|
|
311
|
+
(`reason: session_paused`)。之前的记录保留,该会话派出的 worker 一并暂停;说「继续记」(`sessionPaused: false`)
|
|
312
|
+
从此恢复,暂停期间的内容不会补记。暂停状态存在本地运行目录,会话结束即失效。
|
|
313
|
+
|
|
314
|
+
要让某个会话整体停用 FULI,由用户自己输入 `/fuli stop`(Claude Code 和 Cursor,setup 会安装 `fuli` 命令 Skill)
|
|
315
|
+
或 `fuli stop`(所有客户端;Codex 不支持自定义斜杠命令)。这一行由提示词 Hook 直接答复,模型看不到:此后该会话不再注入
|
|
316
|
+
记忆、偏好和召回,其 Agent 自己发起的 FULI 读取(搜索、Agent 记忆、对话)也被拒绝,不再自动记录,也不再自动发起协作(worker、借调、其他 Agent、角色任务);其他会话、本地服务和已有记忆不变。
|
|
317
|
+
`fuli start` 在现有设置内重新启用(暂停或更严格的全局、客户端、项目设置照样生效),`fuli restart` 还会让下一轮重新拿到完整
|
|
318
|
+
上下文,`fuli status` 显示本会话和默认设置;停用期间的对话不会补录。已发给模型的上下文无法撤回,需要完全隔离请新开会话。
|
|
319
|
+
只有任务令牌能说明一次工具调用属于哪个会话(Claude Code 的工具连接跨 /clear 保留,Codex、Cursor 的连接不带会话),所以某个客户端有任一会话停用期间,它不带任务令牌的工具调用一律拒绝,不把记忆提供给可能正是已停用的那个会话。Agent 传入手上已有的 `taskContextToken`(入口、搜索和团队类读取都接受),其他窗口照常工作。
|
|
320
|
+
在客户端启动的 shell 里也可以运行同一开关(`!fuli session stop`),因此能运行 shell 的 Agent 也能改它(与能读写本地文件同等信任);控制台和 `fuli mcp --call` 仍可为你读取;`fuli session default off` 让新会话默认不启用、
|
|
321
|
+
需显式启用,已打开的会话保持原状。
|
|
296
322
|
|
|
297
323
|
本地可先运行下面两个契约测试,验证 README 说明和项目路径解析仍与实现一致:
|
|
298
324
|
|
|
@@ -378,7 +404,7 @@ sequenceDiagram
|
|
|
378
404
|
环境变量名,例如先执行 `export PROJECT_KB_TOKEN='...'`,再执行 `fl restart`。
|
|
379
405
|
3. 打开 `http://127.0.0.1:2727/connections`,在“外部知识库”中填写连接名称、连接器、
|
|
380
406
|
绑定项目(可多选)和检索模式。
|
|
381
|
-
4. MCP HTTP
|
|
407
|
+
4. MCP HTTP 填写最终端点 URL(不跟随跨源重定向)和可选的令牌环境变量名;MCP stdio 填写命令与参数;Notion
|
|
382
408
|
填写令牌环境变量名以及 Page IDs 或 Data Source IDs;飞书 / Lark 填写令牌环境变量名、
|
|
383
409
|
区域和明确的 Space ID、根节点 Token 或 Node Tokens;RAG Retrieval API 填写 Dify 兼容
|
|
384
410
|
端点、知识库 ID 和可选令牌环境变量名;自定义连接器填写受信任本地 ESM 模块与来源 JSON。
|
|
@@ -606,6 +632,7 @@ Jefa(项目经理)、Bole(AR,Agent Resources)和 Tonborg(决策员
|
|
|
606
632
|
“Agents → 聘请 Agent”提供其他可复用的员工模板。招募复用持久身份,
|
|
607
633
|
按项目单独任职;安装员工包后,侧栏工作台与 API/A2A 共用 FULI 端口,已有 FULI MCP 可发现和调用员工工具。
|
|
608
634
|
招募不等于启动模型,也不改写已有客户端配置。详见[员工包安装与扩展协议](docs/employee-agents.md)。
|
|
635
|
+
Agent 还可以自己做小的 [Agent 应用](docs/agent-apps.md);本版本没有沙箱,经你在终端用 `fl app approve` 确认后,应用以你的账户权限运行。
|
|
609
636
|
|
|
610
637
|
Project Agent 身份仍是控制面记录,不会每个身份常驻一个进程。角色工作记忆按项目私有、
|
|
611
638
|
版本化地保存在同一个 Neo4j Provider 中;任务入口恢复唯一负责人,结束检查跨 MCP 进程持久化。
|
|
@@ -681,7 +708,8 @@ npm uninstall --global fuli-context
|
|
|
681
708
|
## Agent 接入与主要工具
|
|
682
709
|
|
|
683
710
|
Fuli 为支持的 Agent 安装 `capturing-session-knowledge`、`grilling-project`、`operating-fuli` 和 `flreview`
|
|
684
|
-
Skills。输入 `/flreview`
|
|
711
|
+
Skills。输入 `/flreview` 后可选择全部、个人偏好或个人项目(Codex 在 Hook 运行前就拒绝自定义斜杠命令,
|
|
712
|
+
请单独一行输入 `fuli review` 或 `flreview`:Codex 提示词 Hook 会把这一行连同已安装 Skill 的名称交给模型;本会话停用 FULI 时由 Hook 直接答复,不开始复核);若用户表示完全没耐心,流程会
|
|
685
713
|
跳过心情、时间和 token 询问,只处理少量最高优先级问题。Fuli setup 为 Claude Code 生成
|
|
686
714
|
`UserPromptSubmit`/`Stop` MCP Hook,为 Codex 生成 `UserPromptSubmit` MCP Hook 和本地 `Stop`
|
|
687
715
|
命令,为 Cursor 生成 `sessionStart`/`beforeSubmitPrompt`/`stop` Hook。Codex bootstrap 和 Cursor
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e,C as t,D as n,Dt as r,J as i,M as a,Mt as o,X as s,b as c,gt as l,k as u,kt as d,s as f,t as p,w as m}from"./_plugin-vue_export-helper-Crd8aFkh.js";import{t as h}from"./fuli-logo-Bu9WBuQe.js";var g={class:`about-section-heading`},ee=[`id`],_=p(a({__name:`AboutSectionHeading`,props:{titleId:{},title:{},description:{}},setup(e){return(t,r)=>(i(),n(`header`,g,[m(`h2`,{id:e.titleId},o(e.title),9,ee),m(`p`,null,o(e.description),1)]))}}),[[`__scopeId`,`data-v-99ca5811`]]),v=[`aria-label`],y={class:`label-dimension-strip`},b=[`data-dimension`],x={class:`label-guide-sheet`},S={class:`label-guide-section profile-guide`},C={class:`label-definition-list`},w=[`data-kind`],T={class:`label-guide-section quadrant-guide`},E={class:`quadrant-explainer`},D={class:`quadrant-y-axis`,"aria-hidden":`true`},O=[`aria-label`],k=[`data-quadrant`],A={class:`quadrant-x-axis`,"aria-hidden":`true`},j={class:`quadrant-notes`},M={class:`label-guide-section confirmation-guide`},N={class:`status-table-wrap`},P={class:`status-definition-table`},F={scope:`col`},I={scope:`col`},L={scope:`col`},R={scope:`row`},z=[`data-status`],B=[`data-label`],V=[`data-label`],H={class:`status-boundaries`},U={class:`label-example`},W={class:`label-example-tags`,"aria-hidden":`true`},te={class:`label-token profile-token`,"data-kind":`taste`},G={class:`label-token origin-token`},K={class:`label-token status-token`,"data-status":`confirmed`},q={class:`label-all-note`},J=p(a({__name:`LabelGuide`,setup(e){let a=t(()=>[{key:`profile`,title:f(`about.dimensions.profile.title`),question:f(`about.dimensions.profile.question`),timing:f(`about.dimensions.profile.timing`)},{key:`origin`,title:f(`about.dimensions.origin.title`),question:f(`about.dimensions.origin.question`),timing:f(`about.dimensions.origin.timing`)},{key:`confirmation`,title:f(`about.dimensions.confirmation.title`),question:f(`about.dimensions.confirmation.question`),timing:f(`about.dimensions.confirmation.timing`)}]),l=t(()=>[{key:`taste`,label:f(`about.profiles.taste.label`),short:f(`about.profiles.taste.short`),description:f(`about.profiles.taste.description`)},{key:`personality`,label:f(`about.profiles.personality.label`),short:f(`about.profiles.personality.short`),description:f(`about.profiles.personality.description`)},{key:`judgment`,label:f(`about.profiles.judgment.label`),short:f(`about.profiles.judgment.short`),description:f(`about.profiles.judgment.description`)}]),d=t(()=>[{key:`known-unknown`,label:f(`about.quadrants.knownUnknown.label`),coordinate:f(`about.quadrants.knownUnknown.coordinate`),description:f(`about.quadrants.knownUnknown.description`)},{key:`known-known`,label:f(`about.quadrants.knownKnown.label`),coordinate:f(`about.quadrants.knownKnown.coordinate`),description:f(`about.quadrants.knownKnown.description`)},{key:`unknown-unknown`,label:f(`about.quadrants.unknownUnknown.label`),coordinate:f(`about.quadrants.unknownUnknown.coordinate`),description:f(`about.quadrants.unknownUnknown.description`)},{key:`unknown-known`,label:f(`about.quadrants.unknownKnown.label`),coordinate:f(`about.quadrants.unknownKnown.coordinate`),description:f(`about.quadrants.unknownKnown.description`)}]),p=t(()=>[{key:`pending`,label:f(`about.statuses.pending.label`),description:f(`about.statuses.pending.description`),rule:f(`about.statuses.pending.rule`)},{key:`agent-confirmed`,label:f(`about.statuses.agentConfirmed.label`),description:f(`about.statuses.agentConfirmed.description`),rule:f(`about.statuses.agentConfirmed.rule`)},{key:`confirmed`,label:f(`about.statuses.confirmed.label`),description:f(`about.statuses.confirmed.description`),rule:f(`about.statuses.confirmed.rule`)}]);return(e,t)=>(i(),n(`section`,{class:`label-guide`,"aria-label":r(f)(`about.labelsAria`)},[m(`div`,y,[(i(!0),n(c,null,s(a.value,e=>(i(),n(`article`,{key:e.key,"data-dimension":e.key},[t[0]||=m(`i`,{"aria-hidden":`true`},null,-1),m(`dl`,null,[m(`dt`,null,o(e.title),1),m(`dd`,null,[u(o(e.question)+` `,1),m(`small`,null,o(e.timing),1)])])],8,b))),128))]),m(`div`,x,[m(`section`,S,[m(`header`,null,[m(`span`,null,o(r(f)(`about.sections.profile.index`)),1),m(`div`,null,[m(`h3`,null,o(r(f)(`about.sections.profile.title`)),1),m(`p`,null,o(r(f)(`about.sections.profile.meta`)),1)])]),m(`dl`,C,[(i(!0),n(c,null,s(l.value,e=>(i(),n(`div`,{key:e.key,class:`label-definition-row`},[m(`dt`,null,[m(`span`,{class:`label-token profile-token`,"data-kind":e.key},o(e.label),9,w)]),m(`dd`,null,[m(`strong`,null,o(e.short),1),m(`p`,null,o(e.description),1)])]))),128))])]),m(`section`,T,[m(`header`,null,[m(`span`,null,o(r(f)(`about.sections.origin.index`)),1),m(`div`,null,[m(`h3`,null,o(r(f)(`about.sections.origin.title`)),1),m(`p`,null,o(r(f)(`about.sections.origin.meta`)),1)])]),m(`div`,E,[m(`div`,D,[m(`span`,null,o(r(f)(`about.quadrants.aware`)),1),m(`strong`,null,o(r(f)(`about.quadrants.awareness`)),1),m(`span`,null,o(r(f)(`about.quadrants.unaware`)),1)]),m(`div`,{class:`quadrant-grid`,role:`group`,"aria-label":r(f)(`about.sections.origin.title`)},[(i(!0),n(c,null,s(d.value,e=>(i(),n(`article`,{key:e.key,"data-quadrant":e.key},[m(`span`,null,o(e.coordinate),1),m(`strong`,null,o(e.label),1),m(`p`,null,o(e.description),1)],8,k))),128))],8,O),m(`div`,A,[m(`span`,null,o(r(f)(`about.quadrants.unmastered`)),1),m(`strong`,null,o(r(f)(`about.quadrants.mastery`)),1),m(`span`,null,o(r(f)(`about.quadrants.mastered`)),1)]),m(`div`,j,[m(`p`,null,o(r(f)(`about.quadrants.immutable`)),1),m(`p`,null,o(r(f)(`about.quadrants.unclassified`)),1)])])]),m(`section`,M,[m(`header`,null,[m(`span`,null,o(r(f)(`about.sections.confirmation.index`)),1),m(`div`,null,[m(`h3`,null,o(r(f)(`about.sections.confirmation.title`)),1),m(`p`,null,o(r(f)(`about.sections.confirmation.meta`)),1)])]),m(`div`,N,[m(`table`,P,[m(`thead`,null,[m(`tr`,null,[m(`th`,F,o(r(f)(`about.sections.confirmation.title`)),1),m(`th`,I,o(r(f)(`about.statuses.descriptionHeader`)),1),m(`th`,L,o(r(f)(`about.statuses.entryCondition`)),1)])]),m(`tbody`,null,[(i(!0),n(c,null,s(p.value,e=>(i(),n(`tr`,{key:e.key,class:`status-definition-row`},[m(`th`,R,[m(`span`,{class:`label-token status-token`,"data-status":e.key},o(e.label),9,z)]),m(`td`,{"data-label":r(f)(`about.statuses.descriptionHeader`)},o(e.description),9,B),m(`td`,{"data-label":r(f)(`about.statuses.entryCondition`)},[m(`strong`,null,o(e.rule),1)],8,V)]))),128))])]),m(`div`,H,[m(`p`,null,o(r(f)(`about.statuses.usageBoundary`)),1),m(`p`,null,o(r(f)(`about.statuses.resetBoundary`)),1)])])]),m(`section`,U,[m(`div`,null,[m(`span`,null,o(r(f)(`about.example.title`)),1),m(`strong`,null,o(r(f)(`about.example.item`)),1)]),m(`div`,W,[m(`span`,te,o(r(f)(`about.example.profile`)),1),m(`span`,G,o(r(f)(`about.example.origin`)),1),m(`span`,K,o(r(f)(`about.example.status`)),1)]),m(`p`,null,o(r(f)(`about.example.description`)),1)]),m(`p`,q,o(r(f)(`about.allFilter`)),1)])],8,v))}}),[[`__scopeId`,`data-v-e657da2b`]]),Y={class:`open-source-credits`,"aria-labelledby":`credits-title`},X={class:`credit-grid`},Z=[`href`,`data-credit`],Q=[`src`,`onError`],ne={key:1,"aria-hidden":`true`},re={class:`credit-copy`},ie=[`title`],ae={class:`credit-source-note`},oe={class:`fuli-finale`},se={class:`finale-logo-plate`},ce=[`src`],le={class:`finale-brand`},ue={class:`finale-site-link`,"data-testid":`about-website-link`,href:`https://xn--8ovp9s.xn--m8txu.com/fuli/`,target:`_blank`,rel:`noreferrer`},de=p(a({__name:`OpenSourceCredits`,setup(a){let u=l(new Set),p=t(()=>[{name:`Vue.js`,role:f(`about.credits.roles.vue`),url:`https://vuejs.org/`,logo:`https://raw.githubusercontent.com/vuejs/docs/main/src/public/logo.svg`},{name:`Vite`,role:f(`about.credits.roles.vite`),url:`https://vite.dev/`,logo:`https://raw.githubusercontent.com/vitejs/vite/main/docs/public/logo-without-border.svg`},{name:`Pinia`,role:f(`about.credits.roles.pinia`),url:`https://pinia.vuejs.org/`,logo:`https://raw.githubusercontent.com/vuejs/pinia/v4/packages/docs/public/logo.svg`},{name:`D3.js`,role:f(`about.credits.roles.d3`),url:`https://d3js.org/`,logo:`https://raw.githubusercontent.com/d3/d3-logo/master/d3.svg`},{name:`Vitest`,role:f(`about.credits.roles.vitest`),url:`https://vitest.dev/`,logo:`https://raw.githubusercontent.com/vitest-dev/vitest/main/docs/public/logo-without-border.svg`},{name:`Hono`,role:f(`about.credits.roles.hono`),url:`https://hono.dev/`,logo:`https://raw.githubusercontent.com/honojs/website/main/public/images/logo.svg`},{name:`Neo4j`,role:f(`about.credits.roles.neo4j`),url:`https://neo4j.com/`,logo:`https://avatars.githubusercontent.com/u/201120?v=4`},{name:`Zod`,role:f(`about.credits.roles.zod`),url:`https://zod.dev/`,logo:`https://raw.githubusercontent.com/colinhacks/zod/main/packages/docs/public/logo/logo_square.png`},{name:`FastAPI`,role:f(`about.credits.roles.fastapi`),url:`https://fastapi.tiangolo.com/`,logo:`https://raw.githubusercontent.com/fastapi/fastapi/master/docs/en/docs/img/favicon.png`},{name:`Graphiti`,role:f(`about.credits.roles.graphiti`),url:`https://github.com/getzep/graphiti`,logo:`https://avatars.githubusercontent.com/u/132832125?s=128&v=4`},{name:`MCP`,role:f(`about.credits.roles.mcp`),url:`https://modelcontextprotocol.io/`,logo:`https://raw.githubusercontent.com/modelcontextprotocol/docs/main/favicon.svg`}]);return(t,a)=>(i(),n(`section`,Y,[e(_,{"title-id":`credits-title`,title:r(f)(`about.credits.title`),description:r(f)(`about.credits.description`)},null,8,[`title`,`description`]),m(`ul`,X,[(i(!0),n(c,null,s(p.value,e=>(i(),n(`li`,{key:e.name},[m(`a`,{class:`credit-card`,href:e.url,target:`_blank`,rel:`noreferrer`,"data-credit":e.name},[m(`span`,{class:d([`credit-mark`,{"is-fallback":u.has(e.name)}])},[u.has(e.name)?(i(),n(`span`,ne,o(e.name.charAt(0)),1)):(i(),n(`img`,{key:0,src:e.logo,alt:``,loading:`lazy`,referrerpolicy:`no-referrer`,onError:t=>u.add(e.name)},null,40,Q))],2),m(`span`,re,[m(`strong`,{title:e.name},o(e.name),9,ie),m(`small`,null,o(e.role),1)]),a[0]||=m(`span`,{class:`credit-arrow`,"aria-hidden":`true`},`↗`,-1)],8,Z)]))),128))]),m(`p`,ae,o(r(f)(`about.credits.sourceNote`)),1),m(`footer`,oe,[m(`span`,se,[m(`img`,{src:r(h),alt:``,"aria-hidden":`true`},null,8,ce)]),m(`div`,le,[m(`strong`,null,o(r(f)(`common.brand`)),1),a[1]||=m(`span`,null,`Context Graph`,-1)]),m(`p`,null,o(r(f)(`about.credits.finale`)),1),m(`a`,ue,o(r(f)(`about.credits.website`)),1)])]))}}),[[`__scopeId`,`data-v-c9330c37`]]),fe={class:`product-principles`,"aria-labelledby":`principles-title`},pe={class:`principle-sequence`},me={class:`principle-boundaries`},he=[`data-boundary`],ge=p(a({__name:`ProductPrinciples`,setup(a){let l=t(()=>[{key:`capture`,index:f(`about.philosophy.capture.index`),title:f(`about.philosophy.capture.title`),description:f(`about.philosophy.capture.description`)},{key:`project`,index:f(`about.philosophy.project.index`),title:f(`about.philosophy.project.title`),description:f(`about.philosophy.project.description`)},{key:`review`,index:f(`about.philosophy.review.index`),title:f(`about.philosophy.review.title`),description:f(`about.philosophy.review.description`)},{key:`reuse`,index:f(`about.philosophy.reuse.index`),title:f(`about.philosophy.reuse.title`),description:f(`about.philosophy.reuse.description`)}]),u=t(()=>[{key:`local`,title:f(`about.philosophy.local.title`),description:f(`about.philosophy.local.description`)},{key:`authority`,title:f(`about.philosophy.authority.title`),description:f(`about.philosophy.authority.description`)},{key:`scope`,title:f(`about.philosophy.scope.title`),description:f(`about.philosophy.scope.description`)}]);return(t,a)=>(i(),n(`section`,fe,[e(_,{"title-id":`principles-title`,title:r(f)(`about.philosophy.sectionTitle`),description:r(f)(`about.philosophy.support`)},null,8,[`title`,`description`]),m(`div`,pe,[(i(!0),n(c,null,s(l.value,e=>(i(),n(`article`,{key:e.key},[m(`span`,null,o(e.index),1),m(`div`,null,[m(`h3`,null,o(e.title),1),m(`p`,null,o(e.description),1)])]))),128))]),m(`div`,me,[m(`h3`,null,o(r(f)(`about.philosophy.boundariesTitle`)),1),m(`div`,null,[(i(!0),n(c,null,s(u.value,e=>(i(),n(`article`,{key:e.key},[m(`i`,{"data-boundary":e.key,"aria-hidden":`true`},null,8,he),m(`h4`,null,o(e.title),1),m(`p`,null,o(e.description),1)]))),128))])])]))}}),[[`__scopeId`,`data-v-caaf4c60`]]),_e=[`aria-label`],ve={class:`about-content`},ye={class:`about-opening`},be={class:`about-brand-lockup`},$={class:`about-logo-plate`},xe=[`src`],Se={class:`about-brand-name`},Ce={class:`about-opening-claim`},we={class:`about-opening-copy`},Te={class:`about-labels-section`,"aria-labelledby":`about-labels-title`},Ee=p(a({__name:`AboutPage`,setup(t){return(t,a)=>(i(),n(`section`,{class:`view about-view`,"aria-label":r(f)(`about.aria`)},[m(`div`,ve,[m(`header`,ye,[m(`div`,be,[m(`span`,$,[m(`img`,{"data-testid":`about-opening-logo`,src:r(h),alt:``,"aria-hidden":`true`},null,8,xe)]),m(`span`,Se,o(r(f)(`common.brand`)),1)]),m(`p`,Ce,o(r(f)(`about.philosophy.title`)),1),m(`p`,we,o(r(f)(`about.philosophy.intro`)),1)]),e(ge),m(`section`,Te,[e(_,{"title-id":`about-labels-title`,title:r(f)(`about.labelsIntro.title`),description:r(f)(`about.labelsIntro.description`)},null,8,[`title`,`description`]),e(J)]),e(de)])],8,_e))}}),[[`__scopeId`,`data-v-68b5e530`]]);export{Ee as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.about-section-heading[data-v-99ca5811]{border-bottom:1px solid var(--color-border);padding-bottom:24px}.about-section-heading h2[data-v-99ca5811]{color:var(--color-ink);letter-spacing:-.02em;margin:0;font-size:clamp(20px,2.6vw,26px);font-weight:650;line-height:1.25}.about-section-heading p[data-v-99ca5811]{max-width:680px;color:var(--color-muted);margin-top:8px;font-size:14px;line-height:1.65}.label-dimension-strip[data-v-e657da2b]{border-block:1px solid var(--color-border);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.label-dimension-strip article[data-v-e657da2b]{grid-template-columns:22px minmax(0,1fr);gap:11px;min-width:0;padding:16px 18px;display:grid}.label-dimension-strip article+article[data-v-e657da2b]{border-left:1px solid var(--color-border)}.label-dimension-strip i[data-v-e657da2b]{border:1px solid var(--color-border-strong);border-radius:6px;width:22px;height:22px;position:relative}.label-dimension-strip i[data-v-e657da2b]:before,.label-dimension-strip i[data-v-e657da2b]:after{content:"";position:absolute}.label-dimension-strip [data-dimension=profile] i[data-v-e657da2b]:before{border:1.5px solid var(--color-muted);border-radius:50%;inset:5px}.label-dimension-strip [data-dimension=profile] i[data-v-e657da2b]:after{background:var(--color-danger);border-radius:50%;width:4px;height:4px;top:2px;right:2px}.label-dimension-strip [data-dimension=origin] i[data-v-e657da2b]:before{border-right:1px solid var(--color-muted);border-bottom:1px solid var(--color-muted);inset:4px}.label-dimension-strip [data-dimension=origin] i[data-v-e657da2b]:after{background:var(--color-muted);border-radius:50%;width:5px;height:5px;top:4px;right:4px}.label-dimension-strip [data-dimension=confirmation] i[data-v-e657da2b]:before{border-left:2px solid var(--color-muted);border-bottom:2px solid var(--color-muted);width:11px;height:6px;top:5px;left:5px;transform:rotate(-45deg)}.label-dimension-strip dl[data-v-e657da2b],.label-dimension-strip dt[data-v-e657da2b],.label-dimension-strip dd[data-v-e657da2b]{margin:0}.label-dimension-strip dt[data-v-e657da2b]{color:var(--color-ink);font-size:12px;font-weight:680}.label-dimension-strip dd[data-v-e657da2b]{color:var(--color-muted);margin-top:3px;font-size:12px;line-height:1.45}.label-dimension-strip small[data-v-e657da2b]{color:var(--color-muted);margin-top:5px;font-size:12px;line-height:1.4;display:block}.label-guide-sheet[data-v-e657da2b]{gap:42px;margin-top:40px;display:grid}.label-guide-section[data-v-e657da2b]{border-top:1px solid var(--color-border);grid-template-columns:148px minmax(0,1fr);gap:26px;padding-top:28px;display:grid}.label-guide-section>header[data-v-e657da2b]{grid-template-columns:26px minmax(0,1fr);align-content:start;gap:9px;display:grid}.label-guide-section>header>span[data-v-e657da2b]{color:var(--color-accent);letter-spacing:.06em;font-size:12px;font-weight:650}.label-guide-section h3[data-v-e657da2b]{color:var(--color-ink);margin:0;font-size:15px;font-weight:650}.label-guide-section header p[data-v-e657da2b]{color:var(--color-muted);margin-top:5px;font-size:12px;line-height:1.45}.label-definition-list[data-v-e657da2b]{margin:0;display:grid}.label-definition-row[data-v-e657da2b]{grid-template-columns:116px minmax(0,1fr);align-items:start;gap:16px;padding:13px 0;display:grid}.label-definition-row+.label-definition-row[data-v-e657da2b]{border-top:1px solid var(--color-border)}.label-definition-row dt[data-v-e657da2b],.label-definition-row dd[data-v-e657da2b]{margin:0}.label-token[data-v-e657da2b]{--token:var(--color-faint);border:1px solid var(--color-border);border-radius:var(--radius-pill);width:max-content;max-width:100%;height:24px;color:var(--color-ink-soft);background:var(--color-surface);white-space:nowrap;align-items:center;gap:6px;padding:0 10px 0 8px;font-size:12px;font-weight:500;line-height:1;display:inline-flex}.label-token[data-v-e657da2b]:before{background:var(--token);content:"";border-radius:50%;flex:none;width:6px;height:6px}.profile-token[data-kind=taste][data-v-e657da2b]{--token:var(--aspect-taste)}.profile-token[data-kind=personality][data-v-e657da2b]{--token:var(--aspect-personality)}.profile-token[data-kind=judgment][data-v-e657da2b]{--token:var(--aspect-judgment)}.origin-token[data-v-e657da2b]{--token:var(--color-ink-soft)}.status-token[data-status=pending][data-v-e657da2b]{--token:var(--color-warning)}.status-token[data-status=agent-confirmed][data-v-e657da2b]{--token:var(--color-accent-line)}.status-token[data-status=confirmed][data-v-e657da2b]{--token:var(--color-success)}.label-definition-row strong[data-v-e657da2b]{color:var(--color-ink);font-size:13px;font-weight:650}.label-definition-row p[data-v-e657da2b]{color:var(--color-muted);margin-top:5px;font-size:12px;line-height:1.6}.quadrant-explainer[data-v-e657da2b]{grid-template-rows:auto 28px auto;grid-template-columns:36px minmax(0,1fr);display:grid}.quadrant-y-axis[data-v-e657da2b]{color:var(--color-muted);flex-direction:column;grid-row:1;justify-content:space-between;align-items:center;padding:3px 0;font-size:12px;display:flex}.quadrant-y-axis strong[data-v-e657da2b]{color:var(--color-muted);letter-spacing:.08em;text-orientation:upright;writing-mode:vertical-rl;font-size:12px;font-weight:650}.quadrant-grid[data-v-e657da2b]{border:1px solid var(--color-border);border-radius:var(--radius-control);grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:hidden}.quadrant-grid article[data-v-e657da2b]{background:0 0;min-height:108px;padding:13px 15px}.quadrant-grid article[data-v-e657da2b]:nth-child(2n){border-left:1px solid var(--color-border)}.quadrant-grid article[data-v-e657da2b]:nth-child(n+3){border-top:1px solid var(--color-border)}.quadrant-grid span[data-v-e657da2b]{color:var(--color-muted);font-size:12px}.quadrant-grid strong[data-v-e657da2b]{color:var(--color-ink);margin-top:6px;font-size:13px;font-weight:650;display:block}.quadrant-grid p[data-v-e657da2b]{max-width:340px;color:var(--color-muted);margin-top:5px;font-size:12px;line-height:1.5}.quadrant-x-axis[data-v-e657da2b]{color:var(--color-muted);grid-area:2/2;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;font-size:12px;display:grid}.quadrant-x-axis span[data-v-e657da2b]:last-child{text-align:right}.quadrant-x-axis strong[data-v-e657da2b]{color:var(--color-muted);letter-spacing:.08em;font-size:12px;font-weight:650}.quadrant-notes[data-v-e657da2b]{flex-wrap:wrap;grid-area:3/2;gap:6px 20px;padding-top:8px;display:flex}.quadrant-notes p[data-v-e657da2b],.status-boundaries p[data-v-e657da2b]{color:var(--color-muted);font-size:12px;line-height:1.5}.status-table-wrap[data-v-e657da2b]{min-width:0}.status-definition-table[data-v-e657da2b]{border-collapse:collapse;width:100%}.status-definition-table th[data-v-e657da2b],.status-definition-table td[data-v-e657da2b]{border-bottom:1px solid var(--color-border);color:var(--color-muted);text-align:left;vertical-align:top;padding:13px 12px;font-size:12px;line-height:1.55}.status-definition-table thead th[data-v-e657da2b]{color:var(--color-muted);padding-top:0;font-size:12px;font-weight:650}.status-definition-table tbody th[data-v-e657da2b]{padding-left:0}.status-definition-table tbody td[data-v-e657da2b]:last-child{padding-right:0}.status-definition-table td strong[data-v-e657da2b]{color:var(--color-ink);font-size:12px;font-weight:620}.status-boundaries[data-v-e657da2b]{flex-wrap:wrap;gap:6px 20px;padding-top:12px;display:flex}.label-example[data-v-e657da2b]{border-top:1px solid var(--color-border);grid-template-columns:minmax(180px,.8fr) auto minmax(200px,1fr);align-items:center;gap:18px;padding:20px 0 0;display:grid}.label-example>div[data-v-e657da2b]:first-child{gap:4px;display:grid}.label-example>div:first-child span[data-v-e657da2b]{color:var(--color-muted);letter-spacing:.08em;text-transform:uppercase;font-size:12px}.label-example>div:first-child strong[data-v-e657da2b]{color:var(--color-ink);font-size:12px;font-weight:620}.label-example-tags[data-v-e657da2b]{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.label-example>p[data-v-e657da2b]{color:var(--color-muted);font-size:12px;line-height:1.5}.label-all-note[data-v-e657da2b]{color:var(--color-muted);margin:0;font-size:12px;line-height:1.5}@media (width<=720px){.label-dimension-strip[data-v-e657da2b]{grid-template-columns:1fr}.label-dimension-strip article+article[data-v-e657da2b]{border-top:1px solid var(--color-border);border-left:0}.label-guide-sheet[data-v-e657da2b]{gap:34px;margin-top:32px}.label-guide-section[data-v-e657da2b]{grid-template-columns:1fr;gap:16px}.status-definition-table thead[data-v-e657da2b]{display:none}.status-definition-table[data-v-e657da2b],.status-definition-table tbody[data-v-e657da2b],.status-definition-table tr[data-v-e657da2b],.status-definition-table th[data-v-e657da2b],.status-definition-table td[data-v-e657da2b]{display:block}.status-definition-table tbody tr[data-v-e657da2b]{padding:15px 0}.status-definition-table tbody tr+tr[data-v-e657da2b]{border-top:1px solid var(--color-border)}.status-definition-table tbody th[data-v-e657da2b],.status-definition-table tbody td[data-v-e657da2b]{border:0;padding:0}.status-definition-table tbody td[data-v-e657da2b]{margin-top:9px}.status-definition-table tbody td[data-v-e657da2b]:before{color:var(--color-muted);content:attr(data-label);margin-bottom:2px;font-size:12px;font-weight:650;display:block}.label-example[data-v-e657da2b]{grid-template-columns:1fr;gap:12px}.label-example-tags[data-v-e657da2b]{justify-content:flex-start}}.open-source-credits[data-v-c9330c37]{min-width:0}.credit-grid[data-v-c9330c37]{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:24px 0 0;padding:0;list-style:none;display:grid}.credit-grid>li[data-v-c9330c37]{display:flex}.credit-card[data-v-c9330c37]{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);min-height:84px;color:inherit;transition:border-color var(--motion-fast), transform var(--motion-fast) var(--motion-ease);flex:1;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:12px;padding:16px;text-decoration:none;display:grid;position:relative}.credit-card[data-v-c9330c37]:hover{border-color:var(--color-border-strong);transform:translateY(-2px)}.credit-card[data-v-c9330c37]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.credit-mark[data-v-c9330c37]{background:var(--color-surface-subtle);border-radius:12px;place-items:center;width:44px;height:44px;display:grid}.credit-mark img[data-v-c9330c37]{object-fit:contain;width:30px;height:30px}.credit-mark.is-fallback[data-v-c9330c37]{color:var(--color-accent);background:var(--color-accent-soft);font-size:18px;font-weight:700}.credit-copy[data-v-c9330c37]{gap:3px;min-width:0;display:grid}.credit-copy strong[data-v-c9330c37],.credit-copy small[data-v-c9330c37]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.credit-copy strong[data-v-c9330c37]{color:var(--color-ink);font-size:14px;font-weight:650;line-height:1.3}.credit-copy small[data-v-c9330c37]{color:var(--color-muted);font-size:12px;line-height:1.4}.credit-arrow[data-v-c9330c37]{color:var(--color-accent);opacity:0;transition:opacity var(--motion-fast);font-size:13px;position:absolute;top:10px;right:12px}.credit-card:hover .credit-arrow[data-v-c9330c37],.credit-card:focus-visible .credit-arrow[data-v-c9330c37]{opacity:1}.credit-source-note[data-v-c9330c37]{color:var(--color-muted);margin-top:18px;font-size:12px;line-height:1.55}.fuli-finale[data-v-c9330c37]{border-top:1px solid var(--color-border);text-align:center;justify-items:center;gap:16px;margin-top:88px;padding-top:72px;display:grid}.finale-logo-plate[data-v-c9330c37]{background:var(--color-surface-subtle);border-radius:50%;place-items:center;width:72px;height:72px;display:grid}.finale-logo-plate img[data-v-c9330c37]{object-fit:contain;width:50px;height:50px}.finale-brand[data-v-c9330c37]{gap:4px;display:grid}.finale-brand strong[data-v-c9330c37]{color:var(--color-ink);letter-spacing:-.03em;font-size:24px;font-weight:650}.finale-brand span[data-v-c9330c37]{color:var(--color-muted);letter-spacing:.08em;text-transform:uppercase;font-size:12px}.fuli-finale>p[data-v-c9330c37]{max-width:420px;color:var(--color-muted);font-size:14px;line-height:1.65}.finale-site-link[data-v-c9330c37]{border-bottom:1px solid var(--color-accent);color:var(--color-accent);margin-top:4px;padding-bottom:4px;font-size:13px;text-decoration:none}.finale-site-link[data-v-c9330c37]:hover{border-color:var(--color-accent-hover);color:var(--color-accent-hover)}.finale-site-link[data-v-c9330c37]:focus-visible{outline:2px solid var(--color-accent);outline-offset:5px}@media (width<=980px){.credit-grid[data-v-c9330c37]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.credit-card[data-v-c9330c37]:hover{transform:none}}:root[data-motion=reduced] .credit-card[data-v-c9330c37]:hover{transform:none}@media (width<=680px){.credit-grid[data-v-c9330c37]{grid-template-columns:1fr}.credits-heading[data-v-c9330c37]{gap:12px}.fuli-finale[data-v-c9330c37]{margin-top:64px;padding-top:56px}}.product-principles[data-v-caaf4c60]{min-width:0}.principle-sequence[data-v-caaf4c60]{display:grid}.principle-sequence article[data-v-caaf4c60]{border-bottom:1px solid var(--color-border);grid-template-columns:34px minmax(0,1fr);align-content:start;gap:16px;padding:22px 0;display:grid}.principle-sequence article>span[data-v-caaf4c60]{color:var(--color-accent);letter-spacing:.06em;padding-top:3px;font-size:12px;font-weight:650}.principle-sequence h3[data-v-caaf4c60],.principle-boundaries h4[data-v-caaf4c60]{color:var(--color-ink);margin:0;font-size:15px;font-weight:680}.principle-sequence p[data-v-caaf4c60],.principle-boundaries p[data-v-caaf4c60]{color:var(--color-muted);margin-top:9px;font-size:13px;line-height:1.7}.principle-boundaries[data-v-caaf4c60]{padding-top:30px}.principle-boundaries>h3[data-v-caaf4c60]{color:var(--color-ink);margin:0;font-size:14px;font-weight:650}.principle-boundaries>div[data-v-caaf4c60]{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:18px;display:grid}.principle-boundaries article[data-v-caaf4c60]{min-width:0;padding:0 20px}.principle-boundaries article[data-v-caaf4c60]:first-child{padding-left:0}.principle-boundaries article[data-v-caaf4c60]:last-child{padding-right:0}.principle-boundaries article+article[data-v-caaf4c60]{border-left:1px solid var(--color-border)}.principle-boundaries i[data-v-caaf4c60]{border:1.5px solid var(--color-muted);border-radius:50%;width:8px;height:8px;margin-bottom:12px;display:inline-block}.principle-boundaries i[data-boundary=authority][data-v-caaf4c60]{border-radius:2px}.principle-boundaries i[data-boundary=scope][data-v-caaf4c60]{border-radius:1px;transform:rotate(45deg)}@media (width<=680px){.principle-sequence article[data-v-caaf4c60]{gap:12px;padding:20px 0}.principle-boundaries>div[data-v-caaf4c60]{grid-template-columns:1fr;gap:20px}.principle-boundaries article[data-v-caaf4c60]{padding:0}.principle-boundaries article+article[data-v-caaf4c60]{border-top:1px solid var(--color-border);border-left:0;padding-top:20px}}.about-view[data-v-91d4f5d4]{min-height:0;color:var(--color-ink);background:var(--color-bg);flex:auto;padding:clamp(40px,6vw,72px) 28px 96px}.about-content[data-v-91d4f5d4]{gap:72px;width:min(760px,100%);margin:0 auto;display:grid}.about-opening[data-v-91d4f5d4]{border-bottom:1px solid var(--color-border);text-align:center;justify-items:center;gap:20px;padding:8px 0 56px;display:grid}.about-brand-lockup[data-v-91d4f5d4]{justify-items:center;gap:11px;display:grid}.about-logo-plate[data-v-91d4f5d4]{background:var(--color-surface-subtle);border-radius:50%;place-items:center;width:68px;height:68px;display:grid}.about-logo-plate img[data-v-91d4f5d4]{object-fit:contain;width:48px;height:48px}.about-brand-name[data-v-91d4f5d4]{color:var(--color-ink);letter-spacing:-.02em;font-size:18px;font-weight:700}.about-opening-claim[data-v-91d4f5d4]{max-width:660px;color:var(--color-ink);letter-spacing:-.035em;text-wrap:balance;font-size:clamp(26px,4.2vw,36px);font-weight:650;line-height:1.18}.about-opening-copy[data-v-91d4f5d4]{max-width:620px;color:var(--color-muted);font-size:15px;line-height:1.8}.about-labels-section[data-v-91d4f5d4]{gap:32px;display:grid}@media (width<=680px){.about-view[data-v-91d4f5d4]{padding:32px 20px 64px}.about-content[data-v-91d4f5d4]{gap:56px}.about-opening[data-v-91d4f5d4]{padding-bottom:44px}.about-opening-copy[data-v-91d4f5d4]{font-size:14px}}
|
|
1
|
+
.about-section-heading[data-v-99ca5811]{border-bottom:1px solid var(--color-border);padding-bottom:24px}.about-section-heading h2[data-v-99ca5811]{color:var(--color-ink);letter-spacing:-.02em;margin:0;font-size:clamp(20px,2.6vw,26px);font-weight:650;line-height:1.25}.about-section-heading p[data-v-99ca5811]{max-width:680px;color:var(--color-muted);margin-top:8px;font-size:14px;line-height:1.65}.label-dimension-strip[data-v-e657da2b]{border-block:1px solid var(--color-border);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.label-dimension-strip article[data-v-e657da2b]{grid-template-columns:22px minmax(0,1fr);gap:11px;min-width:0;padding:16px 18px;display:grid}.label-dimension-strip article+article[data-v-e657da2b]{border-left:1px solid var(--color-border)}.label-dimension-strip i[data-v-e657da2b]{border:1px solid var(--color-border-strong);border-radius:6px;width:22px;height:22px;position:relative}.label-dimension-strip i[data-v-e657da2b]:before,.label-dimension-strip i[data-v-e657da2b]:after{content:"";position:absolute}.label-dimension-strip [data-dimension=profile] i[data-v-e657da2b]:before{border:1.5px solid var(--color-muted);border-radius:50%;inset:5px}.label-dimension-strip [data-dimension=profile] i[data-v-e657da2b]:after{background:var(--color-danger);border-radius:50%;width:4px;height:4px;top:2px;right:2px}.label-dimension-strip [data-dimension=origin] i[data-v-e657da2b]:before{border-right:1px solid var(--color-muted);border-bottom:1px solid var(--color-muted);inset:4px}.label-dimension-strip [data-dimension=origin] i[data-v-e657da2b]:after{background:var(--color-muted);border-radius:50%;width:5px;height:5px;top:4px;right:4px}.label-dimension-strip [data-dimension=confirmation] i[data-v-e657da2b]:before{border-left:2px solid var(--color-muted);border-bottom:2px solid var(--color-muted);width:11px;height:6px;top:5px;left:5px;transform:rotate(-45deg)}.label-dimension-strip dl[data-v-e657da2b],.label-dimension-strip dt[data-v-e657da2b],.label-dimension-strip dd[data-v-e657da2b]{margin:0}.label-dimension-strip dt[data-v-e657da2b]{color:var(--color-ink);font-size:12px;font-weight:680}.label-dimension-strip dd[data-v-e657da2b]{color:var(--color-muted);margin-top:3px;font-size:12px;line-height:1.45}.label-dimension-strip small[data-v-e657da2b]{color:var(--color-muted);margin-top:5px;font-size:12px;line-height:1.4;display:block}.label-guide-sheet[data-v-e657da2b]{gap:42px;margin-top:40px;display:grid}.label-guide-section[data-v-e657da2b]{border-top:1px solid var(--color-border);grid-template-columns:148px minmax(0,1fr);gap:26px;padding-top:28px;display:grid}.label-guide-section>header[data-v-e657da2b]{grid-template-columns:26px minmax(0,1fr);align-content:start;gap:9px;display:grid}.label-guide-section>header>span[data-v-e657da2b]{color:var(--color-accent);letter-spacing:.06em;font-size:12px;font-weight:650}.label-guide-section h3[data-v-e657da2b]{color:var(--color-ink);margin:0;font-size:15px;font-weight:650}.label-guide-section header p[data-v-e657da2b]{color:var(--color-muted);margin-top:5px;font-size:12px;line-height:1.45}.label-definition-list[data-v-e657da2b]{margin:0;display:grid}.label-definition-row[data-v-e657da2b]{grid-template-columns:116px minmax(0,1fr);align-items:start;gap:16px;padding:13px 0;display:grid}.label-definition-row+.label-definition-row[data-v-e657da2b]{border-top:1px solid var(--color-border)}.label-definition-row dt[data-v-e657da2b],.label-definition-row dd[data-v-e657da2b]{margin:0}.label-token[data-v-e657da2b]{--token:var(--color-faint);border:1px solid var(--color-border);border-radius:var(--radius-pill);width:max-content;max-width:100%;height:24px;color:var(--color-ink-soft);background:var(--color-surface);white-space:nowrap;align-items:center;gap:6px;padding:0 10px 0 8px;font-size:12px;font-weight:500;line-height:1;display:inline-flex}.label-token[data-v-e657da2b]:before{background:var(--token);content:"";border-radius:50%;flex:none;width:6px;height:6px}.profile-token[data-kind=taste][data-v-e657da2b]{--token:var(--aspect-taste)}.profile-token[data-kind=personality][data-v-e657da2b]{--token:var(--aspect-personality)}.profile-token[data-kind=judgment][data-v-e657da2b]{--token:var(--aspect-judgment)}.origin-token[data-v-e657da2b]{--token:var(--color-ink-soft)}.status-token[data-status=pending][data-v-e657da2b]{--token:var(--color-warning)}.status-token[data-status=agent-confirmed][data-v-e657da2b]{--token:var(--color-accent-line)}.status-token[data-status=confirmed][data-v-e657da2b]{--token:var(--color-success)}.label-definition-row strong[data-v-e657da2b]{color:var(--color-ink);font-size:13px;font-weight:650}.label-definition-row p[data-v-e657da2b]{color:var(--color-muted);margin-top:5px;font-size:12px;line-height:1.6}.quadrant-explainer[data-v-e657da2b]{grid-template-rows:auto 28px auto;grid-template-columns:36px minmax(0,1fr);display:grid}.quadrant-y-axis[data-v-e657da2b]{color:var(--color-muted);flex-direction:column;grid-row:1;justify-content:space-between;align-items:center;padding:3px 0;font-size:12px;display:flex}.quadrant-y-axis strong[data-v-e657da2b]{color:var(--color-muted);letter-spacing:.08em;text-orientation:upright;writing-mode:vertical-rl;font-size:12px;font-weight:650}.quadrant-grid[data-v-e657da2b]{border:1px solid var(--color-border);border-radius:var(--radius-control);grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:hidden}.quadrant-grid article[data-v-e657da2b]{background:0 0;min-height:108px;padding:13px 15px}.quadrant-grid article[data-v-e657da2b]:nth-child(2n){border-left:1px solid var(--color-border)}.quadrant-grid article[data-v-e657da2b]:nth-child(n+3){border-top:1px solid var(--color-border)}.quadrant-grid span[data-v-e657da2b]{color:var(--color-muted);font-size:12px}.quadrant-grid strong[data-v-e657da2b]{color:var(--color-ink);margin-top:6px;font-size:13px;font-weight:650;display:block}.quadrant-grid p[data-v-e657da2b]{max-width:340px;color:var(--color-muted);margin-top:5px;font-size:12px;line-height:1.5}.quadrant-x-axis[data-v-e657da2b]{color:var(--color-muted);grid-area:2/2;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;font-size:12px;display:grid}.quadrant-x-axis span[data-v-e657da2b]:last-child{text-align:right}.quadrant-x-axis strong[data-v-e657da2b]{color:var(--color-muted);letter-spacing:.08em;font-size:12px;font-weight:650}.quadrant-notes[data-v-e657da2b]{flex-wrap:wrap;grid-area:3/2;gap:6px 20px;padding-top:8px;display:flex}.quadrant-notes p[data-v-e657da2b],.status-boundaries p[data-v-e657da2b]{color:var(--color-muted);font-size:12px;line-height:1.5}.status-table-wrap[data-v-e657da2b]{min-width:0}.status-definition-table[data-v-e657da2b]{border-collapse:collapse;width:100%}.status-definition-table th[data-v-e657da2b],.status-definition-table td[data-v-e657da2b]{border-bottom:1px solid var(--color-border);color:var(--color-muted);text-align:left;vertical-align:top;padding:13px 12px;font-size:12px;line-height:1.55}.status-definition-table thead th[data-v-e657da2b]{color:var(--color-muted);padding-top:0;font-size:12px;font-weight:650}.status-definition-table tbody th[data-v-e657da2b]{padding-left:0}.status-definition-table tbody td[data-v-e657da2b]:last-child{padding-right:0}.status-definition-table td strong[data-v-e657da2b]{color:var(--color-ink);font-size:12px;font-weight:620}.status-boundaries[data-v-e657da2b]{flex-wrap:wrap;gap:6px 20px;padding-top:12px;display:flex}.label-example[data-v-e657da2b]{border-top:1px solid var(--color-border);grid-template-columns:minmax(180px,.8fr) auto minmax(200px,1fr);align-items:center;gap:18px;padding:20px 0 0;display:grid}.label-example>div[data-v-e657da2b]:first-child{gap:4px;display:grid}.label-example>div:first-child span[data-v-e657da2b]{color:var(--color-muted);letter-spacing:.08em;text-transform:uppercase;font-size:12px}.label-example>div:first-child strong[data-v-e657da2b]{color:var(--color-ink);font-size:12px;font-weight:620}.label-example-tags[data-v-e657da2b]{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.label-example>p[data-v-e657da2b]{color:var(--color-muted);font-size:12px;line-height:1.5}.label-all-note[data-v-e657da2b]{color:var(--color-muted);margin:0;font-size:12px;line-height:1.5}@media (width<=720px){.label-dimension-strip[data-v-e657da2b]{grid-template-columns:1fr}.label-dimension-strip article+article[data-v-e657da2b]{border-top:1px solid var(--color-border);border-left:0}.label-guide-sheet[data-v-e657da2b]{gap:34px;margin-top:32px}.label-guide-section[data-v-e657da2b]{grid-template-columns:1fr;gap:16px}.status-definition-table thead[data-v-e657da2b]{display:none}.status-definition-table[data-v-e657da2b],.status-definition-table tbody[data-v-e657da2b],.status-definition-table tr[data-v-e657da2b],.status-definition-table th[data-v-e657da2b],.status-definition-table td[data-v-e657da2b]{display:block}.status-definition-table tbody tr[data-v-e657da2b]{padding:15px 0}.status-definition-table tbody tr+tr[data-v-e657da2b]{border-top:1px solid var(--color-border)}.status-definition-table tbody th[data-v-e657da2b],.status-definition-table tbody td[data-v-e657da2b]{border:0;padding:0}.status-definition-table tbody td[data-v-e657da2b]{margin-top:9px}.status-definition-table tbody td[data-v-e657da2b]:before{color:var(--color-muted);content:attr(data-label);margin-bottom:2px;font-size:12px;font-weight:650;display:block}.label-example[data-v-e657da2b]{grid-template-columns:1fr;gap:12px}.label-example-tags[data-v-e657da2b]{justify-content:flex-start}}.open-source-credits[data-v-c9330c37]{min-width:0}.credit-grid[data-v-c9330c37]{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:24px 0 0;padding:0;list-style:none;display:grid}.credit-grid>li[data-v-c9330c37]{display:flex}.credit-card[data-v-c9330c37]{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);min-height:84px;color:inherit;transition:border-color var(--motion-fast), transform var(--motion-fast) var(--motion-ease);flex:1;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:12px;padding:16px;text-decoration:none;display:grid;position:relative}.credit-card[data-v-c9330c37]:hover{border-color:var(--color-border-strong);transform:translateY(-2px)}.credit-card[data-v-c9330c37]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.credit-mark[data-v-c9330c37]{background:var(--color-surface-subtle);border-radius:12px;place-items:center;width:44px;height:44px;display:grid}.credit-mark img[data-v-c9330c37]{object-fit:contain;width:30px;height:30px}.credit-mark.is-fallback[data-v-c9330c37]{color:var(--color-accent);background:var(--color-accent-soft);font-size:18px;font-weight:700}.credit-copy[data-v-c9330c37]{gap:3px;min-width:0;display:grid}.credit-copy strong[data-v-c9330c37],.credit-copy small[data-v-c9330c37]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.credit-copy strong[data-v-c9330c37]{color:var(--color-ink);font-size:14px;font-weight:650;line-height:1.3}.credit-copy small[data-v-c9330c37]{color:var(--color-muted);font-size:12px;line-height:1.4}.credit-arrow[data-v-c9330c37]{color:var(--color-accent);opacity:0;transition:opacity var(--motion-fast);font-size:13px;position:absolute;top:10px;right:12px}.credit-card:hover .credit-arrow[data-v-c9330c37],.credit-card:focus-visible .credit-arrow[data-v-c9330c37]{opacity:1}.credit-source-note[data-v-c9330c37]{color:var(--color-muted);margin-top:18px;font-size:12px;line-height:1.55}.fuli-finale[data-v-c9330c37]{border-top:1px solid var(--color-border);text-align:center;justify-items:center;gap:16px;margin-top:88px;padding-top:72px;display:grid}.finale-logo-plate[data-v-c9330c37]{background:var(--color-surface-subtle);border-radius:50%;place-items:center;width:72px;height:72px;display:grid}.finale-logo-plate img[data-v-c9330c37]{object-fit:contain;width:50px;height:50px}.finale-brand[data-v-c9330c37]{gap:4px;display:grid}.finale-brand strong[data-v-c9330c37]{color:var(--color-ink);letter-spacing:-.03em;font-size:24px;font-weight:650}.finale-brand span[data-v-c9330c37]{color:var(--color-muted);letter-spacing:.08em;text-transform:uppercase;font-size:12px}.fuli-finale>p[data-v-c9330c37]{max-width:420px;color:var(--color-muted);font-size:14px;line-height:1.65}.finale-site-link[data-v-c9330c37]{border-bottom:1px solid var(--color-accent);color:var(--color-accent);margin-top:4px;padding-bottom:4px;font-size:13px;text-decoration:none}.finale-site-link[data-v-c9330c37]:hover{border-color:var(--color-accent-hover);color:var(--color-accent-hover)}.finale-site-link[data-v-c9330c37]:focus-visible{outline:2px solid var(--color-accent);outline-offset:5px}@media (width<=980px){.credit-grid[data-v-c9330c37]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.credit-card[data-v-c9330c37]:hover{transform:none}}:root[data-motion=reduced] .credit-card[data-v-c9330c37]:hover{transform:none}@media (width<=680px){.credit-grid[data-v-c9330c37]{grid-template-columns:1fr}.credits-heading[data-v-c9330c37]{gap:12px}.fuli-finale[data-v-c9330c37]{margin-top:64px;padding-top:56px}}.product-principles[data-v-caaf4c60]{min-width:0}.principle-sequence[data-v-caaf4c60]{display:grid}.principle-sequence article[data-v-caaf4c60]{border-bottom:1px solid var(--color-border);grid-template-columns:34px minmax(0,1fr);align-content:start;gap:16px;padding:22px 0;display:grid}.principle-sequence article>span[data-v-caaf4c60]{color:var(--color-accent);letter-spacing:.06em;padding-top:3px;font-size:12px;font-weight:650}.principle-sequence h3[data-v-caaf4c60],.principle-boundaries h4[data-v-caaf4c60]{color:var(--color-ink);margin:0;font-size:15px;font-weight:680}.principle-sequence p[data-v-caaf4c60],.principle-boundaries p[data-v-caaf4c60]{color:var(--color-muted);margin-top:9px;font-size:13px;line-height:1.7}.principle-boundaries[data-v-caaf4c60]{padding-top:30px}.principle-boundaries>h3[data-v-caaf4c60]{color:var(--color-ink);margin:0;font-size:14px;font-weight:650}.principle-boundaries>div[data-v-caaf4c60]{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:18px;display:grid}.principle-boundaries article[data-v-caaf4c60]{min-width:0;padding:0 20px}.principle-boundaries article[data-v-caaf4c60]:first-child{padding-left:0}.principle-boundaries article[data-v-caaf4c60]:last-child{padding-right:0}.principle-boundaries article+article[data-v-caaf4c60]{border-left:1px solid var(--color-border)}.principle-boundaries i[data-v-caaf4c60]{border:1.5px solid var(--color-muted);border-radius:50%;width:8px;height:8px;margin-bottom:12px;display:inline-block}.principle-boundaries i[data-boundary=authority][data-v-caaf4c60]{border-radius:2px}.principle-boundaries i[data-boundary=scope][data-v-caaf4c60]{border-radius:1px;transform:rotate(45deg)}@media (width<=680px){.principle-sequence article[data-v-caaf4c60]{gap:12px;padding:20px 0}.principle-boundaries>div[data-v-caaf4c60]{grid-template-columns:1fr;gap:20px}.principle-boundaries article[data-v-caaf4c60]{padding:0}.principle-boundaries article+article[data-v-caaf4c60]{border-top:1px solid var(--color-border);border-left:0;padding-top:20px}}.about-view[data-v-68b5e530]{color:var(--color-ink);scrollbar-gutter:stable;padding-top:clamp(24px,4vw,48px);padding-bottom:96px}.about-content[data-v-68b5e530]{width:100%;max-width:var(--form-max);gap:72px;margin:0 auto;display:grid}.about-opening[data-v-68b5e530]{border-bottom:1px solid var(--color-border);text-align:center;justify-items:center;gap:20px;padding:8px 0 56px;display:grid}.about-brand-lockup[data-v-68b5e530]{justify-items:center;gap:11px;display:grid}.about-logo-plate[data-v-68b5e530]{background:var(--color-surface-subtle);border-radius:50%;place-items:center;width:68px;height:68px;display:grid}.about-logo-plate img[data-v-68b5e530]{object-fit:contain;width:48px;height:48px}.about-brand-name[data-v-68b5e530]{color:var(--color-ink);letter-spacing:-.02em;font-size:18px;font-weight:700}.about-opening-claim[data-v-68b5e530]{max-width:660px;color:var(--color-ink);letter-spacing:-.035em;text-wrap:balance;font-size:clamp(26px,4.2vw,36px);font-weight:650;line-height:1.18}.about-opening-copy[data-v-68b5e530]{max-width:620px;color:var(--color-muted);font-size:15px;line-height:1.8}.about-labels-section[data-v-68b5e530]{gap:32px;display:grid}@media (width<=680px){.about-view[data-v-68b5e530]{padding-top:32px;padding-bottom:64px}.about-content[data-v-68b5e530]{gap:56px}.about-opening[data-v-68b5e530]{padding-bottom:44px}.about-opening-copy[data-v-68b5e530]{font-size:14px}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Dt as e,J as t,M as n,Mt as r,T as i,k as a,ot as o,t as s}from"./_plugin-vue_export-helper-Crd8aFkh.js";import{t as c}from"./vue-router-BUjBh_Iw.js";import{n as l}from"./profile-model-kCmPHrmk.js";var u=s(n({__name:`AgentName`,props:{spaceId:{},agentId:{},name:{}},setup(n){return(s,u)=>(t(),i(e(c),{class:`agent-name-link`,to:e(l)(n.spaceId,n.agentId)},{default:o(()=>[a(r(n.name),1)]),_:1},8,[`to`]))}}),[[`__scopeId`,`data-v-4c868995`]]);export{u as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.activity-origin-badge[data-v-8e8c076b]{color:var(--color-muted);background:var(--color-surface-subtle)}.agent-occupation-editor[data-v-3d2bd5ae]{gap:var(--space-3,12px);display:grid}.agent-occupation-editor h3[data-v-3d2bd5ae],.agent-occupation-editor p[data-v-3d2bd5ae]{margin:0}.agent-occupation-tags[data-v-3d2bd5ae]{border:0;flex-wrap:wrap;gap:6px;margin:0;padding:0;display:flex}.agent-occupation-tags legend[data-v-3d2bd5ae]{margin-bottom:6px;padding:0;font-weight:600}.agent-occupation-tags button[aria-pressed=true][data-v-3d2bd5ae]{color:var(--color-accent);border-color:var(--color-accent);background:var(--color-accent-soft)}.occupation-chip[data-v-6314de26]{border:1px solid var(--color-border);border-radius:var(--radius-pill);height:24px;color:var(--color-ink-soft);background:var(--color-surface);font:inherit;cursor:pointer;align-items:center;padding:0 10px;font-size:12px;display:inline-flex}.occupation-chip.is-main[data-v-6314de26]{border-color:var(--color-accent-line);color:var(--color-accent);background:var(--color-accent-soft)}.occupation-chip[data-v-6314de26]:hover{border-color:var(--color-border-strong)}.occupation-chip[data-v-6314de26]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.occupation-chip-detail[data-v-6314de26]{gap:6px;max-width:280px;display:grid}.occupation-chip-detail strong[data-v-6314de26]{font-size:14px}.occupation-chip-detail p[data-v-6314de26]{color:var(--color-ink-soft);margin:0;font-size:13px;line-height:1.6}.occupation-chip-detail small[data-v-6314de26]{color:var(--color-faint);font-size:12px}.occupation-chip-detail a[data-v-6314de26]{color:var(--color-accent);font-size:12px}.agent-profile-page[data-v-261f68dd]{scrollbar-gutter:stable}.agent-portrait.agent-identity[data-v-261f68dd]{color:var(--agent-identity,var(--color-accent));background:var(--agent-identity-soft,var(--color-accent-soft))}.agent-portrait.agent-identity[data-v-261f68dd]:has(img){box-shadow:0 0 0 2px var(--agent-identity,transparent)}.agent-profile-history-grid[data-v-261f68dd]{gap:var(--space-4);display:grid}@container (width>=960px){.agent-profile-history-grid[data-v-261f68dd]{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}@container (width>=1400px){.agent-profile-primary-grid[data-v-261f68dd]{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e,C as t,D as n,Dt as r,E as i,G as a,J as o,M as s,Mt as c,T as l,X as u,b as d,h as f,jt as p,k as m,kt as h,ot as g,rt as _,s as v,st as y,t as b,v as x,vt as S,w as C}from"./_plugin-vue_export-helper-Crd8aFkh.js";import{t as w}from"./console-k05BnLkZ.js";import{h as T,m as E}from"./useApi-CROJJdhE-BMswzZdS.js";import{t as D}from"./vue-router-BUjBh_Iw.js";import{t as O}from"./button-B4gCj85U.js";import{n as k,r as A,t as j}from"./TabsTrigger-BFj6S2XJ.js";import{t as M}from"./TabsContent-CTM6GBGk.js";import{t as N}from"./GrowthLoading-DssogOkP.js";import{a as ee,l as P}from"./client-Cg0bLxrO.js";import{r as F}from"./ui-BkbPVq3y.js";import{t as I}from"./UiSelect-CW3HNsRZ.js";import{t as te}from"./avatars-CUyfvsKO.js";import{t as ne}from"./agent-identity-color-RqpT7gtx.js";import{a as re,r as L,t as R}from"./profile-model-kCmPHrmk.js";import{a as ie,h as ae,l as oe,n as se}from"./task-evidence-i9SDhd3E.js";import{n as ce}from"./useAgentRecords-D6BTApmV.js";import{n as le}from"./paths-CDREouhi.js";import{n as ue}from"./page-title-BawJ25Bw.js";import{t as z}from"./Card-96u8qomm.js";import{t as de}from"./badge-BnU2j9Nh.js";import{t as fe}from"./BackLink-Dgc1V1EN.js";import{t as pe}from"./UiDisclosure-DbxNZe0B.js";import{t as me}from"./AgentName-CXf8heW-.js";import{i as he,n as B,t as ge}from"./occupation-catalog-JHFMVvBn.js";import{i as V,n as H,r as U,t as W}from"./agent-occupation-BooDHzf0.js";import{n as _e,t as ve}from"./TaskExecutionPlan-D_MbMVvj.js";import{a as ye,i as be,n as xe}from"./agent-work-summary-BIZoVGaT.js";import{a as Se,s as Ce}from"./agent-profile.css_vue_type_style_index_0_src_true_lang-BKk2RVxy.js";import{t as we}from"./project-team-api-BZMMPuUd.js";import{_ as Te}from"./task-labels-dW28Ybet.js";import{t as Ee}from"./orchestration-filters-B7ZbjZKo.js";var G=[`title`],De=b(s({__name:`ActivityOriginBadge`,props:{origin:{}},setup(e){return(t,a)=>e.origin?.kind===`ai_internal`?(o(),n(`span`,{key:0,class:`ui-badge activity-origin-badge`,"data-activity-origin":``,title:r(v)(`agentProfiles.activityOrigin.sources.${e.origin.source}`)},c(r(v)(`agentProfiles.activityOrigin.label`,{purpose:r(v)(`agentProfiles.activityOrigin.purposes.${e.origin.purpose}`)})),9,G)):i(``,!0)}}),[[`__scopeId`,`data-v-8e8c076b`]]),K={key:1,class:`agent-locked-platforms`},q={key:2,class:`agent-platform-field`},J=[`disabled`,`placeholder`],Y=[`onUpdate:modelValue`,`disabled`],Oe={key:3,role:`alert`},X={key:4,role:`status`},ke=s({__name:`AgentProfileSettings`,props:{agent:{}},emits:[`saved`],setup(a,{emit:s}){let p=a,h=s,b=S([]),w=S(!1),T=S(!1),E=S(``),D=S(!1),k=``,A=S(``),j=S(``),M=S({judgment:``,taste:``,personality:``}),F=t(()=>p.agent.profile.executorPolicy?.mode===`locked`),te=t(()=>{let e=p.agent.profile.executorPolicy;return(e?.lockedExecutorIds?.length?e.lockedExecutorIds:(e?.allowList??[]).map(e=>e.executorId)).map(e=>b.value.find(t=>t.executorId===e)?.displayName||e)}),ne=t(()=>b.value.filter(e=>e.registrationStatus===`registered`&&e.permissionStatus===`authorized`&&e.preflightStatus===`passed`&&e.workspacePermission&&e.healthStatus!==`unhealthy`&&(!e.healthRequired||e.healthStatus===`healthy`))),re=t(()=>[{value:``,label:v(`agentProfiles.automatic`)},...A.value&&!ne.value.some(e=>e.executorId===A.value)?[{value:A.value,label:v(`agentProfiles.platformUnavailable`),disabled:!0}]:[],...ne.value.map(e=>({value:e.executorId,label:e.displayName||e.executorId}))]),L=0;_(()=>`${p.agent.personalSpaceId}/${p.agent.agentId}`,async()=>{let e=p.agent,t=++L;j.value=e.profile.expectations??``,M.value={judgment:``,taste:``,personality:``,...e.profile.character},A.value=e.profile.executorPolicy?.preferredExecutorIds?.[0]??``,k=A.value,E.value=``,D.value=!1,T.value=!1,w.value=!0,b.value=[];try{let n=await ee(`/api/executors?${new URLSearchParams({personalSpaceId:e.personalSpaceId})}`);t===L&&(b.value=Array.isArray(n)?n:n.executors)}catch{t===L&&(E.value=v(`agentProfiles.platformUnavailable`))}finally{t===L&&(w.value=!1)}},{immediate:!0});async function R(){if(T.value)return;let e=L,t=p.agent;T.value=!0,E.value=``,D.value=!1;let n=t.profile.executorPolicy;try{let r=await P(`/api/project-agents`,{personalSpaceId:t.personalSpaceId,personalProjectId:t.personalProjectId??null,agentId:t.agentId,profile:{...t.profile,character:{...M.value},expectations:j.value,executorPolicy:F.value||A.value===k?n:{...n,mode:`flexible`,preferredExecutorIds:A.value?[A.value]:[]}}});e===L&&(k=A.value,h(`saved`,r),D.value=!0)}catch(t){e===L&&(E.value=t instanceof Error?t.message:v(`agentProfiles.saveError`))}finally{e===L&&(T.value=!1)}}return(t,a)=>(o(),n(`form`,{class:`agent-simple-settings`,onSubmit:x(R,[`prevent`])},[C(`h3`,null,c(r(v)(`agentProfiles.settings`)),1),w.value?(o(),l(N,{key:0,variant:`compact`,label:r(v)(`agentProfiles.settingsLoading`)},null,8,[`label`])):F.value?(o(),n(`div`,K,[C(`h4`,null,c(r(v)(`agentProfiles.platform`)),1),C(`p`,null,c(te.value.join(` · `)||r(v)(`agentProfiles.platformUnavailable`)),1),C(`small`,null,c(r(v)(`agentProfiles.locked`)),1)])):(o(),n(`div`,q,[e(I,{modelValue:A.value,"onUpdate:modelValue":a[0]||=e=>A.value=e,field:``,label:r(v)(`agentProfiles.platform`),options:re.value,disabled:F.value||T.value},null,8,[`modelValue`,`label`,`options`,`disabled`]),C(`small`,null,c(r(v)(F.value?`agentProfiles.locked`:`agentProfiles.platformHint`)),1)])),C(`label`,null,[m(c(r(v)(`agentProfiles.expectations`)),1),y(C(`textarea`,{"onUpdate:modelValue":a[1]||=e=>j.value=e,rows:`3`,maxlength:`4096`,disabled:T.value,placeholder:r(v)(`agentProfiles.expectationsPlaceholder`)},null,8,J),[[f,j.value]])]),C(`details`,null,[C(`summary`,null,c(r(v)(`agentProfiles.editCharacter`)),1),(o(),n(d,null,u([`judgment`,`taste`,`personality`],e=>C(`label`,{key:e},[m(c(r(v)(`agentProfiles.${e}`)),1),y(C(`textarea`,{"onUpdate:modelValue":t=>M.value[e]=t,rows:`2`,maxlength:`2048`,disabled:T.value},null,8,Y),[[f,M.value[e]]])])),64))]),E.value?(o(),n(`p`,Oe,c(E.value),1)):i(``,!0),D.value?(o(),n(`p`,X,c(r(v)(`agentProfiles.saved`)),1)):i(``,!0),e(r(O),{size:`sm`,disabled:w.value,loading:T.value,"loading-label":r(v)(`agentProfiles.saving`),type:`submit`},{default:g(()=>[m(c(r(v)(`agentProfiles.save`)),1)]),_:1},8,[`disabled`,`loading`,`loading-label`])],32))}}),Ae={key:0,class:`agent-occupation-editor`,"data-occupation-locked":``},je={class:`ui-meta`},Me={class:`ui-meta`},Ne=[`disabled`],Z={class:`ui-meta`},Pe={key:0,class:`agent-occupation-main`},Fe={key:0,role:`alert`},Ie={key:1,role:`status`},Le=b(s({__name:`AgentOccupationEditor`,props:{agent:{}},emits:[`saved`],setup(a,{emit:s}){let f=a,p=s,h=S(``),y=S([]),b=S(!1),w=S(``),T=S(!1);_(()=>f.agent.occupation,e=>{h.value=e?.role??``,y.value=(e?.tags??[]).filter(t=>t!==e?.role)},{immediate:!0}),_(h,e=>{e&&(y.value=y.value.filter(t=>t!==e))});let E=he(t(()=>f.agent.personalSpaceId)),D=t(()=>{let e=E.active.value.map(e=>e.key),t=[f.agent.occupation?.role,...f.agent.occupation?.tags??[]].filter(e=>!!e);return[...new Set([...e.length?e:W,...t])]}),k=e=>{let t=B(e);return t?ge(t):void 0},A=t(()=>[{value:``,label:v(`agentRedesign.occupation.none`)},...D.value.map(e=>({value:e,label:H(e)}))]);function j(e){T.value=!1,y.value=y.value.includes(e)?y.value.filter(t=>t!==e):[...y.value,e]}async function M(){b.value=!0,w.value=``,T.value=!1;try{let e=await V(f.agent.personalSpaceId,f.agent.agentId,{role:h.value||null,tags:y.value});p(`saved`,e),T.value=!0}catch(e){w.value=e instanceof Error?e.message:v(`agentRedesign.occupation.saveError`)}finally{b.value=!1}}return(t,s)=>a.agent.occupationLocked?(o(),n(`section`,Ae,[C(`h3`,null,c(r(v)(`agentRedesign.occupation.title`)),1),C(`p`,je,c(r(v)(`agentRedesign.occupation.locked`,{occupation:r(U)(a.agent.occupation).join(` · `)||r(v)(`agentRedesign.occupation.none`)})),1)])):(o(),n(`form`,{key:1,class:`agent-occupation-editor`,"data-occupation-editor":``,onSubmit:x(M,[`prevent`])},[C(`h3`,null,c(r(v)(`agentRedesign.occupation.title`)),1),C(`p`,Me,c(r(v)(`agentRedesign.occupation.note`)),1),e(I,{modelValue:h.value,"onUpdate:modelValue":[s[0]||=e=>h.value=e,s[1]||=e=>T.value=!1],field:``,label:r(v)(`agentRedesign.occupation.role`),options:A.value,disabled:b.value},null,8,[`modelValue`,`label`,`options`,`disabled`]),C(`fieldset`,{class:`agent-occupation-tags`,disabled:b.value},[C(`legend`,null,[m(c(r(v)(`agentRedesign.occupation.tags`))+` `,1),C(`small`,Z,c(r(v)(`agentRedesign.occupation.tagsHint`)),1)]),(o(!0),n(d,null,u(D.value,e=>(o(),l(r(O),{size:`sm`,variant:`ghost`,key:e,"data-occupation-tag":e,"aria-pressed":y.value.includes(e),disabled:e===h.value||!y.value.includes(e)&&y.value.length>=r(5),title:e===h.value?r(v)(`agentRedesign.occupation.isMainRole`):k(e),onClick:t=>j(e)},{default:g(()=>[m(c(r(H)(e)),1),e===h.value?(o(),n(`small`,Pe,` · `+c(r(v)(`agentRedesign.occupation.mainRoleShort`)),1)):i(``,!0)]),_:2},1032,[`data-occupation-tag`,`aria-pressed`,`disabled`,`title`,`onClick`]))),128))],8,Ne),w.value?(o(),n(`p`,Fe,c(w.value),1)):i(``,!0),T.value?(o(),n(`p`,Ie,c(r(v)(`agentRedesign.occupation.saved`)),1)):i(``,!0),e(r(O),{size:`sm`,type:`submit`,loading:b.value,"loading-label":r(v)(`agentRedesign.occupation.saving`)},{default:g(()=>[m(c(r(v)(`agentRedesign.occupation.save`)),1)]),_:1},8,[`loading`,`loading-label`])],32))}}),[[`__scopeId`,`data-v-3d2bd5ae`]]),Re=[`aria-expanded`,`data-occupation`],Q={class:`occupation-chip-detail`,"data-occupation-detail":``},ze={key:0},Be=b(s({__name:`OccupationChip`,props:{occupationKey:{},main:{type:Boolean}},setup(a){let s=a,l=S(null),u=t(()=>B(s.occupationKey)),f=t(()=>H(s.occupationKey));function p(e){l.value=e.currentTarget.getBoundingClientRect()}return(t,s)=>(o(),n(d,null,[C(`button`,{type:`button`,class:h([`occupation-chip`,{"is-main":a.main}]),"aria-expanded":!!l.value,"data-occupation":a.occupationKey,onClick:p},c(f.value),11,Re),e(r(F),{open:!!l.value,anchor:l.value,label:f.value,onClose:s[1]||=e=>l.value=null},{default:g(()=>[C(`div`,Q,[C(`strong`,null,c(f.value),1),C(`p`,null,c(u.value?r(ge)(u.value):r(v)(`occupations.noDescription`)),1),u.value?(o(),n(`small`,ze,c(r(v)(`occupations.agentCount`,{count:u.value.agent_count})),1)):i(``,!0),e(r(D),{to:`/project-agents/occupations`,onClick:s[0]||=e=>l.value=null},{default:g(()=>[m(c(r(v)(`occupations.manage`)),1)]),_:1})])]),_:1},8,[`open`,`anchor`,`label`])],64))}}),[[`__scopeId`,`data-v-6314de26`]]),Ve=[`aria-label`],He={class:`@container mx-auto grid w-full max-w-(--canvas-max) gap-4`},Ue={key:1,class:`ui-card ui-empty agent-profile-empty`,role:`alert`},We={key:2,class:`ui-card ui-empty agent-profile-empty`},Ge=[`src`],Ke={class:`agent-resume-intro grid min-w-0 flex-[1_1_360px] gap-2`},qe={class:`agent-resume-name-row flex-wrap justify-start gap-2`},Je={key:0,class:`ui-badge fla-employee-number`},Ye={class:`agent-resume-occupation`,"data-profile-occupation":``},Xe={key:1,class:`ui-meta`},Ze={class:`agent-resume-summary`},Qe={class:`agent-resume-meta`},$e={class:`agent-profile-actions`},et={key:1,class:`agent-profile-refresh-status`,role:`status`},tt={key:1,class:`agent-profile-partial`,role:`status`},nt={class:`agent-profile-primary-grid`},rt={class:`agent-section-heading`},it={id:`agent-current-work-heading`},at={key:0},ot={key:0,class:`agent-current-work-list`},st={key:1,class:`agent-muted`},ct={key:2,class:`agent-muted`},lt={class:`agent-section-heading`},ut={id:`agent-projects-heading`},dt={class:`agent-resume-list agent-current-project-list`},ft={key:0,class:`agent-project-responsibility`},pt={class:`agent-resume-list`},mt={key:0,class:`agent-project-responsibility`},ht={key:1,class:`agent-muted`},gt={class:`agent-profile-history-grid`},_t={id:`agent-history-projects-heading`},vt={key:0,class:`ui-disclosure`,open:``},yt={class:`agent-resume-list`},bt={key:1,class:`agent-muted`},xt={id:`agent-history-recent-heading`},St={class:`agent-work-timeline`},Ct={key:0,"data-profile-departure":``},wt={class:`agent-section-heading`},Tt={key:0},Et={key:1},Dt={key:0},Ot={key:0,class:`agent-muted`},kt={class:`agent-character`},At={key:0,class:`agent-expectation`},jt={class:`agent-strengths`},Mt={class:`agent-inline-skills`},Nt={key:0},Pt={class:`agent-profile-history-grid`},Ft={class:`agent-section-heading`},It={id:`agent-organization-heading`},Lt={key:0,role:`status`},Rt={key:0,class:`agent-org-lead-unavailable`,role:`status`},zt={key:1,class:`agent-org-lead`},Bt={key:2,class:`agent-org-reporting`},Vt={key:3,class:`agent-org-members`},Ht={key:2,class:`agent-muted`},Ut={key:0,class:`agent-muted`},Wt={id:`agent-worked-with-heading`},Gt={class:`agent-collaborators`},Kt={key:0,class:`agent-muted`},qt={class:`agent-muted`},Jt={class:`agent-profile-management-links`},Yt=b(s({__name:`AgentProfilePage`,setup(s){let f=E(),y=T(),b=w(),x=t(()=>b.activePersonalSpace?.id??``),P=t(()=>f.params.spaceId===x.value?String(f.params.agentId??``):``),F=ce(x,t(()=>P.value?[P.value]:[])),{loading:I,error:B}=F,ge=()=>F.load({force:!0}),V=t(()=>P.value?F.records.value[P.value]:void 0),H=t(()=>(b.state?.personalProjects??[]).filter(e=>e.personal_space_id===x.value)),U=e=>H.value.find(t=>t.project_id===e)?.profile.name||e,W=S([]),G=S(void 0),K=S([]),q=S(!1),J=S(!1),Y=S(!1),Oe=t(()=>{let e=[{id:`overview`,label:v(`agentProfiles.overviewTab`)},{id:`history`,label:v(`agentProfiles.experience`)},{id:`style`,label:v(`agentProfiles.about`)},{id:`collaborators`,label:v(`agentProfiles.collaborators`)},{id:`management`,label:v(`agentProfiles.advanced`)}];return V.value?.memoryScope===`reviewed_agent`&&e.splice(4,0,{id:`conversations`,label:v(`projectAgents.conversations.title`)}),e}),X=t({get:()=>{let e=f.query.tab;return Oe.value.find(t=>t.id===e)?.id??`overview`},set:e=>{let{tab:t,...n}=f.query;y.replace({query:e===`overview`?n:{...n,tab:e}})}});ue(()=>V.value?R(V.value):``);let Ae=/^\/project-agents(\?|$)/,je=t(()=>V.value?L(V.value.agentId,W.value):[]),Me=ce(x,t(()=>je.value.map(e=>e.agentId))),Ne=e=>{let t=Me.records.value[e];return t?R(t):e},Z=t(()=>V.value?re({...V.value,assignments:G.value??V.value.assignments}):[]),Pe=t(()=>H.value.filter(e=>Z.value.includes(e.project_id)).map(e=>({id:e.project_id,name:e.profile.name}))),Fe=t(()=>Z.value.slice(0,4)),Ie=t(()=>Z.value.slice(4)),Re=t(()=>(G.value??[]).filter(e=>e.status!==`active`)),Q=t(()=>W.value.filter(e=>ye.has(e.status)).slice(0,6)),ze=t(()=>{let e=V.value?.occupation;return e?[...new Set([...e.role?[e.role]:[],...e.tags])]:[]});he(t(()=>V.value?.personalSpaceId??``));let Yt=t(()=>Se.value.find(e=>e.agentId===V.value?.agentId)),Xt=t(()=>Yt.value?.id===`bole`),$=e=>e&&!Number.isNaN(Date.parse(e))?new Date(e).toLocaleDateString():v(`agentProfiles.timeUnknown`),Zt=e=>{let t=G.value?.find(t=>t.personalProjectId===e&&t.status===`active`)?.responsibility?.trim(),n=V.value?.profile.responsibility.trim();return t&&t!==n?t:``},Qt=t(()=>{let e=`agentRedesign.projects.more`,t=v(e,{count:Z.value.length});return t===e?`All projects (${Z.value.length})`:t}),$t=0;_(()=>V.value?`${V.value.personalSpaceId}/${V.value.agentId}`:``,async()=>{let e=V.value,t=++$t;if(W.value=[],G.value=void 0,K.value=[],J.value=!1,q.value=!1,Y.value=!1,!e)return;Ce(e.personalSpaceId),q.value=!0,G.value=e.assignments;let n=new URLSearchParams({personalSpaceId:e.personalSpaceId,agentId:e.agentId}),r=new URLSearchParams({personalSpaceId:e.personalSpaceId,agentId:e.agentId}),i=await Promise.allSettled([ee(`/api/project-agent-tasks?${n}&limit=200`),ee(`/api/project-agent-assignments?${r}`)]);if(t!==$t)return;let[a,o]=i;if(a.status===`fulfilled`){let t=a.value,n=ae(t);J.value=!xe(t),W.value=se(Array.isArray(t)?t:n.tasks??n.items).map(oe).filter(t=>!(!t||t.personalSpaceId&&t.personalSpaceId!==e.personalSpaceId||!be(t,e.agentId))).sort((e,t)=>(t.updatedAt??t.createdAt??``).localeCompare(e.updatedAt??e.createdAt??``))}else J.value=!0;if(o.status===`fulfilled`){let t=o.value,n=ae(t);G.value=se(Array.isArray(t)?t:n.assignments??n.items).map(t=>ie(t,e)).filter(t=>!!(t&&t.agentId===e.agentId&&t.personalSpaceId===e.personalSpaceId))}else J.value=!0;let s=re({...e,assignments:G.value??e.assignments}),c=await Promise.all(s.map(async t=>{try{return{projectId:t,view:await we(e.personalSpaceId,t),error:!1}}catch{return{projectId:t,view:null,error:!0}}}));t===$t&&(K.value=c,q.value=!1)},{immediate:!0});function en(e){V.value&&F.put(P.value,{...V.value,...e})}return a(()=>{b.runtimeStatus===`idle`&&b.refresh()}),(t,a)=>(o(),n(`section`,{class:`view agent-profile-page`,"aria-label":V.value?r(R)(V.value):r(v)(`agentProfiles.profile`)},[C(`div`,He,[e(fe,{class:`agent-profile-back`,to:`/project-agents`,from:Ae},{default:g(()=>[m(c(r(v)(`agentProfiles.back`)),1)]),_:1}),(r(I)||r(b).runtimeStatus===`loading`)&&!V.value?(o(),l(N,{key:0,label:r(v)(`agentProfiles.loading`)},null,8,[`label`])):(r(B)||r(b).runtimeStatus===`error`)&&!V.value?(o(),n(`div`,Ue,[C(`p`,null,c(r(B)||r(v)(`agentProfiles.loadError`)),1),e(r(O),{size:`sm`,variant:`outline`,onClick:a[0]||=e=>r(b).state?ge():r(b).refresh()},{default:g(()=>[m(c(r(v)(`agentProfiles.retry`)),1)]),_:1})])):V.value?(o(),n(d,{key:3},[e(r(z),{as:`header`,class:`agent-resume-header`},{default:g(()=>[C(`span`,{class:`agent-portrait agent-identity`,style:p(r(ne)(V.value.agentId)),"aria-hidden":`true`},[r(te)(V.value.agentId)?(o(),n(`img`,{key:0,src:r(te)(V.value.agentId),alt:``},null,8,Ge)):(o(),n(d,{key:1},[m(c(V.value.profile.occupationEmoji||r(R)(V.value).slice(0,1)),1)],64))],4),C(`div`,Ke,[C(`div`,qe,[V.value.employeeNumber?(o(),n(`span`,Je,`FLA `+c(V.value.employeeNumber),1)):i(``,!0),C(`span`,{class:h([`ui-badge agent-profile-membership`,`is-${V.value.profile.status}`])},c(r(v)(`projectAgents.status.${V.value.profile.status}`)),3)]),C(`p`,Ye,[ze.value.length?(o(!0),n(d,{key:0},u(ze.value,(e,t)=>(o(),l(Be,{key:e,"occupation-key":e,main:t===0&&!!V.value.occupation?.role},null,8,[`occupation-key`,`main`]))),128)):(o(),n(`span`,Xe,c(r(v)(`agentRedesign.occupation.notSet`)),1))]),C(`p`,Ze,c(V.value.profile.responsibility),1),C(`div`,Qe,[C(`span`,null,c(r(v)(V.value.recruitedAt?`agentProfiles.joined`:`agentProfiles.created`))+` · `+c($(V.value.recruitedAt||V.value.createdAt)),1)])]),C(`div`,$e,[Yt.value?(o(),l(r(O),{key:0,"as-child":``,variant:`outline`},{default:g(()=>[e(r(D),{to:`/employees/${encodeURIComponent(Yt.value.id)}`},{default:g(()=>[m(c(r(v)(`agentProfiles.workbench`)),1)]),_:1},8,[`to`])]),_:1})):i(``,!0),e(r(O),{variant:`outline`,"aria-expanded":Y.value,onClick:a[1]||=e=>Y.value=!Y.value},{default:g(()=>[m(c(r(v)(`agentProfiles.settings`)),1)]),_:1},8,[`aria-expanded`]),Xt.value?i(``,!0):(o(),l(r(O),{key:1,"as-child":``,variant:`outline`},{default:g(()=>[e(r(D),{to:{path:`/employees/bole`,query:{q:r(R)(V.value)}}},{default:g(()=>[m(c(r(v)(`agentProfiles.askHR`)),1)]),_:1},8,[`to`])]),_:1}))])]),_:1}),r(I)||r(b).runtimeStatus===`loading`?(o(),l(N,{key:0,variant:`compact`,label:r(v)(`agentProfiles.loading`)},null,8,[`label`])):i(``,!0),r(B)?(o(),n(`p`,et,c(r(B)),1)):i(``,!0),Y.value?(o(),l(ke,{key:V.value.agentId,agent:V.value,onSaved:en},null,8,[`agent`])):i(``,!0),Y.value&&V.value.profile.status!==`archived`?(o(),l(Le,{key:`occupation-${V.value.agentId}`,agent:V.value,onSaved:en},null,8,[`agent`])):i(``,!0),e(r(A),{modelValue:X.value,"onUpdate:modelValue":a[2]||=e=>X.value=e,"unmount-on-hide":!1,class:`agent-profile-tabs mt-2`},{default:g(()=>[e(r(k),{"aria-label":r(R)(V.value)},{default:g(()=>[(o(!0),n(d,null,u(Oe.value,e=>(o(),l(r(j),{key:e.id,value:e.id,"data-profile-tab":e.id},{default:g(()=>[m(c(e.label),1)]),_:2},1032,[`value`,`data-profile-tab`]))),128))]),_:1},8,[`aria-label`]),q.value?(o(),l(N,{key:0,variant:`compact`,label:r(v)(`agentProfiles.detailLoading`)},null,8,[`label`])):i(``,!0),J.value?(o(),n(`p`,tt,c(r(v)(`agentProfiles.partial`)),1)):i(``,!0),e(r(M),{value:`overview`,class:`agent-profile-panel`,"data-profile-panel":`overview`},{default:g(()=>[C(`div`,nt,[e(r(z),{as:`section`,class:`agent-resume-section agent-current-work-section`,"aria-labelledby":`agent-current-work-heading`},{default:g(()=>[C(`div`,rt,[C(`h2`,it,c(r(v)(`agentProfiles.working`)),1),Q.value.length?(o(),n(`span`,at,c(Q.value.length),1)):i(``,!0)]),Q.value.length?(o(),n(`ul`,ot,[(o(!0),n(d,null,u(Q.value,t=>(o(),n(`li`,{key:t.taskId},[e(r(D),{to:{path:r(Ee)(V.value.personalSpaceId,V.value.agentId),query:{task:t.taskId}}},{default:g(()=>[m(c(t.title),1)]),_:2},1032,[`to`]),e(r(de),{variant:r(Te)(t.status)},{default:g(()=>[m(c(r(v)(`projectAgents.taskStatus.${t.status}`)),1)]),_:2},1032,[`variant`]),e(De,{origin:t.activityOrigin},null,8,[`origin`]),e(ve,{task:t,"personal-space-id":x.value,active:X.value===`overview`},null,8,[`task`,`personal-space-id`,`active`])]))),128))])):!q.value&&!J.value?(o(),n(`p`,st,c(r(v)(`agentProfiles.idle`)),1)):q.value?i(``,!0):(o(),n(`p`,ct,c(r(v)(`agentProfiles.partial`)),1))]),_:1}),e(r(z),{as:`section`,class:`agent-resume-section agent-projects-section`,"aria-labelledby":`agent-projects-heading`},{default:g(()=>[C(`div`,lt,[C(`h2`,ut,c(r(v)(`agentProfiles.projects`)),1),C(`span`,null,c(Z.value.length),1)]),C(`ul`,dt,[(o(!0),n(d,null,u(Fe.value,t=>(o(),n(`li`,{key:t,class:`agent-project-item`},[C(`h3`,null,[e(r(D),{class:`agent-project-link`,to:r(le)(x.value,`overview`,t)},{default:g(()=>[m(c(U(t)),1)]),_:2},1032,[`to`])]),Zt(t)?(o(),n(`p`,ft,c(Zt(t)),1)):i(``,!0)]))),128))]),Ie.value.length?(o(),l(pe,{key:0,class:`agent-project-overflow`,title:Qt.value},{default:g(()=>[C(`ul`,pt,[(o(!0),n(d,null,u(Ie.value,t=>(o(),n(`li`,{key:t,class:`agent-project-item`},[C(`h3`,null,[e(r(D),{class:`agent-project-link`,to:r(le)(x.value,`overview`,t)},{default:g(()=>[m(c(U(t)),1)]),_:2},1032,[`to`])]),Zt(t)?(o(),n(`p`,mt,c(Zt(t)),1)):i(``,!0)]))),128))])]),_:1},8,[`title`])):i(``,!0),!q.value&&!Z.value.length?(o(),n(`p`,ht,c(r(v)(`agentProfiles.noProject`)),1)):i(``,!0)]),_:1})])]),_:1}),e(r(M),{value:`history`,class:`agent-profile-panel`,"data-profile-panel":`history`},{default:g(()=>[C(`div`,gt,[e(r(z),{as:`section`,class:`agent-resume-section`,"aria-labelledby":`agent-history-projects-heading`},{default:g(()=>[C(`h2`,_t,c(r(v)(`agentProfiles.projects`)),1),Re.value.length?(o(),n(`details`,vt,[C(`summary`,null,c(r(v)(`agentProfiles.projectHistory`)),1),C(`ul`,yt,[(o(!0),n(d,null,u(Re.value,t=>(o(),n(`li`,{key:t.assignmentId},[C(`h3`,null,[e(r(D),{class:`agent-project-link`,to:r(le)(x.value,`overview`,t.personalProjectId)},{default:g(()=>[m(c(U(t.personalProjectId)),1)]),_:2},1032,[`to`])]),C(`p`,null,c(t.responsibility),1),C(`small`,null,c($(t.assignedAt))+` – `+c($(t.endedAt)),1)]))),128))])])):q.value?i(``,!0):(o(),n(`p`,bt,c(r(v)(`agentProfiles.noProject`)),1))]),_:1}),e(r(z),{as:`section`,class:`agent-resume-section`,"aria-labelledby":`agent-history-recent-heading`},{default:g(()=>[C(`h2`,xt,c(r(v)(`agentProfiles.recent`)),1),C(`ol`,St,[V.value.archiveReason?(o(),n(`li`,Ct,[C(`h3`,null,c(r(v)(`agentProfiles.departure`)),1),C(`p`,null,c(V.value.archiveReason),1),C(`small`,null,c($(V.value.archivedAt)),1)])):i(``,!0),(o(!0),n(d,null,u(W.value.slice(0,12),t=>(o(),n(`li`,{key:t.taskId},[C(`div`,wt,[e(r(D),{to:{path:r(Ee)(V.value.personalSpaceId,V.value.agentId),query:{task:t.taskId}}},{default:g(()=>[m(c(t.title),1)]),_:2},1032,[`to`]),C(`span`,null,c(r(v)(`projectAgents.taskStatus.${t.status}`)),1),e(De,{origin:t.activityOrigin},null,8,[`origin`])]),t.resultSummary?(o(),n(`p`,Tt,c(t.resultSummary),1)):i(``,!0),C(`small`,null,c($(t.completedAt||t.updatedAt||t.createdAt)),1)]))),128)),V.value.recruitedAt||V.value.recruitmentReason?(o(),n(`li`,Et,[C(`h3`,null,c(r(v)(`agentProfiles.recruitment`)),1),V.value.recruitmentReason?(o(),n(`p`,Dt,c(V.value.recruitmentReason),1)):i(``,!0),C(`small`,null,c($(V.value.recruitedAt)),1)])):i(``,!0)]),!q.value&&!W.value.length&&!V.value.archiveReason&&!V.value.recruitmentReason&&!V.value.recruitedAt?(o(),n(`p`,Ot,c(r(v)(`agentProfiles.noExperience`)),1)):i(``,!0)]),_:1})])]),_:1}),e(r(M),{value:`style`,class:`agent-profile-panel`,"data-profile-panel":`style`},{default:g(()=>[e(r(z),{as:`section`,class:`agent-resume-section`,"aria-label":r(v)(`agentProfiles.about`)},{default:g(()=>[C(`div`,kt,[(o(),n(d,null,u([`judgment`,`taste`,`personality`],e=>C(`div`,{key:e},[C(`h3`,null,c(r(v)(`agentProfiles.${e}`)),1),C(`p`,{class:h({"agent-muted":!V.value.profile.character?.[e]})},c(V.value.profile.character?.[e]||r(v)(`agentProfiles.characterEmpty`)),3)])),64))]),V.value.profile.expectations?(o(),n(`p`,At,[C(`strong`,null,c(r(v)(`agentProfiles.expectations`)),1),m(` `+c(V.value.profile.expectations),1)])):i(``,!0),C(`div`,jt,[C(`h3`,null,c(r(v)(`agentProfiles.strengths`)),1),C(`div`,Mt,[(o(!0),n(d,null,u(V.value.profile.capabilities,e=>(o(),n(`span`,{key:e},c(e),1))),128)),V.value.profile.capabilities.length?i(``,!0):(o(),n(`span`,Nt,c(r(v)(`agentProfiles.noSkills`)),1))])])]),_:1},8,[`aria-label`])]),_:1}),e(r(M),{value:`collaborators`,class:`agent-profile-panel`,"data-profile-panel":`collaborators`},{default:g(()=>[C(`div`,Pt,[e(r(z),{as:`section`,class:`agent-resume-section`,"aria-labelledby":`agent-organization-heading`},{default:g(()=>[C(`div`,Ft,[C(`h2`,It,c(r(v)(`agentProfiles.organization`)),1),Xt.value?i(``,!0):(o(),l(r(D),{key:0,to:{path:`/employees/bole`,query:{q:r(R)(V.value)}}},{default:g(()=>[m(c(r(v)(`agentProfiles.hr`)),1)]),_:1},8,[`to`]))]),(o(!0),n(d,null,u(K.value,t=>(o(),n(`div`,{key:t.projectId,class:`agent-organization`},[C(`h3`,null,c(U(t.projectId)),1),t.error?(o(),n(`p`,Lt,c(r(v)(`agentProfiles.teamUnavailable`)),1)):t.view&&(t.view.lead||t.view.unavailableLead||t.view.members.length)?(o(),n(d,{key:1},[t.view.unavailableLead?(o(),n(`p`,Rt,c(t.view.unavailableLead.name?r(v)(`agentProfiles.leadUnavailable`,{name:t.view.unavailableLead.name}):r(v)(`agentProfiles.leadUnavailableUnnamed`)),1)):i(``,!0),t.view.lead?(o(),n(`div`,zt,[C(`span`,null,c(r(v)(`agentProfiles.lead`)),1),e(me,{"space-id":x.value,"agent-id":t.view.lead.agentId,name:t.view.lead.name},null,8,[`space-id`,`agent-id`,`name`])])):i(``,!0),t.view.lead?(o(),n(`p`,Bt,c(r(v)(`agentProfiles.reporting`)),1)):i(``,!0),t.view.members.length?(o(),n(`div`,Vt,[C(`span`,null,c(r(v)(`agentProfiles.teammates`)),1),C(`ul`,null,[(o(!0),n(d,null,u(t.view.members,t=>(o(),n(`li`,{key:t.agentId},[e(me,{"space-id":x.value,"agent-id":t.agentId,name:t.name},null,8,[`space-id`,`agent-id`,`name`])]))),128))])])):i(``,!0)],64)):(o(),n(`p`,Ht,c(r(v)(`agentProfiles.teamUnset`)),1))]))),128)),!q.value&&!K.value.length?(o(),n(`p`,Ut,c(r(v)(`agentProfiles.noProject`)),1)):i(``,!0)]),_:1}),e(r(z),{as:`section`,class:`agent-resume-section`,"aria-labelledby":`agent-worked-with-heading`},{default:g(()=>[C(`h2`,Wt,c(r(v)(`agentProfiles.workedWith`)),1),C(`ul`,Gt,[(o(!0),n(d,null,u(je.value,t=>(o(),n(`li`,{key:t.agentId},[e(me,{"space-id":x.value,"agent-id":t.agentId,name:Ne(t.agentId)},null,8,[`space-id`,`agent-id`,`name`]),C(`span`,null,c(r(v)(`agentProfiles.sharedTasks`,{count:t.count})),1)]))),128))]),!q.value&&!je.value.length?(o(),n(`p`,Kt,c(r(v)(`agentProfiles.noCollaborators`)),1)):i(``,!0)]),_:1})])]),_:1}),V.value.memoryScope===`reviewed_agent`?(o(),l(r(M),{key:2,value:`conversations`,class:`agent-profile-panel`,"data-profile-panel":`conversations`},{default:g(()=>[e(r(z),{as:`section`,class:`agent-resume-section`},{default:g(()=>[(o(),l(_e,{key:V.value.agentId,"personal-space-id":x.value,"agent-id":V.value.agentId,projects:Pe.value},null,8,[`personal-space-id`,`agent-id`,`projects`]))]),_:1})]),_:1})):i(``,!0),e(r(M),{value:`management`,class:`agent-profile-panel`,"data-profile-panel":`management`},{default:g(()=>[e(r(z),{as:`section`,class:`agent-resume-section agent-management-card`,"aria-label":r(v)(`agentProfiles.advanced`)},{default:g(()=>[C(`p`,qt,c(r(v)(`agentProfiles.locked`)),1),C(`div`,Jt,[e(r(O),{"as-child":``,variant:`outline`},{default:g(()=>[e(r(D),{"data-open-management":``,to:r(Ee)(V.value.personalSpaceId,V.value.agentId)},{default:g(()=>[m(c(r(v)(`agentProfiles.openManagement`)),1)]),_:1},8,[`to`])]),_:1})])]),_:1},8,[`aria-label`])]),_:1})]),_:1},8,[`modelValue`])],64)):(o(),n(`p`,We,c(r(v)(`agentProfiles.unavailable`)),1))])],8,Ve))}}),[[`__scopeId`,`data-v-261f68dd`]]);export{Yt as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.agent-card-pin[data-v-7aa081af]{color:var(--color-muted)}.agent-card-pin[data-v-7aa081af]:hover:not(:disabled),.agent-card-pin[aria-pressed=true][data-v-7aa081af]{color:var(--color-accent)}.agent-card-pin[aria-pressed=true][data-v-7aa081af]{border-color:var(--color-accent-line);background:var(--color-accent-soft)}.agent-card-pin svg[data-v-7aa081af]{width:18px;height:18px}.agent-card-project-list .agent-card-project-badge[data-v-7aa081af]{box-sizing:border-box;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;display:block;overflow:hidden}.agent-card-pin[data-v-7aa081af] .growth-loading--inline{justify-content:center;width:100%}.agent-card-pin[data-v-7aa081af] .growth-loading__label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.employee-workbench-link img[data-v-7bbbbacd]{object-fit:cover;border-radius:5px;width:18px;height:18px}.agents-directory[data-v-a05a0461]{scrollbar-gutter:stable}.agents-directory-toolbar[data-v-a05a0461]{background:var(--color-bg);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;padding-block:4px 16px;display:flex}@media (height>=820px){.agents-directory-toolbar[data-v-a05a0461]{z-index:2;margin-top:-12px;padding-top:16px;position:sticky;top:-12px}}.agents-directory-notice[data-v-a05a0461]{border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-muted);justify-content:space-between;align-items:center;gap:12px;margin:0 0 16px;padding:8px 12px;font-size:13px;display:flex}.agents-directory-notice.is-error[data-v-a05a0461]{color:var(--color-danger)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e,B as t,C as n,D as r,Dt as i,E as a,G as o,J as s,M as c,Mt as l,T as u,U as d,V as f,X as p,Z as m,_ as h,b as g,g as _,h as ee,jt as v,k as y,kt as b,nt as x,ot as S,r as C,rt as w,s as T,st as te,t as E,v as ne,vt as D,w as O,z as re}from"./_plugin-vue_export-helper-Crd8aFkh.js";import{t as ie}from"./console-k05BnLkZ.js";import{h as ae,m as oe}from"./useApi-CROJJdhE-BMswzZdS.js";import{t as se}from"./vue-router-BUjBh_Iw.js";import{t as k}from"./button-B4gCj85U.js";import{a as ce,i as le}from"./dialog-DQaUWk4W.js";import{t as A}from"./GrowthLoading-DssogOkP.js";import{a as j}from"./client-Cg0bLxrO.js";import{i as ue,n as de}from"./agent-pins-CFO-xYmz.js";import{i as fe,n as pe}from"./project-origin-DI7ft7I8.js";import{t as me}from"./UiIconButton-Bgy8Hoy4.js";import{t as he}from"./UiSegmented-BwkPHeLK.js";import{t as ge}from"./UiSelect-CW3HNsRZ.js";import{t as M}from"./avatars-CUyfvsKO.js";import{t as _e}from"./agent-identity-color-RqpT7gtx.js";import{a as ve,i as ye,n as be,t as N}from"./profile-model-kCmPHrmk.js";import{h as xe}from"./task-evidence-i9SDhd3E.js";import{n as Se,t as Ce}from"./useAgentRecords-D6BTApmV.js";import{n as we}from"./paths-CDREouhi.js";import{t as P}from"./badge-BnU2j9Nh.js";import{t as F}from"./AgentName-CXf8heW-.js";import{r as I}from"./agent-occupation-BooDHzf0.js";import{n as L,r as R,s as z,t as Te}from"./agent-work-summary-BIZoVGaT.js";import{a as Ee,s as B}from"./agent-profile.css_vue_type_style_index_0_src_true_lang-BKk2RVxy.js";import{t as V}from"./project-team-api-BZMMPuUd.js";import{t as De}from"./orchestration-filters-B7ZbjZKo.js";import{a as Oe,i as ke,n as Ae,o as je,r as Me,s as Ne,t as Pe}from"./ProjectAgentFirstTask-CXKvWwhZ.js";import{n as Fe,t as Ie}from"./useFocusReturn-DQOtrYO8.js";import{n as Le}from"./useRoutePeek-R9W605pr.js";import{t as Re}from"./UnassignedConversationsPanel-BeWzhuBr.js";import{n as ze,t as Be}from"./EmployeeRecruitDialog-DjX_wOWx.js";function Ve(e,t=Date.now()){return`-${Math.floor(t%e)}ms`}function He(e,t,n=600){let r=D(!1),i=null;function a(){i?.disconnect(),i=null}return w([e,t],([e,t])=>{a(),r.value=!1,e&&typeof IntersectionObserver<`u`&&(i=new IntersectionObserver(e=>{r.value=e.some(e=>e.isIntersecting)},{root:t,rootMargin:`0px 0px ${n}px 0px`}),i.observe(e))},{immediate:!0,flush:`post`}),d(a),r}var H=[`all`,`active`,`inactive`,`archived`],Ue=[`agents`,`projects`],We=[`recent`,`name`],Ge=[`q`,`project`,`status`,`view`,`sort`];function U(e){return(Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`&&e!==``)}function Ke(e,t,n){return e.includes(t??``)?t:n}function qe(e){return{search:U(e.q)[0]??``,projects:[...new Set(U(e.project))],status:Ke(H,U(e.status)[0],`all`),view:Ke(Ue,U(e.view)[0],`agents`),sort:Ke(We,U(e.sort)[0],`recent`)}}function Je(e,t){let n=Object.fromEntries(Object.entries(e).filter(([e])=>!Ge.includes(e))),r=t.search.trim();return r&&(n.q=r),t.projects.length&&(n.project=[...t.projects]),t.status!==`all`&&(n.status=t.status),t.view!==`agents`&&(n.view=t.view),t.sort!==`recent`&&(n.sort=t.sort),n}function Ye(e,t){return e.search.trim()===t.search.trim()&&e.status===t.status&&e.view===t.view&&e.sort===t.sort&&e.projects.length===t.projects.length&&e.projects.every((e,n)=>e===t.projects[n])}var Xe=new Set([`loading`,`unreported`,`unavailable`]);function Ze(e,t,n,r,i=[],a=!1){let o=new Set(r.filter(e=>!i.length||i.includes(e))),s=new Map,c=e=>{let t=s.get(e);return t||(t={projectId:e,agentIds:[],runningCount:0,unknownCount:0},s.set(e,t)),t};if(typeof a==`boolean`?a:a?.includeEmpty)for(let e of r)o.has(e)&&c(e);for(let r of e){let e=t(r).filter(e=>o.has(e)),i=n(r);for(let t of e){let e=c(t);e.agentIds.push(r),i===`running`&&(e.runningCount+=1),(!i||Xe.has(i))&&(e.unknownCount+=1)}}let l=new Map(r.map((e,t)=>[e,t]));return[...s.values()].sort((e,t)=>(l.get(e.projectId)??2**53-1)-(l.get(t.projectId)??2**53-1)||e.projectId.localeCompare(t.projectId))}var W=[`data-directory-project`],Qe=[`aria-expanded`,`aria-controls`],$e={class:`directory-project-heading`},et={class:`directory-project-name`},tt={key:0,class:`ui-meta directory-project-purpose`,"data-project-purpose":``},nt={class:`ui-meta directory-project-summary`},G={class:`directory-project-header-lead`,"data-project-header-lead":``},rt={key:0,class:`directory-project-occupations`,"data-project-member-occupations":``},K={class:`ui-meta directory-project-counts`},it=[`id`],at={key:0,class:`directory-project-lead`,"data-project-lead":``},ot={key:1,role:`alert`},q={key:2},st={class:`ui-meta`},J={key:3,class:`ui-meta`},ct=c({__name:`DirectoryProjectGroup`,props:re({spaceId:{},projectId:{},name:{},purpose:{},agents:{},count:{},runningCount:{},unknownCount:{}},{expanded:{type:Boolean,default:!1},expandedModifiers:{}}),emits:[`update:expanded`],setup(t){let o=t,c=x(t,`expanded`),d=D(null),f=D(!1),p=D(!1),h=0,_=n(()=>`directory-project-${o.projectId??`unassigned`}`),ee=n(()=>o.projectId&&o.spaceId?we(o.spaceId,`overview`,o.projectId):null),v=n(()=>{if(d.value?.lead?.name)return d.value.lead.name;let e=(o.agents??[]).find(e=>e.occupation?.role===`lead`||e.profile.agentType===`coordinator`);return e?e.profile.displayName||e.profile.name:null}),b=n(()=>{let e=new Set,t=[];for(let n of o.agents??[]){let r=I(n.occupation)[0];if(!r)continue;let i=n.profile.occupationEmoji?.trim(),a=i?`${i} ${r}`:r;e.has(a)||(e.add(a),t.push(a))}return t});async function C(){if(!o.projectId||!o.spaceId)return;let e=++h;f.value=!0,p.value=!1;try{let t=await V(o.spaceId,o.projectId);e===h&&(d.value=t)}catch{e===h&&(p.value=!0)}finally{e===h&&(f.value=!1)}}return w(()=>[o.spaceId,o.projectId],()=>{h+=1,d.value=null,f.value=!1,p.value=!1,c.value&&C()}),w(c,e=>{e&&!d.value&&!f.value&&C()},{immediate:!0}),(n,o)=>(s(),r(`section`,{class:`directory-project`,"data-directory-project":t.projectId??``},[O(`button`,{type:`button`,class:`directory-project-toggle`,"aria-expanded":c.value,"aria-controls":_.value,onClick:o[0]||=e=>c.value=!c.value},[O(`span`,$e,[O(`span`,et,l(t.name),1),t.purpose?(s(),r(`span`,tt,l(t.purpose),1)):a(``,!0)]),O(`span`,nt,[O(`span`,G,l(v.value?i(T)(`agentRedesign.projectView.lead`,{name:v.value}):i(T)(`agentRedesign.projectView.leadUnset`)),1),b.value.length?(s(),r(`span`,rt,` · `+l(b.value.join(` · `)),1)):a(``,!0)]),O(`span`,K,[y(l(i(T)(`agentRedesign.projectView.members`,{count:t.count}))+` `,1),t.runningCount?(s(),r(g,{key:0},[y(` · `+l(i(T)(`agentRedesign.projectView.running`,{count:t.runningCount})),1)],64)):a(``,!0),t.unknownCount?(s(),r(g,{key:1},[y(` · `+l(i(T)(`agentRedesign.projectView.unknown`,{count:t.unknownCount})),1)],64)):a(``,!0)]),o[1]||=O(`svg`,{class:`directory-project-chevron`,viewBox:`0 0 24 24`,"aria-hidden":`true`},[O(`path`,{d:`m6 9 6 6 6-6`})],-1)],8,Qe),c.value?(s(),r(`div`,{key:0,id:_.value,class:`directory-project-body`},[t.projectId?(s(),r(`div`,at,[f.value?(s(),u(A,{key:0,variant:`inline`,label:i(T)(`agentRedesign.projectView.loadingLead`)},null,8,[`label`])):p.value?(s(),r(`p`,ot,[y(l(i(T)(`agentRedesign.projectView.leadFailed`))+` `,1),e(i(k),{size:`sm`,variant:`ghost`,onClick:C},{default:S(()=>[y(l(i(T)(`agentProfiles.retry`)),1)]),_:1})])):d.value?.lead?(s(),r(`p`,q,[O(`span`,st,l(i(T)(`projects.overview.lead`)),1),e(F,{"space-id":t.spaceId,"agent-id":d.value.lead.agentId,name:d.value.lead.name},null,8,[`space-id`,`agent-id`,`name`])])):d.value?(s(),r(`p`,J,l(d.value.status===`lead_unavailable`?i(T)(`projects.overview.leadUnavailableUnnamed`):i(T)(`projects.overview.noLead`)),1)):a(``,!0),ee.value?(s(),u(i(k),{key:4,"as-child":``,variant:`outline`},{default:S(()=>[e(i(se),{to:ee.value},{default:S(()=>[y(l(i(T)(`agentRedesign.projectView.openProject`)),1)]),_:1},8,[`to`])]),_:1})):a(``,!0)])):a(``,!0),m(n.$slots,`default`)],8,it)):a(``,!0)],8,W))}}),Y=[[`second`,60],[`minute`,60],[`hour`,24],[`day`,30],[`month`,12],[`year`,1/0]];function lt(e,t,n=Date.now()){let r=e?Date.parse(e):NaN;if(Number.isNaN(r))return null;let i=Math.round((r-n)/1e3),a=new Intl.RelativeTimeFormat(t,{numeric:`auto`});for(let[e,t]of Y){if(Math.abs(i)<t)return a.format(i,e);i=Math.round(i/t)}return null}function ut(e){if(!e)return null;let t=e.reason;switch(e.status){case`blocked`:return t?T(`agentRedesign.statusDetail.blocked`,{reason:t}):T(`agentRedesign.statusDetail.blockedUnrecorded`);case`awaiting_review`:return t?T(`agentRedesign.statusDetail.review`,{reason:t}):T(`agentRedesign.statusDetail.reviewUnrecorded`);case`paused`:return t?T(`agentRedesign.statusDetail.paused`,{reason:t}):T(`agentRedesign.statusDetail.pausedUnrecorded`);case`queued`:return T(`agentRedesign.statusDetail.queued`);case`awaiting_recruitment`:return T(`agentRedesign.statusDetail.recruitment`);case`unreported`:return T(e.source===`roster`?`agentRedesign.statusDetail.unreportedRoster`:`agentRedesign.statusDetail.unreportedTasks`);case`unavailable`:return T(`agentRedesign.statusDetail.unavailable`);default:return null}}var dt=[`data-return-focus`,`data-selected`],ft={class:`agent-card-topline flex items-start gap-3`},pt=[`src`],mt={class:`min-w-0 flex-1`},ht={class:`agent-directory-name flex min-w-0 items-start gap-1.5`},gt={class:`agent-card-tags mt-1 flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1 text-xs text-muted-foreground`},_t={key:0,class:`fla-employee-number whitespace-nowrap`},X=[`title`],Z=[`data-work-status`,`aria-label`],Q={class:`agent-card-work-status-text`},$=[`data-membership-status`],vt={key:0,class:`agent-card-current`,"data-current-task":``},yt={class:`agent-card-current-label`},bt=[`title`],xt=[`title`],St=[`title`],Ct=[`title`],wt={key:2,class:`agent-inline-skills`},Tt={class:`agent-card-meta mt-auto flex items-center justify-between gap-3 border-t pt-2.5`},Et={class:`agent-card-projects min-w-0 flex-1`},Dt={key:0,class:`agent-card-project-list`},Ot=[`title`],kt={key:0,class:`ui-badge agent-card-project-count`},At={key:1,class:`ui-badge`},jt={key:2,class:`agent-card-no-project`},Mt=2400,Nt=E(c({__name:`AgentCard`,props:{agent:{},spaceId:{},projectNames:{},managesAllProjects:{type:Boolean},entry:{},pinned:{type:Boolean},pinPending:{type:Boolean},selected:{type:Boolean}},emits:[`toggle-pin`,`peek`],setup(t,{emit:o}){let c=t,d=o,f=n(()=>N(c.agent)),m=Ve(Mt),h=n(()=>ve(c.agent)),_=n(()=>h.value.slice(0,2).map(e=>c.projectNames?.[e]||e)),ee=n(()=>Math.max(h.value.length-2,0)),x=n(()=>c.agent.profile.capabilities.slice(0,3)),w=n(()=>`is-${c.agent.profile.status}`),te=n(()=>T(`projectAgents.status.${c.agent.profile.status}`)),E=n(()=>c.entry?.status??`unreported`),D=n(()=>c.entry?.title??T(`agentRedesign.workbench.titleNotLoaded`)),re=n(()=>lt(c.entry?.lastUpdateAt,C())),ie=Me(),ae=n(()=>E.value===`running`?ke(c.entry?.runningSince,C(),ie.value):null),oe=n(()=>({path:De(c.spaceId,c.agent.agentId),query:{task:c.entry?.taskId??``}})),ce=n(()=>ut(c.entry)),le=n(()=>I(c.agent.occupation)),A=n(()=>`is-${E.value}`),j=n(()=>({coordinator:T(`agentProfiles.roles.projectManager`),hr:T(`agentProfiles.roles.hr`)})[c.agent.profile.agentType]??``);function ue(e,t,n){let r=T(e,n);return r===e?t:r}let fe=n(()=>ue(`agentRedesign.membershipStatus`,`Member · ${te.value}`,{status:te.value})),pe=n(()=>{let e={awaiting_recruitment:`Awaiting recruitment`,queued:`Queued`,running:`Running`,paused:`Paused`,awaiting_review:`Awaiting review`,blocked:`Blocked`,none:T(`agentProfiles.idle`),loading:`Loading work status`,unreported:`Partial status`,unavailable:`Unavailable`,ended:`Ended`}[E.value];return ue(`agentRedesign.workStatus.${E.value}`,e??`Work status unavailable`)}),me=n(()=>E.value!==`ended`&&(c.agent.profile.status===`active`||![`none`,`loading`].includes(E.value))),he=n(()=>c.pinPending?de(`saving`,`Saving Agent pin…`):c.pinned?de(`unpin`,`Unpin Agent`):de(`pin`,`Pin Agent`));function ge(){d(`toggle-pin`,!c.pinned)}function ye(e){e.target.closest(`a, button, input, summary`)||window.getSelection()?.toString()||d(`peek`)}return(n,o)=>(s(),r(`article`,{class:b([`agent-card group/card flex h-full min-w-0 cursor-pointer flex-col gap-2 rounded-lg border bg-card px-4 pt-3.5 pb-3 transition-[border-color,box-shadow] hover:border-border-strong`,{"is-selected border-border-strong shadow-md":t.selected}]),"data-return-focus":t.agent.agentId,"data-selected":t.selected||void 0,onClick:ye},[O(`div`,ft,[O(`span`,{class:b([`agent-portrait small agent-card-identity`,{"is-working":E.value===`running`}]),style:v([i(_e)(t.agent.agentId),{"--working-phase":i(m)}]),"aria-hidden":`true`,"data-card-portrait":``},[i(M)(t.agent.agentId)?(s(),r(`img`,{key:0,src:i(M)(t.agent.agentId),alt:``},null,8,pt)):(s(),r(g,{key:1},[y(l(t.agent.profile.occupationEmoji||f.value.slice(0,1)),1)],64))],6),O(`div`,mt,[O(`div`,ht,[e(i(se),{class:`agent-card-name`,to:i(be)(t.spaceId,t.agent.agentId),title:f.value,"aria-label":`${f.value} · ${i(T)(`agentProfiles.profile`)}`},{default:S(()=>[y(l(f.value),1)]),_:1},8,[`to`,`title`,`aria-label`]),e(ze,{"agent-id":t.agent.agentId},null,8,[`agent-id`])]),O(`p`,gt,[t.agent.employeeNumber?(s(),r(`span`,_t,`FLA `+l(t.agent.employeeNumber),1)):a(``,!0),j.value?(s(),u(i(P),{key:1,class:`agent-card-role`},{default:S(()=>[y(l(j.value),1)]),_:1})):a(``,!0),le.value.length?(s(),r(`span`,{key:2,class:`agent-card-occupation min-w-0 truncate`,"data-occupation":``,title:i(T)(`agentRedesign.occupation.title`)},l(le.value.join(` · `)),9,X)):a(``,!0),me.value?(s(),r(`span`,{key:3,class:b([`agent-card-work-status`,A.value]),"data-work-status":E.value,"aria-label":`${i(T)(`agentRedesign.workStatus.label`)} · ${pe.value}`},[O(`span`,Q,l(pe.value),1)],10,Z)):a(``,!0),t.agent.profile.status===`active`?a(``,!0):(s(),r(`span`,{key:4,class:b([`ui-badge agent-card-status agent-card-membership-status`,w.value]),"data-membership-status":t.agent.profile.status},l(fe.value),11,$))])]),e(i(k),{variant:`outline`,size:`icon-sm`,class:`agent-card-pin`,"data-agent-pin-toggle":``,"aria-label":`${he.value} · ${f.value}`,"aria-pressed":!!t.pinned,title:he.value,loading:t.pinPending,"loading-label":he.value,onClick:ne(ge,[`stop`])},{default:S(()=>[e(Oe,{filled:t.pinned},null,8,[`filled`])]),_:1},8,[`aria-label`,`aria-pressed`,`title`,`loading`,`loading-label`])]),t.entry?.taskId?(s(),r(`p`,vt,[O(`span`,yt,l(i(T)(`agentRedesign.workbench.current`)),1),e(i(se),{class:b([`agent-card-current-task`,{"is-unloaded":!t.entry.title}]),to:oe.value,title:D.value},{default:S(()=>[y(l(D.value),1)]),_:1},8,[`to`,`class`,`title`]),E.value===`running`?(s(),r(`span`,{key:0,class:`agent-card-last-update`,title:t.entry.runningSince??void 0,"data-running-since":``},l(ae.value?i(T)(`agentRedesign.workbench.runningFor`,{duration:ae.value}):i(T)(`agentRedesign.workbench.runningForUnknown`)),9,bt)):(s(),r(`span`,{key:1,class:`agent-card-last-update`,title:t.entry.lastUpdateAt??void 0,"data-last-update":``},l(re.value?i(T)(`agentRedesign.workbench.lastUpdate`,{time:re.value}):i(T)(`agentRedesign.workbench.lastUpdateUnknown`)),9,xt))])):a(``,!0),ce.value?(s(),r(`p`,{key:1,class:b([`agent-card-status-detail`,A.value]),title:ce.value,"data-status-detail":``},l(ce.value),11,St)):a(``,!0),O(`p`,{class:`agent-card-responsibility`,"data-agent-summary":``,title:t.agent.profile.responsibility},l(t.agent.profile.responsibility),9,Ct),x.value.length?(s(),r(`div`,wt,[(s(!0),r(g,null,p(x.value,e=>(s(),r(`span`,{key:e},l(e),1))),128))])):a(``,!0),O(`div`,Tt,[O(`div`,Et,[_.value.length?(s(),r(`div`,Dt,[(s(!0),r(g,null,p(_.value,e=>(s(),r(`span`,{key:e,class:`ui-badge agent-card-project-badge`,title:e},l(e),9,Ot))),128)),ee.value?(s(),r(`span`,kt,` +`+l(ee.value),1)):a(``,!0)])):t.managesAllProjects?(s(),r(`span`,At,l(i(T)(`agentProfiles.allProjects`)),1)):(s(),r(`span`,jt,l(i(T)(`agentProfiles.noProject`)),1))]),e(i(k),{variant:`ghost`,size:`sm`,class:`agent-card-peek shrink-0`,"data-agent-peek":``,"aria-label":i(T)(`agentProfiles.quickLookAgent`,{name:f.value}),"aria-haspopup":`dialog`,onClick:o[0]||=ne(e=>d(`peek`),[`stop`])},{default:S(()=>[y(l(i(T)(`agentProfiles.quickLook`)),1)]),_:1},8,[`aria-label`])])],10,dt))}}),[[`__scopeId`,`data-v-7aa081af`]]),Pt=new Map,Ft=()=>({agents:[],phase:`open`,cursor:null,complete:!1});function It(e,t){let n=D([]),r=D(!1),i=D(``),a=D(!1),o=Ft(),s=``,c=0;function l(e){o=e,n.value=e.agents,a.value=e.complete}function u(){c+=1,s=`${e.value}\n${t.value}`,r.value=!1,i.value=``;let n=Pt.get(s);return l(n??Ft()),n?Promise.resolve():d()}async function d(){let n=e.value;if(!n||r.value||o.complete)return;let a=c,u=o,f=new URLSearchParams({personalSpaceId:n,limit:`50`});t.value!==`all`&&f.set(`status`,t.value),u.phase===`open`&&f.set(`work`,`open`),u.cursor&&f.set(`cursor`,u.cursor),r.value=!0,i.value=``;let p=!1;try{let e=await j(`/api/project-agent-pages?${f}`);if(a!==c)return;let t=xe(e),r=typeof t.nextCursor==`string`&&t.nextCursor?t.nextCursor:null,i=t.complete===!0;if(!i&&!r)throw Error(T(`agentProfiles.pageBroken`));let o=new Set(u.agents.map(e=>e.agentId)),d=Ce(e,n).filter(e=>!o.has(e.agentId)&&(o.add(e.agentId),!0)),m={agents:[...u.agents,...d],phase:i?`all`:u.phase,cursor:i?null:r,complete:i&&u.phase===`all`};Pt.set(s,m),l(m),p=u.phase===`open`&&i&&m.agents.length<50}catch(e){a===c&&(i.value=e instanceof Error?e.message:T(`agentProfiles.loadError`))}finally{a===c&&(r.value=!1)}p&&a===c&&await d()}function f(){return Pt.delete(s),u()}return w([e,t],u,{immediate:!0}),{agents:n,loading:r,error:i,complete:a,loadMore:d,reload:f}}var Lt={running:0,awaiting_review:1,blocked:2,paused:3,queued:4,awaiting_recruitment:5,loading:6,unreported:6,unavailable:6,none:7,ended:8},Rt=new Set([`blocked`,`awaiting_review`,`paused`]);function zt(e){return Te.includes(e)}function Bt(e,t){let n={};for(let r of z(e,t))n[r.taskId]={taskId:r.taskId,title:r.title,updatedAt:r.updatedAt??null,participantUpdatedAt:Object.fromEntries(r.participants.map(e=>[e.agentId,e.updatedAt??null])),summary:r.resultSummary?.trim()||null};return n}function Vt(e,t){return e?e.status:t===`loading`?`loading`:t===`error`?`unavailable`:t===`incomplete`?`unreported`:`none`}function Ht(e){return e===`idle`?`none`:e===`ended`?`ended`:zt(e)?e:`unreported`}function Ut(e,t){let n=typeof e.workStatus==`string`,r=n?Ht(e.workStatus):Vt(t.summary,t.summaryState),i=zt(r)?n?e.currentTaskId??null:t.summary?.taskId??null:null,a=i?t.tasks?.[i]:void 0,o=a?.title??(i&&t.summary?.taskId===i?t.summary.title:null),s=a?a.participantUpdatedAt[e.agentId]??a.updatedAt:null;return{status:r,source:n?`roster`:t.summary?`tasks`:`unknown`,taskId:i,title:o,lastUpdateAt:s,reason:Rt.has(r)?a?.summary??null:null,runningSince:n&&r===`running`?e.currentTaskRunningSince??null:null}}function Wt(e){let t=e?Date.parse(e):NaN;return Number.isNaN(t)?null:t}function Gt(e,t){let n=Lt[e.entry.status]-Lt[t.entry.status];if(n)return n;let r=Wt(e.entry.lastUpdateAt),i=Wt(t.entry.lastUpdateAt);return r===i?e.name.localeCompare(t.name):r===null?1:i===null?-1:i-r}function Kt(e){let t=D({}),n=D({}),r=D(!1),i=D(``),a=D(`idle`),o=new Map,s=0;async function c(){let c=++s,l=e.value;if(i.value=``,!l){t.value={},n.value={},r.value=!1,a.value=`idle`;return}let u=o.get(l);u?(t.value=u.summaries,n.value=u.tasks):(Object.keys(t.value).length||Object.keys(n.value).length)&&(t.value={},n.value={}),r.value=!0,a.value=`loading`;try{let r=new URLSearchParams({personalSpaceId:l,limit:`200`}),i=await j(`/api/project-agent-tasks?${r}`);if(c!==s||e.value!==l)return;let u={summaries:R(i,l),tasks:Bt(i,l)};o.set(l,u),t.value=u.summaries,n.value=u.tasks,a.value=L(i)?`ready`:`incomplete`}catch(t){if(c!==s||e.value!==l)return;i.value=t instanceof Error?t.message:T(`agentProfiles.loadError`),a.value=`error`}finally{c===s&&e.value===l&&(r.value=!1)}}return w(e,c,{immediate:!0}),{summaries:t,tasks:n,loading:r,error:i,state:a,load:c}}function qt(e,t,r){let i=D([]);w(r,()=>{i.value=[]}),w([e,t],([e,t])=>{t&&e.length&&!i.value.length&&(i.value=[...e])},{immediate:!0});let a=n(()=>{if(!i.value.length)return e.value;let t=new Map(i.value.map((e,t)=>[e,t]));return[...e.value.filter(e=>t.has(e)).sort((e,n)=>t.get(e)-t.get(n)),...e.value.filter(e=>!t.has(e))]});function o(){i.value=[...e.value]}return{order:a,apply:o}}var Jt=[`src`],Yt=E(c({__name:`EmployeeWorkbenchLinks`,props:{personalSpaceId:{}},setup(t){let o=t;w(()=>o.personalSpaceId,e=>{B(e===`current`?``:e)},{immediate:!0});let c=n(()=>Ee.value.filter(e=>e.agentId&&e.agentStatus===`active`&&(e.runtime||e.workbench?.kind===`native`)));return(t,n)=>(s(!0),r(g,null,p(c.value,t=>(s(),u(i(k),{key:t.id,"as-child":``,variant:`outline`,class:`employee-workbench-link`},{default:S(()=>[e(i(se),{to:`/employees/${encodeURIComponent(t.id)}`,title:i(T)(`agentProfiles.workbench`)},{default:S(()=>[i(M)(t.id)?(s(),r(`img`,{key:0,src:i(M)(t.id),alt:``,"aria-hidden":`true`},null,8,Jt)):a(``,!0),y(` `+l(t.name)+` · `+l(t.role),1)]),_:2},1032,[`to`,`title`])]),_:2},1024))),128))}}),[[`__scopeId`,`data-v-7bbbbacd`]]),Xt=[`aria-label`],Zt={class:`@container mx-auto w-full max-w-(--canvas-max)`},Qt={class:`agents-directory-toolbar`},$t={class:`ui-toolbar agents-directory-filters`},en={key:0,class:`agents-directory-search`},tn={class:`ui-sr-only`},nn=[`placeholder`],rn={class:`agents-directory-heading`},an={key:1,class:`agents-directory-count`},on={key:0,class:`agents-directory-notice is-error`,role:`alert`},sn={key:2,class:`agents-directory-notice agent-directory-work-error`,role:`status`},cn={key:4,role:`alert`,class:`ui-card ui-empty agent-profile-empty`},ln={key:5,class:`agents-directory-partial`,role:`status`},un={key:6,class:`ui-card ui-empty agent-profile-empty`},dn={key:7,class:`agents-directory-reorder`,role:`status`},fn={key:8,class:`agents-directory-grid grid grid-cols-1 gap-3 @min-[620px]:grid-cols-2 @min-[960px]:grid-cols-3 @min-[1400px]:grid-cols-4`},pn={key:9,class:`agents-directory-projects`},mn={class:`agents-directory-grid grid grid-cols-1 gap-3 @min-[620px]:grid-cols-2 @min-[960px]:grid-cols-3 @min-[1400px]:grid-cols-4`},hn={key:1,class:`agents-directory-more-error`,role:`alert`},gn=E(c({__name:`AgentsDirectoryPage`,setup(c){let d=ie(),m=oe(),v=ae(),b=n(()=>d.activePersonalSpace?.id??``),x=ue(b),E=x.agentIds,ne=x.savingAgentId,re=x.error,se=n(()=>de(`retry`,`Retry`)),{summaries:j,tasks:M,loading:_e,error:xe,state:Ce,load:we}=Kt(b),P=qe(m.query),F=D(P.search),I=D(P.status),L=D(P.projects),R=D(P.view),{agents:z,loading:Te,error:B,complete:V,loadMore:De,reload:Oe}=It(b,I),ke=n(()=>Te.value&&!z.value.length),Me=n(()=>!V.value&&z.value.length>0),ze=n(()=>!!(F.value.trim()||L.value.length)),Ve=D({}),H=D(null),Ue=D(null),We=He(Ue,H),Ge=D(!1),U=n(()=>Ee.value.some(e=>!e.fixed)),Ke=e=>Ee.value.some(t=>t.agentId===e&&t.management?.mode===`all`),Xe=n(()=>(d.state?.personalProjects??[]).filter(e=>e.personal_space_id===b.value)),W=n(()=>Xe.value.filter(e=>pe(e))),Qe=n(()=>new Map(W.value.map(e=>[e.project_id,e]))),$e=n(()=>W.value.map(e=>({value:e.project_id,label:e.profile.name}))),et=n(()=>Object.fromEntries(Xe.value.map(e=>[e.project_id,fe(e)]))),tt=n(()=>[{value:`all`,label:T(`agentProfiles.allStatus`)},...[`active`,`inactive`,`archived`].map(e=>({value:e,label:T(`projectAgents.status.${e}`)}))]),nt=e=>(I.value===`all`||e.profile.status===I.value)&&(!L.value.length||ve(e).some(e=>L.value.includes(e)))&&ye([N(e),e.employeeNumber?`FLA ${e.employeeNumber}`:``,e.profile.responsibility,...e.profile.capabilities,...ve(e).map(e=>et.value[e]||e)].join(` `),F.value),G=n(()=>ke.value||_e.value||d.runtimeStatus===`loading`),rt=n(()=>Object.fromEntries(z.value.map(e=>[e.agentId,Ut(e,{summary:j.value[e.agentId],summaryState:Ce.value,tasks:M.value})]))),K=n(()=>new Map(z.value.map(e=>[e.agentId,e]))),it=n(()=>z.value.map(e=>({agent:e,entry:rt.value[e.agentId],name:N(e)})).sort(Gt).map(e=>e.agent.agentId)),at=qt(it,n(()=>!G.value),b),ot=e=>e.map(e=>K.value.get(e)).filter(e=>e&&nt(e)),q=D(P.sort),st=n(()=>[{value:`recent`,label:T(`agentProfiles.sort.recent`)},{value:`name`,label:T(`agentProfiles.sort.name`)}]),J=n(()=>{let e=ot(at.order.value);return q.value===`name`?[...e].sort((e,t)=>N(e).localeCompare(N(t),C())):e}),Y=D(!1),lt=D(null);async function ut(){Y.value=!0,await f(),lt.value?.focus()}let dt=n(()=>[{value:`agents`,label:T(`agentRedesign.projectView.agents`)},{value:`projects`,label:T(`agentRedesign.projectView.projects`)}]),ft=n(()=>Ze(J.value.map(e=>e.agentId),e=>ve(K.value.get(e)),e=>rt.value[e]?.status,W.value.map(e=>e.project_id),L.value,{includeEmpty:!F.value.trim()}).map(e=>({...e,key:e.projectId,name:et.value[e.projectId]||e.projectId,purpose:Qe.value.get(e.projectId)?.profile.purpose??null,agents:e.agentIds.map(e=>K.value.get(e))}))),pt=e=>({agent:e,spaceId:b.value,projectNames:et.value,managesAllProjects:Ke(e.agentId),entry:rt.value[e.agentId],pinned:E.value.includes(e.agentId),pinPending:ne.value===e.agentId,selected:Z.value===e.agentId}),mt=n(()=>ot(it.value).some((e,t)=>e.agentId!==J.value[t]?.agentId));async function ht(e,t){await x.setPinned(e,t)}o(()=>{d.runtimeStatus===`idle`&&d.refresh()});let gt=()=>({search:F.value,projects:L.value,status:I.value,view:R.value,sort:q.value});w(()=>m.query,e=>{let t=qe(e);F.value=t.search,L.value=t.projects,I.value=t.status,R.value=t.view,q.value=t.sort}),w([F,I,L,R,q],()=>{Ye(qe(m.query),gt())||v.replace({query:Je(m.query,gt())})},{deep:!0}),je(H,`agents-directory`,n(()=>J.value.length>0));let _t=Fe(H,`agents-directory`,n(()=>J.value.length>0)),X=Le(),Z=n(()=>X.item.value?.spaceId===b.value?X.item.value.id:``),Q=Se(b,n(()=>Z.value&&!K.value.has(Z.value)?[Z.value]:[])),$=n(()=>Z.value&&(K.value.get(Z.value)??Q.records.value[Z.value])||void 0),vt=n(()=>{let e=$.value;if(e)return rt.value[e.agentId]??Ut(e,{summary:j.value[e.agentId],summaryState:Ce.value,tasks:M.value})}),yt=n(()=>{let e=X.item.value;return!e||!b.value?d.runtimeStatus===`error`?`error`:`loading`:e.spaceId===b.value?$.value?`ready`:Q.loading.value?`loading`:Q.error.value?`error`:`unavailable`:`unavailable`}),bt=null,xt=``;w(Z,e=>{e&&(xt=e)},{immediate:!0});function St(e){let t=document.activeElement;bt=t instanceof HTMLElement&&t!==document.body?t:null,X.open({spaceId:b.value,id:e})}function Ct(e){let t=e.target?.querySelector(`[data-peek-open-full]`);t&&(e.preventDefault(),t.focus())}function wt(e){e||X.close()}function Tt(e){e.preventDefault();let t=bt;bt=null,t?.isConnected?t.focus({preventScroll:!0}):Ie(H.value,xt)}function Et(){let e=$.value;e&&(_t.remember(e.agentId),v.replace(be(b.value,e.agentId)))}w([b,()=>m.query.agent],([e,t])=>{if(e&&typeof t==`string`){let{agent:n,...r}=m.query;v.replace({path:typeof m.query.task==`string`?`/project-agents/manage`:be(e,t),query:typeof m.query.task==`string`?m.query:r})}},{immediate:!0}),w(b,(e,t)=>{t&&(F.value=``,L.value=[],I.value=`all`,Ve.value={})});async function Dt(e){Ge.value=!1,await v.push(be(b.value,e.agent.agentId))}w([We,Te,B,V],()=>{We.value&&!Te.value&&!B.value&&!V.value&&De()});async function Ot(){d.state||await d.refresh(),await Promise.allSettled([Oe(),we()])}function kt(e){d.rememberPersonalProject(e)}return(n,o)=>(s(),r(`section`,{ref_key:`scroller`,ref:H,class:`view agents-directory`,"aria-label":i(T)(`agentProfiles.title`)},[O(`div`,Zt,[O(`div`,Qt,[O(`div`,$t,[e(ge,{modelValue:L.value,"onUpdate:modelValue":o[0]||=e=>L.value=e,class:`agents-directory-select`,multiple:``,options:$e.value,label:i(T)(`employees.filterLabel`),placeholder:i(T)(`employees.allProjectsFilter`)},null,8,[`modelValue`,`options`,`label`,`placeholder`]),e(ge,{modelValue:I.value,"onUpdate:modelValue":o[1]||=e=>I.value=e,class:`agents-directory-select`,options:tt.value,label:i(T)(`projectAgents.fields.status`)},null,8,[`modelValue`,`options`,`label`]),e(ge,{modelValue:q.value,"onUpdate:modelValue":o[2]||=e=>q.value=e,class:`agents-directory-select`,"data-directory-sort":``,options:st.value,label:i(T)(`agentProfiles.sort.label`)},null,8,[`modelValue`,`options`,`label`]),e(he,{modelValue:R.value,"onUpdate:modelValue":o[3]||=e=>R.value=e,class:`agents-directory-view`,"data-directory-view":``,options:dt.value,label:i(T)(`agentRedesign.projectView.label`)},null,8,[`modelValue`,`options`,`label`]),Y.value||F.value?(s(),r(`label`,en,[O(`span`,tn,l(i(T)(`agentProfiles.search`)),1),te(O(`input`,{ref_key:`searchInput`,ref:lt,"onUpdate:modelValue":o[4]||=e=>F.value=e,type:`search`,maxlength:`160`,placeholder:i(T)(`agentProfiles.search`),onFocus:o[5]||=e=>Y.value=!0,onBlur:o[6]||=e=>Y.value=!1,onKeydown:o[7]||=h(e=>{F.value=``,Y.value=!1},[`esc`])},null,40,nn),[[ee,F.value]])])):(s(),u(me,{key:1,icon:`search`,label:i(T)(`agentProfiles.search`),"data-directory-search":``,onClick:ut},null,8,[`label`]))]),O(`div`,rn,[G.value&&i(z).length?(s(),u(A,{key:0,variant:`inline`,label:i(T)(`agentRedesign.refreshing`)},null,8,[`label`])):a(``,!0),!G.value||i(z).length?(s(),r(`p`,an,l(i(T)(Me.value?`agentProfiles.membersLoaded`:`agentProfiles.members`,{count:i(z).length})),1)):a(``,!0),e(Yt,{"personal-space-id":b.value||`current`},null,8,[`personal-space-id`]),U.value?(s(),u(i(k),{key:2,size:`sm`,disabled:!b.value,onClick:o[8]||=e=>Ge.value=!0},{default:S(()=>[y(l(i(T)(`employees.recruit`)),1)]),_:1},8,[`disabled`])):a(``,!0)])]),i(re)?(s(),r(`p`,on,[O(`span`,null,l(i(re)),1),e(i(k),{size:`sm`,variant:`ghost`,onClick:o[9]||=e=>i(x).load({force:!0})},{default:S(()=>[y(l(se.value),1)]),_:1})])):a(``,!0),!G.value&&!i(B)&&i(d).runtimeStatus===`ready`&&!W.value.length?(s(),u(Pe,{key:1,"personal-space-id":b.value},null,8,[`personal-space-id`])):a(``,!0),i(xe)?(s(),r(`p`,sn,[O(`span`,null,l(i(T)(`agentRedesign.workStatus.refreshError`)),1),e(i(k),{size:`sm`,variant:`ghost`,onClick:i(we)},{default:S(()=>[y(l(i(T)(`agentProfiles.retry`)),1)]),_:1},8,[`onClick`])])):a(``,!0),G.value&&!i(z).length?(s(),u(A,{key:3,label:i(T)(`agentProfiles.loading`)},null,8,[`label`])):a(``,!0),i(B)&&!i(z).length||i(d).runtimeStatus===`error`?te((s(),r(`div`,cn,[O(`p`,null,l(!i(z).length&&i(B)||i(T)(`agentProfiles.loadError`)),1),e(i(k),{size:`sm`,variant:`outline`,onClick:Ot},{default:S(()=>[y(l(i(T)(`agentProfiles.retry`)),1)]),_:1})],512)),[[_,!G.value||i(z).length===0]]):a(``,!0),Me.value?(s(),r(`p`,ln,l(i(T)(ze.value?`agentProfiles.partialFilter`:`agentProfiles.partialRoster`,{count:i(z).length})),1)):a(``,!0),!G.value&&i(V)&&!J.value.length&&R.value===`agents`&&!i(B)&&i(d).runtimeStatus!==`error`?(s(),r(`p`,un,l(i(T)(i(z).length?`agentProfiles.noMatch`:`agentProfiles.noAgents`)),1)):a(``,!0),mt.value&&!G.value?(s(),r(`p`,dn,[O(`span`,null,l(i(T)(`agentRedesign.workbench.reorderHint`)),1),e(i(k),{size:`sm`,variant:`ghost`,"data-workbench-reorder":``,onClick:o[10]||=e=>i(at).apply()},{default:S(()=>[y(l(i(T)(`agentRedesign.workbench.reorder`)),1)]),_:1})])):a(``,!0),J.value.length&&R.value===`agents`?(s(),r(`ul`,fn,[(s(!0),r(g,null,p(J.value,n=>(s(),r(`li`,{key:n.agentId},[e(Nt,t({ref_for:!0},pt(n),{onTogglePin:e=>ht(n.agentId,e),onPeek:e=>St(n.agentId)}),null,16,[`onTogglePin`,`onPeek`])]))),128))])):R.value===`projects`?(s(),r(`div`,pn,[e(Re,{"space-id":b.value,"formal-projects":W.value,"existing-project-ids":Xe.value.map(e=>e.project_id),onProjectCreated:kt},null,8,[`space-id`,`formal-projects`,`existing-project-ids`]),(s(!0),r(g,null,p(ft.value,n=>(s(),u(ct,{key:n.key,expanded:Ve.value[n.key],"onUpdate:expanded":e=>Ve.value[n.key]=e,"space-id":b.value,"project-id":n.projectId,name:n.name,purpose:n.purpose,agents:n.agents,count:n.agents.length,"running-count":n.runningCount,"unknown-count":n.unknownCount},{default:S(()=>[O(`ul`,mn,[(s(!0),r(g,null,p(n.agents,n=>(s(),r(`li`,{key:n.agentId},[e(Nt,t({ref_for:!0},pt(n),{onTogglePin:e=>ht(n.agentId,e),onPeek:e=>St(n.agentId)}),null,16,[`onTogglePin`,`onPeek`])]))),128))])]),_:2},1032,[`expanded`,`onUpdate:expanded`,`space-id`,`project-id`,`name`,`purpose`,`agents`,`count`,`running-count`,`unknown-count`]))),128))])):a(``,!0),i(z).length&&!i(V)?(s(),r(`div`,{key:10,ref_key:`rosterEnd`,ref:Ue,class:`agents-directory-more`},[i(Te)?(s(),u(A,{key:0,variant:`inline`,label:i(T)(`agentProfiles.loadingMore`)},null,8,[`label`])):i(B)?(s(),r(`p`,hn,[O(`span`,null,l(i(T)(`agentProfiles.loadMoreError`))+` `+l(i(B)),1),e(i(k),{size:`sm`,variant:`ghost`,"data-roster-retry":``,onClick:i(De)},{default:S(()=>[y(l(i(T)(`agentProfiles.retry`)),1)]),_:1},8,[`onClick`])])):(s(),u(i(k),{key:2,size:`sm`,variant:`ghost`,"data-roster-more":``,onClick:i(De)},{default:S(()=>[y(l(i(T)(`agentProfiles.loadMore`)),1)]),_:1},8,[`onClick`]))],512)):a(``,!0)]),e(Ne,{scroller:H.value},null,8,[`scroller`]),e(i(ce),{open:!!i(X).item.value,"onUpdate:open":wt},{default:S(()=>[e(i(le),{class:`agent-peek`,"data-agent-peek-dialog":``,onOpenAutoFocus:Ct,onCloseAutoFocus:Tt},{default:S(()=>[e(Ae,{state:yt.value,error:i(Q).error.value,agent:$.value,entry:vt.value,"project-names":et.value,"manages-all-projects":$.value?Ke($.value.agentId):!1,pinned:$.value?i(E).includes($.value.agentId):!1,"pin-pending":!!$.value&&i(ne)===$.value?.agentId,onTogglePin:o[11]||=e=>$.value&&ht($.value.agentId,e),onOpenFull:Et,onRetry:o[12]||=e=>i(Q).load({force:!0})},null,8,[`state`,`error`,`agent`,`entry`,`project-names`,`manages-all-projects`,`pinned`,`pin-pending`])]),_:1})]),_:1},8,[`open`]),e(Be,{open:Ge.value,"personal-space-id":b.value,projects:W.value,"default-project-ids":L.value??[],onClose:o[13]||=e=>Ge.value=!1,onRecruited:Dt},null,8,[`open`,`personal-space-id`,`projects`,`default-project-ids`])],8,Xt))}}),[[`__scopeId`,`data-v-a05a0461`]]);export{gn as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{B as e,Dt as t,J as n,M as r,T as i,Z as a,k as o,ot as s,w as c}from"./_plugin-vue_export-helper-Crd8aFkh.js";import{h as l}from"./useApi-CROJJdhE-BMswzZdS.js";import{t as u}from"./vue-router-BUjBh_Iw.js";var d=[`href`,`onClick`],f=r({inheritAttrs:!1,__name:`BackLink`,props:{to:{},from:{}},setup(r){let f=r,p=l();function m(e){if(e.defaultPrevented||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.button!==void 0&&e.button!==0)return!0;let t=e.currentTarget?.getAttribute?.(`target`);return!!(t&&/\b_blank\b/i.test(t))}function h(e,t){if(m(e))return;let n=p.options.history.state?.back;typeof n==`string`&&f.from.test(n)?(e.preventDefault(),p.back()):t(e)}return(l,f)=>(n(),i(t(u),{to:r.to,custom:``},{default:s(({href:t,navigate:n})=>[c(`a`,e(l.$attrs,{href:t,onClick:e=>h(e,n)}),[f[0]||=c(`span`,{"aria-hidden":`true`},`←`,-1),f[1]||=o(),a(l.$slots,`default`)],16,d)]),_:3},8,[`to`]))}});export{f as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e,D as t,Dt as n,J as r,M as i,Mt as a,T as o,X as s,b as c,k as l,ot as u,s as d}from"./_plugin-vue_export-helper-Crd8aFkh.js";import{t as f}from"./button-B4gCj85U.js";import{a as p,i as m,n as h,r as g,s as _,t as v}from"./dropdown-menu-CN5wjWUD.js";import{t as y}from"./UiIcon-DSkB5Juh.js";import"./ui-BkbPVq3y.js";import{n as b,r as x,t as S}from"./task-board-model-BohbBuwF.js";var C=i({__name:`BoardMoveMenu`,props:{item:{},disabled:{type:Boolean}},emits:[`move`,`close-auto-focus`],setup(i,{emit:C}){let w=C;return(C,T)=>(r(),o(n(_),null,{default:u(()=>[e(n(v),{"as-child":``,disabled:i.disabled},{default:u(()=>[e(n(f),{variant:`ghost`,size:`icon-sm`,"data-move-control":`menu`,disabled:i.disabled,"aria-label":n(d)(`employees.allProjects.moveTo`,{task:i.item.title}),title:n(d)(`employees.allProjects.moveTo`,{task:i.item.title})},{default:u(()=>[e(n(y),{name:`more`,size:16})]),_:1},8,[`disabled`,`aria-label`,`title`])]),_:1},8,[`disabled`]),e(n(p),{align:`end`,"data-move-menu-for":n(b)(i.item),onCloseAutoFocus:T[0]||=e=>w(`close-auto-focus`,e)},{default:u(()=>[e(n(g),null,{default:u(()=>[l(a(n(d)(`employees.allProjects.moveToLabel`)),1)]),_:1}),e(n(h)),(r(!0),t(c,null,s(n(S),e=>(r(),o(n(m),{key:e.value,disabled:!n(x)(i.item,e.value),"data-move-target":e.value,onSelect:t=>w(`move`,e.value)},{default:u(()=>[l(a(e.value===i.item.status?n(d)(`employees.allProjects.currentStatus`,{status:n(d)(e.labelKey)}):n(d)(e.labelKey)),1)]),_:2},1032,[`disabled`,`data-move-target`,`onSelect`]))),128))]),_:1},8,[`data-move-menu-for`])]),_:1}))}});export{C as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.capture-change[data-v-bd825c64]{width:100%;min-width:0;max-width:var(--form-max);gap:16px;margin-inline:auto;display:grid}.capture-change-body[data-v-bd825c64]{gap:20px;min-width:0;padding:0 20px;display:grid}.capture-change-body>section[data-v-bd825c64]{gap:8px;display:grid}.capture-change-notice[data-v-bd825c64]{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);gap:4px;margin:0;padding:12px 16px;font-size:14px;display:grid}.capture-change-notice a[data-v-bd825c64]{color:var(--color-accent)}.capture-change-done[data-v-bd825c64]{border-color:var(--color-success)}.capture-change-stale[data-v-bd825c64]{border-color:var(--color-warning)}.capture-change-stale span[data-v-bd825c64]{color:var(--color-muted);font-size:13px}.capture-change-sentence[data-v-bd825c64]{background:var(--color-surface-subtle);overflow-wrap:anywhere;border-radius:10px;margin:0;padding:14px 16px;font-size:16px;line-height:1.7}.capture-change-heading[data-v-bd825c64]{color:var(--color-muted);margin:0;font-size:13px;font-weight:600}.capture-change-list[data-v-bd825c64]{gap:8px;margin:0;display:grid}.capture-change-list>div[data-v-bd825c64]{grid-template-columns:minmax(120px,200px) minmax(0,1fr);gap:4px 16px;display:grid}.capture-change-list dt[data-v-bd825c64]{color:var(--color-muted);font-size:13px}.capture-change-list dd[data-v-bd825c64]{overflow-wrap:anywhere;flex-wrap:wrap;align-items:baseline;gap:6px;margin:0;font-size:14px;display:flex}.capture-change-before[data-v-bd825c64]{color:var(--color-muted);text-decoration:line-through}.capture-change-note[data-v-bd825c64]{color:var(--color-muted);margin:0;font-size:13px}.capture-change-actions[data-v-bd825c64]{flex-wrap:wrap;gap:8px;display:flex}.capture-change-failure[data-v-bd825c64]{color:var(--color-danger);margin:0;font-size:13px}@media (width<=520px){.capture-change-list>div[data-v-bd825c64]{grid-template-columns:minmax(0,1fr)}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e,C as t,D as n,Dt as r,E as i,G as a,J as o,M as ee,Mt as s,T as c,X as l,b as u,k as d,ot as f,r as te,s as p,t as m,vt as h,w as g}from"./_plugin-vue_export-helper-Crd8aFkh.js";import{t as ne}from"./console-k05BnLkZ.js";import{m as re}from"./useApi-CROJJdhE-BMswzZdS.js";import{t as _}from"./vue-router-BUjBh_Iw.js";import{t as v}from"./button-B4gCj85U.js";import{t as y}from"./GrowthLoading-DssogOkP.js";import{a as ie,c as b,r as x,t as S}from"./client-Cg0bLxrO.js";import{i as ae}from"./project-origin-DI7ft7I8.js";import{t as C}from"./Card-96u8qomm.js";import{n as oe,t as w}from"./CardHeader-4je7E12I.js";import{t as T}from"./CardTitle-bjMusOR6.js";import{i as se,r as ce}from"./date-time-Clwafva-.js";var E={codex:`Codex`,claude:`Claude`,claude_code:`Claude Code`,cursor:`Cursor`,kiro:`Kiro`},D=8;function O(e){return E[e]??p(`capture.confirm.otherClient`)}function le(e){return e?e.length>D?`${e.slice(0,D)}…`:e:``}function k(e){return p(`capture.confirm.settings.${e}`)}function ue(e,t,n){if(e===`enabled`)return p(t?`capture.confirm.values.on`:`capture.confirm.values.off`);if(e===`projectMode`)return p(`capture.settings.modes.${String(t)}`);if(e===`unregisteredDirectories`)return p(t===`skip`?`capture.confirm.values.skip`:`capture.confirm.values.capture`);let r=Array.isArray(t)?t.map(String):[];return r.length?r.map(t=>e===`disabledSources`?O(t):n(t)).join(`、`):p(`capture.confirm.values.none`)}var de={class:`capture-change`,"data-capture-change":``},fe={key:1,class:`capture-change-notice`,role:`alert`},pe={key:0,class:`capture-change-notice capture-change-done`,role:`status`,"data-capture-change-outcome":`saved`},me={key:1,class:`capture-change-notice`,role:`status`,"data-capture-change-outcome":`cancelled`},he={key:2,class:`capture-change-notice capture-change-stale`,role:`alert`,"data-capture-change-outcome":`stale`},A=[`data-capture-change-outcome`],j={key:1},M={class:`capture-change-list capture-change-body`,"data-capture-change-current":``},N={class:`capture-change-body`},P=[`title`],F={"aria-labelledby":`capture-change-diff`},I={id:`capture-change-diff`,class:`capture-change-heading`},L={class:`capture-change-list`},R=[`data-capture-change-setting`],ge={class:`capture-change-before`},_e={class:`ui-sr-only`},ve={key:0,"aria-labelledby":`capture-change-current`},ye={id:`capture-change-current`,class:`capture-change-heading`},be={class:`capture-change-list`,"data-capture-change-current":``},xe={class:`capture-change-note`},Se={key:1,class:`capture-change-actions`},Ce={key:2,class:`capture-change-failure`,role:`alert`,"data-capture-change-error":``},z=m(ee({__name:`CaptureChangePage`,setup(ee){let m=re(),E=ne(),D=t(()=>String(m.params.previewId??``)),z=h(null),B=h(!0),V=h(``),H=h(null),U=h(null),W=h(``),G=h(!1),K=h(!1),q=h(!1),we=t(()=>new Map((E.state?.personalProjects??[]).map(e=>[e.project_id,ae(e)]))),Te=e=>we.value.get(e)??e,J=(e,t)=>ue(e,t,Te),Ee=[`enabled`,`disabledSources`,`projectMode`,`unregisteredDirectories`],De=e=>e.projectMode===`selected`?{setting:`selectedProjectIds`,ids:e.selectedProjectIds??[]}:e.projectMode===`all_except`?{setting:`excludedProjectIds`,ids:e.excludedProjectIds??[]}:null,Y=t(()=>U.value===`stale`||!U.value&&z.value?.status===`stale`),Oe=t(()=>K.value?E.state?.capturePolicy??null:U.value===`gone`||U.value===`unknown`?null:z.value?.current??null),X=t(()=>{let e=Oe.value;if(!e)return[];let t=De(e);return[...Ee.map(t=>({label:k(t),value:J(t,e[t])})),...t?[{label:k(t.setting),value:J(t.setting,t.ids)}]:[]]});async function Z(){G.value=!0;try{await E.settledCapturePolicy(),K.value=!0}catch{q.value=!0}finally{G.value=!1}}let ke=e=>se(e,te(),ce,{missing:``});async function Q(){B.value=!0,V.value=``;try{z.value=await ie(`/api/capture-changes/${encodeURIComponent(D.value)}`)}catch(e){e instanceof S&&(e.status===404||e.status===410)?(U.value=`gone`,Z()):V.value=x(e)}finally{B.value=!1}}async function $(e){if(!H.value){H.value=e,W.value=``;try{let t=await b(`/api/capture-changes/${encodeURIComponent(D.value)}/${e}`,{});e===`confirm`?(E.rememberCapturePolicy(t),z.value&&={...z.value,current:t},U.value=`saved`):U.value=`cancelled`}catch(e){e instanceof S&&e.status===409?U.value=`stale`:e instanceof S&&e.status>=400&&e.status<500&&e.status!==404&&e.status!==410?W.value=x(e):(U.value=e instanceof S&&(e.status===404||e.status===410)?`gone`:`unknown`,W.value=x(e),await Z())}finally{H.value=null}}}return a(Q),(t,a)=>(o(),n(`div`,de,[B.value?(o(),c(y,{key:0,label:r(p)(`capture.confirm.loading`)},null,8,[`label`])):V.value?(o(),n(`div`,fe,[g(`p`,null,s(r(p)(`capture.confirm.loadFailed`,{reason:V.value})),1),e(r(v),{variant:`outline`,size:`sm`,onClick:Q},{default:f(()=>[d(s(r(p)(`capture.confirm.retry`)),1)]),_:1})])):(o(),n(u,{key:2},[U.value===`saved`?(o(),n(`p`,pe,[d(s(r(p)(`capture.confirm.saved`))+` `,1),e(r(_),{to:`/settings`},{default:f(()=>[d(s(r(p)(`capture.confirm.openSettings`)),1)]),_:1})])):U.value===`cancelled`?(o(),n(`p`,me,s(r(p)(`capture.confirm.cancelled`)),1)):Y.value?(o(),n(`div`,he,[g(`strong`,null,s(r(p)(`capture.confirm.restart`)),1),g(`span`,null,s(r(p)(`capture.confirm.staleHint`)),1)])):U.value===`gone`||U.value===`unknown`?(o(),n(`div`,{key:3,class:`capture-change-notice capture-change-stale`,role:`alert`,"data-capture-change-outcome":U.value},[g(`strong`,null,s(r(p)(U.value===`gone`?`capture.confirm.gone`:`capture.confirm.unknown`)),1),g(`span`,null,s(r(p)(U.value===`gone`?`capture.confirm.goneHint`:`capture.confirm.unknownHint`)),1),G.value?(o(),c(y,{key:0,variant:`inline`,label:r(p)(`capture.confirm.reading`),"data-capture-change-reading":``},null,8,[`label`])):i(``,!0),q.value?(o(),n(`span`,j,s(r(p)(`capture.confirm.rereadFailed`)),1)):i(``,!0),e(r(_),{to:`/settings`,"data-capture-change-open-settings":``},{default:f(()=>[d(s(r(p)(`capture.confirm.viewSettings`)),1)]),_:1})],8,A)):i(``,!0),!z.value&&K.value?(o(),c(r(C),{key:4,as:`section`,"aria-labelledby":`capture-change-saved-now`},{default:f(()=>[e(r(w),null,{default:f(()=>[e(r(T),{id:`capture-change-saved-now`,as:`h2`},{default:f(()=>[d(s(r(p)(`capture.confirm.current`)),1)]),_:1})]),_:1}),g(`dl`,M,[(o(!0),n(u,null,l(X.value,e=>(o(),n(`div`,{key:e.label},[g(`dt`,null,s(e.label),1),g(`dd`,null,s(e.value),1)]))),128))])]),_:1})):i(``,!0),z.value?(o(),c(r(C),{key:5,as:`section`,"aria-labelledby":`capture-change-request`},{default:f(()=>[e(r(w),null,{default:f(()=>[e(r(T),{id:`capture-change-request`,as:`h2`},{default:f(()=>[d(s(r(p)(`capture.confirm.request`)),1)]),_:1}),e(r(oe),null,{default:f(()=>[d(s(z.value.sessionId?r(p)(`capture.confirm.askedBySession`,{client:r(O)(z.value.sourceApplication),session:r(le)(z.value.sessionId)}):r(p)(`capture.confirm.askedBy`,{client:r(O)(z.value.sourceApplication)}))+` · `+s(r(p)(`capture.confirm.expires`,{time:ke(z.value.expiresAt)})),1)]),_:1})]),_:1}),g(`div`,N,[g(`blockquote`,{class:`capture-change-sentence`,"data-capture-change-preview":``,title:z.value.sessionId??void 0},s(z.value.preview),9,P),g(`section`,F,[g(`h3`,I,s(r(p)(`capture.confirm.changes`)),1),g(`dl`,L,[(o(!0),n(u,null,l(z.value.changes,e=>(o(),n(`div`,{key:e.setting,"data-capture-change-setting":e.setting},[g(`dt`,null,s(r(k)(e.setting)),1),g(`dd`,null,[g(`span`,ge,s(J(e.setting,e.before)),1),a[2]||=g(`span`,{"aria-hidden":`true`},`→`,-1),g(`span`,_e,s(r(p)(`capture.confirm.becomes`)),1),g(`strong`,null,s(J(e.setting,e.after)),1)])],8,R))),128))])]),X.value.length?(o(),n(`section`,ve,[g(`h3`,ye,s(r(p)(`capture.confirm.current`)),1),g(`dl`,be,[(o(!0),n(u,null,l(X.value,e=>(o(),n(`div`,{key:e.label},[g(`dt`,null,s(e.label),1),g(`dd`,null,s(e.value),1)]))),128))])])):i(``,!0),g(`p`,xe,s(r(p)(`capture.confirm.note`)),1),!U.value&&!Y.value?(o(),n(`div`,Se,[e(r(v),{loading:H.value===`confirm`,"loading-label":r(p)(`capture.confirm.confirming`),disabled:H.value!==null,"data-capture-change-confirm":``,onClick:a[0]||=e=>$(`confirm`)},{default:f(()=>[d(s(r(p)(`capture.confirm.confirm`)),1)]),_:1},8,[`loading`,`loading-label`,`disabled`]),e(r(v),{variant:`outline`,loading:H.value===`cancel`,"loading-label":r(p)(`capture.confirm.cancelling`),disabled:H.value!==null,"data-capture-change-cancel":``,onClick:a[1]||=e=>$(`cancel`)},{default:f(()=>[d(s(r(p)(`capture.confirm.cancel`)),1)]),_:1},8,[`loading`,`loading-label`,`disabled`])])):i(``,!0),W.value&&!U.value?(o(),n(`p`,Ce,s(r(p)(`capture.confirm.failed`,{reason:W.value})),1)):i(``,!0)])]),_:1})):i(``,!0)],64))]))}}),[[`__scopeId`,`data-v-bd825c64`]]);export{z as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,Dt as t,J as n,M as r,T as i,Z as a,kt as o,ot as s}from"./_plugin-vue_export-helper-Crd8aFkh.js";import{n as c}from"./button-B4gCj85U.js";var l=r({__name:`Card`,props:{as:{default:`div`},class:{type:[Boolean,null,String,Object,Array]}},setup(r){let l=r;return(u,d)=>(n(),i(e(r.as),{"data-slot":`card`,class:o(t(c)(`flex min-w-0 flex-col gap-4 rounded-lg border bg-card py-5 text-card-foreground`,l.class))},{default:s(()=>[a(u.$slots,`default`)]),_:3},8,[`class`]))}});export{l as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{D as e,Dt as t,J as n,M as r,Z as i,kt as a}from"./_plugin-vue_export-helper-Crd8aFkh.js";import{n as o}from"./button-B4gCj85U.js";var s=r({__name:`CardDescription`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(r){let s=r;return(r,c)=>(n(),e(`p`,{"data-slot":`card-description`,class:a(t(o)(`text-xs text-muted-foreground`,s.class))},[i(r.$slots,`default`)],2))}}),c=r({__name:`CardHeader`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(r){let s=r;return(r,c)=>(n(),e(`div`,{"data-slot":`card-header`,class:a(t(o)(`grid auto-rows-min grid-rows-[auto_auto] items-start gap-1 px-5 has-data-[slot=card-action]:grid-cols-[minmax(0,1fr)_auto] [.border-b]:pb-4`,s.class))},[i(r.$slots,`default`)],2))}});export{s as n,c as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,Dt as t,J as n,M as r,T as i,Z as a,kt as o,ot as s}from"./_plugin-vue_export-helper-Crd8aFkh.js";import{n as c}from"./button-B4gCj85U.js";var l=r({__name:`CardTitle`,props:{as:{default:`h3`},class:{type:[Boolean,null,String,Object,Array]}},setup(r){let l=r;return(u,d)=>(n(),i(e(r.as),{"data-slot":`card-title`,class:o(t(c)(`text-lg leading-snug font-semibold`,l.class))},{default:s(()=>[a(u.$slots,`default`)]),_:3},8,[`class`]))}});export{l as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e,C as t,D as n,Dt as r,E as i,G as a,J as o,M as ee,Mt as s,T as c,U as te,X as l,b as u,gt as ne,k as d,ot as f,r as re,rt as p,s as m,v as ie,vt as h,w as g}from"./_plugin-vue_export-helper-Crd8aFkh.js";import{t as ae}from"./console-k05BnLkZ.js";import{t as _}from"./button-B4gCj85U.js";import{t as v}from"./GrowthLoading-DssogOkP.js";import{a as y,c as b,i as oe,s as se}from"./client-Cg0bLxrO.js";import{t as x}from"./UiSelect-CW3HNsRZ.js";import{t as S}from"./Card-96u8qomm.js";import{t as ce}from"./CardTitle-bjMusOR6.js";import{t as le}from"./badge-BnU2j9Nh.js";import{t as C}from"./UiDisclosure-DbxNZe0B.js";import{t as w}from"./TextField-DUZTbKVz.js";import{r as ue,t as de}from"./identity-NbL1GGSB.js";var fe={class:`view connections-view [scrollbar-gutter:stable]`},pe={class:`mx-auto flex w-full max-w-(--form-max) flex-col gap-4`},me=[`aria-label`],he=[`data-status`],ge={class:`service-state`},_e=[`data-status`],ve={class:`flex min-w-0 items-center gap-2`},ye={class:`service-state`},be={class:`flex flex-wrap items-center gap-2 px-5`},xe=[`href`,`aria-label`,`title`],Se={class:`external-binding-count`},Ce={class:`grid gap-3 px-5`},we={class:`external-binding-list`},Te=[`data-status`],Ee={class:`external-binding-copy`},De={class:`external-binding-targets`},Oe=[`data-status`],ke={key:0},Ae={key:1},je={class:`external-binding-actions`},Me={key:0,class:`external-binding-editor`},Ne={class:`external-target-mode-list`},Pe={class:`external-binding-editor-actions`},Fe={key:0,class:`py-4 text-xs text-muted-foreground`},Ie={class:`wide-field`},Le={class:`trusted-code-badge`},Re={class:`flex`},ze=[`href`,`aria-label`,`title`],Be={class:`conflict-policy-controls`},Ve={key:2,role:`alert`},He={class:`flex items-center gap-2 px-5`},Ue={class:`grid gap-2 px-5`},We={class:`subscription-list`},Ge={key:0,class:`py-4 text-xs text-muted-foreground`},T=ee({__name:`ConnectionsPage`,setup(ee){let T=ae(),E=h(``),D=h(!1),O=h(``),k=h([]),A=h([]),j=h(!1),M=h(!1),N=h(``),P=h(null),F=h([]),I=h({}),L=h(``),R=h(`ask_human`),z=h(!1),B=h(!1),V=h(!1),H=`ask_human`,U=0,W=null,G=ne({name:``,connectorType:`mcp`,mode:`hybrid`,personalProjectIds:[],mcpTransport:`http`,mcpUrl:``,mcpCommand:``,mcpArgs:``,mcpTokenEnv:``,mcpResourcePrefix:``,notionTokenEnv:``,notionPageIds:``,notionDataSourceIds:``,feishuTokenEnv:``,feishuRegion:`cn`,feishuSpaceId:``,feishuRootNodeToken:``,feishuNodeTokens:``,feishuWebBaseUrl:``,retrievalUrl:``,retrievalTokenEnv:``,retrievalKnowledgeIds:``,retrievalScoreThreshold:`0.5`,customModule:``,customEnvironmentNames:``,customSourceJson:`{}`}),Ke=t(()=>T.state?.providers?.personal?.status===`ready`),qe=t(()=>T.state?.providers?.workspaces??[]),Je=t(()=>qe.value.filter(({status:e})=>e===`ready`).length),Ye=t(()=>{let e=T.state?.capabilities,t=[e?.browsePublicProjects?m(`pages.connections.publicCapability.discovery`):null,e?.subscribeProject?m(`pages.connections.publicCapability.subscription`):null,e?.publishProject?m(`pages.connections.publicCapability.publishing`):null,e?.submitKnowledge?m(`pages.connections.publicCapability.contribution`):null,e?.reviewProposals?m(`pages.connections.publicCapability.review`):null].filter(e=>!!e);return t.length?new Intl.ListFormat(re(),{style:`long`,type:`conjunction`}).format(t):m(`pages.connections.notAvailable`)}),K=t(()=>T.state?.subscriptions??[]),q=t(()=>T.state?.personalProjects??[]),Xe=t(()=>jt(`connect-external-knowledge`)),Ze=t(()=>jt(`external-knowledge-conflict-policy`)),Qe=t(()=>new Set(K.value.map(({provider_url:e,project_id:t})=>`${e}::${t}`))),$e=t(()=>(T.state?.projects??[]).filter(e=>!Qe.value.has(st(e)))),et=t(()=>$e.value.map(e=>({value:st(e),label:e.name,meta:`#${de(e.id,26)}`,search:ue(e.id)}))),tt=t(()=>k.value.map(e=>({value:e.type,label:e.name,meta:e.description}))),nt=t(()=>q.value.map(e=>({value:e.project_id,label:e.profile.name,meta:`#${de(e.project_id,26)}`,search:ue(e.project_id)}))),rt=t(()=>[{value:`hybrid`,label:m(`pages.connections.mode.hybrid`),disabled:!Y(G.connectorType,`hybrid`)},{value:`mirror`,label:m(`pages.connections.mode.mirror`),disabled:!Y(G.connectorType,`mirror`)},{value:`live`,label:m(`pages.connections.mode.live`),disabled:!Y(G.connectorType,`live`)}]),it=t(()=>[{value:`http`,label:`Streamable HTTP`},{value:`stdio`,label:`stdio`}]),at=t(()=>[{value:`cn`,label:`Feishu`},{value:`global`,label:`Lark`}]),ot=t(()=>[{value:`ask_human`,label:m(`pages.connections.askHuman`)},{value:`agent_decide`,label:m(`pages.connections.agentDecide`)}]);p(q,e=>{let t=new Set(e.map(({project_id:e})=>e)),n=e[0]?.project_id??``;G.personalProjectIds=G.personalProjectIds.filter(e=>t.has(e)),!G.personalProjectIds.length&&n&&(G.personalProjectIds=[n]),F.value=F.value.filter(e=>t.has(e)),t.has(L.value)||(L.value=n)},{immediate:!0}),p(()=>[T.activePersonalSpace?.id,L.value],()=>void xt(),{immediate:!0,flush:`sync`}),p(()=>G.connectorType,e=>{Y(e,G.mode)||(G.mode=wt(e))}),a(()=>void J()),te(()=>{U+=1,W?.abort()});function st(e){return`${e.providerUrl}::${e.id}`}async function ct(){let e=T.activePersonalSpace?.id,t=$e.value.find(e=>st(e)===E.value);if(e&&t&&!D.value){D.value=!0,O.value=`pages.connections.subscribing`;try{await b(`/api/subscriptions`,{personalSpaceId:e,projectId:t.id,providerUrl:t.providerUrl,projectName:t.name}),E.value=``,T.notify(m(`pages.connections.subscribed`,{name:t.name})),O.value=`pages.connections.loadingSubscriptions`,await T.refresh()}catch(e){T.reportError(e)}finally{D.value=!1}}}async function lt(e){let t=T.activePersonalSpace?.id;if(t&&!D.value){D.value=!0,O.value=`pages.connections.unsubscribing`;try{let n=new URLSearchParams({personalSpaceId:t,providerUrl:e.provider_url});await oe(`/api/subscriptions/${encodeURIComponent(e.project_id)}?${n}`),T.notify(m(`pages.connections.unsubscribed`,{name:e.project_name??e.project_id})),O.value=`pages.connections.loadingSubscriptions`,await T.refresh()}catch(e){T.reportError(e)}finally{D.value=!1}}}async function J(){M.value=!0;try{let[e,t]=await Promise.all([y(`/api/external-knowledge/connectors`),y(`/api/external-knowledge/bindings`)]);k.value=e,A.value=t}catch(e){T.reportError(e)}finally{M.value=!1}}async function ut(){let e=T.activePersonalSpace?.id;if(e&&G.personalProjectIds.length&&!j.value){j.value=!0,N.value=`pages.connections.creatingBinding`;try{let{connectorConfig:t,source:n}=dt();await b(`/api/external-knowledge/bindings`,{name:G.name.trim(),connectorType:G.connectorType,connectorConfig:t,source:n,targets:G.personalProjectIds.map(t=>({personalSpaceId:e,personalProjectId:t,mode:G.mode}))}),T.notify(m(`pages.connections.externalCreated`,{name:G.name.trim()})),G.name=``,await J()}catch(e){T.reportError(e)}finally{j.value=!1}}}function dt(){if(G.connectorType===`notion`)return{connectorConfig:{tokenEnv:$(G.notionTokenEnv,`Notion token env`)},source:{pageIds:Z(G.notionPageIds),dataSourceIds:Z(G.notionDataSourceIds)}};if(G.connectorType===`feishu`)return{connectorConfig:{accessTokenEnv:$(G.feishuTokenEnv,`Feishu token env`),region:G.feishuRegion},source:Q({spaceId:G.feishuSpaceId.trim(),rootNodeToken:G.feishuRootNodeToken.trim(),nodeTokens:Z(G.feishuNodeTokens),webBaseUrl:G.feishuWebBaseUrl.trim()})};if(G.connectorType===`retrieval_api`){let e=Number(G.retrievalScoreThreshold);if(!Number.isFinite(e)||e<0||e>1)throw TypeError(m(`pages.connections.scoreThresholdInvalid`));return{connectorConfig:Q({url:$(G.retrievalUrl,`Retrieval API URL`),tokenEnv:G.retrievalTokenEnv.trim(),scoreThreshold:e}),source:{knowledgeIds:At(G.retrievalKnowledgeIds,`Knowledge IDs`)}}}if(G.connectorType===`custom`){let e=JSON.parse(G.customSourceJson);if(!e||typeof e!=`object`||Array.isArray(e))throw TypeError(m(`pages.connections.customSourceObject`));return{connectorConfig:{module:$(G.customModule,`Custom connector module`),environmentNames:Z(G.customEnvironmentNames)},source:e}}return{connectorConfig:G.mcpTransport===`stdio`?Q({transport:`stdio`,command:G.mcpCommand.trim(),args:Z(G.mcpArgs)}):Q({transport:`http`,url:$(G.mcpUrl,`MCP URL`),tokenEnv:G.mcpTokenEnv.trim()}),source:Q({resourceUriPrefix:G.mcpResourcePrefix.trim()})}}async function ft(e){await mt(e,`check`)}async function pt(e){await mt(e,`sync`)}async function mt(e,t){if(!j.value){j.value=!0,N.value=t===`sync`?`pages.connections.syncingBinding`:`pages.connections.checkingBinding`;try{let n=await b(`/api/external-knowledge/bindings/${encodeURIComponent(e.id)}/${t}`,{});T.notify(m(t===`sync`&&n.skippedCredentials?`pages.connections.externalSyncedWithSkipped`:t===`sync`?`pages.connections.externalSynced`:`pages.connections.externalChecked`,{name:e.name,count:n.skippedCredentials??0})),await J()}catch(e){T.reportError(e)}finally{j.value=!1}}}async function ht(e){if(!j.value){j.value=!0,N.value=`pages.connections.disconnectingBinding`;try{await oe(`/api/external-knowledge/bindings/${encodeURIComponent(e.id)}`),T.notify(m(`pages.connections.externalDeleted`,{name:e.name})),await J()}catch(e){T.reportError(e)}finally{j.value=!1}}}function gt(e){let t=X(e);P.value=e.id,F.value=t.map(({personalProjectId:e})=>e),I.value=Object.fromEntries(t.map(({personalProjectId:e,mode:t})=>[e,t]))}function _t(){P.value=null,F.value=[],I.value={}}function vt(e){let t=A.value.find(({id:e})=>e===P.value);if(!t)return;let n=I.value,r=wt(t.connectorType);I.value=Object.fromEntries(e.map(e=>[e,n[e]??t.mode??r]))}function yt(e,t){I.value={...I.value,[e]:t}}async function bt(e){let t=T.activePersonalSpace?.id;if(t&&F.value.length&&!j.value){j.value=!0,N.value=`pages.connections.savingBindingTargets`;try{await se(`/api/external-knowledge/bindings/${encodeURIComponent(e.id)}/targets`,{expectedTargetsVersion:e.targetsVersion,targets:F.value.map(n=>({personalSpaceId:t,personalProjectId:n,mode:I.value[n]??e.mode}))}),T.notify(m(`pages.connections.projectsUpdated`,{name:e.name})),_t(),await J()}catch(e){T.reportError(e)}finally{j.value=!1}}}async function xt(){let e=++U;if(W?.abort(),W=null,R.value=`ask_human`,V.value=!1,B.value=!1,!T.activePersonalSpace?.id||!L.value)return;let t=new AbortController;W=t,B.value=!0;try{let n=new URLSearchParams({personalProjectId:L.value}),r=await y(`/api/external-knowledge/conflict-policy?${n}`,{signal:t.signal});if(e!==U)return;R.value=r.mode,H=r.mode}catch{if(e!==U)return;V.value=!0}finally{e===U&&(B.value=!1,W=null)}}async function St(){let e=T.activePersonalSpace?.id;if(!e||!L.value||z.value||B.value||V.value)return;let t=U;z.value=!0;try{let n=new URLSearchParams({personalProjectId:L.value}),r=await se(`/api/external-knowledge/conflict-policy?${n}`,{personalSpaceId:e,personalProjectId:L.value,mode:R.value});if(t!==U)return;R.value=r.mode,H=r.mode,T.notify(m(`pages.connections.conflictSaved`))}catch(e){if(t!==U)return;R.value=H,T.reportError(e)}finally{z.value=!1}}function Ct(e){return k.value.find(t=>t.type===e)?.name??e}function Y(e,t){let n=k.value.find(t=>t.type===e)?.capabilities;return!n?.length||(t===`live`||t===`hybrid`?n.includes(`retrieve`):!0)&&(t===`mirror`||t===`hybrid`?n.includes(`sync`):!0)}function wt(e){return[`hybrid`,`mirror`,`live`].find(t=>Y(e,t))??`live`}function Tt(e){return[`hybrid`,`mirror`,`live`].map(t=>({value:t,label:m(`pages.connections.mode.${t}`),disabled:!Y(e,t)}))}function X(e){return e.targets?.length?e.targets:[{id:e.id,...e.target,mode:e.mode,status:e.status,sync:e.sync}]}function Et(e){return X(e).some(({mode:e})=>e!==`live`)}function Dt(e){return q.value.find(({project_id:t})=>t===e)?.profile.name??e}function Ot(e){return X(e).find(({sync:e})=>e?.error)?.sync?.error??e.sync?.error}function kt(e){return X(e).reduce((e,t)=>e+(t.sync?.skippedCredentials??0),0)}function Z(e){return[...new Set(e.split(`,`).map(e=>e.trim()).filter(Boolean))]}function At(e,t){let n=Z(e);if(!n.length)throw TypeError(`${t} is required`);return n}function Q(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==``&&(!Array.isArray(e)||e.length>0)))}function $(e,t){if(!e.trim())throw TypeError(`${t} is required`);return e.trim()}function jt(e){return`https://github.com/JevonsCode/fuli/blob/main/${re()===`zh-CN`?`README.zh-CN.md`:`README.md`}#${e}`}return(t,a)=>(o(),n(`section`,fe,[g(`div`,pe,[g(`div`,{class:`service-connection-grid`,role:`group`,"aria-label":r(m)(`pages.connections.statusAria`)},[g(`article`,{class:`service-connection-card`,"data-status":Ke.value?`ready`:`error`},[g(`header`,null,[a[30]||=g(`span`,{class:`service-connection-icon local`,"aria-hidden":`true`},[g(`span`,{class:`nav-icon nav-icon-personal-project`})],-1),g(`div`,null,[g(`h2`,null,s(r(m)(`pages.connections.localGraphiti`)),1)]),g(`span`,ge,s(Ke.value?r(m)(`common.status.connected`):r(m)(`common.status.connectionError`)),1)]),e(C,{title:r(m)(`ui.connectionDetails`)},{default:f(()=>[g(`dl`,null,[g(`div`,null,[g(`dt`,null,s(r(m)(`pages.connections.storage`)),1),a[31]||=g(`dd`,null,`Neo4j`,-1)]),g(`div`,null,[g(`dt`,null,s(r(m)(`pages.connections.purpose`)),1),g(`dd`,null,s(r(m)(`pages.connections.localPurpose`)),1)])])]),_:1},8,[`title`])],8,he),g(`article`,{class:`service-connection-card`,"data-status":r(T).publicRuntimeStatus},[g(`header`,null,[a[33]||=g(`span`,{class:`service-connection-icon public`,"aria-hidden":`true`},[g(`span`,{class:`nav-icon nav-icon-public-project`})],-1),g(`div`,ve,[g(`h2`,null,s(r(m)(`pages.connections.publicService`)),1),e(r(le),{variant:`warning`},{default:f(()=>[...a[32]||=[d(`BETA`,-1)]]),_:1})]),g(`span`,ye,s(r(T).publicRuntimeStatus===`ready`?r(m)(`common.status.connected`):r(T).publicRuntimeStatus===`error`?r(m)(`common.status.connectionError`):r(m)(`common.status.notConnected`)),1)]),g(`dl`,null,[g(`div`,null,[g(`dt`,null,s(r(m)(`pages.connections.currentStatus`)),1),g(`dd`,null,s(r(T).publicRuntimeStatus===`ready`?r(m)(`pages.connections.sharedServicesReady`,{count:Je.value||qe.value.length}):r(m)(`pages.connections.notAvailable`)),1)]),g(`div`,null,[g(`dt`,null,s(r(m)(`pages.connections.purpose`)),1),g(`dd`,null,s(Ye.value),1)])])],8,_e)],8,me),e(r(S),{as:`section`,class:`external-knowledge-section`,"aria-labelledby":`external-knowledge-title`},{default:f(()=>[g(`div`,be,[e(r(ce),{id:`external-knowledge-title`,as:`h2`,class:`text-base`},{default:f(()=>[d(s(r(m)(`pages.connections.externalTitle`)),1)]),_:1}),g(`a`,{class:`section-help-link`,"data-testid":`external-knowledge-help`,href:Xe.value,"aria-label":r(m)(`pages.connections.externalHelp`),title:r(m)(`pages.connections.externalHelp`),target:`_blank`,rel:`noreferrer`},`?`,8,xe),g(`span`,Se,s(r(m)(`pages.connections.bindingCount`,{count:A.value.length})),1)]),g(`div`,Ce,[M.value||j.value?(o(),c(v,{key:0,variant:`compact`,label:r(m)(M.value?`pages.connections.loadingBindings`:N.value)},null,8,[`label`])):i(``,!0),g(`div`,we,[(o(!0),n(u,null,l(A.value,t=>(o(),n(`article`,{key:t.id,class:`external-binding-row`,"data-status":t.status},[a[34]||=g(`i`,{"aria-hidden":`true`},null,-1),g(`div`,Ee,[g(`strong`,null,s(t.name),1),g(`span`,null,s(Ct(t.connectorType)),1),g(`div`,De,[g(`b`,null,s(r(m)(`pages.connections.boundTo`)),1),(o(!0),n(u,null,l(X(t),e=>(o(),n(`span`,{key:e.id,class:`external-binding-target-chip`,"data-status":e.status},s(Dt(e.personalProjectId))+` · `+s(r(m)(`pages.connections.mode.${e.mode}`)),9,Oe))),128))]),Ot(t)?(o(),n(`small`,ke,s(Ot(t)),1)):kt(t)?(o(),n(`small`,Ae,s(r(m)(`pages.connections.credentialsSkipped`,{count:kt(t)})),1)):i(``,!0)]),g(`div`,je,[e(r(_),{size:`sm`,variant:`ghost`,disabled:j.value,onClick:e=>ft(t)},{default:f(()=>[d(s(r(m)(`pages.connections.check`)),1)]),_:1},8,[`disabled`,`onClick`]),e(r(_),{size:`sm`,variant:`ghost`,class:`external-sync-action`,disabled:j.value||!Et(t),onClick:e=>pt(t)},{default:f(()=>[d(s(r(m)(`pages.connections.sync`)),1)]),_:1},8,[`disabled`,`onClick`]),e(r(_),{size:`sm`,variant:`ghost`,disabled:j.value,onClick:e=>gt(t)},{default:f(()=>[d(s(r(m)(`pages.connections.manageProjects`)),1)]),_:1},8,[`disabled`,`onClick`]),e(r(_),{size:`sm`,variant:`destructive`,disabled:j.value,onClick:e=>ht(t)},{default:f(()=>[d(s(r(m)(`pages.connections.disconnect`)),1)]),_:1},8,[`disabled`,`onClick`])]),P.value===t.id?(o(),n(`div`,Me,[g(`label`,null,[g(`span`,null,s(r(m)(`pages.connections.targetProjects`)),1),e(x,{multiple:``,modelValue:F.value,"onUpdate:modelValue":a[0]||=e=>F.value=e,"control-id":`external-projects-${t.id}`,label:r(m)(`pages.connections.targetProjects`),options:nt.value,disabled:j.value,required:``,searchable:``,onChange:vt},null,8,[`modelValue`,`control-id`,`label`,`options`,`disabled`])]),g(`div`,Ne,[(o(!0),n(u,null,l(F.value,i=>(o(),n(`div`,{key:i,class:`external-target-mode-row`},[g(`span`,null,s(Dt(i)),1),e(x,{"model-value":I.value[i]??t.mode,"control-id":`external-target-mode-${t.id}-${i}`,label:r(m)(`pages.connections.bindingMode`),options:Tt(t.connectorType),disabled:j.value,"onUpdate:modelValue":e=>yt(i,e)},null,8,[`model-value`,`control-id`,`label`,`options`,`disabled`,`onUpdate:modelValue`])]))),128))]),g(`div`,Pe,[e(r(_),{size:`sm`,variant:`ghost`,disabled:j.value,onClick:_t},{default:f(()=>[d(s(r(m)(`common.actions.cancel`)),1)]),_:1},8,[`disabled`]),e(r(_),{size:`sm`,disabled:j.value||!F.value.length,onClick:e=>bt(t)},{default:f(()=>[d(s(r(m)(`pages.connections.saveProjects`)),1)]),_:1},8,[`disabled`,`onClick`])])])):i(``,!0)],8,Te))),128)),!M.value&&!A.value.length?(o(),n(`div`,Fe,s(r(m)(`pages.connections.noExternalBindings`)),1)):i(``,!0)]),e(C,{title:r(m)(`pages.connections.connect`),open:!A.value.length},{default:f(()=>[g(`form`,{class:`external-binding-form`,onSubmit:ie(ut,[`prevent`])},[e(w,{modelValue:G.name,"onUpdate:modelValue":a[1]||=e=>G.name=e,label:r(m)(`pages.connections.bindingName`),"data-testid":`external-name`,required:``},null,8,[`modelValue`,`label`]),g(`label`,null,[g(`span`,null,s(r(m)(`pages.connections.connector`)),1),e(x,{modelValue:G.connectorType,"onUpdate:modelValue":a[2]||=e=>G.connectorType=e,"control-id":`external-connector`,label:r(m)(`pages.connections.connector`),options:tt.value,disabled:j.value,required:``},null,8,[`modelValue`,`label`,`options`,`disabled`])]),g(`label`,null,[g(`span`,null,s(r(m)(`pages.connections.targetProjects`)),1),e(x,{multiple:``,modelValue:G.personalProjectIds,"onUpdate:modelValue":a[3]||=e=>G.personalProjectIds=e,"control-id":`external-projects`,label:r(m)(`pages.connections.targetProjects`),options:nt.value,disabled:j.value,required:``,searchable:``},null,8,[`modelValue`,`label`,`options`,`disabled`])]),g(`label`,null,[g(`span`,null,s(r(m)(`pages.connections.bindingMode`)),1),e(x,{modelValue:G.mode,"onUpdate:modelValue":a[4]||=e=>G.mode=e,"control-id":`external-binding-mode`,label:r(m)(`pages.connections.bindingMode`),options:rt.value,disabled:j.value,required:``},null,8,[`modelValue`,`label`,`options`,`disabled`])]),G.connectorType===`mcp`?(o(),n(u,{key:0},[g(`label`,null,[g(`span`,null,s(r(m)(`pages.connections.transport`)),1),e(x,{modelValue:G.mcpTransport,"onUpdate:modelValue":a[5]||=e=>G.mcpTransport=e,"control-id":`external-mcp-transport`,label:r(m)(`pages.connections.transport`),options:it.value,disabled:j.value,required:``},null,8,[`modelValue`,`label`,`options`,`disabled`])]),G.mcpTransport===`http`?(o(),c(w,{key:0,modelValue:G.mcpUrl,"onUpdate:modelValue":a[6]||=e=>G.mcpUrl=e,label:`MCP URL`,"data-testid":`mcp-url`,type:`url`,required:``},null,8,[`modelValue`])):(o(),c(w,{key:1,modelValue:G.mcpCommand,"onUpdate:modelValue":a[7]||=e=>G.mcpCommand=e,label:r(m)(`pages.connections.command`),required:``},null,8,[`modelValue`,`label`])),G.mcpTransport===`stdio`?(o(),c(w,{key:2,modelValue:G.mcpArgs,"onUpdate:modelValue":a[8]||=e=>G.mcpArgs=e,label:r(m)(`pages.connections.arguments`)},null,8,[`modelValue`,`label`])):(o(),c(w,{key:3,modelValue:G.mcpTokenEnv,"onUpdate:modelValue":a[9]||=e=>G.mcpTokenEnv=e,label:r(m)(`pages.connections.tokenEnv`),"data-testid":`mcp-token-env`},null,8,[`modelValue`,`label`])),e(w,{modelValue:G.mcpResourcePrefix,"onUpdate:modelValue":a[10]||=e=>G.mcpResourcePrefix=e,label:r(m)(`pages.connections.resourcePrefix`),"data-testid":`mcp-resource-prefix`},null,8,[`modelValue`,`label`])],64)):G.connectorType===`notion`?(o(),n(u,{key:1},[e(w,{modelValue:G.notionTokenEnv,"onUpdate:modelValue":a[11]||=e=>G.notionTokenEnv=e,label:r(m)(`pages.connections.tokenEnv`),required:``},null,8,[`modelValue`,`label`]),e(w,{modelValue:G.notionPageIds,"onUpdate:modelValue":a[12]||=e=>G.notionPageIds=e,label:`Page IDs`},null,8,[`modelValue`]),e(w,{modelValue:G.notionDataSourceIds,"onUpdate:modelValue":a[13]||=e=>G.notionDataSourceIds=e,label:`Data Source IDs`},null,8,[`modelValue`])],64)):G.connectorType===`feishu`?(o(),n(u,{key:2},[e(w,{modelValue:G.feishuTokenEnv,"onUpdate:modelValue":a[14]||=e=>G.feishuTokenEnv=e,label:r(m)(`pages.connections.tokenEnv`),required:``},null,8,[`modelValue`,`label`]),g(`label`,null,[g(`span`,null,s(r(m)(`pages.connections.region`)),1),e(x,{modelValue:G.feishuRegion,"onUpdate:modelValue":a[15]||=e=>G.feishuRegion=e,"control-id":`external-feishu-region`,label:r(m)(`pages.connections.region`),options:at.value,disabled:j.value,required:``},null,8,[`modelValue`,`label`,`options`,`disabled`])]),e(w,{modelValue:G.feishuSpaceId,"onUpdate:modelValue":a[16]||=e=>G.feishuSpaceId=e,label:`Space ID`},null,8,[`modelValue`]),e(w,{modelValue:G.feishuRootNodeToken,"onUpdate:modelValue":a[17]||=e=>G.feishuRootNodeToken=e,label:`Root Node Token`},null,8,[`modelValue`]),e(w,{modelValue:G.feishuNodeTokens,"onUpdate:modelValue":a[18]||=e=>G.feishuNodeTokens=e,label:`Node Tokens`},null,8,[`modelValue`]),e(w,{modelValue:G.feishuWebBaseUrl,"onUpdate:modelValue":a[19]||=e=>G.feishuWebBaseUrl=e,label:`Web URL`,type:`url`},null,8,[`modelValue`])],64)):G.connectorType===`retrieval_api`?(o(),n(u,{key:3},[e(w,{modelValue:G.retrievalUrl,"onUpdate:modelValue":a[20]||=e=>G.retrievalUrl=e,label:r(m)(`pages.connections.retrievalUrl`),type:`url`,required:``},null,8,[`modelValue`,`label`]),e(w,{modelValue:G.retrievalTokenEnv,"onUpdate:modelValue":a[21]||=e=>G.retrievalTokenEnv=e,label:r(m)(`pages.connections.tokenEnv`)},null,8,[`modelValue`,`label`]),e(w,{modelValue:G.retrievalKnowledgeIds,"onUpdate:modelValue":a[22]||=e=>G.retrievalKnowledgeIds=e,label:r(m)(`pages.connections.knowledgeIds`),required:``},null,8,[`modelValue`,`label`]),e(w,{modelValue:G.retrievalScoreThreshold,"onUpdate:modelValue":a[23]||=e=>G.retrievalScoreThreshold=e,label:r(m)(`pages.connections.scoreThreshold`),inputmode:`decimal`,required:``},null,8,[`modelValue`,`label`])],64)):(o(),n(u,{key:4},[e(w,{modelValue:G.customModule,"onUpdate:modelValue":a[24]||=e=>G.customModule=e,label:r(m)(`pages.connections.module`),required:``},null,8,[`modelValue`,`label`]),e(w,{modelValue:G.customEnvironmentNames,"onUpdate:modelValue":a[25]||=e=>G.customEnvironmentNames=e,label:r(m)(`pages.connections.environmentNames`)},null,8,[`modelValue`,`label`]),g(`div`,Ie,[e(w,{modelValue:G.customSourceJson,"onUpdate:modelValue":a[26]||=e=>G.customSourceJson=e,label:r(m)(`pages.connections.sourceJson`),multiline:``,required:``},null,8,[`modelValue`,`label`])]),g(`span`,Le,s(r(m)(`pages.connections.trustedCode`)),1)],64)),e(r(_),{class:`external-create-action`,type:`submit`,disabled:j.value||!q.value.length||!G.personalProjectIds.length},{default:f(()=>[a[35]||=g(`span`,{class:`external-create-action-icon`,"aria-hidden":`true`},null,-1),g(`span`,null,s(r(m)(`pages.connections.connect`)),1)]),_:1},8,[`disabled`])],32)]),_:1},8,[`title`,`open`])])]),_:1}),q.value.length?(o(),c(r(S),{key:0,as:`section`,class:`conflict-policy-section py-0`,"aria-label":r(m)(`pages.connections.conflictTitle`)},{default:f(()=>[e(C,{class:`px-5 py-4`,open:V.value,title:r(m)(`pages.connections.conflictTitle`)},{default:f(()=>[g(`div`,Re,[g(`a`,{class:`section-help-link`,"data-testid":`conflict-policy-help`,href:Ze.value,"aria-label":r(m)(`pages.connections.conflictHelp`),title:r(m)(`pages.connections.conflictHelp`),target:`_blank`,rel:`noreferrer`},`?`,8,ze)]),g(`div`,Be,[g(`label`,null,[g(`span`,null,s(r(m)(`pages.connections.targetProject`)),1),e(x,{modelValue:L.value,"onUpdate:modelValue":a[27]||=e=>L.value=e,"control-id":`external-conflict-project`,label:r(m)(`pages.connections.targetProject`),options:nt.value,disabled:z.value,required:``},null,8,[`modelValue`,`label`,`options`,`disabled`])]),g(`label`,null,[g(`span`,null,s(r(m)(`pages.connections.conflictAction`)),1),e(x,{modelValue:R.value,"onUpdate:modelValue":a[28]||=e=>R.value=e,"control-id":`external-conflict-mode`,label:r(m)(`pages.connections.conflictAction`),options:ot.value,disabled:z.value||B.value||V.value||!L.value,required:``,onChange:St},null,8,[`modelValue`,`label`,`options`,`disabled`])])]),B.value?(o(),c(v,{key:0,variant:`compact`,label:r(m)(`pages.connections.loadingConflictPolicy`)},null,8,[`label`])):i(``,!0),z.value?(o(),c(v,{key:1,variant:`inline`,label:r(m)(`pages.connections.savingConflictPolicy`)},null,8,[`label`])):V.value?(o(),n(`div`,Ve,[g(`p`,null,s(r(m)(`common.errors.loadFailed`)),1),e(r(_),{variant:`outline`,size:`sm`,onClick:xt},{default:f(()=>[d(s(r(m)(`common.actions.retry`)),1)]),_:1})])):i(``,!0)]),_:1},8,[`open`,`title`])]),_:1},8,[`aria-label`])):i(``,!0),r(T).state?.capabilities?.subscribeProject?(o(),c(r(S),{key:1,as:`section`,class:`connection-subscriptions`,"aria-labelledby":`connection-subscriptions-title`},{default:f(()=>[g(`div`,He,[e(r(ce),{id:`connection-subscriptions-title`,as:`h2`,class:`text-base`},{default:f(()=>[d(s(r(m)(`pages.connections.subscriptionsTitle`)),1)]),_:1}),e(r(le),{variant:`warning`},{default:f(()=>[...a[36]||=[d(`BETA`,-1)]]),_:1})]),g(`div`,Ue,[D.value?(o(),c(v,{key:0,variant:`inline`,label:r(m)(O.value)},null,8,[`label`])):i(``,!0),g(`div`,We,[(o(!0),n(u,null,l(K.value,t=>(o(),n(`div`,{key:`${t.provider_url}:${t.project_id}`,class:`subscription-row`},[a[37]||=g(`span`,null,`↗`,-1),g(`div`,null,[g(`strong`,null,s(t.project_name??t.project_id),1),g(`span`,null,s(r(m)(`pages.connections.sharedProject`)),1)]),e(r(_),{variant:`outline`,size:`sm`,class:`subscription-action`,disabled:D.value,onClick:e=>lt(t)},{default:f(()=>[d(s(r(m)(`pages.connections.unsubscribe`)),1)]),_:1},8,[`disabled`,`onClick`])]))),128)),K.value.length?i(``,!0):(o(),n(`div`,Ge,s(r(m)(`pages.connections.noSubscriptions`)),1))]),g(`form`,{class:`subscription-form`,onSubmit:ie(ct,[`prevent`])},[e(x,{modelValue:E.value,"onUpdate:modelValue":a[29]||=e=>E.value=e,options:et.value,label:r(m)(`pages.connections.sharedProjectLabel`),placeholder:r(m)(`pages.connections.choosePublicProject`),searchable:``,required:``,disabled:D.value},null,8,[`modelValue`,`options`,`label`,`placeholder`,`disabled`]),e(r(_),{type:`submit`,disabled:D.value||!E.value||!r(T).activePersonalSpace},{default:f(()=>[d(s(r(m)(`pages.connections.subscribe`)),1)]),_:1},8,[`disabled`])],32)])]),_:1})):i(``,!0)])]))}});export{T as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{A as e,C as t,D as n,Dt as r,E as i,J as a,M as o,Mt as s,T as c,h as l,k as u,ot as d,rt as f,s as p,st as m,t as h,vt as g,w as _}from"./_plugin-vue_export-helper-Crd8aFkh.js";import{t as v}from"./button-B4gCj85U.js";import{l as y,t as b}from"./client-Cg0bLxrO.js";import{t as x}from"./UiDialog-CU8nqGKC.js";function S(e,t){let n=e.normalize(`NFKC`).toLocaleLowerCase().replace(/[^\p{L}\p{N}]+/gu,`-`).replace(/^-+|-+$/g,``).slice(0,120)||`project`,r=new Set(t);if(!r.has(n))return n;for(let e=2;;e+=1){let t=`${n}-${e}`;if(!r.has(t))return t}}function C(e){return[...new Set(e.split(`
|
|
2
|
+
`).map(e=>e.trim()).filter(Boolean))].slice(0,64)}function w(e,t,n){let r=n.source.trim();return y(`/api/personal-projects`,{personalSpaceId:e,projectId:t,createOnly:!0,profile:{name:n.name.trim(),purpose:n.purpose.trim()||null,scope:n.includes.trim()||null,lifecycle:`active`,boundaries:C(n.excludes),sources:r?[{key:`source-1`,kind:`other`,title:r,uri:r,sensitivity:`normal`}]:[]}})}var T={class:`create-project-fields`},E={class:`ui-field`},D={key:0,class:`ui-field-hint`,"data-new-project-id":``},O={class:`ui-field`},k=[`placeholder`],A={class:`ui-field`},j=[`placeholder`],M={class:`ui-field`},N=[`placeholder`],P={class:`ui-field`},F=[`placeholder`],I=h(o({__name:`CreateProjectDialog`,props:{open:{type:Boolean},personalSpaceId:{},existingProjectIds:{},initialPurpose:{}},emits:[`close`,`created`],setup(o,{emit:h}){let y=o,C=h,I=()=>({name:``,purpose:y.initialPurpose??``,includes:``,excludes:``,source:``}),L=g(I()),R=g(!1),z=g(``),B=t(()=>S(L.value.name,y.existingProjectIds));f(()=>y.open,e=>{e&&(L.value=I(),z.value=``)},{immediate:!0});async function V(){if(!R.value){if(!L.value.name.trim())z.value=p(`projects.createDialog.nameRequired`);else{R.value=!0,z.value=``;try{C(`created`,await w(y.personalSpaceId,B.value,L.value))}catch(e){z.value=e instanceof b&&e.status===409?p(`projects.createDialog.exists`):e instanceof Error&&e.message||p(`projects.createDialog.failed`)}finally{R.value=!1}}}}return(t,f)=>o.open?(a(),c(x,{key:0,open:``,class:`create-project-dialog`,size:`lg`,form:``,busy:R.value,error:z.value,title:r(p)(`projects.createDialog.title`),description:r(p)(`projects.createDialog.intro`),onClose:f[6]||=e=>C(`close`),onSubmit:V},{footer:d(()=>[e(r(v),{variant:`ghost`,disabled:R.value,onClick:f[5]||=e=>C(`close`)},{default:d(()=>[u(s(r(p)(`common.actions.cancel`)),1)]),_:1},8,[`disabled`]),e(r(v),{type:`submit`,loading:R.value,"loading-label":r(p)(`projects.createDialog.creating`)},{default:d(()=>[u(s(r(p)(`projects.createDialog.create`)),1)]),_:1},8,[`loading`,`loading-label`])]),default:d(()=>[_(`div`,T,[_(`label`,E,[u(s(r(p)(`projects.createDialog.name`))+` `,1),m(_(`input`,{"onUpdate:modelValue":f[0]||=e=>L.value.name=e,name:`new-project-name`,maxlength:`160`,required:``,autofocus:``},null,512),[[l,L.value.name]]),L.value.name.trim()?(a(),n(`small`,D,s(r(p)(`projects.createDialog.identifier`,{id:B.value})),1)):i(``,!0)]),_(`label`,O,[u(s(r(p)(`projects.createDialog.purpose`))+` `,1),m(_(`textarea`,{"onUpdate:modelValue":f[1]||=e=>L.value.purpose=e,name:`new-project-purpose`,maxlength:`4096`,rows:`2`,placeholder:r(p)(`projects.createDialog.purposePlaceholder`)},null,8,k),[[l,L.value.purpose]])]),_(`label`,A,[u(s(r(p)(`projects.createDialog.includes`))+` `,1),m(_(`textarea`,{"onUpdate:modelValue":f[2]||=e=>L.value.includes=e,name:`new-project-includes`,maxlength:`4096`,rows:`3`,placeholder:r(p)(`projects.createDialog.includesPlaceholder`)},null,8,j),[[l,L.value.includes]])]),_(`label`,M,[u(s(r(p)(`projects.createDialog.excludes`))+` `,1),m(_(`textarea`,{"onUpdate:modelValue":f[3]||=e=>L.value.excludes=e,name:`new-project-excludes`,maxlength:`8192`,rows:`3`,placeholder:r(p)(`projects.createDialog.excludesPlaceholder`)},null,8,N),[[l,L.value.excludes]])]),_(`label`,P,[u(s(r(p)(`projects.createDialog.source`))+` `,1),m(_(`input`,{"onUpdate:modelValue":f[4]||=e=>L.value.source=e,name:`new-project-source`,maxlength:`2048`,placeholder:r(p)(`projects.createDialog.sourcePlaceholder`)},null,8,F),[[l,L.value.source]])])])]),_:1},8,[`busy`,`error`,`title`,`description`])):i(``,!0)}}),[[`__scopeId`,`data-v-10a6826e`]]);export{I as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.create-project-fields[data-v-10a6826e]{gap:14px;display:grid}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.data-format-view[data-v-4747e7f3]{color:var(--color-ink);padding-top:clamp(16px,3vw,32px);padding-bottom:96px}.data-format-content[data-v-4747e7f3]{width:100%;max-width:var(--form-max);gap:16px;margin:0 auto;display:grid}.data-format-lede[data-v-4747e7f3],.data-format-restore[data-v-4747e7f3],.data-format-presence[data-v-4747e7f3],.data-format-external[data-v-4747e7f3]{color:var(--color-muted);margin:0;font-size:14px;line-height:1.6}.data-format-store[data-v-4747e7f3]{overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:8px;display:flex}.data-format-facts[data-v-4747e7f3]{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px 24px;margin:0;display:grid}.data-format-body[data-v-4747e7f3]{gap:16px;padding-inline:20px;display:grid}.data-format-facts div[data-v-4747e7f3]{min-width:0}.data-format-samples[data-v-4747e7f3]{grid-column:1/-1}.data-format-facts dt[data-v-4747e7f3]{color:var(--color-muted);font-size:12px}.data-format-facts dd[data-v-4747e7f3]{overflow-wrap:anywhere;flex-wrap:wrap;gap:6px;margin:2px 0 0;display:flex}code[data-v-4747e7f3]{font-family:var(--font-mono);overflow-wrap:anywhere;font-size:12.5px}.data-format-chip[data-v-4747e7f3]{border:1px solid var(--color-border);background:var(--color-surface-subtle);border-radius:999px;padding:2px 8px}.data-format-more[data-v-4747e7f3]{color:var(--color-muted);font-size:13px}.data-format-blocked[data-v-4747e7f3],.data-format-undo[data-v-4747e7f3]{gap:12px;margin:0;padding-block:0;list-style:none;display:grid}.data-format-undo[data-v-4747e7f3]{padding-inline:0}.data-format-blocked li[data-v-4747e7f3],.data-format-undo li[data-v-4747e7f3]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;min-width:0;display:flex}.data-format-blocked li span[data-v-4747e7f3]{color:var(--color-muted);flex-basis:100%;font-size:13px}.data-format-digest[data-v-4747e7f3]{color:var(--color-muted);flex-wrap:wrap;gap:8px;margin:0;font-size:13px;display:flex}.data-format-check[data-v-4747e7f3]{align-items:flex-start;gap:10px;display:flex}.data-format-actions[data-v-4747e7f3]{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.data-format-notice[data-v-4747e7f3],.data-format-results[data-v-4747e7f3]{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);margin:0;padding:12px 16px;font-size:14px}.data-format-results p[data-v-4747e7f3]{margin:0}.data-format-error[data-v-4747e7f3]{color:var(--color-danger);margin:0;font-size:14px}.data-format-warning[data-v-4747e7f3],.data-format-warnings[data-v-4747e7f3]{color:var(--color-danger);margin:0;font-size:13.5px;line-height:1.6}.data-format-warnings[data-v-4747e7f3]{gap:6px;padding:0;list-style:none;display:grid}
|