fuli-context 0.7.9 → 0.7.10-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -2
- package/README.zh-CN.md +5 -3
- package/dist/web/assets/{AboutPage-Bp-Xz6yo.js → AboutPage-EtWPOSpz.js} +1 -1
- package/dist/web/assets/AboutPage-vYIBifKw.css +1 -0
- package/dist/web/assets/AgentHand-D5pOgVjJ.js +1 -0
- package/dist/web/assets/AgentHand-DvdNtJ3_.css +1 -0
- package/dist/web/assets/ConnectionsPage-DXkvMuyK.js +1 -0
- package/dist/web/assets/EmployeeRecruitDialog-B59X3rOi.css +1 -0
- package/dist/web/assets/EmployeeRecruitDialog-DONxXnd2.js +1 -0
- package/dist/web/assets/EmployeeWorkbenchPage-Cd4hd4bf.js +3 -0
- package/dist/web/assets/EmployeeWorkbenchPage-Cz7y-IFD.css +1 -0
- package/dist/web/assets/GrowthLoading-B_Hh0CRS.css +1 -0
- package/dist/web/assets/GrowthLoading-CCYPgE2f.js +1 -0
- package/dist/web/assets/KnowledgeEditDialog-BUqMfa0a.js +1 -0
- package/dist/web/assets/KnowledgeEditDialog-D9NuRHvp.css +1 -0
- package/dist/web/assets/KnowledgeInspector-DlVPDGP3.js +1 -0
- package/dist/web/assets/KnowledgeOrganizerPage-DhthZGKZ.js +1 -0
- package/dist/web/assets/KnowledgeOrganizerPage-h2iKvQpO.css +1 -0
- package/dist/web/assets/KnowledgePage-B6RDVxq-.js +1 -0
- package/dist/web/assets/KnowledgeWorkspace-mVFHQcxr.js +4 -0
- package/dist/web/assets/KnowledgeWorkspace-sb8OJ97I.css +1 -0
- package/dist/web/assets/NotFoundPage-CCeEdBy9.js +1 -0
- package/dist/web/assets/{OverviewPage-HwoSW-5z.js → OverviewPage-CnYWoZ3r.js} +1 -1
- package/dist/web/assets/PersonalProfilePage-Bz4zpTPC.js +1 -0
- package/dist/web/assets/PersonalProfilePage-yQRCBude.css +1 -0
- package/dist/web/assets/PersonalProjectsPage-2u1o6dvA.js +1 -0
- package/dist/web/assets/ProjectAgentsPage-8tci631q.js +11 -0
- package/dist/web/assets/ProjectAgentsPage-BN4k3ubu.css +1 -0
- package/dist/web/assets/ProjectScopePicker-BcPtIcv8.js +1 -0
- package/dist/web/assets/ProjectScopePicker-BvaGTMFx.css +1 -0
- package/dist/web/assets/PublicProjectsPage-BmBHfnud.js +1 -0
- package/dist/web/assets/ReviewPage-tvt2eqhw.js +1 -0
- package/dist/web/assets/{SearchableSelect-CFZNdtlY.js → SearchableSelect-BjBDBVuZ.js} +1 -1
- package/dist/web/assets/SettingsPage-Brl-SL33.css +1 -0
- package/dist/web/assets/SettingsPage-D9mNzBg-.js +1 -0
- package/dist/web/assets/SharedJefaReportPage-DXbj_JhO.css +1 -0
- package/dist/web/assets/SharedJefaReportPage-Dn_HBgaa.js +1 -0
- package/dist/web/assets/WritingTastePage-BCwimXC-.js +1 -0
- package/dist/web/assets/WritingTastePage-tb_pgude.css +1 -0
- package/dist/web/assets/bole-avatar-CVIr-bU_.webp +0 -0
- package/dist/web/assets/client-v8XKgQji.js +1 -0
- package/dist/web/assets/console-C9HS-zbd.js +1 -0
- package/dist/web/assets/conversation-launcher-settings-DMDCpf_N.js +1 -0
- package/dist/web/assets/employee-dialog-Bh5ccIbK.css +1 -0
- package/dist/web/assets/{i18n-DQH9D35M.js → i18n-BkJjUsz_.js} +3 -3
- package/dist/web/assets/{identity-JjZG6aS5.js → identity-74yGiMzO.js} +1 -1
- package/dist/web/assets/index-CwjxeHGk.css +1 -0
- package/dist/web/assets/index-Dioqmmvf.js +2 -0
- package/dist/web/assets/{model-zL97NJ-U.js → model-86tZgY0r.js} +1 -1
- package/dist/web/assets/shared-report-CLg82y4D.js +1 -0
- package/dist/web/assets/shared-report-ezeb8dW4.css +1 -0
- package/dist/web/assets/{useApi-CROJJdhE-CElDxEZI.js → useApi-CROJJdhE-BBUO_YEu.js} +1 -1
- package/dist/web/assets/useModalDialog-DrLhqtjR.js +1 -0
- package/dist/web/assets/{vue-router-F7MnkVlW.js → vue-router-Cw4QZxM1.js} +1 -1
- package/dist/web/index.html +14 -8
- package/docs/agent-interface-architecture.md +97 -0
- package/docs/employee-agents.md +58 -2
- package/graph-provider/fuli_graph/collaboration_context.py +2 -1
- package/graph-provider/fuli_graph/graph_models.py +5 -3
- package/graph-provider/fuli_graph/graph_query.py +4 -0
- package/graph-provider/fuli_graph/knowledge_search.py +2 -1
- package/graph-provider/fuli_graph/project_agent_access.py +2 -0
- package/graph-provider/fuli_graph/project_agent_attention_models.py +64 -0
- package/graph-provider/fuli_graph/project_agent_attention_routes.py +38 -0
- package/graph-provider/fuli_graph/project_agent_models.py +2 -0
- package/graph-provider/fuli_graph/project_agent_names.py +33 -0
- package/graph-provider/fuli_graph/project_agent_routes.py +12 -0
- package/graph-provider/fuli_graph/runtime.py +49 -20
- package/graph-provider/fuli_graph/store.py +2 -0
- package/graph-provider/fuli_graph/store_knowledge.py +4 -2
- package/graph-provider/fuli_graph/store_project_agent_attention.py +138 -0
- package/graph-provider/fuli_graph/store_project_agent_executor_learning.py +8 -0
- package/graph-provider/fuli_graph/store_project_agent_memory.py +40 -13
- package/graph-provider/fuli_graph/store_project_agent_task_recruitment.py +4 -1
- package/graph-provider/fuli_graph/store_project_agent_task_staffing.py +4 -1
- package/graph-provider/fuli_graph/store_project_agent_tasks.py +3 -0
- package/graph-provider/fuli_graph/store_project_agents.py +109 -0
- package/graph-provider/fuli_graph/store_task_contexts.py +1 -1
- package/graph-provider/fuli_graph/system_hr_identity.py +218 -0
- package/graph-provider/pyproject.toml +1 -1
- package/npm-shrinkwrap.json +52 -60
- package/package.json +2 -2
- package/skills/operating-fuli/SKILL.md +47 -0
- package/skills/operating-fuli/agents/openai.yaml +4 -0
- package/skills/operating-fuli/references/workflow-recipes.md +33 -0
- package/src/agent-tools/agent-attention-definitions.js +33 -0
- package/src/agent-tools/graph-definitions.js +8 -2
- package/src/agent-tools/graph-handlers.js +41 -0
- package/src/agent-tools/interface-catalog.js +101 -0
- package/src/agent-tools/interface-definitions.js +184 -0
- package/src/agent-tools/project-agent-definitions.js +1 -0
- package/src/cli/local-runtime-command.js +2 -1
- package/src/employees/catalog/bole.json +19 -0
- package/src/employees/install-package.js +3 -0
- package/src/employees/manifest.js +4 -0
- package/src/employees/package-registry.js +2 -0
- package/src/employees/recruitment.js +3 -0
- package/src/employees/service.js +10 -0
- package/src/external-knowledge/registry.js +24 -0
- package/src/external-knowledge/service.js +34 -1
- package/src/graphiti/agent-attention.js +26 -0
- package/src/graphiti/agent-knowledge-workflows.js +1 -0
- package/src/graphiti/project-agent-control-plane.js +21 -0
- package/src/graphiti/project-agent-mapping.js +6 -0
- package/src/graphiti/provider-client.js +13 -0
- package/src/graphiti/workspace-provider-client.js +9 -1
- package/src/http/agent-attention-api-router.js +28 -0
- package/src/http/error-mapping.js +3 -0
- package/src/http/graph-api-router.js +2 -0
- package/src/local-runtime/lifecycle.js +8 -2
- package/src/mcp/create-mcp-server.js +10 -1
- package/src/mcp/tool-annotations.js +31 -0
- package/src/mcp/tool-result.js +4 -4
- package/src/setup/agent-installation-status.js +2 -1
- package/src/setup/agents.js +4 -0
- package/src/setup/graph-runtime.js +4 -0
- package/src/setup/paths.js +2 -1
- package/src/setup/setup.js +4 -2
- package/src/setup/uninstall.js +4 -2
- package/src/system/resource-monitor.js +11 -1
- package/src/system/runtime-settings.js +7 -0
- package/dist/web/assets/AboutPage-DXh7Fwxt.css +0 -1
- package/dist/web/assets/ConnectionsPage-BMpkYeSE.js +0 -1
- package/dist/web/assets/EmployeeRecruitDialog-CnA7rOnB.css +0 -1
- package/dist/web/assets/EmployeeRecruitDialog-DbMVuLAI.js +0 -1
- package/dist/web/assets/EmployeeWorkbenchPage-BpkqpEs7.css +0 -1
- package/dist/web/assets/EmployeeWorkbenchPage-DtXSJOpq.js +0 -1
- package/dist/web/assets/KnowledgeEditDialog-DADXj_BT.js +0 -1
- package/dist/web/assets/KnowledgeEditDialog-iv-dgUeD.css +0 -1
- package/dist/web/assets/KnowledgeInspector-Xs4VCUg8.js +0 -1
- package/dist/web/assets/KnowledgeOrganizerPage-B_Ct4bB2.js +0 -1
- package/dist/web/assets/KnowledgeOrganizerPage-Cx1w1jb2.css +0 -1
- package/dist/web/assets/KnowledgePage-RG9Ttnrp.js +0 -1
- package/dist/web/assets/KnowledgeWorkspace-DI8YqTVI.js +0 -4
- package/dist/web/assets/PersonalProfilePage-B7T09bow.css +0 -1
- package/dist/web/assets/PersonalProfilePage-DCoG52SW.js +0 -1
- package/dist/web/assets/PersonalProjectsPage-CNb9mlbp.js +0 -1
- package/dist/web/assets/ProjectAgentsPage-C3vW6wmk.css +0 -1
- package/dist/web/assets/ProjectAgentsPage-zQ9BZW9v.js +0 -11
- package/dist/web/assets/PublicProjectsPage-BuLqkZ8g.js +0 -1
- package/dist/web/assets/ReviewPage-8A7N5pJs.js +0 -1
- package/dist/web/assets/SettingsPage-4ah1u906.js +0 -1
- package/dist/web/assets/SettingsPage-CwZp2ka4.css +0 -1
- package/dist/web/assets/WritingTastePage-DSgvTH6x.css +0 -1
- package/dist/web/assets/WritingTastePage-DztRj6MK.js +0 -1
- package/dist/web/assets/avatars-LvVKbDF7.js +0 -1
- package/dist/web/assets/console-B7dWYAoU.js +0 -1
- package/dist/web/assets/conversation-launcher-settings-D1xhW1S5.js +0 -1
- package/dist/web/assets/index-Ch1jmkyO.css +0 -1
- package/dist/web/assets/index-DRd-2Tii.js +0 -2
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import{C as e,F as t,H as n,I as r,M as i,N as a,T as o,V as s,Z as c,_ as l,a as u,at as d,b as f,c as p,d as m,f as h,h as g,k as _,m as v,n as y,nt as b,rt as x,u as S,v as C,w,x as T,y as E,z as ee}from"./i18n-DQH9D35M.js";import{a as D,i as O,n as k,o as A,r as j,t as M}from"./console-B7dWYAoU.js";import{t as N}from"./vue-router-F7MnkVlW.js";import{t as P}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{a as F,o as I,s as te}from"./avatars-LvVKbDF7.js";import{t as L}from"./SearchableSelect-CFZNdtlY.js";import{n as ne,r as R,t as re}from"./EmployeeRecruitDialog-DbMVuLAI.js";function z(e){return e&&typeof e==`object`?e:{}}function B(e,t,n){return e[t]??e[n]}function V(e,t,n){let r=B(e,t,n);return typeof r==`string`?r:null}function H(e,t,n){let r=B(e,t,n);return Array.isArray(r)&&r.every(e=>typeof e==`string`)?r:null}function U(e,t,n){let r=B(e,t,n);return typeof r==`number`&&Number.isInteger(r)&&r>=0?r:null}function ie(e){if(!e||typeof e!=`object`)return null;let t=z(e),n=V(t,`source`,`source`),r=U(t,`totalTokens`,`total_tokens`);return![`executor`,`host`,`dingdong`].includes(n??``)||r===null?null:{source:n,totalTokens:r,inputTokens:U(t,`inputTokens`,`input_tokens`),outputTokens:U(t,`outputTokens`,`output_tokens`),cachedInputTokens:U(t,`cachedInputTokens`,`cached_input_tokens`),cacheWriteInputTokens:U(t,`cacheWriteInputTokens`,`cache_write_input_tokens`),reasoningOutputTokens:U(t,`reasoningOutputTokens`,`reasoning_output_tokens`)}}function ae(e){if(!e||typeof e!=`object`)return null;let t=z(e),n=V(t,`application`,`application`);return[`codex`,`claude`,`claude_code`,`cursor`,`kiro`,`other`].includes(n??``)?{application:n,sessionId:V(t,`sessionId`,`session_id`),sessionUrl:V(t,`sessionUrl`,`session_url`)}:null}function W(e){return Array.isArray(e)?e:[]}function oe(e){let t=z(e);return Array.isArray(e)?e:W(t.agents??t.items)}function se(e){if(!e||typeof e!=`object`)return null;let t=z(e);return{mode:V(t,`mode`,`mode`)??null,reasoningEffort:V(t,`reasoningEffort`,`reasoning_effort`)??null,capabilityHints:W(B(t,`capabilityHints`,`capability_hints`)).filter(e=>typeof e==`string`)}}function G(e){if(!e||typeof e!=`object`)return null;let t=z(e);return{enabled:typeof t.enabled==`boolean`?t.enabled:null,independentVerification:typeof B(t,`independentVerification`,`independent_verification`)==`boolean`?B(t,`independentVerification`,`independent_verification`):null,conflictFreeScopes:typeof B(t,`conflictFreeScopes`,`conflict_free_scopes`)==`boolean`?B(t,`conflictFreeScopes`,`conflict_free_scopes`):null,reason:V(t,`reason`,`reason`),workstreamBoundaries:W(B(t,`workstreamBoundaries`,`workstream_boundaries`)).filter(e=>typeof e==`string`)}}function ce(e){if(!e||typeof e!=`object`)return null;let t=z(e),n=W(B(t,`allowList`,`allow_list`)).map(e=>{if(typeof e==`string`)return{executorId:e};let t=z(e);return{executorId:V(t,`executorId`,`executor_id`)??``,label:V(t,`label`,`label`),provider:V(t,`provider`,`provider`),model:V(t,`model`,`model`),client:V(t,`client`,`client`)}}).filter(({executorId:e})=>e),r=W(B(t,`lockedExecutorIds`,`locked_executor_ids`)).filter(e=>typeof e==`string`),i=W(B(t,`preferredExecutorIds`,`preferred_executor_ids`)).filter(e=>typeof e==`string`);return{mode:V(t,`mode`,`mode`)??`flexible`,allowList:n,lockedExecutorIds:r,preferredExecutorIds:i}}function K(e){if(!e||typeof e!=`object`)return null;let t=z(e),n={executor:V(t,`executor`,`executor`),provider:V(t,`provider`,`provider`)??V(t,`actualModelProvider`,`actual_model_provider`),model:V(t,`model`,`model`)??V(t,`actualModel`,`actual_model`),client:V(t,`client`,`client`)??V(t,`sourceApplication`,`source_application`),rule:V(t,`rule`,`rule`),fallback:V(t,`fallback`,`fallback`),reportedAt:V(t,`reportedAt`,`reported_at`)};return[n.executor,n.provider,n.model,n.rule,n.fallback].some(Boolean)?n:null}function le(e,t){let n=z(e),r=V(n,`personalProjectId`,`personal_project_id`),i=V(n,`assignmentId`,`assignment_id`);return!r||!i?null:{assignmentId:i,personalSpaceId:V(n,`personalSpaceId`,`personal_space_id`)??t.personalSpaceId,personalProjectId:r,agentId:V(n,`agentId`,`agent_id`)??t.agentId,responsibility:V(n,`responsibility`,`responsibility`)??t.profile.responsibility,scope:V(n,`scope`,`scope`),workKinds:W(B(n,`workKinds`,`work_kinds`)).filter(e=>typeof e==`string`),capabilities:W(n.capabilities).filter(e=>typeof e==`string`),modelStrategyOverride:se(B(n,`modelStrategyOverride`,`model_strategy_override`)),executorPolicyOverride:ce(B(n,`executorPolicyOverride`,`executor_policy_override`)),reason:V(n,`reason`,`reason`),status:V(n,`status`,`status`)??`active`,revision:typeof n.revision==`number`?n.revision:void 0,sourceApplication:V(n,`sourceApplication`,`source_application`),sourceSessionId:V(n,`sourceSessionId`,`source_session_id`),assignedAt:V(n,`assignedAt`,`assigned_at`)??t.createdAt,updatedAt:V(n,`updatedAt`,`updated_at`)??t.updatedAt,endedAt:V(n,`endedAt`,`ended_at`),endReason:V(n,`endReason`,`end_reason`),replacedByAssignmentId:V(n,`replacedByAssignmentId`,`replaced_by_assignment_id`)}}function ue(e){let t=z(e);return{agentId:V(t,`agentId`,`agent_id`)??``,assignmentId:V(t,`assignmentId`,`assignment_id`),role:V(t,`role`,`role`)??`collaborator`,status:V(t,`status`,`status`),assignmentSummary:V(t,`assignmentSummary`,`assignment_summary`),joinedAt:V(t,`joinedAt`,`joined_at`),updatedAt:V(t,`updatedAt`,`updated_at`),endedAt:V(t,`endedAt`,`ended_at`)}}function de(e){if(Array.isArray(e))return e.map(e=>{let t=z(e);return{agentId:V(t,`agentId`,`agent_id`),agentName:V(t,`agentName`,`agent_name`),occupationEmoji:V(t,`occupationEmoji`,`occupation_emoji`),workerId:V(t,`workerId`,`worker_id`),workerLabel:V(t,`workerLabel`,`worker_label`),workerOccupationEmoji:V(t,`workerOccupationEmoji`,`worker_occupation_emoji`),participantRole:V(t,`participantRole`,`participant_role`),executor:V(t,`executor`,`executor`),executorId:V(t,`executorId`,`executor_id`),sourceApplication:V(t,`sourceApplication`,`source_application`),sourceSessionId:V(t,`sourceSessionId`,`source_session_id`),sourceSessionUrl:V(t,`sourceSessionUrl`,`source_session_url`),workerRuntime:ae(B(t,`workerRuntime`,`worker_runtime`)),toolsUsed:H(t,`toolsUsed`,`tools_used`),actualModelProvider:V(t,`actualModelProvider`,`actual_model_provider`),actualModel:V(t,`actualModel`,`actual_model`),tokenUsage:ie(B(t,`tokenUsage`,`token_usage`)),workSummary:V(t,`workSummary`,`work_summary`),status:V(t,`status`,`status`)}})}function fe(e){let t=z(e),n=V(t,`eventId`,`event_id`),r=V(t,`taskId`,`task_id`);if(!n||!r)return null;let i=K(B(t,`actualExecution`,`actual_execution`))??K({executor:V(t,`actualExecutor`,`actual_executor`),provider:V(t,`actualModelProvider`,`actual_model_provider`),model:V(t,`actualModel`,`actual_model`),client:V(t,`sourceApplication`,`source_application`),rule:V(t,`routingRuleId`,`routing_rule_id`)??V(t,`matchedExecutorRuleId`,`matched_executor_rule_id`),fallback:V(t,`fallbackReason`,`fallback_reason`)??V(t,`executorFallbackReason`,`executor_fallback_reason`),reportedAt:V(t,`createdAt`,`created_at`)});return{eventId:n,taskId:r,agentId:V(t,`agentId`,`agent_id`),status:V(t,`status`,`status`),actorKind:V(t,`actorKind`,`actor_kind`)??void 0,summary:V(t,`summary`,`summary`)??``,sourceApplication:V(t,`sourceApplication`,`source_application`),sourceSessionId:V(t,`sourceSessionId`,`source_session_id`),sourceSessionUrl:V(t,`sourceSessionUrl`,`source_session_url`),workerRuntime:ae(B(t,`workerRuntime`,`worker_runtime`)),toolsUsed:H(t,`toolsUsed`,`tools_used`),tokenUsage:ie(B(t,`tokenUsage`,`token_usage`)),actualExecution:i,actualModelProvider:V(t,`actualModelProvider`,`actual_model_provider`),actualModel:V(t,`actualModel`,`actual_model`),workerId:V(t,`workerId`,`worker_id`),workerLabel:V(t,`workerLabel`,`worker_label`),workerOccupationEmoji:V(t,`workerOccupationEmoji`,`worker_occupation_emoji`),workerStatus:V(t,`workerStatus`,`worker_status`),createdAt:V(t,`createdAt`,`created_at`)??``}}function q(e){if(!e||typeof e!=`object`)return null;let t=z(e);return{decisionId:V(t,`decisionId`,`decision_id`)??void 0,taskId:V(t,`taskId`,`task_id`)??void 0,coordinatorAgentId:V(t,`coordinatorAgentId`,`coordinator_agent_id`),complexity:(()=>{let e=B(t,`complexity`,`complexity`);return typeof e==`string`||typeof e==`number`?e:null})(),complexityBasis:W(B(t,`complexityBasis`,`complexity_basis`)).filter(e=>typeof e==`string`),outcome:V(t,`outcome`,`outcome`)??V(t,`routingOutcome`,`routing_outcome`),reason:V(t,`reason`,`reason`)??V(t,`routingReason`,`routing_reason`),matchBasis:W(B(t,`matchBasis`,`match_basis`)).filter(e=>typeof e==`string`),candidateAgentIds:W(B(t,`candidateAgentIds`,`candidate_agent_ids`)).filter(e=>typeof e==`string`),optimizationPriority:W(B(t,`optimizationPriority`,`optimization_priority`)).filter(e=>typeof e==`string`),parallelPlan:G(B(t,`parallelPlan`,`parallel_plan`)),selectedModelStrategy:se(B(t,`selectedModelStrategy`,`selected_model_strategy`)),modelStrategySource:V(t,`modelStrategySource`,`model_strategy_source`)??void 0,ruleId:V(t,`ruleId`,`rule_id`)??V(t,`matchedExecutorRuleId`,`matched_executor_rule_id`)??V(t,`executorRuleId`,`executor_rule_id`),fallback:V(t,`fallback`,`fallback`)??V(t,`fallbackReason`,`fallback_reason`)??V(t,`executorFallbackReason`,`executor_fallback_reason`)}}function J(e){return e!=null&&(typeof e!=`string`||e.length>0)&&(!Array.isArray(e)||e.length>0)}function pe(e){return[`staffingIntent`,`staffing_intent`,`routingOutcome`,`routing_outcome`,`routingReason`,`routing_reason`,`routingExplanation`,`routing_explanation`,`coordinatorAgentId`,`coordinator_agent_id`,`complexity`,`complexityBasis`,`complexity_basis`,`matchBasis`,`match_basis`,`candidateAgentIds`,`candidate_agent_ids`].some(t=>J(e[t]))?q({outcome:B(e,`routingOutcome`,`routing_outcome`),reason:B(e,`routingReason`,`routing_reason`),matchBasis:B(e,`matchBasis`,`match_basis`),coordinatorAgentId:B(e,`coordinatorAgentId`,`coordinator_agent_id`),complexity:B(e,`complexity`,`complexity`),complexityBasis:B(e,`complexityBasis`,`complexity_basis`),candidateAgentIds:B(e,`candidateAgentIds`,`candidate_agent_ids`)}):null}function me(e){let t=z(e),n=V(t,`taskId`,`task_id`);if(!n)return null;let r=K(B(t,`actualExecution`,`actual_execution`))??K({executor:V(t,`actualExecutor`,`actual_executor`),provider:V(t,`actualModelProvider`,`actual_model_provider`),model:V(t,`actualModel`,`actual_model`),client:V(t,`sourceApplication`,`source_application`),rule:V(t,`routingRuleId`,`routing_rule_id`)??V(t,`matchedExecutorRuleId`,`matched_executor_rule_id`),fallback:V(t,`fallbackReason`,`fallback_reason`)??V(t,`executorFallbackReason`,`executor_fallback_reason`)}),i=q(B(t,`routingDecision`,`routing_decision`))??pe(t);return{taskId:n,personalSpaceId:V(t,`personalSpaceId`,`personal_space_id`)??void 0,personalProjectId:V(t,`personalProjectId`,`personal_project_id`),title:V(t,`title`,`title`)??n,objective:V(t,`objective`,`objective`),workKind:V(t,`workKind`,`work_kind`),status:V(t,`status`,`status`),runId:V(t,`runId`,`run_id`),executionId:V(t,`executionId`,`execution_id`),ownerAgentId:V(t,`ownerAgentId`,`owner_agent_id`),leadAgentId:V(t,`leadAgentId`,`lead_agent_id`),coordinatorAgentId:V(t,`coordinatorAgentId`,`coordinator_agent_id`),hrAgentId:V(t,`hrAgentId`,`hr_agent_id`),recruitmentId:V(t,`recruitmentId`,`recruitment_id`),participants:W(t.participants).map(ue),sourceApplication:V(t,`sourceApplication`,`source_application`),sourceSessionId:V(t,`sourceSessionId`,`source_session_id`),resultSummary:V(t,`resultSummary`,`result_summary`),failureReason:V(t,`failureReason`,`failure_reason`),createdAt:V(t,`createdAt`,`created_at`),updatedAt:V(t,`updatedAt`,`updated_at`),completedAt:V(t,`completedAt`,`completed_at`),effectiveModelStrategy:se(B(t,`effectiveModelStrategy`,`effective_model_strategy`)),effectiveExecutorPolicy:ce(B(t,`effectiveExecutorPolicy`,`effective_executor_policy`)??B(t,`executorPolicy`,`executor_policy`)),staffingIntent:V(t,`staffingIntent`,`staffing_intent`),requiredCapabilities:W(B(t,`requiredCapabilities`,`required_capabilities`)).filter(e=>typeof e==`string`),executorCapabilityHints:W(B(t,`executorCapabilityHints`,`executor_capability_hints`)).filter(e=>typeof e==`string`),routingOutcome:V(t,`routingOutcome`,`routing_outcome`),routingReason:V(t,`routingReason`,`routing_reason`),routingExplanation:V(t,`routingExplanation`,`routing_explanation`),matchBasis:W(B(t,`matchBasis`,`match_basis`)).filter(e=>typeof e==`string`),complexity:(()=>{let e=B(t,`complexity`,`complexity`);return typeof e==`string`||typeof e==`number`?e:null})(),complexityBasis:W(B(t,`complexityBasis`,`complexity_basis`)).filter(e=>typeof e==`string`),modelStrategySource:V(t,`modelStrategySource`,`model_strategy_source`)??void 0,actualExecution:r,executionSummary:de(B(t,`executionSummary`,`execution_summary`)),routingDecision:i,events:W(t.events).map(fe).filter(Boolean)}}function he(e){return e.executionSummary===void 0?(e.events??[]).filter(e=>!!(e.workerId||e.workerLabel||e.workerOccupationEmoji||e.workerStatus)):[]}function ge(e){return!!(e&&(e.enabled||e.independentVerification||e.conflictFreeScopes||e.reason||e.workstreamBoundaries?.length))}function _e(e){return e.actualExecution??{provider:e.actualModelProvider??null,model:e.actualModel??null,client:e.sourceApplication??null,reportedAt:e.createdAt}}function ve(){let e=new Date,t=new Date(e);return t.setUTCFullYear(t.getUTCFullYear()-1),{fromDate:ye(t),toDate:ye(e)}}function ye(e){return e.toISOString().slice(0,10)}function be(e,t){let n=z(e),r=W(n.days);if(!r.length&&!(`days`in n))return null;let i=r.map(e=>{let t=z(e);return{date:V(t,`date`,`date`)??``,completed:typeof t.completed==`number`?t.completed:0,failed:typeof t.failed==`number`?t.failed:0,cancelled:typeof t.cancelled==`number`?t.cancelled:0,total:typeof t.total==`number`?t.total:0,tasks:W(t.tasks).map(xe).filter(e=>!!e)}}).filter(({date:e})=>e),a=V(n,`fromDate`,`from_date`),o=V(n,`toDate`,`to_date`),s=i.some(({total:e,tasks:t})=>e>0||!!t?.length),c=a??(i.length?i.map(({date:e})=>e).sort()[0]:void 0),l=o??(i.length?i.map(({date:e})=>e).sort().at(-1):void 0),u=s&&c&&l?Y(i,c,l):[];return{agentId:V(n,`agentId`,`agent_id`)??t.agentId,personalSpaceId:V(n,`personalSpaceId`,`personal_space_id`)??t.personalSpaceId,fromDate:c,toDate:l,days:u}}function Y(e,t,n){let r=new Map(e.map(e=>[e.date,e])),i=new Date(`${t}T00:00:00Z`),a=new Date(`${n}T00:00:00Z`);if(Number.isNaN(i.valueOf())||Number.isNaN(a.valueOf())||i>a)return e;let o=[];for(let e=new Date(i);e<=a;e.setUTCDate(e.getUTCDate()+1)){let t=ye(e);o.push(r.get(t)??{date:t,completed:0,failed:0,cancelled:0,total:0,tasks:[]})}return o.reverse()}function xe(e){let t=z(e),n=V(t,`taskId`,`task_id`);if(!n)return null;let r=K(B(t,`actualExecution`,`actual_execution`))??K({executor:V(t,`actualExecutor`,`actual_executor`),provider:V(t,`actualModelProvider`,`actual_model_provider`),model:V(t,`actualModel`,`actual_model`),client:V(t,`sourceApplication`,`source_application`)});return{taskId:n,title:V(t,`title`,`title`)??n,status:V(t,`status`,`status`),summary:V(t,`summary`,`summary`)??``,occurredAt:V(t,`occurredAt`,`occurred_at`)??``,personalProjectId:V(t,`personalProjectId`,`personal_project_id`),assignmentId:V(t,`assignmentId`,`assignment_id`),collaborators:W(t.collaborators).map(ue),sourceApplication:V(t,`sourceApplication`,`source_application`),sourceSessionId:V(t,`sourceSessionId`,`source_session_id`),sourceSessionUrl:V(t,`sourceSessionUrl`,`source_session_url`),workerRuntime:ae(B(t,`workerRuntime`,`worker_runtime`)),toolsUsed:H(t,`toolsUsed`,`tools_used`),tokenUsage:ie(B(t,`tokenUsage`,`token_usage`)),actualExecution:r,actualModelProvider:V(t,`actualModelProvider`,`actual_model_provider`),actualModel:V(t,`actualModel`,`actual_model`)}}var Se={class:`project-agent-assignment-dialog-header`},Ce={id:`project-agent-assignment-dialog-title`},we=[`disabled`],Te={class:`project-agent-assignment-dialog-fields`},Ee={key:0},De={key:1},Oe=[`value`],ke={key:2},Ae={key:3,class:`project-agent-assignment-wide-field`},je=[`disabled`],X={key:4},Me=[`disabled`],Ne={key:5},Pe=[`disabled`,`placeholder`],Fe={class:`project-agent-assignment-wide-field`},Ie=[`disabled`,`placeholder`],Le={key:0,class:`project-agent-assignment-dialog-error`,role:`alert`},Z={class:`project-agent-assignment-dialog-actions`},Re=[`disabled`],ze=[`disabled`],Be=P(o({__name:`AgentAssignmentDialog`,props:{open:{type:Boolean},agent:{},assignment:{default:null},action:{default:`assign`},projects:{},availableAgents:{default:()=>[]},defaultProjectId:{default:null}},emits:[`close`,`saved`,`changed`],setup(e,{emit:t}){let r=e,i=t,o=c(``),s=c(``),p=c(``),h=c(``),g=c(``),_=c(``),y=c(!1),x=c(``),{dialogRef:S,initialFocusRef:E,onCancel:O,onKeydown:k}=ne(()=>r.open,()=>i(`close`)),A=l(()=>r.action!==`assign`),j=l(()=>r.projects.map(e=>({value:e.project_id,label:e.profile.name,meta:e.project_id}))),M=l(()=>r.availableAgents.filter(e=>e.agentId!==r.agent?.agentId&&e.profile.status===`active`).map(e=>({value:e.agentId,label:e.profile.name,meta:e.agentId})));ee(()=>[r.open,r.agent,r.assignment,r.action,r.defaultProjectId],()=>{r.open&&(o.value=r.assignment?.personalProjectId??r.defaultProjectId??r.projects[0]?.project_id??``,s.value=``,p.value=r.assignment?.responsibility??r.agent?.profile.responsibility??``,h.value=r.assignment?.scope??``,g.value=r.assignment?.workKinds?.join(`
|
|
2
|
-
`)??``,_.value=``,x.value=``)},{immediate:!0});async function N(){if(!r.agent)return;x.value=``;let e=_.value.trim(),t=p.value.trim();if(!e||r.action===`assign`&&!t){x.value=u(`projectAgents.assignmentDialog.required`);return}if(r.action===`replace`&&!s.value){x.value=u(`projectAgents.assignmentDialog.replacementRequired`);return}y.value=!0;try{if(r.action===`assign`){let n=await D(`/api/project-agent-assignments`,{personalSpaceId:r.agent.personalSpaceId,personalProjectId:o.value,agentId:r.agent.agentId,idempotencyKey:F(),responsibility:t,workKinds:P(g.value),capabilities:[],reason:e});i(`saved`,n)}else{if(!r.assignment)return;await D(`/api/project-agent-assignments/${encodeURIComponent(r.assignment.assignmentId)}/${r.action}`,r.action===`replace`?{personalSpaceId:r.agent.personalSpaceId,personalProjectId:r.assignment.personalProjectId,assignmentId:r.assignment.assignmentId,expectedRevision:r.assignment.revision??0,replacementAgentId:s.value,idempotencyKey:F(),responsibility:t||r.assignment.responsibility,workKinds:P(g.value),capabilities:r.assignment.capabilities??[],reason:e}:{personalSpaceId:r.agent.personalSpaceId,personalProjectId:r.assignment.personalProjectId,assignmentId:r.assignment.assignmentId,expectedRevision:r.assignment.revision??0,reason:e}),i(`changed`)}i(`close`)}catch(e){x.value=e instanceof Error?e.message:u(`projectAgents.assignmentDialog.saveFailed`)}finally{y.value=!1}}function P(e){return[...new Set(e.split(`
|
|
3
|
-
`).map(e=>e.trim()).filter(Boolean))]}function F(){return`project-agent-assignment-${typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}`}return(t,c)=>e.open?(a(),T(`dialog`,{key:0,ref_key:`dialogRef`,ref:S,class:`project-agent-assignment-dialog vue-dialog`,"aria-modal":`true`,"aria-labelledby":`project-agent-assignment-dialog-title`,onCancel:c[8]||=(...e)=>b(O)&&b(O)(...e),onKeydown:c[9]||=(...e)=>b(k)&&b(k)(...e)},[C(`form`,{class:`project-agent-assignment-dialog-shell`,onSubmit:v(N,[`prevent`])},[C(`header`,Se,[C(`h3`,Ce,d(b(u)(`projectAgents.assignmentDialog.${A.value?e.action:`assign`}Title`)),1),C(`button`,{ref_key:`initialFocusRef`,ref:E,"data-dialog-initial-focus":``,class:`quiet-button`,type:`button`,disabled:y.value,onClick:c[0]||=e=>i(`close`)},d(b(u)(`common.actions.close`)),9,we)]),C(`div`,Te,[A.value?(a(),T(`label`,De,[C(`span`,null,d(b(u)(`projectAgents.fields.project`)),1),C(`input`,{value:r.assignment?r.assignment.personalProjectId:``,disabled:``},null,8,Oe)])):(a(),T(`label`,Ee,[C(`span`,null,d(b(u)(`projectAgents.fields.project`)),1),w(L,{modelValue:o.value,"onUpdate:modelValue":c[1]||=e=>o.value=e,"control-id":`project-agent-assignment-project`,options:j.value,label:b(u)(`projectAgents.fields.project`),placeholder:b(u)(`projectAgents.dialog.projectPlaceholder`),disabled:y.value,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`,`disabled`])])),A.value&&e.action===`replace`?(a(),T(`label`,ke,[C(`span`,null,d(b(u)(`projectAgents.assignmentDialog.replacement`)),1),w(L,{modelValue:s.value,"onUpdate:modelValue":c[2]||=e=>s.value=e,"control-id":`project-agent-assignment-replacement`,options:M.value,label:b(u)(`projectAgents.assignmentDialog.replacement`),placeholder:b(u)(`projectAgents.assignmentDialog.replacementPlaceholder`),disabled:y.value,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`,`disabled`])])):f(``,!0),A.value?f(``,!0):(a(),T(`label`,Ae,[C(`span`,null,d(b(u)(`projectAgents.fields.responsibility`)),1),n(C(`textarea`,{"onUpdate:modelValue":c[3]||=e=>p.value=e,rows:`3`,maxlength:`4096`,disabled:y.value,required:``},null,8,je),[[m,p.value]])])),A.value?f(``,!0):(a(),T(`label`,X,[C(`span`,null,d(b(u)(`projectAgents.fields.scope`)),1),n(C(`input`,{"onUpdate:modelValue":c[4]||=e=>h.value=e,maxlength:`4096`,disabled:y.value},null,8,Me),[[m,h.value]])])),A.value?f(``,!0):(a(),T(`label`,Ne,[C(`span`,null,d(b(u)(`projectAgents.assignmentDialog.workKinds`)),1),n(C(`textarea`,{"onUpdate:modelValue":c[5]||=e=>g.value=e,rows:`3`,disabled:y.value,placeholder:b(u)(`projectAgents.assignmentDialog.workKindsPlaceholder`)},null,8,Pe),[[m,g.value]])])),C(`label`,Fe,[C(`span`,null,d(b(u)(`projectAgents.fields.reason`)),1),n(C(`textarea`,{"onUpdate:modelValue":c[6]||=e=>_.value=e,rows:`3`,maxlength:`2048`,disabled:y.value,placeholder:b(u)(`projectAgents.assignmentDialog.reasonPlaceholder`),required:``},null,8,Ie),[[m,_.value]])])]),x.value?(a(),T(`p`,Le,d(x.value),1)):f(``,!0),C(`footer`,Z,[C(`button`,{class:`quiet-button`,type:`button`,disabled:y.value,onClick:c[7]||=e=>i(`close`)},d(b(u)(`common.actions.cancel`)),9,Re),C(`button`,{class:`project-agent-primary-action`,type:`submit`,disabled:y.value},d(b(u)(`projectAgents.assignmentDialog.${A.value?`saveChange`:`saveAssign`}`)),9,ze)])],32)],544)):f(``,!0)}}),[[`__scopeId`,`data-v-27954ba8`]]),Ve={class:`project-agent-dialog-header`},He={id:`executor-routing-dialog-title`},Ue=[`disabled`],We={class:`project-agent-dialog-fields`},Ge=[`disabled`],Ke=[`disabled`],qe=[`disabled`],Je=[`disabled`],Ye={class:`project-agent-wide-field`},Xe=[`disabled`],Q={class:`project-agent-dialog-check`},Ze=[`disabled`],Qe={class:`project-agent-dialog-note project-agent-wide-field`},$e=[`disabled`],et=[`disabled`],tt={key:0},nt={key:1},rt=[`disabled`],it=[`disabled`],at={class:`project-agent-wide-field`},ot=[`placeholder`,`disabled`],st={class:`project-agent-wide-field`},ct=[`disabled`],lt={class:`project-agent-wide-field`},ut=[`disabled`],dt={class:`project-agent-dialog-note project-agent-wide-field`},ft={key:0,class:`project-agent-dialog-error`,role:`alert`},pt={class:`project-agent-dialog-actions`},mt=[`disabled`],ht=[`disabled`],gt=P(o({__name:`ExecutorRoutingDialog`,props:{open:{type:Boolean},mode:{},personalSpaceId:{},executor:{default:null},rule:{default:null},projects:{default:()=>[]},availableExecutors:{default:()=>[]}},emits:[`close`,`saved`],setup(t,{emit:r}){let i=t,o=r,s=c(``),h=c(``),_=c(`external`),y=c(``),x=c(100),E=c(!1),D=c(`space`),O=c(``),k=c(``),j=c(``),M=c(``),N=c(``),P=c(``),F=c(!1),I=c(``),{dialogRef:te,initialFocusRef:R,onCancel:re,onKeydown:z}=ne(()=>i.open,()=>o(`close`)),B=l(()=>!!i.executor),V=l(()=>i.mode===`executor`?B.value?`executorEditTitle`:`executorCreateTitle`:`ruleCreateTitle`),H=l(()=>i.projects.map(e=>({value:e.project_id,label:e.profile.name,meta:e.project_id})));l(()=>i.availableExecutors.map(e=>({value:e.executorId,label:e.displayName||e.label||e.executorId,meta:e.executorId}))),ee(()=>[i.open,i.mode,i.executor,i.rule],([e])=>{if(!e)return;let t=i.executor,n=i.rule;s.value=t?.executorId??``,h.value=t?.displayName??t?.label??``,_.value=t?.executorKind??`external`,y.value=t?.capabilities?.join(`
|
|
4
|
-
`)??``,x.value=t?.globalPriority??n?.priority??100,E.value=t?.healthRequired===!0,D.value=n?.scope??`space`,O.value=n?.personalProjectId??``,k.value=n?.taskId??``,j.value=n?.workKind??``,M.value=n?.requiredCapabilities?.join(`
|
|
5
|
-
`)??``,N.value=n?.executorIds?.join(`
|
|
6
|
-
`)??``,P.value=``,I.value=``},{immediate:!0});function U(e){return[...new Set(e.split(`
|
|
7
|
-
`).map(e=>e.trim()).filter(Boolean))]}function ie(e){return`${e}-${typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}`}async function ae(){if(F.value)return;let e=U(y.value),t=P.value.trim();if(i.mode===`executor`){if(!s.value.trim()||!h.value.trim()||x.value<1){I.value=u(`projectAgents.routing.editor.executorRequired`);return}}else if(!j.value.trim()||!U(N.value).length||!t){I.value=u(`projectAgents.routing.editor.ruleRequired`);return}F.value=!0,I.value=``;try{if(i.mode===`executor`){let t=await A(`/api/executors`,{personalSpaceId:i.personalSpaceId,executorId:s.value.trim(),displayName:h.value.trim(),executorKind:_.value.trim()||`external`,capabilities:e,advertisedModels:i.executor?.advertisedModels??i.executor?.availableModels??[],globalPriority:x.value,healthRequired:E.value,expectedRevision:i.executor?.revision,idempotencyKey:ie(`executor-directory`)});o(`saved`,t)}else{let e=await A(`/api/executor-routing-rules`,{personalSpaceId:D.value===`global`?void 0:i.personalSpaceId,scope:D.value,personalProjectId:(D.value===`project`||D.value===`task`)&&O.value||void 0,taskId:D.value===`task`&&k.value||void 0,workKind:j.value.trim(),requiredCapabilities:U(M.value),executorIds:U(N.value),priority:x.value,reason:t,idempotencyKey:ie(`executor-rule`)});o(`saved`,e)}o(`close`)}catch(e){I.value=e instanceof Error?e.message:u(`projectAgents.routing.editor.saveFailed`)}finally{F.value=!1}}return(r,i)=>t.open?(a(),T(`dialog`,{key:0,ref_key:`dialogRef`,ref:te,class:`project-agent-dialog vue-dialog`,"aria-modal":`true`,"aria-labelledby":`executor-routing-dialog-title`,onCancel:i[16]||=(...e)=>b(re)&&b(re)(...e),onKeydown:i[17]||=(...e)=>b(z)&&b(z)(...e)},[C(`form`,{class:`project-agent-dialog-shell`,onSubmit:v(ae,[`prevent`])},[C(`header`,Ve,[C(`h3`,He,d(b(u)(`projectAgents.routing.editor.${V.value}`)),1),C(`button`,{ref_key:`initialFocusRef`,ref:R,"data-dialog-initial-focus":``,class:`quiet-button`,type:`button`,disabled:F.value,onClick:i[0]||=e=>o(`close`)},d(b(u)(`common.actions.close`)),9,Ue)]),C(`div`,We,[t.mode===`executor`?(a(),T(g,{key:0},[C(`label`,null,[C(`span`,null,d(b(u)(`projectAgents.routing.editor.executorId`)),1),n(C(`input`,{"onUpdate:modelValue":i[1]||=e=>s.value=e,maxlength:`128`,disabled:B.value||F.value,required:``},null,8,Ge),[[m,s.value]])]),C(`label`,null,[C(`span`,null,d(b(u)(`projectAgents.routing.editor.displayName`)),1),n(C(`input`,{"onUpdate:modelValue":i[2]||=e=>h.value=e,maxlength:`160`,disabled:F.value,required:``},null,8,Ke),[[m,h.value]])]),C(`label`,null,[C(`span`,null,d(b(u)(`projectAgents.routing.editor.executorKind`)),1),n(C(`input`,{"onUpdate:modelValue":i[3]||=e=>_.value=e,maxlength:`128`,disabled:F.value},null,8,qe),[[m,_.value]])]),C(`label`,null,[C(`span`,null,d(b(u)(`projectAgents.routing.editor.priority`)),1),n(C(`input`,{"onUpdate:modelValue":i[4]||=e=>x.value=e,type:`number`,min:`1`,max:`1000000`,disabled:F.value,required:``},null,8,Je),[[m,x.value,void 0,{number:!0}]])]),C(`label`,Ye,[C(`span`,null,d(b(u)(`projectAgents.routing.editor.capabilities`)),1),n(C(`textarea`,{"onUpdate:modelValue":i[5]||=e=>y.value=e,rows:`3`,disabled:F.value},null,8,Xe),[[m,y.value]])]),C(`label`,Q,[n(C(`input`,{"onUpdate:modelValue":i[6]||=e=>E.value=e,type:`checkbox`,disabled:F.value},null,8,Ze),[[p,E.value]]),i[18]||=e(),C(`span`,null,d(b(u)(`projectAgents.routing.editor.healthRequired`)),1)]),C(`p`,Qe,d(b(u)(`projectAgents.routing.editor.evidenceNote`)),1)],64)):(a(),T(g,{key:1},[C(`label`,null,[C(`span`,null,d(b(u)(`projectAgents.routing.editor.scope`)),1),n(C(`select`,{"onUpdate:modelValue":i[7]||=e=>D.value=e,disabled:F.value},[...i[19]||=[C(`option`,{value:`space`},`space`,-1),C(`option`,{value:`project`},`project`,-1),C(`option`,{value:`task`},`task`,-1)]],8,$e),[[S,D.value]])]),C(`label`,null,[C(`span`,null,d(b(u)(`projectAgents.routing.editor.priority`)),1),n(C(`input`,{"onUpdate:modelValue":i[8]||=e=>x.value=e,type:`number`,min:`1`,max:`1000000`,disabled:F.value,required:``},null,8,et),[[m,x.value,void 0,{number:!0}]])]),D.value===`project`||D.value===`task`?(a(),T(`label`,tt,[C(`span`,null,d(b(u)(`projectAgents.fields.project`)),1),w(L,{modelValue:O.value,"onUpdate:modelValue":i[9]||=e=>O.value=e,"control-id":`executor-rule-project`,options:H.value,label:b(u)(`projectAgents.fields.project`),disabled:F.value},null,8,[`modelValue`,`options`,`label`,`disabled`])])):f(``,!0),D.value===`task`?(a(),T(`label`,nt,[C(`span`,null,d(b(u)(`projectAgents.routing.editor.taskId`)),1),n(C(`input`,{"onUpdate:modelValue":i[10]||=e=>k.value=e,maxlength:`128`,disabled:F.value},null,8,rt),[[m,k.value]])])):f(``,!0),C(`label`,null,[C(`span`,null,d(b(u)(`projectAgents.routing.editor.workKind`)),1),n(C(`input`,{"onUpdate:modelValue":i[11]||=e=>j.value=e,maxlength:`128`,disabled:F.value,required:``},null,8,it),[[m,j.value]])]),C(`label`,at,[C(`span`,null,d(b(u)(`projectAgents.routing.editor.executorIds`)),1),n(C(`textarea`,{"onUpdate:modelValue":i[12]||=e=>N.value=e,rows:`3`,placeholder:b(u)(`projectAgents.routing.editor.executorIdsPlaceholder`),disabled:F.value,required:``},null,8,ot),[[m,N.value]])]),C(`label`,st,[C(`span`,null,d(b(u)(`projectAgents.routing.editor.requiredCapabilities`)),1),n(C(`textarea`,{"onUpdate:modelValue":i[13]||=e=>M.value=e,rows:`3`,disabled:F.value},null,8,ct),[[m,M.value]])]),C(`label`,lt,[C(`span`,null,d(b(u)(`projectAgents.fields.reason`)),1),n(C(`textarea`,{"onUpdate:modelValue":i[14]||=e=>P.value=e,rows:`3`,disabled:F.value,required:``},null,8,ut),[[m,P.value]])]),C(`p`,dt,d(b(u)(`projectAgents.routing.editor.ruleNote`)),1)],64))]),I.value?(a(),T(`p`,ft,d(I.value),1)):f(``,!0),C(`footer`,pt,[C(`button`,{class:`quiet-button`,type:`button`,disabled:F.value,onClick:i[15]||=e=>o(`close`)},d(b(u)(`common.actions.cancel`)),9,mt),C(`button`,{class:`project-agent-primary-action`,type:`submit`,disabled:F.value},d(b(u)(`projectAgents.routing.editor.save`)),9,ht)])],32)],544)):f(``,!0)}}),[[`__scopeId`,`data-v-6b96c90d`]]),_t=[`aria-label`,`aria-busy`],vt={key:0,class:`project-agent-policy-state`,role:`status`},yt={key:1,class:`project-agent-policy-options`},bt=[`checked`,`disabled`],xt=[`checked`,`disabled`],St={class:`project-agent-policy-feedback`,"aria-live":`polite`},Ct={key:0,role:`alert`},wt=[`disabled`],Tt={key:1,role:`status`},Et={key:2,role:`status`},Dt=P(o({__name:`ProjectAgentAutomationPolicyPanel`,props:{personalSpaceId:{},personalProjectId:{},projectName:{}},setup(t){let n=t,r=c(y()),i=c(!1),o=c(!1),s=c(``),p=c(``),m=c(!1),h=0,g=l(()=>i.value||o.value);ee(()=>[n.personalSpaceId,n.personalProjectId],()=>void _(),{immediate:!0});async function _(){let e=++h;if(r.value=y(),m.value=!1,p.value=``,!(!n.personalSpaceId||!n.personalProjectId)){i.value=!0,s.value=``;try{let t=await j(`/api/project-agent-coordination-policy?${new URLSearchParams({personalSpaceId:n.personalSpaceId,personalProjectId:n.personalProjectId})}`);e===h&&(r.value=x(t))}catch(t){e===h&&(s.value=t instanceof Error?t.message:u(`projectAgents.coordination.loadFailed`))}finally{e===h&&(i.value=!1)}}}async function v(e,t){if(g.value)return;let i={...r.value},a=t.currentTarget.checked;r.value={...r.value,[e]:a},o.value=!0,m.value=!1,p.value=``;try{let e=await O(`/api/project-agent-coordination-policy`,{personalSpaceId:n.personalSpaceId,personalProjectId:n.personalProjectId,askBeforeRecruitment:r.value.askBeforeRecruitment,autoReusePreviousAgent:r.value.autoReusePreviousAgent});r.value=x(e),m.value=!0}catch(e){r.value=i,p.value=e instanceof Error?e.message:u(`projectAgents.coordination.saveFailed`)}finally{o.value=!1}}function y(){return{personalSpaceId:n.personalSpaceId,personalProjectId:n.personalProjectId,askBeforeRecruitment:!0,autoReusePreviousAgent:!0,updatedAt:null}}function x(e){let t=e&&typeof e==`object`?e:{};return{personalSpaceId:w(t.personalSpaceId??t.personal_space_id)||n.personalSpaceId,personalProjectId:w(t.personalProjectId??t.personal_project_id)||n.personalProjectId,askBeforeRecruitment:S(t.askBeforeRecruitment??t.ask_before_recruitment,!0),autoReusePreviousAgent:S(t.autoReusePreviousAgent??t.auto_reuse_previous_agent,!0),updatedAt:w(t.updatedAt??t.updated_at)}}function S(e,t){return typeof e==`boolean`?e:t}function w(e){return typeof e==`string`&&e?e:null}return(n,c)=>(a(),T(`section`,{class:`project-agent-automation-policy`,"aria-label":b(u)(`projectAgents.coordination.aria`,{project:t.projectName}),"aria-busy":g.value},[C(`header`,null,[C(`h3`,null,d(b(u)(`projectAgents.coordination.title`)),1),C(`span`,null,d(t.projectName),1)]),i.value?(a(),T(`p`,vt,d(b(u)(`projectAgents.coordination.loading`)),1)):(a(),T(`div`,yt,[C(`label`,null,[C(`span`,null,[C(`strong`,null,d(b(u)(`projectAgents.coordination.autoReuse`)),1),C(`small`,null,d(b(u)(`projectAgents.coordination.autoReuseMeta`)),1)]),C(`input`,{checked:r.value.autoReusePreviousAgent,disabled:g.value,type:`checkbox`,role:`switch`,onChange:c[0]||=e=>v(`autoReusePreviousAgent`,e)},null,40,bt)]),C(`label`,null,[C(`span`,null,[C(`strong`,null,d(b(u)(`projectAgents.coordination.askBeforeRecruitment`)),1),C(`small`,null,d(b(u)(`projectAgents.coordination.askBeforeRecruitmentMeta`)),1)]),C(`input`,{checked:r.value.askBeforeRecruitment,disabled:g.value,type:`checkbox`,role:`switch`,onChange:c[1]||=e=>v(`askBeforeRecruitment`,e)},null,40,xt)])])),C(`div`,St,[s.value||p.value?(a(),T(`p`,Ct,[e(d(s.value||p.value)+` `,1),s.value?(a(),T(`button`,{key:0,type:`button`,disabled:g.value,onClick:_},d(b(u)(`projectAgents.retry`)),9,wt)):f(``,!0)])):o.value?(a(),T(`p`,Tt,d(b(u)(`projectAgents.coordination.saving`)),1)):m.value?(a(),T(`p`,Et,d(b(u)(`projectAgents.coordination.saved`)),1)):f(``,!0)])],8,_t))}}),[[`__scopeId`,`data-v-4160a96e`]]),Ot={key:0,class:`project-agent-source-state`,role:`status`},kt={key:1,class:`project-agent-source-state`,role:`status`},At={key:2,class:`project-agent-source-state is-error`,role:`alert`},jt=P(o({__name:`ProjectAgentDetailState`,props:{status:{},error:{}},emits:[`retry`],setup(e){return(t,n)=>e.status===`idle`?(a(),T(`div`,Ot,d(b(u)(`projectAgents.detail.notLoaded`)),1)):e.status===`loading`?(a(),T(`div`,kt,d(b(u)(`projectAgents.detail.loadingSection`)),1)):e.status===`error`?(a(),T(`div`,At,[C(`span`,null,d(e.error||b(u)(`projectAgents.detail.sectionUnavailable`)),1),C(`button`,{class:`quiet-button`,type:`button`,onClick:n[0]||=e=>t.$emit(`retry`)},d(b(u)(`projectAgents.retry`)),1)])):r(t.$slots,`default`,{},void 0,!0,3)}}),[[`__scopeId`,`data-v-f174e20d`]]),Mt={class:`project-agent-dialog-header`},Nt={id:`project-agent-dialog-title`},Pt=[`disabled`],Ft={class:`project-agent-dialog-fields`},It=[`disabled`],Lt={value:`active`},Rt={value:`inactive`},zt={value:`archived`},Bt=[`disabled`],$={value:`durable`},Vt={value:`hr`},Ht={key:0,value:`temporary`,disabled:``},Ut={key:1,value:`coordinator`,disabled:``},Wt=[`disabled`,`placeholder`],Gt=[`disabled`,`placeholder`],Kt=[`disabled`,`placeholder`],qt={key:0,class:`project-agent-id-note`},Jt={class:`project-agent-wide-field`},Yt=[`disabled`,`placeholder`],Xt={class:`project-agent-wide-field`},Zt=[`disabled`,`placeholder`],Qt={class:`project-agent-wide-field`},$t=[`disabled`,`placeholder`],en={class:`project-agent-wide-field project-agent-strategy-fields`},tn=[`disabled`],nn={value:`flexible`},rn={value:`locked`},an=[`disabled`],on={class:`project-agent-wide-field`},sn=[`disabled`,`placeholder`],cn={key:0,class:`project-agent-dialog-error`,role:`alert`},ln={class:`project-agent-dialog-actions`},un=[`disabled`],dn=[`disabled`],fn=P(o({__name:`ProjectAgentDialog`,props:{open:{type:Boolean},agent:{},projects:{},defaultProjectId:{},personalSpaceId:{}},emits:[`close`,`saved`],setup(e,{emit:t}){let r=e,i=t,o=c(``),s=c(``),p=c(``),h=c(``),g=c(``),_=c(``),y=c(``),x=c(`active`),E=c(`durable`),O=c(`adaptive`),k=c(`flexible`),j=c(``),M=c(!1),N=c(``),{dialogRef:P,initialFocusRef:F,onCancel:I,onKeydown:te}=ne(()=>r.open,()=>i(`close`)),R=l(()=>!!r.agent),re=l(()=>r.projects.map(e=>({value:e.project_id,label:e.profile.name,meta:e.project_id})));ee(()=>[r.open,r.agent,r.defaultProjectId],([e,t,n])=>{if(!e)return;o.value=t?.personalProjectId??n??r.projects[0]?.project_id??``,s.value=t?.agentId??``,p.value=t?.profile.name??``,h.value=t?.profile.occupationEmoji??``,g.value=t?.profile.responsibility??``,_.value=(t?.profile.capabilities??[]).join(`
|
|
8
|
-
`),y.value=(t?.profile.initialPreferences??[]).join(`
|
|
9
|
-
`),x.value=t?.profile.status??`active`,E.value=t?.profile.agentType??`durable`,O.value=t?.profile.defaultModelStrategy?.mode??`adaptive`,k.value=t?.profile.executorPolicy?.mode??`flexible`;let i=t?.profile.executorPolicy,a=i?.mode===`locked`?i.lockedExecutorIds:i?.preferredExecutorIds;j.value=(a?.length?a:i?.allowList?.map(({executorId:e})=>e)??[]).join(`
|
|
10
|
-
`),N.value=``},{immediate:!0});function z(e){let t=e.split(`
|
|
11
|
-
`).map(e=>e.trim()).filter(Boolean),n=t.map(e=>e.toLocaleLowerCase());return new Set(n).size===n.length?t:null}async function B(){if(M.value)return;let e=o.value.trim(),t=s.value.trim(),n=p.value.trim(),a=h.value.trim(),c=g.value.trim();if(!t||!n||!c){N.value=u(`projectAgents.dialog.required`);return}let l=r.projects.find(({project_id:t})=>t===e);if(e&&!l){N.value=u(`projectAgents.dialog.projectUnavailable`);return}if(a&&!V(a)){N.value=u(`projectAgents.dialog.occupationEmojiInvalid`);return}let d=l?.personal_space_id??r.personalSpaceId??r.agent?.personalSpaceId;if(!d){N.value=u(`projectAgents.dialog.spaceUnavailable`);return}let f=z(_.value),m=z(y.value);if(!f||!m){N.value=u(`projectAgents.dialog.duplicate`);return}let v=z(j.value);if(!v||k.value===`locked`&&!v.length){N.value=u(`projectAgents.dialog.duplicate`);return}M.value=!0,N.value=``;try{let r={name:n,responsibility:c,capabilities:f,initialPreferences:m,status:x.value};a&&(r.occupationEmoji=a),E.value!==`durable`&&(r.agentType=E.value),O.value!==`adaptive`&&(r.defaultModelStrategy={mode:O.value}),(k.value!==`flexible`||v.length)&&(r.executorPolicy={mode:k.value,lockedExecutorIds:k.value===`locked`?v:[],preferredExecutorIds:k.value===`flexible`?v:[]});let o=await A(`/api/project-agents`,{personalSpaceId:d,personalProjectId:null,agentId:t,profile:r}),s=o;if(e){let n=await D(`/api/project-agent-assignments`,{personalSpaceId:d,personalProjectId:e,agentId:t,idempotencyKey:`directory:${t}:${Date.now()}`,responsibility:c,capabilities:f,reason:u(`projectAgents.dialog.initialAssignmentReason`)});s={...o,personalProjectId:e,assignments:[n]}}i(`saved`,s),i(`close`)}catch(e){N.value=e instanceof Error?e.message:u(`projectAgents.dialog.saveFailed`)}finally{M.value=!1}}function V(e){return Array.from(e).length>32||/\s/u.test(e)||Array.from(new Intl.Segmenter(void 0,{granularity:`grapheme`}).segment(e)).length!==1?!1:/\p{Extended_Pictographic}|\p{Regional_Indicator}{2}|[#*0-9]\uFE0F?\u20E3/u.test(e)&&/^[\p{Extended_Pictographic}\p{Emoji_Component}\uFE0E\uFE0F\u200D\u{E0020}-\u{E007F}#*0-9]+$/u.test(e)}return(t,r)=>e.open?(a(),T(`dialog`,{key:0,ref_key:`dialogRef`,ref:P,class:`project-agent-dialog vue-dialog`,"aria-modal":`true`,"aria-labelledby":`project-agent-dialog-title`,onCancel:r[14]||=(...e)=>b(I)&&b(I)(...e),onKeydown:r[15]||=(...e)=>b(te)&&b(te)(...e)},[C(`form`,{class:`project-agent-dialog-shell`,onSubmit:v(B,[`prevent`])},[C(`header`,Mt,[C(`h3`,Nt,d(R.value?b(u)(`projectAgents.dialog.editTitle`):b(u)(`projectAgents.dialog.createTitle`)),1),C(`button`,{ref_key:`initialFocusRef`,ref:F,"data-dialog-initial-focus":``,class:`quiet-button`,type:`button`,disabled:M.value,onClick:r[0]||=e=>i(`close`)},d(b(u)(`common.actions.close`)),9,Pt)]),C(`div`,Ft,[C(`label`,null,[C(`span`,null,d(b(u)(`projectAgents.fields.project`)),1),w(L,{modelValue:o.value,"onUpdate:modelValue":r[1]||=e=>o.value=e,"control-id":`project-agent-project`,options:re.value,label:b(u)(`projectAgents.fields.project`),placeholder:b(u)(`projectAgents.dialog.projectPlaceholder`),disabled:R.value||M.value},null,8,[`modelValue`,`options`,`label`,`placeholder`,`disabled`])]),C(`label`,null,[C(`span`,null,d(b(u)(`projectAgents.fields.status`)),1),n(C(`select`,{"onUpdate:modelValue":r[2]||=e=>x.value=e,name:`project-agent-status`,disabled:M.value},[C(`option`,Lt,d(b(u)(`projectAgents.status.active`)),1),C(`option`,Rt,d(b(u)(`projectAgents.status.inactive`)),1),C(`option`,zt,d(b(u)(`projectAgents.status.archived`)),1)],8,It),[[S,x.value]])]),C(`label`,null,[C(`span`,null,d(b(u)(`projectAgents.fields.agentType`)),1),n(C(`select`,{"onUpdate:modelValue":r[3]||=e=>E.value=e,name:`project-agent-type`,disabled:M.value},[C(`option`,$,d(b(u)(`projectAgents.agentType.durable`)),1),C(`option`,Vt,d(b(u)(`projectAgents.agentType.hr`)),1),R.value&&E.value===`temporary`?(a(),T(`option`,Ht,d(b(u)(`projectAgents.agentType.temporary`)),1)):f(``,!0),R.value&&E.value===`coordinator`?(a(),T(`option`,Ut,d(b(u)(`projectAgents.agentType.coordinator`)),1)):f(``,!0)],8,Bt),[[S,E.value]])]),C(`label`,null,[C(`span`,null,d(b(u)(`projectAgents.fields.agentId`)),1),n(C(`input`,{"onUpdate:modelValue":r[4]||=e=>s.value=e,name:`project-agent-id`,maxlength:`128`,required:``,disabled:R.value||M.value,placeholder:b(u)(`projectAgents.dialog.agentIdPlaceholder`)},null,8,Wt),[[m,s.value]])]),C(`label`,null,[C(`span`,null,d(b(u)(`projectAgents.fields.name`)),1),n(C(`input`,{"onUpdate:modelValue":r[5]||=e=>p.value=e,name:`project-agent-name`,maxlength:`160`,required:``,disabled:M.value,placeholder:b(u)(`projectAgents.dialog.namePlaceholder`)},null,8,Gt),[[m,p.value]])]),C(`label`,null,[C(`span`,null,d(b(u)(`projectAgents.fields.occupationEmoji`)),1),n(C(`input`,{"onUpdate:modelValue":r[6]||=e=>h.value=e,name:`project-agent-occupation-emoji`,maxlength:`64`,autocomplete:`off`,disabled:M.value,placeholder:b(u)(`projectAgents.dialog.occupationEmojiPlaceholder`)},null,8,Kt),[[m,h.value]])]),R.value?(a(),T(`small`,qt,d(b(u)(`projectAgents.dialog.idLocked`)),1)):f(``,!0),C(`label`,Jt,[C(`span`,null,d(b(u)(`projectAgents.fields.responsibility`)),1),n(C(`textarea`,{"onUpdate:modelValue":r[7]||=e=>g.value=e,name:`project-agent-responsibility`,maxlength:`4096`,rows:`4`,required:``,disabled:M.value,placeholder:b(u)(`projectAgents.dialog.responsibilityPlaceholder`)},null,8,Yt),[[m,g.value]])]),C(`label`,Xt,[C(`span`,null,d(b(u)(`projectAgents.fields.capabilities`)),1),n(C(`textarea`,{"onUpdate:modelValue":r[8]||=e=>_.value=e,name:`project-agent-capabilities`,maxlength:`8192`,rows:`4`,disabled:M.value,placeholder:b(u)(`projectAgents.dialog.capabilitiesPlaceholder`)},null,8,Zt),[[m,_.value]])]),C(`label`,Qt,[C(`span`,null,d(b(u)(`projectAgents.fields.initialPreferences`)),1),n(C(`textarea`,{"onUpdate:modelValue":r[9]||=e=>y.value=e,name:`project-agent-preferences`,maxlength:`8192`,rows:`4`,disabled:M.value,placeholder:b(u)(`projectAgents.dialog.preferencesPlaceholder`)},null,8,$t),[[m,y.value]])]),C(`fieldset`,en,[C(`legend`,null,d(b(u)(`projectAgents.fields.defaultModelStrategy`)),1),C(`label`,null,[C(`span`,null,d(b(u)(`projectAgents.fields.executorPolicy`)),1),n(C(`select`,{"onUpdate:modelValue":r[10]||=e=>k.value=e,name:`project-agent-selection-mode`,disabled:M.value},[C(`option`,nn,d(b(u)(`projectAgents.strategy.flexible`)),1),C(`option`,rn,d(b(u)(`projectAgents.strategy.locked`)),1)],8,tn),[[S,k.value]])]),C(`label`,null,[C(`span`,null,d(b(u)(`projectAgents.fields.modelIntent`)),1),n(C(`select`,{"onUpdate:modelValue":r[11]||=e=>O.value=e,name:`project-agent-model-mode`,disabled:M.value},[...r[16]||=[C(`option`,{value:`adaptive`},`adaptive`,-1),C(`option`,{value:`fast`},`fast`,-1),C(`option`,{value:`balanced`},`balanced`,-1),C(`option`,{value:`deep`},`deep`,-1)]],8,an),[[S,O.value]])]),C(`label`,on,[C(`span`,null,d(b(u)(`projectAgents.fields.allowList`)),1),n(C(`textarea`,{"onUpdate:modelValue":r[12]||=e=>j.value=e,name:`project-agent-allow-list`,rows:`3`,disabled:M.value,placeholder:b(u)(`projectAgents.dialog.allowListPlaceholder`)},null,8,sn),[[m,j.value]])]),C(`small`,null,d(k.value===`locked`?b(u)(`projectAgents.strategy.lockedUnavailable`):b(u)(`projectAgents.strategy.providerNeutral`)),1)])]),N.value?(a(),T(`p`,cn,d(N.value),1)):f(``,!0),C(`footer`,ln,[C(`button`,{class:`quiet-button`,type:`button`,disabled:M.value,onClick:r[13]||=e=>i(`close`)},d(b(u)(`common.actions.cancel`)),9,un),C(`button`,{class:`project-agent-primary-action`,type:`submit`,disabled:M.value},d(R.value?b(u)(`projectAgents.dialog.saveEdit`):b(u)(`projectAgents.dialog.saveCreate`)),9,dn)])],32)],544)):f(``,!0)}}),[[`__scopeId`,`data-v-83825f22`]]),pn=[`aria-label`],mn={class:`project-agents-header`},hn={class:`project-agents-header-meta`},gn={class:`project-agent-header-actions`},_n=[`disabled`],vn=[`disabled`],yn={class:`project-agents-summary`,"aria-live":`polite`},bn={class:`project-agents-toolbar`},xn={class:`project-agents-search`},Sn={class:`sr-only`},Cn=[`placeholder`],wn=[`aria-label`],Tn=[`aria-pressed`,`onClick`],En={key:1,class:`project-agents-state`},Dn={key:2,class:`project-agents-state is-error`,role:`alert`},On={key:3,class:`project-agents-state`},kn=[`disabled`],An={key:4,class:`project-agents-state`},jn={key:5,class:`project-agents-directory`},Mn=[`aria-label`],Nn=[`aria-current`,`onClick`],Pn={class:`project-agent-row-heading`},Fn=[`aria-label`],In={class:`project-agent-kind`},Ln={class:`project-agent-row-projects`},Rn={key:0},zn={key:1},Bn={class:`project-agent-row-responsibility`},Vn={class:`project-agent-row-work`},Hn={class:`project-agent-row-capabilities`},Un=[`aria-label`],Wn={class:`project-agent-detail-heading`},Gn=[`aria-label`],Kn={key:0},qn={key:0},Jn={class:`project-agent-detail-actions`},Yn=[`disabled`],Xn=[`disabled`],Zn={key:0,class:`project-agent-detail-notice`,role:`status`},Qn={key:1,class:`employee-project-overview`,"aria-labelledby":`employee-project-overview-title`},$n={class:`employee-project-overview-heading`},er={id:`employee-project-overview-title`},tr={key:0,class:`employee-assigned-projects`},nr={key:1,class:`employee-project-overview-hint`},rr={class:`project-agent-detail-meta`},ir={key:0},ar={class:`project-agent-detail-source`,"data-detail-section":`recruitment`},or={class:`project-agent-detail-section`,"aria-labelledby":`project-agent-recruitment-heading`},sr={class:`project-agent-section-heading`},cr={id:`project-agent-recruitment-heading`},lr={key:0,class:`project-agent-recruitment-list`},ur={class:`project-agent-card-actions`},dr=[`disabled`,`onClick`],fr=[`disabled`,`onClick`],pr={class:`project-agent-compact-meta`},mr={key:1,class:`project-agent-muted`},hr={class:`project-agent-detail-section is-responsibility`},gr={key:0,class:`project-agent-tags`},_r={class:`project-agent-detail-source`,"data-detail-section":`assignments`},vr={class:`project-agent-detail-section`},yr={class:`project-agent-section-heading`},br={class:`project-agent-section-tools`},xr={key:0,class:`project-agent-assignment-list`},Sr={class:`project-agent-card-actions`},Cr=[`onClick`],wr=[`onClick`],Tr={key:0},Er={key:1,class:`project-agent-inline-list`},Dr={class:`project-agent-strategy-note`},Or={key:0},kr={key:2,class:`project-agent-tags`},Ar={key:3},jr={key:1,class:`project-agent-muted`},Mr={class:`project-agent-detail-source`,"data-detail-section":`executors`},Nr={class:`project-agent-detail-section`},Pr={class:`project-agent-section-heading`},Fr={class:`project-agent-muted`},Ir={key:0,class:`project-agent-tags`},Lr={key:1,class:`project-agent-blocked`},Rr={key:2,class:`project-agent-muted`},zr={class:`project-agent-section-tools`},Br={key:3,class:`project-agent-executor-list`},Vr=[`onClick`],Hr=[`disabled`,`onClick`],Ur=[`disabled`,`onClick`],Wr={class:`project-agent-detail-source`,"data-detail-section":`tasks`},Gr={class:`project-agent-detail-section`},Kr={class:`project-agent-section-heading`},qr={key:0,class:`project-agent-task-list`},Jr={key:0},Yr={key:1,class:`project-agent-inline-list`},Xr=[`aria-label`],Zr={class:`project-agent-section-heading`},Qr=[`aria-label`],$r={class:`project-agent-execution-summary-table`},ei={class:`sr-only`},ti={scope:`col`},ni={scope:`col`},ri={scope:`col`},ii={scope:`col`},ai={scope:`col`},oi={scope:`col`},si={scope:`col`},ci={scope:`row`},li={class:`project-agent-execution-worker`},ui=[`aria-label`],di={key:0},fi=[`data-label`],pi=[`data-label`],mi=[`data-label`],hi={key:0},gi={key:1},_i=[`data-label`],vi=[`href`],yi={key:1},bi={class:`project-agent-reporter-label`},xi=[`href`],Si={key:1},Ci=[`data-label`],wi=[`data-label`],Ti={key:1},Ei={key:1,class:`project-agent-muted`},Di=[`aria-label`],Oi={class:`project-agent-section-heading`},ki={class:`project-agent-execution-summary-list`},Ai=[`aria-label`],ji={key:1},Mi={class:`project-agent-execution-summary-meta`},Ni={key:0},Pi={key:0},Fi={key:1},Ii={key:2},Li={key:4},Ri={key:5,class:`project-agent-routing-decision`},zi={class:`project-agent-section-heading`},Bi={key:0},Vi={key:1},Hi={key:2},Ui={key:0},Wi={key:3},Gi={key:0},Ki={key:4},qi={class:`project-agent-execution-line`},Ji={key:0},Yi={key:1},Xi={key:2},Zi={key:6},Qi={key:7},$i={key:1,class:`project-agent-muted`},ea={class:`project-agent-detail-source`,"data-detail-section":`activity`},ta={class:`project-agent-detail-section`},na={class:`project-agent-section-heading`},ra={key:0},ia={key:0,class:`project-agent-heatmap-wrap project-agent-heatmap-viewport`},aa=[`aria-label`],oa=[`aria-label`,`aria-pressed`,`onClick`],sa={class:`sr-only`},ca={key:0,class:`project-agent-day-detail`},la={key:0,class:`project-agent-muted`},ua={key:1},da={key:1,class:`project-agent-muted`},fa={class:`project-agent-detail-source`,"data-detail-section":`clients`},pa={class:`project-agent-detail-section`},ma={class:`project-agent-section-heading`},ha={key:0,class:`project-agent-client-list`},ga={key:0},_a={key:1},va={key:2},ya={key:1,class:`project-agent-muted`},ba={class:`project-agent-detail-source`,"data-detail-section":`routing`},xa={class:`project-agent-detail-section`},Sa={class:`project-agent-section-heading`},Ca={class:`project-agent-section-tools`},wa={key:0,class:`project-agent-rule-list`},Ta=[`disabled`,`onClick`],Ea={key:1,class:`project-agent-muted`},Da={class:`project-agent-note`},Oa={class:`project-agent-detail-source`,"data-detail-section":`learning`},ka={class:`project-agent-detail-section`},Aa={class:`project-agent-section-heading`},ja={key:0,class:`project-agent-learning-list`},Ma={key:0},Na={key:1,class:`project-agent-inline-list`},Pa={key:0},Fa={key:2,class:`project-agent-evidence-list`},Ia=[`disabled`,`onClick`],La={key:3,class:`project-agent-learning-actions`},Ra=[`disabled`,`onClick`],za={key:1,class:`project-agent-muted`},Ba={class:`project-agent-note`},Va={class:`project-agent-detail-section`},Ha={key:1,class:`project-agent-detail-placeholder`},Ua=P(o({__name:`ProjectAgentsPage`,setup(r){let o=[`assignments`,`tasks`,`activity`,`recruitments`,`executors`,`routingRules`,`learning`],p=M(),v=c([]),S=c(!1),A=c(``),P=c(null),L=c(`all`),ne=c(``),H=c(``),U=c(!1),ie=c(!1),ae=c(``),G=c(null),K=c(!1),ue=c(`assign`),de=c(null),fe=c(!1),q=c({}),J=c(``),pe=c(``),ye=c(``),Y=c(``),xe=c(``),Se=c(!1),Ce=c(`executor`),we=c(null),Te=c(null),Ee=0,De=0,Oe=new Set([`awaiting_recruitment`,`queued`,`running`,`paused`,`awaiting_review`,`blocked`]);function ke(e){return`${e}:${typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}`}let Ae=l(()=>p.state?.personalProjects??[]);async function je(e){await Xe(),Le.value.some(t=>t.agentId===e.agent.agentId)||(P.value=null,L.value=`all`,ne.value=``);let t=H.value===e.agent.agentId;H.value=e.agent.agentId,t&&Q()}let X=l(()=>p.activePersonalSpace?.id??``),Me=l(()=>new Map(Ae.value.map(e=>[e.project_id,e]))),Ne=l(()=>Ae.value.map(e=>({id:e.project_id,name:e.profile.name}))),Pe=l({get:()=>P.value??Ne.value.map(e=>e.id),set:e=>{let t=Ne.value.filter(t=>e.includes(t.id)).map(e=>e.id);P.value=t.length===Ne.value.length?null:t}}),Fe=l(()=>P.value?.length===1?P.value[0]:``),Ie=l(()=>[{value:`all`,label:u(`projectAgents.status.all`)},{value:`active`,label:u(`projectAgents.status.active`)},{value:`inactive`,label:u(`projectAgents.status.inactive`)},{value:`archived`,label:u(`projectAgents.status.archived`)}]),Le=l(()=>{let e=ne.value.trim().toLocaleLowerCase(y());return v.value.filter(e=>P.value===null||xt(e).some(({id:e})=>P.value.includes(e))).filter(e=>L.value===`all`||e.profile.status===L.value).filter(t=>!e||Ct(t).toLocaleLowerCase(y()).includes(e)).sort(_t)}),Z=l(()=>Le.value.find(e=>e.agentId===H.value)??null),Re=l(()=>Z.value?F(Z.value):null),ze=l(()=>I.value.find(e=>e.id===Re.value)),Ve=l(()=>Z.value?xt(Z.value).filter(e=>Me.value.get(e.id)?.profile.lifecycle!==`archived`):[]),He=l(()=>v.value.filter(({profile:e})=>e.status===`active`).length),Ue=l(()=>v.value.reduce((e,t)=>e+bt(t).length,0)),We=l(()=>new Set(v.value.flatMap(e=>bt(e).map(({personalProjectId:e})=>e))).size),Ge=l(()=>Fe.value?Fe.value:Z.value?.assignments?.find(({status:e})=>e===`active`)?.personalProjectId??Z.value?.personalProjectId??Ae.value[0]?.project_id??null),Ke=l(()=>Z.value?.activity??null),qe=l(()=>Ke.value?.days.find(({date:e})=>e===pe.value)??null),Je=l(()=>Object.entries(Z.value?.learningEvidence??{})),Ye=l(()=>Z.value?.recruitments??[]);i(()=>{p.runtimeStatus===`idle`&&p.refresh()}),ee(X,e=>{++De,q.value={},H.value=``,v.value=[],P.value=null,e?Xe(e):p.runtimeStatus!==`loading`&&(S.value=!1)},{immediate:!0}),ee(Le,e=>{e.some(e=>e.agentId===H.value)||(H.value=e[0]?.agentId??``),e.some(e=>e.activity?.days.some(({date:e})=>e===pe.value))||(pe.value=``)},{immediate:!0}),ee([H,X],([e,t])=>{pe.value=``,e&&t&&Q(e,t)},{immediate:!0});async function Xe(e=X.value){if(!e)return;let t=++Ee;S.value=!0,A.value=``;try{let n=new URLSearchParams({personalSpaceId:e}),[r,i]=await Promise.allSettled([j(`/api/project-agents?${n}`),j(`/api/project-agent-tasks?${n}`)]);if(te(e),r.status===`rejected`)throw r.reason;if(t===Ee){let e=oo(oe(r.value)),t=i.status===`fulfilled`?$a(i.value).filter(e=>Oe.has(e.status)):[];v.value=Ga(e,t)}}catch(e){t===Ee&&(A.value=e instanceof Error?e.message:u(`projectAgents.loadError`))}finally{t===Ee&&(S.value=!1)}}async function Q(e=H.value,t=X.value){let n=v.value.find(t=>t.agentId===e);if(!n||!t)return;let r=++De;fe.value=!0,J.value=``,Qe(e,`loading`);let i=new URLSearchParams({personalSpaceId:t,agentId:e}),a=ve(),s=new URLSearchParams({personalSpaceId:t,agentId:e,fromDate:a.fromDate,toDate:a.toDate}),c={assignments:j(`/api/project-agent-assignments?${i}`),tasks:j(`/api/project-agent-tasks?${i}`),activity:j(`/api/project-agent-activity?${s}`),recruitments:j(`/api/project-agent-recruitments?personalSpaceId=${encodeURIComponent(t)}`),executors:j(`/api/executors?personalSpaceId=${encodeURIComponent(t)}`),routingRules:j(`/api/executor-routing-rules?personalSpaceId=${encodeURIComponent(t)}`),learning:j(`/api/project-agent-routing-learning?${i}`)};await Promise.all(o.map(async i=>{try{let a=await c[i];if(!tt(r,e,t))return;nt(n,i,a),$e(e,i,{status:`ready`,error:``})}catch(n){if(!tt(r,e,t))return;$e(e,i,{status:`error`,error:n instanceof Error?n.message:u(`projectAgents.detail.sectionUnavailable`)})}})),tt(r,e,t)&&(fe.value=!1)}function Ze(e=`idle`){return Object.fromEntries(o.map(t=>[t,{status:e,error:``}]))}function Qe(e,t){q.value={...q.value,[e]:Ze(t)}}function $e(e,t,n){q.value={...q.value,[e]:{...q.value[e]??Ze(),[t]:n}}}function et(e){let t=(Array.isArray(e)?e:[e]).map(e=>q.value[H.value]?.[e]??{status:`idle`,error:``});return t.find(({status:e})=>e===`error`)??t.find(({status:e})=>e===`loading`)??t.find(({status:e})=>e===`idle`)??{status:`ready`,error:``}}function tt(e,t,n){return e===De&&t===H.value&&n===X.value}function nt(e,t,n){let r;switch(t){case`assignments`:rt(n,[`assignments`,`items`]),r={assignments:Ja(n,e)};break;case`tasks`:rt(n,[`tasks`,`items`]),r={tasks:$a(n)};break;case`activity`:{let e=be(n,{agentId:H.value,personalSpaceId:X.value});if(!e)throw Error(u(`projectAgents.detail.sectionUnavailable`));r={activity:e};break}case`recruitments`:rt(n,[`recruitments`,`items`]),r={recruitments:to(n).filter(t=>no(t,e))};break;case`executors`:rt(n,[`executors`,`items`]),r={executorDirectory:Xa(n),clientEvidence:ro(n)};break;case`routingRules`:rt(n,[`rules`,`items`]),r={routingRules:io(n)};break;case`learning`:rt(n,[`learningEvidence`,`learning_evidence`,`items`],!0),r={learningEvidence:ao(n)};break}v.value=v.value.map(t=>t.agentId===e.agentId?{...t,...r}:t)}function rt(e,t,n=!1){if(Array.isArray(e))return;let r=z(e);if(!t.some(e=>Array.isArray(r[e])||n&&it(r[e])))throw Error(u(`projectAgents.detail.sectionUnavailable`))}function it(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}async function at(e,t,n){let r=t===`ignore`?n:e.learningKey??e.modelStrategyKey,i=Z.value;if(!(!r||!i||!X.value||ye.value)){if(t===`reset`&&(!e.personalProjectId||!e.workKind||!e.executor)){J.value=u(`projectAgents.learning.resetUnavailable`);return}ye.value=r;try{await O(`/api/project-agent-learning/${encodeURIComponent(r)}`,{action:t,personalSpaceId:X.value,personalProjectId:e.personalProjectId,agentId:i.agentId,workKind:e.workKind,executorId:e.executor,modelStrategy:e.modelStrategy,modelStrategyKey:e.modelStrategyKey,resetAt:t===`reset`?new Date().toISOString():void 0,idempotencyKey:t===`ignore`?`console-learning:${r}:ignore`:ke(`console-learning:${r}:reset`),reason:`Console requested ${t} for explicit evidence`}),await Q()}catch(e){J.value=e instanceof Error?e.message:u(`projectAgents.learning.updateFailed`)}finally{ye.value=``}}}async function ot(e,t){if(!(!X.value||Y.value)){Y.value=e.recruitmentId;try{await D(`/api/project-agent-recruitments/decision`,{personalSpaceId:X.value,personalProjectId:e.personalProjectId,recruitmentId:e.recruitmentId,expectedRevision:e.revision??0,decision:t,reason:u(`projectAgents.recruitment.${t}Reason`)}),await Q()}catch(e){J.value=e instanceof Error?e.message:u(`projectAgents.recruitment.decisionFailed`)}finally{Y.value=``}}}async function st(e,t){if(!(!X.value||xe.value)){xe.value=e.executorId;try{await D(`/api/executors/authorization`,{personalSpaceId:X.value,executorId:e.executorId,status:t,expectedRevision:e.permissionRevision??0,idempotencyKey:ke(`console-executor:${e.executorId}:${t}`),reason:u(`projectAgents.routing.${t===`authorized`?`authorizeReason`:`revokeReason`}`)}),await Q()}catch(e){J.value=e instanceof Error?e.message:u(`projectAgents.routing.authorizationFailed`)}finally{xe.value=``}}}function ct(e=null){Ce.value=`executor`,we.value=e,Te.value=null,Se.value=!0}function lt(e=null){Ce.value=`rule`,Te.value=e,we.value=null,Se.value=!0}function ut(){Se.value=!1,we.value=null,Te.value=null}function dt(e){Z.value&&(v.value=v.value.map(t=>t.agentId===Z.value?.agentId?{...t,executorDirectory:so([...t.executorDirectory??[],e],({executorId:e})=>e)}:t),ut())}function ft(e){Z.value&&(v.value=v.value.map(t=>t.agentId===Z.value?.agentId?{...t,routingRules:so([...t.routingRules??[],e],({ruleId:e})=>e)}:t),ut())}function pt(e){Ce.value===`executor`?dt(e):ft(e)}async function mt(e){if(!(!X.value||!e.ruleId||Y.value)){Y.value=`rule:${e.ruleId}`;try{await O(`/api/executor-routing-rules/${encodeURIComponent(e.ruleId)}`,{personalSpaceId:X.value,ruleId:e.ruleId,expectedRevision:e.revision??0,status:`disabled`,idempotencyKey:`console-rule:${e.ruleId}:disable`,reason:`Console disabled explicit routing rule`}),await Q()}catch(e){J.value=e instanceof Error?e.message:u(`projectAgents.routing.updateFailed`)}finally{Y.value=``}}}async function ht(e){if(e.profile.cleanupEligible){fe.value=!0;try{await k(`/api/project-agents/${encodeURIComponent(e.agentId)}?personalSpaceId=${encodeURIComponent(e.personalSpaceId)}&reason=archived%20test%20role`),await Xe()}catch(e){J.value=e instanceof Error?e.message:u(`projectAgents.source.cleanupFailed`)}finally{fe.value=!1}}}function _t(e,t){let n={active:0,inactive:1,archived:2};return n[e.profile.status]-n[t.profile.status]||e.profile.name.localeCompare(t.profile.name,y())||e.agentId.localeCompare(t.agentId,y())}function vt(e){return e?Me.value.get(e)?.profile.name??e:u(`projectAgents.notReported`)}function yt(e){return e.assignments??(e.personalProjectId?[St(e)]:[])}function bt(e){return[...new Map(yt(e).filter(e=>e.status===`active`).map(e=>[e.personalProjectId,e])).values()]}function xt(e){let t=F(e);return(t?I.value.find(e=>e.id===t):void 0)?.managedProjects??bt(e).map(e=>({id:e.personalProjectId,name:vt(e.personalProjectId)}))}function St(e){return{assignmentId:`legacy:${e.agentId}:${e.personalProjectId}`,personalSpaceId:e.personalSpaceId,personalProjectId:e.personalProjectId??``,agentId:e.agentId,responsibility:e.profile.responsibility,capabilities:e.profile.capabilities,status:e.profile.status===`active`?`active`:`ended`,assignedAt:e.createdAt,updatedAt:e.updatedAt,reason:null}}function Ct(e){return[e.agentId,e.profile.name,e.profile.occupationEmoji??``,e.profile.responsibility,...e.profile.capabilities??[],...e.profile.workKinds??[],...yt(e).flatMap(e=>[e.personalProjectId,e.responsibility,e.scope??``,...e.workKinds??[]]),...(e.tasks??[]).flatMap(e=>[e.taskId,e.title,e.workKind??``])].join(` `)}function wt(){G.value=null,U.value=!0}function Tt(e=``){ae.value=e,ie.value=!0}function Et(e){G.value=e,U.value=!0}function Ot(){U.value=!1,G.value=null}function kt(e,t=null,n=`assign`){let r=F(e);if(n===`assign`&&r){Tt(r);return}G.value=e,de.value=t,ue.value=n,K.value=!0}function At(){K.value=!1,de.value=null,ue.value=`assign`}function Mt(e){G.value&&(v.value=v.value.map(t=>t.agentId===G.value?.agentId?{...t,assignments:so([...t.assignments??[],e],({assignmentId:e})=>e)}:t),H.value=G.value.agentId,At())}function Nt(){At(),Q()}function Pt(e){let t=Ka(e),n=v.value.filter(e=>!(e.agentId===t.agentId&&t.personalProjectId&&e.personalProjectId===t.personalProjectId));v.value=oo([...n,t]),t.personalProjectId&&(P.value=[t.personalProjectId]),L.value=`all`,ne.value=``,H.value=t.agentId,p.notify(u(`projectAgents.saved`))}function Ft(e){if(!e)return u(`projectAgents.notReported`);let t=new Date(e);return Number.isNaN(t.valueOf())?u(`projectAgents.notReported`):new Intl.DateTimeFormat(y(),{year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}).format(t)}function It(e){if(!e)return u(`projectAgents.notReported`);let t=new Date(`${e}T00:00:00Z`);return Number.isNaN(t.valueOf())?e:new Intl.DateTimeFormat(y(),{month:`short`,day:`numeric`}).format(t)}function Lt(e){return e?.mode??`adaptive`}function Rt(e){return e?.mode??`flexible`}function zt(e){return e?.mode===`locked`}function Bt(e){return e?e.allowList?.length?e.allowList:((e.mode===`locked`?e.lockedExecutorIds:e.preferredExecutorIds)??[]).map(e=>({executorId:e})):[]}function $(e){if(e.actualExecution)return e.actualExecution;let t=[...e.events??[]].reverse().find(e=>e.actualExecution);return t?_e(t):null}function Vt(e){return e.workerLabel&&e.workerId&&e.workerLabel!==e.workerId?`${e.workerLabel} · ${e.workerId}`:e.workerLabel||e.workerId||u(`projectAgents.notReported`)}function Ht(e){return e.workerOccupationEmoji||``}function Ut(e){return Kt(e.workerStatus||e.status)}function Wt(e){return e.workerLabel||e.agentName||e.workerId||e.agentId||u(`projectAgents.notReported`)}function Gt(e){return e.workerOccupationEmoji||e.occupationEmoji||``}function Kt(e){return e?en(e):u(`projectAgents.notReported`)}function qt(e){if(!e)return u(`projectAgents.notReported`);let t=`projectAgents.participantRoles.${e}`,n=u(t);return n===t?e:n}function Jt(e){return u(`projectAgents.tokenSources.${e}`)}function Yt(e){return e?`${new Intl.NumberFormat(y()).format(e.totalTokens)} Token · ${Jt(e.source)}`:u(`projectAgents.notReported`)}function Xt(e){return Zt(e.workerRuntime?e.workerRuntime.sessionUrl:e.sourceSessionUrl)}function Zt(e){let t=e?.trim();if(!t)return null;try{let e=new URL(t);if(e.username||e.password||e.search||e.hash)return null;if(e.protocol===`https:`||e.protocol===`http:`&&[`127.0.0.1`,`localhost`,`[::1]`].includes(e.hostname)||e.protocol===`codex:`&&e.hostname===`threads`&&e.pathname!==`/`)return t}catch{return null}return null}function Qt(e){return e.workerRuntime?e.workerRuntime.sessionId:e.sourceSessionId}function $t(e){return(e.tasks??[]).find(e=>Oe.has(e.status))??null}function en(e){let t=`projectAgents.taskStatus.${e}`,n=u(t);return n===t?e:n}function tn(e){return u(`projectAgents.agentType.${e??`durable`}`)}function nn(e){return u(e?`projectAgents.clients.${e}`:`projectAgents.notReported`)}function rn(e){return co([...e.profile.allowedClients??[],...e.observedClients??[],...(e.clientEvidence??[]).map(({client:e})=>e)])}function an(e,t){return e.clientEvidence?.find(e=>e.client===t)}function on(e,t){return an(e,t)?.actualUse?.count??0}function sn(e){return e.neutral!==!1||e.sampleCount<=0}function cn(e){return sn(e)?u(`projectAgents.learning.neutral`):u(`projectAgents.learning.recorded`)}function ln(e){return e.recentWeightedSamples??u(`projectAgents.notReported`)}function un(e){return e.score??``}function dn(e,t){let n=Math.max(...t.days.map(({total:e})=>e),0);return!n||!e.total?0:Math.min(4,Math.ceil(e.total/n*4))}function Ua(e){pe.value=e.date}function Wa(e,t){return t.ownerAgentId===e.agentId||t.leadAgentId===e.agentId||t.coordinatorAgentId===e.agentId||t.participants.some(t=>t.agentId===e.agentId)}function Ga(e,t){return e.map(e=>{let n=t.filter(t=>Wa(e,t));return n.length?{...e,tasks:so([...e.tasks??[],...n],({taskId:e})=>e)}:e})}function Ka(e){let t=z(e),n=z(t.profile),r=V(t,`agentId`,`agent_id`)??``,i=V(t,`createdAt`,`created_at`)??``,a=V(t,`updatedAt`,`updated_at`)??i,o={name:V(n,`name`,`name`)??r,responsibility:V(n,`responsibility`,`responsibility`)??``,capabilities:W(n.capabilities).filter(e=>typeof e==`string`),initialPreferences:W(B(n,`initialPreferences`,`initial_preferences`)).filter(e=>typeof e==`string`),status:V(n,`status`,`status`)??`active`,occupationEmoji:V(n,`occupationEmoji`,`occupation_emoji`),agentType:V(n,`agentType`,`agent_type`),workKinds:W(B(n,`workKinds`,`work_kinds`)).filter(e=>typeof e==`string`),defaultModelStrategy:se(B(n,`defaultModelStrategy`,`default_model_strategy`)),executorPolicy:ce(B(n,`executorPolicy`,`executor_policy`)),allowedClients:W(B(n,`allowedClients`,`allowed_clients`)).filter(e=>typeof e==`string`),testSource:V(n,`testSource`,`test_source`),cleanupEligible:B(n,`cleanupEligible`,`cleanup_eligible`)===!0},s={agentId:r,personalSpaceId:V(t,`personalSpaceId`,`personal_space_id`)??X.value,personalProjectId:V(t,`personalProjectId`,`personal_project_id`),profile:o,createdAt:i,updatedAt:a};return{...s,memoryScope:V(t,`memoryScope`,`memory_scope`)??void 0,assignments:Array.isArray(t.assignments)?t.assignments.map(e=>le(e,s)).filter(Boolean):void 0,recruitments:to(t.recruitments??t.recruitmentHistory).filter(e=>no(e,s)),recruitmentId:V(t,`recruitmentId`,`recruitment_id`),temporaryTaskId:V(t,`temporaryTaskId`,`temporary_task_id`),workStatus:V(t,`workStatus`,`work_status`),openTaskCount:typeof t.openTaskCount==`number`?t.openTaskCount:typeof t.open_task_count==`number`?t.open_task_count:void 0,currentTaskId:V(t,`currentTaskId`,`current_task_id`),observedClients:W(t.observedClients??t.observed_clients).filter(e=>typeof e==`string`),recruitedAt:V(t,`recruitedAt`,`recruited_at`),recruitmentReason:V(t,`recruitmentReason`,`recruitment_reason`),recruitmentSourceApplication:V(t,`recruitmentSourceApplication`,`recruitment_source_application`),isTestRole:!!o.testSource||o.cleanupEligible||t.isTestRole===!0||t.is_test_role===!0,tasks:W(t.tasks??t.taskHistory).map(me).filter(Boolean),activity:be(t.activity,{agentId:H.value,personalSpaceId:X.value}),clientEvidence:ro(t.clientEvidence??t.client_evidence),routingRules:io(t.routingRules??t.routing_rules),learningEvidence:Qa(t.learningEvidence??t.learning_evidence)}}function qa(e){let t=z(e),n=V(t,`client`,`client`);if(!n)return null;let r=z(B(t,`actualUse`,`actual_use`));return{client:n,allowed:t.allowed===!0,integrationStatus:V(t,`integrationStatus`,`integration_status`)??void 0,actualUse:Object.keys(r).length?{count:typeof r.count==`number`?r.count:0,lastUsedAt:V(r,`lastUsedAt`,`last_used_at`)}:null}}function Ja(e,t){let n=z(e);return W(Array.isArray(e)?e:n.assignments??n.items).map(e=>le(e,t)).filter(e=>!!e)}function Ya(e){let t=z(e),n=V(t,`provider`,`provider`),r=V(t,`model`,`model`);return!n||!r?null:{provider:n,model:r,capabilities:W(t.capabilities).filter(e=>typeof e==`string`),available:typeof t.available==`boolean`?t.available:void 0,strategyModes:W(B(t,`strategyModes`,`strategy_modes`)).filter(e=>typeof e==`string`),reasoningEfforts:W(B(t,`reasoningEfforts`,`reasoning_efforts`)).filter(e=>typeof e==`string`),observedAt:V(t,`observedAt`,`observed_at`),unavailableReason:V(t,`unavailableReason`,`unavailable_reason`)}}function Xa(e){let t=z(e);return W(Array.isArray(e)?e:t.executors??t.items).map(e=>{let t=z(e),n=V(t,`executorId`,`executor_id`);if(!n)return null;let r=z(B(t,`actualUse`,`actual_use`));return{executorId:n,label:V(t,`label`,`label`),provider:V(t,`provider`,`provider`),model:V(t,`model`,`model`),client:V(t,`client`,`client`),availabilityStatus:V(t,`availabilityStatus`,`availability_status`),personalSpaceId:V(t,`personalSpaceId`,`personal_space_id`),displayName:V(t,`displayName`,`display_name`),executorKind:V(t,`executorKind`,`executor_kind`),capabilities:W(B(t,`capabilities`,`capabilities`)).filter(e=>typeof e==`string`),globalPriority:typeof B(t,`globalPriority`,`global_priority`)==`number`?B(t,`globalPriority`,`global_priority`):null,healthRequired:B(t,`healthRequired`,`health_required`)===!0,registrationStatus:V(t,`registrationStatus`,`registration_status`),permissionStatus:V(t,`permissionStatus`,`permission_status`),preflightStatus:V(t,`preflightStatus`,`preflight_status`),healthStatus:V(t,`healthStatus`,`health_status`),workspacePermission:typeof B(t,`workspacePermission`,`workspace_permission`)==`boolean`?B(t,`workspacePermission`,`workspace_permission`):null,revision:typeof t.revision==`number`?t.revision:void 0,permissionRevision:typeof B(t,`permissionRevision`,`permission_revision`)==`number`?B(t,`permissionRevision`,`permission_revision`):void 0,registeredAt:V(t,`registeredAt`,`registered_at`),updatedAt:V(t,`updatedAt`,`updated_at`),testSource:V(t,`testSource`,`test_source`),cleanupEligible:B(t,`cleanupEligible`,`cleanup_eligible`)===!0,advertisedModels:W(B(t,`advertisedModels`,`advertised_models`)).map(Ya).filter(e=>e!==null),availableModels:W(B(t,`availableModels`,`available_models`)).map(Ya).filter(e=>e!==null),actualUse:Object.keys(r).length?{count:typeof r.count==`number`?r.count:0,lastUsedAt:V(r,`lastUsedAt`,`last_used_at`)}:null}}).filter(e=>e!==null)}function Za(e){let t=z(e),n=V(t,`ruleId`,`rule_id`);if(!n)return null;let r=V(t,`status`,`status`);return{ruleId:n,scope:V(t,`scope`,`scope`)??`global`,priority:typeof t.priority==`number`?t.priority:0,personalProjectId:V(t,`personalProjectId`,`personal_project_id`),taskId:V(t,`taskId`,`task_id`),workKind:V(t,`workKind`,`work_kind`),agentId:V(t,`agentId`,`agent_id`),enabled:t.enabled!==!1&&(!r||r===`active`),executorIds:W(B(t,`executorIds`,`executor_ids`)).filter(e=>typeof e==`string`),requiredCapabilities:W(B(t,`requiredCapabilities`,`required_capabilities`)).filter(e=>typeof e==`string`),modelStrategy:se(B(t,`modelStrategy`,`model_strategy`)),reason:V(t,`reason`,`reason`),revision:typeof t.revision==`number`?t.revision:void 0,status:r??void 0,createdAt:V(t,`createdAt`,`created_at`),updatedAt:V(t,`updatedAt`,`updated_at`)}}function Qa(e){let t=z(e),n=Array.isArray(e)?e:t.learningEvidence??t.learning_evidence??t.items,r=(Array.isArray(n)?n:Object.values(z(n))).map((e,t)=>{let n=z(e),r=V(n,`personalProjectId`,`personal_project_id`),i=V(n,`workKind`,`work_kind`),a=V(n,`executorId`,`executor_id`)??V(n,`executor`,`executor`),o=se(B(n,`modelStrategy`,`model_strategy`)),s=V(n,`modelStrategyKey`,`model_strategy_key`),c=s??[r,i,a,String(t)].filter(Boolean).join(`:`),l=W(B(n,`evidenceContributions`,`evidence_contributions`)).map(e=>{let t=z(e),n=V(t,`signal`,`signal`),r=V(t,`evidenceKind`,`evidence_kind`)??`evidence`,i=typeof B(t,`decayWeight`,`decay_weight`)==`number`?B(t,`decayWeight`,`decay_weight`):null;return{evidenceId:V(t,`evidenceId`,`evidence_id`)??void 0,kind:r,count:typeof t.value==`number`?t.value:void 0,summary:n?`${n}${i===null?``:` · ${i.toFixed(3)}`}`:null,occurredAt:V(t,`occurredAt`,`occurred_at`)}}),u=typeof B(n,`weightedSuccess`,`weighted_success`)==`number`?B(n,`weightedSuccess`,`weighted_success`):0,d=typeof B(n,`weightedFailure`,`weighted_failure`)==`number`?B(n,`weightedFailure`,`weighted_failure`):0,f=B(n,`halfLife`,`decay_half_life_days`);return[c,{learningKey:c,personalProjectId:r,workKind:i,executor:a,modelStrategy:o,modelStrategyKey:s,sampleCount:typeof B(n,`sampleCount`,`sample_count`)==`number`?B(n,`sampleCount`,`sample_count`):0,recentWeightedSamples:typeof B(n,`recentCount`,`recent_count`)==`number`?B(n,`recentCount`,`recent_count`):null,decayBasis:typeof f==`number`?`half-life ${f}d`:null,updatedAt:V(n,`asOf`,`as_of`)??V(n,`updatedAt`,`updated_at`),outcomes:{success:typeof B(n,`successCount`,`success_count`)==`number`?B(n,`successCount`,`success_count`):void 0,rework:typeof B(n,`reworkCount`,`rework_count`)==`number`?B(n,`reworkCount`,`rework_count`):void 0,failure:typeof B(n,`failureCount`,`failure_count`)==`number`?B(n,`failureCount`,`failure_count`):void 0,scoreCount:typeof B(n,`ratingCount`,`rating_count`)==`number`?B(n,`ratingCount`,`rating_count`):void 0},evidence:l,score:u-d,neutral:B(n,`neutralDueToInsufficientEvidence`,`neutral_due_to_insufficient_evidence`)===!0}]});return Object.fromEntries(r)}function $a(e){let t=z(e);return W(Array.isArray(e)?e:t.tasks??t.items).map(me).filter(Boolean)}function eo(e){let t=z(e),n=V(t,`recruitmentId`,`recruitment_id`);return n?{recruitmentId:n,personalSpaceId:V(t,`personalSpaceId`,`personal_space_id`)??X.value,personalProjectId:V(t,`personalProjectId`,`personal_project_id`)??``,taskId:V(t,`taskId`,`task_id`)??``,coordinatorAgentId:V(t,`coordinatorAgentId`,`coordinator_agent_id`)??``,hrAgentId:V(t,`hrAgentId`,`hr_agent_id`),positionKind:V(t,`positionKind`,`position_kind`)??`durable`,workKind:V(t,`workKind`,`work_kind`)??``,requiredCapabilities:W(B(t,`requiredCapabilities`,`required_capabilities`)).filter(e=>typeof e==`string`),reasonCode:V(t,`reasonCode`,`reason_code`)??``,reason:V(t,`reason`,`reason`)??``,status:V(t,`status`,`status`)??`unknown`,confirmationMode:V(t,`confirmationMode`,`confirmation_mode`),proposedAgentId:V(t,`proposedAgentId`,`proposed_agent_id`)??``,revision:typeof t.revision==`number`?t.revision:void 0,recruitedAgentId:V(t,`recruitedAgentId`,`recruited_agent_id`),triggerSourceApplication:V(t,`triggerSourceApplication`,`trigger_source_application`),triggerSourceSessionId:V(t,`triggerSourceSessionId`,`trigger_source_session_id`),testSource:V(t,`testSource`,`test_source`),cleanupEligible:B(t,`cleanupEligible`,`cleanup_eligible`)===!0,createdAt:V(t,`createdAt`,`created_at`)??``,updatedAt:V(t,`updatedAt`,`updated_at`)??``,fulfilledAt:V(t,`fulfilledAt`,`fulfilled_at`)}:null}function to(e){let t=z(e);return W(Array.isArray(e)?e:t.recruitments??t.items).map(eo).filter(e=>!!e)}function no(e,t){return e.recruitedAgentId===t.agentId||e.proposedAgentId===t.agentId||e.recruitmentId===t.recruitmentId}function ro(e){let t=z(e);return W(Array.isArray(e)?e:t.clients??t.executors??t.items).map(qa).filter(Boolean)}function io(e){let t=z(e);return W(Array.isArray(e)?e:t.rules??t.items).map(Za).filter(Boolean)}function ao(e){let t=z(e);return Qa(t.learningEvidence??t.learning_evidence??e)}function oo(e){let t=new Map;return e.map(Ka).forEach(e=>{let n=t.get(e.agentId);if(!n){t.set(e.agentId,e);return}let r=[...yt(n),...yt(e)],i=[...n.tasks??[],...e.tasks??[]];t.set(e.agentId,{...n,personalProjectId:n.personalProjectId??e.personalProjectId,profile:{...n.profile,occupationEmoji:n.profile.occupationEmoji??e.profile.occupationEmoji,capabilities:co([...n.profile.capabilities,...e.profile.capabilities]),workKinds:co([...n.profile.workKinds??[],...e.profile.workKinds??[]]),defaultModelStrategy:n.profile.defaultModelStrategy??e.profile.defaultModelStrategy,executorPolicy:n.profile.executorPolicy??e.profile.executorPolicy,allowedClients:co([...n.profile.allowedClients??[],...e.profile.allowedClients??[]])},assignments:so(r,({assignmentId:e})=>e),recruitments:so([...n.recruitments??[],...e.recruitments??[]],({recruitmentId:e})=>e),tasks:so(i,({taskId:e})=>e),activity:n.activity??e.activity,clientEvidence:n.clientEvidence?.length?n.clientEvidence:e.clientEvidence,routingRules:n.routingRules?.length?n.routingRules:e.routingRules,learningEvidence:{...e.learningEvidence??{},...n.learningEvidence??{}},observedClients:co([...n.observedClients??[],...e.observedClients??[]]),openTaskCount:Math.max(n.openTaskCount??0,e.openTaskCount??0)||void 0,currentTaskId:n.currentTaskId??e.currentTaskId,workStatus:n.workStatus??e.workStatus})}),[...t.values()]}function so(e,t){return[...new Map(e.map(e=>[t(e),e])).values()]}function co(e){return[...new Set(e)]}return(r,i)=>(a(),T(`section`,{class:`view project-agents-view`,"aria-label":b(u)(`projectAgents.aria`)},[C(`header`,mn,[C(`div`,null,[C(`h2`,null,d(b(u)(`projectAgents.title`)),1),C(`p`,hn,d(b(u)(`projectAgents.stats.total`,{count:v.value.length}))+` · `+d(b(u)(`projectAgents.stats.assignments`,{count:Ue.value}))+` · `+d(b(u)(`projectAgents.stats.projects`,{count:We.value})),1)]),C(`div`,gn,[C(`button`,{class:`quiet-button`,type:`button`,disabled:!X.value,onClick:wt},d(b(u)(`projectAgents.add`)),9,_n),C(`button`,{class:`project-agent-add`,type:`button`,disabled:!X.value,onClick:i[0]||=e=>Tt()},d(b(u)(`employees.recruit`)),9,vn)])]),w(re,{open:ie.value,"personal-space-id":X.value,projects:Ae.value,"template-id":ae.value,"default-project-ids":P.value??[],onClose:i[1]||=e=>ie.value=!1,onRecruited:je},null,8,[`open`,`personal-space-id`,`projects`,`template-id`,`default-project-ids`]),C(`div`,yn,[C(`span`,null,d(b(u)(`projectAgents.stats.active`,{count:He.value})),1),C(`span`,null,d(b(u)(`projectAgents.stats.noOnlineClaim`)),1)]),C(`div`,bn,[w(R,{modelValue:Pe.value,"onUpdate:modelValue":i[2]||=e=>Pe.value=e,class:`project-agents-project-filter`,compact:``,projects:Ne.value,label:b(u)(`employees.filterLabel`),hint:b(u)(`employees.filterHint`),"empty-label":b(u)(`employees.filterEmpty`)},null,8,[`modelValue`,`projects`,`label`,`hint`,`empty-label`]),C(`label`,xn,[C(`span`,Sn,d(b(u)(`projectAgents.searchLabel`)),1),n(C(`input`,{"onUpdate:modelValue":i[3]||=e=>ne.value=e,type:`search`,placeholder:b(u)(`projectAgents.searchPlaceholder`)},null,8,Cn),[[m,ne.value]])]),C(`div`,{class:`project-agents-status-filter`,"aria-label":b(u)(`projectAgents.fields.status`)},[(a(!0),T(g,null,t(Ie.value,e=>(a(),T(`button`,{key:e.value,type:`button`,"aria-pressed":L.value===e.value,onClick:t=>L.value=e.value},d(e.label),9,Tn))),128))],8,wn)]),Fe.value?(a(),E(Dt,{key:Fe.value,"personal-space-id":X.value,"personal-project-id":Fe.value,"project-name":vt(Fe.value)},null,8,[`personal-space-id`,`personal-project-id`,`project-name`])):f(``,!0),S.value?(a(),T(`div`,En,d(b(u)(`projectAgents.loading`)),1)):A.value?(a(),T(`div`,Dn,[C(`p`,null,d(A.value),1),C(`button`,{class:`quiet-button`,type:`button`,onClick:i[4]||=e=>Xe()},d(b(u)(`projectAgents.retry`)),1)])):v.value.length?Le.value.length?(a(),T(`div`,jn,[C(`div`,{class:`project-agent-list`,role:`list`,"aria-label":b(u)(`projectAgents.listLabel`)},[(a(!0),T(g,null,t(Le.value,n=>(a(),T(`button`,{key:n.agentId,type:`button`,class:x([`project-agent-row`,{selected:H.value===n.agentId}]),"aria-current":H.value===n.agentId?`true`:void 0,onClick:e=>H.value=n.agentId},[C(`span`,Pn,[n.profile.occupationEmoji?(a(),T(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":`${b(u)(`projectAgents.fields.occupationEmoji`)}: ${n.profile.occupationEmoji}`},d(n.profile.occupationEmoji),9,Fn)):f(``,!0),C(`strong`,null,d(n.profile.name),1),C(`i`,In,d(tn(n.profile.agentType)),1),C(`i`,{class:x(`is-${n.profile.status}`)},d(b(u)(`projectAgents.status.${n.profile.status}`)),3)]),C(`span`,Ln,[(a(!0),T(g,null,t(xt(n).slice(0,3),e=>(a(),T(`b`,{key:e.id},d(e.name),1))),128)),xt(n).length>3?(a(),T(`b`,Rn,`+`+d(xt(n).length-3),1)):f(``,!0),xt(n).length?f(``,!0):(a(),T(`em`,zn,d(b(u)(`employees.noAssignedProjects`)),1))]),C(`span`,Bn,d(n.profile.responsibility||b(u)(`projectAgents.notReported`)),1),C(`span`,Vn,[$t(n)?(a(),T(g,{key:0},[C(`i`,{class:x([`project-agent-work-dot`,{"is-live":$t(n).status===`running`}]),"aria-hidden":`true`},null,2),e(d(en($t(n).status))+` · `+d($t(n).title),1)],64)):n.workStatus===`blocked`||n.workStatus===`queued`?(a(),T(g,{key:1},[e(d(en(n.workStatus))+` · `+d(b(u)(`projectAgents.detail.stateReported`)),1)],64)):(a(),T(g,{key:2},[e(d(b(u)(`projectAgents.detail.noRun`)),1)],64))]),C(`span`,Hn,[(a(!0),T(g,null,t(n.profile.capabilities.slice(0,3),e=>(a(),T(`b`,{key:e},d(e),1))),128))])],10,Nn))),128))],8,Mn),Z.value?(a(),T(`aside`,{key:0,class:`project-agent-detail`,"aria-label":Z.value.profile.name},[C(`header`,null,[C(`div`,Wn,[C(`h3`,null,[Z.value.profile.occupationEmoji?(a(),T(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":`${b(u)(`projectAgents.fields.occupationEmoji`)}: ${Z.value.profile.occupationEmoji}`},d(Z.value.profile.occupationEmoji),9,Gn)):f(``,!0),e(d(Z.value.profile.name),1)]),C(`p`,null,[e(d(Z.value.agentId)+` · `+d(tn(Z.value.profile.agentType)),1),Z.value.isTestRole?(a(),T(`span`,Kn,[e(` · `+d(b(u)(`projectAgents.source.testRole`)),1),Z.value.profile.testSource?(a(),T(`span`,qn,` · `+d(Z.value.profile.testSource),1)):f(``,!0)])):f(``,!0)])]),C(`div`,Jn,[C(`button`,{class:`quiet-button`,type:`button`,disabled:fe.value,onClick:i[5]||=e=>Q()},d(fe.value?b(u)(`projectAgents.detail.refreshing`):b(u)(`projectAgents.detail.refresh`)),9,Yn),C(`button`,{class:`quiet-button`,type:`button`,onClick:i[6]||=e=>Et(Z.value)},d(b(u)(`projectAgents.edit`)),1),Z.value.profile.cleanupEligible?(a(),T(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:fe.value,onClick:i[7]||=e=>ht(Z.value)},d(b(u)(`projectAgents.source.cleanup`)),9,Xn)):f(``,!0)])]),J.value?(a(),T(`p`,Zn,d(J.value),1)):f(``,!0),Re.value?(a(),T(`section`,Qn,[C(`div`,$n,[C(`div`,null,[C(`h4`,er,d(ze.value?.management?.mode===`all`?b(u)(`employees.scope.continuousAll`):b(u)(`employees.scope.label`)),1),C(`p`,null,d(b(u)(`employees.assignedCount`,{count:Ve.value.length})),1)]),C(`button`,{class:`project-agent-add`,type:`button`,onClick:i[8]||=e=>Tt(Re.value)},d(b(u)(`employees.manageProjects`)),1)]),Ve.value.length?(a(),T(`div`,tr,[(a(!0),T(g,null,t(Ve.value,e=>(a(),E(b(N),{key:e.id,to:`/employees/${encodeURIComponent(Re.value)}?project=${encodeURIComponent(e.id)}`},{default:s(()=>[C(`span`,null,d(e.name),1),i[12]||=C(`svg`,{viewBox:`0 0 20 20`,width:`16`,height:`16`,"aria-hidden":`true`},[C(`path`,{d:`M4 10h12m-5-5 5 5-5 5`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`})],-1)]),_:2},1032,[`to`]))),128))])):(a(),T(`p`,nr,d(b(u)(`employees.manageHint`)),1))])):f(``,!0),C(`dl`,rr,[C(`div`,null,[C(`dt`,null,d(b(u)(`projectAgents.fields.assignments`)),1),C(`dd`,null,d(bt(Z.value).length),1)]),C(`div`,null,[C(`dt`,null,d(b(u)(`projectAgents.fields.memoryScope`)),1),C(`dd`,null,d(Z.value.memoryScope??b(u)(`projectAgents.notReported`)),1)]),C(`div`,null,[C(`dt`,null,d(b(u)(`projectAgents.fields.status`)),1),C(`dd`,null,d(b(u)(`projectAgents.status.${Z.value.profile.status}`)),1)]),C(`div`,null,[C(`dt`,null,d(b(u)(`projectAgents.fields.recruitment`)),1),C(`dd`,null,[e(d(nn(Z.value.recruitmentSourceApplication)),1),Z.value.recruitmentReason?(a(),T(`small`,ir,d(Z.value.recruitmentReason),1)):f(``,!0)])]),C(`div`,null,[C(`dt`,null,d(b(u)(`projectAgents.fields.updatedAt`)),1),C(`dd`,null,d(Ft(Z.value.updatedAt)),1)])]),C(`div`,ar,[w(jt,_(et(`recruitments`),{onRetry:Q}),{default:s(()=>[C(`section`,or,[C(`div`,sr,[C(`h4`,cr,d(b(u)(`projectAgents.sections.recruitment`)),1),C(`span`,null,d(Ye.value.length),1)]),Ye.value.length?(a(),T(`div`,lr,[(a(!0),T(g,null,t(Ye.value,e=>(a(),T(`article`,{key:e.recruitmentId,class:`project-agent-recruitment-card`},[C(`header`,null,[C(`strong`,null,d(e.positionKind)+` · `+d(e.workKind||b(u)(`projectAgents.notReported`)),1),C(`div`,ur,[C(`i`,null,d(e.status),1),e.status===`awaiting_confirmation`?(a(),T(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!Y.value,onClick:t=>ot(e,`approve`)},d(b(u)(`projectAgents.recruitment.approve`)),9,dr)):f(``,!0),e.status===`awaiting_confirmation`?(a(),T(`button`,{key:1,class:`quiet-button`,type:`button`,disabled:!!Y.value,onClick:t=>ot(e,`cancel`)},d(b(u)(`projectAgents.recruitment.cancel`)),9,fr)):f(``,!0)])]),C(`dl`,pr,[C(`div`,null,[C(`dt`,null,d(b(u)(`projectAgents.recruitment.hr`)),1),C(`dd`,null,d(e.hrAgentId||b(u)(`projectAgents.notReported`)),1)]),C(`div`,null,[C(`dt`,null,d(b(u)(`projectAgents.recruitment.trigger`)),1),C(`dd`,null,d(nn(e.triggerSourceApplication)),1)]),C(`div`,null,[C(`dt`,null,d(b(u)(`projectAgents.recruitment.reason`)),1),C(`dd`,null,d(e.reason||e.reasonCode||b(u)(`projectAgents.notReported`)),1)]),C(`div`,null,[C(`dt`,null,d(b(u)(`projectAgents.recruitment.time`)),1),C(`dd`,null,d(Ft(e.fulfilledAt||e.createdAt)),1)])]),C(`small`,null,d(b(u)(`projectAgents.recruitment.testSource`))+` · `+d(e.testSource||b(u)(`projectAgents.notReported`)),1)]))),128))])):(a(),T(`p`,mr,d(b(u)(`projectAgents.recruitment.empty`)),1))])]),_:1},16)]),C(`section`,hr,[C(`h4`,null,d(b(u)(`projectAgents.fields.responsibility`)),1),C(`p`,null,d(Z.value.profile.responsibility||b(u)(`projectAgents.notReported`)),1),Z.value.profile.capabilities.length?(a(),T(`div`,gr,[(a(!0),T(g,null,t(Z.value.profile.capabilities,e=>(a(),T(`span`,{key:e},d(e),1))),128))])):f(``,!0)]),C(`div`,_r,[w(jt,_(et(`assignments`),{onRetry:Q}),{default:s(()=>[C(`section`,vr,[C(`div`,yr,[C(`h4`,null,d(b(u)(`projectAgents.sections.assignments`)),1),C(`div`,br,[C(`span`,null,d(yt(Z.value).length),1),C(`button`,{class:`quiet-button`,type:`button`,onClick:i[9]||=e=>kt(Z.value)},d(b(u)(`projectAgents.assignmentDialog.assign`)),1)])]),yt(Z.value).length?(a(),T(`div`,xr,[(a(!0),T(g,null,t(yt(Z.value),e=>(a(),T(`article`,{key:e.assignmentId,class:`project-agent-assignment-card`},[C(`header`,null,[C(`strong`,null,d(vt(e.personalProjectId)),1),C(`div`,Sr,[C(`i`,{class:x(`is-${e.status}`)},d(b(u)(`projectAgents.assignmentStatus.${e.status}`)),3),e.status===`active`?(a(),T(`button`,{key:0,class:`quiet-button`,type:`button`,onClick:t=>kt(Z.value,e,`end`)},d(b(u)(`projectAgents.assignmentDialog.end`)),9,Cr)):f(``,!0),e.status===`active`?(a(),T(`button`,{key:1,class:`quiet-button`,type:`button`,onClick:t=>kt(Z.value,e,`replace`)},d(b(u)(`projectAgents.assignmentDialog.replace`)),9,wr)):f(``,!0)])]),C(`p`,null,d(e.responsibility||b(u)(`projectAgents.notReported`)),1),e.scope?(a(),T(`small`,Tr,d(b(u)(`projectAgents.fields.scope`))+` · `+d(e.scope),1)):f(``,!0),C(`small`,null,d(Ft(e.assignedAt))+` → `+d(e.endedAt?Ft(e.endedAt):b(u)(`projectAgents.assignmentStatus.${e.status}`)),1),e.workKinds?.length?(a(),T(`div`,Er,[(a(!0),T(g,null,t(e.workKinds,e=>(a(),T(`span`,{key:e},d(e),1))),128))])):f(``,!0),C(`div`,Dr,[C(`span`,null,d(b(u)(`projectAgents.fields.assignmentModel`)),1),C(`strong`,null,d(Lt(e.modelStrategyOverride))+` · `+d(Rt(e.executorPolicyOverride)),1),zt(e.executorPolicyOverride)&&!Bt(e.executorPolicyOverride).length?(a(),T(`small`,Or,d(b(u)(`projectAgents.strategy.lockedUnavailable`)),1)):f(``,!0)]),Bt(e.executorPolicyOverride).length?(a(),T(`div`,kr,[(a(!0),T(g,null,t(Bt(e.executorPolicyOverride),e=>(a(),T(`span`,{key:e.executorId},d(e.label||e.executorId),1))),128))])):f(``,!0),e.reason?(a(),T(`small`,Ar,d(b(u)(`projectAgents.fields.reason`))+` · `+d(e.reason),1)):f(``,!0)]))),128))])):(a(),T(`p`,jr,d(b(u)(`projectAgents.detail.noAssignments`)),1))])]),_:1},16)]),C(`div`,Mr,[w(jt,_(et(`executors`),{onRetry:Q}),{default:s(()=>[C(`section`,Nr,[C(`div`,Pr,[C(`h4`,null,d(b(u)(`projectAgents.sections.strategy`)),1),C(`span`,null,d(Lt(Z.value.profile.defaultModelStrategy))+` · `+d(Rt(Z.value.profile.executorPolicy)),1)]),C(`p`,Fr,d(b(u)(`projectAgents.strategy.providerNeutral`)),1),Bt(Z.value.profile.executorPolicy).length?(a(),T(`div`,Ir,[(a(!0),T(g,null,t(Bt(Z.value.profile.executorPolicy),e=>(a(),T(`span`,{key:e.executorId},d(e.label||e.executorId),1))),128))])):zt(Z.value.profile.executorPolicy)?(a(),T(`p`,Lr,d(b(u)(`projectAgents.strategy.lockedUnavailable`)),1)):(a(),T(`p`,Rr,d(b(u)(`projectAgents.strategy.noAllowList`)),1)),C(`div`,zr,[C(`button`,{class:`quiet-button`,type:`button`,onClick:i[10]||=e=>ct()},d(b(u)(`projectAgents.routing.addExecutor`)),1)]),Z.value.executorDirectory?.length?(a(),T(`div`,Br,[(a(!0),T(g,null,t(Z.value.executorDirectory,e=>(a(),T(`div`,{key:e.executorId,class:`project-agent-executor-row`},[C(`strong`,null,d(e.displayName||e.label||e.executorId),1),C(`span`,null,d(e.provider||b(u)(`projectAgents.notReported`))+` / `+d(e.model||b(u)(`projectAgents.notReported`)),1),C(`span`,null,d(e.globalPriority??b(u)(`projectAgents.notReported`)),1),C(`small`,null,d(e.registrationStatus||b(u)(`projectAgents.notReported`))+` · `+d(e.permissionStatus||b(u)(`projectAgents.notReported`))+` · `+d(e.preflightStatus||b(u)(`projectAgents.strategy.availabilityUnreported`))+` · `+d(e.healthStatus||b(u)(`projectAgents.notReported`)),1),C(`button`,{class:`quiet-button`,type:`button`,onClick:t=>ct(e)},d(b(u)(`projectAgents.routing.editExecutor`)),9,Vr),e.permissionStatus===`authorized`?(a(),T(`button`,{key:1,class:`quiet-button`,type:`button`,disabled:!!xe.value,onClick:t=>st(e,`revoked`)},d(b(u)(`projectAgents.routing.revoke`)),9,Ur)):(a(),T(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!xe.value,onClick:t=>st(e,`authorized`)},d(b(u)(`projectAgents.routing.authorize`)),9,Hr))]))),128))])):f(``,!0)])]),_:1},16)]),C(`div`,Wr,[w(jt,_(et(`tasks`),{onRetry:Q}),{default:s(()=>[C(`section`,Gr,[C(`div`,Kr,[C(`h4`,null,d(b(u)(`projectAgents.sections.tasks`)),1),C(`span`,null,d(Z.value.tasks?.length??0),1)]),Z.value.tasks?.length?(a(),T(`div`,qr,[(a(!0),T(g,null,t(Z.value.tasks,n=>(a(),T(`article`,{key:n.taskId,class:`project-agent-task-card`},[C(`header`,null,[C(`div`,null,[C(`strong`,null,d(n.title),1),C(`small`,null,d(n.taskId)+` · `+d(vt(n.personalProjectId)),1)]),C(`i`,{class:x(`is-${n.status}`)},d(en(n.status)),3)]),n.resultSummary||n.failureReason?(a(),T(`p`,Jr,d(n.resultSummary||n.failureReason),1)):f(``,!0),C(`small`,null,d(b(u)(`projectAgents.fields.collaborators`))+` · `+d(n.participants.length),1),n.participants.length?(a(),T(`div`,Yr,[(a(!0),T(g,null,t(n.participants,e=>(a(),T(`span`,{key:`${n.taskId}:${e.agentId}`},d(e.agentId)+` · `+d(e.role),1))),128))])):f(``,!0),n.executionSummary===void 0?f(``,!0):(a(),T(`section`,{key:2,class:`project-agent-execution-summary`,"aria-label":b(u)(`projectAgents.fields.executionSummary`)},[C(`div`,Zr,[C(`h5`,null,d(b(u)(`projectAgents.fields.executionSummary`)),1),C(`span`,null,d(n.executionSummary.length),1)]),n.executionSummary.length?(a(),T(`div`,{key:0,class:`project-agent-execution-summary-table-wrap`,role:`region`,tabindex:`0`,"aria-label":b(u)(`projectAgents.fields.executionSummary`)},[C(`table`,$r,[C(`caption`,ei,d(b(u)(`projectAgents.fields.executionSummary`)),1),C(`thead`,null,[C(`tr`,null,[C(`th`,ti,d(b(u)(`projectAgents.fields.worker`)),1),C(`th`,ni,d(b(u)(`projectAgents.fields.workSummary`)),1),C(`th`,ri,d(b(u)(`projectAgents.fields.toolsUsed`)),1),C(`th`,ii,d(b(u)(`projectAgents.fields.executionEnvironment`)),1),C(`th`,ai,d(b(u)(`projectAgents.fields.sourceSession`)),1),C(`th`,oi,d(b(u)(`projectAgents.fields.tokenUsage`)),1),C(`th`,si,d(b(u)(`projectAgents.fields.terminalStatus`)),1)])]),C(`tbody`,null,[(a(!0),T(g,null,t(n.executionSummary,(t,r)=>(a(),T(`tr`,{key:n.taskId+`:execution:`+(t.workerId||t.agentId||r),class:`project-agent-execution-summary-row`},[C(`th`,ci,[C(`span`,li,[Gt(t)?(a(),T(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":b(u)(`projectAgents.fields.occupationEmoji`)+`: `+Gt(t)},d(Gt(t)),9,ui)):f(``,!0),e(` `+d(Wt(t)),1)]),t.agentId||t.workerId?(a(),T(`small`,di,d(t.workerId||t.agentId),1)):f(``,!0),C(`small`,null,d(qt(t.participantRole)),1)]),C(`td`,{"data-label":b(u)(`projectAgents.fields.workSummary`)},d(t.workSummary||b(u)(`projectAgents.notReported`)),9,fi),C(`td`,{"data-label":b(u)(`projectAgents.fields.toolsUsed`)},d(t.toolsUsed?t.toolsUsed.join(` · `)||b(u)(`projectAgents.noToolsUsed`):b(u)(`projectAgents.notReported`)),9,pi),C(`td`,{"data-label":b(u)(`projectAgents.fields.executionEnvironment`)},[C(`strong`,null,d(t.executor||b(u)(`projectAgents.notReported`)),1),t.executorId&&t.executorId!==t.executor?(a(),T(`small`,hi,d(t.executorId),1)):f(``,!0),t.actualModelProvider||t.actualModel?(a(),T(`small`,gi,d([t.actualModelProvider,t.actualModel].filter(Boolean).join(` · `)),1)):f(``,!0)],8,mi),C(`td`,{"data-label":b(u)(`projectAgents.fields.sourceSession`)},[C(`span`,null,[t.workerRuntime?(a(),T(g,{key:0},[e(d(b(u)(`projectAgents.fields.workerSession`))+` · `,1)],64)):f(``,!0),e(d(nn(t.workerRuntime?.application||t.sourceApplication)),1)]),Xt(t)?(a(),T(`a`,{key:0,href:Xt(t)||void 0,target:`_blank`,rel:`noreferrer`},d(Qt(t)||Xt(t)),9,vi)):(a(),T(`small`,yi,d(Qt(t)||b(u)(`projectAgents.notReported`)),1)),t.workerRuntime?(a(),T(g,{key:2},[C(`small`,bi,d(b(u)(`projectAgents.fields.reporterSession`))+` · `+d(nn(t.sourceApplication)),1),Zt(t.sourceSessionUrl)?(a(),T(`a`,{key:0,href:Zt(t.sourceSessionUrl)||void 0,target:`_blank`,rel:`noreferrer`},d(t.sourceSessionId||t.sourceSessionUrl),9,xi)):(a(),T(`small`,Si,d(t.sourceSessionId||b(u)(`projectAgents.notReported`)),1))],64)):f(``,!0)],8,_i),C(`td`,{"data-label":b(u)(`projectAgents.fields.tokenUsage`)},d(Yt(t.tokenUsage)),9,Ci),C(`td`,{"data-label":b(u)(`projectAgents.fields.terminalStatus`)},[t.status?(a(),T(`i`,{key:0,class:x(`is-`+t.status)},d(Kt(t.status)),3)):(a(),T(`span`,Ti,d(b(u)(`projectAgents.notReported`)),1))],8,wi)]))),128))])])],8,Qr)):(a(),T(`p`,Ei,d(b(u)(`projectAgents.detail.noExecutionSummary`)),1))],8,Xr)),b(he)(n).length?(a(),T(`section`,{key:3,class:`project-agent-worker-event-evidence`,"aria-label":b(u)(`projectAgents.fields.workerEventEvidence`)},[C(`div`,Oi,[C(`h5`,null,d(b(u)(`projectAgents.fields.workerEventEvidence`)),1),C(`span`,null,d(b(he)(n).length),1)]),C(`ul`,ki,[(a(!0),T(g,null,t(b(he)(n),t=>(a(),T(`li`,{key:`${n.taskId}:worker-event:${t.eventId}`,class:`project-agent-worker-event-row`},[C(`header`,null,[C(`strong`,null,[Ht(t)?(a(),T(`span`,{key:0,class:`project-agent-occupation-emoji`,role:`img`,"aria-label":`${b(u)(`projectAgents.fields.occupationEmoji`)}: ${Ht(t)}`},d(Ht(t)),9,Ai)):f(``,!0),e(d(Vt(t)),1),t.agentId?(a(),T(`small`,ji,d(b(u)(`projectAgents.fields.agentId`))+` · `+d(t.agentId),1)):f(``,!0)]),C(`i`,{class:x(`is-${t.workerStatus||t.status}`)},d(Ut(t)),3)]),C(`dl`,Mi,[C(`div`,null,[C(`dt`,null,d(b(u)(`projectAgents.fields.workSummary`)),1),C(`dd`,null,d(t.summary||b(u)(`projectAgents.notReported`)),1)]),C(`div`,null,[C(`dt`,null,d(b(u)(`projectAgents.fields.sourceApplication`)),1),C(`dd`,null,d(nn(t.sourceApplication)),1)]),C(`div`,null,[C(`dt`,null,d(b(u)(`projectAgents.fields.sourceSession`)),1),C(`dd`,null,d(t.sourceSessionId||b(u)(`projectAgents.notReported`)),1)]),C(`div`,null,[C(`dt`,null,d(b(u)(`projectAgents.fields.tokenUsage`)),1),C(`dd`,null,d(Yt(t.tokenUsage)),1)]),t.actualModelProvider||t.actualModel?(a(),T(`div`,Ni,[C(`dt`,null,d(b(u)(`projectAgents.fields.actualModel`)),1),C(`dd`,null,[t.actualModelProvider?(a(),T(`span`,Pi,d(t.actualModelProvider),1)):f(``,!0),t.actualModelProvider&&t.actualModel?(a(),T(`span`,Fi,` · `)):f(``,!0),t.actualModel?(a(),T(`span`,Ii,d(t.actualModel),1)):f(``,!0)])])):f(``,!0),C(`div`,null,[C(`dt`,null,d(b(u)(`projectAgents.fields.reportedAt`)),1),C(`dd`,null,d(Ft(t.createdAt)),1)])])]))),128))])],8,Di)):f(``,!0),n.effectiveModelStrategy?(a(),T(`small`,Li,d(b(u)(`projectAgents.fields.strategySource`))+` · `+d(n.modelStrategySource||b(u)(`projectAgents.notReported`))+` · `+d(Lt(n.effectiveModelStrategy))+` · `+d(Rt(n.effectiveExecutorPolicy)),1)):f(``,!0),n.routingDecision?(a(),T(`div`,Ri,[C(`div`,zi,[C(`span`,null,d(b(u)(`projectAgents.fields.reportedStaffingDecision`)),1),C(`strong`,null,d(n.routingDecision.outcome||b(u)(`projectAgents.notReported`)),1)]),n.routingDecision.coordinatorAgentId||n.coordinatorAgentId?(a(),T(`small`,Bi,d(b(u)(`projectAgents.fields.coordinator`))+` · `+d(n.routingDecision.coordinatorAgentId||n.coordinatorAgentId),1)):f(``,!0),C(`small`,null,d(b(u)(`projectAgents.fields.matchBasis`))+` · `+d(n.routingDecision.matchBasis?.join(` · `)||b(u)(`projectAgents.notReported`))+` · `+d(n.routingDecision.reason||b(u)(`projectAgents.notReported`)),1),n.routingDecision.candidateAgentIds?.length?(a(),T(`small`,Vi,d(b(u)(`projectAgents.fields.candidateAgents`))+` · `+d(n.routingDecision.candidateAgentIds.join(` · `)),1)):f(``,!0),n.routingDecision.complexity!==null&&n.routingDecision.complexity!==void 0?(a(),T(`small`,Hi,[e(d(b(u)(`projectAgents.fields.complexity`))+` · `+d(n.routingDecision.complexity),1),n.routingDecision.complexityBasis?.length?(a(),T(`span`,Ui,` · `+d(n.routingDecision.complexityBasis.join(` · `)),1)):f(``,!0)])):f(``,!0),b(ge)(n.routingDecision.parallelPlan)?(a(),T(`small`,Wi,[e(d(b(u)(`projectAgents.fields.parallelPlan`))+` · `+d(n.routingDecision.parallelPlan?.reason||b(u)(`projectAgents.notReported`)),1),n.routingDecision.parallelPlan?.workstreamBoundaries?.length?(a(),T(`span`,Gi,` · `+d(n.routingDecision.parallelPlan.workstreamBoundaries.join(` · `)),1)):f(``,!0)])):f(``,!0),n.routingDecision.ruleId||n.routingDecision.fallback?(a(),T(`small`,Ki,d(n.routingDecision.ruleId||b(u)(`projectAgents.notReported`))+` · `+d(n.routingDecision.fallback||b(u)(`projectAgents.notReported`)),1)):f(``,!0)])):f(``,!0),C(`div`,qi,[C(`span`,null,d(b(u)(`projectAgents.fields.actualExecution`)),1),$(n)?(a(),T(`strong`,Ji,d($(n)?.executor||$(n)?.provider||b(u)(`projectAgents.notReported`))+` / `+d($(n)?.model||b(u)(`projectAgents.notReported`))+` / `+d(nn($(n)?.client)),1)):(a(),T(`span`,Yi,d(b(u)(`projectAgents.detail.notReportedActualExecution`)),1)),$(n)?.rule||$(n)?.fallback?(a(),T(`small`,Xi,d($(n)?.rule||b(u)(`projectAgents.notReported`))+` · `+d($(n)?.fallback||b(u)(`projectAgents.notReported`)),1)):f(``,!0)]),n.runId?(a(),T(`small`,Zi,d(b(u)(`projectAgents.fields.run`))+` · `+d(n.runId),1)):(a(),T(`small`,Qi,d(b(u)(`projectAgents.detail.noRun`)),1))]))),128))])):(a(),T(`p`,$i,d(b(u)(`projectAgents.detail.noTasks`)),1))])]),_:1},16)]),C(`div`,ea,[w(jt,_(et(`activity`),{onRetry:Q}),{default:s(()=>[C(`section`,ta,[C(`div`,na,[C(`h4`,null,d(b(u)(`projectAgents.sections.activity`)),1),Ke.value?(a(),T(`span`,ra,d(Ke.value.days.length),1)):f(``,!0)]),Ke.value?.days.length?(a(),T(`div`,ia,[C(`div`,{class:`project-agent-heatmap`,role:`list`,"aria-label":b(u)(`projectAgents.activity.aria`)},[(a(!0),T(g,null,t(Ke.value.days,e=>(a(),T(`button`,{key:e.date,type:`button`,role:`listitem`,class:x([`project-agent-heat-cell`,`intensity-${dn(e,Ke.value)}`,{selected:pe.value===e.date}]),"aria-label":`${It(e.date)} · ${e.total}`,"aria-pressed":pe.value===e.date,onClick:t=>Ua(e)},[C(`span`,sa,d(It(e.date))+` · `+d(e.total),1)],10,oa))),128))],8,aa),qe.value?(a(),T(`article`,ca,[C(`header`,null,[C(`strong`,null,d(It(qe.value.date)),1),C(`span`,null,d(qe.value.total),1)]),qe.value.tasks?.length?(a(),T(`ul`,ua,[(a(!0),T(g,null,t(qe.value.tasks,e=>(a(),T(`li`,{key:e.taskId},[C(`strong`,null,d(e.title),1),C(`span`,null,d(en(e.status))+` · `+d(vt(e.personalProjectId)),1),C(`small`,null,d(e.summary||b(u)(`projectAgents.notReported`)),1)]))),128))])):(a(),T(`p`,la,d(b(u)(`projectAgents.activity.noTasks`)),1))])):f(``,!0)])):(a(),T(`p`,da,d(b(u)(`projectAgents.activity.empty`)),1))])]),_:1},16)]),C(`div`,fa,[w(jt,_(et(`executors`),{onRetry:Q}),{default:s(()=>[C(`section`,pa,[C(`div`,ma,[C(`h4`,null,d(b(u)(`projectAgents.sections.clients`)),1),C(`span`,null,d(rn(Z.value).length),1)]),rn(Z.value).length?(a(),T(`div`,ha,[(a(!0),T(g,null,t(rn(Z.value),e=>(a(),T(`div`,{key:e,class:`project-agent-client-row`},[C(`strong`,null,d(nn(e)),1),C(`span`,null,d(an(Z.value,e)?.allowed||Z.value.profile.allowedClients?.includes(e)?b(u)(`projectAgents.clients.allowed`):b(u)(`projectAgents.clients.notAllowed`)),1),on(Z.value,e)?(a(),T(`span`,ga,d(b(u)(`projectAgents.clients.observed`,{count:on(Z.value,e)})),1)):Z.value.observedClients?.includes(e)?(a(),T(`span`,_a,d(b(u)(`projectAgents.clients.observedAny`)),1)):(a(),T(`span`,va,d(b(u)(`projectAgents.clients.unreported`)),1)),C(`small`,null,d(an(Z.value,e)?.integrationStatus||b(u)(`projectAgents.clients.integrationUnreported`)),1)]))),128))])):(a(),T(`p`,ya,d(b(u)(`projectAgents.clients.empty`)),1))])]),_:1},16)]),C(`div`,ba,[w(jt,_(et(`routingRules`),{onRetry:Q}),{default:s(()=>[C(`section`,xa,[C(`div`,Sa,[C(`h4`,null,d(b(u)(`projectAgents.sections.routing`)),1),C(`div`,Ca,[C(`span`,null,d(Z.value.routingRules?.length??0),1),C(`button`,{class:`quiet-button`,type:`button`,onClick:i[11]||=e=>lt()},d(b(u)(`projectAgents.routing.addRule`)),1)])]),Z.value.routingRules?.length?(a(),T(`div`,wa,[(a(!0),T(g,null,t(Z.value.routingRules,e=>(a(),T(`div`,{key:e.ruleId,class:`project-agent-rule-row`},[C(`strong`,null,d(e.scope)+` · `+d(e.priority),1),C(`span`,null,d(e.workKind||e.reason||b(u)(`projectAgents.notReported`))+` · `+d(e.executorIds?.join(`, `)||b(u)(`projectAgents.notReported`)),1),e.enabled?(a(),T(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:!!Y.value,onClick:t=>mt(e)},d(b(u)(`projectAgents.routing.disable`)),9,Ta)):f(``,!0)]))),128))])):(a(),T(`p`,Ea,d(b(u)(`projectAgents.routing.empty`)),1)),C(`small`,Da,d(b(u)(`projectAgents.routing.priorityNote`)),1)])]),_:1},16)]),C(`div`,Oa,[w(jt,_(et(`learning`),{onRetry:Q}),{default:s(()=>[C(`section`,ka,[C(`div`,Aa,[C(`h4`,null,d(b(u)(`projectAgents.sections.learning`)),1),C(`span`,null,d(Je.value.length),1)]),Je.value.length?(a(),T(`div`,ja,[(a(!0),T(g,null,t(Je.value,([e,r])=>(a(),T(`article`,{key:e,class:`project-agent-learning-card`},[C(`header`,null,[C(`strong`,null,d(e),1),C(`i`,null,d(cn(r)),1)]),r.personalProjectId||r.workKind||r.executor||r.modelStrategy?(a(),T(`small`,Ma,d(vt(r.personalProjectId))+` · `+d(r.workKind||b(u)(`projectAgents.notReported`))+` · `+d(r.executor||b(u)(`projectAgents.notReported`))+` / `+d(r.modelStrategy?Lt(r.modelStrategy):b(u)(`projectAgents.notReported`)),1)):f(``,!0),C(`p`,null,d(b(u)(`projectAgents.learning.samples`,{count:r.sampleCount}))+` · `+d(b(u)(`projectAgents.learning.recent`,{count:ln(r)})),1),C(`small`,null,d(r.decayBasis||b(u)(`projectAgents.learning.decayUnreported`))+` · `+d(Ft(r.updatedAt)),1),r.outcomes?(a(),T(`div`,Na,[(a(!0),T(g,null,t(r.outcomes,(e,t)=>n((a(),T(`span`,{key:t},d(t)+` · `+d(e??b(u)(`projectAgents.notReported`)),1)),[[h,e!==void 0]])),128)),r.score!==null&&r.score!==void 0?(a(),T(`span`,Pa,d(b(u)(`projectAgents.learning.score`,{score:un(r)})),1)):f(``,!0)])):f(``,!0),r.evidence?.length?(a(),T(`ul`,Fa,[(a(!0),T(g,null,t(r.evidence,e=>(a(),T(`li`,{key:`${e.evidenceId}:${e.kind}:${e.occurredAt}`},[C(`span`,null,d(e.kind)+` · `+d(e.count??0)+` · `+d(e.summary||b(u)(`projectAgents.notReported`)),1),e.evidenceId?(a(),T(`button`,{key:0,class:`quiet-button`,type:`button`,disabled:ye.value===e.evidenceId,onClick:t=>at(r,`ignore`,e.evidenceId)},d(b(u)(`projectAgents.learning.ignore`)),9,Ia)):f(``,!0)]))),128))])):f(``,!0),r.learningKey?(a(),T(`div`,La,[C(`button`,{class:`quiet-button`,type:`button`,disabled:ye.value===r.learningKey||!r.personalProjectId||!r.workKind||!r.executor,onClick:e=>at(r,`reset`)},d(b(u)(`projectAgents.learning.reset`)),9,Ra)])):f(``,!0)]))),128))])):(a(),T(`p`,za,d(b(u)(`projectAgents.learning.empty`)),1)),C(`small`,Ba,d(b(u)(`projectAgents.learning.note`)),1)])]),_:1},16)]),C(`section`,Va,[C(`h4`,null,d(b(u)(`projectAgents.sections.memory`)),1),C(`p`,null,d(Z.value.memoryScope??b(u)(`projectAgents.notReported`)),1),C(`small`,null,d(b(u)(`projectAgents.detail.memoryNote`)),1)])],8,Un)):(a(),T(`div`,Ha,d(b(u)(`projectAgents.detail.choose`)),1))])):(a(),T(`div`,An,[C(`strong`,null,d(b(u)(`projectAgents.noMatchTitle`)),1),C(`p`,null,d(b(u)(`projectAgents.noMatchCopy`)),1)])):(a(),T(`div`,On,[C(`strong`,null,d(b(u)(`projectAgents.emptyTitle`)),1),C(`p`,null,d(b(u)(`projectAgents.emptyCopy`)),1),C(`button`,{class:`project-agent-add`,type:`button`,disabled:!X.value,onClick:wt},d(b(u)(`projectAgents.add`)),9,kn)])),w(fn,{open:U.value,agent:G.value,projects:Ae.value,"default-project-id":Ge.value,"personal-space-id":X.value,onClose:Ot,onSaved:Pt},null,8,[`open`,`agent`,`projects`,`default-project-id`,`personal-space-id`]),w(Be,{open:K.value,agent:G.value,assignment:de.value,action:ue.value,projects:Ae.value,"available-agents":v.value,"default-project-id":Ge.value,onClose:At,onSaved:Mt,onChanged:Nt},null,8,[`open`,`agent`,`assignment`,`action`,`projects`,`available-agents`,`default-project-id`]),w(gt,{open:Se.value,mode:Ce.value,"personal-space-id":X.value,executor:we.value,rule:Te.value,projects:Ae.value,"available-executors":Z.value?.executorDirectory??[],onClose:ut,onSaved:pt},null,8,[`open`,`mode`,`personal-space-id`,`executor`,`rule`,`projects`,`available-executors`])],8,pn))}}),[[`__scopeId`,`data-v-d3470bdb`]]);export{Ua as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as e,F as t,H as n,N as r,T as ee,Z as i,_ as a,a as o,at as s,b as c,d as te,h as l,m as ne,n as re,nt as u,rt as ie,v as d,w as f,x as p}from"./i18n-DQH9D35M.js";import{a as m,n as h,r as g,t as ae}from"./console-B7dWYAoU.js";import{h as oe}from"./useApi-CROJJdhE-CElDxEZI.js";import{t as se}from"./paths-CDREouhi.js";import{t as _}from"./SearchableSelect-CFZNdtlY.js";import{r as v,t as y}from"./identity-JjZG6aS5.js";var ce={class:`view`},le={class:`space-heading public-space-heading`},ue=[`aria-label`],de={class:`project-grid`},fe={class:`project-card-heading`},pe={class:`project-card-heading-actions`},me=[`onClick`],he={class:`completion-badge`},ge={class:`project-purpose`},_e={class:`evidence-row`},ve={key:0,class:`muted`},ye={class:`project-access`},be={class:`muted`},xe={key:0,class:`project-release-meta`},Se={class:`project-card-footer`},b=[`onClick`],x=[`onClick`],S={key:0,class:`empty-state project-empty`},C={class:`project-section`},w={class:`section-toolbar compact-toolbar relation-section-toolbar`},T=[`disabled`],E={class:`compact-relation-preview`,"aria-live":`polite`},D={key:0},O={key:1},k={class:`primary-action`,type:`submit`},A=[`open`],j={key:0,class:`project-dialog-shell`},Ce={class:`project-dialog-header`},we={class:`project-latest-release`},Te={key:0},Ee={key:1,class:`muted`},De={class:`project-detail-columns`},Oe={key:0,class:`muted`},ke={key:1,class:`muted`},Ae={key:0,class:`muted`},je={class:`project-dialog-actions`},Me=[`open`],Ne={key:0,class:`project-dialog-shell`},Pe={class:`project-dialog-header`},Fe=[`disabled`],Ie={class:`project-delete-confirmation`},Le=[`disabled`],Re={key:0,class:`publish-dialog-error`,role:`alert`},ze={class:`project-dialog-actions`},Be=[`disabled`],M=ee({__name:`PublicProjectsPage`,setup(ee){let M=ae(),Ve=oe(),N=i(null),P=i([]),F=i([]),I=i(!1),L=i(!1),R=i(``),z=i(``),B=i(`RELATED_TO`),V=i(null),H=i(``),U=i(!1),W=i(``),G=a(()=>M.state?.projects??[]),K=a(()=>new Set((M.state?.subscriptions??[]).map(({provider_url:e,project_id:t})=>`${e}::${t}`))),q=a(()=>G.value.filter(({role:e,isOwner:t})=>e===`maintainer`||t)),He=a(()=>q.value.map(e=>({value:e.id,label:e.name,meta:`#${y(e.id,26)}`,search:v(e.id)}))),Ue=a(()=>{let e=G.value.find(({id:e})=>e===R.value);return G.value.filter(({id:t,providerUrl:n})=>t!==e?.id&&n===e?.providerUrl)}),We=a(()=>Ue.value.map(e=>({value:e.id,label:e.name,meta:`#${y(e.id,26)}`,search:v(e.id)}))),Ge=a(()=>G.value.find(({id:e})=>e===R.value)??null),Ke=a(()=>G.value.find(({id:e})=>e===z.value)??null),J=a(()=>X.value.find(({value:e})=>e===B.value)?.label??o(`pages.publicProjects.relationLabels.relatedTo`)),Y=a(()=>!!(V.value&&H.value===V.value.name)),X=a(()=>[{value:`PART_OF`,label:o(`pages.publicProjects.relationLabels.partOf`)},{value:`USES_KNOWLEDGE_FROM`,label:o(`pages.publicProjects.relationLabels.usesKnowledgeFrom`)},{value:`DEPENDS_ON`,label:o(`pages.publicProjects.relationLabels.dependsOn`)},{value:`PROVIDES_TO`,label:o(`pages.publicProjects.relationLabels.providesTo`)},{value:`SHARES_CAPABILITY_WITH`,label:o(`pages.publicProjects.relationLabels.sharesCapabilityWith`)},{value:`SUCCESSOR_OF`,label:o(`pages.publicProjects.relationLabels.successorOf`)},{value:`RELATED_TO`,label:o(`pages.publicProjects.relationLabels.relatedTo`)}]);function Z(e){return`${e.providerUrl}::${e.id}`}function Q(e){return e.profile?.purpose||e.profile?.scope||e.profile?.technical_summary||e.description||o(`pages.publicProjects.fallbackDescription`)}async function qe(e){try{if(K.value.has(Z(e))){let t=new URLSearchParams({personalSpaceId:M.activePersonalSpace?.id??``,providerUrl:e.providerUrl});await h(`/api/subscriptions/${encodeURIComponent(e.id)}?${t}`),M.notify(o(`pages.publicProjects.unsubscribed`,{name:e.name}))}else await m(`/api/subscriptions`,{personalSpaceId:M.activePersonalSpace?.id,projectId:e.id,providerUrl:e.providerUrl,projectName:e.name}),M.notify(o(`pages.publicProjects.subscribed`,{name:e.name}));await M.refresh()}catch(e){M.reportError(e)}}async function Je(e){N.value=e,P.value=[],F.value=[],I.value=!0;try{let t=new URLSearchParams({providerUrl:e.providerUrl}),[n,r]=await Promise.all([g(`/api/projects/${encodeURIComponent(e.id)}/releases?${t}`),g(`/api/project-relations?${new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl})}`)]);P.value=n.releases??[],F.value=r.relations??[]}catch(e){M.reportError(e)}finally{I.value=!1}}async function Ye(e){N.value=null,await Ve.push(se(`public`,e.id,`graph`))}function Xe(e){V.value=e,H.value=``,W.value=``}function Ze(){U.value||(V.value=null,H.value=``,W.value=``)}async function Qe(){let e=V.value;if(!e||!Y.value){W.value=o(`pages.publicProjects.deleteNameRequired`);return}U.value=!0,W.value=``;try{let t=new URLSearchParams({providerUrl:e.providerUrl});await h(`/api/projects/${encodeURIComponent(e.id)}?${t}`),N.value=null,V.value=null,M.notify(o(`pages.publicProjects.deleted`,{name:e.name})),await M.refresh()}catch(e){W.value=e instanceof Error?e.message:o(`pages.publicProjects.deleteFailed`),M.reportError(e)}finally{U.value=!1}}async function $e(){let e=G.value.find(({id:e})=>e===R.value),t=G.value.find(({id:e})=>e===z.value);if(!e||!t){M.reportError(Error(o(`pages.publicProjects.chooseRelationProjects`)));return}try{await m(`/api/project-relations`,{sourceProjectId:e.id,targetProjectId:t.id,providerUrl:e.providerUrl,relationType:B.value,note:null}),L.value=!1,R.value=``,z.value=``,M.notify(B.value===`PART_OF`?o(`pages.publicProjects.parentRelationSubmitted`):o(`pages.publicProjects.relationCreated`))}catch(e){M.reportError(e)}}function $(e){return e?new Date(e).toLocaleString(re()):o(`pages.publicProjects.timeNotRecorded`)}return(ee,i)=>(r(),p(`section`,ce,[d(`div`,le,[i[8]||=d(`span`,{class:`space-heading-icon`,"aria-hidden":`true`},[d(`span`,{class:`nav-icon nav-icon-public-project`})],-1),d(`div`,null,[d(`p`,null,s(u(o)(`pages.publicProjects.intro`)),1)]),d(`div`,{class:`public-space-stats`,"aria-label":u(o)(`pages.publicProjects.overviewAria`)},[d(`span`,null,[d(`strong`,null,s(G.value.length),1),e(s(u(o)(`pages.publicProjects.discoverable`)),1)]),d(`span`,null,[d(`strong`,null,s(u(M).state?.subscriptions.length??0),1),e(s(u(o)(`pages.publicProjects.subscribedCount`)),1)])],8,ue)]),d(`div`,de,[(r(!0),p(l,null,t(G.value,e=>(r(),p(`article`,{key:Z(e),class:`project-card`},[d(`div`,fe,[d(`div`,null,[i[9]||=d(`p`,{class:`eyebrow`},`PUBLIC PROJECT`,-1),d(`h4`,null,s(e.name),1)]),d(`div`,pe,[e.can_manage?(r(),p(`button`,{key:0,class:`management-action`,type:`button`,onClick:t=>Xe(e)},s(u(o)(`pages.publicProjects.manage`)),9,me)):c(``,!0),d(`div`,he,[d(`strong`,null,s(e.profile?.assessment?.score??`—`),1),d(`span`,null,s(e.profile?.assessment?u(o)(`pages.publicProjects.coverage`):u(o)(`pages.publicProjects.noSummary`)),1)])])]),d(`p`,ge,s(Q(e)),1),d(`div`,_e,[(r(!0),p(l,null,t(e.profile?.sources??[],(e,t)=>(r(),p(`span`,{key:t,class:`status-chip`},s(e.kind??u(o)(`pages.publicProjects.material`)),1))),128)),e.profile?.sources?.length?c(``,!0):(r(),p(`span`,ve,s(u(o)(`pages.publicProjects.noSources`)),1))]),d(`div`,ye,[d(`span`,{class:ie([`status-chip`,{owner:e.isOwner}])},s(e.isOwner?`Owner`:e.role??`Reader`),3),d(`span`,be,s(e.isOwner?u(o)(`pages.publicProjects.publishedByYou`):u(o)(`pages.publicProjects.publiclyDiscoverable`)),1),e.current_release?(r(),p(`span`,xe,[d(`strong`,null,s(e.current_release.version),1),d(`span`,null,s($(e.current_release.published_at)),1)])):c(``,!0)]),d(`footer`,Se,[d(`button`,{class:`secondary-action`,type:`button`,onClick:t=>qe(e)},s(K.value.has(Z(e))?u(o)(`pages.publicProjects.unsubscribe`):u(o)(`pages.publicProjects.subscribe`)),9,b),d(`button`,{class:`primary-action`,type:`button`,onClick:t=>Je(e)},s(u(o)(`common.actions.viewDetails`)),9,x)])]))),128)),G.value.length?c(``,!0):(r(),p(`div`,S,s(u(o)(`pages.publicProjects.noProjects`)),1))]),d(`section`,C,[d(`div`,w,[d(`div`,null,[i[10]||=d(`p`,{class:`eyebrow`},`PROJECT RELATIONS`,-1),d(`h3`,null,s(u(o)(`pages.publicProjects.relationsTitle`)),1),d(`p`,null,s(u(o)(`pages.publicProjects.relationsCopy`)),1)]),d(`button`,{class:`primary-action`,type:`button`,disabled:!q.value.length,onClick:i[0]||=e=>L.value=!L.value},s(u(o)(`pages.publicProjects.addRelation`)),9,T)]),L.value?(r(),p(`form`,{key:0,class:`relation-composer relation-composer-form compact-relation-form`,onSubmit:ne($e,[`prevent`])},[d(`label`,null,[e(s(u(o)(`pages.publicProjects.sourceProject`))+` `,1),f(_,{modelValue:R.value,"onUpdate:modelValue":i[1]||=e=>R.value=e,options:He.value,label:u(o)(`pages.publicProjects.sourceProjectLabel`),placeholder:u(o)(`pages.publicProjects.chooseProject`),searchable:``,required:``,onChange:i[2]||=e=>z.value=``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),d(`label`,null,[e(s(u(o)(`pages.publicProjects.relation`))+` `,1),f(_,{modelValue:B.value,"onUpdate:modelValue":i[3]||=e=>B.value=e,options:X.value,label:u(o)(`pages.publicProjects.relationTypeLabel`)},null,8,[`modelValue`,`options`,`label`])]),d(`label`,null,[e(s(u(o)(`pages.publicProjects.targetProject`))+` `,1),f(_,{modelValue:z.value,"onUpdate:modelValue":i[4]||=e=>z.value=e,options:We.value,label:u(o)(`pages.publicProjects.targetProjectLabel`),placeholder:u(o)(`pages.publicProjects.chooseProject`),searchable:``,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),d(`div`,E,[d(`span`,null,s(u(o)(`pages.publicProjects.preview`)),1),d(`strong`,null,s(Ge.value?.name||u(o)(`pages.publicProjects.sourceProject`))+` `+s(J.value)+` `+s(Ke.value?.name||u(o)(`pages.publicProjects.targetProject`)),1),B.value===`PART_OF`?(r(),p(`p`,D,s(u(o)(`pages.publicProjects.parentConfirmation`)),1)):(r(),p(`p`,O,s(u(o)(`pages.publicProjects.relationBoundary`)),1))]),d(`button`,k,s(u(o)(`pages.publicProjects.addRelation`)),1)],32)):c(``,!0)]),d(`dialog`,{open:!!N.value,class:`project-dialog vue-dialog`},[N.value?(r(),p(`div`,j,[d(`header`,Ce,[d(`div`,null,[i[11]||=d(`p`,{class:`eyebrow`},`PUBLIC PROJECT`,-1),d(`h3`,null,s(N.value.name),1),d(`p`,null,s(Q(N.value)),1)]),d(`button`,{class:`secondary-action`,type:`button`,onClick:i[5]||=e=>N.value=null},s(u(o)(`common.actions.close`)),1)]),d(`section`,we,[i[12]||=d(`p`,{class:`eyebrow`},`LATEST RELEASE`,-1),d(`h4`,null,s(u(o)(`pages.publicProjects.latestRelease`)),1),N.value.current_release?(r(),p(`p`,Te,[d(`strong`,null,s(N.value.current_release.version),1),e(` · `+s($(N.value.current_release.published_at)),1)])):(r(),p(`p`,Ee,s(u(o)(`pages.publicProjects.noRelease`)),1))]),d(`div`,De,[d(`section`,null,[d(`h4`,null,s(u(o)(`pages.publicProjects.releaseHistory`)),1),I.value?(r(),p(`p`,Oe,s(u(o)(`pages.publicProjects.loading`)),1)):c(``,!0),(r(!0),p(l,null,t(P.value,e=>(r(),p(`article`,{key:e.version,class:`project-release-item`},[d(`strong`,null,s(e.version),1),d(`p`,null,s(e.update_summary),1),d(`small`,null,s($(e.published_at)),1)]))),128)),!I.value&&!P.value.length?(r(),p(`p`,ke,s(u(o)(`pages.publicProjects.noReleaseHistory`)),1)):c(``,!0)]),d(`section`,null,[d(`h4`,null,s(u(o)(`pages.publicProjects.relationsTitle`)),1),(r(!0),p(l,null,t(F.value,e=>(r(),p(`article`,{key:e.id,class:`project-detail-relation`},[d(`strong`,null,s(e.relation_type),1),d(`small`,null,s(e.status??`active`),1)]))),128)),!I.value&&!F.value.length?(r(),p(`p`,Ae,s(u(o)(`pages.publicProjects.noRelations`)),1)):c(``,!0)])]),d(`footer`,je,[d(`span`,null,s(u(o)(`pages.publicProjects.contentManagementSeparated`)),1),d(`button`,{class:`primary-action`,type:`button`,onClick:i[6]||=e=>Ye(N.value)},s(u(o)(`pages.publicProjects.viewGraph`)),1)])])):c(``,!0)],8,A),d(`dialog`,{open:!!V.value,class:`project-dialog vue-dialog`},[V.value?(r(),p(`div`,Ne,[d(`header`,Pe,[d(`div`,null,[i[13]||=d(`p`,{class:`eyebrow`},`DESTRUCTIVE ACTION`,-1),d(`h3`,null,s(u(o)(`pages.publicProjects.deleteTitle`)),1),d(`p`,null,s(u(o)(`pages.publicProjects.deleteCopy`)),1)]),d(`button`,{class:`secondary-action`,type:`button`,disabled:U.value,onClick:Ze},s(u(o)(`common.actions.close`)),9,Fe)]),d(`label`,Ie,[e(s(u(o)(`pages.publicProjects.enterFullName`))+` `,1),d(`strong`,null,s(V.value.name),1),n(d(`input`,{"onUpdate:modelValue":i[7]||=e=>H.value=e,autocomplete:`off`,disabled:U.value},null,8,Le),[[te,H.value]])]),W.value?(r(),p(`p`,Re,s(W.value),1)):c(``,!0),d(`footer`,ze,[d(`span`,null,s(u(o)(`pages.publicProjects.deleteWarning`)),1),d(`button`,{class:`reject`,type:`button`,disabled:!Y.value||U.value,onClick:Qe},s(U.value?u(o)(`pages.publicProjects.deleting`):u(o)(`pages.publicProjects.deletePermanently`)),9,Be)])])):c(``,!0)],8,Me)]))}});export{M as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{F as e,N as t,T as n,Z as r,_ as i,a,at as o,b as s,h as c,nt as l,v as u,w as d,x as f,z as p}from"./i18n-DQH9D35M.js";import{a as m,r as h,t as g}from"./console-B7dWYAoU.js";import{t as _}from"./SearchableSelect-CFZNdtlY.js";import{r as v,t as y}from"./identity-JjZG6aS5.js";import{u as b}from"./model-zL97NJ-U.js";var x={class:`view`},S={class:`section-title`},C={class:`review-list`},w={class:`review-stage`},T={class:`review-meta`},E={class:`review-actions stacked-actions`},D=[`onClick`],O=[`onClick`],k=[`onClick`],A={key:0,class:`empty-state`},j={key:0,class:`project-section`},M={class:`section-toolbar`},N={class:`review-list`},P={class:`review-stage`},F={class:`review-meta`},I={class:`review-actions`},L=[`onClick`],R=[`onClick`],z={key:0,class:`empty-state`},B=n({__name:`ReviewPage`,setup(n){let B=g(),V=r([]),H=r([]),U=r(``),W=r(!1),G=i(()=>(B.state?.projects??[]).filter(({role:e})=>e===`maintainer`)),K=i(()=>G.value.map(e=>({value:e.id,label:e.name,meta:`#${y(e.id,26)}`,search:v(e.id)}))),q=i(()=>G.value.find(({id:e})=>e===U.value)??null);p(()=>B.state,e=>{e&&(U.value||=G.value[0]?.id??``,J())},{immediate:!0}),p(U,()=>void X());async function J(){W.value=!0,await Promise.all([Y(),X()]),W.value=!1}async function Y(){let e=B.activePersonalSpace?.id;if(e)try{let t=await h(`/api/personal-review?${new URLSearchParams({personalSpaceId:e,status:`pending`})}`);V.value=t.drafts??[]}catch(e){B.reportError(e)}}async function X(){let e=q.value;if(!e){H.value=[];return}try{let t=await h(`/api/review?${new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl,status:`pending`})}`);H.value=t.proposals??[]}catch(e){H.value=[],B.reportError(e)}}async function Z(e,t){try{await m(`/api/personal-review/${encodeURIComponent(e.id)}/decision`,{decision:t}),await Promise.all([Y(),B.refresh()])}catch(e){B.reportError(e)}}async function Q(e,t){let n=q.value;if(n)try{await m(`/api/review/${encodeURIComponent(e.id)}/decision`,{projectId:n.id,providerUrl:n.providerUrl,decision:t,note:null}),await X()}catch(e){B.reportError(e)}}return(n,r)=>(t(),f(`section`,x,[u(`div`,S,[u(`h3`,null,o(l(a)(`pages.review.personalTitle`)),1),u(`p`,null,o(l(a)(`pages.review.personalCopy`)),1)]),u(`div`,C,[(t(!0),f(c,null,e(V.value,e=>(t(),f(`article`,{key:e.id,class:`review-item review-item-detailed`},[u(`div`,null,[u(`div`,w,o(l(a)(`pages.review.beforePublic`)),1),u(`h4`,null,o(e.episode.name),1),u(`p`,null,o(e.episode.summary||e.episode.source_description),1),u(`div`,T,[u(`span`,null,o(l(a)(`common.counts.entities`,{count:e.episode.entities?.length??0})),1),u(`span`,null,o(l(a)(`common.counts.relationships`,{count:e.episode.relationships?.length??0})),1),u(`span`,null,o(l(b)(e.created_at)),1)])]),u(`div`,E,[u(`button`,{class:`secondary-action`,type:`button`,onClick:t=>Z(e,`keep_personal`)},o(l(a)(`pages.review.keepPersonal`)),9,D),u(`button`,{class:`reject`,type:`button`,onClick:t=>Z(e,`ignore`)},o(l(a)(`pages.review.ignore`)),9,O),l(B).state?.capabilities?.submitKnowledge?(t(),f(`button`,{key:0,class:`approve`,type:`button`,onClick:t=>Z(e,`submit_public`)},o(l(a)(`pages.review.submitPublic`)),9,k)):s(``,!0)])]))),128)),!W.value&&!V.value.length?(t(),f(`div`,A,o(l(a)(`pages.review.noPersonalDrafts`)),1)):s(``,!0)]),l(B).state?.capabilities?.reviewProposals?(t(),f(`section`,j,[u(`div`,M,[u(`div`,null,[u(`h3`,null,o(l(a)(`pages.review.publicTitle`)),1),u(`p`,null,o(l(a)(`pages.review.publicCopy`)),1)]),d(_,{modelValue:U.value,"onUpdate:modelValue":r[0]||=e=>U.value=e,options:K.value,label:l(a)(`pages.review.projectLabel`),"control-id":`review-project`,searchable:``},null,8,[`modelValue`,`options`,`label`])]),u(`div`,N,[(t(!0),f(c,null,e(H.value,e=>(t(),f(`article`,{key:e.id,class:`review-item`},[u(`div`,null,[u(`div`,P,o(l(a)(`pages.review.maintainerReview`)),1),u(`h4`,null,o(e.episode.name),1),u(`p`,null,o(e.episode.summary||e.episode.source_description),1),u(`div`,F,[u(`span`,null,o(l(b)(e.created_at)),1)])]),u(`div`,I,[u(`button`,{class:`reject`,type:`button`,onClick:t=>Q(e,`reject`)},o(l(a)(`pages.review.reject`)),9,L),u(`button`,{class:`approve`,type:`button`,onClick:t=>Q(e,`approve`)},o(l(a)(`pages.review.approve`)),9,R)])]))),128)),!W.value&&!H.value.length?(t(),f(`div`,z,o(l(a)(`pages.review.noProposals`)),1)):s(``,!0)])])):s(``,!0)]))}});export{B as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as e,F as t,H as n,M as r,N as i,T as a,Z as o,_ as s,a as c,at as l,b as u,c as d,d as f,h as p,i as m,it as h,j as ee,m as te,n as ne,nt as g,v as _,w as v,x as y,z as re}from"./i18n-DQH9D35M.js";import{o as ie,r as b,t as ae}from"./console-B7dWYAoU.js";import{t as x}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as S}from"./SearchableSelect-CFZNdtlY.js";import{o as oe,r as se,t as C}from"./conversation-launcher-settings-D1xhW1S5.js";var ce=[`aria-label`],le={class:`settings-content`},ue={key:0,class:`settings-top-status`,role:`status`},de={key:0},fe={key:1},pe={class:`settings-card resource-card`},me={class:`section-heading`},he={key:0},ge=[`disabled`],_e={key:0,class:`settings-error`,role:`alert`},ve={class:`resource-totals`},ye={class:`resource-breakdowns`},w={class:`resource-group`},T={class:`resource-group`},E={class:`resource-notes`},D={key:0},O={key:1},k={key:2,class:`settings-skeleton`,"aria-hidden":`true`},A={class:`settings-card ports-card`},j={class:`section-heading`},M={key:0,class:`restart-chip`},N={class:`port-section`},P={class:`port-grid`},be=[`onUpdate:modelValue`],xe={class:`port-section development-section`},Se={id:`conversation-launchers`,class:`settings-card conversation-launcher-card`},Ce={class:`conversation-launcher-list`},we={class:`conversation-launcher-heading`},Te={class:`conversation-launcher-switch`},Ee=[`onUpdate:modelValue`],De={key:0,class:`conversation-launcher-note`},Oe={key:1,class:`conversation-launcher-fields`},ke=[`onUpdate:modelValue`],Ae={class:`conversation-launcher-template`},je=[`onUpdate:modelValue`],Me={class:`settings-card behavior-card`},Ne={class:`setting-list`},Pe={class:`setting-row`},Fe=[`checked`],Ie={class:`setting-row`},Le=[`checked`],Re={class:`setting-row`},ze={class:`setting-row select-row`},Be={class:`setting-row select-row`},Ve={class:`setting-row select-row`},He={key:0,class:`settings-error`,role:`alert`},Ue={key:2,class:`settings-error`,role:`alert`},F=x(a({__name:`SettingsPage`,setup(a){let x=ae(),F=o(null),I=o(null),L=o(null),R=o(!0),z=o(!1),B=o(!1),V=o(``),H=o(``),U=o(!1),W=null,We=[`console`,`personalProvider`,`personalNeo4jHttp`,`personalNeo4jBolt`],G=s({get:()=>ne(),set:e=>m(e)}),K=[5,10,30,60],Ge=se,Ke=s(()=>[{value:`zh-CN`,label:c(`settings.behavior.zh`)},{value:`en-US`,label:c(`settings.behavior.en`)}]),qe=s(()=>K.map(e=>({value:String(e),label:c(`settings.resources.refreshUnit`,{seconds:e})}))),Je=s(()=>[{value:`native`,label:c(`settings.behavior.runtimeModes.native`)},{value:`container`,label:c(`settings.behavior.runtimeModes.container`)}]),Ye=s(()=>[{value:`any`,label:c(`settings.conversationLaunchers.idFormats.any`)},{value:`uuid`,label:c(`settings.conversationLaunchers.idFormats.uuid`)}]),Xe=s(()=>x.state?.capturePolicy?.enabled!==!1),Ze=s(()=>x.state?.agentAccessPolicy?.enabled!==!1),Qe=s(()=>Math.max(1,...L.value?.memory.components.map(({bytes:e})=>e)??[1])),$e=s(()=>Math.max(1,...L.value?.disk.components.map(({bytes:e})=>e)??[1])),et=s(()=>I.value?.graphRuntimeMode===`container`&&Number.isFinite(L.value?.memory.hostTotalBytes)&&Number(L.value?.memory.hostTotalBytes)<=16*1024**3);r(async()=>{x.runtimeStatus===`idle`&&x.refresh(),await Promise.all([q(),J()]),R.value=!1}),ee(Y),re(()=>I.value?.resourceRefreshSeconds,()=>nt());async function q(){try{let e=await b(`/api/system/settings`);F.value=e,I.value=structuredClone(e.configured),C(e.configured.conversationLaunchers),V.value=``}catch(e){V.value=e instanceof Error?e.message:c(`settings.loadError`)}}async function J(){if(!(B.value||document.visibilityState===`hidden`)){B.value=!0;try{L.value=await b(`/api/system/resources`),H.value=``}catch(e){H.value=e instanceof Error?e.message:c(`settings.resources.unavailable`)}finally{B.value=!1}}}async function tt(){if(!(!I.value||z.value)){z.value=!0,U.value=!1;try{let e=await ie(`/api/system/settings`,I.value);F.value=e,I.value=structuredClone(e.configured),C(e.configured.conversationLaunchers),U.value=!0,V.value=``,window.setTimeout(()=>{U.value=!1},2400)}catch(e){V.value=e instanceof Error?e.message:c(`settings.saveError`)}finally{z.value=!1}}}function nt(){Y();let e=I.value?.resourceRefreshSeconds;e&&(W=setInterval(()=>void J(),e*1e3))}function Y(){W&&clearInterval(W),W=null}function rt(e){x.updateCapturePolicy(e.currentTarget.checked)}function it(e){x.updateAgentAccessPolicy(e.currentTarget.checked)}function at(e){(e===`zh-CN`||e===`en-US`)&&m(e)}function ot(e){let t=K.find(t=>String(t)===e);t===void 0||!I.value||(I.value.resourceRefreshSeconds=t)}function st(e){!I.value||e!==`native`&&e!==`container`||(I.value.graphRuntimeMode=e)}function ct(e){let t=c(`settings.conversationLaunchers.applications.${e}`);return t===`settings.conversationLaunchers.applications.${e}`?oe(e):t}function lt(e){return F.value?.active.ports[e]??`—`}function X(e){let t=`settings.resources.components.${e.id}`,n=c(t);return n===t?e.label:n}function Z(e){if(!Number.isFinite(e))return`—`;let t=Number(e),n=[`B`,`KiB`,`MiB`,`GiB`,`TiB`],r=t,i=0;for(;r>=1024&&i<n.length-1;)r/=1024,i+=1;let a=i===0||r>=100?0:r>=10?1:2;return`${r.toFixed(a)} ${n[i]}`}function Q(e,t){return`${Math.max(3,Math.round(e/t*100))}%`}function $(e){return e?new Intl.DateTimeFormat(G.value,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`}).format(new Date(e)):`—`}return(r,a)=>(i(),y(`section`,{class:`view settings-view`,"aria-label":g(c)(`settings.aria`)},[_(`div`,le,[U.value||F.value?.restartRequired?(i(),y(`div`,ue,[U.value?(i(),y(`strong`,de,l(g(c)(`settings.saved`)),1)):u(``,!0),F.value?.restartRequired?(i(),y(`span`,fe,l(g(c)(`settings.restartCopy`)),1)):u(``,!0)])):u(``,!0),_(`section`,pe,[_(`header`,me,[_(`div`,null,[_(`h3`,null,l(g(c)(`settings.resources.title`)),1),L.value?(i(),y(`p`,he,l(g(c)(`settings.resources.measuredAt`,{time:$(L.value.sampledAt)})),1)):u(``,!0)]),_(`button`,{class:`quiet-button`,type:`button`,disabled:B.value,onClick:J},l(g(c)(`common.actions.refresh`)),9,ge)]),H.value?(i(),y(`p`,_e,l(H.value),1)):L.value?(i(),y(p,{key:1},[_(`div`,ve,[_(`article`,null,[_(`span`,null,l(g(c)(`settings.resources.memory`)),1),_(`strong`,null,l(Z(L.value.memory.usedBytes)),1),_(`small`,null,l(g(c)(`settings.resources.available`,{value:Z(L.value.memory.hostFreeBytes)})),1)]),_(`article`,null,[_(`span`,null,l(g(c)(`settings.resources.disk`)),1),_(`strong`,null,l(Z(L.value.disk.usedBytes)),1),_(`small`,null,l(g(c)(`settings.resources.available`,{value:Z(L.value.disk.hostFreeBytes)})),1)])]),_(`div`,ye,[_(`div`,w,[_(`h4`,null,l(g(c)(`settings.resources.memory`)),1),(i(!0),y(p,null,t(L.value.memory.components,e=>(i(),y(`div`,{key:e.id,class:`resource-row`},[_(`div`,null,[_(`span`,null,l(X(e)),1),_(`strong`,null,l(Z(e.bytes)),1)]),_(`i`,null,[_(`b`,{style:h({width:Q(e.bytes,Qe.value)})},null,4)])]))),128))]),_(`div`,T,[_(`h4`,null,l(g(c)(`settings.resources.disk`)),1),(i(!0),y(p,null,t(L.value.disk.components,e=>(i(),y(`div`,{key:e.id,class:`resource-row`},[_(`div`,null,[_(`span`,null,l(X(e)),1),_(`strong`,null,l(Z(e.bytes)),1)]),_(`i`,null,[_(`b`,{style:h({width:Q(e.bytes,$e.value)})},null,4)])]))),128))])]),_(`div`,E,[_(`span`,null,l(g(c)(`settings.resources.diskMeasuredAt`,{time:$(L.value.disk.measuredAt)})),1),L.value.status===`partial`?(i(),y(`span`,D,l(g(c)(`settings.resources.partial`)),1)):u(``,!0),L.value.disk.temporaryBytes?(i(),y(`span`,O,l(g(c)(`settings.resources.temporary`,{value:Z(L.value.disk.temporaryBytes)})),1)):u(``,!0),_(`span`,null,l(g(c)(L.value.exclusions.includes(`shared-container-vm-overhead`)?`settings.resources.exclusionsContainer`:`settings.resources.exclusionsNative`)),1)])],64)):(i(),y(`div`,k))]),I.value?(i(),y(`form`,{key:1,id:`settings-form`,class:`settings-form`,onSubmit:te(tt,[`prevent`])},[_(`section`,A,[_(`header`,j,[_(`h3`,null,l(g(c)(`settings.ports.title`)),1),F.value?.restartRequired?(i(),y(`span`,M,l(g(c)(`settings.restartRequired`)),1)):u(``,!0)]),_(`div`,N,[_(`h4`,null,l(g(c)(`settings.ports.personal`)),1),_(`div`,P,[(i(),y(p,null,t(We,e=>_(`label`,{key:e},[_(`span`,null,l(g(c)(`settings.ports.${e}`)),1),n(_(`input`,{"onUpdate:modelValue":t=>I.value.ports[e]=t,type:`number`,min:`1`,max:`65535`,required:``},null,8,be),[[f,I.value.ports[e],void 0,{number:!0}]]),_(`small`,null,l(g(c)(`settings.ports.active`,{port:lt(e)})),1)])),64))])]),_(`div`,xe,[_(`div`,null,[_(`h4`,null,l(g(c)(`settings.ports.development`)),1),_(`span`,null,l(g(c)(`settings.ports.developing`)),1)]),_(`p`,null,l(g(c)(`settings.ports.developmentMeta`)),1)])]),_(`section`,Se,[_(`h3`,null,l(g(c)(`settings.conversationLaunchers.title`)),1),_(`div`,Ce,[(i(!0),y(p,null,t(g(Ge),t=>(i(),y(`article`,{key:t,class:`conversation-launcher-row`},[_(`div`,we,[_(`span`,null,[_(`strong`,null,l(ct(t)),1),_(`small`,null,l(g(c)(`settings.conversationLaunchers.sourceId`,{id:t})),1)]),_(`label`,Te,[_(`span`,null,l(g(c)(`settings.conversationLaunchers.enabled`)),1),n(_(`input`,{"onUpdate:modelValue":e=>I.value.conversationLaunchers[t].enabled=e,type:`checkbox`,role:`switch`},null,8,Ee),[[d,I.value.conversationLaunchers[t].enabled]])])]),I.value.conversationLaunchers[t].enabled&&t===`codex`?(i(),y(`small`,De,l(g(c)(`settings.conversationLaunchers.idFormatMeta`)),1)):u(``,!0),I.value.conversationLaunchers[t].enabled?(i(),y(`div`,Oe,[_(`label`,null,[_(`span`,null,l(g(c)(`settings.conversationLaunchers.idFormat`)),1),v(S,{modelValue:I.value.conversationLaunchers[t].idFormat,"onUpdate:modelValue":e=>I.value.conversationLaunchers[t].idFormat=e,class:`launcher-select`,"control-id":`settings-conversation-${t}-id-format`,options:Ye.value,label:g(c)(`settings.conversationLaunchers.idFormat`)},null,8,[`modelValue`,`onUpdate:modelValue`,`control-id`,`options`,`label`])]),_(`label`,null,[_(`span`,null,l(g(c)(`settings.conversationLaunchers.appName`)),1),n(_(`input`,{"onUpdate:modelValue":e=>I.value.conversationLaunchers[t].appName=e,type:`text`,maxlength:`64`,required:``},null,8,ke),[[f,I.value.conversationLaunchers[t].appName,void 0,{trim:!0}]])]),_(`label`,Ae,[_(`span`,null,[e(l(g(c)(`settings.conversationLaunchers.urlTemplate`))+` `,1),a[1]||=_(`small`,null,[_(`code`,null,`{id}`)],-1)]),n(_(`input`,{"onUpdate:modelValue":e=>I.value.conversationLaunchers[t].urlTemplate=e,type:`text`,maxlength:`1024`,spellcheck:`false`,required:``},null,8,je),[[f,I.value.conversationLaunchers[t].urlTemplate,void 0,{trim:!0}]])])])):u(``,!0)]))),128))])]),_(`section`,Me,[_(`h3`,null,l(g(c)(`settings.behavior.title`)),1),_(`div`,Ne,[_(`label`,Pe,[_(`span`,null,[_(`strong`,null,l(g(c)(`settings.behavior.capture`)),1),_(`small`,null,l(g(c)(`settings.behavior.captureMeta`)),1)]),_(`input`,{type:`checkbox`,role:`switch`,checked:Xe.value,onChange:rt},null,40,Fe)]),_(`label`,Ie,[_(`span`,null,[_(`strong`,null,l(g(c)(`settings.behavior.agentAccess`)),1),_(`small`,null,l(g(c)(`settings.behavior.agentAccessMeta`)),1)]),_(`input`,{type:`checkbox`,role:`switch`,checked:Ze.value,onChange:it},null,40,Le)]),_(`label`,Re,[_(`span`,null,[_(`strong`,null,l(g(c)(`settings.behavior.lanAccess`)),1),_(`small`,null,l(g(c)(`settings.behavior.lanAccessMeta`)),1)]),n(_(`input`,{"onUpdate:modelValue":a[0]||=e=>I.value.lanAccess=e,type:`checkbox`,role:`switch`},null,512),[[d,I.value.lanAccess]])]),_(`div`,ze,[_(`span`,null,[_(`strong`,null,l(g(c)(`settings.behavior.runtimeMode`)),1),_(`small`,null,l(et.value?g(c)(`settings.behavior.runtimeRecommendation`):g(c)(`settings.behavior.runtimeModeMeta`,{mode:g(c)(`settings.behavior.runtimeModes.${F.value?.active.graphRuntimeMode??I.value.graphRuntimeMode}`)})),1)]),v(S,{class:`settings-select`,"control-id":`settings-runtime-mode`,"model-value":I.value.graphRuntimeMode,options:Je.value,label:g(c)(`settings.behavior.runtimeMode`),"onUpdate:modelValue":st},null,8,[`model-value`,`options`,`label`])]),_(`div`,Be,[_(`span`,null,[_(`strong`,null,l(g(c)(`settings.behavior.language`)),1)]),v(S,{class:`settings-select`,"control-id":`settings-language`,"model-value":G.value,options:Ke.value,label:g(c)(`settings.behavior.language`),"onUpdate:modelValue":at},null,8,[`model-value`,`options`,`label`])]),_(`div`,Ve,[_(`span`,null,[_(`strong`,null,l(g(c)(`settings.resources.refresh`)),1)]),v(S,{class:`settings-select`,"control-id":`settings-refresh-interval`,"model-value":String(I.value.resourceRefreshSeconds),options:qe.value,label:g(c)(`settings.resources.refresh`),"onUpdate:modelValue":ot},null,8,[`model-value`,`options`,`label`])])])]),V.value?(i(),y(`p`,He,l(V.value),1)):u(``,!0)],32)):R.value?u(``,!0):(i(),y(`p`,Ue,l(V.value||g(c)(`settings.loadError`)),1))])],8,ce))}}),[[`__scopeId`,`data-v-63730e70`]]);export{F as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.settings-view[data-v-63730e70]{background:#f7f8f6;padding-top:24px}.settings-content[data-v-63730e70]{gap:18px;width:min(1120px,100%);margin:0 auto;display:grid}.settings-form[data-v-63730e70]{gap:18px;display:grid}.settings-card[data-v-63730e70]{background:#fff;border:1px solid #d7ddd8;border-radius:12px;padding:26px;box-shadow:0 8px 30px #2b3b320a}.section-heading[data-v-63730e70]{justify-content:space-between;align-items:center;gap:18px;margin-bottom:22px;display:flex}.settings-card h3[data-v-63730e70]{color:#2e3c34;font-size:19px}.section-heading p[data-v-63730e70]{color:#879089;margin-top:5px;font-size:11px}.resource-totals[data-v-63730e70]{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.resource-totals article[data-v-63730e70]{background:#f7f9f7;border:1px solid #dce2dd;border-radius:10px;align-content:center;gap:7px;min-height:126px;padding:20px 22px;display:grid}.resource-totals span[data-v-63730e70]{color:#667169;font-size:12px}.resource-totals strong[data-v-63730e70]{color:#24332a;letter-spacing:-.04em;font-size:clamp(25px,3vw,34px)}.resource-totals small[data-v-63730e70]{color:#8a938d;font-size:11px}.resource-breakdowns[data-v-63730e70]{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:26px;display:grid}.resource-group[data-v-63730e70]{gap:13px;display:grid}.resource-group h4[data-v-63730e70],.port-section h4[data-v-63730e70]{color:#536058;font-size:12px}.resource-row[data-v-63730e70]{gap:6px;display:grid}.resource-row>div[data-v-63730e70]{color:#67736b;justify-content:space-between;gap:12px;font-size:11px;display:flex}.resource-row strong[data-v-63730e70]{color:#36443b;font-weight:650}.resource-row i[data-v-63730e70]{background:#eef1ee;border-radius:999px;height:5px;overflow:hidden}.resource-row b[data-v-63730e70]{border-radius:inherit;background:#6f8f79;height:100%;display:block}.resource-group:last-child .resource-row b[data-v-63730e70]{background:#82958a}.resource-notes[data-v-63730e70]{color:#8a938d;flex-wrap:wrap;gap:8px 18px;margin-top:22px;font-size:10px;display:flex}.settings-skeleton[data-v-63730e70]{background:#f2f4f2;border-radius:9px;height:260px}.restart-chip[data-v-63730e70]{color:#8d5a18;background:#fff8ec;border:1px solid #d7aa68;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:700}.port-section[data-v-63730e70]{gap:13px;display:grid}.port-section+.port-section[data-v-63730e70]{border-top:1px solid #edf0ed;margin-top:25px;padding-top:22px}.development-section>div[data-v-63730e70]{align-items:center;gap:9px;display:flex}.development-section>div>span[data-v-63730e70]{color:#78633a;background:#f6f0e4;border-radius:999px;padding:4px 8px;font-size:9px;font-weight:700}.development-section>p[data-v-63730e70]{color:#8b948e;font-size:10px}.port-grid[data-v-63730e70]{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.port-grid label[data-v-63730e70]{color:#59655e;gap:7px;font-size:11px;display:grid}.port-grid input[data-v-63730e70],.select-row[data-v-63730e70] .settings-select .searchable-select-trigger{color:#2f3d34;width:100%;min-height:40px;font:inherit;background:#fbfcfb;border:1px solid #ccd4ce;border-radius:8px;outline:none;padding:0 11px}.port-grid input[data-v-63730e70]:focus,.select-row[data-v-63730e70] .settings-select .searchable-select-trigger:focus-visible{border-color:#6f8f79;box-shadow:0 0 0 3px #6f8f791f}.port-grid small[data-v-63730e70]{color:#9aa29d;font-size:9px}.behavior-card>h3[data-v-63730e70],.conversation-launcher-card>h3[data-v-63730e70]{margin-bottom:14px}.conversation-launcher-list[data-v-63730e70]{display:grid}.conversation-launcher-row[data-v-63730e70]{border-top:1px solid #edf0ed;padding:16px 0}.conversation-launcher-row[data-v-63730e70]:first-child{border-top:0}.conversation-launcher-heading[data-v-63730e70]{justify-content:space-between;align-items:center;gap:20px;min-height:34px;display:flex}.conversation-launcher-heading>span[data-v-63730e70]{gap:4px;display:grid}.conversation-launcher-heading strong[data-v-63730e70]{color:#354239;font-size:12px}.conversation-launcher-heading small[data-v-63730e70]{color:#8b948e;font-size:9px}.conversation-launcher-switch[data-v-63730e70]{color:#667169;align-items:center;gap:9px;font-size:10px;display:flex}.conversation-launcher-switch input[role=switch][data-v-63730e70]{margin:0}.conversation-launcher-note[data-v-63730e70]{color:#8b948e;max-width:760px;margin-top:9px;font-size:9px;line-height:1.45;display:block}.conversation-launcher-fields[data-v-63730e70]{grid-template-columns:minmax(150px,.7fr) minmax(160px,.8fr) minmax(280px,1.5fr);align-items:start;gap:12px;margin-top:14px;display:grid}.conversation-launcher-fields>label[data-v-63730e70]{color:#59655e;grid-template-rows:18px 40px;align-content:start;gap:7px;min-width:0;font-size:10px;display:grid}.conversation-launcher-fields>label>span[data-v-63730e70]{text-overflow:ellipsis;white-space:nowrap;min-width:0;line-height:18px;display:block;overflow:hidden}.conversation-launcher-fields code[data-v-63730e70]{color:#7b857e;font-size:9px}.conversation-launcher-fields[data-v-63730e70] .launcher-select{width:100%;min-width:0;height:40px}.conversation-launcher-fields input[data-v-63730e70],.conversation-launcher-fields[data-v-63730e70] .launcher-select .searchable-select-trigger{box-sizing:border-box;color:#2f3d34;width:100%;height:40px;min-height:40px;font:inherit;background:#fbfcfb;border:1px solid #ccd4ce;border-radius:8px;outline:none;padding:0 11px;line-height:1.2}.conversation-launcher-fields input[data-v-63730e70]:focus,.conversation-launcher-fields[data-v-63730e70] .launcher-select .searchable-select-trigger:focus-visible{border-color:#6f8f79;box-shadow:0 0 0 3px #6f8f791f}.conversation-launcher-fields[data-v-63730e70] .launcher-select .searchable-select-current{align-items:center}.conversation-launcher-fields[data-v-63730e70] .launcher-select .searchable-select-current-label{font-weight:500}.conversation-launcher-fields[data-v-63730e70] .launcher-select .searchable-select-panel{width:100%;min-width:0}.setting-list[data-v-63730e70]{display:grid}.setting-row[data-v-63730e70]{cursor:pointer;border-top:1px solid #edf0ed;justify-content:space-between;align-items:center;gap:24px;min-height:64px;display:flex}.setting-row[data-v-63730e70]:first-child{border-top:0}.setting-row>span[data-v-63730e70]{gap:4px;display:grid}.setting-row strong[data-v-63730e70]{color:#354239;font-size:12px}.setting-row small[data-v-63730e70]{color:#8b948e;font-size:10px}.setting-row input[role=switch][data-v-63730e70],.conversation-launcher-switch input[role=switch][data-v-63730e70]{appearance:none;cursor:pointer;background:#cbd2cd;border-radius:999px;width:38px;height:21px;transition:background .18s;position:relative}.setting-row input[role=switch][data-v-63730e70]:after,.conversation-launcher-switch input[role=switch][data-v-63730e70]:after{content:"";background:#fff;border-radius:50%;width:17px;height:17px;transition:transform .18s;position:absolute;top:50%;left:2px;transform:translateY(-50%);box-shadow:0 0 4px #0000002e}.setting-row input[role=switch][data-v-63730e70]:checked,.conversation-launcher-switch input[role=switch][data-v-63730e70]:checked{background:#688b73}.setting-row input[role=switch][data-v-63730e70]:checked:after,.conversation-launcher-switch input[role=switch][data-v-63730e70]:checked:after{transform:translate(17px,-50%)}.select-row .settings-select[data-v-63730e70]{width:180px;min-width:0}.select-row[data-v-63730e70] .settings-select .searchable-select-trigger{background:#fbfcfb;border-radius:8px;padding:0 14px 0 11px}.select-row[data-v-63730e70] .settings-select .searchable-select-current{align-items:center}.select-row[data-v-63730e70] .settings-select .searchable-select-current-label{font-weight:500}.select-row[data-v-63730e70] .settings-select .searchable-select-arrow{border-width:1.5px;width:8px;height:8px;margin-right:1px}.select-row[data-v-63730e70] .settings-select .searchable-select-panel{width:100%;min-width:0}.settings-top-status[data-v-63730e70]{color:#7d8780;flex-wrap:wrap;align-items:center;gap:6px 16px;padding:0 4px 2px;font-size:10px;display:flex}.settings-top-status strong[data-v-63730e70]{color:#477356;font-weight:700}.settings-error[data-v-63730e70]{color:#8c3934;background:#fff2f0;border-radius:8px;padding:11px 13px;font-size:11px}@media (width<=900px){.port-grid[data-v-63730e70],.conversation-launcher-fields[data-v-63730e70]{grid-template-columns:repeat(2,minmax(0,1fr))}.conversation-launcher-template[data-v-63730e70]{grid-column:1/-1}}@media (width<=680px){.settings-card[data-v-63730e70]{padding:20px}.resource-totals[data-v-63730e70],.resource-breakdowns[data-v-63730e70],.port-grid[data-v-63730e70],.conversation-launcher-fields[data-v-63730e70]{grid-template-columns:1fr}.conversation-launcher-template[data-v-63730e70]{grid-column:auto}.select-row[data-v-63730e70]{flex-direction:column;align-items:flex-start;padding:14px 0}.select-row .settings-select[data-v-63730e70]{width:100%}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.writing-taste-view[data-v-c14a3671]{background:#f7f8f6;padding:18px 32px 40px;overflow:auto}.writing-taste-view[data-v-c14a3671]>:not(.vue-dialog){width:min(980px,100%);margin-inline:auto}.writing-taste-back[data-v-c14a3671]{color:#65746b;align-items:center;gap:7px;margin-bottom:14px;font-size:10px;font-weight:700;text-decoration:none;display:inline-flex}.writing-taste-back[data-v-c14a3671]:hover{color:#344b3e}.writing-taste-hero[data-v-c14a3671]{background:#fff;border:1px solid #d7ded9;border-radius:14px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;padding:24px 26px;display:grid;box-shadow:0 12px 32px #2d3d340f}.writing-taste-hero.status-preview_ready[data-v-c14a3671],.writing-taste-hero.status-active[data-v-c14a3671]{border-color:#c9d8ce}.writing-taste-hero__copy[data-v-c14a3671]{gap:7px;display:grid}.writing-taste-status[data-v-c14a3671]{color:#5c7064;background:#e9eeea;border-radius:999px;justify-self:start;align-items:center;gap:6px;padding:3px 8px;font-size:9px;font-weight:800;display:inline-flex}.writing-taste-status i[data-v-c14a3671]{background:#668572;border-radius:50%;width:5px;height:5px}.writing-taste-hero h2[data-v-c14a3671],.writing-taste-hero p[data-v-c14a3671]{margin:0}.writing-taste-hero h2[data-v-c14a3671]{color:#2d3e35;letter-spacing:-.015em;font-size:22px}.writing-taste-hero p[data-v-c14a3671]{color:#6e7972;max-width:680px;font-size:11px;line-height:1.65}.writing-taste-hero__score[data-v-c14a3671]{color:#809087;border-left:1px solid #e0e5e1;grid-template-columns:auto 1fr;align-items:baseline;min-width:104px;padding:14px 16px;display:grid}.writing-taste-hero__score strong[data-v-c14a3671]{color:#3d5b4b;font-size:28px}.writing-taste-hero__score span[data-v-c14a3671]{font-size:12px}.writing-taste-hero__score small[data-v-c14a3671]{grid-column:1/-1;font-size:9px}.writing-taste-readiness[data-v-c14a3671]{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.writing-taste-readiness article[data-v-c14a3671]{color:#89918c;background:#fbfcfb;border:1px solid #e0e4e1;border-radius:9px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;min-width:0;padding:10px;display:grid}.writing-taste-readiness article.met[data-v-c14a3671]{color:#577364;background:#f6f9f7;border-color:#d3ddd7}.writing-taste-readiness article>span[data-v-c14a3671]{background:#ecefed;border-radius:50%;place-items:center;width:18px;height:18px;font-size:10px;font-weight:800;display:grid}.writing-taste-readiness article.met>span[data-v-c14a3671]{color:#fff;background:#6f8c7b}.writing-taste-readiness article div[data-v-c14a3671]{gap:2px;min-width:0;display:grid}.writing-taste-readiness strong[data-v-c14a3671],.writing-taste-readiness small[data-v-c14a3671]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.writing-taste-readiness strong[data-v-c14a3671]{color:#526159;font-size:9px}.writing-taste-readiness small[data-v-c14a3671]{font-size:9px}.writing-taste-rules[data-v-c14a3671]{margin-top:24px}.writing-taste-rules>header[data-v-c14a3671]{align-items:center;gap:8px;padding:0 2px 10px;display:flex}.writing-taste-rules>header h2[data-v-c14a3671]{color:#34433b;margin:0;font-size:15px}.writing-taste-rules>header span[data-v-c14a3671]{color:#6c786f;text-align:center;background:#e5e9e6;border-radius:999px;min-width:20px;padding:2px 6px;font-size:9px;font-weight:800}.writing-taste-rule-list[data-v-c14a3671]{gap:9px;display:grid}.writing-taste-rule[data-v-c14a3671]{background:#fff;border:1px solid #dce2de;border-radius:11px;gap:10px;padding:15px 17px;display:grid}.writing-taste-rule.is-hypothesis[data-v-c14a3671]{background:#fbfbfa}.writing-taste-rule.has-conflict[data-v-c14a3671]{border-color:#d8b9b5}.writing-taste-rule__status[data-v-c14a3671]{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.writing-taste-rule__status span[data-v-c14a3671]{color:#68756d;background:#edf0ee;border-radius:999px;padding:2px 7px;font-size:8px;font-weight:800}.writing-taste-rule__status .confirmed[data-v-c14a3671],.writing-taste-rule__status .observed[data-v-c14a3671]{color:#466352;background:#e2ebe5}.writing-taste-rule__status .conflict[data-v-c14a3671]{color:#874a45;background:#f3e3e1}.writing-taste-rule__body[data-v-c14a3671]{gap:5px;display:grid}.writing-taste-rule h3[data-v-c14a3671],.writing-taste-rule p[data-v-c14a3671]{margin:0}.writing-taste-rule h3[data-v-c14a3671]{color:#33443b;font-size:13px}.writing-taste-rule p[data-v-c14a3671]{color:#49574f;font-size:11px;line-height:1.65}.writing-taste-rule__body small[data-v-c14a3671]{color:#818a84;font-size:9px;line-height:1.5}.writing-taste-rule footer[data-v-c14a3671]{border-top:1px solid #edf0ee;justify-content:space-between;align-items:center;gap:14px;padding-top:9px;display:flex}.writing-taste-rule footer>div[data-v-c14a3671]:first-child{color:#89918c;flex-wrap:wrap;gap:10px;font-size:8px;display:flex}.writing-taste-rule__actions[data-v-c14a3671]{gap:7px;display:flex}.writing-taste-rule__actions button[data-v-c14a3671],.writing-taste-agent-preview button[data-v-c14a3671]{padding:6px 10px;font-size:9px}.writing-taste-empty[data-v-c14a3671],.writing-taste-unavailable[data-v-c14a3671]{color:#7d8780;border:1px dashed #d8ded9;border-radius:11px;place-items:center;min-height:180px;font-size:11px;display:grid}.writing-taste-agent-preview[data-v-c14a3671]{background:#f2f5f3;border:1px solid #d8dfda;border-radius:11px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;margin-top:22px;padding:16px 18px;display:grid}.writing-taste-agent-preview h2[data-v-c14a3671],.writing-taste-agent-preview p[data-v-c14a3671]{margin:0}.writing-taste-agent-preview h2[data-v-c14a3671]{color:#3c4d44;font-size:13px}.writing-taste-agent-preview p[data-v-c14a3671]{color:#758078;margin-top:4px;font-size:9px;line-height:1.5}.writing-taste-agent-preview pre[data-v-c14a3671]{color:#dce7df;white-space:pre-wrap;overflow-wrap:anywhere;background:#26372e;border-radius:8px;grid-column:1/-1;max-height:360px;margin:0;padding:14px;font:10px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}@media (width<=980px){.writing-taste-readiness[data-v-c14a3671]{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=680px){.writing-taste-view[data-v-c14a3671]{padding-inline:18px}.writing-taste-hero[data-v-c14a3671]{grid-template-columns:1fr}.writing-taste-hero__score[data-v-c14a3671]{border-top:1px solid #e0e5e1;border-left:0}.writing-taste-readiness[data-v-c14a3671]{grid-template-columns:repeat(2,minmax(0,1fr))}.writing-taste-rule footer[data-v-c14a3671],.writing-taste-agent-preview[data-v-c14a3671]{flex-direction:column;grid-template-columns:1fr;align-items:start}.writing-taste-agent-preview pre[data-v-c14a3671]{grid-column:1}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as e,F as t,N as n,T as r,V as i,Z as a,_ as o,a as s,at as c,b as l,h as u,nt as d,rt as f,v as p,w as m,x as h,y as g,z as _}from"./i18n-DQH9D35M.js";import{r as v,t as ee}from"./console-B7dWYAoU.js";import{t as y}from"./vue-router-F7MnkVlW.js";import{t as b}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{a as x,i as S,n as te,t as ne}from"./KnowledgeEditDialog-DADXj_BT.js";import{u as re,x as ie}from"./model-zL97NJ-U.js";var ae={class:`view writing-taste-view`},oe={key:1,class:`writing-taste-unavailable`},C={class:`writing-taste-hero__copy`},w={class:`writing-taste-status`},T={class:`writing-taste-hero__score`,"aria-hidden":`true`},E=[`aria-label`],D={"aria-hidden":`true`},O={class:`writing-taste-rules`},k={key:0,class:`writing-taste-rule-list`},A={class:`writing-taste-rule__status`},j={key:0,class:`conflict`},M={class:`writing-taste-rule__body`},N={key:0},P={key:1},F={key:0},I={key:0,class:`writing-taste-rule__actions`},L=[`onClick`],R=[`onClick`],z={key:1,class:`writing-taste-empty`},B={key:0,class:`writing-taste-agent-preview`},V={key:0},H=b(r({__name:`WritingTastePage`,setup(r){let b=ee(),H=a(null),U=a(null),W=a(!1),G=a(null),K=a(null),q=a(!1),J=0,se=S(o(()=>W.value&&!H.value)),Y=o(()=>ie(U.value)),X=o(()=>new Map(Y.value.map(e=>[`${e.itemKind}:${e.id}`,e]))),ce=o(()=>H.value?.status===`active`?s(`writingTaste.page.activeTitle`):H.value?.status===`preview_ready`?s(`writingTaste.page.previewTitle`):s(`writingTaste.page.collectingTitle`)),Z=o(()=>H.value?.status===`active`?s(`writingTaste.page.activeCopy`):H.value?.status===`preview_ready`?s(`writingTaste.page.previewCopy`):s(`writingTaste.page.collectingCopy`));_(()=>b.activePersonalSpace?.id,e=>{e&&Q(e)},{immediate:!0});async function Q(e=b.activePersonalSpace?.id){if(!e)return;let t=++J;W.value=!0;try{let n=new URLSearchParams({personalSpaceId:e,limit:`500`}),r=new URLSearchParams({spaceId:e,limit:`500`}),[i,a]=await Promise.all([v(`/api/writing-taste-profile?${n}`),v(`/api/graph?${r}`)]);if(t!==J)return;H.value=me(i)?i:null,U.value=he(a)?a:null,pe()}catch(e){if(t!==J)return;H.value=null,U.value=null,b.reportError(e)}finally{t===J&&(W.value=!1)}}function $(e){return X.value.get(`${e.item_kind}:${e.item_id}`)??null}function le(e){G.value=$(e)}function ue(e){K.value=$(e)}function de(e){if(e.preference_scope!==`project`||!e.preference_project_id)return s(`writingTaste.page.globalScope`);let t=b.state?.personalProjects?.find(({project_id:t})=>t===e.preference_project_id);return s(`writingTaste.page.projectScope`,{project:t?.profile.name??e.preference_project_id})}function fe(e){return e.key===`conflicts`?s(`writingTaste.criteria.conflictsProgress`,{current:e.current}):s(`writingTaste.criteria.progress`,{current:e.current,target:e.target})}function pe(){G.value&&=X.value.get(`${G.value.itemKind}:${G.value.id}`)??null,K.value&&=X.value.get(`${K.value.itemKind}:${K.value.id}`)??null}function me(e){if(!e||typeof e!=`object`)return!1;let t=e;return[`collecting`,`preview_ready`,`active`].includes(t.status??``)&&!!t.readiness&&Array.isArray(t.rules)}function he(e){if(!e||typeof e!=`object`)return!1;let t=e;return Array.isArray(t.nodes)&&Array.isArray(t.edges)}return(r,a)=>(n(),h(`section`,ae,[m(d(y),{class:`writing-taste-back`,to:`/preferences`},{default:i(()=>[a[5]||=p(`span`,{"aria-hidden":`true`},`←`,-1),e(` `+c(d(s)(`writingTaste.page.back`)),1)]),_:1}),d(se)?(n(),g(x,{key:0,label:d(s)(`writingTaste.page.loading`)},null,8,[`label`])):H.value?(n(),h(u,{key:2},[p(`header`,{class:f([`writing-taste-hero`,`status-${H.value.status}`])},[p(`div`,C,[p(`span`,w,[a[6]||=p(`i`,{"aria-hidden":`true`},null,-1),e(` `+c(d(s)(`writingTaste.status.${H.value.status}`)),1)]),p(`h2`,null,c(ce.value),1),p(`p`,null,c(Z.value),1)]),p(`div`,T,[p(`strong`,null,c(H.value.readiness.rule_count),1),p(`span`,null,`/ `+c(H.value.readiness.thresholds.rule_count),1),p(`small`,null,c(d(s)(`writingTaste.criteria.rules`)),1)])],2),p(`section`,{class:`writing-taste-readiness`,"aria-label":d(s)(`writingTaste.page.readinessAria`)},[(n(!0),h(u,null,t(H.value.readiness.criteria,e=>(n(),h(`article`,{key:e.key,class:f({met:e.met})},[p(`span`,D,c(e.met?`✓`:`·`),1),p(`div`,null,[p(`strong`,null,c(d(s)(`writingTaste.criteria.${e.key}`)),1),p(`small`,null,c(fe(e)),1)])],2))),128))],8,E),p(`section`,O,[p(`header`,null,[p(`h2`,null,c(d(s)(`writingTaste.page.rulesTitle`)),1),p(`span`,null,c(H.value.rules.length),1)]),H.value.rules.length?(n(),h(`div`,k,[(n(!0),h(u,null,t(H.value.rules,e=>(n(),h(`article`,{key:`${e.item_kind}:${e.item_id}`,class:f([`writing-taste-rule`,{"has-conflict":e.has_conflict,"is-hypothesis":e.evidence_status===`Working hypothesis`}])},[p(`div`,A,[p(`span`,{class:f(e.evidence_status.replaceAll(` `,`-`).toLowerCase())},c(d(s)(`writingTaste.evidenceStatus.${e.evidence_status}`)),3),p(`span`,null,c(de(e)),1),e.has_conflict?(n(),h(`span`,j,c(d(s)(`writingTaste.page.conflict`)),1)):l(``,!0)]),p(`div`,M,[p(`h3`,null,c(e.title),1),p(`p`,null,c(e.instruction),1),e.reason?(n(),h(`small`,N,c(e.reason),1)):l(``,!0),e.contexts.length?(n(),h(`small`,P,c(d(s)(`writingTaste.page.contexts`,{contexts:e.contexts.join(`、`)})),1)):l(``,!0)]),p(`footer`,null,[p(`div`,null,[p(`span`,null,c(d(s)(`writingTaste.page.evidence`,{evidence:e.evidence_count})),1),p(`span`,null,c(d(s)(`writingTaste.page.sessions`,{sessions:e.session_count})),1),e.updated_at?(n(),h(`span`,F,c(d(s)(`writingTaste.page.updated`,{time:d(re)(e.updated_at)})),1)):l(``,!0)]),$(e)?(n(),h(`div`,I,[p(`button`,{class:`secondary-action`,type:`button`,onClick:t=>ue(e)},c(d(s)(`writingTaste.page.edit`)),9,L),e.evidence_status===`Confirmed`?l(``,!0):(n(),h(`button`,{key:0,class:`primary-action`,type:`button`,onClick:t=>le(e)},c(d(s)(`writingTaste.page.confirm`)),9,R))])):l(``,!0)])],2))),128))])):(n(),h(`div`,z,c(d(s)(`writingTaste.page.rulesEmpty`)),1))]),H.value.ready&&H.value.agent_markdown?(n(),h(`section`,B,[p(`div`,null,[p(`h2`,null,c(d(s)(`writingTaste.page.agentPreviewTitle`)),1),p(`p`,null,c(d(s)(`writingTaste.page.agentPreviewCopy`)),1)]),p(`button`,{class:`secondary-action`,type:`button`,onClick:a[0]||=e=>q.value=!q.value},c(q.value?d(s)(`writingTaste.page.hideAgentPreview`):d(s)(`writingTaste.page.showAgentPreview`)),1),q.value?(n(),h(`pre`,V,c(H.value.agent_markdown),1)):l(``,!0)])):l(``,!0)],64)):(n(),h(`div`,oe,c(d(s)(`writingTaste.page.profileUnavailable`)),1)),m(ne,{item:K.value,"personal-space-id":d(b).activePersonalSpace?.id??``,"personal-project-id":null,projects:d(b).state?.personalProjects??[],"replacement-items":Y.value,onClose:a[1]||=e=>K.value=null,onSaved:a[2]||=e=>Q()},null,8,[`item`,`personal-space-id`,`projects`,`replacement-items`]),m(te,{item:G.value,"personal-space-id":d(b).activePersonalSpace?.id??``,"personal-project-id":null,onClose:a[3]||=e=>G.value=null,onSaved:a[4]||=e=>Q()},null,8,[`item`,`personal-space-id`])]))}}),[[`__scopeId`,`data-v-c14a3671`]]);export{H as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Z as e,a as t}from"./i18n-DQH9D35M.js";import{r as n}from"./console-B7dWYAoU.js";function r(e){let t=/^employee\.([a-z][a-z0-9-]{0,63})$/.exec(e.agentId)?.[1];return t&&e.profile.capabilities.includes(`fuli.employee:${t}`)?t:null}var i=e([]),a=e(!1),o=e(``),s=``,c=null,l=0;function u(e){if(e===s&&c)return c;let t=++l;return e!==s&&(i.value=[]),s=e,o.value=``,e?(a.value=!0,c=n(`/api/employee-templates?${new URLSearchParams({personalSpaceId:e})}`).then(e=>{t===l&&(i.value=Array.isArray(e.templates)?e.templates:[])}).catch(e=>{t===l&&(i.value=[],o.value=d(e))}).finally(()=>{t===l&&(a.value=!1,c=null)}),c):(i.value=[],a.value=!1,Promise.resolve())}function d(e){let n=e instanceof Error?e.message:``;try{let e=JSON.parse(n);return e.code&&[`runtime_unavailable`,`assignment_required`,`project_not_found`,`identity_conflict`,`reactivation_required`,`assignment_scope_conflict`,`assignment_update_incomplete`].includes(e.code)?t(`employees.errors.${e.code}`):e.error||t(`employees.loadError`)}catch{return n||t(`employees.loadError`)}}var f={jefa:`/assets/jefa-avatar-Dew42td5.webp`};function p(e){return f[e]}export{r as a,d as i,o as n,i as o,a as r,u as s,p as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{$ as e,A as t,D as n,G as r,J as i,K as a,O as o,U as s,W as c,Y as l,Z as u,_ as d,a as f,et as p,q as m,tt as h,z as g}from"./i18n-DQH9D35M.js";var _=typeof window<`u`,v,y=e=>v=e,b=Symbol();function x(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var S=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:typeof globalThis==`object`?globalThis:{HTMLElement:null};function C(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function w(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){k(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function T(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function E(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,view:window,detail:0,screenX:80,screenY:20,clientX:80,clientY:20,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null});e.dispatchEvent(t)}}var D=typeof navigator==`object`?navigator:{userAgent:``},O=/Macintosh/.test(D.userAgent)&&/AppleWebKit/.test(D.userAgent)&&!/Safari/.test(D.userAgent),k=_?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!O?A:`msSaveOrOpenBlob`in D?j:M:()=>{};function A(e,t=`download`,n){let r=document.createElement(`a`);r.download=t,r.rel=`noopener`,typeof e==`string`?(r.href=e,r.origin===location.origin?E(r):T(r.href)?w(e,t,n):(r.target=`_blank`,E(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){E(r)},0))}function j(e,t=`download`,n){if(typeof e==`string`)if(T(e))w(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){E(t)})}else navigator.msSaveOrOpenBlob(C(e,n),t)}function M(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return w(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(S.HTMLElement))||`safari`in S,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||O)&&typeof FileReader<`u`){let t=new FileReader;t.onloadend=function(){let e=t.result;if(typeof e!=`string`)throw r=null,Error(`Wrong reader.result type`);e=o?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),r?r.location.href=e:location.assign(e),r=null},t.readAsDataURL(e)}else{let t=URL.createObjectURL(e);r?r.location.assign(t):location.href=t,r=null,setTimeout(function(){URL.revokeObjectURL(t)},4e4)}}var{assign:ee}=Object;function N(){let e=s(!0),t=e.run(()=>u({})),n=[],r=[],i=m({install(e){y(i),i._a=e,e.provide(b,i),e.config.globalProperties.$pinia=i,r.forEach(e=>n.push(e)),r=[]},use(e){return this._a?n.push(e):r.push(e),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return i}var P=()=>{};function F(e,t,n,r=P){e.add(t);let a=()=>{e.delete(t)&&r()};return!n&&c()&&i(a),a}function I(e,...t){e.forEach(e=>{e(...t)})}var L=e=>e(),R=Symbol(),z=Symbol();function B(e,t){e instanceof Map&&t instanceof Map?t.forEach((t,n)=>e.set(n,t)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(let n in t){if(!Object.hasOwn(t,n))continue;let i=t[n],o=e[n];x(o)&&x(i)&&Object.hasOwn(e,n)&&!a(i)&&!r(i)?e[n]=B(o,i):e[n]=i}return e}var V=Symbol();function H(e){return!e||typeof e!=`object`||!Object.hasOwn(e,V)}var{assign:U}=Object;function W(e){return!!(a(e)&&e.effect)}function G(e,t,n,r){let{state:i,actions:a,getters:o}=t,s=n.state.value[e],c;function l(){return s||(n.state.value[e]=i?i():{}),U(h(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=m(d(()=>{y(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return c=K(e,l,t,n,r,!0),c}function K(e,n,i={},o,c,u){let d,f=U({actions:{}},i),m={deep:!0},h,_,v=new Set,b=new Set,x=o.state.value[e];!u&&!x&&(o.state.value[e]={});let S;function C(n){let r;h=_=!1,typeof n==`function`?(n(o.state.value[e]),r={type:`patch function`,storeId:e,events:void 0}):(B(o.state.value[e],n),r={type:`patch object`,payload:n,storeId:e,events:void 0});let i=S=Symbol();t().then(()=>{S===i&&(h=!0)}),_=!0,I(v,r,o.state.value[e])}let w=u?function(){let{state:e}=i,t=e?e():{};this.$patch(e=>{U(e,t)})}:P;function T(){d.stop(),v.clear(),b.clear(),o._s.delete(e)}let E=(t,n=``)=>{if(R in t)return t[z]=n,t;let r=function(){y(o);let n=Array.from(arguments),i=new Set,a=new Set;function s(e){i.add(e)}function c(e){a.add(e)}I(b,{args:n,name:r[z],store:D,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:D,n)}catch(e){throw I(a,e),e}return l instanceof Promise?l.then(e=>(I(i,e),e)).catch(e=>(I(a,e),Promise.reject(e))):(I(i,l),l)};return r[R]=!0,r[z]=n,r},D=l({_p:o,$id:e,$onAction:F.bind(null,b),$patch:C,$reset:w,$subscribe(t,n={}){if(v.has(t))return P;let r=F(v,t,n.detached,()=>i()),i=d.run(()=>g(()=>o.state.value[e],r=>{(n.flush===`sync`?_:h)&&t({storeId:e,type:`direct`,events:void 0},r)},U({},m,n)));return r},$dispose:T});o._s.set(e,D);let O=(o._a&&o._a.runWithContext||L)(()=>o._e.run(()=>(d=s()).run(()=>n({action:E}))));for(let t in O){let n=O[t];a(n)&&!W(n)||r(n)?u||(x&&H(n)&&(a(n)?n.value=x[t]:B(n,x[t])),o.state.value[e][t]=n):typeof n==`function`&&(O[t]=E(n,t),f.actions[t]=n)}return U(D,O),U(p(D),O),Object.defineProperty(D,"$state",{get:()=>o.state.value[e],set:e=>{C(t=>{U(t,e)})}}),o._p.forEach(e=>{let t=d.run(()=>e({store:D,app:o._a,pinia:o,options:f}));U(D,t)}),x&&u&&i.hydrate&&i.hydrate(D.$state,x),h=!0,_=!0,D}function q(e,t,r){let i,a=typeof t==`function`;i=a?r:t;function s(r,s){let c=n();return r||=c?o(b,null):null,r&&y(r),r=v,r._s.has(e)||(a?K(e,t,i,r):G(e,i,r)),r._s.get(e)}return s.$id=e,s}var J=class extends Error{status;constructor(e,t){super(e),this.name=`ApiError`,this.status=t}};async function Y(e,t){let n=await fetch(e,t);if(!n.ok)throw new J((await n.text()).trim()||f(`common.errors.requestFailed`,{status:n.status}),n.status);return n.json()}function X(e,t){return Y(e,t)}function Z(e,t){return Y(e,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}function Q(e,t){return Y(e,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}function $(e,t){return Y(e,{method:`PATCH`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}function te(e){return Y(e,{method:`DELETE`})}var ne=q(`console`,()=>{let t=e(null),n=u(`idle`),r=u(null),i=d(()=>{let e=t.value;return e?e.personalSpaces.find(({id:t})=>t===e.activePersonalSpaceId)??e.personalSpaces[0]??null:null}),a=d(()=>t.value?.mode===`connected`?`ready`:t.value?.mode===`degraded`?`error`:`disconnected`);async function o(){n.value=`loading`;try{t.value=await X(`/api/state`),n.value=`ready`}catch(e){n.value=`error`,m(e)}}async function s(e){try{let n=await $(`/api/capture-policy`,{enabled:e});t.value&&={...t.value,capturePolicy:n},p(f(e?`console.captureNotices.enabled`:`console.captureNotices.disabled`))}catch(e){m(e)}}async function c(e){try{let n=await $(`/api/agent-access-policy`,{enabled:e});t.value&&={...t.value,agentAccessPolicy:n},p(f(e?`console.agentAccess.enabledNotice`:`console.agentAccess.disabledNotice`))}catch(e){m(e)}}function l(e){return t.value?.capabilities?.[e]===!0}function p(e){r.value={message:e,tone:`success`}}function m(e){r.value={message:e instanceof Error?e.message:f(`common.errors.operationFailed`),tone:`error`}}function h(){r.value=null}return{state:t,runtimeStatus:n,feedback:r,activePersonalSpace:i,publicRuntimeStatus:a,refresh:o,updateCapturePolicy:s,updateAgentAccessPolicy:c,hasCapability:l,notify:p,reportError:m,clearFeedback:h}});export{Z as a,$ as i,te as n,Q as o,X as r,N as s,ne as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{$ as e,X as t,a as n}from"./i18n-DQH9D35M.js";import{r}from"./console-B7dWYAoU.js";var i=[`codex`,`claude`,`claude_code`,`cursor`,`gemini_cli`,`kiro`,`other`],a={codex:`Codex`,claude:`Claude`,claude_code:`Claude Code`,cursor:`Cursor`,gemini_cli:`Gemini CLI`,kiro:`Kiro`,other:`Other Agent`},o=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,s=/^[^\u0000-\u001f\u007f]{1,512}$/,c=new Set([`about`,`blob`,`data`,`file`,`javascript`]),l={codex:{enabled:!0,idFormat:`uuid`,appName:`Codex`,urlTemplate:`codex://threads/{id}`},claude:{enabled:!1,idFormat:`any`,appName:`Claude`,urlTemplate:``},claude_code:{enabled:!1,idFormat:`any`,appName:`Claude Code`,urlTemplate:``},cursor:{enabled:!1,idFormat:`any`,appName:`Cursor`,urlTemplate:``},gemini_cli:{enabled:!1,idFormat:`any`,appName:`Gemini CLI`,urlTemplate:``},kiro:{enabled:!1,idFormat:`any`,appName:`Kiro`,urlTemplate:``},other:{enabled:!1,idFormat:`any`,appName:`Other Agent`,urlTemplate:``}};function u(e={}){let t=e.source_application?.trim().toLocaleLowerCase().replaceAll(`-`,`_`).replaceAll(` `,`_`);if(t&&a[t])return t;let n=`${e.source_kind??``} ${e.source_description??``}`.toLocaleLowerCase();return n.includes(`claude`)?`claude_code`:n.includes(`cursor`)?`cursor`:n.includes(`gemini`)?`gemini_cli`:n.includes(`kiro`)?`kiro`:n.includes(`codex`)?`codex`:`other`}function d(e){let t=u(e);return t===`other`?n(`knowledge.domain.actors.otherAgent`):a[t]}function f(e){return a[e]}function p(e={},t=l){if(m(e,t)!==`available`)return null;let n=t[u(e)],r=e.session_id.trim();return n.urlTemplate.replace(`{id}`,encodeURIComponent(r))}function m(e={},t=l){let n=t[u(e)];return n?.enabled?_(e.session_id?.trim()??``,n.idFormat)?v(n.urlTemplate)?`available`:`invalid_template`:`invalid_id`:`disabled`}function h(e={},t=l){let n=t[u(e)];return n?.enabled&&n.appName.trim()?n.appName.trim():null}async function g(e={},t=globalThis.navigator?.clipboard){return!e.session_id||!t?.writeText?!1:(await t.writeText(e.session_id),!0)}function _(e,t){return s.test(e)?t===`any`||o.test(e):!1}function v(e){if(e.split(`{id}`).length!==2||/\s/.test(e))return!1;let t=/^([a-z][a-z0-9+.-]*):/i.exec(e)?.[1]?.toLocaleLowerCase();return!!t&&!c.has(t)}var y=e(w(l)),b=null;function x(){return C(),t(y)}function S(e){y.value=w(e)}function C({force:e=!1}={}){return!e&&b||(b=r(`/api/system/settings`).then(e=>{S(e.configured.conversationLaunchers)}).catch(()=>void 0)),b}function w(e){return Object.fromEntries(i.map(t=>[t,{...l[t],...e?.[t]??{}}]))}export{d as a,p as c,g as i,x as n,f as o,i as r,h as s,S as t};
|