fuli-context 0.7.9 → 0.7.10-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/web/assets/{AboutPage-Bp-Xz6yo.js → AboutPage-BvXH4hsO.js} +1 -1
  2. package/dist/web/assets/{ConnectionsPage-BMpkYeSE.js → ConnectionsPage-WVc6Srbd.js} +1 -1
  3. package/dist/web/assets/{EmployeeRecruitDialog-DbMVuLAI.js → EmployeeRecruitDialog-Dal5wy8a.js} +1 -1
  4. package/dist/web/assets/{EmployeeWorkbenchPage-BpkqpEs7.css → EmployeeWorkbenchPage-BDJvrpcn.css} +1 -1
  5. package/dist/web/assets/EmployeeWorkbenchPage-CW5pu_Yb.js +1 -0
  6. package/dist/web/assets/{KnowledgeEditDialog-DADXj_BT.js → KnowledgeEditDialog-BBvm74ln.js} +1 -1
  7. package/dist/web/assets/{KnowledgeInspector-Xs4VCUg8.js → KnowledgeInspector-CE9ADmtT.js} +1 -1
  8. package/dist/web/assets/{KnowledgeOrganizerPage-B_Ct4bB2.js → KnowledgeOrganizerPage-BRtizGUS.js} +1 -1
  9. package/dist/web/assets/KnowledgePage-D5clXGCw.js +1 -0
  10. package/dist/web/assets/{KnowledgeWorkspace-DI8YqTVI.js → KnowledgeWorkspace-CKLH6cIf.js} +1 -1
  11. package/dist/web/assets/{OverviewPage-HwoSW-5z.js → OverviewPage-D4vLhIFD.js} +1 -1
  12. package/dist/web/assets/{PersonalProfilePage-DCoG52SW.js → PersonalProfilePage-7w8rAzkg.js} +1 -1
  13. package/dist/web/assets/PersonalProjectsPage-BY0B1t24.js +1 -0
  14. package/dist/web/assets/{ProjectAgentsPage-zQ9BZW9v.js → ProjectAgentsPage-LHPOuLWw.js} +1 -1
  15. package/dist/web/assets/{PublicProjectsPage-BuLqkZ8g.js → PublicProjectsPage-PSp6RzVZ.js} +1 -1
  16. package/dist/web/assets/{ReviewPage-8A7N5pJs.js → ReviewPage-DPP23xLF.js} +1 -1
  17. package/dist/web/assets/{SearchableSelect-CFZNdtlY.js → SearchableSelect-DY-TWC2i.js} +1 -1
  18. package/dist/web/assets/{SettingsPage-4ah1u906.js → SettingsPage-C59OPsNP.js} +1 -1
  19. package/dist/web/assets/{WritingTastePage-DztRj6MK.js → WritingTastePage-DNXhCdgn.js} +1 -1
  20. package/dist/web/assets/{avatars-LvVKbDF7.js → avatars-BfZueqlm.js} +1 -1
  21. package/dist/web/assets/{console-B7dWYAoU.js → console-CYXvhGCR.js} +1 -1
  22. package/dist/web/assets/{conversation-launcher-settings-D1xhW1S5.js → conversation-launcher-settings-SwmUP91W.js} +1 -1
  23. package/dist/web/assets/{i18n-DQH9D35M.js → i18n-C7r_00q2.js} +1 -1
  24. package/dist/web/assets/{identity-JjZG6aS5.js → identity-COvBmUF4.js} +1 -1
  25. package/dist/web/assets/index-B-rXoqYP.js +2 -0
  26. package/dist/web/assets/{model-zL97NJ-U.js → model-CL1JILt4.js} +1 -1
  27. package/dist/web/assets/{useApi-CROJJdhE-CElDxEZI.js → useApi-CROJJdhE-DERnOR_k.js} +1 -1
  28. package/dist/web/assets/{vue-router-F7MnkVlW.js → vue-router-DJ6C6-8v.js} +1 -1
  29. package/dist/web/index.html +6 -6
  30. package/graph-provider/pyproject.toml +1 -1
  31. package/npm-shrinkwrap.json +2 -2
  32. package/package.json +1 -1
  33. package/dist/web/assets/EmployeeWorkbenchPage-DtXSJOpq.js +0 -1
  34. package/dist/web/assets/KnowledgePage-RG9Ttnrp.js +0 -1
  35. package/dist/web/assets/PersonalProjectsPage-CNb9mlbp.js +0 -1
  36. package/dist/web/assets/index-DRd-2Tii.js +0 -2
@@ -6,4 +6,4 @@ var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],en
6
6
  交互设计
7
7
  可用性审查`,preferencesPlaceholder:`每行一项,仅用于初始协作方式。`,idLocked:`创建后 Agent ID 不可修改;项目通过独立分配管理。`,allowListPlaceholder:`每行一个真实 executor ID;不填写不会猜测可用项。`,required:`请填写 Agent ID、名称和负责范围。`,occupationEmojiInvalid:`职业 emoji 只能填写一个 emoji。`,spaceUnavailable:`当前空间不可用,无法保存 Agent。`,initialAssignmentReason:`从 Agent 名录创建首条项目分配`,projectUnavailable:`所选项目已不可用,请重新选择。`,duplicate:`能力与启动约定不能包含重复项。`,saveFailed:`项目 Agent 保存失败。`},assignmentDialog:{assign:`分配项目`,end:`解除`,replace:`替换`,assignTitle:`分配项目职责`,endTitle:`解除项目分配`,replaceTitle:`替换项目 Agent`,replacement:`替换为`,replacementPlaceholder:`选择已有 Agent`,workKinds:`工作类型`,workKindsPlaceholder:`每行一项`,reasonPlaceholder:`记录分配、解除或替换原因。`,required:`请填写职责和原因。`,replacementRequired:`请选择替换 Agent。`,saveAssign:`保存分配`,saveChange:`保存变更`,saveFailed:`项目分配保存失败。`}},"en-US":{aria:`Project Agent directory`,title:`Agents`,listLabel:`Space Agent list`,notReported:`Not reported`,noToolsUsed:`No tools used`,allProjects:`All projects`,projectFilter:`Project scope`,searchLabel:`Search Agents`,searchPlaceholder:`Search name, ID, responsibility, or capability`,add:`Add Agent`,edit:`Edit`,saved:`Project Agent saved.`,retry:`Reload`,loading:`Loading project Agents…`,loadError:`Project Agents are temporarily unavailable.`,emptyTitle:`No project Agents yet`,emptyCopy:`Add an Agent to record its responsibilities and capabilities.`,noMatchTitle:`No matching Agents`,noMatchCopy:`Change the project, status, or search filters.`,stats:{total:`{count} Agents`,active:`{count} available`,assignments:`{count} assignments`,projects:`Across {count} projects`,noOnlineClaim:`Configured status is not online or execution evidence; both require a real report`},coordination:{aria:`Agent collaboration policy for {project}`,title:`Project collaboration`,loading:`Loading project policy…`,autoReuse:`Reuse the previous Agent`,autoReuseMeta:`Prefer the last effective lead Agent for new tasks; turn off to require a manual {'@'}Agent.`,askBeforeRecruitment:`Ask before adding an Agent`,askBeforeRecruitmentMeta:`When no Agent can be reused, wait for confirmation before creating one.`,saving:`Saving…`,saved:`Project policy saved.`,loadFailed:`Project policy is temporarily unavailable.`,saveFailed:`Project policy could not be saved.`},agentType:{coordinator:`Coordinator`,durable:`Durable`,hr:`HR`,temporary:`Temporary`},status:{all:`All statuses`,active:`Available`,inactive:`Inactive`,archived:`Archived`},assignmentStatus:{active:`Assigned`,ended:`Ended`,unassigned:`Unassigned`,replaced:`Replaced`},taskStatus:{awaiting_recruitment:`Awaiting recruitment`,queued:`Queued`,running:`Running`,paused:`Paused`,failed:`Failed`,awaiting_review:`Awaiting review`,completed:`Completed`,cancelled:`Cancelled`,blocked:`Blocked`,idle:`Idle`},fields:{project:`Project`,agentId:`Agent ID`,name:`Name`,occupationEmoji:`Occupation emoji`,responsibility:`Responsibility`,capabilities:`Capabilities`,initialPreferences:`Startup conventions`,status:`Status`,updatedAt:`Last updated`,agentType:`Identity type`,defaultModelStrategy:`Default model strategy`,executorPolicy:`Executor policy`,selectionMode:`Selection mode`,modelIntent:`Provider-neutral intent`,allowList:`Locked allow-list`,assignments:`Assignments`,memoryScope:`Memory boundary`,scope:`Scope`,assignmentModel:`Assignment strategy`,reasoning:`Reasoning effort`,hints:`Capability hints`,collaborators:`Collaborators`,actualExecution:`Actual execution`,executionSummary:`Execution summary`,workerEventEvidence:`Worker event evidence`,reportedStaffingDecision:`Reported staffing decision`,executionEnvironment:`Execution environment`,toolsUsed:`Tools used`,executorId:`Executor ID`,sourceApplication:`Source application`,sourceSession:`Source session`,workerSession:`Worker session`,reporterSession:`Reporting session`,tokenUsage:`Token usage`,reportedAt:`Reported at`,participantRole:`Role`,workSummary:`Work summary`,terminalStatus:`Terminal status`,actualModel:`Actual model`,worker:`Worker`,coordinator:`Coordinator Agent`,candidateAgents:`Candidate Agents`,complexity:`Complexity`,complexityBasis:`Complexity basis`,parallelPlan:`Parallel plan`,run:`Run`,recruitment:`Recruitment source`,strategySource:`Strategy source`,reason:`Reason`,routingDecision:`Routing decision`,matchBasis:`Match basis`},participantRoles:{lead:`Lead`,collaborator:`Collaborator`},sections:{assignments:`Project assignments & history`,strategy:`Model strategy & executors`,tasks:`Tasks & collaboration`,activity:`Contribution activity`,clients:`Clients`,routing:`Routing rules`,learning:`Candidate evidence`,memory:`Memory & review boundary`,recruitment:`Recruitment events`},detail:{choose:`Select an Agent to inspect its responsibilities`,capabilitiesEmpty:`No capabilities recorded`,preferencesEmpty:`No startup conventions recorded`,preferencesNote:`Startup conventions are profile configuration, not confirmed long-term memory.`,noRun:`No run recorded`,stateReported:`State reported; run evidence is not reported`,refresh:`Refresh verified data`,refreshing:`Reading…`,unreported:`Task, activity, or client state was not reported.`,notLoaded:`Verified data for this section has not been loaded.`,loadingSection:`Reading verified data for this section…`,sectionUnavailable:`Verified data for this section is temporarily unavailable.`,noAssignments:`No project assignments reported.`,noTasks:`No task history.`,noExecutionSummary:`No real participating executor was reported.`,notReportedActualExecution:`Actual execution evidence was not reported.`,memoryNote:`This links to FULI boundaries; it does not create a second Agent memory system.`},strategy:{flexible:`flexible`,locked:`locked`,providerNeutral:`The default strategy is provider-neutral; executor, model, and connection state are never inferred.`,noAllowList:`No locked allow-list; executor availability is not reported.`,lockedUnavailable:`The locked allow-list has no reported usable item: show blocked/queued only, never a fabricated run.`,availabilityUnreported:`Availability not reported`,actualUnreported:`Actual use not reported`},activity:{aria:`Daily contribution activity`,empty:`No verified completed, failed, or cancelled history.`,noTasks:`No task summary for this day.`},clients:{codex:`Codex`,claude:`Claude`,claude_code:`Claude Code`,cursor:`Cursor`,gemini_cli:`Gemini CLI`,kiro:`Kiro`,other:`Other client`,allowed:`Allowed`,notAllowed:`Not allowed`,observed:`{count} observed calls`,observedAny:`Observed use reported`,unreported:`Actual use not reported`,integrationUnreported:`Integration status not reported`,empty:`Allowed clients, observed use, and integration status are not reported.`},tokenSources:{executor:`Executor`,host:`Host`,dingdong:`DingDong`},routing:{empty:`No routing rules configured.`,priorityNote:`Only reported rules are shown; no global, space, project, or task mapping is created by default.`,addExecutor:`Register executor`,editExecutor:`Edit executor`,addRule:`Add rule`,disable:`Disable`,updateFailed:`Could not update the routing rule.`,authorize:`Authorize`,revoke:`Revoke authorization`,authorizeReason:`Console authorized executor`,revokeReason:`Console revoked executor authorization`,authorizationFailed:`Could not update executor authorization.`,editor:{executorCreateTitle:`Register executor`,executorEditTitle:`Edit executor`,ruleCreateTitle:`Add routing rule`,executorId:`Executor ID`,displayName:`Display name`,executorKind:`Kind`,priority:`Global priority`,capabilities:`Capabilities`,healthRequired:`Require health check`,scope:`Rule scope`,taskId:`Task ID`,workKind:`Work kind`,executorIds:`Allowed executor IDs`,executorIdsPlaceholder:`One real executor ID per line`,requiredCapabilities:`Required capabilities`,evidenceNote:`Authorization, preflight, and health are backend evidence; this form never infers a connection.`,ruleNote:`Rules only affect candidate matching; they do not change an Agent locked policy.`,executorRequired:`Enter an executor ID, name, and valid priority.`,ruleRequired:`Enter a work kind, executor ID, and reason.`,save:`Save`,saveFailed:`Could not save the directory entry or rule.`}},learning:{neutral:`Neutral`,recorded:`Evidence recorded`,samples:`{count} samples`,recent:`{count} recent weighted`,score:`Reported score {score}`,decayUnreported:`Decay basis not reported`,ignore:`Ignore`,reset:`Reset`,resetUnavailable:`Project, work-kind, or executor evidence is missing; reset is unavailable.`,updateFailed:`Could not update learning evidence.`,empty:`No real learning evidence; no score or candidate preference is shown.`,note:`Only assists peer candidate comparison; it never overrides locked strategy or explicit preferences. Low evidence remains neutral.`},source:{testRole:`Test role`,cleanup:`Clean up test role`,cleanupFailed:`Could not clean up the test role.`},recruitment:{hr:`HR Agent`,trigger:`Trigger client`,reason:`Recruitment reason`,time:`Time`,testSource:`Test source`,empty:`No matching real recruitment record.`,policy:`Recruitment confirmation`,automatic:`Automatic recruitment`,requireConfirmation:`Require confirmation`,policyUpdateFailed:`Could not update recruitment confirmation policy.`,approve:`Approve`,cancel:`Cancel`,approveReason:`User approved recruitment event`,cancelReason:`User cancelled recruitment event`,decisionFailed:`Could not process the recruitment event.`},dialog:{createTitle:`Add project Agent`,editTitle:`Edit project Agent`,saveCreate:`Create Agent`,saveEdit:`Save changes`,projectPlaceholder:`Select a project`,agentIdPlaceholder:`For example, design-agent`,namePlaceholder:`For example, Design Agent`,occupationEmojiPlaceholder:`For example, 🎛️`,responsibilityPlaceholder:`Describe the work assigned to this Agent.`,capabilitiesPlaceholder:`One per line, for example:
8
8
  Interaction design
9
- Usability review`,preferencesPlaceholder:`One per line, used only to initialize collaboration.`,idLocked:`The Agent ID is stable after creation; projects are managed as separate assignments.`,allowListPlaceholder:`One real executor ID per line; availability is never inferred.`,required:`Agent ID, name, and responsibility are required.`,occupationEmojiInvalid:`Occupation emoji must contain only emoji characters.`,spaceUnavailable:`The current space is unavailable; the Agent cannot be saved.`,initialAssignmentReason:`Initial project assignment from the Agent directory`,projectUnavailable:`The selected project is no longer available. Choose another project.`,duplicate:`Capabilities and startup conventions cannot contain duplicates.`,saveFailed:`Could not save the project Agent.`},assignmentDialog:{assign:`Assign project`,end:`Unassign`,replace:`Replace`,assignTitle:`Assign project responsibility`,endTitle:`Unassign project`,replaceTitle:`Replace project Agent`,replacement:`Replace with`,replacementPlaceholder:`Select an existing Agent`,workKinds:`Work kinds`,workKindsPlaceholder:`One per line`,reasonPlaceholder:`Record why this assignment changed.`,required:`Responsibility and reason are required.`,replacementRequired:`Choose a replacement Agent.`,saveAssign:`Save assignment`,saveChange:`Save change`,saveFailed:`Could not save the project assignment.`}}},Jm={"zh-CN":{overview:{title:`概览`},preferences:{title:`协作偏好`,description:`个人全局与项目级的品味、个性和判断偏好,只保存在本机。`},writingTaste:{title:`写作偏好`},personalProjects:{title:`个人项目`,description:`本机私有项目、项目知识与按任务生效的协作偏好。`},projectAgents:{title:`项目 Agent`},employeeWorkbench:{title:`专属 Agent`},loadFailure:{title:`暂时无法打开页面`,resources:`页面文件加载失败,可能是界面已更新或服务暂时断开。当前内容仍然保留。`,message:`页面未能加载,当前内容仍然保留。可以重新载入,或继续使用当前页面。`,reload:`重新载入并打开`,dismiss:`留在当前页`},organizer:{title:`知识整理`},publicProjects:{title:`公共项目`,description:`发现、订阅和维护公共 Provider 上的项目。`},knowledge:{title:`知识库`},about:{title:`说明`},settings:{title:`设置`},review:{title:`发布审核`,description:`个人发布确认与公共项目 Maintainer 审核。`},connections:{title:`服务连接`,description:`本地知识库状态、公共 Provider 与项目订阅。`}},"en-US":{overview:{title:`Overview`},preferences:{title:`Collaboration preferences`,description:`Global and project-specific taste, personality, and judgment preferences stored only on this device.`},writingTaste:{title:`Writing taste`},personalProjects:{title:`Personal projects`,description:`Private local projects, project knowledge, and task-scoped collaboration preferences.`},projectAgents:{title:`Project Agents`},employeeWorkbench:{title:`Specialist Agents`},loadFailure:{title:`This page could not open`,resources:`Page files could not load. The app may have updated or disconnected. Your current page is unchanged.`,message:`The page could not load. Your current page is unchanged. Reload to try again or stay here.`,reload:`Reload and open`,dismiss:`Stay here`},organizer:{title:`Knowledge organizer`},publicProjects:{title:`Public projects`,description:`Discover, subscribe to, and maintain projects on a public Provider.`},knowledge:{title:`Knowledge base`},about:{title:`About`},settings:{title:`Settings`},review:{title:`Publishing review`,description:`Personal publishing confirmation and public project Maintainer review.`},connections:{title:`Service connections`,description:`Local knowledge status, public Providers, and project subscriptions.`}}},Ym={"zh-CN":{aria:`设置`,resources:{title:`资源占用`,memory:`内存`,disk:`硬盘`,available:`电脑可用 {value}`,partial:`部分组件暂时无法读取`,measuredAt:`内存更新于 {time}`,diskMeasuredAt:`硬盘更新于 {time}`,refresh:`刷新频率`,refreshUnit:`{seconds} 秒`,temporary:`其中 Neo4j 临时文件 {value}`,exclusionsContainer:`不含浏览器标签页及 Docker 共享虚拟机开销。`,exclusionsNative:`不含浏览器标签页内存。原生进程已计入。`,unavailable:`暂时无法获取资源数据`,components:{console:`管理服务`,personalProvider:`个人 Provider`,personalNeo4j:`个人 Neo4j`,workspaceProvider:`开发公共 Provider`,workspaceNeo4j:`开发公共 Neo4j`,application:`程序文件`,localData:`本地运行数据`,containerImages:`容器镜像`,containerWritable:`容器运行数据`,neo4jData:`Neo4j 数据`,neo4jLogs:`Neo4j 日志`}},ports:{title:`服务端口`,personal:`个人服务`,development:`公共服务`,developing:`开发中`,developmentMeta:`fuli-server 发布后,可配置已部署服务的域名。`,console:`管理界面`,personalProvider:`个人 Provider`,personalNeo4jHttp:`个人 Neo4j Browser`,personalNeo4jBolt:`个人 Neo4j Bolt`,workspaceProvider:`公共 Provider`,workspaceNeo4jHttp:`公共 Neo4j Browser`,workspaceNeo4jBolt:`公共 Neo4j Bolt`,active:`当前 {port}`},behavior:{title:`运行设置`,capture:`自动沉淀`,captureMeta:`把新的稳定会话知识写入本机`,agentAccess:`Agent 使用`,agentAccessMeta:`允许已连接的 Agent 调用 FULI`,lanAccess:`局域网访问`,lanAccessMeta:`允许同一可信网络中的设备访问管理界面`,runtimeMode:`图数据库运行方式`,runtimeModeMeta:`当前运行:{mode};保存后重启生效`,runtimeRecommendation:`本机内存较小,推荐原生模式,避免虚拟机常驻内存`,runtimeModes:{native:`原生(低内存)`,container:`容器(兼容)`},language:`界面语言`,zh:`简体中文`,en:`English`},conversationLaunchers:{title:`会话打开方式`,enabled:`启用`,sourceId:`来源 ID · {id}`,idFormat:`可打开的 ID`,appName:`打开 App`,urlTemplate:`链接模板`,idFormats:{any:`任意非空 ID`,uuid:`仅 UUID`},idFormatMeta:`Codex 深链要求原生会话 UUID;其他来源可按其支持的 ID 格式配置。`,applications:{codex:`Codex`,claude:`Claude`,claude_code:`Claude Code`,cursor:`Cursor`,gemini_cli:`Gemini CLI`,kiro:`Kiro`,other:`其他 Agent`}},save:`保存设置`,saving:`正在保存`,saved:`设置已保存`,restartRequired:`需要重启`,restartCopy:`端口或局域网设置将在运行 fuli restart 后生效。`,loadError:`无法读取设置`,saveError:`无法保存设置`},"en-US":{aria:`Settings`,resources:{title:`Resource usage`,memory:`Memory`,disk:`Disk`,available:`{value} available on this device`,partial:`Some components are temporarily unavailable`,measuredAt:`Memory updated {time}`,diskMeasuredAt:`Disk updated {time}`,refresh:`Refresh interval`,refreshUnit:`{seconds} seconds`,temporary:`{value} is Neo4j temporary data`,exclusionsContainer:`Browser tabs and shared Docker VM overhead are excluded.`,exclusionsNative:`Browser-tab memory is excluded. Native processes are included.`,unavailable:`Resource data is temporarily unavailable`,components:{console:`Management service`,personalProvider:`Personal Provider`,personalNeo4j:`Personal Neo4j`,workspaceProvider:`Development public Provider`,workspaceNeo4j:`Development public Neo4j`,application:`Application files`,localData:`Local runtime data`,containerImages:`Container images`,containerWritable:`Container runtime data`,neo4jData:`Neo4j data`,neo4jLogs:`Neo4j logs`}},ports:{title:`Service ports`,personal:`Personal services`,development:`Public service`,developing:`In development`,developmentMeta:`Configure the deployed server domain after fuli-server is published.`,console:`Management UI`,personalProvider:`Personal Provider`,personalNeo4jHttp:`Personal Neo4j Browser`,personalNeo4jBolt:`Personal Neo4j Bolt`,workspaceProvider:`Public Provider`,workspaceNeo4jHttp:`Public Neo4j Browser`,workspaceNeo4jBolt:`Public Neo4j Bolt`,active:`Active: {port}`},behavior:{title:`Runtime settings`,capture:`Automatic capture`,captureMeta:`Write new, stable conversation knowledge to this device`,agentAccess:`Agent access`,agentAccessMeta:`Allow connected Agents to use FULI`,lanAccess:`LAN access`,lanAccessMeta:`Allow devices on the same trusted network to open the console`,runtimeMode:`Graph database runtime`,runtimeModeMeta:`Active: {mode}; restart after saving to apply`,runtimeRecommendation:`Native mode is recommended on this low-memory device to avoid VM overhead`,runtimeModes:{native:`Native (low memory)`,container:`Container (compatible)`},language:`Interface language`,zh:`简体中文`,en:`English`},conversationLaunchers:{title:`Conversation openers`,enabled:`Enabled`,sourceId:`Source ID · {id}`,idFormat:`Allowed IDs`,appName:`Open with app`,urlTemplate:`URL template`,idFormats:{any:`Any non-empty ID`,uuid:`UUID only`},idFormatMeta:`Codex deep links require the native conversation UUID; configure other sources to match their supported IDs.`,applications:{codex:`Codex`,claude:`Claude`,claude_code:`Claude Code`,cursor:`Cursor`,gemini_cli:`Gemini CLI`,kiro:`Kiro`,other:`Other Agent`}},save:`Save settings`,saving:`Saving`,saved:`Settings saved`,restartRequired:`Restart required`,restartCopy:`Port and LAN changes apply after running fuli restart.`,loadError:`Could not load settings`,saveError:`Could not save settings`}},Xm={"zh-CN":{status:{collecting:`收集中`,preview_ready:`初稿已形成`,active:`已启用`},milestone:{aria:`写作偏好成熟度`,collectingTitle:`写作偏好正在形成`,collectingCopy:`积累到足够稳定后,这里会出现你的写作偏好初稿。`,previewTitle:`你的写作偏好初稿已形成`,activeTitle:`你的写作偏好已形成`,readyCopy:`查看 Agent 目前如何理解你的写作方式,并确认或修改每条规则。`,rules:`{current}/{target} 条规则`,sessions:`{current}/{target} 次会话`,open:`查看写作偏好`},page:{loading:`正在整理写作偏好`,back:`返回协作偏好`,collectingTitle:`还在收集写作偏好`,collectingCopy:`画像会在证据跨越多个会话和日期,或你明确确认足够多规则后生成。`,previewTitle:`写作偏好初稿`,previewCopy:`这些规律已有重复证据,但仍需要你的确认。`,activeTitle:`你的写作偏好`,activeCopy:`Agent 会使用已确认和已观察的规则;当前请求始终优先。`,readinessAria:`写作偏好生成条件`,rulesTitle:`当前规则`,rulesEmpty:`还没有识别到写作相关偏好。`,profileUnavailable:`暂时无法读取写作偏好。`,edit:`修改`,confirm:`确认`,conflict:`存在冲突`,evidence:`{evidence} 条证据`,sessions:`{sessions} 次会话`,globalScope:`个人全局`,projectScope:`仅 {project}`,updated:`更新于 {time}`,contexts:`适用:{contexts}`,agentPreviewTitle:`Agent 使用的规则`,agentPreviewCopy:`只包含没有冲突的 Confirmed 与 Observed;Working hypothesis 不会进入这里。`,showAgentPreview:`查看 Agent 规则`,hideAgentPreview:`收起 Agent 规则`},evidenceStatus:{Confirmed:`已确认`,Observed:`已观察`,"Working hypothesis":`工作假设`},criteria:{rules:`稳定规则`,evidence:`支持证据`,sessions:`独立会话`,days:`观察日期`,confirmed:`用户确认`,conflicts:`未解决冲突`,progress:`{current} / {target}`,conflictsProgress:`{current} 个`}},"en-US":{status:{collecting:`Collecting`,preview_ready:`Draft ready`,active:`Active`},milestone:{aria:`Writing taste readiness`,collectingTitle:`Your writing taste is taking shape`,collectingCopy:`A writing-taste draft will appear after the evidence becomes stable enough.`,previewTitle:`Your writing-taste draft is ready`,activeTitle:`Your writing taste is ready`,readyCopy:`Review how Agents currently understand your writing and confirm or revise each rule.`,rules:`{current}/{target} rules`,sessions:`{current}/{target} sessions`,open:`View writing taste`},page:{loading:`Organizing writing preferences`,back:`Back to collaboration preferences`,collectingTitle:`Still collecting writing preferences`,collectingCopy:`The profile appears after evidence spans multiple sessions and days, or after you directly confirm enough rules.`,previewTitle:`Writing-taste draft`,previewCopy:`These patterns have repeated evidence but still need your confirmation.`,activeTitle:`Your writing taste`,activeCopy:`Agents use confirmed and observed rules; the current request always wins.`,readinessAria:`Writing taste generation criteria`,rulesTitle:`Current rules`,rulesEmpty:`No writing-related preference has been identified yet.`,profileUnavailable:`Writing taste is temporarily unavailable.`,edit:`Edit`,confirm:`Confirm`,conflict:`Conflict`,evidence:`{evidence} evidence records`,sessions:`{sessions} sessions`,globalScope:`Personal global`,projectScope:`{project} only`,updated:`Updated {time}`,contexts:`Applies to: {contexts}`,agentPreviewTitle:`Rules used by Agents`,agentPreviewCopy:`Includes only conflict-free Confirmed and Observed rules. Working hypotheses stay out.`,showAgentPreview:`View Agent rules`,hideAgentPreview:`Hide Agent rules`},evidenceStatus:{Confirmed:`Confirmed`,Observed:`Observed`,"Working hypothesis":`Working hypothesis`},criteria:{rules:`Stable rules`,evidence:`Supporting evidence`,sessions:`Independent sessions`,days:`Observation days`,confirmed:`User-confirmed`,conflicts:`Unresolved conflicts`,progress:`{current} / {target}`,conflictsProgress:`{current}`}}},Zm={"zh-CN":{recruit:`聘请 Agent`,workbench:`Agent 工作台`,directory:`专属 Agent`,project:`分配到项目`,unassigned:`暂不分配`,choose:`选择专属 Agent`,capabilities:`擅长`,permissions:`项目权限`,boardRead:`读取所选项目的看板`,boardWrite:`创建、修改任务与状态`,noExecutor:`聘请不会启动模型或外部执行器。`,hostReady:`工作台已就绪 · 随 FULI 运行`,installRequired:`工作台尚未安装;聘请只创建 Agent 身份。`,installHelp:`构建 Agent 包后运行 fl employee install <目录>。`,recruitName:`聘请 {name}`,rehire:`恢复 {name}`,assign:`保存负责范围`,recruited:`已聘请`,recruiting:`正在保存…`,open:`打开工作台`,close:`关闭`,cancel:`取消`,retry:`重试`,loading:`正在读取专属 Agent…`,manageProjects:`管理负责项目`,manageProjectsTitle:`管理 {name} 的项目`,loadingScope:`正在读取负责范围…`,viewingProject:`当前查看的项目`,viewingHint:`切换看板视图,不改变负责范围。`,allProjects:{option:`全部项目`,optionMeta:`{count} 个项目`,title:`全部项目看板`,hint:`汇总 {count} 个项目的任务;选择任务可进入所属项目继续处理。`,projectFilter:`项目范围`,projectFilterHint:`只影响当前看板,不改变负责范围。取消勾选可隐藏项目,也支持反选。`,search:`搜索全部任务`,searchPlaceholder:`搜索任务、项目或标签`,boardLabel:`全部项目任务看板`,partial:`已显示 {loaded}/{total} 个项目,{failed} 个项目读取失败。`,truncated:`有 {count} 个项目仅显示部分任务;进入项目可查看完整看板。`,empty:`所有项目都很清爽`,emptyHint:`当前负责的项目还没有任务。`,noProjectsVisible:`没有显示任何项目`,noProjectsVisibleHint:`重新勾选项目后,就能继续查看对应任务。`,showAllProjects:`显示全部项目`,noMatch:`没有匹配的任务`,noMatchHint:`换个关键词,或清空搜索后查看全部任务。`,columnEmpty:`暂无任务`,taskCount:`{count} 个任务`,openTask:`在 {project} 中查看任务:{task}`,back:`返回全部项目`,dragHint:`拖动卡片可更新状态;键盘聚焦拖动按钮后,按空格拿起、方向键移动、再按空格放下。`,dragTask:`移动任务:{task}`,saving:`保存中`,dragLifted:`已拿起“{task}”,当前位置:{status}。`,dragMoved:`已移动到:{status}。`,dragDropped:`已将“{task}”移动到:{status}。`,dragCancelled:`已取消移动。`,moveFailed:`任务移动失败,已恢复原状态:{error}`,status:{planned:`待办`,active:`进行中`,blocked:`阻塞`,review:`待确认`,done:`已完成`}},assignedCount:`负责 {count} 个项目`,noAssignedProjects:`尚未分配项目`,manageHint:`可同时负责多个项目。全选后,取消勾选不需要的项目。`,filterLabel:`筛选项目`,filterHint:`仅筛选 Agent 列表,不改变任何负责范围。`,filterEmpty:`未选择项目`,success:`{name} 已加入`,successAssigned:`已分配到 {project}`,successUnassigned:`可以稍后为 Agent 分配项目。`,successMultiple:`现在负责 {count} 个项目。`,scopeSaved:`负责范围已保存`,scopeRemoved:`将移出 {count} 个项目,项目和任务数据会保留。`,reloadScope:`重新读取负责范围`,scope:{rule:`管理范围规则`,continuousAll:`全部项目 · 自动纳入`,onlySelected:`只管理所选项目`,allHint:`当前和以后新建的项目都由 {name} 管理;取消勾选即可明确排除。`,selectedHint:`只管理下方勾选的项目,不自动纳入新项目。`,excludeHint:`勾选表示允许管理;排除后,任务和标题都不会再经过这位 Agent。`,excludedCount:`已排除 {count} 个项目,归档或暂不可用的排除记录也会保留。`,successAll:`当前负责 {count} 个项目,以后新建的项目也会自动纳入。`,label:`负责项目`,all:`全部项目`,allSummary:`全部项目 · {count} 个`,selected:`已选 {count} 个项目`,search:`搜索项目`,invert:`反选`,multiple:`多选`,count:`已选 {selected} / {total} 个项目`,done:`完成选择`,noMatch:`没有匹配的项目`,empty:`暂无可选项目`,snapshotHint:`支持多选、全选后排除;新建项目需另行选择。`},titles:{heading:`会话标题`,mode:`整理方式`,style:`标题风格`,auto:`自动整理(客户端支持时)`,suggest:`只生成建议`,off:`不整理标题`,emoji:`Emoji + 类型`,text:`纯文字`,example:`格式示例`,exampleTask:`修复登录异常`,boundary:`结合关联任务的优先级与类型。手动改名后暂停覆盖;机密内容隐藏,客户端不支持时只保留建议。`},createProject:`创建项目`,noProjects:`还没有项目,先聘请 Agent 或创建一个项目。`,noTemplates:`暂无可聘请的 Agent`,emptyWorkbench:`先选择要负责的项目`,unavailable:`这位专属 Agent 暂不可用。`,backToAgents:`返回项目 Agent`,loadingWorkbench:`正在打开工作台…`,loadError:`Agent 服务暂时不可用,请重试。`,errors:{runtime_unavailable:`工作台未安装或无法加载,请检查 Agent 包后重试。`,assignment_required:`这位 Agent 尚未获准管理此项目,请检查负责范围。`,project_not_found:`项目不可用,请选择有效项目。`,identity_conflict:`标识已被其他 Agent 使用,原有 Agent 未修改。`,reactivation_required:`这位 Agent 已停用,请明确恢复后再分配。`,assignment_scope_conflict:`负责范围已在别处改变。请重新读取,确认后再保存。`,assignment_update_incomplete:`负责范围未能全部保存,部分修改可能已生效。请重新读取并核对后重试。`}},"en-US":{recruit:`Hire an Agent`,workbench:`Agent workspace`,directory:`Specialist Agents`,project:`Assign to project`,unassigned:`Assign later`,choose:`Choose a specialist Agent`,capabilities:`Specialties`,permissions:`Project permissions`,boardRead:`Read the selected project board`,boardWrite:`Create and update tasks and status`,noExecutor:`Hiring does not start a model or external executor.`,hostReady:`Workbench ready · hosted by FULI`,installRequired:`Workspace not installed; hiring creates the Agent identity only.`,installHelp:`Build the Agent package, then run fl employee install <directory>.`,recruitName:`Hire {name}`,rehire:`Reactivate {name}`,assign:`Save project selection`,recruited:`Hired`,recruiting:`Saving…`,open:`Open workspace`,close:`Close`,cancel:`Cancel`,retry:`Retry`,loading:`Loading specialist Agents…`,manageProjects:`Manage assigned projects`,manageProjectsTitle:`Manage {name}’s projects`,loadingScope:`Loading project selection…`,viewingProject:`Currently viewing`,viewingHint:`Switch boards without changing assignments.`,allProjects:{option:`All projects`,optionMeta:`{count} projects`,title:`All-project board`,hint:`Tasks from {count} projects. Select a task to continue in its project.`,projectFilter:`Project scope`,projectFilterHint:`Filters this board only. Uncheck projects to hide them, or invert the selection.`,search:`Search all tasks`,searchPlaceholder:`Search tasks, projects, or tags`,boardLabel:`All-project task board`,partial:`Showing {loaded}/{total} projects. {failed} failed to load.`,truncated:`{count} projects show only some tasks. Open a project for its complete board.`,empty:`All projects are clear`,emptyHint:`The assigned projects have no tasks yet.`,noProjectsVisible:`No projects shown`,noProjectsVisibleHint:`Select projects again to see their tasks.`,showAllProjects:`Show all projects`,noMatch:`No matching tasks`,noMatchHint:`Try another term, or clear search to see every task.`,columnEmpty:`No tasks`,taskCount:`{count} tasks`,openTask:`View task in {project}: {task}`,back:`Back to all projects`,dragHint:`Drag cards to update status. With a drag button focused, press Space to lift, use arrow keys to move, then Space to drop.`,dragTask:`Move task: {task}`,saving:`Saving`,dragLifted:`Lifted “{task}” from {status}.`,dragMoved:`Moved to {status}.`,dragDropped:`Moved “{task}” to {status}.`,dragCancelled:`Move cancelled.`,moveFailed:`The task could not be moved and was restored: {error}`,status:{planned:`Planned`,active:`In progress`,blocked:`Blocked`,review:`Review`,done:`Done`}},assignedCount:`Assigned to {count} projects`,noAssignedProjects:`No projects assigned`,manageHint:`Assign multiple projects. Select all, then uncheck any to exclude.`,filterLabel:`Filter projects`,filterHint:`Filters the Agent list only. Assignments stay unchanged.`,filterEmpty:`No projects selected`,success:`{name} has joined`,successAssigned:`Assigned to {project}`,successUnassigned:`You can assign this Agent to a project later.`,successMultiple:`Now assigned to {count} projects.`,scopeSaved:`Project selection saved`,scopeRemoved:`Will leave {count} projects. Their projects and tasks will be kept.`,reloadScope:`Reload project selection`,scope:{rule:`Management rule`,continuousAll:`All projects · automatic`,onlySelected:`Selected projects only`,allHint:`Manage current and future projects. Uncheck a project to explicitly exclude it.`,selectedHint:`Manage only checked projects. New projects are not included automatically.`,excludeHint:`Checked means allowed. Excluded projects send neither tasks nor titles to this Agent.`,excludedCount:`{count} excluded projects. Archived or unavailable exclusions are preserved.`,successAll:`Managing {count} current projects; future projects will be included automatically.`,label:`Assigned projects`,all:`All projects`,allSummary:`All projects · {count}`,selected:`{count} projects selected`,search:`Search projects`,invert:`Invert selection`,multiple:`Multiple`,count:`{selected} / {total} projects selected`,done:`Done`,noMatch:`No matching projects`,empty:`No projects available`,snapshotHint:`Select multiple, or select all and exclude. New projects must be selected separately.`},titles:{heading:`Session titles`,mode:`Behavior`,style:`Title style`,auto:`Automatic when supported`,suggest:`Suggestions only`,off:`Leave titles unchanged`,emoji:`Emoji + type`,text:`Text only`,example:`Format example`,exampleTask:`Fix sign-in failure`,boundary:`Uses linked task priorities and types. Manual edits pause automation; confidential details stay hidden. Unsupported clients receive suggestions only.`},createProject:`Create project`,noProjects:`No projects yet. Hire an Agent first or create a project.`,noTemplates:`No specialist Agents available`,emptyWorkbench:`Choose projects to manage`,unavailable:`This specialist Agent is unavailable.`,backToAgents:`Back to project Agents`,loadingWorkbench:`Opening workspace…`,loadError:`Agent service is unavailable. Please retry.`,errors:{runtime_unavailable:`Workbench is not installed or could not load. Check its package and retry.`,assignment_required:`This Agent cannot manage this project yet. Check its assigned projects.`,project_not_found:`Project unavailable. Select an active project.`,identity_conflict:`Another Agent uses this identifier. The existing Agent was not modified.`,reactivation_required:`This Agent is inactive. Explicitly reactivate it before assigning.`,assignment_scope_conflict:`Project assignments changed elsewhere. Reload, review, and save again.`,assignment_update_incomplete:`The selection was not fully saved. Some changes may have applied. Reload and review before retrying.`}}},Qm=[`zh-CN`,`en-US`],$m=`fuli.locale`;function eh(e){return typeof e==`string`&&Qm.includes(e)}function th(e,t=[]){if(eh(e))return e;for(let e of t){let t=ih(e);if(t)return t}return`en-US`}function nh(){if(typeof window>`u`)return null;try{return window.localStorage.getItem($m)}catch{return null}}function rh(){return typeof navigator>`u`?[]:navigator.languages.length>0?navigator.languages:navigator.language?[navigator.language]:[]}function ih(e){let t=e.trim().toLowerCase().split(/[-_]/,1)[0];return t===`zh`?`zh-CN`:t===`en`?`en-US`:null}var ah={"zh-CN":{employees:Zm[`zh-CN`],about:Um[`zh-CN`],common:Rm[`zh-CN`],console:zm[`zh-CN`],knowledge:{dialogs:Vm[`zh-CN`],domain:Bm[`zh-CN`],workspace:Hm[`zh-CN`]},pages:Wm[`zh-CN`],preferences:Gm[`zh-CN`],projects:Km[`zh-CN`],projectAgents:qm[`zh-CN`],routes:Jm[`zh-CN`],settings:Ym[`zh-CN`],writingTaste:Xm[`zh-CN`]},"en-US":{employees:Zm[`en-US`],about:Um[`en-US`],common:Rm[`en-US`],console:zm[`en-US`],knowledge:{dialogs:Vm[`en-US`],domain:Bm[`en-US`],workspace:Hm[`en-US`]},pages:Wm[`en-US`],preferences:Gm[`en-US`],projects:Km[`en-US`],projectAgents:qm[`en-US`],routes:Jm[`en-US`],settings:Ym[`en-US`],writingTaste:Xm[`en-US`]}},oh=Tm({legacy:!1,globalInjection:!0,locale:th(nh(),rh()),fallbackLocale:`zh-CN`,messages:ah});function sh(){return th(oh.global.locale.value)}function ch(e,t={}){if(oh.global.locale.value=e,typeof document<`u`&&(document.documentElement.lang=e),!(t.persist===!1||typeof window>`u`))try{window.localStorage.setItem($m,e)}catch{}}function lh(e,t){return t?oh.global.t(e,t):oh.global.t(e)}ch(sh(),{persist:!1});export{rn as $,qn as A,yr as B,Ss as C,gr as D,tc as E,la as F,Yt as G,fr as H,da as I,Ae as J,R as K,aa as L,Ki as M,os as N,hr as O,mr as P,Gt as Q,ni as R,Cs as S,ti as T,Oe as U,dr as V,ke as W,Kt as X,Wt as Y,nn as Z,ec as _,lh as a,Ce as at,ws as b,Gl as c,Wl as d,L as et,Hc as f,Lr as g,B as h,ch as i,N as it,Yi as j,Os as k,ql as l,iu as m,sh as n,cn as nt,Nl as o,ou as p,$t as q,oh as r,he as rt,mu as s,Qm as t,mn as tt,Jl as u,vs as v,H as w,ds as x,fs as y,Sr as z};
9
+ Usability review`,preferencesPlaceholder:`One per line, used only to initialize collaboration.`,idLocked:`The Agent ID is stable after creation; projects are managed as separate assignments.`,allowListPlaceholder:`One real executor ID per line; availability is never inferred.`,required:`Agent ID, name, and responsibility are required.`,occupationEmojiInvalid:`Occupation emoji must contain only emoji characters.`,spaceUnavailable:`The current space is unavailable; the Agent cannot be saved.`,initialAssignmentReason:`Initial project assignment from the Agent directory`,projectUnavailable:`The selected project is no longer available. Choose another project.`,duplicate:`Capabilities and startup conventions cannot contain duplicates.`,saveFailed:`Could not save the project Agent.`},assignmentDialog:{assign:`Assign project`,end:`Unassign`,replace:`Replace`,assignTitle:`Assign project responsibility`,endTitle:`Unassign project`,replaceTitle:`Replace project Agent`,replacement:`Replace with`,replacementPlaceholder:`Select an existing Agent`,workKinds:`Work kinds`,workKindsPlaceholder:`One per line`,reasonPlaceholder:`Record why this assignment changed.`,required:`Responsibility and reason are required.`,replacementRequired:`Choose a replacement Agent.`,saveAssign:`Save assignment`,saveChange:`Save change`,saveFailed:`Could not save the project assignment.`}}},Jm={"zh-CN":{overview:{title:`概览`},preferences:{title:`协作偏好`,description:`个人全局与项目级的品味、个性和判断偏好,只保存在本机。`},writingTaste:{title:`写作偏好`},personalProjects:{title:`个人项目`,description:`本机私有项目、项目知识与按任务生效的协作偏好。`},projectAgents:{title:`项目 Agent`},employeeWorkbench:{title:`专属 Agent`},loadFailure:{title:`暂时无法打开页面`,resources:`页面文件加载失败,可能是界面已更新或服务暂时断开。当前内容仍然保留。`,message:`页面未能加载,当前内容仍然保留。可以重新载入,或继续使用当前页面。`,reload:`重新载入并打开`,dismiss:`留在当前页`},organizer:{title:`知识整理`},publicProjects:{title:`公共项目`,description:`发现、订阅和维护公共 Provider 上的项目。`},knowledge:{title:`知识库`},about:{title:`说明`},settings:{title:`设置`},review:{title:`发布审核`,description:`个人发布确认与公共项目 Maintainer 审核。`},connections:{title:`服务连接`,description:`本地知识库状态、公共 Provider 与项目订阅。`}},"en-US":{overview:{title:`Overview`},preferences:{title:`Collaboration preferences`,description:`Global and project-specific taste, personality, and judgment preferences stored only on this device.`},writingTaste:{title:`Writing taste`},personalProjects:{title:`Personal projects`,description:`Private local projects, project knowledge, and task-scoped collaboration preferences.`},projectAgents:{title:`Project Agents`},employeeWorkbench:{title:`Specialist Agents`},loadFailure:{title:`This page could not open`,resources:`Page files could not load. The app may have updated or disconnected. Your current page is unchanged.`,message:`The page could not load. Your current page is unchanged. Reload to try again or stay here.`,reload:`Reload and open`,dismiss:`Stay here`},organizer:{title:`Knowledge organizer`},publicProjects:{title:`Public projects`,description:`Discover, subscribe to, and maintain projects on a public Provider.`},knowledge:{title:`Knowledge base`},about:{title:`About`},settings:{title:`Settings`},review:{title:`Publishing review`,description:`Personal publishing confirmation and public project Maintainer review.`},connections:{title:`Service connections`,description:`Local knowledge status, public Providers, and project subscriptions.`}}},Ym={"zh-CN":{aria:`设置`,resources:{title:`资源占用`,memory:`内存`,disk:`硬盘`,available:`电脑可用 {value}`,partial:`部分组件暂时无法读取`,measuredAt:`内存更新于 {time}`,diskMeasuredAt:`硬盘更新于 {time}`,refresh:`刷新频率`,refreshUnit:`{seconds} 秒`,temporary:`其中 Neo4j 临时文件 {value}`,exclusionsContainer:`不含浏览器标签页及 Docker 共享虚拟机开销。`,exclusionsNative:`不含浏览器标签页内存。原生进程已计入。`,unavailable:`暂时无法获取资源数据`,components:{console:`管理服务`,personalProvider:`个人 Provider`,personalNeo4j:`个人 Neo4j`,workspaceProvider:`开发公共 Provider`,workspaceNeo4j:`开发公共 Neo4j`,application:`程序文件`,localData:`本地运行数据`,containerImages:`容器镜像`,containerWritable:`容器运行数据`,neo4jData:`Neo4j 数据`,neo4jLogs:`Neo4j 日志`}},ports:{title:`服务端口`,personal:`个人服务`,development:`公共服务`,developing:`开发中`,developmentMeta:`fuli-server 发布后,可配置已部署服务的域名。`,console:`管理界面`,personalProvider:`个人 Provider`,personalNeo4jHttp:`个人 Neo4j Browser`,personalNeo4jBolt:`个人 Neo4j Bolt`,workspaceProvider:`公共 Provider`,workspaceNeo4jHttp:`公共 Neo4j Browser`,workspaceNeo4jBolt:`公共 Neo4j Bolt`,active:`当前 {port}`},behavior:{title:`运行设置`,capture:`自动沉淀`,captureMeta:`把新的稳定会话知识写入本机`,agentAccess:`Agent 使用`,agentAccessMeta:`允许已连接的 Agent 调用 FULI`,lanAccess:`局域网访问`,lanAccessMeta:`允许同一可信网络中的设备访问管理界面`,runtimeMode:`图数据库运行方式`,runtimeModeMeta:`当前运行:{mode};保存后重启生效`,runtimeRecommendation:`本机内存较小,推荐原生模式,避免虚拟机常驻内存`,runtimeModes:{native:`原生(低内存)`,container:`容器(兼容)`},language:`界面语言`,zh:`简体中文`,en:`English`},conversationLaunchers:{title:`会话打开方式`,enabled:`启用`,sourceId:`来源 ID · {id}`,idFormat:`可打开的 ID`,appName:`打开 App`,urlTemplate:`链接模板`,idFormats:{any:`任意非空 ID`,uuid:`仅 UUID`},idFormatMeta:`Codex 深链要求原生会话 UUID;其他来源可按其支持的 ID 格式配置。`,applications:{codex:`Codex`,claude:`Claude`,claude_code:`Claude Code`,cursor:`Cursor`,gemini_cli:`Gemini CLI`,kiro:`Kiro`,other:`其他 Agent`}},save:`保存设置`,saving:`正在保存`,saved:`设置已保存`,restartRequired:`需要重启`,restartCopy:`端口或局域网设置将在运行 fuli restart 后生效。`,loadError:`无法读取设置`,saveError:`无法保存设置`},"en-US":{aria:`Settings`,resources:{title:`Resource usage`,memory:`Memory`,disk:`Disk`,available:`{value} available on this device`,partial:`Some components are temporarily unavailable`,measuredAt:`Memory updated {time}`,diskMeasuredAt:`Disk updated {time}`,refresh:`Refresh interval`,refreshUnit:`{seconds} seconds`,temporary:`{value} is Neo4j temporary data`,exclusionsContainer:`Browser tabs and shared Docker VM overhead are excluded.`,exclusionsNative:`Browser-tab memory is excluded. Native processes are included.`,unavailable:`Resource data is temporarily unavailable`,components:{console:`Management service`,personalProvider:`Personal Provider`,personalNeo4j:`Personal Neo4j`,workspaceProvider:`Development public Provider`,workspaceNeo4j:`Development public Neo4j`,application:`Application files`,localData:`Local runtime data`,containerImages:`Container images`,containerWritable:`Container runtime data`,neo4jData:`Neo4j data`,neo4jLogs:`Neo4j logs`}},ports:{title:`Service ports`,personal:`Personal services`,development:`Public service`,developing:`In development`,developmentMeta:`Configure the deployed server domain after fuli-server is published.`,console:`Management UI`,personalProvider:`Personal Provider`,personalNeo4jHttp:`Personal Neo4j Browser`,personalNeo4jBolt:`Personal Neo4j Bolt`,workspaceProvider:`Public Provider`,workspaceNeo4jHttp:`Public Neo4j Browser`,workspaceNeo4jBolt:`Public Neo4j Bolt`,active:`Active: {port}`},behavior:{title:`Runtime settings`,capture:`Automatic capture`,captureMeta:`Write new, stable conversation knowledge to this device`,agentAccess:`Agent access`,agentAccessMeta:`Allow connected Agents to use FULI`,lanAccess:`LAN access`,lanAccessMeta:`Allow devices on the same trusted network to open the console`,runtimeMode:`Graph database runtime`,runtimeModeMeta:`Active: {mode}; restart after saving to apply`,runtimeRecommendation:`Native mode is recommended on this low-memory device to avoid VM overhead`,runtimeModes:{native:`Native (low memory)`,container:`Container (compatible)`},language:`Interface language`,zh:`简体中文`,en:`English`},conversationLaunchers:{title:`Conversation openers`,enabled:`Enabled`,sourceId:`Source ID · {id}`,idFormat:`Allowed IDs`,appName:`Open with app`,urlTemplate:`URL template`,idFormats:{any:`Any non-empty ID`,uuid:`UUID only`},idFormatMeta:`Codex deep links require the native conversation UUID; configure other sources to match their supported IDs.`,applications:{codex:`Codex`,claude:`Claude`,claude_code:`Claude Code`,cursor:`Cursor`,gemini_cli:`Gemini CLI`,kiro:`Kiro`,other:`Other Agent`}},save:`Save settings`,saving:`Saving`,saved:`Settings saved`,restartRequired:`Restart required`,restartCopy:`Port and LAN changes apply after running fuli restart.`,loadError:`Could not load settings`,saveError:`Could not save settings`}},Xm={"zh-CN":{status:{collecting:`收集中`,preview_ready:`初稿已形成`,active:`已启用`},milestone:{aria:`写作偏好成熟度`,collectingTitle:`写作偏好正在形成`,collectingCopy:`积累到足够稳定后,这里会出现你的写作偏好初稿。`,previewTitle:`你的写作偏好初稿已形成`,activeTitle:`你的写作偏好已形成`,readyCopy:`查看 Agent 目前如何理解你的写作方式,并确认或修改每条规则。`,rules:`{current}/{target} 条规则`,sessions:`{current}/{target} 次会话`,open:`查看写作偏好`},page:{loading:`正在整理写作偏好`,back:`返回协作偏好`,collectingTitle:`还在收集写作偏好`,collectingCopy:`画像会在证据跨越多个会话和日期,或你明确确认足够多规则后生成。`,previewTitle:`写作偏好初稿`,previewCopy:`这些规律已有重复证据,但仍需要你的确认。`,activeTitle:`你的写作偏好`,activeCopy:`Agent 会使用已确认和已观察的规则;当前请求始终优先。`,readinessAria:`写作偏好生成条件`,rulesTitle:`当前规则`,rulesEmpty:`还没有识别到写作相关偏好。`,profileUnavailable:`暂时无法读取写作偏好。`,edit:`修改`,confirm:`确认`,conflict:`存在冲突`,evidence:`{evidence} 条证据`,sessions:`{sessions} 次会话`,globalScope:`个人全局`,projectScope:`仅 {project}`,updated:`更新于 {time}`,contexts:`适用:{contexts}`,agentPreviewTitle:`Agent 使用的规则`,agentPreviewCopy:`只包含没有冲突的 Confirmed 与 Observed;Working hypothesis 不会进入这里。`,showAgentPreview:`查看 Agent 规则`,hideAgentPreview:`收起 Agent 规则`},evidenceStatus:{Confirmed:`已确认`,Observed:`已观察`,"Working hypothesis":`工作假设`},criteria:{rules:`稳定规则`,evidence:`支持证据`,sessions:`独立会话`,days:`观察日期`,confirmed:`用户确认`,conflicts:`未解决冲突`,progress:`{current} / {target}`,conflictsProgress:`{current} 个`}},"en-US":{status:{collecting:`Collecting`,preview_ready:`Draft ready`,active:`Active`},milestone:{aria:`Writing taste readiness`,collectingTitle:`Your writing taste is taking shape`,collectingCopy:`A writing-taste draft will appear after the evidence becomes stable enough.`,previewTitle:`Your writing-taste draft is ready`,activeTitle:`Your writing taste is ready`,readyCopy:`Review how Agents currently understand your writing and confirm or revise each rule.`,rules:`{current}/{target} rules`,sessions:`{current}/{target} sessions`,open:`View writing taste`},page:{loading:`Organizing writing preferences`,back:`Back to collaboration preferences`,collectingTitle:`Still collecting writing preferences`,collectingCopy:`The profile appears after evidence spans multiple sessions and days, or after you directly confirm enough rules.`,previewTitle:`Writing-taste draft`,previewCopy:`These patterns have repeated evidence but still need your confirmation.`,activeTitle:`Your writing taste`,activeCopy:`Agents use confirmed and observed rules; the current request always wins.`,readinessAria:`Writing taste generation criteria`,rulesTitle:`Current rules`,rulesEmpty:`No writing-related preference has been identified yet.`,profileUnavailable:`Writing taste is temporarily unavailable.`,edit:`Edit`,confirm:`Confirm`,conflict:`Conflict`,evidence:`{evidence} evidence records`,sessions:`{sessions} sessions`,globalScope:`Personal global`,projectScope:`{project} only`,updated:`Updated {time}`,contexts:`Applies to: {contexts}`,agentPreviewTitle:`Rules used by Agents`,agentPreviewCopy:`Includes only conflict-free Confirmed and Observed rules. Working hypotheses stay out.`,showAgentPreview:`View Agent rules`,hideAgentPreview:`Hide Agent rules`},evidenceStatus:{Confirmed:`Confirmed`,Observed:`Observed`,"Working hypothesis":`Working hypothesis`},criteria:{rules:`Stable rules`,evidence:`Supporting evidence`,sessions:`Independent sessions`,days:`Observation days`,confirmed:`User-confirmed`,conflicts:`Unresolved conflicts`,progress:`{current} / {target}`,conflictsProgress:`{current}`}}},Zm={"zh-CN":{recruit:`聘请 Agent`,workbench:`Agent 工作台`,directory:`专属 Agent`,project:`分配到项目`,unassigned:`暂不分配`,choose:`选择专属 Agent`,capabilities:`擅长`,permissions:`项目权限`,boardRead:`读取所选项目的看板`,boardWrite:`创建、修改任务与状态`,noExecutor:`聘请不会启动模型或外部执行器。`,hostReady:`工作台已就绪 · 随 FULI 运行`,installRequired:`工作台尚未安装;聘请只创建 Agent 身份。`,installHelp:`构建 Agent 包后运行 fl employee install <目录>。`,recruitName:`聘请 {name}`,rehire:`恢复 {name}`,assign:`保存负责范围`,recruited:`已聘请`,recruiting:`正在保存…`,open:`打开工作台`,close:`关闭`,cancel:`取消`,retry:`重试`,loading:`正在读取专属 Agent…`,manageProjects:`管理负责项目`,manageProjectsTitle:`管理 {name} 的项目`,loadingScope:`正在读取负责范围…`,viewingProject:`当前查看的项目`,viewingHint:`切换看板视图,不改变负责范围。`,allProjects:{option:`全部项目`,optionMeta:`{count} 个项目`,title:`全部项目看板`,hint:`汇总 {count} 个项目的任务;选择任务可进入所属项目继续处理。`,projectFilter:`项目范围`,projectFilterHint:`只影响当前看板,不改变负责范围。取消勾选可隐藏项目,也支持反选。`,search:`搜索全部任务`,searchPlaceholder:`搜索任务、项目或标签`,boardLabel:`全部项目任务看板`,partial:`已显示 {loaded}/{total} 个项目,{failed} 个项目读取失败。`,truncated:`有 {count} 个项目仅显示部分任务;进入项目可查看完整看板。`,empty:`所有项目都很清爽`,emptyHint:`当前负责的项目还没有任务。`,noProjectsVisible:`没有显示任何项目`,noProjectsVisibleHint:`重新勾选项目后,就能继续查看对应任务。`,showAllProjects:`显示全部项目`,noMatch:`没有匹配的任务`,noMatchHint:`换个关键词,或清空搜索后查看全部任务。`,columnEmpty:`暂无任务`,taskCount:`{count} 个任务`,openTask:`在 {project} 中查看任务:{task}`,back:`返回全部项目`,dragHint:`拖动卡片可更新状态;键盘聚焦拖动按钮后,按空格拿起、方向键移动、再按空格放下。`,dragTask:`移动任务:{task}`,saving:`保存中`,dragLifted:`已拿起“{task}”,当前位置:{status}。`,dragMoved:`已移动到:{status}。`,dragDropped:`已将“{task}”移动到:{status}。`,dragCancelled:`已取消移动。`,moveFailed:`任务移动失败,已恢复原状态:{error}`,refreshRequired:`任务版本信息缺失,请刷新看板后重试。`,status:{planned:`待办`,active:`进行中`,blocked:`阻塞`,review:`待确认`,done:`已完成`}},assignedCount:`负责 {count} 个项目`,noAssignedProjects:`尚未分配项目`,manageHint:`可同时负责多个项目。全选后,取消勾选不需要的项目。`,filterLabel:`筛选项目`,filterHint:`仅筛选 Agent 列表,不改变任何负责范围。`,filterEmpty:`未选择项目`,success:`{name} 已加入`,successAssigned:`已分配到 {project}`,successUnassigned:`可以稍后为 Agent 分配项目。`,successMultiple:`现在负责 {count} 个项目。`,scopeSaved:`负责范围已保存`,scopeRemoved:`将移出 {count} 个项目,项目和任务数据会保留。`,reloadScope:`重新读取负责范围`,scope:{rule:`管理范围规则`,continuousAll:`全部项目 · 自动纳入`,onlySelected:`只管理所选项目`,allHint:`当前和以后新建的项目都由 {name} 管理;取消勾选即可明确排除。`,selectedHint:`只管理下方勾选的项目,不自动纳入新项目。`,excludeHint:`勾选表示允许管理;排除后,任务和标题都不会再经过这位 Agent。`,excludedCount:`已排除 {count} 个项目,归档或暂不可用的排除记录也会保留。`,successAll:`当前负责 {count} 个项目,以后新建的项目也会自动纳入。`,label:`负责项目`,all:`全部项目`,allSummary:`全部项目 · {count} 个`,selected:`已选 {count} 个项目`,search:`搜索项目`,invert:`反选`,multiple:`多选`,count:`已选 {selected} / {total} 个项目`,done:`完成选择`,noMatch:`没有匹配的项目`,empty:`暂无可选项目`,snapshotHint:`支持多选、全选后排除;新建项目需另行选择。`},titles:{heading:`会话标题`,mode:`整理方式`,style:`标题风格`,auto:`自动整理(客户端支持时)`,suggest:`只生成建议`,off:`不整理标题`,emoji:`Emoji + 类型`,text:`纯文字`,example:`格式示例`,exampleTask:`修复登录异常`,boundary:`结合关联任务的优先级与类型。手动改名后暂停覆盖;机密内容隐藏,客户端不支持时只保留建议。`},createProject:`创建项目`,noProjects:`还没有项目,先聘请 Agent 或创建一个项目。`,noTemplates:`暂无可聘请的 Agent`,emptyWorkbench:`先选择要负责的项目`,unavailable:`这位专属 Agent 暂不可用。`,backToAgents:`返回项目 Agent`,loadingWorkbench:`正在打开工作台…`,loadError:`Agent 服务暂时不可用,请重试。`,errors:{runtime_unavailable:`工作台未安装或无法加载,请检查 Agent 包后重试。`,assignment_required:`这位 Agent 尚未获准管理此项目,请检查负责范围。`,project_not_found:`项目不可用,请选择有效项目。`,identity_conflict:`标识已被其他 Agent 使用,原有 Agent 未修改。`,reactivation_required:`这位 Agent 已停用,请明确恢复后再分配。`,assignment_scope_conflict:`负责范围已在别处改变。请重新读取,确认后再保存。`,assignment_update_incomplete:`负责范围未能全部保存,部分修改可能已生效。请重新读取并核对后重试。`}},"en-US":{recruit:`Hire an Agent`,workbench:`Agent workspace`,directory:`Specialist Agents`,project:`Assign to project`,unassigned:`Assign later`,choose:`Choose a specialist Agent`,capabilities:`Specialties`,permissions:`Project permissions`,boardRead:`Read the selected project board`,boardWrite:`Create and update tasks and status`,noExecutor:`Hiring does not start a model or external executor.`,hostReady:`Workbench ready · hosted by FULI`,installRequired:`Workspace not installed; hiring creates the Agent identity only.`,installHelp:`Build the Agent package, then run fl employee install <directory>.`,recruitName:`Hire {name}`,rehire:`Reactivate {name}`,assign:`Save project selection`,recruited:`Hired`,recruiting:`Saving…`,open:`Open workspace`,close:`Close`,cancel:`Cancel`,retry:`Retry`,loading:`Loading specialist Agents…`,manageProjects:`Manage assigned projects`,manageProjectsTitle:`Manage {name}’s projects`,loadingScope:`Loading project selection…`,viewingProject:`Currently viewing`,viewingHint:`Switch boards without changing assignments.`,allProjects:{option:`All projects`,optionMeta:`{count} projects`,title:`All-project board`,hint:`Tasks from {count} projects. Select a task to continue in its project.`,projectFilter:`Project scope`,projectFilterHint:`Filters this board only. Uncheck projects to hide them, or invert the selection.`,search:`Search all tasks`,searchPlaceholder:`Search tasks, projects, or tags`,boardLabel:`All-project task board`,partial:`Showing {loaded}/{total} projects. {failed} failed to load.`,truncated:`{count} projects show only some tasks. Open a project for its complete board.`,empty:`All projects are clear`,emptyHint:`The assigned projects have no tasks yet.`,noProjectsVisible:`No projects shown`,noProjectsVisibleHint:`Select projects again to see their tasks.`,showAllProjects:`Show all projects`,noMatch:`No matching tasks`,noMatchHint:`Try another term, or clear search to see every task.`,columnEmpty:`No tasks`,taskCount:`{count} tasks`,openTask:`View task in {project}: {task}`,back:`Back to all projects`,dragHint:`Drag cards to update status. With a drag button focused, press Space to lift, use arrow keys to move, then Space to drop.`,dragTask:`Move task: {task}`,saving:`Saving`,dragLifted:`Lifted “{task}” from {status}.`,dragMoved:`Moved to {status}.`,dragDropped:`Moved “{task}” to {status}.`,dragCancelled:`Move cancelled.`,moveFailed:`The task could not be moved and was restored: {error}`,refreshRequired:`The task version is missing. Refresh the board and try again.`,status:{planned:`Planned`,active:`In progress`,blocked:`Blocked`,review:`Review`,done:`Done`}},assignedCount:`Assigned to {count} projects`,noAssignedProjects:`No projects assigned`,manageHint:`Assign multiple projects. Select all, then uncheck any to exclude.`,filterLabel:`Filter projects`,filterHint:`Filters the Agent list only. Assignments stay unchanged.`,filterEmpty:`No projects selected`,success:`{name} has joined`,successAssigned:`Assigned to {project}`,successUnassigned:`You can assign this Agent to a project later.`,successMultiple:`Now assigned to {count} projects.`,scopeSaved:`Project selection saved`,scopeRemoved:`Will leave {count} projects. Their projects and tasks will be kept.`,reloadScope:`Reload project selection`,scope:{rule:`Management rule`,continuousAll:`All projects · automatic`,onlySelected:`Selected projects only`,allHint:`Manage current and future projects. Uncheck a project to explicitly exclude it.`,selectedHint:`Manage only checked projects. New projects are not included automatically.`,excludeHint:`Checked means allowed. Excluded projects send neither tasks nor titles to this Agent.`,excludedCount:`{count} excluded projects. Archived or unavailable exclusions are preserved.`,successAll:`Managing {count} current projects; future projects will be included automatically.`,label:`Assigned projects`,all:`All projects`,allSummary:`All projects · {count}`,selected:`{count} projects selected`,search:`Search projects`,invert:`Invert selection`,multiple:`Multiple`,count:`{selected} / {total} projects selected`,done:`Done`,noMatch:`No matching projects`,empty:`No projects available`,snapshotHint:`Select multiple, or select all and exclude. New projects must be selected separately.`},titles:{heading:`Session titles`,mode:`Behavior`,style:`Title style`,auto:`Automatic when supported`,suggest:`Suggestions only`,off:`Leave titles unchanged`,emoji:`Emoji + type`,text:`Text only`,example:`Format example`,exampleTask:`Fix sign-in failure`,boundary:`Uses linked task priorities and types. Manual edits pause automation; confidential details stay hidden. Unsupported clients receive suggestions only.`},createProject:`Create project`,noProjects:`No projects yet. Hire an Agent first or create a project.`,noTemplates:`No specialist Agents available`,emptyWorkbench:`Choose projects to manage`,unavailable:`This specialist Agent is unavailable.`,backToAgents:`Back to project Agents`,loadingWorkbench:`Opening workspace…`,loadError:`Agent service is unavailable. Please retry.`,errors:{runtime_unavailable:`Workbench is not installed or could not load. Check its package and retry.`,assignment_required:`This Agent cannot manage this project yet. Check its assigned projects.`,project_not_found:`Project unavailable. Select an active project.`,identity_conflict:`Another Agent uses this identifier. The existing Agent was not modified.`,reactivation_required:`This Agent is inactive. Explicitly reactivate it before assigning.`,assignment_scope_conflict:`Project assignments changed elsewhere. Reload, review, and save again.`,assignment_update_incomplete:`The selection was not fully saved. Some changes may have applied. Reload and review before retrying.`}}},Qm=[`zh-CN`,`en-US`],$m=`fuli.locale`;function eh(e){return typeof e==`string`&&Qm.includes(e)}function th(e,t=[]){if(eh(e))return e;for(let e of t){let t=ih(e);if(t)return t}return`en-US`}function nh(){if(typeof window>`u`)return null;try{return window.localStorage.getItem($m)}catch{return null}}function rh(){return typeof navigator>`u`?[]:navigator.languages.length>0?navigator.languages:navigator.language?[navigator.language]:[]}function ih(e){let t=e.trim().toLowerCase().split(/[-_]/,1)[0];return t===`zh`?`zh-CN`:t===`en`?`en-US`:null}var ah={"zh-CN":{employees:Zm[`zh-CN`],about:Um[`zh-CN`],common:Rm[`zh-CN`],console:zm[`zh-CN`],knowledge:{dialogs:Vm[`zh-CN`],domain:Bm[`zh-CN`],workspace:Hm[`zh-CN`]},pages:Wm[`zh-CN`],preferences:Gm[`zh-CN`],projects:Km[`zh-CN`],projectAgents:qm[`zh-CN`],routes:Jm[`zh-CN`],settings:Ym[`zh-CN`],writingTaste:Xm[`zh-CN`]},"en-US":{employees:Zm[`en-US`],about:Um[`en-US`],common:Rm[`en-US`],console:zm[`en-US`],knowledge:{dialogs:Vm[`en-US`],domain:Bm[`en-US`],workspace:Hm[`en-US`]},pages:Wm[`en-US`],preferences:Gm[`en-US`],projects:Km[`en-US`],projectAgents:qm[`en-US`],routes:Jm[`en-US`],settings:Ym[`en-US`],writingTaste:Xm[`en-US`]}},oh=Tm({legacy:!1,globalInjection:!0,locale:th(nh(),rh()),fallbackLocale:`zh-CN`,messages:ah});function sh(){return th(oh.global.locale.value)}function ch(e,t={}){if(oh.global.locale.value=e,typeof document<`u`&&(document.documentElement.lang=e),!(t.persist===!1||typeof window>`u`))try{window.localStorage.setItem($m,e)}catch{}}function lh(e,t){return t?oh.global.t(e,t):oh.global.t(e)}ch(sh(),{persist:!1});export{rn as $,qn as A,yr as B,Ss as C,gr as D,tc as E,la as F,Yt as G,fr as H,da as I,Ae as J,R as K,aa as L,Ki as M,os as N,hr as O,mr as P,Gt as Q,ni as R,Cs as S,ti as T,Oe as U,dr as V,ke as W,Kt as X,Wt as Y,nn as Z,ec as _,lh as a,Ce as at,ws as b,Gl as c,Wl as d,L as et,Hc as f,Lr as g,B as h,ch as i,N as it,Yi as j,Os as k,ql as l,iu as m,sh as n,cn as nt,Nl as o,ou as p,$t as q,oh as r,he as rt,mu as s,Qm as t,mn as tt,Jl as u,vs as v,H as w,ds as x,fs as y,Sr as z};
@@ -1 +1 @@
1
- import{a as e}from"./i18n-DQH9D35M.js";var t=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function n(n,r=18){let i=String(n??``).trim();if(!i)return e(`common.status.notRecorded`);if(i.length<=r)return i;if(t.test(i))return i.slice(0,8);let a=Math.max(7,Math.ceil((r-1)*.58)),o=Math.max(4,r-a-1);return`${i.slice(0,a)}…${i.slice(-o)}`}function r(e){let t=String(e??``).trim();return`${t} ${n(t)}`}function i(e){let t=e?.attributes?.projectId;return n(t||e?.id,t?26:18)}export{i as n,r,n as t};
1
+ import{a as e}from"./i18n-C7r_00q2.js";var t=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function n(n,r=18){let i=String(n??``).trim();if(!i)return e(`common.status.notRecorded`);if(i.length<=r)return i;if(t.test(i))return i.slice(0,8);let a=Math.max(7,Math.ceil((r-1)*.58)),o=Math.max(4,r-a-1);return`${i.slice(0,a)}…${i.slice(-o)}`}function r(e){let t=String(e??``).trim();return`${t} ${n(t)}`}function i(e){let t=e?.attributes?.projectId;return n(t||e?.id,t?26:18)}export{i as n,r,n as t};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/OverviewPage-D4vLhIFD.js","assets/i18n-C7r_00q2.js","assets/console-CYXvhGCR.js","assets/vue-router-DJ6C6-8v.js","assets/useApi-CROJJdhE-DERnOR_k.js","assets/paths-CDREouhi.js","assets/PersonalProfilePage-7w8rAzkg.js","assets/_plugin-vue_export-helper-BDNMzG2s.js","assets/SearchableSelect-DY-TWC2i.js","assets/KnowledgeEditDialog-BBvm74ln.js","assets/identity-COvBmUF4.js","assets/model-CL1JILt4.js","assets/KnowledgeEditDialog-iv-dgUeD.css","assets/KnowledgeInspector-CE9ADmtT.js","assets/conversation-launcher-settings-SwmUP91W.js","assets/KnowledgeInspector--1NujtXW.css","assets/PersonalProfilePage-B7T09bow.css","assets/WritingTastePage-DNXhCdgn.js","assets/WritingTastePage-DSgvTH6x.css","assets/PersonalProjectsPage-BY0B1t24.js","assets/KnowledgeWorkspace-CKLH6cIf.js","assets/KnowledgeOrganizerPage-BRtizGUS.js","assets/KnowledgeOrganizerPage-Cx1w1jb2.css","assets/ProjectAgentsPage-LHPOuLWw.js","assets/avatars-BfZueqlm.js","assets/EmployeeRecruitDialog-Dal5wy8a.js","assets/EmployeeRecruitDialog-CnA7rOnB.css","assets/ProjectAgentsPage-C3vW6wmk.css","assets/EmployeeWorkbenchPage-CW5pu_Yb.js","assets/EmployeeWorkbenchPage-BDJvrpcn.css","assets/PublicProjectsPage-PSp6RzVZ.js","assets/KnowledgePage-D5clXGCw.js","assets/ReviewPage-DPP23xLF.js","assets/ConnectionsPage-WVc6Srbd.js","assets/ConnectionsPage-CBHAdZXT.css","assets/SettingsPage-C59OPsNP.js","assets/SettingsPage-CwZp2ka4.css","assets/AboutPage-BvXH4hsO.js","assets/fuli-logo-Bu9WBuQe.js","assets/AboutPage-DXh7Fwxt.css"])))=>i.map(i=>d[i]);
2
+ import{$ as e,A as t,B as n,C as r,F as i,L as a,M as o,N as s,T as c,V as l,Z as u,_ as d,a as f,at as p,b as m,h,i as g,j as _,m as v,n as y,nt as b,p as x,r as S,rt as C,s as w,t as T,v as E,w as D,x as O,y as k,z as A}from"./i18n-C7r_00q2.js";import{r as j,s as M,t as N}from"./console-CYXvhGCR.js";import{m as P}from"./useApi-CROJJdhE-DERnOR_k.js";import{i as F,n as ee,r as I,t as L}from"./vue-router-DJ6C6-8v.js";import{t as R}from"./fuli-logo-Bu9WBuQe.js";import{t as z}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{o as B,s as V,t as H}from"./avatars-BfZueqlm.js";import{n as te,t as ne}from"./paths-CDREouhi.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var U={name:`fuli-context`,version:`0.7.10-beta.0`,description:`Local-first collaboration relationship graph for AI agents.`,type:`module`,files:[`README.zh-CN.md`,`npm-shrinkwrap.json`,`src/`,`dist/web/`,`docs/external-knowledge-architecture.md`,`docs/public-personal-architecture.md`,`docs/project-agent-memory.md`,`docs/employee-agents.md`,`examples/external-knowledge/markdown-folder.mjs`,`graph-provider/Dockerfile`,`graph-provider/pyproject.toml`,`graph-provider/fuli_graph/*.py`,`graph-provider/fuli_graph/**/*.py`,`skills/`,`compose.graphiti.yml`],bin:{fl:`src/cli.js`,fuli:`src/cli.js`},keywords:[`ai-agent`,`mcp`,`context`,`knowledge-graph`,`local-first`,`codex`,`claude-code`],scripts:{mcp:`node src/mcp-server.js`,dev:`run-p dev:server dev:web`,"dev:server":`node src/server.js`,"dev:web":`vite`,build:`run-s typecheck:web build:web`,"build:web":`vite build`,"typecheck:web":`vue-tsc --noEmit -p tsconfig.app.json`,"test:node":`node --test`,"test:web":`vitest run --config vitest.config.ts`,"test:package":`node scripts/package-smoke.js`,"test:knowledge:live":`node acceptance/knowledge-live.js`,"test:external-knowledge:live":`node scripts/validate-external-knowledge-live.js`,start:`node src/server.js`,"graph:setup":`node src/graphiti/setup.js`,"graph:up":`docker compose -f compose.graphiti.yml up -d --build`,"graph:down":`docker compose -f compose.graphiti.yml down`,"test:structure":`node --test test/source-structure.test.js`,pretest:`npm run build:web`,test:`run-s typecheck:web test:node test:web`,prepack:`npm run build`,prepublishOnly:`npm test`},engines:{node:`>=24.12`},repository:{type:`git`,url:`git+https://github.com/JevonsCode/fuli.git`},homepage:`https://github.com/JevonsCode/fuli#readme`,bugs:{url:`https://github.com/JevonsCode/fuli/issues`},publishConfig:{access:`public`},license:`Apache-2.0`,dependencies:{"@hono/node-server":`2.0.12`,"@modelcontextprotocol/sdk":`^1.29.0`,zod:`^4.4.3`},devDependencies:{"@types/d3":`^7.4.3`,"@types/node":`^24.13.3`,"@vitejs/plugin-vue":`^6.0.8`,"@vue/test-utils":`^2.4.11`,"brace-expansion":`5.0.9`,d3:`^7.9.0`,gsap:`^3.15.0`,jsdom:`^29.1.1`,linkedom:`^0.18.12`,"npm-run-all2":`^9.0.2`,pinia:`^4.0.2`,typescript:`~6.0.0`,vite:`^8.1.5`,vitest:`^4.1.10`,vue:`^3.5.40`,"vue-i18n":`^11.4.8`,"vue-router":`^5.2.0`,"vue-tsc":`^3.3.8`},overrides:{"@modelcontextprotocol/sdk":{"@hono/node-server":`2.0.12`},"brace-expansion":`$brace-expansion`,"fast-uri":`3.1.7`,qs:`6.16.0`}}.version,W=[`aria-label`],re={class:`brand-mark-wrap`},ie=[`src`],ae={class:`brand-copy`},oe={class:`brand-title-row`},se={class:`brand-name`},ce=[`aria-label`,`aria-expanded`],G={class:`brand-version`},le={key:1,class:`brand-version`},ue={class:`brand-title-row`},de={class:`brand-name`},fe={class:`brand-version`},pe=[`aria-label`],me=[`href`],he=z(c({__name:`BrandEasterEgg`,setup(e){let n=u(null),r=u(null),i=u(0),a=u(!1),c=u(!1),l=u(!1),h=u(null),g=d(()=>h.value?.status===`ready`&&h.value.updateAvailable&&!!h.value.latestVersion),y=d(()=>h.value?.latestVersion??``),x=d(()=>h.value?.packageUrl??`https://www.npmjs.com/package/fuli-context`),S=new AbortController,w=!1;function T(){i.value+=1,a.value=!0}function D(){a.value=!1}function k(){g.value&&(l.value=!l.value)}function A(e){w=!1,c.value=!1,l.value&&!n.value?.contains(e.target)&&(l.value=!1)}function M(e){e.key===`Tab`&&(w=!0),e.key===`Escape`&&l.value&&(e.preventDefault(),l.value=!1,t(()=>r.value?.focus()))}function N(){c.value=w}function P(){c.value=!1}return o(()=>{window.addEventListener(`pointerdown`,A,!0),window.addEventListener(`keydown`,M,!0),j(`/api/system/version`,{signal:S.signal}).then(e=>{h.value=e}).catch(()=>{})}),_(()=>{S.abort(),window.removeEventListener(`pointerdown`,A,!0),window.removeEventListener(`keydown`,M,!0)}),(e,t)=>(s(),O(`div`,{ref_key:`root`,ref:n,class:C([`brand-block`,{"is-sparkling":a.value,"is-keyboard-focused":c.value}])},[E(`button`,{class:`brand-effect-button`,type:`button`,"aria-label":b(f)(`console.brandEffect.aria`),onClick:T,onFocus:N,onBlur:P},[E(`span`,re,[E(`img`,{class:`brand-mark`,src:b(R),alt:``,"aria-hidden":`true`},null,8,ie),a.value?(s(),O(`span`,{key:`orbit-${i.value}`,class:`brand-orbit`,"aria-hidden":`true`})):m(``,!0)])],40,W),E(`span`,ae,[E(`span`,oe,[E(`span`,se,p(b(f)(`common.brand`)),1),g.value?(s(),O(`button`,{key:0,ref_key:`versionButton`,ref:r,class:`brand-version-button`,type:`button`,"aria-label":b(f)(`console.update.aria`,{version:y.value}),"aria-expanded":l.value,"aria-controls":`brand-update-details`,onClick:k},[E(`span`,G,`v`+p(b(U)),1),t[0]||=E(`span`,{class:`brand-update-dot`,"aria-hidden":`true`},null,-1)],8,ce)):(s(),O(`span`,le,`v`+p(b(U)),1))]),t[1]||=E(`span`,{class:`brand-subtitle`},`Context Graph`,-1),a.value?(s(),O(`span`,{key:`copy-reflection-${i.value}`,class:`brand-copy-reflection`,"aria-hidden":`true`,onAnimationend:v(D,[`self`])},[E(`span`,ue,[E(`span`,de,p(b(f)(`common.brand`)),1),E(`span`,fe,`v`+p(b(U)),1)])],32)):m(``,!0)]),l.value?(s(),O(`div`,{key:0,id:`brand-update-details`,class:`brand-update-popover`,role:`dialog`,"aria-label":b(f)(`console.update.title`,{version:y.value})},[E(`strong`,null,p(b(f)(`console.update.title`,{version:y.value})),1),E(`p`,null,p(b(f)(`console.update.copy`)),1),t[2]||=E(`code`,null,`fuli update --yes`,-1),E(`a`,{href:x.value,target:`_blank`,rel:`noopener noreferrer`},p(b(f)(`console.update.npmLink`)),9,me)],8,pe)):m(``,!0)],2))}}),[[`__scopeId`,`data-v-3ccab825`]]),ge=[`aria-label`],_e=[`lang`,`aria-label`,`aria-pressed`,`onClick`],ve=c({__name:`LocaleSwitcher`,setup(e){let t=d(()=>y()),n={"zh-CN":`中`,"en-US":`EN`};function r(e){e!==t.value&&g(e)}return(e,a)=>(s(),O(`div`,{class:`locale-switcher`,role:`group`,"aria-label":b(f)(`common.language.label`)},[(s(!0),O(h,null,i(b(T),e=>(s(),O(`button`,{key:e,type:`button`,lang:e,"aria-label":b(f)(e===`zh-CN`?`common.language.chinese`:`common.language.english`),"aria-pressed":t.value===e,onClick:t=>r(e)},p(n[e]),9,_e))),128))],8,ge))}}),K=e(null);function ye(e){let t=e.onError((t,n)=>{let r=e.resolve(n).href;!r.startsWith(`/`)||r.startsWith(`//`)||(K.value={href:r,resourceFailure:/dynamically imported module|module script|loading chunk|preload css|importing a module/i.test(String(t))})}),n=e.afterEach((e,t,n)=>{n||(K.value=null)});return()=>{t(),n()}}var be={key:0,class:`navigation-recovery`,role:`alert`},xe=[`href`],Se=z(c({__name:`NavigationRecovery`,setup(e){return(e,t)=>b(K)?(s(),O(`div`,be,[E(`div`,null,[E(`strong`,null,p(b(f)(`routes.loadFailure.title`)),1),E(`p`,null,p(b(f)(b(K).resourceFailure?`routes.loadFailure.resources`:`routes.loadFailure.message`)),1)]),E(`a`,{href:b(K).href,class:`quiet-button`},p(b(f)(`routes.loadFailure.reload`)),9,xe),E(`button`,{type:`button`,class:`navigation-recovery-dismiss`,onClick:t[0]||=e=>K.value=null},p(b(f)(`routes.loadFailure.dismiss`)),1)])):m(``,!0)}}),[[`__scopeId`,`data-v-83dee1c5`]]),Ce={class:`nav-section-label`},we={class:`employee-nav-mark`,"aria-hidden":`true`},Te=[`src`],Ee={class:`nav-copy`},De=z(c({__name:`EmployeeNavigation`,props:{personalSpaceId:{}},setup(e){let t=e;A(()=>t.personalSpaceId,e=>{V(e===`current`?``:e)},{immediate:!0});let n=d(()=>B.value.filter(e=>e.agentId&&e.agentStatus===`active`&&e.runtime));return(e,t)=>n.value.length?(s(),O(h,{key:0},[E(`p`,Ce,p(b(f)(`employees.directory`)),1),(s(!0),O(h,null,i(n.value,e=>(s(),k(b(L),{key:e.id,to:`/employees/${encodeURIComponent(e.id)}`,class:`space-nav-button employee-nav`,"active-class":`is-active`},{default:l(()=>[E(`span`,we,[b(H)(e.id)?(s(),O(`img`,{key:0,src:b(H)(e.id),alt:``},null,8,Te)):(s(),O(h,{key:1},[r(p(e.name.slice(0,1)),1)],64))]),E(`span`,Ee,[E(`strong`,null,p(e.name),1),E(`small`,null,p(e.role),1)])]),_:2},1032,[`to`]))),128))],64)):m(``,!0)}}),[[`__scopeId`,`data-v-9b74c30e`]]),Oe=[`routes.`,`common.`];function q(e,t=``){let n=typeof e==`string`&&e?e:t;return Oe.some(e=>n.startsWith(e))?f(n):n}function J(e){if(typeof document>`u`)return;let t=q(e,`routes.overview.title`);document.title=`${t} · ${f(`common.brand`)}`}var ke={class:`app-shell`},Ae=[`onKeydown`],je=[`aria-label`],Me={class:`nav-section-label`},Ne={class:`nav-label`},Pe={class:`nav-section-label nav-space-label`},Fe={class:`nav-copy`},Ie={class:`nav-copy`},Le={class:`nav-copy`},Re={class:`nav-copy`},ze={class:`nav-section-label nav-public-label`},Be={class:`nav-copy`},Ve={class:`nav-section-label nav-tool-label`},He={class:`nav-label`},Ue={class:`nav-label`},We={class:`nav-label`},Ge={class:`nav-section-label nav-about-label`},Ke={class:`nav-label`},qe={class:`nav-label`},Je={class:`sidebar-foot`},Ye=[`aria-label`],Xe={class:`runtime-status`},Ze={class:`runtime-status`},Qe={class:`workspace`},Y=[`aria-expanded`],$e={key:0,class:`workbench-host-label`},et={key:1,class:`topbar-heading`},tt={key:0,class:`eyebrow`},nt={key:1,class:`topbar-description`},rt={key:2,class:`topbar-actions`},it={key:0,class:`mode-chip`},at={key:1,class:`settings-save-button`,form:`settings-form`,type:`submit`},ot=z(c({__name:`ConsoleLayout`,setup(e){let i=N(),c=P(),g=u(!1),_=u(null),y=u(null),S=d(()=>i.activePersonalSpace?.id??`current`),w=d(()=>te(S.value,`graph`)),T=d(()=>ne(`personal`,S.value,`directory`)),j=d(()=>q(c.meta.title,`routes.overview.title`)),M=d(()=>String(c.meta.eyebrow??`LOCAL + FEDERATED`)),F=d(()=>q(c.meta.description)),I=d(()=>c.meta.dedicatedWorkspace===!0),R=d(()=>i.publicRuntimeStatus===`ready`),z=d(()=>i.publicRuntimeStatus===`ready`?f(`console.services.publicReady`):i.publicRuntimeStatus===`error`?f(`console.services.publicError`):f(`console.services.publicOffline`)),B=d(()=>{if(i.publicRuntimeStatus===`ready`){let e=i.state?.capabilities;return e?.browsePublicProjects&&e?.subscribeProject&&!e?.publishProject&&!e?.submitKnowledge&&!e?.reviewProposals?f(`console.services.publicBrowseSubscribe`):f(`console.services.publicAvailable`)}return i.publicRuntimeStatus===`error`?f(`console.services.localUnaffected`):f(`console.services.localOnly`)}),V=d(()=>i.state?.capabilities?.browsePublicProjects!==!1),H=d(()=>{let e=i.state?.capabilities;return e?.submitKnowledge!==!1||e?.reviewProposals===!0});o(()=>{i.runtimeStatus===`idle`&&i.refresh()}),n(()=>{J(c.meta.title)}),A(()=>c.fullPath,()=>{g.value=!1});async function U(){g.value=!0,await t(),y.value?.focus({preventScroll:!0})}async function W(){g.value=!1,await t(),_.value?.focus({preventScroll:!0})}return(e,t)=>(s(),O(`div`,ke,[E(`aside`,{id:`console-primary-sidebar`,class:C([`sidebar`,{"is-mobile-open":g.value}]),onKeydown:x(v(W,[`stop`]),[`esc`])},[E(`button`,{ref_key:`mobileNavCloseRef`,ref:y,class:`mobile-nav-close quiet-button`,type:`button`,onClick:W},p(b(f)(`console.navigation.closeMenu`)),513),D(he),E(`nav`,{class:`primary-nav`,"aria-label":b(f)(`console.navigation.aria`)},[E(`p`,Me,p(b(f)(`console.navigation.workspace`)),1),D(b(L),{to:`/`,"exact-active-class":`is-active`},{default:l(()=>[t[2]||=E(`span`,{class:`nav-icon nav-icon-overview`,"aria-hidden":`true`},null,-1),E(`span`,Ne,p(b(f)(`console.navigation.overview`)),1)]),_:1}),E(`p`,Pe,p(b(f)(`console.navigation.personalSpace`)),1),D(b(L),{class:`space-nav-button personal-profile-button`,to:`/preferences`,"active-class":`is-active`},{default:l(()=>[t[3]||=E(`span`,{class:`nav-icon nav-icon-personal-profile`,"aria-hidden":`true`},null,-1),E(`span`,Fe,[E(`strong`,null,p(b(f)(`console.navigation.preferences`)),1),E(`small`,null,p(b(f)(`console.navigation.preferencesMeta`)),1)])]),_:1}),D(b(L),{class:`space-nav-button knowledge-organizer-button`,to:`/organize`,"active-class":`is-active`},{default:l(()=>[t[4]||=E(`span`,{class:`nav-icon nav-icon-knowledge-organizer`,"aria-hidden":`true`},null,-1),E(`span`,Ie,[E(`strong`,null,p(b(f)(`console.navigation.organizer`)),1),E(`small`,null,p(b(f)(`console.navigation.organizerMeta`)),1)])]),_:1}),D(b(L),{class:`space-nav-button personal-space-button`,to:w.value,"active-class":`is-active`},{default:l(()=>[t[5]||=E(`span`,{class:`nav-icon nav-icon-personal-project`,"aria-hidden":`true`},null,-1),E(`span`,Le,[E(`strong`,null,p(b(f)(`console.navigation.personalProjects`)),1),E(`small`,null,p(b(f)(`console.navigation.personalProjectsMeta`)),1)])]),_:1},8,[`to`]),D(b(L),{class:`space-nav-button project-agents-button`,to:`/project-agents`,"active-class":`is-active`},{default:l(()=>[t[6]||=E(`span`,{class:`nav-icon nav-icon-project-agent`,"aria-hidden":`true`},null,-1),E(`span`,Re,[E(`strong`,null,p(b(f)(`console.navigation.projectAgents`)),1),E(`small`,null,p(b(f)(`console.navigation.projectAgentsMeta`)),1)])]),_:1}),V.value?(s(),O(h,{key:0},[E(`p`,ze,p(b(f)(`console.navigation.publicSpace`)),1),D(b(L),{class:`space-nav-button public-space-button`,to:`/public-projects`,"active-class":`is-active`},{default:l(()=>[t[7]||=E(`span`,{class:`nav-icon nav-icon-public-project`,"aria-hidden":`true`},null,-1),E(`span`,Be,[E(`strong`,null,p(b(f)(`console.navigation.publicProjects`)),1),E(`small`,null,p(b(f)(`console.navigation.publicProjectsMeta`)),1)])]),_:1})],64)):m(``,!0),D(De,{"personal-space-id":S.value},null,8,[`personal-space-id`]),E(`p`,Ve,p(b(f)(`console.navigation.governance`)),1),D(b(L),{to:T.value,"active-class":`is-active`},{default:l(()=>[t[8]||=E(`span`,{class:`nav-icon nav-icon-knowledge-graph`,"aria-hidden":`true`},null,-1),E(`span`,He,p(b(f)(`console.navigation.knowledge`)),1)]),_:1},8,[`to`]),H.value?(s(),k(b(L),{key:1,to:`/review`,"active-class":`is-active`},{default:l(()=>[t[9]||=E(`span`,{class:`nav-icon nav-icon-review`,"aria-hidden":`true`},null,-1),E(`span`,Ue,p(b(f)(`console.navigation.review`)),1)]),_:1})):m(``,!0),D(b(L),{to:`/connections`,"active-class":`is-active`},{default:l(()=>[t[10]||=E(`span`,{class:`nav-icon nav-icon-connections`,"aria-hidden":`true`},null,-1),E(`span`,We,p(b(f)(`console.navigation.connections`)),1)]),_:1}),E(`p`,Ge,p(b(f)(`console.navigation.aboutSection`)),1),D(b(L),{to:`/settings`,"active-class":`is-active`},{default:l(()=>[t[11]||=E(`span`,{class:`nav-icon nav-icon-settings`,"aria-hidden":`true`},null,-1),E(`span`,Ke,p(b(f)(`console.navigation.settings`)),1)]),_:1}),D(b(L),{to:`/about`,"active-class":`is-active`},{default:l(()=>[t[12]||=E(`span`,{class:`nav-icon nav-icon-about`,"aria-hidden":`true`},null,-1),E(`span`,qe,p(b(f)(`console.navigation.about`)),1)]),_:1})],8,je),E(`div`,Je,[E(`div`,{class:`service-runtime-list`,"aria-label":b(f)(`console.services.aria`)},[E(`div`,Xe,[E(`span`,{class:C([`status-dot`,b(i).runtimeStatus])},null,2),E(`div`,null,[E(`strong`,null,p(b(i).runtimeStatus===`ready`?b(f)(`console.services.localReady`):b(i).runtimeStatus===`error`?b(f)(`console.services.localError`):b(f)(`console.services.localConnecting`)),1),t[13]||=E(`small`,null,`Graphiti / Neo4j`,-1)])]),E(`div`,Ze,[E(`span`,{class:C([`status-dot`,b(i).publicRuntimeStatus])},null,2),E(`div`,null,[E(`strong`,null,p(z.value),1),E(`small`,null,p(B.value),1)])])],8,Ye)])],42,Ae),E(`main`,Qe,[E(`header`,{class:C([`topbar`,{"topbar--workbench":I.value}])},[E(`button`,{ref_key:`mobileNavToggleRef`,ref:_,class:`mobile-nav-toggle quiet-button`,type:`button`,"aria-controls":`console-primary-sidebar`,"aria-expanded":g.value,onClick:U},[t[14]||=E(`span`,{class:`mobile-nav-icon`,"aria-hidden":`true`},null,-1),r(` `+p(b(f)(`console.navigation.openMenu`)),1)],8,Y),I.value?(s(),O(`span`,$e,`FULI`)):(s(),O(`div`,et,[M.value?(s(),O(`p`,tt,p(M.value),1)):m(``,!0),E(`h2`,null,p(j.value),1),F.value?(s(),O(`p`,nt,p(F.value),1)):m(``,!0)])),I.value?m(``,!0):(s(),O(`div`,rt,[R.value?(s(),O(`span`,it,p(b(f)(`console.publicReady`)),1)):m(``,!0),b(c).name===`settings`?(s(),O(`button`,at,p(b(f)(`settings.save`)),1)):m(``,!0),D(ve),E(`button`,{class:`quiet-button`,type:`button`,onClick:t[0]||=(...e)=>b(i).refresh&&b(i).refresh(...e)},p(b(f)(`common.actions.refresh`)),1)]))],2),D(Se),b(i).feedback?(s(),O(`button`,{key:0,class:C([`feedback feedback-button`,{success:b(i).feedback.tone===`success`}]),type:`button`,"aria-live":`polite`,onClick:t[1]||=(...e)=>b(i).clearFeedback&&b(i).clearFeedback(...e)},p(b(i).feedback.message),3)):m(``,!0),D(b(ee),null,{default:l(({Component:e})=>[(s(),k(a(e)))]),_:1})])]))}}),[[`__scopeId`,`data-v-b1910b19`]]),st=c({__name:`App`,setup(e){return(e,t)=>(s(),k(ot))}}),ct=`modulepreload`,lt=function(e){return`/`+e},X={},Z=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=lt(t,n),t=s(t),t in X)return;X[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:ct,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};function ut(e){let t=e.match(/^#\/knowledge\/([^/?#]+)\/([^/?#]+)\/(entity|relationship)\/([^/?#]+)(?:\?([^#]*))?$/);if(!t)return null;let[,n,r,i,a,o]=t;return`/knowledge/${n}/${r}/directory/${i}/${a}${o?`?${o}`:``}`}var Q=I({history:F(`/`),routes:[{path:`/`,name:`overview`,component:()=>Z(()=>import(`./OverviewPage-D4vLhIFD.js`),__vite__mapDeps([0,1,2,3,4,5])),meta:{eyebrow:``,title:`routes.overview.title`}},{path:`/preferences`,name:`personal-profile`,component:()=>Z(()=>import(`./PersonalProfilePage-7w8rAzkg.js`),__vite__mapDeps([6,1,2,3,4,7,8,9,10,11,12,13,14,15,16])),meta:{eyebrow:`PERSONAL LENS`,title:`routes.preferences.title`,description:`routes.preferences.description`}},{path:`/preferences/writing`,name:`writing-taste`,component:()=>Z(()=>import(`./WritingTastePage-DNXhCdgn.js`),__vite__mapDeps([17,1,2,3,4,7,9,8,10,11,12,18])),meta:{eyebrow:``,title:`routes.writingTaste.title`}},{path:`/personal/:spaceId/projects/:projectId/:mode/:itemKind/:itemId`,name:`personal-project-item`,component:()=>Z(()=>import(`./PersonalProjectsPage-BY0B1t24.js`),__vite__mapDeps([19,1,20,2,4,3,5,8,10,9,7,11,12,13,14,15])),meta:{eyebrow:`PERSONAL PROJECT`,title:`routes.personalProjects.title`}},{path:`/personal/:spaceId/projects/:mode/:itemKind/:itemId`,name:`personal-projects-item`,component:()=>Z(()=>import(`./PersonalProjectsPage-BY0B1t24.js`),__vite__mapDeps([19,1,20,2,4,3,5,8,10,9,7,11,12,13,14,15])),meta:{eyebrow:`PERSONAL PROJECTS`,title:`routes.personalProjects.title`,description:`routes.personalProjects.description`}},{path:`/personal/:spaceId/projects/:mode`,name:`personal-projects`,component:()=>Z(()=>import(`./PersonalProjectsPage-BY0B1t24.js`),__vite__mapDeps([19,1,20,2,4,3,5,8,10,9,7,11,12,13,14,15])),meta:{eyebrow:`PERSONAL PROJECTS`,title:`routes.personalProjects.title`,description:`routes.personalProjects.description`}},{path:`/personal/:spaceId/projects/:projectId/:mode`,name:`personal-project`,component:()=>Z(()=>import(`./PersonalProjectsPage-BY0B1t24.js`),__vite__mapDeps([19,1,20,2,4,3,5,8,10,9,7,11,12,13,14,15])),meta:{eyebrow:`PERSONAL PROJECT`,title:`routes.personalProjects.title`}},{path:`/organize`,name:`knowledge-organizer`,component:()=>Z(()=>import(`./KnowledgeOrganizerPage-BRtizGUS.js`),__vite__mapDeps([21,1,2,7,8,10,9,11,12,13,14,15,22])),meta:{eyebrow:`KNOWLEDGE CLASSIFICATION`,title:`routes.organizer.title`}},{path:`/project-agents`,name:`project-agents`,component:()=>Z(()=>import(`./ProjectAgentsPage-LHPOuLWw.js`),__vite__mapDeps([23,1,2,3,4,7,24,8,25,5,26,27])),meta:{eyebrow:``,title:`routes.projectAgents.title`}},{path:`/employees/:templateId`,name:`employee-workbench`,component:()=>Z(()=>import(`./EmployeeWorkbenchPage-CW5pu_Yb.js`),__vite__mapDeps([28,1,2,4,3,7,24,25,5,8,26,29])),meta:{eyebrow:``,title:`routes.employeeWorkbench.title`,dedicatedWorkspace:!0}},{path:`/public-projects`,name:`public-projects`,component:()=>Z(()=>import(`./PublicProjectsPage-PSp6RzVZ.js`),__vite__mapDeps([30,1,2,4,5,8,10])),meta:{eyebrow:`PUBLIC PROJECTS`,title:`routes.publicProjects.title`,description:`routes.publicProjects.description`}},{path:`/knowledge`,name:`knowledge-default`,component:()=>Z(()=>import(`./KnowledgePage-D5clXGCw.js`),__vite__mapDeps([31,1,20,2,4,3,5,8,10,9,7,11,12,13,14,15])),meta:{eyebrow:`KNOWLEDGE BASE`,title:`routes.knowledge.title`}},{path:`/knowledge/:scope/:spaceId/:projectId/:mode/:itemKind/:itemId`,name:`project-knowledge-item`,component:()=>Z(()=>import(`./KnowledgePage-D5clXGCw.js`),__vite__mapDeps([31,1,20,2,4,3,5,8,10,9,7,11,12,13,14,15])),meta:{eyebrow:`KNOWLEDGE BASE`,title:`routes.knowledge.title`}},{path:`/knowledge/:scope/:spaceId/:mode/:itemKind/:itemId`,name:`knowledge-item`,component:()=>Z(()=>import(`./KnowledgePage-D5clXGCw.js`),__vite__mapDeps([31,1,20,2,4,3,5,8,10,9,7,11,12,13,14,15])),meta:{eyebrow:`KNOWLEDGE BASE`,title:`routes.knowledge.title`}},{path:`/knowledge/:scope/:spaceId/:projectId/:mode`,name:`project-knowledge`,component:()=>Z(()=>import(`./KnowledgePage-D5clXGCw.js`),__vite__mapDeps([31,1,20,2,4,3,5,8,10,9,7,11,12,13,14,15])),meta:{eyebrow:`KNOWLEDGE BASE`,title:`routes.knowledge.title`}},{path:`/knowledge/:scope/:spaceId/:mode`,name:`knowledge`,component:()=>Z(()=>import(`./KnowledgePage-D5clXGCw.js`),__vite__mapDeps([31,1,20,2,4,3,5,8,10,9,7,11,12,13,14,15])),meta:{eyebrow:`KNOWLEDGE BASE`,title:`routes.knowledge.title`}},{path:`/review`,name:`review`,component:()=>Z(()=>import(`./ReviewPage-DPP23xLF.js`),__vite__mapDeps([32,1,2,8,10,11])),meta:{eyebrow:`REVIEW WORKSPACE`,title:`routes.review.title`,description:`routes.review.description`}},{path:`/connections`,name:`connections`,component:()=>Z(()=>import(`./ConnectionsPage-WVc6Srbd.js`),__vite__mapDeps([33,1,2,7,8,10,34])),meta:{eyebrow:`SERVICE CONNECTIONS`,title:`routes.connections.title`,description:`routes.connections.description`}},{path:`/settings`,name:`settings`,component:()=>Z(()=>import(`./SettingsPage-C59OPsNP.js`),__vite__mapDeps([35,1,2,7,8,14,36])),meta:{eyebrow:``,title:`routes.settings.title`}},{path:`/about`,name:`about`,component:()=>Z(()=>import(`./AboutPage-BvXH4hsO.js`),__vite__mapDeps([37,1,38,7,39])),meta:{eyebrow:`FULI`,title:`routes.about.title`}},{path:`/:pathMatch(.*)*`,redirect:`/`}],scrollBehavior:()=>({top:0})});ye(Q),Q.beforeEach(e=>e.path!==`/`||typeof window>`u`?!0:ut(window.location.hash)??!0),Q.afterEach(e=>{J(e.meta.title)});var $=w(st);$.use(M()),$.use(S),$.use(Q),await Q.isReady().catch(()=>void 0),$.mount(`#app`);
@@ -1 +1 @@
1
- import{a as e,n as t}from"./i18n-DQH9D35M.js";var n=new Set([`ProjectSpace`,`PersonalSpace`,`PersonalProject`,`ProjectPurpose`,`ProjectScope`,`ProjectSource`,`ProjectBoundary`,`ProjectAssessment`,`AssessmentDimension`,`RelatedPersonalProject`,`ExternalKnowledgeSource`]),r=new Set([`ProjectSpace`,`PersonalSpace`,`PersonalProject`,`ProjectPurpose`,`ProjectScope`,`TechnicalSummary`,`ProjectSource`,`ProjectBoundary`,`ProjectAssessment`,`AssessmentDimension`,`RelatedPersonalProject`,`ExternalKnowledgeSource`]),i=new Set([`known_known`,`known_unknown`,`unknown_known`,`unknown_unknown`,`unclassified`]),a=new Set([`taste`,`personality`,`judgment_preference`]),o=new Set([`confirm`,`update`,`invalidate`,`link_replacement`,`restore`,`scope_change`,`batch_confirm`]),s=new Set([`human_change`,`agent_view`,`agent_review`,`knowledge_used`]),c=new Set([`user`,`agent`,`authoritative_source`,`import`]);function l(t){let n=t??`unclassified`;return i.has(n)?e(`knowledge.domain.quadrants.${n}`):n}function u(t){let n=t??`unclassified`;return i.has(n)?e(`knowledge.domain.quadrants.descriptions.${n}`):e(`knowledge.domain.quadrants.customDescription`)}function d(t){let n=t??``;return a.has(n)?e(`knowledge.domain.profiles.${n}`):n}function f(t){let n=t??``;return o.has(n)?e(`knowledge.domain.revisions.${n}`):n||e(`knowledge.domain.revisions.fallback`)}function p(t){return e(`knowledge.domain.humanChanges.${t??`none`}`)}function m(t){let n=t??``;return s.has(n)?e(`knowledge.domain.auditActions.${n}`):n||e(`knowledge.domain.auditActions.fallback`)}function h(t){return t?t.label||(c.has(t.kind)?e(`knowledge.domain.actors.${t.kind}`):t.kind):e(`knowledge.domain.actors.notRecorded`)}function g(e){return typeof e==`object`&&e?e.id:e}function _(e){let t=e.nodes.filter(e=>!e.invalid_at),n=new Set(t.map(({id:e})=>e)),r=e.edges.filter(e=>!e.invalid_at&&n.has(g(e.source))&&n.has(g(e.target)));return{...e,nodes:t,edges:r}}function v(e){if(!e)return[];let t=new Map(e.nodes.map(e=>[e.id,e.name])),n=e.nodes.filter(e=>!T(e)).map(e=>b(e)),r=e.edges.filter(e=>!E(e)).map(e=>x(e,t));return[...n,...r].sort((e,t)=>q(t)-q(e))}function y(e){if(!e)return[];let t=new Map(e.nodes.map(e=>[e.id,e.name])),n=e.nodes.filter(T).map(e=>b(e)),r=e.edges.filter(E).map(e=>x(e,t));return[...n,...r]}function b(t){return{id:t.id,itemKind:`entity`,title:t.name,body:t.summary||e(`common.status.noDescription`),type:t.type,...W(t),raw:t}}function x(t,n){let r=n.get(g(t.source))??t.source_name,i=n.get(g(t.target))??t.target_name;return{id:t.id,itemKind:`relationship`,title:`${r??e(`knowledge.domain.items.unknownEntity`)} → ${i??e(`knowledge.domain.items.unknownEntity`)}`,body:t.fact||e(`knowledge.domain.items.noRelationDescription`),type:e(`knowledge.domain.items.relationshipType`,{type:t.type}),...W(t),raw:t}}function S(e){return e?n.has(e.type)||D(e.id):!1}function C(t){return t.itemKind===`relationship`?e(`knowledge.domain.materialTypes.relationship`):r.has(t.type)?e(`knowledge.domain.materialTypes.${t.type}`):t.type}function w(e){if(!e||e.itemKind!==`entity`)return null;let t=e.raw.attributes?.projectId;return typeof t==`string`&&t?t:null}function T(e){return n.has(e.type)||D(e.id)}function E(e){return D(e.id)}function D(e){return String(e).startsWith(`project-profile:`)||String(e).startsWith(`project-profile-edge:`)||String(e).startsWith(`space-edge:`)||String(e).startsWith(`personal-project-relation:`)||String(e).startsWith(`external-knowledge-binding:`)}function O(e,t){let n=t.query?.trim().toLocaleLowerCase()??``;return e.filter(e=>t.type&&t.type!==`all`&&e.type!==t.type||t.quadrant&&t.quadrant!==`all`&&e.originQuadrant!==t.quadrant||t.profile===`profile`&&!e.profileAspect||t.profile===`regular`&&e.profileAspect||t.status===`current`&&e.invalidAt||t.status===`historical`&&!e.invalidAt||t.humanChange===`human_changed`&&!e.humanEdited||t.humanChange&&![`all`,`human_changed`].includes(t.humanChange)&&e.humanChangeStatus!==t.humanChange?!1:!n||K(e).toLocaleLowerCase().includes(n))}function k(e){let t=v(e).filter(({profileAspect:e})=>e),n=new Set(t.filter(({itemKind:e})=>e===`relationship`).flatMap(({raw:e})=>{let t=e;return[g(t.source),g(t.target)]}));return t.filter(({id:e,itemKind:t})=>t===`relationship`||!n.has(e))}function A(e){let t=e.filter(e=>!!e);return{...t[0]??{space_id:null},nodes:J(t.flatMap(e=>e.nodes)),edges:J(t.flatMap(e=>e.edges)),truncated:t.some(({truncated:e})=>e)}}function j(e,t){let n=A([e,t]);return{...n,space_id:t.space_id??n.space_id,truncated:t.truncated,next_offset:t.next_offset??null}}function M(e){return e.revisions.at(0)?.created_at??e.createdAt??e.evidence.at(0)?.created_at??e.evidence.at(0)?.reference_time??null}function N(n){if(!n)return e(`knowledge.domain.items.notRecorded`);let r=new Date(n);return Number.isNaN(r.getTime())?n:r.toLocaleString(t())}function P(e){let t=e.confirmationBasis;return!e.confirmationExplicit||!t?.confirmed_by||!t.confirmed_at?`pending`:e.confirmationStatus===`confirmed`&&[`user`,`authoritative_source`].includes(t.confirmed_by.kind)?`confirmed`:e.confirmationStatus===`agent_confirmed`&&t.confirmed_by.kind===`agent`&&t.agent_policy_version?`agent_confirmed`:`pending`}function F(t){return e(`knowledge.domain.reviewStates.${P(t)}`)}function I(n){let r=new Map,i=n.filter(e=>!e.invalidAt&&e.classificationExplicit&&P(e)!==`confirmed`);for(let t of i)for(let n of t.evidence)n.id&&R(r,{kind:`source`,value:n.id,label:z(n),description:n.source_description||n.summary||e(`knowledge.domain.confirmation.sameSource`)},t),n.session_id&&R(r,{kind:`session`,value:n.session_id,label:B(n),description:n.source_description||n.summary||e(`knowledge.domain.confirmation.sameSession`)},t);return[...r.values()].filter(({items:e})=>e.length>=2).sort((e,n)=>n.items.length-e.items.length||e.label.localeCompare(n.label,t()))}function L(t,n){let r=t.evidence.find(e=>n.kind===`source`?e.id===n.value:e.session_id===n.value),i=t.confirmationBasis;return{existenceReason:i?.existence_reason||r?.source_description||r?.summary||e(`knowledge.domain.confirmation.sourceSupports`,{label:n.label}),quadrantReason:i?.quadrant_reason||t.reasoningSummary||e(`knowledge.domain.confirmation.quadrantReason`,{quadrant:l(t.originQuadrant),description:u(t.originQuadrant)}),proposedBy:i?.proposed_by||V(r)}}function R(e,t,n){let r=`${t.kind}:${t.value}`,i=e.get(r)??{key:r,...t,items:[]},a=`${n.itemKind}:${n.id}`;i.items.some(e=>`${e.itemKind}:${e.id}`===a)||i.items.push(n),e.set(r,i)}function z(t){return t.name||t.source_description||t.summary||e(`knowledge.domain.confirmation.sourceRecord`)}function B(t){let n={codex:`Codex`,claude:`Claude`,claude_code:`Claude Code`,cursor:`Cursor`,kiro:`Kiro`,other:e(`knowledge.domain.confirmation.otherSource`)}[t.source_application??``];return n?`${n} · ${t.name||t.source_kind||e(`knowledge.domain.confirmation.session`)}`:t.name||t.source_kind||e(`knowledge.domain.confirmation.sourceSession`)}function V(t){let n={codex:`Codex`,claude:`Claude`,claude_code:`Claude Code`,cursor:`Cursor`,kiro:`Kiro`,other:e(`knowledge.domain.actors.otherAgent`)}[t?.source_application??``];return n?{kind:`agent`,label:n}:{kind:`import`,label:e(`knowledge.domain.actors.historicalRecord`)}}function H(t){if(!t.classificationExplicit)return e(`knowledge.domain.confirmation.legacyUnclassified`);let n=t.confirmationBasis;return P(t)===`confirmed`&&n?e(`knowledge.domain.confirmation.confirmed`,{actor:h(n.confirmed_by),time:N(n.confirmed_at)}):P(t)===`agent_confirmed`&&n?e(`knowledge.domain.confirmation.agentConfirmed`,{time:N(n.confirmed_at)}):n?e(`knowledge.domain.confirmation.pending`,{actor:h(n.proposed_by)}):e(`knowledge.domain.confirmation.legacyPending`)}function U(t){let n=t.confirmationBasis;return n?P(t)===`confirmed`?`${h(n.confirmed_by)} · ${N(n.confirmed_at)}`:P(t)===`agent_confirmed`?e(`knowledge.domain.confirmation.agentPolicy`,{time:N(n.confirmed_at)}):e(`knowledge.domain.confirmation.proposed`,{actor:h(n.proposed_by),reason:n.existence_reason}):e(`knowledge.domain.confirmation.legacyBasisMissing`)}function W(e){let t=e.epistemic_state_explicit===!0,n=e.confirmation_state_explicit===!0;return{originQuadrant:t?e.origin_quadrant??`known_known`:`unclassified`,currentQuadrant:t?e.current_quadrant??`known_known`:`unclassified`,epistemicStatus:t?e.epistemic_status??`confirmed`:`unreviewed`,classificationExplicit:t,confirmationStatus:G(e.confirmation_status),confirmationExplicit:n,confirmationBasis:e.confirmation_basis??null,reasoningSummary:e.reasoning_summary??``,profileAspect:e.profile_aspect??null,preferenceScope:e.preference_scope??(e.profile_aspect?`global`:null),preferenceProjectId:e.preference_project_id??null,inheritanceMode:e.inheritance_mode??`local_only`,inheritedProjectIds:e.inherited_project_ids??[],humanEdited:e.human_edited===!0,humanChangeStatus:e.human_change_status??`none`,humanChangeVersion:e.human_change_version??0,lastHumanChangedAt:e.last_human_changed_at??null,lastAgentViewedAt:e.last_agent_viewed_at??null,lastAgentReviewedAt:e.last_agent_reviewed_at??null,utilityScore:e.utility_score??0,confidenceScore:e.confidence_score??.5,qualifiedUseCount:e.qualified_use_count??0,distinctTaskCount:e.distinct_task_count??0,lastUsedAt:e.last_used_at??null,usageGeneration:e.usage_generation??1,invalidAt:e.invalid_at,replacedByItemId:e.replaced_by_item_id??null,replacedByItemKind:e.replaced_by_item_kind??null,createdAt:e.created_at,evidence:e.evidence??[],revisions:e.revisions??[],assignments:e.assignments??[],projectReferences:e.project_references??[],conflicts:e.conflicts??[],auditEvents:e.audit_events??[]}}function G(e){return e===`confirmed`||e===`agent_confirmed`?e:`pending`}function K(e){return[e.id,e.title,e.body,e.type,l(e.originQuadrant),d(e.profileAspect),e.reasoningSummary,e.confirmationBasis?.existence_reason,e.confirmationBasis?.quadrant_reason,h(e.confirmationBasis?.proposed_by),h(e.confirmationBasis?.confirmed_by),p(e.humanChangeStatus),...e.auditEvents.flatMap(e=>[m(e.action),e.reason,e.tool_name,e.conflict_check,e.classification_check,e.outcome]),...e.evidence.flatMap(e=>[e.name,e.summary,e.source_description,e.session_id,e.source_excerpt])].filter(Boolean).join(` `)}function q(e){let t=M(e),n=t?new Date(t).getTime():0;return Number.isNaN(n)?0:n}function J(e){let t=new Map;for(let n of e){let e=t.get(n.id);t.set(n.id,e?Y(e,n):n)}return[...t.values()]}function Y(e,t){let n={...e,...t};for(let r of[`evidence`,`revisions`,`assignments`,`project_references`,`conflicts`,`audit_events`,`episodes`]){let i=e[r],a=t[r];!i&&!a||(n[r]=X([...i??[],...a??[]]))}return n}function X(e){let t=new Set;return e.filter(e=>{let n=typeof e==`object`&&e?e.id??JSON.stringify(e):e;return t.has(n)?!1:(t.add(n),!0)})}export{d as C,F as D,l as E,f as O,w as S,u as T,P as _,h as a,A as b,g as c,p as d,S as f,v as g,b as h,H as i,O as l,x as m,L as n,U as o,m as p,I as r,_ as s,j as t,N as u,M as v,C as w,k as x,y};
1
+ import{a as e,n as t}from"./i18n-C7r_00q2.js";var n=new Set([`ProjectSpace`,`PersonalSpace`,`PersonalProject`,`ProjectPurpose`,`ProjectScope`,`ProjectSource`,`ProjectBoundary`,`ProjectAssessment`,`AssessmentDimension`,`RelatedPersonalProject`,`ExternalKnowledgeSource`]),r=new Set([`ProjectSpace`,`PersonalSpace`,`PersonalProject`,`ProjectPurpose`,`ProjectScope`,`TechnicalSummary`,`ProjectSource`,`ProjectBoundary`,`ProjectAssessment`,`AssessmentDimension`,`RelatedPersonalProject`,`ExternalKnowledgeSource`]),i=new Set([`known_known`,`known_unknown`,`unknown_known`,`unknown_unknown`,`unclassified`]),a=new Set([`taste`,`personality`,`judgment_preference`]),o=new Set([`confirm`,`update`,`invalidate`,`link_replacement`,`restore`,`scope_change`,`batch_confirm`]),s=new Set([`human_change`,`agent_view`,`agent_review`,`knowledge_used`]),c=new Set([`user`,`agent`,`authoritative_source`,`import`]);function l(t){let n=t??`unclassified`;return i.has(n)?e(`knowledge.domain.quadrants.${n}`):n}function u(t){let n=t??`unclassified`;return i.has(n)?e(`knowledge.domain.quadrants.descriptions.${n}`):e(`knowledge.domain.quadrants.customDescription`)}function d(t){let n=t??``;return a.has(n)?e(`knowledge.domain.profiles.${n}`):n}function f(t){let n=t??``;return o.has(n)?e(`knowledge.domain.revisions.${n}`):n||e(`knowledge.domain.revisions.fallback`)}function p(t){return e(`knowledge.domain.humanChanges.${t??`none`}`)}function m(t){let n=t??``;return s.has(n)?e(`knowledge.domain.auditActions.${n}`):n||e(`knowledge.domain.auditActions.fallback`)}function h(t){return t?t.label||(c.has(t.kind)?e(`knowledge.domain.actors.${t.kind}`):t.kind):e(`knowledge.domain.actors.notRecorded`)}function g(e){return typeof e==`object`&&e?e.id:e}function _(e){let t=e.nodes.filter(e=>!e.invalid_at),n=new Set(t.map(({id:e})=>e)),r=e.edges.filter(e=>!e.invalid_at&&n.has(g(e.source))&&n.has(g(e.target)));return{...e,nodes:t,edges:r}}function v(e){if(!e)return[];let t=new Map(e.nodes.map(e=>[e.id,e.name])),n=e.nodes.filter(e=>!T(e)).map(e=>b(e)),r=e.edges.filter(e=>!E(e)).map(e=>x(e,t));return[...n,...r].sort((e,t)=>q(t)-q(e))}function y(e){if(!e)return[];let t=new Map(e.nodes.map(e=>[e.id,e.name])),n=e.nodes.filter(T).map(e=>b(e)),r=e.edges.filter(E).map(e=>x(e,t));return[...n,...r]}function b(t){return{id:t.id,itemKind:`entity`,title:t.name,body:t.summary||e(`common.status.noDescription`),type:t.type,...W(t),raw:t}}function x(t,n){let r=n.get(g(t.source))??t.source_name,i=n.get(g(t.target))??t.target_name;return{id:t.id,itemKind:`relationship`,title:`${r??e(`knowledge.domain.items.unknownEntity`)} → ${i??e(`knowledge.domain.items.unknownEntity`)}`,body:t.fact||e(`knowledge.domain.items.noRelationDescription`),type:e(`knowledge.domain.items.relationshipType`,{type:t.type}),...W(t),raw:t}}function S(e){return e?n.has(e.type)||D(e.id):!1}function C(t){return t.itemKind===`relationship`?e(`knowledge.domain.materialTypes.relationship`):r.has(t.type)?e(`knowledge.domain.materialTypes.${t.type}`):t.type}function w(e){if(!e||e.itemKind!==`entity`)return null;let t=e.raw.attributes?.projectId;return typeof t==`string`&&t?t:null}function T(e){return n.has(e.type)||D(e.id)}function E(e){return D(e.id)}function D(e){return String(e).startsWith(`project-profile:`)||String(e).startsWith(`project-profile-edge:`)||String(e).startsWith(`space-edge:`)||String(e).startsWith(`personal-project-relation:`)||String(e).startsWith(`external-knowledge-binding:`)}function O(e,t){let n=t.query?.trim().toLocaleLowerCase()??``;return e.filter(e=>t.type&&t.type!==`all`&&e.type!==t.type||t.quadrant&&t.quadrant!==`all`&&e.originQuadrant!==t.quadrant||t.profile===`profile`&&!e.profileAspect||t.profile===`regular`&&e.profileAspect||t.status===`current`&&e.invalidAt||t.status===`historical`&&!e.invalidAt||t.humanChange===`human_changed`&&!e.humanEdited||t.humanChange&&![`all`,`human_changed`].includes(t.humanChange)&&e.humanChangeStatus!==t.humanChange?!1:!n||K(e).toLocaleLowerCase().includes(n))}function k(e){let t=v(e).filter(({profileAspect:e})=>e),n=new Set(t.filter(({itemKind:e})=>e===`relationship`).flatMap(({raw:e})=>{let t=e;return[g(t.source),g(t.target)]}));return t.filter(({id:e,itemKind:t})=>t===`relationship`||!n.has(e))}function A(e){let t=e.filter(e=>!!e);return{...t[0]??{space_id:null},nodes:J(t.flatMap(e=>e.nodes)),edges:J(t.flatMap(e=>e.edges)),truncated:t.some(({truncated:e})=>e)}}function j(e,t){let n=A([e,t]);return{...n,space_id:t.space_id??n.space_id,truncated:t.truncated,next_offset:t.next_offset??null}}function M(e){return e.revisions.at(0)?.created_at??e.createdAt??e.evidence.at(0)?.created_at??e.evidence.at(0)?.reference_time??null}function N(n){if(!n)return e(`knowledge.domain.items.notRecorded`);let r=new Date(n);return Number.isNaN(r.getTime())?n:r.toLocaleString(t())}function P(e){let t=e.confirmationBasis;return!e.confirmationExplicit||!t?.confirmed_by||!t.confirmed_at?`pending`:e.confirmationStatus===`confirmed`&&[`user`,`authoritative_source`].includes(t.confirmed_by.kind)?`confirmed`:e.confirmationStatus===`agent_confirmed`&&t.confirmed_by.kind===`agent`&&t.agent_policy_version?`agent_confirmed`:`pending`}function F(t){return e(`knowledge.domain.reviewStates.${P(t)}`)}function I(n){let r=new Map,i=n.filter(e=>!e.invalidAt&&e.classificationExplicit&&P(e)!==`confirmed`);for(let t of i)for(let n of t.evidence)n.id&&R(r,{kind:`source`,value:n.id,label:z(n),description:n.source_description||n.summary||e(`knowledge.domain.confirmation.sameSource`)},t),n.session_id&&R(r,{kind:`session`,value:n.session_id,label:B(n),description:n.source_description||n.summary||e(`knowledge.domain.confirmation.sameSession`)},t);return[...r.values()].filter(({items:e})=>e.length>=2).sort((e,n)=>n.items.length-e.items.length||e.label.localeCompare(n.label,t()))}function L(t,n){let r=t.evidence.find(e=>n.kind===`source`?e.id===n.value:e.session_id===n.value),i=t.confirmationBasis;return{existenceReason:i?.existence_reason||r?.source_description||r?.summary||e(`knowledge.domain.confirmation.sourceSupports`,{label:n.label}),quadrantReason:i?.quadrant_reason||t.reasoningSummary||e(`knowledge.domain.confirmation.quadrantReason`,{quadrant:l(t.originQuadrant),description:u(t.originQuadrant)}),proposedBy:i?.proposed_by||V(r)}}function R(e,t,n){let r=`${t.kind}:${t.value}`,i=e.get(r)??{key:r,...t,items:[]},a=`${n.itemKind}:${n.id}`;i.items.some(e=>`${e.itemKind}:${e.id}`===a)||i.items.push(n),e.set(r,i)}function z(t){return t.name||t.source_description||t.summary||e(`knowledge.domain.confirmation.sourceRecord`)}function B(t){let n={codex:`Codex`,claude:`Claude`,claude_code:`Claude Code`,cursor:`Cursor`,kiro:`Kiro`,other:e(`knowledge.domain.confirmation.otherSource`)}[t.source_application??``];return n?`${n} · ${t.name||t.source_kind||e(`knowledge.domain.confirmation.session`)}`:t.name||t.source_kind||e(`knowledge.domain.confirmation.sourceSession`)}function V(t){let n={codex:`Codex`,claude:`Claude`,claude_code:`Claude Code`,cursor:`Cursor`,kiro:`Kiro`,other:e(`knowledge.domain.actors.otherAgent`)}[t?.source_application??``];return n?{kind:`agent`,label:n}:{kind:`import`,label:e(`knowledge.domain.actors.historicalRecord`)}}function H(t){if(!t.classificationExplicit)return e(`knowledge.domain.confirmation.legacyUnclassified`);let n=t.confirmationBasis;return P(t)===`confirmed`&&n?e(`knowledge.domain.confirmation.confirmed`,{actor:h(n.confirmed_by),time:N(n.confirmed_at)}):P(t)===`agent_confirmed`&&n?e(`knowledge.domain.confirmation.agentConfirmed`,{time:N(n.confirmed_at)}):n?e(`knowledge.domain.confirmation.pending`,{actor:h(n.proposed_by)}):e(`knowledge.domain.confirmation.legacyPending`)}function U(t){let n=t.confirmationBasis;return n?P(t)===`confirmed`?`${h(n.confirmed_by)} · ${N(n.confirmed_at)}`:P(t)===`agent_confirmed`?e(`knowledge.domain.confirmation.agentPolicy`,{time:N(n.confirmed_at)}):e(`knowledge.domain.confirmation.proposed`,{actor:h(n.proposed_by),reason:n.existence_reason}):e(`knowledge.domain.confirmation.legacyBasisMissing`)}function W(e){let t=e.epistemic_state_explicit===!0,n=e.confirmation_state_explicit===!0;return{originQuadrant:t?e.origin_quadrant??`known_known`:`unclassified`,currentQuadrant:t?e.current_quadrant??`known_known`:`unclassified`,epistemicStatus:t?e.epistemic_status??`confirmed`:`unreviewed`,classificationExplicit:t,confirmationStatus:G(e.confirmation_status),confirmationExplicit:n,confirmationBasis:e.confirmation_basis??null,reasoningSummary:e.reasoning_summary??``,profileAspect:e.profile_aspect??null,preferenceScope:e.preference_scope??(e.profile_aspect?`global`:null),preferenceProjectId:e.preference_project_id??null,inheritanceMode:e.inheritance_mode??`local_only`,inheritedProjectIds:e.inherited_project_ids??[],humanEdited:e.human_edited===!0,humanChangeStatus:e.human_change_status??`none`,humanChangeVersion:e.human_change_version??0,lastHumanChangedAt:e.last_human_changed_at??null,lastAgentViewedAt:e.last_agent_viewed_at??null,lastAgentReviewedAt:e.last_agent_reviewed_at??null,utilityScore:e.utility_score??0,confidenceScore:e.confidence_score??.5,qualifiedUseCount:e.qualified_use_count??0,distinctTaskCount:e.distinct_task_count??0,lastUsedAt:e.last_used_at??null,usageGeneration:e.usage_generation??1,invalidAt:e.invalid_at,replacedByItemId:e.replaced_by_item_id??null,replacedByItemKind:e.replaced_by_item_kind??null,createdAt:e.created_at,evidence:e.evidence??[],revisions:e.revisions??[],assignments:e.assignments??[],projectReferences:e.project_references??[],conflicts:e.conflicts??[],auditEvents:e.audit_events??[]}}function G(e){return e===`confirmed`||e===`agent_confirmed`?e:`pending`}function K(e){return[e.id,e.title,e.body,e.type,l(e.originQuadrant),d(e.profileAspect),e.reasoningSummary,e.confirmationBasis?.existence_reason,e.confirmationBasis?.quadrant_reason,h(e.confirmationBasis?.proposed_by),h(e.confirmationBasis?.confirmed_by),p(e.humanChangeStatus),...e.auditEvents.flatMap(e=>[m(e.action),e.reason,e.tool_name,e.conflict_check,e.classification_check,e.outcome]),...e.evidence.flatMap(e=>[e.name,e.summary,e.source_description,e.session_id,e.source_excerpt])].filter(Boolean).join(` `)}function q(e){let t=M(e),n=t?new Date(t).getTime():0;return Number.isNaN(n)?0:n}function J(e){let t=new Map;for(let n of e){let e=t.get(n.id);t.set(n.id,e?Y(e,n):n)}return[...t.values()]}function Y(e,t){let n={...e,...t};for(let r of[`evidence`,`revisions`,`assignments`,`project_references`,`conflicts`,`audit_events`,`episodes`]){let i=e[r],a=t[r];!i&&!a||(n[r]=X([...i??[],...a??[]]))}return n}function X(e){let t=new Set;return e.filter(e=>{let n=typeof e==`object`&&e?e.id??JSON.stringify(e):e;return t.has(n)?!1:(t.add(n),!0)})}export{d as C,F as D,l as E,f as O,w as S,u as T,P as _,h as a,A as b,g as c,p as d,S as f,v as g,b as h,H as i,O as l,x as m,L as n,U as o,m as p,I as r,_ as s,j as t,N as u,M as v,C as w,k as x,y};
@@ -1 +1 @@
1
- import{O as e}from"./i18n-DQH9D35M.js";function t(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function n(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&t(e.default)}var r=Object.assign;function i(e,t){let n={};for(let r in t){let i=t[r];n[r]=o(i)?i.map(e):e(i)}return n}var a=()=>{},o=Array.isArray;function s(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var c=Symbol(``);function l(e,t){return r(Error(),{type:e,[c]:!0},t)}function u(e,t){return e instanceof Error&&c in e&&(t==null||!!(e.type&t))}var d=Symbol(``),f=Symbol(``),p=Symbol(``),m=Symbol(``),h=Symbol(``);function g(){return e(p)}function _(t){return e(m)}export{n as a,d as c,m as d,p as f,f as g,g as h,o as i,s as l,_ as m,r as n,u as o,h as p,l as r,t as s,i as t,a as u};
1
+ import{O as e}from"./i18n-C7r_00q2.js";function t(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function n(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&t(e.default)}var r=Object.assign;function i(e,t){let n={};for(let r in t){let i=t[r];n[r]=o(i)?i.map(e):e(i)}return n}var a=()=>{},o=Array.isArray;function s(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var c=Symbol(``);function l(e,t){return r(Error(),{type:e,[c]:!0},t)}function u(e,t){return e instanceof Error&&c in e&&(t==null||!!(e.type&t))}var d=Symbol(``),f=Symbol(``),p=Symbol(``),m=Symbol(``),h=Symbol(``);function g(){return e(p)}function _(t){return e(m)}export{n as a,d as c,m as d,p as f,f as g,g as h,o as i,s as l,_ as m,r as n,u as o,h as p,l as r,t as s,i as t,a as u};
@@ -1 +1 @@
1
- import{$ as e,A as t,E as n,O as r,P as i,Q as a,T as o,Y as s,Z as c,_ as l,nt as u,z as d}from"./i18n-DQH9D35M.js";import{a as f,c as p,d as m,f as h,g,i as _,l as v,n as y,o as b,p as ee,r as x,s as S,t as C,u as w}from"./useApi-CROJJdhE-CElDxEZI.js";var T=typeof document<`u`,E=/#/g,te=/&/g,ne=/\//g,re=/=/g,D=/\?/g,O=/\+/g,ie=/%5B/g,k=/%5D/g,ae=/%5E/g,oe=/%60/g,A=/%7B/g,se=/%7C/g,j=/%7D/g,M=/%20/g;function N(e){return e==null?``:encodeURI(``+e).replace(se,`|`).replace(ie,`[`).replace(k,`]`)}function ce(e){return N(e).replace(A,`{`).replace(j,`}`).replace(ae,`^`)}function P(e){return N(e).replace(O,`%2B`).replace(M,`+`).replace(E,`%23`).replace(te,`%26`).replace(oe,"`").replace(A,`{`).replace(j,`}`).replace(ae,`^`)}function F(e){return P(e).replace(re,`%3D`)}function le(e){return N(e).replace(E,`%23`).replace(D,`%3F`)}function ue(e){return le(e).replace(ne,`%2F`)}function I(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var L=/\/$/,R=e=>e.replace(L,``);function z(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=G(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:I(o)}}function de(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function B(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function fe(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&V(t.matched[r],n.matched[i])&&H(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function V(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function H(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!U(e[n],t[n]))return!1;return!0}function U(e,t){return _(e)?W(e,t):_(t)?W(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function W(e,t){return _(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function G(e,t){if(e.startsWith(`/`))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o<r.length;o++)if(s=r[o],s!==`.`)if(s===`..`)a>1&&a--;else break;return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var K={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0};function q(e){if(!e)if(T){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^/]+/,``)}else e=`/`;return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),R(e)}var J=/^[^#]+#/;function Y(e,t){return e.replace(J,`#`)+t}function X(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var Z=()=>({left:window.scrollX,top:window.scrollY});function pe(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=X(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function me(e,t){return(history.state?history.state.position-t:-1)+e}var he=new Map;function ge(e,t){he.set(e,t)}function _e(e){let t=he.get(e);return he.delete(e),t}function ve(e){return typeof e==`string`||e&&typeof e==`object`}function ye(e){return typeof e==`string`||typeof e==`symbol`}function be(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;e<n.length;++e){let r=n[e].replace(O,` `),i=r.indexOf(`=`),a=I(i<0?r:r.slice(0,i)),o=i<0?null:I(r.slice(i+1));if(a in t){let e=t[a];_(e)||(e=t[a]=[e]),e.push(o)}else t[a]=o}return t}function xe(e){let t=``;for(let n in e){let r=e[n];if(n=F(n),r==null){r!==void 0&&(t+=(t.length?`&`:``)+n);continue}(_(r)?r.map(e=>e&&P(e)):[r&&P(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function Se(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=_(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}function Q(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function $(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(x(4,{from:n,to:t})):e instanceof Error?c(e):ve(e)?c(x(2,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function Ce(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(!(t!==`beforeRouteEnter`&&!o.instances[e]))if(S(s)){let c=(s.__vccOpts||s)[t];c&&a.push($(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=f(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&$(c,n,r,o,e,i)()}))}}return a}function we(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;o<a;o++){let a=t.matched[o];a&&(e.matched.find(e=>V(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>V(e,s))||i.push(s))}return[n,r,i]}var Te=()=>location.protocol+`//`+location.host;function Ee(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),B(n,``)}return B(n,e)+r+i}function De(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=Ee(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:`pop`,direction:u?u>0?`forward`:`back`:``})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState(y({},e.state,{scroll:Z()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function Oe(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?Z():null}}function ke(e){let{history:t,location:n}=window,r={value:Ee(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:Te()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,y({},t.state,Oe(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=y({},i.value,t.state,{forward:e,scroll:Z()});a(o.current,o,!0),a(e,y({},Oe(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function Ae(e){e=q(e);let t=ke(e),n=De(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=y({location:``,base:e,go:r,createHref:Y.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}var je={type:0,value:``},Me=/[a-zA-Z0-9_]/;function Ne(e){if(!e)return[[]];if(e===`/`)return[[je]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=0,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===0?a.push({type:0,value:l}):n===1||n===2||n===3?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;s<e.length;)switch(c=e[s++],n){case 0:c===`\\`?(r=n,n=4):c===`/`?(l&&d(),o()):c===`:`?(d(),n=1):f();break;case 4:f(),n=r;break;case 1:c===`(`?n=2:Me.test(c)?f():(d(),n=0,c!==`*`&&c!==`?`&&c!==`+`&&s--);break;case 2:c===`)`?u[u.length-1]==`\\`?u=u.slice(0,-1)+c:n=3:u+=c;break;case 3:d(),n=0,c!==`*`&&c!==`?`&&c!==`+`&&s--,u=``;break;default:t(`Unknown state`);break}return n===2&&t(`Unfinished custom RegExp for param "${l}"`),d(),o(),i}var Pe=`[^/]+?`,Fe={sensitive:!1,strict:!1,start:!0,end:!0},Ie=/[.+*?^${}()[\]/\\]/g;function Le(e,t){let n=y({},Fe,t),r=[],i=n.start?`^`:``,a=[];for(let t of e){let e=t.length?[]:[90];n.strict&&!t.length&&(i+=`/`);for(let r=0;r<t.length;r++){let o=t[r],s=40+(n.sensitive?.25:0);if(o.type===0)r||(i+=`/`),i+=o.value.replace(Ie,`\\$&`),s+=40;else if(o.type===1){let{value:e,repeatable:n,optional:c,regexp:l}=o;a.push({name:e,repeatable:n,optional:c});let u=l||Pe;if(u!==Pe){s+=10;try{RegExp(`(${u})`)}catch(t){throw Error(`Invalid custom RegExp for param "${e}" (${u}): `+t.message)}}let d=n?`((?:${u})(?:/(?:${u}))*)`:`(${u})`;r||(d=c&&t.length<2?`(?:/${d})`:`/`+d),c&&(d+=`?`),i+=d,s+=20,c&&(s+=-8),n&&(s+=-20),u===`.*`&&(s+=-50)}e.push(s)}r.push(e)}if(n.strict&&n.end){let e=r.length-1;r[e][r[e].length-1]+=.7000000000000001}n.strict||(i+=`/?`),n.end?i+=`$`:n.strict&&!i.endsWith(`/`)&&(i+=`(?:/|$)`);let o=new RegExp(i,n.sensitive?``:`i`);function s(e){let t=e.match(o),n={};if(!t)return null;for(let e=1;e<t.length;e++){let r=t[e]||``,i=a[e-1];n[i.name]=r&&i.repeatable?r.split(`/`):r}return n}function c(t){let n=``,r=!1;for(let i of e){(!r||!n.endsWith(`/`))&&(n+=`/`),r=!1;for(let e of i)if(e.type===0)n+=e.value;else if(e.type===1){let{value:a,repeatable:o,optional:s}=e,c=a in t?t[a]:``;if(_(c)&&!o)throw Error(`Provided param "${a}" is an array but it is not repeatable (* or + modifiers)`);let l=_(c)?c.join(`/`):c;if(!l)if(s)i.length<2&&(n.endsWith(`/`)?n=n.slice(0,-1):r=!0);else throw Error(`Missing required param "${a}"`);n+=l}}return n||`/`}return{re:o,score:r,keys:a,parse:s,stringify:c}}function Re(e,t){let n=0;for(;n<e.length&&n<t.length;){let r=t[n]-e[n];if(r)return r;n++}return e.length<t.length?e.length===1&&e[0]===80?-1:1:e.length>t.length?t.length===1&&t[0]===80?1:-1:0}function ze(e,t){let n=0,r=e.score,i=t.score;for(;n<r.length&&n<i.length;){let e=Re(r[n],i[n]);if(e)return e;n++}if(Math.abs(i.length-r.length)===1){if(Be(r))return 1;if(Be(i))return-1}return i.length-r.length}function Be(e){let t=e[e.length-1];return e.length>0&&t[t.length-1]<0}var Ve={strict:!1,end:!0,sensitive:!1};function He(e,t,n){let r=y(Le(Ne(e.path),n),{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function Ue(e,t){let n=[],r=new Map;t=v(Ve,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=Ge(e);s.aliasOf=r&&r.record;let l=v(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(Ge(y({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=He(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!qe(d)&&o(e.name)),Ze(d)&&c(d),s.children){let e=s.children;for(let t=0;t<e.length;t++)a(e[t],d,r&&r.children[t])}r||=d}return f?()=>{o(f)}:w}function o(e){if(ye(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=Ye(e,n);n.splice(t,0,e),e.record.name&&!qe(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw x(1,{location:e});s=i.record.name,a=y(We(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&We(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name,i.keys.forEach(e=>{e.optional&&!a[e.name]&&delete a[e.name]}));else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw x(1,{location:e,currentLocation:t});s=i.record.name,a=y({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:Je(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function We(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Ge(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ke(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Ke(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function qe(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Je(e){return e.reduce((e,t)=>y(e,t.meta),{})}function Ye(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;ze(e,t[i])<0?r=i:n=i+1}let i=Xe(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function Xe(e){let t=e;for(;t=t.parent;)if(Ze(t)&&ze(e,t)===0)return t}function Ze({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Qe(e){let t=r(h),n=r(m),i=l(()=>{let n=u(e.to);return t.resolve(n)}),a=l(()=>{let{matched:e}=i.value,{length:t}=e,r=e[t-1],a=n.matched;if(!r||!a.length)return-1;let o=a.findIndex(V.bind(null,r));if(o>-1)return o;let s=rt(e[t-2]);return t>1&&rt(r)===s&&a[a.length-1].path!==s?a.findIndex(V.bind(null,e[t-2])):o}),o=l(()=>a.value>-1&&nt(n.params,i.value.params)),s=l(()=>a.value>-1&&a.value===n.matched.length-1&&H(n.params,i.value.params));function c(n={}){if(tt(n)){let n=t[u(e.replace)?`replace`:`push`](u(e.to)).catch(w);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:i,href:l(()=>i.value.href),isActive:o,isExactActive:s,navigate:c}}function $e(e){return e.length===1?e[0]:e}var et=o({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:Qe,setup(e,{slots:t}){let i=s(Qe(e)),{options:a}=r(h),o=l(()=>({[it(e.activeClass,a.linkActiveClass,`router-link-active`)]:i.isActive,[it(e.exactActiveClass,a.linkExactActiveClass,`router-link-exact-active`)]:i.isExactActive}));return()=>{let r=t.default&&$e(t.default(i));return e.custom?r:n(`a`,{"aria-current":i.isExactActive?e.ariaCurrentValue:null,href:i.href,onClick:i.navigate,class:o.value},r)}}});function tt(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function nt(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!_(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function rt(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var it=(e,t,n)=>e??t??n,at=o({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:a}){let o=r(ee),s=l(()=>e.route||o.value),f=r(g,0),m=l(()=>{let e=u(f),{matched:t}=s.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),h=l(()=>s.value.matched[m.value]);i(g,l(()=>m.value+1)),i(p,h),i(ee,s);let _=c();return d(()=>[_.value,h.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!V(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=s.value,i=e.name,o=h.value,c=o&&o.components[i];if(!c)return ot(a.default,{Component:c,route:r});let l=o.props[i],u=n(c,y({},l?l===!0?r.params:typeof l==`function`?l(r):l:null,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[i]=null)},ref:_}));return ot(a.default,{Component:u,route:r})||u}}});function ot(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var st=at;function ct(n){let r=Ue(n.routes,n),i=n.parseQuery||be,o=n.stringifyQuery||xe,s=n.history,c=Q(),l=Q(),d=Q(),f=e(K),p=K;T&&n.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let g=C.bind(null,e=>``+e),v=C.bind(null,ue),S=C.bind(null,I);function E(e,t){let n,i;return ye(e)?(n=r.getRecordMatcher(e),i=t):i=e,r.addRoute(i,n)}function te(e){let t=r.getRecordMatcher(e);t&&r.removeRoute(t)}function ne(){return r.getRoutes().map(e=>e.record)}function re(e){return!!r.getRecordMatcher(e)}function D(e,t){if(t=y({},t||f.value),typeof e==`string`){let n=z(i,e,t.path),a=r.resolve({path:n.path},t),o=s.createHref(n.fullPath);return y(n,a,{params:S(a.params),redirectedFrom:void 0,href:o})}let n;if(e.path!=null)n=y({},e,{path:z(i,e.path,t.path).path});else{let r=y({},e.params);for(let e in r)r[e]??delete r[e];n=y({},e,{params:v(r)}),t.params=v(t.params)}let a=r.resolve(n,t),c=e.hash||``;a.params=g(S(a.params));let l=de(o,y({},e,{hash:ce(c),path:a.path})),u=s.createHref(l);return y({fullPath:l,hash:c,query:o===xe?Se(e.query):e.query||{}},a,{redirectedFrom:void 0,href:u})}function O(e){return typeof e==`string`?z(i,e,f.value.path):y({},e)}function ie(e,t){if(p!==e)return x(8,{from:t,to:e})}function k(e){return A(e)}function ae(e){return k(y(O(e),{replace:!0}))}function oe(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=O(i):{path:i},i.params={}),y({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function A(e,t){let n=p=D(e),r=f.value,i=e.state,a=e.force,s=e.replace===!0,c=oe(n,r);if(c)return A(y(O(c),{state:typeof c==`object`?y({},i,c.state):i,force:a,replace:s}),t||n);let l=n;l.redirectedFrom=t;let u;return!a&&fe(o,r,n)&&(u=x(16,{to:l,from:r}),W(r,r,!0,!1)),(u?Promise.resolve(u):M(l,r)).catch(e=>b(e)?b(e,2)?e:U(e):V(e,l,r)).then(e=>{if(e){if(b(e,2))return A(y({replace:s},O(e.to),{state:typeof e.to==`object`?y({},i,e.to.state):i,force:a}),t||l)}else e=P(l,r,!0,s,i);return N(l,r,e),e})}function se(e,t){let n=ie(e,t);return n?Promise.reject(n):Promise.resolve()}function j(e){let t=J.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function M(e,t){let n,[r,i,a]=we(e,t);n=Ce(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push($(r,e,t))});let o=se.bind(null,e,t);return n.push(o),X(n).then(()=>{n=[];for(let r of c.list())n.push($(r,e,t));return n.push(o),X(n)}).then(()=>{n=Ce(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push($(r,e,t))});return n.push(o),X(n)}).then(()=>{n=[];for(let r of a)if(r.beforeEnter)if(_(r.beforeEnter))for(let i of r.beforeEnter)n.push($(i,e,t));else n.push($(r.beforeEnter,e,t));return n.push(o),X(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=Ce(a,`beforeRouteEnter`,e,t,j),n.push(o),X(n))).then(()=>{n=[];for(let r of l.list())n.push($(r,e,t));return n.push(o),X(n)}).catch(e=>b(e,8)?e:Promise.reject(e))}function N(e,t,n){d.list().forEach(r=>j(()=>r(e,t,n)))}function P(e,t,n,r,i){let a=ie(e,t);if(a)return a;let o=t===K,c=T?history.state:{};n&&(r||o?s.replace(e.fullPath,y({scroll:o&&c&&c.scroll},i)):s.push(e.fullPath,i)),f.value=e,W(e,t,n,o),U()}let F;function le(){F||=s.listen((e,t,n)=>{if(!Y.listening)return;let r=D(e),i=oe(r,Y.currentRoute.value);if(i){A(y(i,{replace:!0,force:!0}),r).catch(w);return}p=r;let a=f.value;T&&ge(me(a.fullPath,n.delta),Z()),M(r,a).catch(e=>b(e,12)?e:b(e,2)?(A(y(O(e.to),{force:!0}),r).then(e=>{b(e,20)&&!n.delta&&n.type===`pop`&&s.go(-1,!1)}).catch(w),Promise.reject()):(n.delta&&s.go(-n.delta,!1),V(e,r,a))).then(e=>{e||=P(r,a,!1),e&&(n.delta&&!b(e,8)?s.go(-n.delta,!1):n.type===`pop`&&b(e,20)&&s.go(-1,!1)),N(r,a,e)}).catch(w)})}let L=Q(),R=Q(),B;function V(e,t,n){U(e);let r=R.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function H(){return B&&f.value!==K?Promise.resolve():new Promise((e,t)=>{L.add([e,t])})}function U(e){return B||(B=!e,le(),L.list().forEach(([t,n])=>e?n(e):t()),L.reset()),e}function W(e,r,i,a){let{scrollBehavior:o}=n;if(!T||!o)return Promise.resolve();let s=!i&&_e(me(e.fullPath,0))||(a||!i)&&history.state&&history.state.scroll||null;return t().then(()=>o(e,r,s)).then(t=>e===f.value&&t&&pe(t)).catch(t=>e===f.value&&V(t,e,r))}let G=e=>s.go(e),q,J=new Set,Y={currentRoute:f,listening:!0,addRoute:E,removeRoute:te,clearRoutes:r.clearRoutes,hasRoute:re,getRoutes:ne,resolve:D,options:n,push:k,replace:ae,go:G,back:()=>G(-1),forward:()=>G(1),beforeEach:c.add,beforeResolve:l.add,afterEach:d.add,onError:R.add,isReady:H,install(e){e.component(`RouterLink`,et),e.component(`RouterView`,st),e.config.globalProperties.$router=Y,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>u(f)}),T&&!q&&f.value===K&&(q=!0,k(s.location).catch(e=>{}));let t={};for(let e in K)Object.defineProperty(t,e,{get:()=>f.value[e],enumerable:!0});e.provide(h,Y),e.provide(m,a(t)),e.provide(ee,f);let n=e.unmount;J.add(e),e.unmount=function(){J.delete(e),J.size<1&&(p=K,F&&F(),F=null,f.value=K,q=!1,B=!1),n()}}};function X(e){return e.reduce((e,t)=>e.then(()=>j(t)),Promise.resolve())}return Y}export{Ae as i,st as n,ct as r,et as t};
1
+ import{$ as e,A as t,E as n,O as r,P as i,Q as a,T as o,Y as s,Z as c,_ as l,nt as u,z as d}from"./i18n-C7r_00q2.js";import{a as f,c as p,d as m,f as h,g,i as _,l as v,n as y,o as b,p as ee,r as x,s as S,t as C,u as w}from"./useApi-CROJJdhE-DERnOR_k.js";var T=typeof document<`u`,E=/#/g,te=/&/g,ne=/\//g,re=/=/g,D=/\?/g,O=/\+/g,ie=/%5B/g,k=/%5D/g,ae=/%5E/g,oe=/%60/g,A=/%7B/g,se=/%7C/g,j=/%7D/g,M=/%20/g;function N(e){return e==null?``:encodeURI(``+e).replace(se,`|`).replace(ie,`[`).replace(k,`]`)}function ce(e){return N(e).replace(A,`{`).replace(j,`}`).replace(ae,`^`)}function P(e){return N(e).replace(O,`%2B`).replace(M,`+`).replace(E,`%23`).replace(te,`%26`).replace(oe,"`").replace(A,`{`).replace(j,`}`).replace(ae,`^`)}function F(e){return P(e).replace(re,`%3D`)}function le(e){return N(e).replace(E,`%23`).replace(D,`%3F`)}function ue(e){return le(e).replace(ne,`%2F`)}function I(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var L=/\/$/,R=e=>e.replace(L,``);function z(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=G(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:I(o)}}function de(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function B(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function fe(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&V(t.matched[r],n.matched[i])&&H(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function V(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function H(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!U(e[n],t[n]))return!1;return!0}function U(e,t){return _(e)?W(e,t):_(t)?W(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function W(e,t){return _(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function G(e,t){if(e.startsWith(`/`))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o<r.length;o++)if(s=r[o],s!==`.`)if(s===`..`)a>1&&a--;else break;return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var K={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0};function q(e){if(!e)if(T){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^/]+/,``)}else e=`/`;return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),R(e)}var J=/^[^#]+#/;function Y(e,t){return e.replace(J,`#`)+t}function X(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var Z=()=>({left:window.scrollX,top:window.scrollY});function pe(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=X(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function me(e,t){return(history.state?history.state.position-t:-1)+e}var he=new Map;function ge(e,t){he.set(e,t)}function _e(e){let t=he.get(e);return he.delete(e),t}function ve(e){return typeof e==`string`||e&&typeof e==`object`}function ye(e){return typeof e==`string`||typeof e==`symbol`}function be(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;e<n.length;++e){let r=n[e].replace(O,` `),i=r.indexOf(`=`),a=I(i<0?r:r.slice(0,i)),o=i<0?null:I(r.slice(i+1));if(a in t){let e=t[a];_(e)||(e=t[a]=[e]),e.push(o)}else t[a]=o}return t}function xe(e){let t=``;for(let n in e){let r=e[n];if(n=F(n),r==null){r!==void 0&&(t+=(t.length?`&`:``)+n);continue}(_(r)?r.map(e=>e&&P(e)):[r&&P(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function Se(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=_(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}function Q(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function $(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(x(4,{from:n,to:t})):e instanceof Error?c(e):ve(e)?c(x(2,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function Ce(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(!(t!==`beforeRouteEnter`&&!o.instances[e]))if(S(s)){let c=(s.__vccOpts||s)[t];c&&a.push($(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=f(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&$(c,n,r,o,e,i)()}))}}return a}function we(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;o<a;o++){let a=t.matched[o];a&&(e.matched.find(e=>V(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>V(e,s))||i.push(s))}return[n,r,i]}var Te=()=>location.protocol+`//`+location.host;function Ee(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),B(n,``)}return B(n,e)+r+i}function De(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=Ee(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:`pop`,direction:u?u>0?`forward`:`back`:``})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState(y({},e.state,{scroll:Z()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function Oe(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?Z():null}}function ke(e){let{history:t,location:n}=window,r={value:Ee(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:Te()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,y({},t.state,Oe(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=y({},i.value,t.state,{forward:e,scroll:Z()});a(o.current,o,!0),a(e,y({},Oe(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function Ae(e){e=q(e);let t=ke(e),n=De(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=y({location:``,base:e,go:r,createHref:Y.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}var je={type:0,value:``},Me=/[a-zA-Z0-9_]/;function Ne(e){if(!e)return[[]];if(e===`/`)return[[je]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=0,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===0?a.push({type:0,value:l}):n===1||n===2||n===3?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;s<e.length;)switch(c=e[s++],n){case 0:c===`\\`?(r=n,n=4):c===`/`?(l&&d(),o()):c===`:`?(d(),n=1):f();break;case 4:f(),n=r;break;case 1:c===`(`?n=2:Me.test(c)?f():(d(),n=0,c!==`*`&&c!==`?`&&c!==`+`&&s--);break;case 2:c===`)`?u[u.length-1]==`\\`?u=u.slice(0,-1)+c:n=3:u+=c;break;case 3:d(),n=0,c!==`*`&&c!==`?`&&c!==`+`&&s--,u=``;break;default:t(`Unknown state`);break}return n===2&&t(`Unfinished custom RegExp for param "${l}"`),d(),o(),i}var Pe=`[^/]+?`,Fe={sensitive:!1,strict:!1,start:!0,end:!0},Ie=/[.+*?^${}()[\]/\\]/g;function Le(e,t){let n=y({},Fe,t),r=[],i=n.start?`^`:``,a=[];for(let t of e){let e=t.length?[]:[90];n.strict&&!t.length&&(i+=`/`);for(let r=0;r<t.length;r++){let o=t[r],s=40+(n.sensitive?.25:0);if(o.type===0)r||(i+=`/`),i+=o.value.replace(Ie,`\\$&`),s+=40;else if(o.type===1){let{value:e,repeatable:n,optional:c,regexp:l}=o;a.push({name:e,repeatable:n,optional:c});let u=l||Pe;if(u!==Pe){s+=10;try{RegExp(`(${u})`)}catch(t){throw Error(`Invalid custom RegExp for param "${e}" (${u}): `+t.message)}}let d=n?`((?:${u})(?:/(?:${u}))*)`:`(${u})`;r||(d=c&&t.length<2?`(?:/${d})`:`/`+d),c&&(d+=`?`),i+=d,s+=20,c&&(s+=-8),n&&(s+=-20),u===`.*`&&(s+=-50)}e.push(s)}r.push(e)}if(n.strict&&n.end){let e=r.length-1;r[e][r[e].length-1]+=.7000000000000001}n.strict||(i+=`/?`),n.end?i+=`$`:n.strict&&!i.endsWith(`/`)&&(i+=`(?:/|$)`);let o=new RegExp(i,n.sensitive?``:`i`);function s(e){let t=e.match(o),n={};if(!t)return null;for(let e=1;e<t.length;e++){let r=t[e]||``,i=a[e-1];n[i.name]=r&&i.repeatable?r.split(`/`):r}return n}function c(t){let n=``,r=!1;for(let i of e){(!r||!n.endsWith(`/`))&&(n+=`/`),r=!1;for(let e of i)if(e.type===0)n+=e.value;else if(e.type===1){let{value:a,repeatable:o,optional:s}=e,c=a in t?t[a]:``;if(_(c)&&!o)throw Error(`Provided param "${a}" is an array but it is not repeatable (* or + modifiers)`);let l=_(c)?c.join(`/`):c;if(!l)if(s)i.length<2&&(n.endsWith(`/`)?n=n.slice(0,-1):r=!0);else throw Error(`Missing required param "${a}"`);n+=l}}return n||`/`}return{re:o,score:r,keys:a,parse:s,stringify:c}}function Re(e,t){let n=0;for(;n<e.length&&n<t.length;){let r=t[n]-e[n];if(r)return r;n++}return e.length<t.length?e.length===1&&e[0]===80?-1:1:e.length>t.length?t.length===1&&t[0]===80?1:-1:0}function ze(e,t){let n=0,r=e.score,i=t.score;for(;n<r.length&&n<i.length;){let e=Re(r[n],i[n]);if(e)return e;n++}if(Math.abs(i.length-r.length)===1){if(Be(r))return 1;if(Be(i))return-1}return i.length-r.length}function Be(e){let t=e[e.length-1];return e.length>0&&t[t.length-1]<0}var Ve={strict:!1,end:!0,sensitive:!1};function He(e,t,n){let r=y(Le(Ne(e.path),n),{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function Ue(e,t){let n=[],r=new Map;t=v(Ve,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=Ge(e);s.aliasOf=r&&r.record;let l=v(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(Ge(y({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=He(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!qe(d)&&o(e.name)),Ze(d)&&c(d),s.children){let e=s.children;for(let t=0;t<e.length;t++)a(e[t],d,r&&r.children[t])}r||=d}return f?()=>{o(f)}:w}function o(e){if(ye(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=Ye(e,n);n.splice(t,0,e),e.record.name&&!qe(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw x(1,{location:e});s=i.record.name,a=y(We(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&We(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name,i.keys.forEach(e=>{e.optional&&!a[e.name]&&delete a[e.name]}));else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw x(1,{location:e,currentLocation:t});s=i.record.name,a=y({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:Je(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function We(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Ge(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ke(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Ke(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function qe(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Je(e){return e.reduce((e,t)=>y(e,t.meta),{})}function Ye(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;ze(e,t[i])<0?r=i:n=i+1}let i=Xe(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function Xe(e){let t=e;for(;t=t.parent;)if(Ze(t)&&ze(e,t)===0)return t}function Ze({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Qe(e){let t=r(h),n=r(m),i=l(()=>{let n=u(e.to);return t.resolve(n)}),a=l(()=>{let{matched:e}=i.value,{length:t}=e,r=e[t-1],a=n.matched;if(!r||!a.length)return-1;let o=a.findIndex(V.bind(null,r));if(o>-1)return o;let s=rt(e[t-2]);return t>1&&rt(r)===s&&a[a.length-1].path!==s?a.findIndex(V.bind(null,e[t-2])):o}),o=l(()=>a.value>-1&&nt(n.params,i.value.params)),s=l(()=>a.value>-1&&a.value===n.matched.length-1&&H(n.params,i.value.params));function c(n={}){if(tt(n)){let n=t[u(e.replace)?`replace`:`push`](u(e.to)).catch(w);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:i,href:l(()=>i.value.href),isActive:o,isExactActive:s,navigate:c}}function $e(e){return e.length===1?e[0]:e}var et=o({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:Qe,setup(e,{slots:t}){let i=s(Qe(e)),{options:a}=r(h),o=l(()=>({[it(e.activeClass,a.linkActiveClass,`router-link-active`)]:i.isActive,[it(e.exactActiveClass,a.linkExactActiveClass,`router-link-exact-active`)]:i.isExactActive}));return()=>{let r=t.default&&$e(t.default(i));return e.custom?r:n(`a`,{"aria-current":i.isExactActive?e.ariaCurrentValue:null,href:i.href,onClick:i.navigate,class:o.value},r)}}});function tt(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function nt(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!_(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function rt(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var it=(e,t,n)=>e??t??n,at=o({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:a}){let o=r(ee),s=l(()=>e.route||o.value),f=r(g,0),m=l(()=>{let e=u(f),{matched:t}=s.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),h=l(()=>s.value.matched[m.value]);i(g,l(()=>m.value+1)),i(p,h),i(ee,s);let _=c();return d(()=>[_.value,h.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!V(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=s.value,i=e.name,o=h.value,c=o&&o.components[i];if(!c)return ot(a.default,{Component:c,route:r});let l=o.props[i],u=n(c,y({},l?l===!0?r.params:typeof l==`function`?l(r):l:null,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[i]=null)},ref:_}));return ot(a.default,{Component:u,route:r})||u}}});function ot(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var st=at;function ct(n){let r=Ue(n.routes,n),i=n.parseQuery||be,o=n.stringifyQuery||xe,s=n.history,c=Q(),l=Q(),d=Q(),f=e(K),p=K;T&&n.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let g=C.bind(null,e=>``+e),v=C.bind(null,ue),S=C.bind(null,I);function E(e,t){let n,i;return ye(e)?(n=r.getRecordMatcher(e),i=t):i=e,r.addRoute(i,n)}function te(e){let t=r.getRecordMatcher(e);t&&r.removeRoute(t)}function ne(){return r.getRoutes().map(e=>e.record)}function re(e){return!!r.getRecordMatcher(e)}function D(e,t){if(t=y({},t||f.value),typeof e==`string`){let n=z(i,e,t.path),a=r.resolve({path:n.path},t),o=s.createHref(n.fullPath);return y(n,a,{params:S(a.params),redirectedFrom:void 0,href:o})}let n;if(e.path!=null)n=y({},e,{path:z(i,e.path,t.path).path});else{let r=y({},e.params);for(let e in r)r[e]??delete r[e];n=y({},e,{params:v(r)}),t.params=v(t.params)}let a=r.resolve(n,t),c=e.hash||``;a.params=g(S(a.params));let l=de(o,y({},e,{hash:ce(c),path:a.path})),u=s.createHref(l);return y({fullPath:l,hash:c,query:o===xe?Se(e.query):e.query||{}},a,{redirectedFrom:void 0,href:u})}function O(e){return typeof e==`string`?z(i,e,f.value.path):y({},e)}function ie(e,t){if(p!==e)return x(8,{from:t,to:e})}function k(e){return A(e)}function ae(e){return k(y(O(e),{replace:!0}))}function oe(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=O(i):{path:i},i.params={}),y({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function A(e,t){let n=p=D(e),r=f.value,i=e.state,a=e.force,s=e.replace===!0,c=oe(n,r);if(c)return A(y(O(c),{state:typeof c==`object`?y({},i,c.state):i,force:a,replace:s}),t||n);let l=n;l.redirectedFrom=t;let u;return!a&&fe(o,r,n)&&(u=x(16,{to:l,from:r}),W(r,r,!0,!1)),(u?Promise.resolve(u):M(l,r)).catch(e=>b(e)?b(e,2)?e:U(e):V(e,l,r)).then(e=>{if(e){if(b(e,2))return A(y({replace:s},O(e.to),{state:typeof e.to==`object`?y({},i,e.to.state):i,force:a}),t||l)}else e=P(l,r,!0,s,i);return N(l,r,e),e})}function se(e,t){let n=ie(e,t);return n?Promise.reject(n):Promise.resolve()}function j(e){let t=J.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function M(e,t){let n,[r,i,a]=we(e,t);n=Ce(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push($(r,e,t))});let o=se.bind(null,e,t);return n.push(o),X(n).then(()=>{n=[];for(let r of c.list())n.push($(r,e,t));return n.push(o),X(n)}).then(()=>{n=Ce(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push($(r,e,t))});return n.push(o),X(n)}).then(()=>{n=[];for(let r of a)if(r.beforeEnter)if(_(r.beforeEnter))for(let i of r.beforeEnter)n.push($(i,e,t));else n.push($(r.beforeEnter,e,t));return n.push(o),X(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=Ce(a,`beforeRouteEnter`,e,t,j),n.push(o),X(n))).then(()=>{n=[];for(let r of l.list())n.push($(r,e,t));return n.push(o),X(n)}).catch(e=>b(e,8)?e:Promise.reject(e))}function N(e,t,n){d.list().forEach(r=>j(()=>r(e,t,n)))}function P(e,t,n,r,i){let a=ie(e,t);if(a)return a;let o=t===K,c=T?history.state:{};n&&(r||o?s.replace(e.fullPath,y({scroll:o&&c&&c.scroll},i)):s.push(e.fullPath,i)),f.value=e,W(e,t,n,o),U()}let F;function le(){F||=s.listen((e,t,n)=>{if(!Y.listening)return;let r=D(e),i=oe(r,Y.currentRoute.value);if(i){A(y(i,{replace:!0,force:!0}),r).catch(w);return}p=r;let a=f.value;T&&ge(me(a.fullPath,n.delta),Z()),M(r,a).catch(e=>b(e,12)?e:b(e,2)?(A(y(O(e.to),{force:!0}),r).then(e=>{b(e,20)&&!n.delta&&n.type===`pop`&&s.go(-1,!1)}).catch(w),Promise.reject()):(n.delta&&s.go(-n.delta,!1),V(e,r,a))).then(e=>{e||=P(r,a,!1),e&&(n.delta&&!b(e,8)?s.go(-n.delta,!1):n.type===`pop`&&b(e,20)&&s.go(-1,!1)),N(r,a,e)}).catch(w)})}let L=Q(),R=Q(),B;function V(e,t,n){U(e);let r=R.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function H(){return B&&f.value!==K?Promise.resolve():new Promise((e,t)=>{L.add([e,t])})}function U(e){return B||(B=!e,le(),L.list().forEach(([t,n])=>e?n(e):t()),L.reset()),e}function W(e,r,i,a){let{scrollBehavior:o}=n;if(!T||!o)return Promise.resolve();let s=!i&&_e(me(e.fullPath,0))||(a||!i)&&history.state&&history.state.scroll||null;return t().then(()=>o(e,r,s)).then(t=>e===f.value&&t&&pe(t)).catch(t=>e===f.value&&V(t,e,r))}let G=e=>s.go(e),q,J=new Set,Y={currentRoute:f,listening:!0,addRoute:E,removeRoute:te,clearRoutes:r.clearRoutes,hasRoute:re,getRoutes:ne,resolve:D,options:n,push:k,replace:ae,go:G,back:()=>G(-1),forward:()=>G(1),beforeEach:c.add,beforeResolve:l.add,afterEach:d.add,onError:R.add,isReady:H,install(e){e.component(`RouterLink`,et),e.component(`RouterView`,st),e.config.globalProperties.$router=Y,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>u(f)}),T&&!q&&f.value===K&&(q=!0,k(s.location).catch(e=>{}));let t={};for(let e in K)Object.defineProperty(t,e,{get:()=>f.value[e],enumerable:!0});e.provide(h,Y),e.provide(m,a(t)),e.provide(ee,f);let n=e.unmount;J.add(e),e.unmount=function(){J.delete(e),J.size<1&&(p=K,F&&F(),F=null,f.value=K,q=!1,B=!1),n()}}};function X(e){return e.reduce((e,t)=>e.then(()=>j(t)),Promise.resolve())}return Y}export{Ae as i,st as n,ct as r,et as t};
@@ -9,14 +9,14 @@
9
9
  />
10
10
  <link rel="icon" type="image/png" href="/assets/fuli-logo-ER1wQ8Kk.png" />
11
11
  <title>复利 · Context Graph</title>
12
- <script type="module" crossorigin src="/assets/index-DRd-2Tii.js"></script>
13
- <link rel="modulepreload" crossorigin href="/assets/i18n-DQH9D35M.js">
14
- <link rel="modulepreload" crossorigin href="/assets/console-B7dWYAoU.js">
15
- <link rel="modulepreload" crossorigin href="/assets/useApi-CROJJdhE-CElDxEZI.js">
16
- <link rel="modulepreload" crossorigin href="/assets/vue-router-F7MnkVlW.js">
12
+ <script type="module" crossorigin src="/assets/index-B-rXoqYP.js"></script>
13
+ <link rel="modulepreload" crossorigin href="/assets/i18n-C7r_00q2.js">
14
+ <link rel="modulepreload" crossorigin href="/assets/console-CYXvhGCR.js">
15
+ <link rel="modulepreload" crossorigin href="/assets/useApi-CROJJdhE-DERnOR_k.js">
16
+ <link rel="modulepreload" crossorigin href="/assets/vue-router-DJ6C6-8v.js">
17
17
  <link rel="modulepreload" crossorigin href="/assets/fuli-logo-Bu9WBuQe.js">
18
18
  <link rel="modulepreload" crossorigin href="/assets/_plugin-vue_export-helper-BDNMzG2s.js">
19
- <link rel="modulepreload" crossorigin href="/assets/avatars-LvVKbDF7.js">
19
+ <link rel="modulepreload" crossorigin href="/assets/avatars-BfZueqlm.js">
20
20
  <link rel="modulepreload" crossorigin href="/assets/paths-CDREouhi.js">
21
21
  <link rel="stylesheet" crossorigin href="/assets/index-Ch1jmkyO.css">
22
22
  </head>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "fuli-graph-provider"
3
- version = "0.7.9"
3
+ version = "0.7.10-beta.0"
4
4
  description = "Graphiti-backed personal and shared project provider for Fuli."
5
5
  requires-python = ">=3.12"
6
6
  dependencies = [
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "fuli-context",
3
- "version": "0.7.9",
3
+ "version": "0.7.10-beta.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "fuli-context",
9
- "version": "0.7.9",
9
+ "version": "0.7.10-beta.0",
10
10
  "license": "Apache-2.0",
11
11
  "dependencies": {
12
12
  "@hono/node-server": "2.0.12",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fuli-context",
3
- "version": "0.7.9",
3
+ "version": "0.7.10-beta.0",
4
4
  "description": "Local-first collaboration relationship graph for AI agents.",
5
5
  "type": "module",
6
6
  "files": [
@@ -1 +0,0 @@
1
- import{A as e,C as t,F as n,H as r,N as i,T as a,V as o,Z as s,_ as c,a as l,at as u,b as d,d as f,g as p,h as m,it as h,j as g,m as _,nt as v,o as y,rt as b,v as x,w as S,x as C,y as ee,z as w}from"./i18n-DQH9D35M.js";import{a as T,r as E,t as D}from"./console-B7dWYAoU.js";import{h as O,m as k}from"./useApi-CROJJdhE-CElDxEZI.js";import{t as A}from"./vue-router-F7MnkVlW.js";import{t as j}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{i as M,n as N,o as te,r as P,s as ne,t as re}from"./avatars-LvVKbDF7.js";import{r as F,t as ie}from"./EmployeeRecruitDialog-DbMVuLAI.js";var I={class:`employee-all-projects`,"aria-labelledby":`employee-all-projects-title`},L={class:`employee-all-projects-header`},R={class:`employee-all-projects-heading`},z={id:`employee-all-projects-title`},ae={class:`employee-all-projects-controls`},B={class:`employee-all-projects-search`},V=[`placeholder`],oe={key:0,class:`employee-all-projects-notice`,role:`status`},se={key:1,class:`employee-all-projects-notice`,role:`status`},H={key:2,class:`employee-all-projects-notice is-error`,role:`alert`},U={key:3,class:`employee-all-projects-empty`},W={key:4,class:`employee-all-projects-empty`},G={key:5,class:`employee-all-projects-empty`},ce={key:6,class:`employee-all-projects-board-shell`},le={key:0,class:`employee-all-projects-drag-instructions`},K={class:`visually-hidden`,"aria-live":`assertive`,"aria-atomic":`true`},ue=[`aria-label`],de=[`aria-label`],fe=[`data-drag-placeholder`,`aria-hidden`],pe=[`disabled`,`aria-label`,`onClick`],me={class:`employee-all-projects-project`},he={key:0,class:`employee-all-projects-summary`},ge={key:1,class:`employee-all-projects-tags`,"aria-hidden":`true`},_e=[`disabled`,`aria-label`,`title`,`onPointerdown`,`onKeydown`],ve={key:1,class:`employee-all-projects-saving`,role:`status`},ye={class:`employee-all-projects-project`},be={key:0,class:`employee-all-projects-summary`},xe=j(a({__name:`EmployeeAllProjectsBoard`,props:{boards:{},projects:{},visibleProjectIds:{},failedProjects:{},movingItemKeys:{},actionError:{},canMoveTasks:{type:Boolean}},emits:[`select-project`,`update:visible-project-ids`,`move-task`,`retry`],setup(t,{emit:a}){let w=t,T=a,E=s(``),D=s(``),O=s(null),k=null,A=0,j=[{value:`planned`,labelKey:`employees.allProjects.status.planned`},{value:`active`,labelKey:`employees.allProjects.status.active`},{value:`blocked`,labelKey:`employees.allProjects.status.blocked`},{value:`review`,labelKey:`employees.allProjects.status.review`},{value:`done`,labelKey:`employees.allProjects.status.done`}],M=c(()=>new Map(w.boards.map(({project:e})=>[e.id,e.name]))),N=c(()=>w.boards.flatMap(({items:e})=>e)),te=c(()=>{let e=E.value.trim().toLocaleLowerCase();return e?N.value.filter(t=>[t.title,t.summary,M.value.get(t.projectId),...t.tags??[]].filter(Boolean).join(` `).toLocaleLowerCase().includes(e)):N.value}),P=c(()=>j.map(e=>({...e,items:te.value.filter(({status:t})=>t===e.value)}))),ne=c(()=>w.boards.filter(({truncated:e})=>e).length),re=c(()=>w.visibleProjectIds.length>0),ie=c(()=>N.value.length>0),xe=c(()=>te.value.length>0);function q(e){return M.value.get(e)??e}function Se(){T(`update:visible-project-ids`,w.projects.map(e=>e.id))}function J(e){return`${e.projectId}:${e.id}`}function Y(e){return w.movingItemKeys?.includes(J(e))??!1}function X(e){let t=P.value.find(t=>t.value===e)?.items??[],n=O.value;if(!n||n.keyboard)return t;let r=t.filter(e=>J(e)!==J(n.item));if(n.targetStatus!==e)return r;let i=[...r];return i.splice(Math.min(n.targetIndex,i.length),0,n.item),i}function Ce(e){return O.value!==null&&J(O.value.item)===J(e)}function Z(e){let t=j.find(t=>t.value===e);return t?l(t.labelKey):e}function we(e,t,n){if(e.button!==0||Y(t))return;let r=e.currentTarget.closest(`.employee-all-projects-task`);if(!r)return;let i=r.getBoundingClientRect();k={item:t,sourceIndex:n,pointerId:e.pointerId,startX:e.clientX,startY:e.clientY,offsetX:e.clientX-i.left,offsetY:e.clientY-i.top,rect:i},document.addEventListener(`pointermove`,Ee),document.addEventListener(`pointerup`,Oe),document.addEventListener(`pointercancel`,ke)}function Te(e,t){O.value={item:t.item,sourceStatus:t.item.status,sourceIndex:t.sourceIndex,targetStatus:t.item.status,targetIndex:t.sourceIndex,left:e.clientX-t.offsetX,top:e.clientY-t.offsetY,width:t.rect.width,height:t.rect.height,offsetX:t.offsetX,offsetY:t.offsetY,phase:`dragging`,duration:0,keyboard:!1},D.value=l(`employees.allProjects.dragLifted`,{task:t.item.title,status:Z(t.item.status)}),document.body.classList.add(`employee-task-is-dragging`)}function Ee(e){let t=k;if(!(!t||e.pointerId!==t.pointerId)){if(!O.value){if(Math.hypot(e.clientX-t.startX,e.clientY-t.startY)<5)return;Te(e,t)}!O.value||O.value.phase!==`dragging`||(e.preventDefault(),O.value.left=e.clientX-O.value.offsetX,O.value.top=e.clientY-O.value.offsetY,De(e.clientX,e.clientY))}}function De(e,t){let n=O.value;if(!n)return;let r=document.elementsFromPoint(e,t).map(e=>e.closest(`.employee-all-projects-list`)).find(Boolean);if(!r)return;let i=r.dataset.status;if(!i||!j.some(e=>e.value===i))return;let a=[...r.querySelectorAll(`.employee-all-projects-task:not(.is-placeholder)`)],o=a.findIndex(e=>t<e.getBoundingClientRect().top+e.getBoundingClientRect().height/2);n.targetStatus=i,n.targetIndex=o<0?a.length:o}function Oe(e){!k||e.pointerId!==k.pointerId||(k=null,Q(),O.value&&Me(!0))}function ke(){k=null,Q(),$()}function Q(){document.removeEventListener(`pointermove`,Ee),document.removeEventListener(`pointerup`,Oe),document.removeEventListener(`pointercancel`,ke)}function Ae(e,t,n){if(Y(e))return;let r=n.closest(`.employee-all-projects-task`);if(!r)return;let i=r.getBoundingClientRect();O.value={item:e,sourceStatus:e.status,sourceIndex:t,targetStatus:e.status,targetIndex:t,left:i.left,top:i.top,width:i.width,height:i.height,offsetX:0,offsetY:0,phase:`dragging`,duration:0,keyboard:!0},D.value=l(`employees.allProjects.dragLifted`,{task:e.title,status:Z(e.status)})}function je(e,t,n){let r=O.value;if(!r){if(e.key!==` `&&e.key!==`Enter`)return;e.preventDefault(),Ae(t,n,e.currentTarget);return}if(!r.keyboard||J(r.item)!==J(t))return;if(e.key===`Escape`){e.preventDefault(),$(),D.value=l(`employees.allProjects.dragCancelled`);return}if(e.key===` `||e.key===`Enter`){e.preventDefault(),Me(!1);return}let i=j.findIndex(e=>e.value===r.targetStatus);if(e.key===`ArrowLeft`||e.key===`ArrowRight`){e.preventDefault();let t=e.key===`ArrowLeft`?-1:1,n=j[Math.max(0,Math.min(j.length-1,i+t))];n&&(r.targetStatus=n.value,r.targetIndex=X(n.value).length)}else if(e.key===`ArrowUp`||e.key===`ArrowDown`)e.preventDefault(),r.targetIndex=Math.max(0,r.targetIndex+(e.key===`ArrowUp`?-1:1));else return;D.value=l(`employees.allProjects.dragMoved`,{status:Z(r.targetStatus)})}async function Me(t){let n=O.value;if(!n)return;if(n.targetStatus===n.sourceStatus){$(),D.value=l(`employees.allProjects.dragCancelled`);return}if(t){await e();let t=[...document.querySelectorAll(`[data-drag-placeholder="true"]`)][0]?.getBoundingClientRect();if(t){let e=Math.hypot(t.left-n.left,t.top-n.top);n.duration=Math.round(Math.min(360,Math.max(180,180+e*.16))),n.phase=`dropping`,n.left=t.left,n.top=t.top,await new Promise(e=>{A=window.setTimeout(e,n.duration)})}}let r=n.item,i=n.targetStatus;D.value=l(`employees.allProjects.dragDropped`,{task:r.title,status:Z(i)}),T(`move-task`,r,i),O.value=null,document.body.classList.remove(`employee-task-is-dragging`)}function $(){A&&window.clearTimeout(A),A=0,O.value=null,document.body.classList.remove(`employee-task-is-dragging`)}return g(()=>{Q(),$()}),(e,a)=>(i(),C(`section`,I,[x(`header`,L,[x(`div`,R,[x(`h2`,z,u(v(l)(`employees.allProjects.title`)),1),x(`p`,null,u(v(l)(`employees.allProjects.hint`,{count:t.boards.length})),1)]),x(`div`,ae,[S(F,{class:`employee-all-projects-filter`,"model-value":t.visibleProjectIds,projects:t.projects,compact:``,label:v(l)(`employees.allProjects.projectFilter`),hint:v(l)(`employees.allProjects.projectFilterHint`),"empty-label":v(l)(`employees.allProjects.noProjectsVisible`),"onUpdate:modelValue":a[0]||=e=>T(`update:visible-project-ids`,e)},null,8,[`model-value`,`projects`,`label`,`hint`,`empty-label`]),x(`label`,B,[x(`span`,null,u(v(l)(`employees.allProjects.search`)),1),r(x(`input`,{"onUpdate:modelValue":a[1]||=e=>E.value=e,type:`search`,placeholder:v(l)(`employees.allProjects.searchPlaceholder`)},null,8,V),[[f,E.value]])])])]),t.failedProjects?(i(),C(`div`,oe,[x(`span`,null,u(v(l)(`employees.allProjects.partial`,{loaded:t.boards.length,total:t.visibleProjectIds.length,failed:t.failedProjects})),1),x(`button`,{type:`button`,onClick:a[2]||=e=>T(`retry`)},u(v(l)(`employees.retry`)),1)])):d(``,!0),ne.value?(i(),C(`div`,se,u(v(l)(`employees.allProjects.truncated`,{count:ne.value})),1)):d(``,!0),t.actionError?(i(),C(`div`,H,u(t.actionError),1)):d(``,!0),re.value?ie.value?xe.value?(i(),C(`div`,ce,[t.canMoveTasks?(i(),C(`p`,le,u(v(l)(`employees.allProjects.dragHint`)),1)):d(``,!0),x(`p`,K,u(D.value),1),x(`div`,{class:b([`employee-all-projects-board`,{"is-dragging":O.value}]),"aria-label":v(l)(`employees.allProjects.boardLabel`)},[(i(!0),C(m,null,n(P.value,e=>(i(),C(`section`,{key:e.value,class:b([`employee-all-projects-column`,{"is-drop-target":O.value?.targetStatus===e.value}])},[x(`header`,null,[x(`h3`,null,u(v(l)(e.labelKey)),1),x(`span`,{"aria-label":v(l)(`employees.allProjects.taskCount`,{count:X(e.value).length})},u(X(e.value).length),9,de)]),S(y,{name:`employee-task-shift`,tag:`div`,class:`employee-all-projects-list`,"data-status":e.value},{default:o(()=>[(i(!0),C(m,null,n(X(e.value),(e,r)=>(i(),C(`article`,{key:J(e),class:b([`employee-all-projects-task`,{"is-placeholder":Ce(e),"is-saving":Y(e)}]),"data-drag-placeholder":Ce(e)?`true`:void 0,"aria-hidden":Ce(e)?`true`:void 0},[x(`button`,{type:`button`,class:`employee-all-projects-task-open`,disabled:Y(e),"aria-label":v(l)(`employees.allProjects.openTask`,{project:q(e.projectId),task:e.title}),onClick:t=>T(`select-project`,e.projectId)},[x(`span`,me,u(q(e.projectId)),1),x(`strong`,null,u(e.title),1),e.summary&&e.summary!==e.title?(i(),C(`span`,he,u(e.summary),1)):d(``,!0),e.tags?.length?(i(),C(`span`,ge,[(i(!0),C(m,null,n(e.tags.slice(0,3),e=>(i(),C(`span`,{key:e},u(e),1))),128))])):d(``,!0)],8,pe),t.canMoveTasks?(i(),C(`button`,{key:0,type:`button`,class:`employee-all-projects-drag-handle`,disabled:Y(e),"aria-label":v(l)(`employees.allProjects.dragTask`,{task:e.title}),title:v(l)(`employees.allProjects.dragTask`,{task:e.title}),onPointerdown:_(t=>we(t,e,r),[`stop`,`prevent`]),onKeydown:t=>je(t,e,r)},[...a[3]||=[x(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`currentColor`,"aria-hidden":`true`},[x(`circle`,{cx:`5`,cy:`4`,r:`1`}),x(`circle`,{cx:`11`,cy:`4`,r:`1`}),x(`circle`,{cx:`5`,cy:`8`,r:`1`}),x(`circle`,{cx:`11`,cy:`8`,r:`1`}),x(`circle`,{cx:`5`,cy:`12`,r:`1`}),x(`circle`,{cx:`11`,cy:`12`,r:`1`})],-1)]],40,_e)):d(``,!0),Y(e)?(i(),C(`span`,ve,u(v(l)(`employees.allProjects.saving`)),1)):d(``,!0)],10,fe))),128)),X(e.value).length?d(``,!0):(i(),C(`p`,{key:`${e.value}-empty`,class:`employee-all-projects-column-empty`},u(v(l)(`employees.allProjects.columnEmpty`)),1))]),_:2},1032,[`data-status`])],2))),128))],10,ue)])):(i(),C(`div`,G,[x(`h3`,null,u(v(l)(`employees.allProjects.noMatch`)),1),x(`p`,null,u(v(l)(`employees.allProjects.noMatchHint`)),1)])):(i(),C(`div`,W,[x(`h3`,null,u(v(l)(`employees.allProjects.empty`)),1),x(`p`,null,u(v(l)(`employees.allProjects.emptyHint`)),1)])):(i(),C(`div`,U,[x(`h3`,null,u(v(l)(`employees.allProjects.noProjectsVisible`)),1),x(`p`,null,u(v(l)(`employees.allProjects.noProjectsVisibleHint`)),1),x(`button`,{type:`button`,onClick:Se},u(v(l)(`employees.allProjects.showAllProjects`)),1)])),(i(),ee(p,{to:`body`},[O.value&&!O.value.keyboard?(i(),C(`article`,{key:0,class:b([`employee-all-projects-task employee-all-projects-drag-preview`,{"is-dropping":O.value.phase===`dropping`}]),style:h({width:`${O.value.width}px`,height:`${O.value.height}px`,"--employee-drag-x":`${O.value.left}px`,"--employee-drag-y":`${O.value.top}px`,"--employee-drop-duration":`${O.value.duration}ms`}),"aria-hidden":`true`},[x(`span`,ye,u(q(O.value.item.projectId)),1),x(`strong`,null,u(O.value.item.title),1),O.value.item.summary&&O.value.item.summary!==O.value.item.title?(i(),C(`span`,be,u(O.value.item.summary),1)):d(``,!0)],6)):d(``,!0)]))]))}}),[[`__scopeId`,`data-v-de7ab2d9`]]),q=[`aria-label`],Se={class:`employee-workbench-toolbar`},J={class:`employee-workbench-identity`},Y={class:`employee-workbench-mark`,"aria-hidden":`true`},X=[`src`],Ce={class:`employee-workbench-actions`},Z=[`disabled`],we={key:0,class:`employee-workbench-state`,role:`status`},Te={key:1,class:`employee-workbench-state`,role:`alert`},Ee={key:2,class:`employee-workbench-state`},De={key:3,class:`employee-workbench-state`},Oe={key:5,class:`employee-workbench-state`},ke=[`src`,`title`],Q=`__all__`,Ae=j(a({__name:`EmployeeWorkbenchPage`,setup(e){let n=k(),r=O(),a=D(),f=s(``),p=s(null),h=s([]),g=s([]),_=s([]),y=s([]),b=s(``),j=s(``),F=s(!1),I=s(!1),L=c(()=>a.activePersonalSpace?.id??``),R=c(()=>String(n.params.templateId??``)),z=c(()=>te.value.find(e=>e.id===R.value)),ae=c(()=>N.value||j.value),B=c(()=>z.value?.managedProjects===void 0?(z.value?.assignments??[]).filter(e=>e.status===`active`).map(e=>({value:e.personalProjectId,label:a.state?.personalProjects?.find(t=>t.project_id===e.personalProjectId)?.profile.name??e.personalProjectId})):z.value.managedProjects.map(e=>({value:e.id,label:e.name}))),V=c({get:()=>{let e=new Set(_.value);return B.value.filter(t=>!e.has(t.value)).map(e=>e.value)},set:e=>{let t=new Set(B.value.map(e=>e.value)),n=new Set(e);_.value=[..._.value.filter(e=>!t.has(e)),...B.value.filter(e=>!n.has(e.value)).map(e=>e.value)]}}),oe=c(()=>{let e=new Set(V.value);return h.value.filter(t=>e.has(t.project.id))}),se=c(()=>{let e=new Set(V.value);return g.value.filter(t=>e.has(t)).length}),H=c(()=>z.value?.runtimeStatus===`ready`&&z.value.permissions.includes(`board.read`)&&B.value.length>0),U=c(()=>H.value?[{value:Q,label:l(`employees.allProjects.option`),meta:l(`employees.allProjects.optionMeta`,{count:B.value.length})},...B.value]:B.value),W=0;w(L,e=>{ne(e)},{immediate:!0}),w([R,L],()=>{_.value=[]}),w([U,()=>n.query.project,R],()=>{let e=typeof n.query.project==`string`?n.query.project:``,t=U.value;f.value=e||(t.some(e=>e.value===f.value)?f.value:t[0]?.value??``),!e&&f.value&&r.replace({query:{...n.query,project:f.value}})},{immediate:!0}),w([R,f,L,H],()=>{G()},{immediate:!0}),w(P,e=>{!e&&f.value===Q&&G()});async function G(){let e=++W;if(p.value=null,h.value=[],g.value=[],b.value=``,j.value=``,!f.value||!L.value){F.value=!1;return}let t=R.value,n=f.value;if(n===Q&&(P.value||!z.value)){F.value=P.value;return}F.value=!0;try{if(n===Q&&H.value){let n=await Promise.all(B.value.map(async e=>{try{let n=await T(`/api/employee-templates/${encodeURIComponent(t)}/call`,{personalSpaceId:L.value,personalProjectId:e.value,tool:`read_board`,arguments:{limit:100}}),r=Array.isArray(n.items)?n.items.filter(de):[];return{ok:!0,board:{...n,project:{id:e.value,name:e.label},items:r}}}catch(t){return{ok:!1,cause:t,projectId:e.value}}}));if(e!==W)return;h.value=n.filter(e=>e.ok).map(e=>e.board),g.value=n.flatMap(e=>e.ok?[]:[e.projectId]),!h.value.length&&g.value.length&&(j.value=M(n.find(e=>!e.ok)?.cause));return}let r=await E(`/api/employee-templates/${encodeURIComponent(t)}/workspace?${new URLSearchParams({personalSpaceId:L.value,personalProjectId:n})}`),i=`/employee-workspaces/${encodeURIComponent(t)}/${encodeURIComponent(n)}/`;if(r.workbenchUrl!==i)throw Error(l(`employees.loadError`));e===W&&(p.value=r)}catch(t){e===W&&(j.value=M(t))}finally{e===W&&(F.value=!1)}}function ce(e){r.replace({query:{...n.query,project:e}})}function le(e){return`${e.projectId}:${e.id}`}function K(e,t,n){h.value=h.value.map(r=>r.project.id===e?{...r,items:r.items.map(e=>e.id===t?n:e)}:r)}async function ue(e,t){if(e.status===t)return;let n=le(e),r={...e,status:t};b.value=``,y.value=[...y.value,n],K(e.projectId,e.id,r);try{let n=await T(`/api/employee-templates/${encodeURIComponent(R.value)}/call`,{personalSpaceId:L.value,personalProjectId:e.projectId,tool:`move_task`,arguments:{workItemId:e.id,status:t,...e.updatedAt?{expectedUpdatedAt:e.updatedAt}:{}}}),i=n.updatedWorkItem??n.updatedWorkItems?.find(t=>t.id===e.id);K(e.projectId,e.id,i&&de(i)?i:r)}catch(t){K(e.projectId,e.id,e),b.value=l(`employees.allProjects.moveFailed`,{error:M(t)})}finally{y.value=y.value.filter(e=>e!==n)}}function de(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.id==`string`&&typeof t.projectId==`string`&&typeof t.title==`string`&&[`planned`,`active`,`blocked`,`review`,`done`].includes(t.status??``)}async function fe(){await ne(L.value),N.value||await G()}async function pe(){let e=f.value===Q&&H.value?Q:B.value.find(e=>e.value===f.value)?.value??U.value[0]?.value;await r.replace({query:e?{project:e}:{}}),await G()}return(e,n)=>(i(),C(`section`,{class:`employee-workbench-view`,"aria-label":z.value?.name??v(l)(`employees.workbench`)},[x(`header`,Se,[x(`div`,J,[x(`span`,Y,[v(re)(R.value)?(i(),C(`img`,{key:0,src:v(re)(R.value),alt:``},null,8,X)):(i(),C(m,{key:1},[t(u(z.value?.name.slice(0,1)??`A`),1)],64))]),x(`h1`,null,[t(u(z.value?.name??v(l)(`employees.workbench`))+` `,1),x(`span`,null,u(z.value?.role),1)])]),x(`div`,Ce,[f.value&&f.value!==Q&&H.value?(i(),C(`button`,{key:0,class:`employee-back-to-all`,type:`button`,onClick:n[0]||=e=>ce(Q)},u(v(l)(`employees.allProjects.back`)),1)):d(``,!0),z.value?(i(),C(`button`,{key:1,class:`employee-manage-projects`,type:`button`,disabled:!L.value,onClick:n[1]||=e=>I.value=!0},[n[5]||=x(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`,"stroke-linecap":`round`,"aria-hidden":`true`},[x(`path`,{d:`M4 7h9m4 0h3M4 17h3m4 0h9`}),x(`circle`,{cx:`15`,cy:`7`,r:`2`}),x(`circle`,{cx:`9`,cy:`17`,r:`2`})],-1),t(` `+u(v(l)(`employees.manageProjects`)),1)],8,Z)):d(``,!0)])]),S(ie,{open:I.value,"personal-space-id":L.value,projects:v(a).state?.personalProjects??[],"template-id":R.value,onClose:n[2]||=e=>I.value=!1,onRecruited:pe},null,8,[`open`,`personal-space-id`,`projects`,`template-id`]),F.value||!z.value&&v(P)?(i(),C(`div`,we,u(v(l)(`employees.loadingWorkbench`)),1)):ae.value?(i(),C(`div`,Te,[x(`p`,null,u(ae.value),1),x(`button`,{class:`quiet-button`,type:`button`,onClick:fe},u(v(l)(`employees.retry`)),1)])):z.value?f.value?f.value===Q&&H.value?(i(),ee(xe,{key:4,"visible-project-ids":V.value,"onUpdate:visibleProjectIds":n[4]||=e=>V.value=e,boards:oe.value,projects:B.value.map(e=>({id:e.value,name:e.label})),"failed-projects":se.value,"can-move-tasks":z.value.permissions.includes(`board.write`),"moving-item-keys":y.value,"action-error":b.value,onMoveTask:ue,onSelectProject:ce,onRetry:G},null,8,[`visible-project-ids`,`boards`,`projects`,`failed-projects`,`can-move-tasks`,`moving-item-keys`,`action-error`])):p.value&&p.value.runtimeStatus!==`ready`?(i(),C(`div`,Oe,[x(`p`,null,u(v(l)(`employees.installRequired`)),1),x(`small`,null,u(v(l)(`employees.installHelp`)),1)])):p.value?(i(),C(`iframe`,{key:p.value.workbenchUrl,src:p.value.workbenchUrl,title:`${p.value.name} · ${p.value.project.name}`,class:`employee-workbench-frame`},null,8,ke)):d(``,!0):(i(),C(`div`,De,[x(`h2`,null,u(v(l)(`employees.emptyWorkbench`)),1),x(`p`,null,u(v(l)(`employees.manageHint`)),1),x(`button`,{class:`quiet-button`,type:`button`,onClick:n[3]||=e=>I.value=!0},u(v(l)(`employees.manageProjects`)),1)])):(i(),C(`div`,Ee,[x(`p`,null,u(v(l)(`employees.unavailable`)),1),S(v(A),{to:`/project-agents`},{default:o(()=>[t(u(v(l)(`employees.backToAgents`)),1)]),_:1})]))],8,q))}}),[[`__scopeId`,`data-v-7a83ed3a`]]);export{Ae as default};
@@ -1 +0,0 @@
1
- import{N as e,T as t,y as n}from"./i18n-DQH9D35M.js";import{t as r}from"./KnowledgeWorkspace-DI8YqTVI.js";var i=t({__name:`KnowledgePage`,setup(t){return(t,i)=>(e(),n(r))}});export{i as default};
@@ -1 +0,0 @@
1
- import{N as e,T as t,y as n}from"./i18n-DQH9D35M.js";import{t as r}from"./KnowledgeWorkspace-DI8YqTVI.js";var i=t({__name:`PersonalProjectsPage`,setup(t){return(t,i)=>(e(),n(r,{"personal-projects-only":``}))}});export{i as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/OverviewPage-HwoSW-5z.js","assets/i18n-DQH9D35M.js","assets/console-B7dWYAoU.js","assets/vue-router-F7MnkVlW.js","assets/useApi-CROJJdhE-CElDxEZI.js","assets/paths-CDREouhi.js","assets/PersonalProfilePage-DCoG52SW.js","assets/_plugin-vue_export-helper-BDNMzG2s.js","assets/SearchableSelect-CFZNdtlY.js","assets/KnowledgeEditDialog-DADXj_BT.js","assets/identity-JjZG6aS5.js","assets/model-zL97NJ-U.js","assets/KnowledgeEditDialog-iv-dgUeD.css","assets/KnowledgeInspector-Xs4VCUg8.js","assets/conversation-launcher-settings-D1xhW1S5.js","assets/KnowledgeInspector--1NujtXW.css","assets/PersonalProfilePage-B7T09bow.css","assets/WritingTastePage-DztRj6MK.js","assets/WritingTastePage-DSgvTH6x.css","assets/PersonalProjectsPage-CNb9mlbp.js","assets/KnowledgeWorkspace-DI8YqTVI.js","assets/KnowledgeOrganizerPage-B_Ct4bB2.js","assets/KnowledgeOrganizerPage-Cx1w1jb2.css","assets/ProjectAgentsPage-zQ9BZW9v.js","assets/avatars-LvVKbDF7.js","assets/EmployeeRecruitDialog-DbMVuLAI.js","assets/EmployeeRecruitDialog-CnA7rOnB.css","assets/ProjectAgentsPage-C3vW6wmk.css","assets/EmployeeWorkbenchPage-DtXSJOpq.js","assets/EmployeeWorkbenchPage-BpkqpEs7.css","assets/PublicProjectsPage-BuLqkZ8g.js","assets/KnowledgePage-RG9Ttnrp.js","assets/ReviewPage-8A7N5pJs.js","assets/ConnectionsPage-BMpkYeSE.js","assets/ConnectionsPage-CBHAdZXT.css","assets/SettingsPage-4ah1u906.js","assets/SettingsPage-CwZp2ka4.css","assets/AboutPage-Bp-Xz6yo.js","assets/fuli-logo-Bu9WBuQe.js","assets/AboutPage-DXh7Fwxt.css"])))=>i.map(i=>d[i]);
2
- import{$ as e,A as t,B as n,C as r,F as i,L as a,M as o,N as s,T as c,V as l,Z as u,_ as d,a as f,at as p,b as m,h,i as g,j as _,m as v,n as y,nt as b,p as x,r as S,rt as C,s as w,t as T,v as E,w as D,x as O,y as k,z as A}from"./i18n-DQH9D35M.js";import{r as j,s as M,t as N}from"./console-B7dWYAoU.js";import{m as P}from"./useApi-CROJJdhE-CElDxEZI.js";import{i as F,n as ee,r as I,t as L}from"./vue-router-F7MnkVlW.js";import{t as R}from"./fuli-logo-Bu9WBuQe.js";import{t as z}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{o as B,s as V,t as H}from"./avatars-LvVKbDF7.js";import{n as te,t as ne}from"./paths-CDREouhi.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var U={name:`fuli-context`,version:`0.7.9`,description:`Local-first collaboration relationship graph for AI agents.`,type:`module`,files:[`README.zh-CN.md`,`npm-shrinkwrap.json`,`src/`,`dist/web/`,`docs/external-knowledge-architecture.md`,`docs/public-personal-architecture.md`,`docs/project-agent-memory.md`,`docs/employee-agents.md`,`examples/external-knowledge/markdown-folder.mjs`,`graph-provider/Dockerfile`,`graph-provider/pyproject.toml`,`graph-provider/fuli_graph/*.py`,`graph-provider/fuli_graph/**/*.py`,`skills/`,`compose.graphiti.yml`],bin:{fl:`src/cli.js`,fuli:`src/cli.js`},keywords:[`ai-agent`,`mcp`,`context`,`knowledge-graph`,`local-first`,`codex`,`claude-code`],scripts:{mcp:`node src/mcp-server.js`,dev:`run-p dev:server dev:web`,"dev:server":`node src/server.js`,"dev:web":`vite`,build:`run-s typecheck:web build:web`,"build:web":`vite build`,"typecheck:web":`vue-tsc --noEmit -p tsconfig.app.json`,"test:node":`node --test`,"test:web":`vitest run --config vitest.config.ts`,"test:package":`node scripts/package-smoke.js`,"test:knowledge:live":`node acceptance/knowledge-live.js`,"test:external-knowledge:live":`node scripts/validate-external-knowledge-live.js`,start:`node src/server.js`,"graph:setup":`node src/graphiti/setup.js`,"graph:up":`docker compose -f compose.graphiti.yml up -d --build`,"graph:down":`docker compose -f compose.graphiti.yml down`,"test:structure":`node --test test/source-structure.test.js`,pretest:`npm run build:web`,test:`run-s typecheck:web test:node test:web`,prepack:`npm run build`,prepublishOnly:`npm test`},engines:{node:`>=24.12`},repository:{type:`git`,url:`git+https://github.com/JevonsCode/fuli.git`},homepage:`https://github.com/JevonsCode/fuli#readme`,bugs:{url:`https://github.com/JevonsCode/fuli/issues`},publishConfig:{access:`public`},license:`Apache-2.0`,dependencies:{"@hono/node-server":`2.0.12`,"@modelcontextprotocol/sdk":`^1.29.0`,zod:`^4.4.3`},devDependencies:{"@types/d3":`^7.4.3`,"@types/node":`^24.13.3`,"@vitejs/plugin-vue":`^6.0.8`,"@vue/test-utils":`^2.4.11`,"brace-expansion":`5.0.9`,d3:`^7.9.0`,gsap:`^3.15.0`,jsdom:`^29.1.1`,linkedom:`^0.18.12`,"npm-run-all2":`^9.0.2`,pinia:`^4.0.2`,typescript:`~6.0.0`,vite:`^8.1.5`,vitest:`^4.1.10`,vue:`^3.5.40`,"vue-i18n":`^11.4.8`,"vue-router":`^5.2.0`,"vue-tsc":`^3.3.8`},overrides:{"@modelcontextprotocol/sdk":{"@hono/node-server":`2.0.12`},"brace-expansion":`$brace-expansion`,"fast-uri":`3.1.7`,qs:`6.16.0`}}.version,W=[`aria-label`],re={class:`brand-mark-wrap`},ie=[`src`],ae={class:`brand-copy`},oe={class:`brand-title-row`},se={class:`brand-name`},ce=[`aria-label`,`aria-expanded`],G={class:`brand-version`},le={key:1,class:`brand-version`},ue={class:`brand-title-row`},de={class:`brand-name`},fe={class:`brand-version`},pe=[`aria-label`],me=[`href`],he=z(c({__name:`BrandEasterEgg`,setup(e){let n=u(null),r=u(null),i=u(0),a=u(!1),c=u(!1),l=u(!1),h=u(null),g=d(()=>h.value?.status===`ready`&&h.value.updateAvailable&&!!h.value.latestVersion),y=d(()=>h.value?.latestVersion??``),x=d(()=>h.value?.packageUrl??`https://www.npmjs.com/package/fuli-context`),S=new AbortController,w=!1;function T(){i.value+=1,a.value=!0}function D(){a.value=!1}function k(){g.value&&(l.value=!l.value)}function A(e){w=!1,c.value=!1,l.value&&!n.value?.contains(e.target)&&(l.value=!1)}function M(e){e.key===`Tab`&&(w=!0),e.key===`Escape`&&l.value&&(e.preventDefault(),l.value=!1,t(()=>r.value?.focus()))}function N(){c.value=w}function P(){c.value=!1}return o(()=>{window.addEventListener(`pointerdown`,A,!0),window.addEventListener(`keydown`,M,!0),j(`/api/system/version`,{signal:S.signal}).then(e=>{h.value=e}).catch(()=>{})}),_(()=>{S.abort(),window.removeEventListener(`pointerdown`,A,!0),window.removeEventListener(`keydown`,M,!0)}),(e,t)=>(s(),O(`div`,{ref_key:`root`,ref:n,class:C([`brand-block`,{"is-sparkling":a.value,"is-keyboard-focused":c.value}])},[E(`button`,{class:`brand-effect-button`,type:`button`,"aria-label":b(f)(`console.brandEffect.aria`),onClick:T,onFocus:N,onBlur:P},[E(`span`,re,[E(`img`,{class:`brand-mark`,src:b(R),alt:``,"aria-hidden":`true`},null,8,ie),a.value?(s(),O(`span`,{key:`orbit-${i.value}`,class:`brand-orbit`,"aria-hidden":`true`})):m(``,!0)])],40,W),E(`span`,ae,[E(`span`,oe,[E(`span`,se,p(b(f)(`common.brand`)),1),g.value?(s(),O(`button`,{key:0,ref_key:`versionButton`,ref:r,class:`brand-version-button`,type:`button`,"aria-label":b(f)(`console.update.aria`,{version:y.value}),"aria-expanded":l.value,"aria-controls":`brand-update-details`,onClick:k},[E(`span`,G,`v`+p(b(U)),1),t[0]||=E(`span`,{class:`brand-update-dot`,"aria-hidden":`true`},null,-1)],8,ce)):(s(),O(`span`,le,`v`+p(b(U)),1))]),t[1]||=E(`span`,{class:`brand-subtitle`},`Context Graph`,-1),a.value?(s(),O(`span`,{key:`copy-reflection-${i.value}`,class:`brand-copy-reflection`,"aria-hidden":`true`,onAnimationend:v(D,[`self`])},[E(`span`,ue,[E(`span`,de,p(b(f)(`common.brand`)),1),E(`span`,fe,`v`+p(b(U)),1)])],32)):m(``,!0)]),l.value?(s(),O(`div`,{key:0,id:`brand-update-details`,class:`brand-update-popover`,role:`dialog`,"aria-label":b(f)(`console.update.title`,{version:y.value})},[E(`strong`,null,p(b(f)(`console.update.title`,{version:y.value})),1),E(`p`,null,p(b(f)(`console.update.copy`)),1),t[2]||=E(`code`,null,`fuli update --yes`,-1),E(`a`,{href:x.value,target:`_blank`,rel:`noopener noreferrer`},p(b(f)(`console.update.npmLink`)),9,me)],8,pe)):m(``,!0)],2))}}),[[`__scopeId`,`data-v-3ccab825`]]),ge=[`aria-label`],_e=[`lang`,`aria-label`,`aria-pressed`,`onClick`],ve=c({__name:`LocaleSwitcher`,setup(e){let t=d(()=>y()),n={"zh-CN":`中`,"en-US":`EN`};function r(e){e!==t.value&&g(e)}return(e,a)=>(s(),O(`div`,{class:`locale-switcher`,role:`group`,"aria-label":b(f)(`common.language.label`)},[(s(!0),O(h,null,i(b(T),e=>(s(),O(`button`,{key:e,type:`button`,lang:e,"aria-label":b(f)(e===`zh-CN`?`common.language.chinese`:`common.language.english`),"aria-pressed":t.value===e,onClick:t=>r(e)},p(n[e]),9,_e))),128))],8,ge))}}),K=e(null);function ye(e){let t=e.onError((t,n)=>{let r=e.resolve(n).href;!r.startsWith(`/`)||r.startsWith(`//`)||(K.value={href:r,resourceFailure:/dynamically imported module|module script|loading chunk|preload css|importing a module/i.test(String(t))})}),n=e.afterEach((e,t,n)=>{n||(K.value=null)});return()=>{t(),n()}}var be={key:0,class:`navigation-recovery`,role:`alert`},xe=[`href`],Se=z(c({__name:`NavigationRecovery`,setup(e){return(e,t)=>b(K)?(s(),O(`div`,be,[E(`div`,null,[E(`strong`,null,p(b(f)(`routes.loadFailure.title`)),1),E(`p`,null,p(b(f)(b(K).resourceFailure?`routes.loadFailure.resources`:`routes.loadFailure.message`)),1)]),E(`a`,{href:b(K).href,class:`quiet-button`},p(b(f)(`routes.loadFailure.reload`)),9,xe),E(`button`,{type:`button`,class:`navigation-recovery-dismiss`,onClick:t[0]||=e=>K.value=null},p(b(f)(`routes.loadFailure.dismiss`)),1)])):m(``,!0)}}),[[`__scopeId`,`data-v-83dee1c5`]]),Ce={class:`nav-section-label`},we={class:`employee-nav-mark`,"aria-hidden":`true`},Te=[`src`],Ee={class:`nav-copy`},De=z(c({__name:`EmployeeNavigation`,props:{personalSpaceId:{}},setup(e){let t=e;A(()=>t.personalSpaceId,e=>{V(e===`current`?``:e)},{immediate:!0});let n=d(()=>B.value.filter(e=>e.agentId&&e.agentStatus===`active`&&e.runtime));return(e,t)=>n.value.length?(s(),O(h,{key:0},[E(`p`,Ce,p(b(f)(`employees.directory`)),1),(s(!0),O(h,null,i(n.value,e=>(s(),k(b(L),{key:e.id,to:`/employees/${encodeURIComponent(e.id)}`,class:`space-nav-button employee-nav`,"active-class":`is-active`},{default:l(()=>[E(`span`,we,[b(H)(e.id)?(s(),O(`img`,{key:0,src:b(H)(e.id),alt:``},null,8,Te)):(s(),O(h,{key:1},[r(p(e.name.slice(0,1)),1)],64))]),E(`span`,Ee,[E(`strong`,null,p(e.name),1),E(`small`,null,p(e.role),1)])]),_:2},1032,[`to`]))),128))],64)):m(``,!0)}}),[[`__scopeId`,`data-v-9b74c30e`]]),Oe=[`routes.`,`common.`];function q(e,t=``){let n=typeof e==`string`&&e?e:t;return Oe.some(e=>n.startsWith(e))?f(n):n}function J(e){if(typeof document>`u`)return;let t=q(e,`routes.overview.title`);document.title=`${t} · ${f(`common.brand`)}`}var ke={class:`app-shell`},Ae=[`onKeydown`],je=[`aria-label`],Me={class:`nav-section-label`},Ne={class:`nav-label`},Pe={class:`nav-section-label nav-space-label`},Fe={class:`nav-copy`},Ie={class:`nav-copy`},Le={class:`nav-copy`},Re={class:`nav-copy`},ze={class:`nav-section-label nav-public-label`},Be={class:`nav-copy`},Ve={class:`nav-section-label nav-tool-label`},He={class:`nav-label`},Ue={class:`nav-label`},We={class:`nav-label`},Ge={class:`nav-section-label nav-about-label`},Ke={class:`nav-label`},qe={class:`nav-label`},Je={class:`sidebar-foot`},Ye=[`aria-label`],Xe={class:`runtime-status`},Ze={class:`runtime-status`},Qe={class:`workspace`},Y=[`aria-expanded`],$e={key:0,class:`workbench-host-label`},et={key:1,class:`topbar-heading`},tt={key:0,class:`eyebrow`},nt={key:1,class:`topbar-description`},rt={key:2,class:`topbar-actions`},it={key:0,class:`mode-chip`},at={key:1,class:`settings-save-button`,form:`settings-form`,type:`submit`},ot=z(c({__name:`ConsoleLayout`,setup(e){let i=N(),c=P(),g=u(!1),_=u(null),y=u(null),S=d(()=>i.activePersonalSpace?.id??`current`),w=d(()=>te(S.value,`graph`)),T=d(()=>ne(`personal`,S.value,`directory`)),j=d(()=>q(c.meta.title,`routes.overview.title`)),M=d(()=>String(c.meta.eyebrow??`LOCAL + FEDERATED`)),F=d(()=>q(c.meta.description)),I=d(()=>c.meta.dedicatedWorkspace===!0),R=d(()=>i.publicRuntimeStatus===`ready`),z=d(()=>i.publicRuntimeStatus===`ready`?f(`console.services.publicReady`):i.publicRuntimeStatus===`error`?f(`console.services.publicError`):f(`console.services.publicOffline`)),B=d(()=>{if(i.publicRuntimeStatus===`ready`){let e=i.state?.capabilities;return e?.browsePublicProjects&&e?.subscribeProject&&!e?.publishProject&&!e?.submitKnowledge&&!e?.reviewProposals?f(`console.services.publicBrowseSubscribe`):f(`console.services.publicAvailable`)}return i.publicRuntimeStatus===`error`?f(`console.services.localUnaffected`):f(`console.services.localOnly`)}),V=d(()=>i.state?.capabilities?.browsePublicProjects!==!1),H=d(()=>{let e=i.state?.capabilities;return e?.submitKnowledge!==!1||e?.reviewProposals===!0});o(()=>{i.runtimeStatus===`idle`&&i.refresh()}),n(()=>{J(c.meta.title)}),A(()=>c.fullPath,()=>{g.value=!1});async function U(){g.value=!0,await t(),y.value?.focus({preventScroll:!0})}async function W(){g.value=!1,await t(),_.value?.focus({preventScroll:!0})}return(e,t)=>(s(),O(`div`,ke,[E(`aside`,{id:`console-primary-sidebar`,class:C([`sidebar`,{"is-mobile-open":g.value}]),onKeydown:x(v(W,[`stop`]),[`esc`])},[E(`button`,{ref_key:`mobileNavCloseRef`,ref:y,class:`mobile-nav-close quiet-button`,type:`button`,onClick:W},p(b(f)(`console.navigation.closeMenu`)),513),D(he),E(`nav`,{class:`primary-nav`,"aria-label":b(f)(`console.navigation.aria`)},[E(`p`,Me,p(b(f)(`console.navigation.workspace`)),1),D(b(L),{to:`/`,"exact-active-class":`is-active`},{default:l(()=>[t[2]||=E(`span`,{class:`nav-icon nav-icon-overview`,"aria-hidden":`true`},null,-1),E(`span`,Ne,p(b(f)(`console.navigation.overview`)),1)]),_:1}),E(`p`,Pe,p(b(f)(`console.navigation.personalSpace`)),1),D(b(L),{class:`space-nav-button personal-profile-button`,to:`/preferences`,"active-class":`is-active`},{default:l(()=>[t[3]||=E(`span`,{class:`nav-icon nav-icon-personal-profile`,"aria-hidden":`true`},null,-1),E(`span`,Fe,[E(`strong`,null,p(b(f)(`console.navigation.preferences`)),1),E(`small`,null,p(b(f)(`console.navigation.preferencesMeta`)),1)])]),_:1}),D(b(L),{class:`space-nav-button knowledge-organizer-button`,to:`/organize`,"active-class":`is-active`},{default:l(()=>[t[4]||=E(`span`,{class:`nav-icon nav-icon-knowledge-organizer`,"aria-hidden":`true`},null,-1),E(`span`,Ie,[E(`strong`,null,p(b(f)(`console.navigation.organizer`)),1),E(`small`,null,p(b(f)(`console.navigation.organizerMeta`)),1)])]),_:1}),D(b(L),{class:`space-nav-button personal-space-button`,to:w.value,"active-class":`is-active`},{default:l(()=>[t[5]||=E(`span`,{class:`nav-icon nav-icon-personal-project`,"aria-hidden":`true`},null,-1),E(`span`,Le,[E(`strong`,null,p(b(f)(`console.navigation.personalProjects`)),1),E(`small`,null,p(b(f)(`console.navigation.personalProjectsMeta`)),1)])]),_:1},8,[`to`]),D(b(L),{class:`space-nav-button project-agents-button`,to:`/project-agents`,"active-class":`is-active`},{default:l(()=>[t[6]||=E(`span`,{class:`nav-icon nav-icon-project-agent`,"aria-hidden":`true`},null,-1),E(`span`,Re,[E(`strong`,null,p(b(f)(`console.navigation.projectAgents`)),1),E(`small`,null,p(b(f)(`console.navigation.projectAgentsMeta`)),1)])]),_:1}),V.value?(s(),O(h,{key:0},[E(`p`,ze,p(b(f)(`console.navigation.publicSpace`)),1),D(b(L),{class:`space-nav-button public-space-button`,to:`/public-projects`,"active-class":`is-active`},{default:l(()=>[t[7]||=E(`span`,{class:`nav-icon nav-icon-public-project`,"aria-hidden":`true`},null,-1),E(`span`,Be,[E(`strong`,null,p(b(f)(`console.navigation.publicProjects`)),1),E(`small`,null,p(b(f)(`console.navigation.publicProjectsMeta`)),1)])]),_:1})],64)):m(``,!0),D(De,{"personal-space-id":S.value},null,8,[`personal-space-id`]),E(`p`,Ve,p(b(f)(`console.navigation.governance`)),1),D(b(L),{to:T.value,"active-class":`is-active`},{default:l(()=>[t[8]||=E(`span`,{class:`nav-icon nav-icon-knowledge-graph`,"aria-hidden":`true`},null,-1),E(`span`,He,p(b(f)(`console.navigation.knowledge`)),1)]),_:1},8,[`to`]),H.value?(s(),k(b(L),{key:1,to:`/review`,"active-class":`is-active`},{default:l(()=>[t[9]||=E(`span`,{class:`nav-icon nav-icon-review`,"aria-hidden":`true`},null,-1),E(`span`,Ue,p(b(f)(`console.navigation.review`)),1)]),_:1})):m(``,!0),D(b(L),{to:`/connections`,"active-class":`is-active`},{default:l(()=>[t[10]||=E(`span`,{class:`nav-icon nav-icon-connections`,"aria-hidden":`true`},null,-1),E(`span`,We,p(b(f)(`console.navigation.connections`)),1)]),_:1}),E(`p`,Ge,p(b(f)(`console.navigation.aboutSection`)),1),D(b(L),{to:`/settings`,"active-class":`is-active`},{default:l(()=>[t[11]||=E(`span`,{class:`nav-icon nav-icon-settings`,"aria-hidden":`true`},null,-1),E(`span`,Ke,p(b(f)(`console.navigation.settings`)),1)]),_:1}),D(b(L),{to:`/about`,"active-class":`is-active`},{default:l(()=>[t[12]||=E(`span`,{class:`nav-icon nav-icon-about`,"aria-hidden":`true`},null,-1),E(`span`,qe,p(b(f)(`console.navigation.about`)),1)]),_:1})],8,je),E(`div`,Je,[E(`div`,{class:`service-runtime-list`,"aria-label":b(f)(`console.services.aria`)},[E(`div`,Xe,[E(`span`,{class:C([`status-dot`,b(i).runtimeStatus])},null,2),E(`div`,null,[E(`strong`,null,p(b(i).runtimeStatus===`ready`?b(f)(`console.services.localReady`):b(i).runtimeStatus===`error`?b(f)(`console.services.localError`):b(f)(`console.services.localConnecting`)),1),t[13]||=E(`small`,null,`Graphiti / Neo4j`,-1)])]),E(`div`,Ze,[E(`span`,{class:C([`status-dot`,b(i).publicRuntimeStatus])},null,2),E(`div`,null,[E(`strong`,null,p(z.value),1),E(`small`,null,p(B.value),1)])])],8,Ye)])],42,Ae),E(`main`,Qe,[E(`header`,{class:C([`topbar`,{"topbar--workbench":I.value}])},[E(`button`,{ref_key:`mobileNavToggleRef`,ref:_,class:`mobile-nav-toggle quiet-button`,type:`button`,"aria-controls":`console-primary-sidebar`,"aria-expanded":g.value,onClick:U},[t[14]||=E(`span`,{class:`mobile-nav-icon`,"aria-hidden":`true`},null,-1),r(` `+p(b(f)(`console.navigation.openMenu`)),1)],8,Y),I.value?(s(),O(`span`,$e,`FULI`)):(s(),O(`div`,et,[M.value?(s(),O(`p`,tt,p(M.value),1)):m(``,!0),E(`h2`,null,p(j.value),1),F.value?(s(),O(`p`,nt,p(F.value),1)):m(``,!0)])),I.value?m(``,!0):(s(),O(`div`,rt,[R.value?(s(),O(`span`,it,p(b(f)(`console.publicReady`)),1)):m(``,!0),b(c).name===`settings`?(s(),O(`button`,at,p(b(f)(`settings.save`)),1)):m(``,!0),D(ve),E(`button`,{class:`quiet-button`,type:`button`,onClick:t[0]||=(...e)=>b(i).refresh&&b(i).refresh(...e)},p(b(f)(`common.actions.refresh`)),1)]))],2),D(Se),b(i).feedback?(s(),O(`button`,{key:0,class:C([`feedback feedback-button`,{success:b(i).feedback.tone===`success`}]),type:`button`,"aria-live":`polite`,onClick:t[1]||=(...e)=>b(i).clearFeedback&&b(i).clearFeedback(...e)},p(b(i).feedback.message),3)):m(``,!0),D(b(ee),null,{default:l(({Component:e})=>[(s(),k(a(e)))]),_:1})])]))}}),[[`__scopeId`,`data-v-b1910b19`]]),st=c({__name:`App`,setup(e){return(e,t)=>(s(),k(ot))}}),ct=`modulepreload`,lt=function(e){return`/`+e},X={},Z=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=lt(t,n),t=s(t),t in X)return;X[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:ct,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};function ut(e){let t=e.match(/^#\/knowledge\/([^/?#]+)\/([^/?#]+)\/(entity|relationship)\/([^/?#]+)(?:\?([^#]*))?$/);if(!t)return null;let[,n,r,i,a,o]=t;return`/knowledge/${n}/${r}/directory/${i}/${a}${o?`?${o}`:``}`}var Q=I({history:F(`/`),routes:[{path:`/`,name:`overview`,component:()=>Z(()=>import(`./OverviewPage-HwoSW-5z.js`),__vite__mapDeps([0,1,2,3,4,5])),meta:{eyebrow:``,title:`routes.overview.title`}},{path:`/preferences`,name:`personal-profile`,component:()=>Z(()=>import(`./PersonalProfilePage-DCoG52SW.js`),__vite__mapDeps([6,1,2,3,4,7,8,9,10,11,12,13,14,15,16])),meta:{eyebrow:`PERSONAL LENS`,title:`routes.preferences.title`,description:`routes.preferences.description`}},{path:`/preferences/writing`,name:`writing-taste`,component:()=>Z(()=>import(`./WritingTastePage-DztRj6MK.js`),__vite__mapDeps([17,1,2,3,4,7,9,8,10,11,12,18])),meta:{eyebrow:``,title:`routes.writingTaste.title`}},{path:`/personal/:spaceId/projects/:projectId/:mode/:itemKind/:itemId`,name:`personal-project-item`,component:()=>Z(()=>import(`./PersonalProjectsPage-CNb9mlbp.js`),__vite__mapDeps([19,1,20,2,4,3,5,8,10,9,7,11,12,13,14,15])),meta:{eyebrow:`PERSONAL PROJECT`,title:`routes.personalProjects.title`}},{path:`/personal/:spaceId/projects/:mode/:itemKind/:itemId`,name:`personal-projects-item`,component:()=>Z(()=>import(`./PersonalProjectsPage-CNb9mlbp.js`),__vite__mapDeps([19,1,20,2,4,3,5,8,10,9,7,11,12,13,14,15])),meta:{eyebrow:`PERSONAL PROJECTS`,title:`routes.personalProjects.title`,description:`routes.personalProjects.description`}},{path:`/personal/:spaceId/projects/:mode`,name:`personal-projects`,component:()=>Z(()=>import(`./PersonalProjectsPage-CNb9mlbp.js`),__vite__mapDeps([19,1,20,2,4,3,5,8,10,9,7,11,12,13,14,15])),meta:{eyebrow:`PERSONAL PROJECTS`,title:`routes.personalProjects.title`,description:`routes.personalProjects.description`}},{path:`/personal/:spaceId/projects/:projectId/:mode`,name:`personal-project`,component:()=>Z(()=>import(`./PersonalProjectsPage-CNb9mlbp.js`),__vite__mapDeps([19,1,20,2,4,3,5,8,10,9,7,11,12,13,14,15])),meta:{eyebrow:`PERSONAL PROJECT`,title:`routes.personalProjects.title`}},{path:`/organize`,name:`knowledge-organizer`,component:()=>Z(()=>import(`./KnowledgeOrganizerPage-B_Ct4bB2.js`),__vite__mapDeps([21,1,2,7,8,10,9,11,12,13,14,15,22])),meta:{eyebrow:`KNOWLEDGE CLASSIFICATION`,title:`routes.organizer.title`}},{path:`/project-agents`,name:`project-agents`,component:()=>Z(()=>import(`./ProjectAgentsPage-zQ9BZW9v.js`),__vite__mapDeps([23,1,2,3,4,7,24,8,25,5,26,27])),meta:{eyebrow:``,title:`routes.projectAgents.title`}},{path:`/employees/:templateId`,name:`employee-workbench`,component:()=>Z(()=>import(`./EmployeeWorkbenchPage-DtXSJOpq.js`),__vite__mapDeps([28,1,2,4,3,7,24,25,5,8,26,29])),meta:{eyebrow:``,title:`routes.employeeWorkbench.title`,dedicatedWorkspace:!0}},{path:`/public-projects`,name:`public-projects`,component:()=>Z(()=>import(`./PublicProjectsPage-BuLqkZ8g.js`),__vite__mapDeps([30,1,2,4,5,8,10])),meta:{eyebrow:`PUBLIC PROJECTS`,title:`routes.publicProjects.title`,description:`routes.publicProjects.description`}},{path:`/knowledge`,name:`knowledge-default`,component:()=>Z(()=>import(`./KnowledgePage-RG9Ttnrp.js`),__vite__mapDeps([31,1,20,2,4,3,5,8,10,9,7,11,12,13,14,15])),meta:{eyebrow:`KNOWLEDGE BASE`,title:`routes.knowledge.title`}},{path:`/knowledge/:scope/:spaceId/:projectId/:mode/:itemKind/:itemId`,name:`project-knowledge-item`,component:()=>Z(()=>import(`./KnowledgePage-RG9Ttnrp.js`),__vite__mapDeps([31,1,20,2,4,3,5,8,10,9,7,11,12,13,14,15])),meta:{eyebrow:`KNOWLEDGE BASE`,title:`routes.knowledge.title`}},{path:`/knowledge/:scope/:spaceId/:mode/:itemKind/:itemId`,name:`knowledge-item`,component:()=>Z(()=>import(`./KnowledgePage-RG9Ttnrp.js`),__vite__mapDeps([31,1,20,2,4,3,5,8,10,9,7,11,12,13,14,15])),meta:{eyebrow:`KNOWLEDGE BASE`,title:`routes.knowledge.title`}},{path:`/knowledge/:scope/:spaceId/:projectId/:mode`,name:`project-knowledge`,component:()=>Z(()=>import(`./KnowledgePage-RG9Ttnrp.js`),__vite__mapDeps([31,1,20,2,4,3,5,8,10,9,7,11,12,13,14,15])),meta:{eyebrow:`KNOWLEDGE BASE`,title:`routes.knowledge.title`}},{path:`/knowledge/:scope/:spaceId/:mode`,name:`knowledge`,component:()=>Z(()=>import(`./KnowledgePage-RG9Ttnrp.js`),__vite__mapDeps([31,1,20,2,4,3,5,8,10,9,7,11,12,13,14,15])),meta:{eyebrow:`KNOWLEDGE BASE`,title:`routes.knowledge.title`}},{path:`/review`,name:`review`,component:()=>Z(()=>import(`./ReviewPage-8A7N5pJs.js`),__vite__mapDeps([32,1,2,8,10,11])),meta:{eyebrow:`REVIEW WORKSPACE`,title:`routes.review.title`,description:`routes.review.description`}},{path:`/connections`,name:`connections`,component:()=>Z(()=>import(`./ConnectionsPage-BMpkYeSE.js`),__vite__mapDeps([33,1,2,7,8,10,34])),meta:{eyebrow:`SERVICE CONNECTIONS`,title:`routes.connections.title`,description:`routes.connections.description`}},{path:`/settings`,name:`settings`,component:()=>Z(()=>import(`./SettingsPage-4ah1u906.js`),__vite__mapDeps([35,1,2,7,8,14,36])),meta:{eyebrow:``,title:`routes.settings.title`}},{path:`/about`,name:`about`,component:()=>Z(()=>import(`./AboutPage-Bp-Xz6yo.js`),__vite__mapDeps([37,1,38,7,39])),meta:{eyebrow:`FULI`,title:`routes.about.title`}},{path:`/:pathMatch(.*)*`,redirect:`/`}],scrollBehavior:()=>({top:0})});ye(Q),Q.beforeEach(e=>e.path!==`/`||typeof window>`u`?!0:ut(window.location.hash)??!0),Q.afterEach(e=>{J(e.meta.title)});var $=w(st);$.use(M()),$.use(S),$.use(Q),await Q.isReady().catch(()=>void 0),$.mount(`#app`);