fuli-context 0.8.2 → 0.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +11 -7
  2. package/README.zh-CN.md +8 -7
  3. package/dist/web/assets/{AboutPage-fBq5VFoQ.js → AboutPage-HLhChD_Q.js} +1 -1
  4. package/dist/web/assets/{AgentHand-CMZk5GjY.js → AgentHand-BaLSbn08.js} +1 -1
  5. package/dist/web/assets/{AgentName-DRZHAIB2.js → AgentName-0PIU7MOX.js} +1 -1
  6. package/dist/web/assets/{AgentProfilePage-BPQEfMhB.js → AgentProfilePage-9cSsZHnk.js} +1 -1
  7. package/dist/web/assets/{AgentsDirectoryPage-CKZfrcuD.js → AgentsDirectoryPage-7G02Xm6C.js} +1 -1
  8. package/dist/web/assets/{ConnectionsPage-COb56qnk.js → ConnectionsPage-D0wPYbwd.js} +1 -1
  9. package/dist/web/assets/{EmployeeRecruitDialog-BLTpjCcK.js → EmployeeRecruitDialog-BrPH3e50.js} +1 -1
  10. package/dist/web/assets/{EmployeeWorkbenchPage-HUd-gne2.js → EmployeeWorkbenchPage-u-jw38PW.js} +1 -1
  11. package/dist/web/assets/{GrowthLoading-Bu_kH-I8.js → GrowthLoading-DFOy-mEl.js} +1 -1
  12. package/dist/web/assets/{KnowledgeEditDialog-BTwXXRCD.js → KnowledgeEditDialog-DBsjlkDr.js} +1 -1
  13. package/dist/web/assets/{KnowledgeInspector-Ct5hl2--.js → KnowledgeInspector-C79hbuOo.js} +1 -1
  14. package/dist/web/assets/{KnowledgeOrganizerPage-DMC8Hh43.js → KnowledgeOrganizerPage-Cz1BnAtz.js} +1 -1
  15. package/dist/web/assets/KnowledgePage-JyfFFUrg.js +1 -0
  16. package/dist/web/assets/{KnowledgeWorkspace-DmHIc0jb.js → KnowledgeWorkspace-B2vj12QG.js} +1 -1
  17. package/dist/web/assets/{NotFoundPage-C0yOR9T9.js → NotFoundPage-D340EQJP.js} +1 -1
  18. package/dist/web/assets/{OverviewPage-BreX_kb4.js → OverviewPage-BKiYudrC.js} +1 -1
  19. package/dist/web/assets/{PersonalProfilePage-CX1a6_E3.js → PersonalProfilePage-BIGTcem2.js} +1 -1
  20. package/dist/web/assets/PersonalProjectsPage-CzjDCIi0.js +1 -0
  21. package/dist/web/assets/{ProjectAgentsPage-CA04h1Uf.js → ProjectAgentsPage-C5F2WgwJ.js} +4 -4
  22. package/dist/web/assets/ProjectAgentsPage-C89ZEDgi.css +1 -0
  23. package/dist/web/assets/{ProjectScopePicker-DVHfXX1f.js → ProjectScopePicker-8hrgvmg-.js} +1 -1
  24. package/dist/web/assets/{PublicProjectsPage-CtctKml1.js → PublicProjectsPage-b5zx0dFS.js} +1 -1
  25. package/dist/web/assets/{ReviewPage-DUqaK-do.js → ReviewPage-BLdWYDmj.js} +1 -1
  26. package/dist/web/assets/{SearchableSelect-BZtyYmZN.js → SearchableSelect-vaoSDq1g.js} +1 -1
  27. package/dist/web/assets/{SettingsPage-CB4ymLr8.js → SettingsPage-Dxjrkq1g.js} +1 -1
  28. package/dist/web/assets/{SharedJefaReportPage-CbFtrDCY.js → SharedJefaReportPage-YG2xwQQy.js} +1 -1
  29. package/dist/web/assets/{WritingTastePage-B7lSzs2z.js → WritingTastePage-CPPduPb1.js} +1 -1
  30. package/dist/web/assets/{agent-profile.css_vue_type_style_index_0_src_true_lang-C22UdfU0.js → agent-profile.css_vue_type_style_index_0_src_true_lang-LTJ1ptv9.js} +1 -1
  31. package/dist/web/assets/{catalog-DU4Kfd-N.js → catalog-B9tlJAp9.js} +1 -1
  32. package/dist/web/assets/{client-CEHkJJ-5.js → client-InXscj8J.js} +1 -1
  33. package/dist/web/assets/{console--CZxc3PW.js → console-hUns2aD-.js} +1 -1
  34. package/dist/web/assets/{conversation-launcher-settings-Co1RlTFH.js → conversation-launcher-settings-DEtJ6pZg.js} +1 -1
  35. package/dist/web/assets/{i18n-BtOOoyJd.js → i18n-75woNt31.js} +2 -2
  36. package/dist/web/assets/{identity-CsowvtIm.js → identity-Wt2Xio_B.js} +1 -1
  37. package/dist/web/assets/index-pleRuLpw.js +2 -0
  38. package/dist/web/assets/{model-CGpllrds.js → model-C1GwBvd9.js} +1 -1
  39. package/dist/web/assets/{personal-profile-graph-BNTG4PSY.js → personal-profile-graph-BdV_3I1u.js} +1 -1
  40. package/dist/web/assets/{shared-report-BFUJqqQe.js → shared-report-tRQV1iJl.js} +1 -1
  41. package/dist/web/assets/{useApi-CROJJdhE-raNlHRDl.js → useApi-CROJJdhE-QfNm4ADP.js} +1 -1
  42. package/dist/web/assets/{useModalDialog-CroGk2Cs.js → useModalDialog-BopF-KHN.js} +1 -1
  43. package/dist/web/assets/{vue-router-JFYBLXB1.js → vue-router-COCNAJJn.js} +1 -1
  44. package/dist/web/index.html +10 -10
  45. package/docs/agent-conversations-and-collaboration.md +18 -1
  46. package/graph-provider/fuli_graph/store_project_agent_context.py +18 -1
  47. package/graph-provider/fuli_graph/store_project_agent_task_staffing.py +86 -11
  48. package/graph-provider/pyproject.toml +1 -1
  49. package/npm-shrinkwrap.json +2 -2
  50. package/package.json +2 -2
  51. package/skills/operating-fuli/SKILL.md +8 -0
  52. package/src/agents/identity-receipt.js +29 -0
  53. package/src/conversations/task-context-view.js +3 -1
  54. package/src/employees/service.js +9 -2
  55. package/src/employees/task-entry.js +5 -1
  56. package/src/graphiti/agent-conversations.js +15 -1
  57. package/src/graphiti/federated-application.js +6 -40
  58. package/src/graphiti/project-agent-mention.js +35 -0
  59. package/src/graphiti/project-agent-task-entry.js +22 -3
  60. package/src/graphiti/project-agent-workflows.js +3 -1
  61. package/src/graphiti/task-entry-preferences.js +50 -0
  62. package/dist/web/assets/KnowledgePage-uXW1Eovz.js +0 -1
  63. package/dist/web/assets/PersonalProjectsPage-Br1S8ETM.js +0 -1
  64. package/dist/web/assets/ProjectAgentsPage-CZWWV4Kw.css +0 -1
  65. package/dist/web/assets/index-7X3LGByg.js +0 -2
@@ -0,0 +1 @@
1
+ .project-agent-assignment-dialog[data-v-ee37776b]{background:0 0;border:0;border-radius:12px;width:min(620px,100vw - 32px);max-height:calc(100vh - 32px);padding:0}.project-agent-assignment-dialog-shell[data-v-ee37776b]{background:#fbfcfb;border:1px solid #d5dcd7;border-radius:12px;flex-direction:column;max-height:calc(100vh - 32px);display:flex;overflow:hidden;box-shadow:0 18px 48px #212d262e}.project-agent-assignment-dialog-header[data-v-ee37776b],.project-agent-assignment-dialog-actions[data-v-ee37776b]{justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;display:flex}.project-agent-assignment-dialog-header[data-v-ee37776b]{border-bottom:1px solid #e1e6e2}.project-agent-assignment-dialog-header h3[data-v-ee37776b]{color:#283a31;font-size:16px}.project-agent-assignment-dialog-fields[data-v-ee37776b]{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;min-height:0;padding:18px;display:grid;overflow:auto}.project-agent-assignment-dialog-fields label[data-v-ee37776b]{color:#626d66;gap:6px;font-size:11px;font-weight:650;display:grid}.project-agent-assignment-dialog-fields input[data-v-ee37776b],.project-agent-assignment-dialog-fields textarea[data-v-ee37776b]{color:#28342d;background:#fff;border:1px solid #ccd5ce;border-radius:8px;width:100%;padding:8px 9px;font-size:12px;line-height:1.5}.project-agent-assignment-dialog-fields textarea[data-v-ee37776b]{resize:vertical}.project-agent-assignment-dialog-fields input[data-v-ee37776b]:focus-visible,.project-agent-assignment-dialog-fields textarea[data-v-ee37776b]:focus-visible{outline-offset:1px;outline:2px solid #91a398}.project-agent-assignment-wide-field[data-v-ee37776b]{grid-column:1/-1}.project-agent-assignment-dialog-error[data-v-ee37776b]{color:#8b3f38;margin:0 18px;font-size:11px}.project-agent-assignment-dialog-actions[data-v-ee37776b]{border-top:1px solid #e1e6e2;justify-content:flex-end}.project-agent-primary-action[data-v-ee37776b]{color:#fff;background:#344c3d;border:0;border-radius:8px;padding:8px 13px;font-size:11px;font-weight:700}.project-agent-primary-action[data-v-ee37776b]:focus-visible{outline-offset:2px;outline:2px solid #91a398}@media (width<=620px){.project-agent-assignment-dialog-fields[data-v-ee37776b]{grid-template-columns:1fr}.project-agent-assignment-wide-field[data-v-ee37776b]{grid-column:auto}}.project-agent-dialog[data-v-4d36bcaf]{background:0 0;border:0;border-radius:12px;width:min(760px,100vw - 64px);max-height:calc(100vh - 64px);padding:0;overflow:hidden}.project-agent-dialog-shell[data-v-4d36bcaf]{background:#fbfcfb;border:1px solid #d5dcd7;border-radius:12px;flex-direction:column;min-height:0;max-height:calc(100vh - 64px);display:flex;overflow:hidden;box-shadow:0 18px 48px #212d262e}.project-agent-dialog-header[data-v-4d36bcaf],.project-agent-dialog-actions[data-v-4d36bcaf]{justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;display:flex}.project-agent-dialog-header[data-v-4d36bcaf]{border-bottom:1px solid #e1e6e2}.project-agent-dialog-header h3[data-v-4d36bcaf]{color:#283a31;font-size:17px}.project-agent-dialog-fields[data-v-4d36bcaf]{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-height:0;padding:20px;display:grid;overflow:auto}.project-agent-dialog-fields label[data-v-4d36bcaf]{color:#626d66;align-content:start;gap:6px;min-width:0;font-size:11px;font-weight:650;display:grid}.project-agent-dialog-fields input[data-v-4d36bcaf],.project-agent-dialog-fields select[data-v-4d36bcaf],.project-agent-dialog-fields textarea[data-v-4d36bcaf]{color:#28342d;background:#fff;border:1px solid #ccd5ce;border-radius:8px;width:100%;padding:9px 10px;font-size:12px;line-height:1.5}.project-agent-dialog-fields textarea[data-v-4d36bcaf]{resize:vertical}.project-agent-dialog-fields input[data-v-4d36bcaf]:focus-visible,.project-agent-dialog-fields select[data-v-4d36bcaf]:focus-visible,.project-agent-dialog-fields textarea[data-v-4d36bcaf]:focus-visible{outline-offset:1px;outline:2px solid #91a398}.project-agent-wide-field[data-v-4d36bcaf],.project-agent-id-note[data-v-4d36bcaf]{grid-column:1/-1}.project-agent-dialog-error[data-v-4d36bcaf]{color:#8b3f38;margin:0 20px;font-size:11px}.project-agent-dialog-actions[data-v-4d36bcaf]{border-top:1px solid #e1e6e2;justify-content:flex-end}.project-agent-primary-action[data-v-4d36bcaf]{color:#fff;background:#344c3d;border:0;border-radius:8px;padding:8px 14px;font-size:12px;font-weight:700}.project-agent-primary-action[data-v-4d36bcaf]:hover{background:#2b4234}.project-agent-primary-action[data-v-4d36bcaf]:focus-visible{outline-offset:2px;outline:2px solid #91a398}.project-agent-primary-action[data-v-4d36bcaf]:disabled,.project-agent-dialog-fields[data-v-4d36bcaf] :disabled{cursor:not-allowed;opacity:.6}.project-agent-dialog-check[data-v-4d36bcaf]{align-items:center;gap:7px!important;display:flex!important}.project-agent-dialog-check input[data-v-4d36bcaf]{width:auto!important}.project-agent-dialog-note[data-v-4d36bcaf]{color:#7b857e;font-size:10px;line-height:1.55}.project-team[data-v-077ab7fe]{border-top:1px solid #dfe5e0;grid-column:1/-1;min-width:0;padding-block:12px}.project-team-peers[data-v-077ab7fe]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.project-team-peers[data-v-077ab7fe]>*{color:#31453a;background:#edf3ee;border:1px solid #cad9cd;border-radius:6px;padding:7px 10px;font-size:12px}.project-team-summary[data-v-077ab7fe]{color:#53665a;margin:9px 0;font-size:12px}.project-team-members[data-v-077ab7fe]{gap:9px;margin:10px 0 16px 18px;padding:0;list-style:none;display:grid}.project-team-members button[data-v-077ab7fe]{text-align:start;color:#31453a;background:0 0;border:0;gap:3px;max-width:100%;display:grid}.project-team-members span[data-v-077ab7fe]{color:#596b60;overflow-wrap:anywhere;font-size:12px;line-height:1.5}.project-team summary[data-v-077ab7fe]{cursor:pointer;font-size:12px}.team-lead-field[data-v-077ab7fe]{flex-wrap:wrap;align-items:center;gap:12px;margin-block:14px;display:flex}.team-lead-field select[data-v-077ab7fe]{max-width:100%;padding:7px}.project-team fieldset[data-v-077ab7fe]{border:0;flex-wrap:wrap;gap:12px;margin-bottom:14px;padding:0;display:flex}.project-team fieldset label[data-v-077ab7fe]{align-items:center;gap:5px;font-size:12px;display:flex}.project-team legend[data-v-077ab7fe]{margin-bottom:8px;font-size:12px}.project-agent-automation-policy[data-v-077ab7fe]{border-block:1px solid #dfe5e0;grid-template-columns:minmax(110px,150px) minmax(0,1fr);align-items:center;gap:14px;padding:11px 0;display:grid}.project-agent-automation-policy>header[data-v-077ab7fe]{min-width:0}.project-agent-automation-policy h3[data-v-077ab7fe]{color:#31453a;font-size:12px;line-height:1.35}.project-agent-automation-policy header span[data-v-077ab7fe]{color:#68756d;text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:9px;display:block;overflow:hidden}.project-agent-policy-options[data-v-077ab7fe]{grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;display:grid}.project-agent-policy-options label[data-v-077ab7fe]{cursor:pointer;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;padding:2px 16px;display:grid}.project-agent-policy-options label+label[data-v-077ab7fe]{border-inline-start:1px solid #e2e7e3}.project-agent-policy-options label>span[data-v-077ab7fe]{gap:3px;min-width:0;display:grid}.project-agent-policy-options strong[data-v-077ab7fe]{color:#3d5045;font-size:10px;line-height:1.4}.project-agent-policy-options small[data-v-077ab7fe]{color:#6d7971;overflow-wrap:anywhere;max-width:54ch;font-size:9px;line-height:1.45}.project-agent-policy-options input[data-v-077ab7fe]{appearance:none;cursor:pointer;background:#e8ece9;border:1px solid #aeb8b1;border-radius:999px;width:34px;height:19px;margin:0;transition:background-color .14s ease-out,border-color .14s ease-out;position:relative}.project-agent-policy-options input[data-v-077ab7fe]:after{content:"";background:#fff;border-radius:50%;width:13px;height:13px;transition:transform .14s ease-out;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #24372c38}.project-agent-policy-options input[data-v-077ab7fe]:checked{background:#4d8164;border-color:#3f7658}.project-agent-policy-options input[data-v-077ab7fe]:checked:after{transform:translate(15px)}.project-agent-policy-options input[data-v-077ab7fe]:focus-visible{outline-offset:3px;outline:2px solid #355f49}.project-agent-policy-options input[data-v-077ab7fe]:disabled{cursor:wait;opacity:.62}.project-agent-policy-feedback[data-v-077ab7fe]{grid-column:2;min-height:14px;padding-inline:16px}.project-agent-policy-state[data-v-077ab7fe],.project-agent-policy-feedback p[data-v-077ab7fe]{color:#66736b;font-size:9px;line-height:1.45}.project-agent-policy-feedback p[role=alert][data-v-077ab7fe]{color:#874b43}.project-agent-policy-feedback button[data-v-077ab7fe]{color:#355f49;font:inherit;cursor:pointer;background:0 0;border:0;margin-inline-start:6px;padding:0;font-weight:700}@media (width<=760px){.project-agent-automation-policy[data-v-077ab7fe],.project-agent-policy-options[data-v-077ab7fe]{grid-template-columns:minmax(0,1fr)}.project-agent-policy-options label[data-v-077ab7fe]{padding:8px 0}.project-agent-policy-options label+label[data-v-077ab7fe]{border-block-start:1px solid #e2e7e3;border-inline-start:0}.project-agent-policy-feedback[data-v-077ab7fe]{grid-column:1;padding-inline:0}}.project-agent-source-state[data-v-ca9a5880]{color:#727d75;background:#f7f9f7;border:1px solid #e1e6e2;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;margin-top:22px;padding:10px 12px;font-size:10px;display:flex}.project-agent-source-state.is-error[data-v-ca9a5880]{color:#8c4f49;background:#fbf3f1;border-color:#ebd5d0}.employee-work-history[data-v-bf7d05b1]{margin-block:24px;font-size:14px}summary[data-v-bf7d05b1]{cursor:pointer;padding-block:12px;font-weight:650}label[data-v-bf7d05b1]{flex-wrap:wrap;align-items:center;gap:12px;display:flex}select[data-v-bf7d05b1]{max-width:100%;font:inherit;padding:8px}ol[data-v-bf7d05b1]{margin:12px 0;padding:0;list-style:none}li[data-v-bf7d05b1]{border-top:1px solid #dce3de;padding-block:14px}.work-record-meta[data-v-bf7d05b1]{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}p[data-v-bf7d05b1]{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65}@media (width<=640px){.employee-work-history[data-v-bf7d05b1]{font-size:16px}}.agent-conversations[data-v-6d3f7a53]{color:#39483f;margin-block:20px;font-size:14px}summary[data-v-6d3f7a53]{cursor:pointer;padding-block:12px;font-weight:650}summary[data-v-6d3f7a53]:focus-visible,button[data-v-6d3f7a53]:focus-visible,input[data-v-6d3f7a53]:focus-visible,select[data-v-6d3f7a53]:focus-visible,textarea[data-v-6d3f7a53]:focus-visible{outline-offset:3px;outline:2px solid #315c43}label[data-v-6d3f7a53]{flex-wrap:wrap;align-items:center;gap:12px;display:flex}select[data-v-6d3f7a53],input[type=number][data-v-6d3f7a53]{max-width:100%;font:inherit;color:inherit;background:#fff;border:1px solid #a8b7ad;border-radius:6px;padding:8px}input[type=number][data-v-6d3f7a53]{width:100px}input[type=checkbox][data-v-6d3f7a53]{width:18px;height:18px}fieldset[data-v-6d3f7a53]{border:0;gap:16px;min-width:0;margin:0;padding:8px 0;display:grid}fieldset button[data-v-6d3f7a53]{justify-self:start}.conversation-hint[data-v-6d3f7a53]{color:#58675d;margin-block:12px;line-height:1.65}ol[data-v-6d3f7a53]{margin:0;padding:0;list-style:none}.conversation-list>li[data-v-6d3f7a53]{border-bottom:1px solid #dce3de}.continuation-copy[data-v-6d3f7a53]{margin-bottom:12px}.conversation-link[data-v-6d3f7a53]{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;gap:6px;padding:14px 0;display:grid}.conversation-link:hover strong[data-v-6d3f7a53]{text-underline-offset:3px;text-decoration:underline}.conversation-link[aria-pressed=true] strong[data-v-6d3f7a53]{color:#315c43}.conversation-link span[data-v-6d3f7a53]{color:#58675d;font-size:12px}.conversation-link strong[data-v-6d3f7a53]{overflow-wrap:anywhere}.conversation-messages[data-v-6d3f7a53]{padding-bottom:16px}.conversation-messages li[data-v-6d3f7a53]{padding-block:12px}pre[data-v-6d3f7a53]{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;max-height:320px;margin-block:8px;line-height:1.65;overflow:auto}textarea[data-v-6d3f7a53]{box-sizing:border-box;width:100%;font:inherit;color:inherit;resize:vertical;background:#fff;border:1px solid #a8b7ad;border-radius:6px;padding:8px}button[data-v-6d3f7a53]:disabled{cursor:wait;opacity:.65}@media (width<=640px){.agent-conversations[data-v-6d3f7a53]{font-size:16px}}.project-agent-dialog[data-v-95db0a3d]{background:0 0;border:0;border-radius:12px;width:min(760px,100vw - 64px);max-height:calc(100vh - 64px);padding:0;overflow:hidden}.project-agent-dialog-shell[data-v-95db0a3d]{background:#fbfcfb;border:1px solid #d5dcd7;border-radius:12px;flex-direction:column;min-height:0;max-height:calc(100vh - 64px);display:flex;overflow:hidden;box-shadow:0 18px 48px #212d262e}.project-agent-dialog-header[data-v-95db0a3d],.project-agent-dialog-actions[data-v-95db0a3d]{justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;display:flex}.project-agent-dialog-header[data-v-95db0a3d]{border-bottom:1px solid #e1e6e2}.project-agent-dialog-header h3[data-v-95db0a3d]{color:#283a31;font-size:17px}.project-agent-dialog-fields[data-v-95db0a3d]{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-height:0;padding:20px;display:grid;overflow:auto}.project-agent-dialog-fields label[data-v-95db0a3d]{color:#626d66;align-content:start;gap:6px;min-width:0;font-size:11px;font-weight:650;display:grid}.project-agent-dialog-fields input[data-v-95db0a3d],.project-agent-dialog-fields select[data-v-95db0a3d],.project-agent-dialog-fields textarea[data-v-95db0a3d]{color:#28342d;background:#fff;border:1px solid #ccd5ce;border-radius:8px;width:100%;padding:9px 10px;font-size:12px;line-height:1.5}.project-agent-dialog-fields textarea[data-v-95db0a3d]{resize:vertical}.project-agent-dialog-fields input[data-v-95db0a3d]:focus-visible,.project-agent-dialog-fields select[data-v-95db0a3d]:focus-visible,.project-agent-dialog-fields textarea[data-v-95db0a3d]:focus-visible{outline-offset:1px;outline:2px solid #91a398}.project-agent-wide-field[data-v-95db0a3d],.project-agent-id-note[data-v-95db0a3d]{grid-column:1/-1}.project-agent-strategy-fields[data-v-95db0a3d]{border:1px solid #dfe5e0;border-radius:9px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0;margin:0;padding:12px;display:grid}.project-agent-strategy-fields legend[data-v-95db0a3d]{color:#59665d;padding:0 5px;font-size:10px;font-weight:700}.project-agent-strategy-fields>small[data-v-95db0a3d]{color:#818a84;grid-column:1/-1;font-size:9px;line-height:1.5}.project-agent-id-note[data-v-95db0a3d]{color:#7b847e;margin-top:-8px;font-size:10px}.project-agent-dialog-error[data-v-95db0a3d]{color:#8b3f38;margin:0 20px;font-size:11px}.project-agent-dialog-actions[data-v-95db0a3d]{border-top:1px solid #e1e6e2;justify-content:flex-end}.project-agent-primary-action[data-v-95db0a3d]{color:#fff;background:#344c3d;border:0;border-radius:8px;padding:8px 14px;font-size:12px;font-weight:700}.project-agent-primary-action[data-v-95db0a3d]:hover{background:#2b4234}.project-agent-primary-action[data-v-95db0a3d]:focus-visible{outline-offset:2px;outline:2px solid #91a398}.project-agent-primary-action[data-v-95db0a3d]:disabled,.project-agent-dialog-fields[data-v-95db0a3d] :disabled{cursor:not-allowed;opacity:.6}@media (width<=720px){.project-agent-dialog-fields[data-v-95db0a3d]{grid-template-columns:1fr}.project-agent-wide-field[data-v-95db0a3d],.project-agent-id-note[data-v-95db0a3d]{grid-column:1}}.project-agent-row-shell[data-v-fcdd93e0]{align-items:flex-start;gap:6px;min-width:0;display:flex}.project-agent-row-shell>.project-agent-row[data-v-fcdd93e0]{flex:1;min-width:0}.project-agent-row-shell>.agent-hand[data-v-fcdd93e0]{margin-top:14px}.project-agent-header-actions[data-v-fcdd93e0]{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.project-agents-view[data-v-fcdd93e0]{flex-direction:column;gap:12px;min-height:0;padding:18px 32px 20px;display:flex;overflow:hidden}.project-agents-header[data-v-fcdd93e0],.project-agent-section-heading[data-v-fcdd93e0],.project-agent-section-tools[data-v-fcdd93e0],.project-agent-detail-actions[data-v-fcdd93e0],.project-agent-assignment-card header[data-v-fcdd93e0],.project-agent-task-card header[data-v-fcdd93e0],.project-agent-learning-card header[data-v-fcdd93e0],.project-agent-day-detail header[data-v-fcdd93e0]{justify-content:space-between;align-items:center;gap:12px;display:flex}.project-agents-header h2[data-v-fcdd93e0]{color:#283a31;font-size:18px}.project-agents-header-meta[data-v-fcdd93e0]{color:#7a847d;font-size:10px}.project-agents-summary[data-v-fcdd93e0]{color:#58675d;gap:18px;padding:2px 0 4px;font-size:12px;line-height:1.5;display:flex}.project-agents-summary span[data-v-fcdd93e0]:first-child{color:#2f493b;font-weight:700}.project-agent-add[data-v-fcdd93e0]{color:#fff;cursor:pointer;background:#344c3d;border:0;border-radius:8px;min-height:40px;padding:9px 14px;font-size:12px;font-weight:600}.project-agent-add[data-v-fcdd93e0]:hover{background:#2b4234}.project-agent-add[data-v-fcdd93e0]:focus-visible,.quiet-button[data-v-fcdd93e0]:focus-visible{outline-offset:2px;outline:2px solid #91a398}.project-agent-add[data-v-fcdd93e0]:disabled{cursor:not-allowed;opacity:.55}.project-agents-toolbar[data-v-fcdd93e0]{grid-template-columns:minmax(240px,320px) minmax(200px,1fr) auto;align-items:center;gap:12px;display:grid}.project-agents-search input[data-v-fcdd93e0]{color:#2e3932;background:#fff;border:1px solid #cfd7d1;border-radius:8px;width:100%;min-height:44px;padding:10px 12px;font-size:13px}.project-agents-search input[data-v-fcdd93e0]:focus-visible{outline-offset:1px;outline:2px solid #91a398}.project-agents-status-filter[data-v-fcdd93e0]{background:#f5f7f5;border:1px solid #d8ded9;border-radius:8px;gap:3px;padding:3px;display:flex}.project-agents-status-filter button[data-v-fcdd93e0],.quiet-button[data-v-fcdd93e0]{color:#58675d;cursor:pointer;background:0 0;border:0;border-radius:6px;min-height:34px;padding:7px 10px;font-size:12px}.project-agents-status-filter button[aria-pressed=true][data-v-fcdd93e0]{color:#315440;background:#fff;font-weight:700;box-shadow:0 1px 3px #27392f1f}.project-agents-directory[data-v-fcdd93e0]{background:#fff;border:1px solid #cfd7d1;border-radius:10px;flex:1;grid-template-columns:minmax(360px,.94fr) minmax(390px,1.06fr);min-height:0;display:grid;overflow:hidden}.project-agent-list[data-v-fcdd93e0]{border-right:1px solid #dfe4e0;min-width:0;min-height:0;overflow:auto}.project-agent-row[data-v-fcdd93e0]{width:100%;color:inherit;text-align:left;background:#fff;border:0;border-bottom:1px solid #e6eae7;grid-template-columns:minmax(0,1fr) auto;gap:5px 14px;padding:14px 16px;display:grid}.project-agent-row[data-v-fcdd93e0]:hover{background:#f7f9f7}.project-agent-row.selected[data-v-fcdd93e0]{background:#edf3ef}.project-agent-row[data-v-fcdd93e0]:focus-visible{z-index:1;outline-offset:-3px;outline:2px solid #91a398;position:relative}.project-agent-row-heading[data-v-fcdd93e0]{align-items:center;gap:7px;min-width:0;display:flex}.project-agent-occupation-emoji[data-v-fcdd93e0]{flex:none;justify-content:center;align-items:center;min-width:1.2em;font-size:15px;line-height:1;display:inline-flex}.project-agent-row-heading strong[data-v-fcdd93e0]{color:#293b31;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.project-agent-row-heading i[data-v-fcdd93e0],.project-agent-assignment-card header i[data-v-fcdd93e0],.project-agent-task-card header i[data-v-fcdd93e0],.project-agent-learning-card header i[data-v-fcdd93e0]{color:#66716a;background:#e6eae7;border-radius:999px;flex:none;padding:2px 7px;font-size:9px;font-style:normal;font-weight:700}.project-agent-row-heading i.is-active[data-v-fcdd93e0]{color:#2f6947;background:#e1eee6}.project-agent-row-heading i.is-archived[data-v-fcdd93e0]{color:#75695d;background:#eeeae5}.project-agent-kind[data-v-fcdd93e0]{color:#53647b!important;background:#eef2f7!important}.project-agent-row-id[data-v-fcdd93e0]{color:#8a938d;overflow-wrap:anywhere;text-align:right;font-size:9px}.project-agent-row-projects[data-v-fcdd93e0]{flex-wrap:wrap;grid-column:1/-1;gap:4px;display:flex}.project-agent-row-projects b[data-v-fcdd93e0],.project-agent-tags span[data-v-fcdd93e0],.project-agent-inline-list span[data-v-fcdd93e0]{color:#5f6b64;background:#eef1ef;border-radius:999px;padding:3px 7px;font-size:9px;font-weight:650}.project-agent-row-projects em[data-v-fcdd93e0]{color:#8a938d;font-size:9px;font-style:normal}.project-agent-row-responsibility[data-v-fcdd93e0]{color:#59645d;text-overflow:ellipsis;white-space:nowrap;grid-column:1/-1;font-size:11px;line-height:1.5;overflow:hidden}.project-agent-row-work[data-v-fcdd93e0]{color:#59645d;grid-column:1/-1;font-size:10px;line-height:1.5}.project-agent-work-dot[data-v-fcdd93e0]{background:#4b8d63;border-radius:50%;width:6px;height:6px;margin-right:4px;display:inline-block}.project-agent-detail[data-v-fcdd93e0]{min-width:0;min-height:0;padding:20px;overflow:auto;container-type:inline-size}.employee-project-overview[data-v-fcdd93e0]{border-bottom:1px solid #e1e6e2;margin:22px 0;padding-bottom:18px}.employee-project-overview-heading[data-v-fcdd93e0]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.employee-project-overview-heading h4[data-v-fcdd93e0]{color:#33483c;margin:0;font-size:14px}.employee-project-overview-heading p[data-v-fcdd93e0],.employee-project-overview-hint[data-v-fcdd93e0]{color:#58675d;margin:5px 0 0;font-size:12px;line-height:1.6}.employee-project-overview-hint[data-v-fcdd93e0]{margin-top:12px}.employee-assigned-projects[data-v-fcdd93e0]{grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 20px;margin-top:12px;display:grid}.employee-assigned-projects a[data-v-fcdd93e0]{color:#315c43;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;font-size:13px;line-height:1.5;text-decoration:none;display:flex}.employee-assigned-projects a[data-v-fcdd93e0]:hover{text-underline-offset:3px;text-decoration:underline}.employee-assigned-projects a[data-v-fcdd93e0]:focus-visible{outline-offset:3px;outline:2px solid #91a398}.employee-assigned-projects a span[data-v-fcdd93e0]{overflow-wrap:anywhere}.employee-assigned-projects svg[data-v-fcdd93e0]{flex-shrink:0}@container (width<=480px){.employee-assigned-projects[data-v-fcdd93e0]{grid-template-columns:minmax(0,1fr)}}.project-agent-detail>header[data-v-fcdd93e0]{border-bottom:1px solid #e1e6e2;grid-template-columns:minmax(0,1fr) max-content;align-items:flex-start;gap:16px;padding-bottom:16px;display:grid}.project-agent-detail-heading[data-v-fcdd93e0]{min-width:0}.project-agent-detail h3[data-v-fcdd93e0]{color:#263b30;text-wrap:balance;font-size:17px;line-height:1.32}.project-agent-detail header p[data-v-fcdd93e0]{color:#7a847d;overflow-wrap:anywhere;max-width:72ch;margin-top:5px;font-size:10px;line-height:1.5}.project-agent-detail-actions[data-v-fcdd93e0]{grid-auto-columns:78px;grid-auto-flow:column;justify-content:end;gap:8px;display:grid}.project-agent-detail-actions .quiet-button[data-v-fcdd93e0]{white-space:nowrap;width:78px}.project-agent-detail-meta[data-v-fcdd93e0],.project-agent-compact-meta[data-v-fcdd93e0]{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0 0;display:grid}.project-agent-detail-meta div[data-v-fcdd93e0],.project-agent-compact-meta div[data-v-fcdd93e0]{min-width:0}.project-agent-detail-meta dt[data-v-fcdd93e0],.project-agent-compact-meta dt[data-v-fcdd93e0],.project-agent-detail-section h4[data-v-fcdd93e0]{color:#7a847d;letter-spacing:.06em;text-transform:uppercase;font-size:9px;font-weight:700}.project-agent-detail-meta dd[data-v-fcdd93e0],.project-agent-compact-meta dd[data-v-fcdd93e0]{overflow-wrap:anywhere;color:#39483f;margin:4px 0 0;font-size:11px}.project-agent-detail-meta dd small[data-v-fcdd93e0]{color:#818a84;margin-top:3px;font-size:9px;line-height:1.4;display:block}.project-agent-detail-section[data-v-fcdd93e0]{margin-top:22px}.project-agent-detail-section.is-responsibility[data-v-fcdd93e0]{background:#f2f5f2;border-radius:10px;padding:14px}.project-agent-detail-section p[data-v-fcdd93e0],.project-agent-detail-section li[data-v-fcdd93e0]{color:#4f5c54;font-size:11px;line-height:1.65}.project-agent-tags[data-v-fcdd93e0],.project-agent-inline-list[data-v-fcdd93e0]{flex-wrap:wrap;gap:6px;margin-top:9px;display:flex}.project-agent-muted[data-v-fcdd93e0]{color:#8a928d!important}.project-agent-detail-notice[data-v-fcdd93e0]{background:#f5f5f1;border-radius:7px;margin:12px 0 0;padding:8px 10px;color:#6f705f!important}.project-agent-detail-placeholder[data-v-fcdd93e0],.project-agents-state[data-v-fcdd93e0]{color:#737d76;text-align:center;place-content:center;justify-items:center;gap:8px;min-height:240px;font-size:11px;display:grid}.project-agents-state[data-v-fcdd93e0]{background:#fafbfa;border:1px solid #d9dfda;border-radius:10px;flex:1}.project-agents-state strong[data-v-fcdd93e0]{color:#36473e;font-size:14px}.project-agents-state p[data-v-fcdd93e0]{max-width:52ch;line-height:1.6}.project-agents-state.is-error[data-v-fcdd93e0]{color:#8b3f38}.project-agent-assignment-list[data-v-fcdd93e0],.project-agent-task-list[data-v-fcdd93e0],.project-agent-learning-list[data-v-fcdd93e0],.project-agent-recruitment-list[data-v-fcdd93e0]{gap:8px;margin-top:9px;display:grid}.project-agent-task-list[data-v-fcdd93e0]{grid-template-columns:minmax(0,1fr);min-width:0}.project-agent-execution-summary[data-v-fcdd93e0]{border-top:1px solid #dfe5e0;min-width:0;margin-top:13px;padding-top:12px}.project-agent-worker-event-evidence[data-v-fcdd93e0]{background:#f8faf8;border:1px dashed #d8dfd9;border-radius:8px;margin-top:13px;padding:10px 10px 0}.project-agent-execution-summary .project-agent-section-heading[data-v-fcdd93e0]{gap:8px}.project-agent-execution-summary h5[data-v-fcdd93e0]{color:#65736a;letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:11px;font-weight:700}.project-agent-execution-summary-table-wrap[data-v-fcdd93e0]{box-sizing:border-box;overscroll-behavior-inline:contain;background:#fff;border:1px solid #dce3de;border-radius:8px;width:100%;max-width:100%;margin-top:7px;overflow-x:auto}.project-agent-execution-summary-table-wrap[data-v-fcdd93e0]:focus-visible{outline-offset:2px;outline:2px solid #91a398}.project-agent-execution-summary-table[data-v-fcdd93e0]{border-collapse:collapse;table-layout:fixed;color:#4f5e54;width:100%;min-width:1040px;font-size:12px;line-height:1.5}.project-agent-execution-summary-table th[data-v-fcdd93e0],.project-agent-execution-summary-table td[data-v-fcdd93e0]{overflow-wrap:anywhere;text-align:left;vertical-align:top;border-bottom:1px solid #e6ebe7;border-right:1px solid #e6ebe7;min-width:0;padding:8px 9px}.project-agent-execution-summary-table tr[data-v-fcdd93e0]>:last-child{border-right:0}.project-agent-execution-summary-table tbody tr[data-v-fcdd93e0]:last-child>*{border-bottom:0}.project-agent-execution-summary-table thead th[data-v-fcdd93e0]{color:#65736a;letter-spacing:.04em;text-transform:uppercase;background:#f3f6f4;font-size:11px;font-weight:750}.project-agent-execution-summary-table thead th[data-v-fcdd93e0]:first-child{width:14%}.project-agent-execution-summary-table thead th[data-v-fcdd93e0]:nth-child(2){width:20%}.project-agent-execution-summary-table thead th[data-v-fcdd93e0]:nth-child(3){width:13%}.project-agent-execution-summary-table thead th[data-v-fcdd93e0]:nth-child(4),.project-agent-execution-summary-table thead th[data-v-fcdd93e0]:nth-child(5){width:15%}.project-agent-execution-summary-table thead th[data-v-fcdd93e0]:nth-child(6){width:12%}.project-agent-execution-summary-table tbody tr[data-v-fcdd93e0]:hover{background:#fafcfb}.project-agent-execution-summary-table tbody th[data-v-fcdd93e0]{color:#3f5647;font-weight:700}.project-agent-execution-summary-table tbody strong[data-v-fcdd93e0],.project-agent-execution-summary-table tbody span[data-v-fcdd93e0],.project-agent-execution-summary-table tbody small[data-v-fcdd93e0],.project-agent-execution-summary-table tbody a[data-v-fcdd93e0]{display:block}.project-agent-execution-summary-table tbody small[data-v-fcdd93e0]{color:#647168;margin-top:3px;font-size:11px;font-weight:500}.project-agent-execution-summary-table tbody .project-agent-reporter-label[data-v-fcdd93e0]{margin-top:8px}.project-agent-execution-summary-table tbody a[data-v-fcdd93e0]{color:#386c50;text-underline-offset:2px;margin-top:3px;text-decoration-thickness:1px}.project-agent-execution-summary-table tbody a[data-v-fcdd93e0]:focus-visible{outline-offset:2px;border-radius:2px;outline:2px solid #91a398}.project-agent-execution-worker[data-v-fcdd93e0]{align-items:center;gap:4px;display:flex!important}.project-agent-execution-summary-row i[data-v-fcdd93e0]{color:#66716a;background:#e6eae7;border-radius:999px;padding:2px 6px;font-size:11px;font-style:normal;font-weight:700;display:inline-flex}.project-agent-execution-summary-row i.is-completed[data-v-fcdd93e0]{color:#2f6947;background:#e1eee6}.project-agent-execution-summary-row i.is-failed[data-v-fcdd93e0]{color:#8c4f49;background:#f7e9e6}.project-agent-execution-summary-row i.is-cancelled[data-v-fcdd93e0]{color:#75695d;background:#eeeae5}.project-agent-execution-summary-list[data-v-fcdd93e0]{margin:7px 0 0;padding:0;list-style:none;display:grid}.project-agent-worker-event-row[data-v-fcdd93e0]{border-top:1px solid #e6ebe7;min-width:0;padding:10px 0}.project-agent-worker-event-row[data-v-fcdd93e0]:first-child{border-top:0}.project-agent-worker-event-row header[data-v-fcdd93e0]{align-items:flex-start}.project-agent-worker-event-row header strong[data-v-fcdd93e0]{overflow-wrap:anywhere;color:#3f5647;align-items:center;gap:5px;min-width:0;font-size:10px;display:flex}.project-agent-worker-event-row header strong small[data-v-fcdd93e0]{color:#89948c;margin:0;font-size:8px;font-weight:500;display:inline}.project-agent-worker-event-row header i[data-v-fcdd93e0]{color:#66716a;background:#e6eae7;border-radius:999px;flex:none;padding:2px 6px;font-size:8px;font-style:normal;font-weight:700}.project-agent-worker-event-row header i.is-completed[data-v-fcdd93e0]{color:#2f6947;background:#e1eee6}.project-agent-worker-event-row header i.is-failed[data-v-fcdd93e0]{color:#8c4f49;background:#f7e9e6}.project-agent-worker-event-row header i.is-cancelled[data-v-fcdd93e0]{color:#75695d;background:#eeeae5}.project-agent-execution-summary-meta[data-v-fcdd93e0]{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 10px;margin:8px 0 0;display:grid}.project-agent-execution-summary-meta div[data-v-fcdd93e0]{min-width:0}.project-agent-execution-summary-meta dt[data-v-fcdd93e0]{color:#89948c;letter-spacing:.04em;text-transform:uppercase;font-size:8px;font-weight:700}.project-agent-execution-summary-meta dd[data-v-fcdd93e0]{overflow-wrap:anywhere;color:#4f5e54;margin:2px 0 0;font-size:9px;line-height:1.45}.project-agent-execution-summary-meta dd small[data-v-fcdd93e0]{color:#89948c;margin-top:2px;font-size:8px;display:block}.project-agent-assignment-card[data-v-fcdd93e0],.project-agent-task-card[data-v-fcdd93e0],.project-agent-learning-card[data-v-fcdd93e0]{background:#fbfcfb;border:1px solid #e0e6e1;border-radius:9px;min-width:0;padding:11px 12px}.project-agent-recruitment-card[data-v-fcdd93e0]{background:#fbfcfb;border:1px solid #e0e6e1;border-radius:9px;padding:11px 12px}.project-agent-assignment-card header strong[data-v-fcdd93e0],.project-agent-task-card header strong[data-v-fcdd93e0],.project-agent-learning-card header strong[data-v-fcdd93e0]{color:#33483a;font-size:11px}.project-agent-card-actions[data-v-fcdd93e0]{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px;display:flex}.project-agent-assignment-card p[data-v-fcdd93e0],.project-agent-task-card p[data-v-fcdd93e0],.project-agent-learning-card p[data-v-fcdd93e0]{margin:7px 0 0}.project-agent-assignment-card small[data-v-fcdd93e0],.project-agent-task-card small[data-v-fcdd93e0],.project-agent-learning-card small[data-v-fcdd93e0]{color:#818a84;margin-top:6px;font-size:9px;line-height:1.5;display:block}.project-agent-assignment-card header i.is-ended[data-v-fcdd93e0],.project-agent-assignment-card header i.is-replaced[data-v-fcdd93e0]{color:#75695d;background:#eeeae5}.project-agent-strategy-note[data-v-fcdd93e0],.project-agent-execution-line[data-v-fcdd93e0]{color:#7a847d;flex-wrap:wrap;align-items:baseline;gap:6px;margin-top:8px;font-size:9px;display:flex}.project-agent-strategy-note strong[data-v-fcdd93e0],.project-agent-execution-line strong[data-v-fcdd93e0]{color:#53685a;font-size:10px}.project-agent-strategy-note small[data-v-fcdd93e0]{color:#8c5d54;flex-basis:100%}.project-agent-routing-decision[data-v-fcdd93e0]{color:#65736a;background:#f3f7f3;border:1px solid #dce5de;border-radius:7px;gap:5px;margin-top:10px;padding:9px 10px;font-size:9px;display:grid}.project-agent-routing-decision .project-agent-section-heading[data-v-fcdd93e0]{align-items:baseline;gap:8px}.project-agent-routing-decision .project-agent-section-heading strong[data-v-fcdd93e0]{color:#3f604b;font-size:10px}.project-agent-routing-decision small[data-v-fcdd93e0]{color:#65736a;line-height:1.45}.project-agent-blocked[data-v-fcdd93e0]{color:#8c5d54!important}.project-agent-task-card header[data-v-fcdd93e0]{align-items:flex-start}.project-agent-task-card header small[data-v-fcdd93e0]{margin-top:3px}.project-agent-task-card header i[data-v-fcdd93e0]{color:#53647b;background:#eef2f7}.project-agent-task-card header i.is-completed[data-v-fcdd93e0]{color:#2f6947;background:#e1eee6}.project-agent-task-card header i.is-failed[data-v-fcdd93e0]{color:#8c4f49;background:#f7e9e6}.project-agent-task-card header i.is-cancelled[data-v-fcdd93e0]{color:#75695d;background:#eeeae5}.project-agent-heatmap-viewport[data-v-fcdd93e0]{contain:layout inline-size paint;min-width:0;max-width:100%;overflow-x:clip}.project-agent-heatmap[data-v-fcdd93e0]{grid-template-rows:repeat(7,minmax(10px,1fr));grid-auto-columns:minmax(10px,1fr);grid-auto-flow:column;gap:3px;width:100%;max-width:100%;margin-top:9px;padding:0;display:grid;overflow-x:auto}.project-agent-heat-cell[data-v-fcdd93e0]{appearance:none;box-sizing:border-box;aspect-ratio:1;background:#f2f4f2;border:1px solid #dfe6e0;border-radius:3px;min-width:9px;margin:0;padding:0}.project-agent-heat-cell.intensity-1[data-v-fcdd93e0]{background:#dce9df}.project-agent-heat-cell.intensity-2[data-v-fcdd93e0]{background:#b9d3bf}.project-agent-heat-cell.intensity-3[data-v-fcdd93e0]{background:#87b493}.project-agent-heat-cell.intensity-4[data-v-fcdd93e0]{background:#548466}.project-agent-heat-cell[data-v-fcdd93e0]:focus-visible,.project-agent-heat-cell.selected[data-v-fcdd93e0]{box-shadow:none;border:2px solid #2f5740;outline:none}.project-agent-day-detail[data-v-fcdd93e0]{background:#f6f8f6;border-radius:8px;margin-top:10px;padding:10px}.project-agent-day-detail ul[data-v-fcdd93e0]{margin:8px 0 0;padding-left:17px}.project-agent-day-detail li[data-v-fcdd93e0]{margin-top:6px}.project-agent-day-detail li strong[data-v-fcdd93e0],.project-agent-day-detail li span[data-v-fcdd93e0],.project-agent-day-detail li small[data-v-fcdd93e0]{display:block}.project-agent-day-detail li span[data-v-fcdd93e0]{color:#66736b;font-size:9px}.project-agent-day-detail li small[data-v-fcdd93e0]{color:#7e8981;font-size:9px}.project-agent-client-list[data-v-fcdd93e0],.project-agent-rule-list[data-v-fcdd93e0]{gap:5px;margin-top:9px;display:grid}.project-agent-client-row[data-v-fcdd93e0],.project-agent-rule-row[data-v-fcdd93e0]{color:#68736c;background:#f7f9f7;border-radius:7px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:7px;padding:8px 10px;font-size:9px;display:grid}.project-agent-client-row strong[data-v-fcdd93e0],.project-agent-rule-row strong[data-v-fcdd93e0]{color:#43584a;font-size:10px}.project-agent-client-row small[data-v-fcdd93e0]{color:#8a938d;grid-column:1/-1}.project-agent-executor-list[data-v-fcdd93e0]{gap:5px;margin-top:9px;display:grid}.project-agent-executor-row[data-v-fcdd93e0]{color:#68736c;background:#f7f9f7;border-radius:7px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:7px;padding:8px 10px;font-size:9px;display:grid}.project-agent-executor-row strong[data-v-fcdd93e0]{color:#43584a;font-size:10px}.project-agent-executor-row small[data-v-fcdd93e0]{color:#8a938d;grid-column:1/-1}.project-agent-learning-card header i[data-v-fcdd93e0]{color:#6c776f;background:#f1f3f1}.project-agent-evidence-list[data-v-fcdd93e0]{margin:8px 0 0;padding-left:17px}.project-agent-evidence-list li[data-v-fcdd93e0]{color:#768179;font-size:9px}.project-agent-learning-actions[data-v-fcdd93e0]{gap:6px;margin-top:8px;display:flex}.project-agent-note[data-v-fcdd93e0]{color:#818a84;margin-top:9px;font-size:9px;line-height:1.5;display:block}.sr-only[data-v-fcdd93e0]{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=1180px){.project-agents-toolbar[data-v-fcdd93e0]{grid-template-columns:minmax(220px,280px) 1fr}.project-agents-status-filter[data-v-fcdd93e0]{grid-column:1/-1;justify-self:start}.project-agents-directory[data-v-fcdd93e0]{grid-template-columns:minmax(320px,.9fr) minmax(330px,1fr)}.project-agent-detail-meta[data-v-fcdd93e0],.project-agent-compact-meta[data-v-fcdd93e0]{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (width<=420px){.project-agent-detail>header[data-v-fcdd93e0]{grid-template-columns:minmax(0,1fr)}.project-agent-detail-actions[data-v-fcdd93e0]{justify-content:start}}@media (width<=760px){.project-agents-view[data-v-fcdd93e0]{padding:14px 16px 18px;overflow:auto}.project-agents-header[data-v-fcdd93e0],.project-agents-summary[data-v-fcdd93e0],.project-agent-section-heading[data-v-fcdd93e0],.project-agent-assignment-card header[data-v-fcdd93e0]{flex-wrap:wrap;align-items:flex-start}.project-agents-toolbar[data-v-fcdd93e0]{grid-template-columns:minmax(0,1fr)}.project-agents-project-filter[data-v-fcdd93e0],.project-agents-search[data-v-fcdd93e0],.project-agents-status-filter[data-v-fcdd93e0]{grid-column:1}.project-agents-status-filter[data-v-fcdd93e0]{flex-wrap:wrap;justify-self:stretch;width:100%}.project-agents-directory[data-v-fcdd93e0]{flex:none;grid-template-columns:minmax(0,1fr);overflow:visible}.project-agent-list[data-v-fcdd93e0]{border-bottom:1px solid #dfe4e0;border-right:0;max-height:340px}.project-agent-detail[data-v-fcdd93e0]{min-height:520px;padding:16px}.project-agent-client-row[data-v-fcdd93e0],.project-agent-rule-row[data-v-fcdd93e0],.project-agent-executor-row[data-v-fcdd93e0]{grid-template-columns:minmax(0,1fr);align-items:start}.project-agent-client-row small[data-v-fcdd93e0],.project-agent-executor-row small[data-v-fcdd93e0]{grid-column:1}.project-agent-execution-summary-meta[data-v-fcdd93e0]{grid-template-columns:minmax(0,1fr)}.project-agent-worker-event-row header[data-v-fcdd93e0]{gap:8px}}.project-agent-disclosure[data-v-fcdd93e0]{margin-top:18px}.project-agent-disclosure>summary[data-v-fcdd93e0]{cursor:pointer;color:#39483f;padding-block:10px;font-size:13px;font-weight:650}.project-agent-disclosure>summary[data-v-fcdd93e0]:focus-visible{outline-offset:3px;outline:2px solid #315c43}.project-agent-disclosure .project-agent-detail-section[data-v-fcdd93e0]:first-child{margin-top:12px}
@@ -1 +1 @@
1
- import{A as e,C as t,F as ee,H as n,M as r,N as i,R as a,T as o,Z as s,_ as c,a as l,at as u,b as d,d as f,h as p,j as m,m as h,nt as g,p as te,rt as _,v,x as y,z as b}from"./i18n-BtOOoyJd.js";import{t as x}from"./_plugin-vue_export-helper-BDNMzG2s.js";var ne={class:`project-scope-heading`},S=[`id`],C={key:0,class:`project-scope-count`,role:`status`},w=[`disabled`,`aria-expanded`,`aria-controls`,`aria-labelledby`],re={key:0,viewBox:`0 0 20 20`,width:`18`,height:`18`,"aria-hidden":`true`},ie=[`id`],ae={key:1,class:`project-scope-multiple`},oe=[`id`,`aria-labelledby`],se=[`placeholder`,`aria-label`,`disabled`],T={class:`project-scope-bulk`},E={class:`project-scope-option project-scope-all`},D=[`checked`,`indeterminate`,`disabled`],O=[`disabled`],k=[`disabled`],A={class:`project-scope-list`},j=[`value`,`checked`,`disabled`,`onChange`],M={key:0,class:`project-scope-project-id`},N={key:0,class:`project-scope-empty`},P={key:0,class:`project-scope-footer`},F={role:`status`},I={key:1,class:`project-scope-hint`},L={key:2,class:`project-scope-hint`},R=x(o({__name:`ProjectScopePicker`,props:{modelValue:{},projects:{},disabled:{type:Boolean},inline:{type:Boolean},label:{},hint:{},emptyLabel:{},compact:{type:Boolean},allLabel:{},showCount:{type:Boolean},resettable:{type:Boolean}},emits:[`update:modelValue`,`reset`],setup(o,{emit:x}){let R=o,z=x,B=s(null),V=s(null),H=s(null),U=s(!1),W=s(``),G=`employee-projects-${a().replace(/[^a-zA-Z0-9_-]/g,``)}`,K=c(()=>new Set(R.modelValue)),q=c(()=>R.projects.filter(e=>K.value.has(e.id)).length),J=c(()=>R.projects.length>0&&q.value===R.projects.length),ce=c(()=>R.label??l(`employees.scope.label`)),Y=c(()=>{let e=new Map;for(let t of R.projects)e.set(t.name,(e.get(t.name)??0)+1);return new Set([...e].filter(([,e])=>e>1).map(([e])=>e))}),le=c(()=>{let e=R.projects.find(e=>K.value.has(e.id));return e?`${e.name}${Y.value.has(e.name)?` · ${e.id}`:``}`:``}),ue=c(()=>R.showCount?l(`employees.scope.count`,{selected:q.value,total:R.projects.length}):J.value?R.allLabel??l(`employees.scope.allSummary`,{count:q.value}):q.value===1?le.value:q.value?l(`employees.scope.selected`,{count:q.value}):R.emptyLabel??l(`employees.unassigned`)),X=c(()=>{let e=W.value.trim().toLocaleLowerCase();return R.projects.filter(t=>`${t.name} ${t.id}`.toLocaleLowerCase().includes(e))});b(()=>R.disabled,e=>{e&&Z()}),r(()=>document.addEventListener(`pointerdown`,Q)),m(()=>document.removeEventListener(`pointerdown`,Q));async function de(){if(!R.disabled){if(U.value){Z();return}W.value=``,U.value=!0,await e(),H.value?.focus()}}function Z(t=!1){U.value=!1,t&&e(()=>V.value?.focus())}function Q(e){U.value&&!B.value?.contains(e.target)&&Z()}function fe(e){e.relatedTarget&&!B.value?.contains(e.relatedTarget)&&Z()}function pe(e){U.value&&e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),Z(!0))}function $(e){R.disabled||z(`update:modelValue`,e)}function me(){$(J.value?[]:R.projects.map(e=>e.id))}function he(){$(R.projects.filter(e=>!K.value.has(e.id)).map(e=>e.id))}function ge(e){let t=new Set(R.modelValue);t.has(e)?t.delete(e):t.add(e),$(R.projects.filter(e=>t.has(e.id)).map(e=>e.id))}return(e,r)=>(i(),y(`div`,{ref_key:`root`,ref:B,class:_([`project-scope-picker`,{"is-inline":o.inline,"is-compact":o.compact,"has-count":o.showCount}]),onFocusout:fe,onKeydown:pe},[v(`div`,ne,[v(`span`,{id:`${G}-label`,class:`project-scope-label`},u(ce.value),9,S),o.inline?(i(),y(`span`,C,u(g(l)(`employees.scope.count`,{selected:q.value,total:o.projects.length})),1)):d(``,!0)]),o.inline?d(``,!0):(i(),y(`button`,{key:0,ref_key:`trigger`,ref:V,type:`button`,class:`project-scope-trigger`,disabled:o.disabled,"aria-expanded":U.value,"aria-controls":`${G}-panel`,"aria-labelledby":`${G}-label ${G}-value`,onClick:de},[o.compact?(i(),y(`svg`,re,[...r[4]||=[v(`path`,{d:`M3 5h14M5.5 10h9M8 15h4`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`,"stroke-linecap":`round`},null,-1)]])):d(``,!0),v(`span`,{id:`${G}-value`,class:`project-scope-value`},u(ue.value),9,ie),o.compact&&!o.showCount?(i(),y(`small`,ae,u(g(l)(`employees.scope.multiple`)),1)):d(``,!0),r[5]||=v(`svg`,{viewBox:`0 0 20 20`,width:`18`,height:`18`,"aria-hidden":`true`},[v(`path`,{d:`m5 7.5 5 5 5-5`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`,"stroke-linecap":`round`,"stroke-linejoin":`round`})],-1)],8,w)),o.inline||U.value?(i(),y(`div`,{key:1,id:`${G}-panel`,class:`project-scope-panel`,role:`group`,"aria-labelledby":`${G}-label`},[n(v(`input`,{ref_key:`search`,ref:H,"onUpdate:modelValue":r[0]||=e=>W.value=e,type:`search`,class:`project-scope-search`,placeholder:g(l)(`employees.scope.search`),"aria-label":g(l)(`employees.scope.search`),disabled:o.disabled,onKeydown:r[1]||=te(h(()=>{},[`prevent`]),[`enter`])},null,40,se),[[f,W.value]]),v(`div`,T,[v(`label`,E,[v(`input`,{type:`checkbox`,checked:J.value,indeterminate:q.value>0&&!J.value,disabled:o.disabled||!o.projects.length,onChange:me},null,40,D),v(`span`,null,[t(u(o.allLabel??g(l)(`employees.scope.all`))+` `,1),v(`small`,null,u(o.projects.length),1)])]),v(`button`,{type:`button`,disabled:o.disabled||!o.projects.length,onClick:he},u(g(l)(`employees.scope.invert`)),9,O),o.resettable?(i(),y(`button`,{key:0,class:`project-scope-reset`,type:`button`,disabled:o.disabled,onClick:r[2]||=e=>z(`reset`)},u(g(l)(`employees.scope.reset`)),9,k)):d(``,!0)]),v(`div`,A,[(i(!0),y(p,null,ee(X.value,e=>(i(),y(`label`,{key:e.id,class:_([`project-scope-option`,{"is-selected":K.value.has(e.id)}])},[v(`input`,{type:`checkbox`,value:e.id,checked:K.value.has(e.id),disabled:o.disabled,onChange:t=>ge(e.id)},null,40,j),v(`span`,null,[t(u(e.name),1),Y.value.has(e.name)?(i(),y(`small`,M,u(e.id),1)):d(``,!0)])],2))),128)),X.value.length?d(``,!0):(i(),y(`p`,N,u(g(l)(o.projects.length?`employees.scope.noMatch`:`employees.scope.empty`)),1))]),o.inline?d(``,!0):(i(),y(`div`,P,[v(`span`,F,u(g(l)(`employees.scope.count`,{selected:q.value,total:o.projects.length})),1),v(`button`,{type:`button`,onClick:r[3]||=e=>Z(!0)},u(g(l)(`employees.scope.done`)),1)])),o.compact&&o.hint?(i(),y(`p`,I,u(o.hint),1)):d(``,!0)],8,oe)):d(``,!0),!o.compact&&o.hint!==``?(i(),y(`p`,L,u(o.hint??g(l)(`employees.scope.snapshotHint`)),1)):d(``,!0)],34))}}),[[`__scopeId`,`data-v-bbd9c029`]]);export{R as t};
1
+ import{A as e,C as t,F as ee,H as n,M as r,N as i,R as a,T as o,Z as s,_ as c,a as l,at as u,b as d,d as f,h as p,j as m,m as h,nt as g,p as te,rt as _,v,x as y,z as b}from"./i18n-75woNt31.js";import{t as x}from"./_plugin-vue_export-helper-BDNMzG2s.js";var ne={class:`project-scope-heading`},S=[`id`],C={key:0,class:`project-scope-count`,role:`status`},w=[`disabled`,`aria-expanded`,`aria-controls`,`aria-labelledby`],re={key:0,viewBox:`0 0 20 20`,width:`18`,height:`18`,"aria-hidden":`true`},ie=[`id`],ae={key:1,class:`project-scope-multiple`},oe=[`id`,`aria-labelledby`],se=[`placeholder`,`aria-label`,`disabled`],T={class:`project-scope-bulk`},E={class:`project-scope-option project-scope-all`},D=[`checked`,`indeterminate`,`disabled`],O=[`disabled`],k=[`disabled`],A={class:`project-scope-list`},j=[`value`,`checked`,`disabled`,`onChange`],M={key:0,class:`project-scope-project-id`},N={key:0,class:`project-scope-empty`},P={key:0,class:`project-scope-footer`},F={role:`status`},I={key:1,class:`project-scope-hint`},L={key:2,class:`project-scope-hint`},R=x(o({__name:`ProjectScopePicker`,props:{modelValue:{},projects:{},disabled:{type:Boolean},inline:{type:Boolean},label:{},hint:{},emptyLabel:{},compact:{type:Boolean},allLabel:{},showCount:{type:Boolean},resettable:{type:Boolean}},emits:[`update:modelValue`,`reset`],setup(o,{emit:x}){let R=o,z=x,B=s(null),V=s(null),H=s(null),U=s(!1),W=s(``),G=`employee-projects-${a().replace(/[^a-zA-Z0-9_-]/g,``)}`,K=c(()=>new Set(R.modelValue)),q=c(()=>R.projects.filter(e=>K.value.has(e.id)).length),J=c(()=>R.projects.length>0&&q.value===R.projects.length),ce=c(()=>R.label??l(`employees.scope.label`)),Y=c(()=>{let e=new Map;for(let t of R.projects)e.set(t.name,(e.get(t.name)??0)+1);return new Set([...e].filter(([,e])=>e>1).map(([e])=>e))}),le=c(()=>{let e=R.projects.find(e=>K.value.has(e.id));return e?`${e.name}${Y.value.has(e.name)?` · ${e.id}`:``}`:``}),ue=c(()=>R.showCount?l(`employees.scope.count`,{selected:q.value,total:R.projects.length}):J.value?R.allLabel??l(`employees.scope.allSummary`,{count:q.value}):q.value===1?le.value:q.value?l(`employees.scope.selected`,{count:q.value}):R.emptyLabel??l(`employees.unassigned`)),X=c(()=>{let e=W.value.trim().toLocaleLowerCase();return R.projects.filter(t=>`${t.name} ${t.id}`.toLocaleLowerCase().includes(e))});b(()=>R.disabled,e=>{e&&Z()}),r(()=>document.addEventListener(`pointerdown`,Q)),m(()=>document.removeEventListener(`pointerdown`,Q));async function de(){if(!R.disabled){if(U.value){Z();return}W.value=``,U.value=!0,await e(),H.value?.focus()}}function Z(t=!1){U.value=!1,t&&e(()=>V.value?.focus())}function Q(e){U.value&&!B.value?.contains(e.target)&&Z()}function fe(e){e.relatedTarget&&!B.value?.contains(e.relatedTarget)&&Z()}function pe(e){U.value&&e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),Z(!0))}function $(e){R.disabled||z(`update:modelValue`,e)}function me(){$(J.value?[]:R.projects.map(e=>e.id))}function he(){$(R.projects.filter(e=>!K.value.has(e.id)).map(e=>e.id))}function ge(e){let t=new Set(R.modelValue);t.has(e)?t.delete(e):t.add(e),$(R.projects.filter(e=>t.has(e.id)).map(e=>e.id))}return(e,r)=>(i(),y(`div`,{ref_key:`root`,ref:B,class:_([`project-scope-picker`,{"is-inline":o.inline,"is-compact":o.compact,"has-count":o.showCount}]),onFocusout:fe,onKeydown:pe},[v(`div`,ne,[v(`span`,{id:`${G}-label`,class:`project-scope-label`},u(ce.value),9,S),o.inline?(i(),y(`span`,C,u(g(l)(`employees.scope.count`,{selected:q.value,total:o.projects.length})),1)):d(``,!0)]),o.inline?d(``,!0):(i(),y(`button`,{key:0,ref_key:`trigger`,ref:V,type:`button`,class:`project-scope-trigger`,disabled:o.disabled,"aria-expanded":U.value,"aria-controls":`${G}-panel`,"aria-labelledby":`${G}-label ${G}-value`,onClick:de},[o.compact?(i(),y(`svg`,re,[...r[4]||=[v(`path`,{d:`M3 5h14M5.5 10h9M8 15h4`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`,"stroke-linecap":`round`},null,-1)]])):d(``,!0),v(`span`,{id:`${G}-value`,class:`project-scope-value`},u(ue.value),9,ie),o.compact&&!o.showCount?(i(),y(`small`,ae,u(g(l)(`employees.scope.multiple`)),1)):d(``,!0),r[5]||=v(`svg`,{viewBox:`0 0 20 20`,width:`18`,height:`18`,"aria-hidden":`true`},[v(`path`,{d:`m5 7.5 5 5 5-5`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`,"stroke-linecap":`round`,"stroke-linejoin":`round`})],-1)],8,w)),o.inline||U.value?(i(),y(`div`,{key:1,id:`${G}-panel`,class:`project-scope-panel`,role:`group`,"aria-labelledby":`${G}-label`},[n(v(`input`,{ref_key:`search`,ref:H,"onUpdate:modelValue":r[0]||=e=>W.value=e,type:`search`,class:`project-scope-search`,placeholder:g(l)(`employees.scope.search`),"aria-label":g(l)(`employees.scope.search`),disabled:o.disabled,onKeydown:r[1]||=te(h(()=>{},[`prevent`]),[`enter`])},null,40,se),[[f,W.value]]),v(`div`,T,[v(`label`,E,[v(`input`,{type:`checkbox`,checked:J.value,indeterminate:q.value>0&&!J.value,disabled:o.disabled||!o.projects.length,onChange:me},null,40,D),v(`span`,null,[t(u(o.allLabel??g(l)(`employees.scope.all`))+` `,1),v(`small`,null,u(o.projects.length),1)])]),v(`button`,{type:`button`,disabled:o.disabled||!o.projects.length,onClick:he},u(g(l)(`employees.scope.invert`)),9,O),o.resettable?(i(),y(`button`,{key:0,class:`project-scope-reset`,type:`button`,disabled:o.disabled,onClick:r[2]||=e=>z(`reset`)},u(g(l)(`employees.scope.reset`)),9,k)):d(``,!0)]),v(`div`,A,[(i(!0),y(p,null,ee(X.value,e=>(i(),y(`label`,{key:e.id,class:_([`project-scope-option`,{"is-selected":K.value.has(e.id)}])},[v(`input`,{type:`checkbox`,value:e.id,checked:K.value.has(e.id),disabled:o.disabled,onChange:t=>ge(e.id)},null,40,j),v(`span`,null,[t(u(e.name),1),Y.value.has(e.name)?(i(),y(`small`,M,u(e.id),1)):d(``,!0)])],2))),128)),X.value.length?d(``,!0):(i(),y(`p`,N,u(g(l)(o.projects.length?`employees.scope.noMatch`:`employees.scope.empty`)),1))]),o.inline?d(``,!0):(i(),y(`div`,P,[v(`span`,F,u(g(l)(`employees.scope.count`,{selected:q.value,total:o.projects.length})),1),v(`button`,{type:`button`,onClick:r[3]||=e=>Z(!0)},u(g(l)(`employees.scope.done`)),1)])),o.compact&&o.hint?(i(),y(`p`,I,u(o.hint),1)):d(``,!0)],8,oe)):d(``,!0),!o.compact&&o.hint!==``?(i(),y(`p`,L,u(o.hint??g(l)(`employees.scope.snapshotHint`)),1)):d(``,!0)],34))}}),[[`__scopeId`,`data-v-bbd9c029`]]);export{R as t};
@@ -1 +1 @@
1
- import{C as e,F as t,H as n,N as r,T as i,Z as a,_ as o,a as s,at as c,b as l,d as ee,h as u,j as te,m as ne,n as re,nt as d,rt as ie,v as f,w as p,x as m,y as h}from"./i18n-BtOOoyJd.js";import{t as ae}from"./console--CZxc3PW.js";import{t as g}from"./GrowthLoading-Bu_kH-I8.js";import{h as oe}from"./useApi-CROJJdhE-raNlHRDl.js";import{i as _,n as v,t as y}from"./client-CEHkJJ-5.js";import{t as b}from"./useModalDialog-CroGk2Cs.js";import{t as se}from"./paths-CDREouhi.js";import{t as x}from"./SearchableSelect-BZtyYmZN.js";import{r as S,t as C}from"./identity-CsowvtIm.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`},Ce=[`onClick`],we=[`onClick`],Te={key:0,class:`empty-state project-empty`},Ee={class:`project-section`},De={class:`section-toolbar compact-toolbar relation-section-toolbar`},Oe=[`disabled`],ke={key:0,class:`muted`},Ae={class:`compact-relation-preview`,"aria-live":`polite`},je={key:0},Me={key:1},Ne={class:`primary-action`,type:`submit`},Pe={key:0,class:`project-dialog-shell`},Fe={class:`project-dialog-header`},Ie={id:`public-project-details-title`},Le={class:`project-latest-release`},Re={key:0},ze={key:1,class:`muted`},Be={class:`project-detail-columns`},Ve={key:1,class:`muted`},He={key:0,class:`muted`},Ue={key:1,class:`project-latest-release`},We={class:`muted`},Ge={class:`project-dialog-actions`},Ke={key:0,class:`project-dialog-shell`},qe={class:`project-dialog-header`},Je={id:`public-project-deletion-title`},Ye=[`disabled`],Xe={class:`project-delete-confirmation`},Ze=[`disabled`],Qe={key:0,class:`publish-dialog-error`,role:`alert`},$e={class:`project-dialog-actions`},et=[`disabled`],tt={key:1},nt=`fuli-workspace-v1`,w=i({__name:`PublicProjectsPage`,setup(i){let w=ae(),rt=oe(),T=a(null),E=a([]),D=a([]),O=a(!1),k=a(!1),A=a(``),j=a(``),M=a(`RELATED_TO`),N=a(null),P=a(``),F=a(!1),I=a(``),L=0,R=null,z=o(()=>w.state?.projects??[]),it=o(()=>w.state?.providers?.workspaces??[]),B=o(()=>new Set((w.state?.subscriptions??[]).map(({provider_url:e,project_id:t})=>`${e}::${t}`))),V=o(()=>z.value.filter(({role:e,isOwner:t})=>e===`maintainer`||t)),H=o(()=>V.value.filter(({providerUrl:e})=>X(e))),at=o(()=>H.value.map(e=>({value:e.id,label:e.name,meta:`#${C(e.id,26)}`,search:S(e.id)}))),ot=o(()=>{let e=z.value.find(({id:e})=>e===A.value);return!e||!X(e.providerUrl)?[]:z.value.filter(({id:t,providerUrl:n})=>t!==e.id&&n===e.providerUrl&&X(n))}),st=o(()=>ot.value.map(e=>({value:e.id,label:e.name,meta:`#${C(e.id,26)}`,search:S(e.id)}))),ct=o(()=>z.value.find(({id:e})=>e===A.value)??null),lt=o(()=>z.value.find(({id:e})=>e===j.value)??null),ut=o(()=>W.value.find(({value:e})=>e===M.value)?.label??s(`pages.publicProjects.relationLabels.relatedTo`)),dt=o(()=>T.value?X(T.value.providerUrl):!1),U=o(()=>!!(N.value&&P.value===N.value.name)),W=o(()=>[{value:`PART_OF`,label:s(`pages.publicProjects.relationLabels.partOf`)},{value:`USES_KNOWLEDGE_FROM`,label:s(`pages.publicProjects.relationLabels.usesKnowledgeFrom`)},{value:`DEPENDS_ON`,label:s(`pages.publicProjects.relationLabels.dependsOn`)},{value:`PROVIDES_TO`,label:s(`pages.publicProjects.relationLabels.providesTo`)},{value:`SHARES_CAPABILITY_WITH`,label:s(`pages.publicProjects.relationLabels.sharesCapabilityWith`)},{value:`SUCCESSOR_OF`,label:s(`pages.publicProjects.relationLabels.successorOf`)},{value:`RELATED_TO`,label:s(`pages.publicProjects.relationLabels.relatedTo`)}]),{dialogRef:ft,initialFocusRef:pt,onCancel:G,onKeydown:K}=b(()=>!!T.value,Q),{dialogRef:mt,initialFocusRef:ht,onCancel:q,onKeydown:J}=b(()=>!!N.value,xt);function Y(e){return`${e.providerUrl}::${e.id}`}function X(e){return it.value.find(({providerUrl:t})=>t===e)?.protocol!==nt}function Z(e){return e.profile?.purpose||e.profile?.scope||e.profile?.technical_summary||e.description||s(`pages.publicProjects.fallbackDescription`)}async function gt(e){try{if(B.value.has(Y(e))){let t=new URLSearchParams({personalSpaceId:w.activePersonalSpace?.id??``,providerUrl:e.providerUrl});await y(`/api/subscriptions/${encodeURIComponent(e.id)}?${t}`),w.notify(s(`pages.publicProjects.unsubscribed`,{name:e.name}))}else await _(`/api/subscriptions`,{personalSpaceId:w.activePersonalSpace?.id,projectId:e.id,providerUrl:e.providerUrl,projectName:e.name}),w.notify(s(`pages.publicProjects.subscribed`,{name:e.name}));await w.refresh()}catch(e){w.reportError(e)}}async function _t(e){if(Q(),T.value=e,E.value=[],D.value=[],!X(e.providerUrl))return;let t=++L,n=new AbortController;R=n,O.value=!0;try{let r=new URLSearchParams({providerUrl:e.providerUrl}),[i,a]=await Promise.all([v(`/api/projects/${encodeURIComponent(e.id)}/releases?${r}`,{signal:n.signal}),v(`/api/project-relations?${new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl})}`,{signal:n.signal})]);if(t!==L||n.signal.aborted)return;E.value=i.releases??[],D.value=a.relations??[]}catch(e){if(t!==L||n.signal.aborted)return;w.reportError(e)}finally{if(t!==L||n.signal.aborted)return;O.value=!1,R===n&&(R=null)}}async function vt(e){Q(),await rt.push(se(`public`,e.id,`graph`))}function yt(){L+=1,R?.abort(),R=null,O.value=!1}function Q(){yt(),T.value=null,E.value=[],D.value=[]}function bt(e){X(e.providerUrl)&&(N.value=e,P.value=``,I.value=``)}function xt(){F.value||(N.value=null,P.value=``,I.value=``)}async function St(){let e=N.value;if(!e||!U.value){I.value=s(`pages.publicProjects.deleteNameRequired`);return}if(!X(e.providerUrl)){I.value=s(`pages.publicProjects.providerOperationsUnavailable`);return}F.value=!0,I.value=``;try{let t=new URLSearchParams({providerUrl:e.providerUrl});await y(`/api/projects/${encodeURIComponent(e.id)}?${t}`),T.value=null,N.value=null,w.notify(s(`pages.publicProjects.deleted`,{name:e.name})),await w.refresh()}catch(e){I.value=e instanceof Error?e.message:s(`pages.publicProjects.deleteFailed`),w.reportError(e)}finally{F.value=!1}}async function Ct(){let e=z.value.find(({id:e})=>e===A.value),t=z.value.find(({id:e})=>e===j.value);if(!e||!t){w.reportError(Error(s(`pages.publicProjects.chooseRelationProjects`)));return}if(!X(e.providerUrl)){w.reportError(Error(s(`pages.publicProjects.providerOperationsUnavailable`)));return}try{await _(`/api/project-relations`,{sourceProjectId:e.id,targetProjectId:t.id,providerUrl:e.providerUrl,relationType:M.value,note:null}),k.value=!1,A.value=``,j.value=``,w.notify(M.value===`PART_OF`?s(`pages.publicProjects.parentRelationSubmitted`):s(`pages.publicProjects.relationCreated`))}catch(e){w.reportError(e)}}te(yt);function $(e){return e?new Date(e).toLocaleString(re()):s(`pages.publicProjects.timeNotRecorded`)}return(i,a)=>(r(),m(`section`,ce,[f(`div`,le,[a[11]||=f(`span`,{class:`space-heading-icon`,"aria-hidden":`true`},[f(`span`,{class:`nav-icon nav-icon-public-project`})],-1),f(`div`,null,[f(`p`,null,c(d(s)(`pages.publicProjects.intro`)),1)]),f(`div`,{class:`public-space-stats`,"aria-label":d(s)(`pages.publicProjects.overviewAria`)},[f(`span`,null,[f(`strong`,null,c(z.value.length),1),e(c(d(s)(`pages.publicProjects.discoverable`)),1)]),f(`span`,null,[f(`strong`,null,c(d(w).state?.subscriptions.length??0),1),e(c(d(s)(`pages.publicProjects.subscribedCount`)),1)])],8,ue)]),f(`div`,de,[(r(!0),m(u,null,t(z.value,e=>(r(),m(`article`,{key:Y(e),class:`project-card`},[f(`div`,fe,[f(`div`,null,[f(`h4`,null,c(e.name),1)]),f(`div`,pe,[e.can_manage&&X(e.providerUrl)?(r(),m(`button`,{key:0,class:`management-action`,type:`button`,onClick:t=>bt(e)},c(d(s)(`pages.publicProjects.manage`)),9,me)):l(``,!0),f(`div`,he,[f(`strong`,null,c(e.profile?.assessment?.score??`—`),1),f(`span`,null,c(e.profile?.assessment?d(s)(`pages.publicProjects.coverage`):d(s)(`pages.publicProjects.noSummary`)),1)])])]),f(`p`,ge,c(Z(e)),1),f(`div`,_e,[(r(!0),m(u,null,t(e.profile?.sources??[],(e,t)=>(r(),m(`span`,{key:t,class:`status-chip`},c(e.kind??d(s)(`pages.publicProjects.material`)),1))),128)),e.profile?.sources?.length?l(``,!0):(r(),m(`span`,ve,c(d(s)(`pages.publicProjects.noSources`)),1))]),f(`div`,ye,[f(`span`,{class:ie([`status-chip`,{owner:e.isOwner}])},c(e.isOwner?`Owner`:e.role??`Reader`),3),f(`span`,be,c(e.isOwner?d(s)(`pages.publicProjects.publishedByYou`):d(s)(`pages.publicProjects.publiclyDiscoverable`)),1),e.current_release&&X(e.providerUrl)?(r(),m(`span`,xe,[f(`strong`,null,c(e.current_release.version),1),f(`span`,null,c($(e.current_release.published_at)),1)])):l(``,!0)]),f(`footer`,Se,[f(`button`,{class:`secondary-action`,type:`button`,onClick:t=>gt(e)},c(B.value.has(Y(e))?d(s)(`pages.publicProjects.unsubscribe`):d(s)(`pages.publicProjects.subscribe`)),9,Ce),f(`button`,{class:`primary-action`,type:`button`,onClick:t=>_t(e)},c(d(s)(`common.actions.viewDetails`)),9,we)])]))),128)),z.value.length?l(``,!0):(r(),m(`div`,Te,c(d(s)(`pages.publicProjects.noProjects`)),1))]),f(`section`,Ee,[f(`div`,De,[f(`div`,null,[f(`h3`,null,c(d(s)(`pages.publicProjects.relationsTitle`)),1),f(`p`,null,c(d(s)(`pages.publicProjects.relationsCopy`)),1)]),f(`button`,{class:`primary-action`,type:`button`,disabled:!H.value.length,onClick:a[0]||=e=>k.value=!k.value},c(d(s)(`pages.publicProjects.addRelation`)),9,Oe)]),V.value.length&&!H.value.length?(r(),m(`p`,ke,c(d(s)(`pages.publicProjects.providerOperationsUnavailable`)),1)):l(``,!0),k.value?(r(),m(`form`,{key:1,class:`relation-composer relation-composer-form compact-relation-form`,onSubmit:ne(Ct,[`prevent`])},[f(`label`,null,[e(c(d(s)(`pages.publicProjects.sourceProject`))+` `,1),p(x,{modelValue:A.value,"onUpdate:modelValue":a[1]||=e=>A.value=e,options:at.value,label:d(s)(`pages.publicProjects.sourceProjectLabel`),placeholder:d(s)(`pages.publicProjects.chooseProject`),searchable:``,required:``,onChange:a[2]||=e=>j.value=``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),f(`label`,null,[e(c(d(s)(`pages.publicProjects.relation`))+` `,1),p(x,{modelValue:M.value,"onUpdate:modelValue":a[3]||=e=>M.value=e,options:W.value,label:d(s)(`pages.publicProjects.relationTypeLabel`)},null,8,[`modelValue`,`options`,`label`])]),f(`label`,null,[e(c(d(s)(`pages.publicProjects.targetProject`))+` `,1),p(x,{modelValue:j.value,"onUpdate:modelValue":a[4]||=e=>j.value=e,options:st.value,label:d(s)(`pages.publicProjects.targetProjectLabel`),placeholder:d(s)(`pages.publicProjects.chooseProject`),searchable:``,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),f(`div`,Ae,[f(`span`,null,c(d(s)(`pages.publicProjects.preview`)),1),f(`strong`,null,c(ct.value?.name||d(s)(`pages.publicProjects.sourceProject`))+` `+c(ut.value)+` `+c(lt.value?.name||d(s)(`pages.publicProjects.targetProject`)),1),M.value===`PART_OF`?(r(),m(`p`,je,c(d(s)(`pages.publicProjects.parentConfirmation`)),1)):(r(),m(`p`,Me,c(d(s)(`pages.publicProjects.relationBoundary`)),1))]),f(`button`,Ne,c(d(s)(`pages.publicProjects.addRelation`)),1)],32)):l(``,!0)]),f(`dialog`,{ref_key:`detailsDialogRef`,ref:ft,class:`project-dialog vue-dialog`,"aria-modal":`true`,"aria-labelledby":`public-project-details-title`,onCancel:a[6]||=(...e)=>d(G)&&d(G)(...e),onKeydown:a[7]||=(...e)=>d(K)&&d(K)(...e)},[T.value?(r(),m(`div`,Pe,[f(`header`,Fe,[f(`div`,null,[f(`h3`,Ie,c(T.value.name),1),f(`p`,null,c(Z(T.value)),1)]),f(`button`,{ref_key:`detailsInitialFocusRef`,ref:pt,class:`secondary-action`,type:`button`,onClick:Q},c(d(s)(`common.actions.close`)),513)]),dt.value?(r(),m(u,{key:0},[f(`section`,Le,[f(`h4`,null,c(d(s)(`pages.publicProjects.latestRelease`)),1),T.value.current_release?(r(),m(`p`,Re,[f(`strong`,null,c(T.value.current_release.version),1),e(` · `+c($(T.value.current_release.published_at)),1)])):(r(),m(`p`,ze,c(d(s)(`pages.publicProjects.noRelease`)),1))]),f(`div`,Be,[f(`section`,null,[f(`h4`,null,c(d(s)(`pages.publicProjects.releaseHistory`)),1),O.value?(r(),h(g,{key:0,variant:`compact`,label:d(s)(`pages.publicProjects.loading`)},null,8,[`label`])):l(``,!0),(r(!0),m(u,null,t(E.value,e=>(r(),m(`article`,{key:e.version,class:`project-release-item`},[f(`strong`,null,c(e.version),1),f(`p`,null,c(e.update_summary),1),f(`small`,null,c($(e.published_at)),1)]))),128)),!O.value&&!E.value.length?(r(),m(`p`,Ve,c(d(s)(`pages.publicProjects.noReleaseHistory`)),1)):l(``,!0)]),f(`section`,null,[f(`h4`,null,c(d(s)(`pages.publicProjects.relationsTitle`)),1),(r(!0),m(u,null,t(D.value,e=>(r(),m(`article`,{key:e.id,class:`project-detail-relation`},[f(`strong`,null,c(e.relation_type),1),f(`small`,null,c(e.status??`active`),1)]))),128)),!O.value&&!D.value.length?(r(),m(`p`,He,c(d(s)(`pages.publicProjects.noRelations`)),1)):l(``,!0)])])],64)):(r(),m(`section`,Ue,[f(`p`,We,c(d(s)(`pages.publicProjects.providerOperationsUnavailableTitle`)),1)])),f(`footer`,Ge,[f(`span`,null,c(d(s)(`pages.publicProjects.contentManagementSeparated`)),1),f(`button`,{class:`primary-action`,type:`button`,onClick:a[5]||=e=>vt(T.value)},c(d(s)(`pages.publicProjects.viewGraph`)),1)])])):l(``,!0)],544),f(`dialog`,{ref_key:`deletionDialogRef`,ref:mt,class:`project-dialog vue-dialog`,"aria-modal":`true`,"aria-labelledby":`public-project-deletion-title`,onCancel:a[9]||=(...e)=>d(q)&&d(q)(...e),onKeydown:a[10]||=(...e)=>d(J)&&d(J)(...e)},[N.value?(r(),m(`div`,Ke,[f(`header`,qe,[f(`div`,null,[f(`h3`,Je,c(d(s)(`pages.publicProjects.deleteTitle`)),1),f(`p`,null,c(d(s)(`pages.publicProjects.deleteCopy`)),1)]),f(`button`,{class:`secondary-action`,type:`button`,disabled:F.value,onClick:xt},c(d(s)(`common.actions.close`)),9,Ye)]),f(`label`,Xe,[e(c(d(s)(`pages.publicProjects.enterFullName`))+` `,1),f(`strong`,null,c(N.value.name),1),n(f(`input`,{ref_key:`deletionInitialFocusRef`,ref:ht,"onUpdate:modelValue":a[8]||=e=>P.value=e,autocomplete:`off`,disabled:F.value},null,8,Ze),[[ee,P.value]])]),I.value?(r(),m(`p`,Qe,c(I.value),1)):l(``,!0),f(`footer`,$e,[f(`span`,null,c(d(s)(`pages.publicProjects.deleteWarning`)),1),f(`button`,{class:`reject`,type:`button`,disabled:!U.value||F.value,onClick:St},[F.value?(r(),h(g,{key:0,variant:`inline`,label:d(s)(`pages.publicProjects.deleting`)},null,8,[`label`])):(r(),m(`span`,tt,c(d(s)(`pages.publicProjects.deletePermanently`)),1))],8,et)])])):l(``,!0)],544)]))}});export{w as default};
1
+ import{C as e,F as t,H as n,N as r,T as i,Z as a,_ as o,a as s,at as c,b as l,d as ee,h as u,j as te,m as ne,n as re,nt as d,rt as ie,v as f,w as p,x as m,y as h}from"./i18n-75woNt31.js";import{t as ae}from"./console-hUns2aD-.js";import{t as g}from"./GrowthLoading-DFOy-mEl.js";import{h as oe}from"./useApi-CROJJdhE-QfNm4ADP.js";import{i as _,n as v,t as y}from"./client-InXscj8J.js";import{t as b}from"./useModalDialog-BopF-KHN.js";import{t as se}from"./paths-CDREouhi.js";import{t as x}from"./SearchableSelect-vaoSDq1g.js";import{r as S,t as C}from"./identity-Wt2Xio_B.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`},Ce=[`onClick`],we=[`onClick`],Te={key:0,class:`empty-state project-empty`},Ee={class:`project-section`},De={class:`section-toolbar compact-toolbar relation-section-toolbar`},Oe=[`disabled`],ke={key:0,class:`muted`},Ae={class:`compact-relation-preview`,"aria-live":`polite`},je={key:0},Me={key:1},Ne={class:`primary-action`,type:`submit`},Pe={key:0,class:`project-dialog-shell`},Fe={class:`project-dialog-header`},Ie={id:`public-project-details-title`},Le={class:`project-latest-release`},Re={key:0},ze={key:1,class:`muted`},Be={class:`project-detail-columns`},Ve={key:1,class:`muted`},He={key:0,class:`muted`},Ue={key:1,class:`project-latest-release`},We={class:`muted`},Ge={class:`project-dialog-actions`},Ke={key:0,class:`project-dialog-shell`},qe={class:`project-dialog-header`},Je={id:`public-project-deletion-title`},Ye=[`disabled`],Xe={class:`project-delete-confirmation`},Ze=[`disabled`],Qe={key:0,class:`publish-dialog-error`,role:`alert`},$e={class:`project-dialog-actions`},et=[`disabled`],tt={key:1},nt=`fuli-workspace-v1`,w=i({__name:`PublicProjectsPage`,setup(i){let w=ae(),rt=oe(),T=a(null),E=a([]),D=a([]),O=a(!1),k=a(!1),A=a(``),j=a(``),M=a(`RELATED_TO`),N=a(null),P=a(``),F=a(!1),I=a(``),L=0,R=null,z=o(()=>w.state?.projects??[]),it=o(()=>w.state?.providers?.workspaces??[]),B=o(()=>new Set((w.state?.subscriptions??[]).map(({provider_url:e,project_id:t})=>`${e}::${t}`))),V=o(()=>z.value.filter(({role:e,isOwner:t})=>e===`maintainer`||t)),H=o(()=>V.value.filter(({providerUrl:e})=>X(e))),at=o(()=>H.value.map(e=>({value:e.id,label:e.name,meta:`#${C(e.id,26)}`,search:S(e.id)}))),ot=o(()=>{let e=z.value.find(({id:e})=>e===A.value);return!e||!X(e.providerUrl)?[]:z.value.filter(({id:t,providerUrl:n})=>t!==e.id&&n===e.providerUrl&&X(n))}),st=o(()=>ot.value.map(e=>({value:e.id,label:e.name,meta:`#${C(e.id,26)}`,search:S(e.id)}))),ct=o(()=>z.value.find(({id:e})=>e===A.value)??null),lt=o(()=>z.value.find(({id:e})=>e===j.value)??null),ut=o(()=>W.value.find(({value:e})=>e===M.value)?.label??s(`pages.publicProjects.relationLabels.relatedTo`)),dt=o(()=>T.value?X(T.value.providerUrl):!1),U=o(()=>!!(N.value&&P.value===N.value.name)),W=o(()=>[{value:`PART_OF`,label:s(`pages.publicProjects.relationLabels.partOf`)},{value:`USES_KNOWLEDGE_FROM`,label:s(`pages.publicProjects.relationLabels.usesKnowledgeFrom`)},{value:`DEPENDS_ON`,label:s(`pages.publicProjects.relationLabels.dependsOn`)},{value:`PROVIDES_TO`,label:s(`pages.publicProjects.relationLabels.providesTo`)},{value:`SHARES_CAPABILITY_WITH`,label:s(`pages.publicProjects.relationLabels.sharesCapabilityWith`)},{value:`SUCCESSOR_OF`,label:s(`pages.publicProjects.relationLabels.successorOf`)},{value:`RELATED_TO`,label:s(`pages.publicProjects.relationLabels.relatedTo`)}]),{dialogRef:ft,initialFocusRef:pt,onCancel:G,onKeydown:K}=b(()=>!!T.value,Q),{dialogRef:mt,initialFocusRef:ht,onCancel:q,onKeydown:J}=b(()=>!!N.value,xt);function Y(e){return`${e.providerUrl}::${e.id}`}function X(e){return it.value.find(({providerUrl:t})=>t===e)?.protocol!==nt}function Z(e){return e.profile?.purpose||e.profile?.scope||e.profile?.technical_summary||e.description||s(`pages.publicProjects.fallbackDescription`)}async function gt(e){try{if(B.value.has(Y(e))){let t=new URLSearchParams({personalSpaceId:w.activePersonalSpace?.id??``,providerUrl:e.providerUrl});await y(`/api/subscriptions/${encodeURIComponent(e.id)}?${t}`),w.notify(s(`pages.publicProjects.unsubscribed`,{name:e.name}))}else await _(`/api/subscriptions`,{personalSpaceId:w.activePersonalSpace?.id,projectId:e.id,providerUrl:e.providerUrl,projectName:e.name}),w.notify(s(`pages.publicProjects.subscribed`,{name:e.name}));await w.refresh()}catch(e){w.reportError(e)}}async function _t(e){if(Q(),T.value=e,E.value=[],D.value=[],!X(e.providerUrl))return;let t=++L,n=new AbortController;R=n,O.value=!0;try{let r=new URLSearchParams({providerUrl:e.providerUrl}),[i,a]=await Promise.all([v(`/api/projects/${encodeURIComponent(e.id)}/releases?${r}`,{signal:n.signal}),v(`/api/project-relations?${new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl})}`,{signal:n.signal})]);if(t!==L||n.signal.aborted)return;E.value=i.releases??[],D.value=a.relations??[]}catch(e){if(t!==L||n.signal.aborted)return;w.reportError(e)}finally{if(t!==L||n.signal.aborted)return;O.value=!1,R===n&&(R=null)}}async function vt(e){Q(),await rt.push(se(`public`,e.id,`graph`))}function yt(){L+=1,R?.abort(),R=null,O.value=!1}function Q(){yt(),T.value=null,E.value=[],D.value=[]}function bt(e){X(e.providerUrl)&&(N.value=e,P.value=``,I.value=``)}function xt(){F.value||(N.value=null,P.value=``,I.value=``)}async function St(){let e=N.value;if(!e||!U.value){I.value=s(`pages.publicProjects.deleteNameRequired`);return}if(!X(e.providerUrl)){I.value=s(`pages.publicProjects.providerOperationsUnavailable`);return}F.value=!0,I.value=``;try{let t=new URLSearchParams({providerUrl:e.providerUrl});await y(`/api/projects/${encodeURIComponent(e.id)}?${t}`),T.value=null,N.value=null,w.notify(s(`pages.publicProjects.deleted`,{name:e.name})),await w.refresh()}catch(e){I.value=e instanceof Error?e.message:s(`pages.publicProjects.deleteFailed`),w.reportError(e)}finally{F.value=!1}}async function Ct(){let e=z.value.find(({id:e})=>e===A.value),t=z.value.find(({id:e})=>e===j.value);if(!e||!t){w.reportError(Error(s(`pages.publicProjects.chooseRelationProjects`)));return}if(!X(e.providerUrl)){w.reportError(Error(s(`pages.publicProjects.providerOperationsUnavailable`)));return}try{await _(`/api/project-relations`,{sourceProjectId:e.id,targetProjectId:t.id,providerUrl:e.providerUrl,relationType:M.value,note:null}),k.value=!1,A.value=``,j.value=``,w.notify(M.value===`PART_OF`?s(`pages.publicProjects.parentRelationSubmitted`):s(`pages.publicProjects.relationCreated`))}catch(e){w.reportError(e)}}te(yt);function $(e){return e?new Date(e).toLocaleString(re()):s(`pages.publicProjects.timeNotRecorded`)}return(i,a)=>(r(),m(`section`,ce,[f(`div`,le,[a[11]||=f(`span`,{class:`space-heading-icon`,"aria-hidden":`true`},[f(`span`,{class:`nav-icon nav-icon-public-project`})],-1),f(`div`,null,[f(`p`,null,c(d(s)(`pages.publicProjects.intro`)),1)]),f(`div`,{class:`public-space-stats`,"aria-label":d(s)(`pages.publicProjects.overviewAria`)},[f(`span`,null,[f(`strong`,null,c(z.value.length),1),e(c(d(s)(`pages.publicProjects.discoverable`)),1)]),f(`span`,null,[f(`strong`,null,c(d(w).state?.subscriptions.length??0),1),e(c(d(s)(`pages.publicProjects.subscribedCount`)),1)])],8,ue)]),f(`div`,de,[(r(!0),m(u,null,t(z.value,e=>(r(),m(`article`,{key:Y(e),class:`project-card`},[f(`div`,fe,[f(`div`,null,[f(`h4`,null,c(e.name),1)]),f(`div`,pe,[e.can_manage&&X(e.providerUrl)?(r(),m(`button`,{key:0,class:`management-action`,type:`button`,onClick:t=>bt(e)},c(d(s)(`pages.publicProjects.manage`)),9,me)):l(``,!0),f(`div`,he,[f(`strong`,null,c(e.profile?.assessment?.score??`—`),1),f(`span`,null,c(e.profile?.assessment?d(s)(`pages.publicProjects.coverage`):d(s)(`pages.publicProjects.noSummary`)),1)])])]),f(`p`,ge,c(Z(e)),1),f(`div`,_e,[(r(!0),m(u,null,t(e.profile?.sources??[],(e,t)=>(r(),m(`span`,{key:t,class:`status-chip`},c(e.kind??d(s)(`pages.publicProjects.material`)),1))),128)),e.profile?.sources?.length?l(``,!0):(r(),m(`span`,ve,c(d(s)(`pages.publicProjects.noSources`)),1))]),f(`div`,ye,[f(`span`,{class:ie([`status-chip`,{owner:e.isOwner}])},c(e.isOwner?`Owner`:e.role??`Reader`),3),f(`span`,be,c(e.isOwner?d(s)(`pages.publicProjects.publishedByYou`):d(s)(`pages.publicProjects.publiclyDiscoverable`)),1),e.current_release&&X(e.providerUrl)?(r(),m(`span`,xe,[f(`strong`,null,c(e.current_release.version),1),f(`span`,null,c($(e.current_release.published_at)),1)])):l(``,!0)]),f(`footer`,Se,[f(`button`,{class:`secondary-action`,type:`button`,onClick:t=>gt(e)},c(B.value.has(Y(e))?d(s)(`pages.publicProjects.unsubscribe`):d(s)(`pages.publicProjects.subscribe`)),9,Ce),f(`button`,{class:`primary-action`,type:`button`,onClick:t=>_t(e)},c(d(s)(`common.actions.viewDetails`)),9,we)])]))),128)),z.value.length?l(``,!0):(r(),m(`div`,Te,c(d(s)(`pages.publicProjects.noProjects`)),1))]),f(`section`,Ee,[f(`div`,De,[f(`div`,null,[f(`h3`,null,c(d(s)(`pages.publicProjects.relationsTitle`)),1),f(`p`,null,c(d(s)(`pages.publicProjects.relationsCopy`)),1)]),f(`button`,{class:`primary-action`,type:`button`,disabled:!H.value.length,onClick:a[0]||=e=>k.value=!k.value},c(d(s)(`pages.publicProjects.addRelation`)),9,Oe)]),V.value.length&&!H.value.length?(r(),m(`p`,ke,c(d(s)(`pages.publicProjects.providerOperationsUnavailable`)),1)):l(``,!0),k.value?(r(),m(`form`,{key:1,class:`relation-composer relation-composer-form compact-relation-form`,onSubmit:ne(Ct,[`prevent`])},[f(`label`,null,[e(c(d(s)(`pages.publicProjects.sourceProject`))+` `,1),p(x,{modelValue:A.value,"onUpdate:modelValue":a[1]||=e=>A.value=e,options:at.value,label:d(s)(`pages.publicProjects.sourceProjectLabel`),placeholder:d(s)(`pages.publicProjects.chooseProject`),searchable:``,required:``,onChange:a[2]||=e=>j.value=``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),f(`label`,null,[e(c(d(s)(`pages.publicProjects.relation`))+` `,1),p(x,{modelValue:M.value,"onUpdate:modelValue":a[3]||=e=>M.value=e,options:W.value,label:d(s)(`pages.publicProjects.relationTypeLabel`)},null,8,[`modelValue`,`options`,`label`])]),f(`label`,null,[e(c(d(s)(`pages.publicProjects.targetProject`))+` `,1),p(x,{modelValue:j.value,"onUpdate:modelValue":a[4]||=e=>j.value=e,options:st.value,label:d(s)(`pages.publicProjects.targetProjectLabel`),placeholder:d(s)(`pages.publicProjects.chooseProject`),searchable:``,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),f(`div`,Ae,[f(`span`,null,c(d(s)(`pages.publicProjects.preview`)),1),f(`strong`,null,c(ct.value?.name||d(s)(`pages.publicProjects.sourceProject`))+` `+c(ut.value)+` `+c(lt.value?.name||d(s)(`pages.publicProjects.targetProject`)),1),M.value===`PART_OF`?(r(),m(`p`,je,c(d(s)(`pages.publicProjects.parentConfirmation`)),1)):(r(),m(`p`,Me,c(d(s)(`pages.publicProjects.relationBoundary`)),1))]),f(`button`,Ne,c(d(s)(`pages.publicProjects.addRelation`)),1)],32)):l(``,!0)]),f(`dialog`,{ref_key:`detailsDialogRef`,ref:ft,class:`project-dialog vue-dialog`,"aria-modal":`true`,"aria-labelledby":`public-project-details-title`,onCancel:a[6]||=(...e)=>d(G)&&d(G)(...e),onKeydown:a[7]||=(...e)=>d(K)&&d(K)(...e)},[T.value?(r(),m(`div`,Pe,[f(`header`,Fe,[f(`div`,null,[f(`h3`,Ie,c(T.value.name),1),f(`p`,null,c(Z(T.value)),1)]),f(`button`,{ref_key:`detailsInitialFocusRef`,ref:pt,class:`secondary-action`,type:`button`,onClick:Q},c(d(s)(`common.actions.close`)),513)]),dt.value?(r(),m(u,{key:0},[f(`section`,Le,[f(`h4`,null,c(d(s)(`pages.publicProjects.latestRelease`)),1),T.value.current_release?(r(),m(`p`,Re,[f(`strong`,null,c(T.value.current_release.version),1),e(` · `+c($(T.value.current_release.published_at)),1)])):(r(),m(`p`,ze,c(d(s)(`pages.publicProjects.noRelease`)),1))]),f(`div`,Be,[f(`section`,null,[f(`h4`,null,c(d(s)(`pages.publicProjects.releaseHistory`)),1),O.value?(r(),h(g,{key:0,variant:`compact`,label:d(s)(`pages.publicProjects.loading`)},null,8,[`label`])):l(``,!0),(r(!0),m(u,null,t(E.value,e=>(r(),m(`article`,{key:e.version,class:`project-release-item`},[f(`strong`,null,c(e.version),1),f(`p`,null,c(e.update_summary),1),f(`small`,null,c($(e.published_at)),1)]))),128)),!O.value&&!E.value.length?(r(),m(`p`,Ve,c(d(s)(`pages.publicProjects.noReleaseHistory`)),1)):l(``,!0)]),f(`section`,null,[f(`h4`,null,c(d(s)(`pages.publicProjects.relationsTitle`)),1),(r(!0),m(u,null,t(D.value,e=>(r(),m(`article`,{key:e.id,class:`project-detail-relation`},[f(`strong`,null,c(e.relation_type),1),f(`small`,null,c(e.status??`active`),1)]))),128)),!O.value&&!D.value.length?(r(),m(`p`,He,c(d(s)(`pages.publicProjects.noRelations`)),1)):l(``,!0)])])],64)):(r(),m(`section`,Ue,[f(`p`,We,c(d(s)(`pages.publicProjects.providerOperationsUnavailableTitle`)),1)])),f(`footer`,Ge,[f(`span`,null,c(d(s)(`pages.publicProjects.contentManagementSeparated`)),1),f(`button`,{class:`primary-action`,type:`button`,onClick:a[5]||=e=>vt(T.value)},c(d(s)(`pages.publicProjects.viewGraph`)),1)])])):l(``,!0)],544),f(`dialog`,{ref_key:`deletionDialogRef`,ref:mt,class:`project-dialog vue-dialog`,"aria-modal":`true`,"aria-labelledby":`public-project-deletion-title`,onCancel:a[9]||=(...e)=>d(q)&&d(q)(...e),onKeydown:a[10]||=(...e)=>d(J)&&d(J)(...e)},[N.value?(r(),m(`div`,Ke,[f(`header`,qe,[f(`div`,null,[f(`h3`,Je,c(d(s)(`pages.publicProjects.deleteTitle`)),1),f(`p`,null,c(d(s)(`pages.publicProjects.deleteCopy`)),1)]),f(`button`,{class:`secondary-action`,type:`button`,disabled:F.value,onClick:xt},c(d(s)(`common.actions.close`)),9,Ye)]),f(`label`,Xe,[e(c(d(s)(`pages.publicProjects.enterFullName`))+` `,1),f(`strong`,null,c(N.value.name),1),n(f(`input`,{ref_key:`deletionInitialFocusRef`,ref:ht,"onUpdate:modelValue":a[8]||=e=>P.value=e,autocomplete:`off`,disabled:F.value},null,8,Ze),[[ee,P.value]])]),I.value?(r(),m(`p`,Qe,c(I.value),1)):l(``,!0),f(`footer`,$e,[f(`span`,null,c(d(s)(`pages.publicProjects.deleteWarning`)),1),f(`button`,{class:`reject`,type:`button`,disabled:!U.value||F.value,onClick:St},[F.value?(r(),h(g,{key:0,variant:`inline`,label:d(s)(`pages.publicProjects.deleting`)},null,8,[`label`])):(r(),m(`span`,tt,c(d(s)(`pages.publicProjects.deletePermanently`)),1))],8,et)])])):l(``,!0)],544)]))}});export{w as default};
@@ -1 +1 @@
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,j as ee,nt as l,v as u,w as te,x as d,y as f,z as p}from"./i18n-BtOOoyJd.js";import{t as ne}from"./console--CZxc3PW.js";import{t as m}from"./GrowthLoading-Bu_kH-I8.js";import{i as h,n as g}from"./client-CEHkJJ-5.js";import{t as re}from"./SearchableSelect-BZtyYmZN.js";import{r as ie,t as _}from"./identity-CsowvtIm.js";import{u as v}from"./model-CGpllrds.js";var ae={class:`view`},oe={class:`section-title`},se={class:`review-list`,"data-review-queue":`personal`},ce={key:1,class:`review-error`,role:`alert`},le=[`disabled`],y={class:`review-stage`},ue={class:`review-meta`},de={class:`review-actions stacked-actions`},fe=[`disabled`,`onClick`],pe=[`disabled`,`onClick`],me=[`disabled`,`onClick`],he={key:2,class:`empty-state`},ge={key:0,class:`project-section`},_e={class:`section-toolbar`},ve={class:`review-list`,"data-review-queue":`shared`},b={key:1,class:`review-error`,role:`alert`},ye=[`disabled`],be={class:`review-stage`},xe={class:`review-meta`},Se={class:`review-actions`},Ce=[`disabled`,`onClick`],we=[`disabled`,`onClick`],Te={key:2,class:`empty-state`},x=n({__name:`ReviewPage`,setup(n){let x=ne(),S=r([]),C=r([]),w=r(``),T=r(!1),E=r(``),D=r(!1),O=r(``),k=r(new Set),A=r(new Set),j=0,M=null,N=0,P=null,F=i(()=>(x.state?.projects??[]).filter(e=>e.role===`maintainer`&&Oe(e))),Ee=i(()=>F.value.map(e=>({value:e.id,label:e.name,meta:`#`+_(e.id,26),search:ie(e.id)}))),I=i(()=>F.value.find(({id:e})=>e===w.value)??null),De=i(()=>{let e=I.value;return e?e.id+`\0`+e.providerUrl:``});function Oe(e){return L(x.state,e)}function L(e,t){if(e?.capabilities?.reviewProposals!==!0)return!1;let n=e.providers?.workspaces?.find(({providerUrl:e})=>e===t.providerUrl);if(!n||n.status!==`ready`)return!1;let r=n.capabilities;return!!(r&&typeof r==`object`&&r.reviewProposals===!0)}function R(e){return e?e.personalSpaces.find(({id:t})=>t===e.activePersonalSpaceId)?.id??e.personalSpaces[0]?.id??``:``}function z(e,t){let n=(e?.projects??[]).find(n=>n.id===t&&n.role===`maintainer`&&L(e,n));return n?n.id+`\0`+n.providerUrl:``}function B(e){return e instanceof Error&&e.message?e.message:a(`common.errors.loadFailed`)}function V(e){return!!(e&&typeof e==`object`&&`name`in e&&e.name===`AbortError`)}function H(e,t,n){let r=new Set(e.value);n?r.add(t):r.delete(t),e.value=r}function U(){j+=1,M?.abort(),M=null,S.value=[],E.value=``,T.value=!1}function W(){N+=1,P?.abort(),P=null,C.value=[],O.value=``,D.value=!1}function G(e,t){return t===j&&x.activePersonalSpace?.id===e}function K(e,t){let n=I.value;return t===N&&n?.id===e.id&&n.providerUrl===e.providerUrl}function q(e,t,n){return G(n,t)&&S.value.some(({id:t})=>t===e.id)}function J(e,t,n){return K(t,n)&&C.value.some(({id:t})=>t===e.id)}function Y(e,t){return e+`\0`+t}async function X(e=x.activePersonalSpace?.id){M?.abort();let t=++j,n=new AbortController;if(M=n,T.value=!0,E.value=``,!e){T.value=!1,M===n&&(M=null);return}try{let r=await g(`/api/personal-review?`+new URLSearchParams({personalSpaceId:e,status:`pending`}),{signal:n.signal});if(!G(e,t)||n.signal.aborted)return;S.value=r.drafts??[]}catch(r){if(!G(e,t)||n.signal.aborted||V(r))return;E.value=B(r)}finally{t===j&&M===n&&(T.value=!1,M=null)}}async function Z(){let e=I.value;if(!e)return;P?.abort();let t=++N,n=new AbortController;P=n,D.value=!0,O.value=``;try{let r=await g(`/api/review?`+new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl,status:`pending`}),{signal:n.signal});if(!K(e,t)||n.signal.aborted)return;C.value=r.proposals??[]}catch(r){if(!K(e,t)||n.signal.aborted||V(r))return;O.value=B(r)}finally{t===N&&P===n&&(D.value=!1,P=null)}}async function Q(e,t){let n=x.activePersonalSpace?.id,r=j;if(!(!n||T.value||E.value||!q(e,r,n))&&!k.value.has(e.id)){H(k,e.id,!0);try{if(T.value||E.value||!q(e,r,n)||(await h(`/api/personal-review/`+encodeURIComponent(e.id)+`/decision`,{decision:t}),!G(n,r)))return;await Promise.all([X(n),x.refresh()])}catch(e){G(n,r)&&!V(e)&&(E.value=B(e))}finally{H(k,e.id,!1)}}}async function $(e,t){let n=I.value,r=N;if(!n||D.value||O.value||!J(e,n,r))return;let i=Y(n.id,e.id);if(!A.value.has(i)){H(A,i,!0);try{if(D.value||O.value||!J(e,n,r)||(await h(`/api/review/`+encodeURIComponent(e.id)+`/decision`,{projectId:n.id,providerUrl:n.providerUrl,decision:t,note:null}),!K(n,r)))return;await Z()}catch(e){K(n,r)&&!V(e)&&(O.value=B(e))}finally{H(A,i,!1)}}}return p(()=>x.state,(e,t)=>{if(!e||!t)return;let n=R(t),r=R(e);r&&r===n&&X(r);let i=w.value,a=z(t,i),o=z(e,i);o&&o===a&&Z()},{flush:`sync`}),p(()=>x.activePersonalSpace?.id??``,e=>{U(),e&&X(e)},{immediate:!0,flush:`sync`}),p(F,e=>{e.some(({id:e})=>e===w.value)||(w.value=e[0]?.id??``)},{immediate:!0,flush:`sync`}),p(De,()=>{W(),I.value&&Z()},{immediate:!0,flush:`sync`}),ee(()=>{U(),W()}),(n,r)=>(t(),d(`section`,ae,[u(`div`,oe,[u(`h3`,null,o(l(a)(`pages.review.personalTitle`)),1),u(`p`,null,o(l(a)(`pages.review.personalCopy`)),1)]),u(`div`,se,[T.value?(t(),f(m,{key:0,variant:`compact`,label:l(a)(`pages.review.loadingPersonal`)},null,8,[`label`])):s(``,!0),E.value?(t(),d(`div`,ce,[u(`span`,null,o(E.value),1),u(`button`,{class:`secondary-action`,type:`button`,disabled:T.value,onClick:r[0]||=e=>X()},o(l(a)(`common.actions.retry`)),9,le)])):s(``,!0),(t(!0),d(c,null,e(S.value,e=>(t(),d(`article`,{key:e.id,class:`review-item review-item-detailed`},[u(`div`,null,[u(`div`,y,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`,ue,[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(v)(e.created_at)),1)])]),u(`div`,de,[k.value.has(e.id)?(t(),f(m,{key:0,variant:`inline`,label:l(a)(`pages.review.savingDecision`)},null,8,[`label`])):s(``,!0),u(`button`,{class:`secondary-action`,type:`button`,disabled:T.value||E.value!==``||k.value.has(e.id),onClick:t=>Q(e,`keep_personal`)},o(l(a)(`pages.review.keepPersonal`)),9,fe),u(`button`,{class:`reject`,type:`button`,disabled:T.value||E.value!==``||k.value.has(e.id),onClick:t=>Q(e,`ignore`)},o(l(a)(`pages.review.ignore`)),9,pe),l(x).state?.capabilities?.submitKnowledge?(t(),d(`button`,{key:1,class:`approve`,type:`button`,disabled:T.value||E.value!==``||k.value.has(e.id),onClick:t=>Q(e,`submit_public`)},o(l(a)(`pages.review.submitPublic`)),9,me)):s(``,!0)])]))),128)),!T.value&&!E.value&&!S.value.length?(t(),d(`div`,he,o(l(a)(`pages.review.noPersonalDrafts`)),1)):s(``,!0)]),l(x).state?.capabilities?.reviewProposals&&F.value.length?(t(),d(`section`,ge,[u(`div`,_e,[u(`div`,null,[u(`h3`,null,o(l(a)(`pages.review.publicTitle`)),1),u(`p`,null,o(l(a)(`pages.review.publicCopy`)),1)]),te(re,{modelValue:w.value,"onUpdate:modelValue":r[1]||=e=>w.value=e,options:Ee.value,label:l(a)(`pages.review.projectLabel`),"control-id":`review-project`,searchable:``},null,8,[`modelValue`,`options`,`label`])]),u(`div`,ve,[D.value?(t(),f(m,{key:0,variant:`compact`,label:l(a)(`pages.review.loadingPublic`)},null,8,[`label`])):s(``,!0),O.value?(t(),d(`div`,b,[u(`span`,null,o(O.value),1),u(`button`,{class:`secondary-action`,type:`button`,disabled:D.value,onClick:r[2]||=e=>Z()},o(l(a)(`common.actions.retry`)),9,ye)])):s(``,!0),(t(!0),d(c,null,e(C.value,e=>(t(),d(`article`,{key:e.id,class:`review-item`},[u(`div`,null,[u(`div`,be,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`,xe,[u(`span`,null,o(l(v)(e.created_at)),1)])]),u(`div`,Se,[A.value.has(Y(w.value,e.id))?(t(),f(m,{key:0,variant:`inline`,label:l(a)(`pages.review.savingDecision`)},null,8,[`label`])):s(``,!0),u(`button`,{class:`reject`,type:`button`,disabled:D.value||O.value!==``||A.value.has(Y(w.value,e.id)),onClick:t=>$(e,`reject`)},o(l(a)(`pages.review.reject`)),9,Ce),u(`button`,{class:`approve`,type:`button`,disabled:D.value||O.value!==``||A.value.has(Y(w.value,e.id)),onClick:t=>$(e,`approve`)},o(l(a)(`pages.review.approve`)),9,we)])]))),128)),!D.value&&!O.value&&!C.value.length?(t(),d(`div`,Te,o(l(a)(`pages.review.noProposals`)),1)):s(``,!0)])])):s(``,!0)]))}});export{x as default};
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,j as ee,nt as l,v as u,w as te,x as d,y as f,z as p}from"./i18n-75woNt31.js";import{t as ne}from"./console-hUns2aD-.js";import{t as m}from"./GrowthLoading-DFOy-mEl.js";import{i as h,n as g}from"./client-InXscj8J.js";import{t as re}from"./SearchableSelect-vaoSDq1g.js";import{r as ie,t as _}from"./identity-Wt2Xio_B.js";import{u as v}from"./model-C1GwBvd9.js";var ae={class:`view`},oe={class:`section-title`},se={class:`review-list`,"data-review-queue":`personal`},ce={key:1,class:`review-error`,role:`alert`},le=[`disabled`],y={class:`review-stage`},ue={class:`review-meta`},de={class:`review-actions stacked-actions`},fe=[`disabled`,`onClick`],pe=[`disabled`,`onClick`],me=[`disabled`,`onClick`],he={key:2,class:`empty-state`},ge={key:0,class:`project-section`},_e={class:`section-toolbar`},ve={class:`review-list`,"data-review-queue":`shared`},b={key:1,class:`review-error`,role:`alert`},ye=[`disabled`],be={class:`review-stage`},xe={class:`review-meta`},Se={class:`review-actions`},Ce=[`disabled`,`onClick`],we=[`disabled`,`onClick`],Te={key:2,class:`empty-state`},x=n({__name:`ReviewPage`,setup(n){let x=ne(),S=r([]),C=r([]),w=r(``),T=r(!1),E=r(``),D=r(!1),O=r(``),k=r(new Set),A=r(new Set),j=0,M=null,N=0,P=null,F=i(()=>(x.state?.projects??[]).filter(e=>e.role===`maintainer`&&Oe(e))),Ee=i(()=>F.value.map(e=>({value:e.id,label:e.name,meta:`#`+_(e.id,26),search:ie(e.id)}))),I=i(()=>F.value.find(({id:e})=>e===w.value)??null),De=i(()=>{let e=I.value;return e?e.id+`\0`+e.providerUrl:``});function Oe(e){return L(x.state,e)}function L(e,t){if(e?.capabilities?.reviewProposals!==!0)return!1;let n=e.providers?.workspaces?.find(({providerUrl:e})=>e===t.providerUrl);if(!n||n.status!==`ready`)return!1;let r=n.capabilities;return!!(r&&typeof r==`object`&&r.reviewProposals===!0)}function R(e){return e?e.personalSpaces.find(({id:t})=>t===e.activePersonalSpaceId)?.id??e.personalSpaces[0]?.id??``:``}function z(e,t){let n=(e?.projects??[]).find(n=>n.id===t&&n.role===`maintainer`&&L(e,n));return n?n.id+`\0`+n.providerUrl:``}function B(e){return e instanceof Error&&e.message?e.message:a(`common.errors.loadFailed`)}function V(e){return!!(e&&typeof e==`object`&&`name`in e&&e.name===`AbortError`)}function H(e,t,n){let r=new Set(e.value);n?r.add(t):r.delete(t),e.value=r}function U(){j+=1,M?.abort(),M=null,S.value=[],E.value=``,T.value=!1}function W(){N+=1,P?.abort(),P=null,C.value=[],O.value=``,D.value=!1}function G(e,t){return t===j&&x.activePersonalSpace?.id===e}function K(e,t){let n=I.value;return t===N&&n?.id===e.id&&n.providerUrl===e.providerUrl}function q(e,t,n){return G(n,t)&&S.value.some(({id:t})=>t===e.id)}function J(e,t,n){return K(t,n)&&C.value.some(({id:t})=>t===e.id)}function Y(e,t){return e+`\0`+t}async function X(e=x.activePersonalSpace?.id){M?.abort();let t=++j,n=new AbortController;if(M=n,T.value=!0,E.value=``,!e){T.value=!1,M===n&&(M=null);return}try{let r=await g(`/api/personal-review?`+new URLSearchParams({personalSpaceId:e,status:`pending`}),{signal:n.signal});if(!G(e,t)||n.signal.aborted)return;S.value=r.drafts??[]}catch(r){if(!G(e,t)||n.signal.aborted||V(r))return;E.value=B(r)}finally{t===j&&M===n&&(T.value=!1,M=null)}}async function Z(){let e=I.value;if(!e)return;P?.abort();let t=++N,n=new AbortController;P=n,D.value=!0,O.value=``;try{let r=await g(`/api/review?`+new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl,status:`pending`}),{signal:n.signal});if(!K(e,t)||n.signal.aborted)return;C.value=r.proposals??[]}catch(r){if(!K(e,t)||n.signal.aborted||V(r))return;O.value=B(r)}finally{t===N&&P===n&&(D.value=!1,P=null)}}async function Q(e,t){let n=x.activePersonalSpace?.id,r=j;if(!(!n||T.value||E.value||!q(e,r,n))&&!k.value.has(e.id)){H(k,e.id,!0);try{if(T.value||E.value||!q(e,r,n)||(await h(`/api/personal-review/`+encodeURIComponent(e.id)+`/decision`,{decision:t}),!G(n,r)))return;await Promise.all([X(n),x.refresh()])}catch(e){G(n,r)&&!V(e)&&(E.value=B(e))}finally{H(k,e.id,!1)}}}async function $(e,t){let n=I.value,r=N;if(!n||D.value||O.value||!J(e,n,r))return;let i=Y(n.id,e.id);if(!A.value.has(i)){H(A,i,!0);try{if(D.value||O.value||!J(e,n,r)||(await h(`/api/review/`+encodeURIComponent(e.id)+`/decision`,{projectId:n.id,providerUrl:n.providerUrl,decision:t,note:null}),!K(n,r)))return;await Z()}catch(e){K(n,r)&&!V(e)&&(O.value=B(e))}finally{H(A,i,!1)}}}return p(()=>x.state,(e,t)=>{if(!e||!t)return;let n=R(t),r=R(e);r&&r===n&&X(r);let i=w.value,a=z(t,i),o=z(e,i);o&&o===a&&Z()},{flush:`sync`}),p(()=>x.activePersonalSpace?.id??``,e=>{U(),e&&X(e)},{immediate:!0,flush:`sync`}),p(F,e=>{e.some(({id:e})=>e===w.value)||(w.value=e[0]?.id??``)},{immediate:!0,flush:`sync`}),p(De,()=>{W(),I.value&&Z()},{immediate:!0,flush:`sync`}),ee(()=>{U(),W()}),(n,r)=>(t(),d(`section`,ae,[u(`div`,oe,[u(`h3`,null,o(l(a)(`pages.review.personalTitle`)),1),u(`p`,null,o(l(a)(`pages.review.personalCopy`)),1)]),u(`div`,se,[T.value?(t(),f(m,{key:0,variant:`compact`,label:l(a)(`pages.review.loadingPersonal`)},null,8,[`label`])):s(``,!0),E.value?(t(),d(`div`,ce,[u(`span`,null,o(E.value),1),u(`button`,{class:`secondary-action`,type:`button`,disabled:T.value,onClick:r[0]||=e=>X()},o(l(a)(`common.actions.retry`)),9,le)])):s(``,!0),(t(!0),d(c,null,e(S.value,e=>(t(),d(`article`,{key:e.id,class:`review-item review-item-detailed`},[u(`div`,null,[u(`div`,y,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`,ue,[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(v)(e.created_at)),1)])]),u(`div`,de,[k.value.has(e.id)?(t(),f(m,{key:0,variant:`inline`,label:l(a)(`pages.review.savingDecision`)},null,8,[`label`])):s(``,!0),u(`button`,{class:`secondary-action`,type:`button`,disabled:T.value||E.value!==``||k.value.has(e.id),onClick:t=>Q(e,`keep_personal`)},o(l(a)(`pages.review.keepPersonal`)),9,fe),u(`button`,{class:`reject`,type:`button`,disabled:T.value||E.value!==``||k.value.has(e.id),onClick:t=>Q(e,`ignore`)},o(l(a)(`pages.review.ignore`)),9,pe),l(x).state?.capabilities?.submitKnowledge?(t(),d(`button`,{key:1,class:`approve`,type:`button`,disabled:T.value||E.value!==``||k.value.has(e.id),onClick:t=>Q(e,`submit_public`)},o(l(a)(`pages.review.submitPublic`)),9,me)):s(``,!0)])]))),128)),!T.value&&!E.value&&!S.value.length?(t(),d(`div`,he,o(l(a)(`pages.review.noPersonalDrafts`)),1)):s(``,!0)]),l(x).state?.capabilities?.reviewProposals&&F.value.length?(t(),d(`section`,ge,[u(`div`,_e,[u(`div`,null,[u(`h3`,null,o(l(a)(`pages.review.publicTitle`)),1),u(`p`,null,o(l(a)(`pages.review.publicCopy`)),1)]),te(re,{modelValue:w.value,"onUpdate:modelValue":r[1]||=e=>w.value=e,options:Ee.value,label:l(a)(`pages.review.projectLabel`),"control-id":`review-project`,searchable:``},null,8,[`modelValue`,`options`,`label`])]),u(`div`,ve,[D.value?(t(),f(m,{key:0,variant:`compact`,label:l(a)(`pages.review.loadingPublic`)},null,8,[`label`])):s(``,!0),O.value?(t(),d(`div`,b,[u(`span`,null,o(O.value),1),u(`button`,{class:`secondary-action`,type:`button`,disabled:D.value,onClick:r[2]||=e=>Z()},o(l(a)(`common.actions.retry`)),9,ye)])):s(``,!0),(t(!0),d(c,null,e(C.value,e=>(t(),d(`article`,{key:e.id,class:`review-item`},[u(`div`,null,[u(`div`,be,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`,xe,[u(`span`,null,o(l(v)(e.created_at)),1)])]),u(`div`,Se,[A.value.has(Y(w.value,e.id))?(t(),f(m,{key:0,variant:`inline`,label:l(a)(`pages.review.savingDecision`)},null,8,[`label`])):s(``,!0),u(`button`,{class:`reject`,type:`button`,disabled:D.value||O.value!==``||A.value.has(Y(w.value,e.id)),onClick:t=>$(e,`reject`)},o(l(a)(`pages.review.reject`)),9,Ce),u(`button`,{class:`approve`,type:`button`,disabled:D.value||O.value!==``||A.value.has(Y(w.value,e.id)),onClick:t=>$(e,`approve`)},o(l(a)(`pages.review.approve`)),9,we)])]))),128)),!D.value&&!O.value&&!C.value.length?(t(),d(`div`,Te,o(l(a)(`pages.review.noProposals`)),1)):s(``,!0)])])):s(``,!0)]))}});export{x as default};
@@ -1 +1 @@
1
- import{A as e,F as t,H as n,M as r,N as i,R as a,T as o,Z as s,_ as c,a as l,at as u,b as d,d as f,h as p,j as m,m as h,n as ee,nt as g,rt as _,v,x as y,z as b}from"./i18n-BtOOoyJd.js";var x=[`data-select-id`],S=[`value`,`name`,`required`,`disabled`],C=[`value`,`disabled`],w=[`aria-expanded`,`aria-controls`,`aria-label`,`disabled`],T={class:`searchable-select-current`},E={class:`searchable-select-current-label`},D={key:0,class:`searchable-select-current-meta`},O=[`hidden`],te={key:0,class:`searchable-select-search`},ne=[`placeholder`,`aria-label`],re=[`id`],ie=[`aria-selected`,`disabled`,`onClick`,`onKeydown`],ae={class:`searchable-select-option-copy`},oe={key:0},se={key:1,class:`searchable-select-empty`},k=o({__name:`SearchableSelect`,props:{modelValue:{},options:{},label:{},controlId:{default:void 0},placeholder:{default:void 0},searchPlaceholder:{default:void 0},searchable:{type:Boolean,default:void 0},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},name:{default:void 0}},emits:[`update:modelValue`,`change`],setup(o,{emit:k}){let A=o,j=k,M=s(null),N=s(null),P=s(null),F=s(null),I=s(!1),L=s(!1),R=s(``),z=a().replace(/[^A-Za-z0-9_-]/g,``),B=c(()=>A.label),V=c(()=>A.placeholder??l(`common.searchableSelect.placeholder`)),H=c(()=>A.searchPlaceholder??l(`common.searchableSelect.searchPlaceholder`)),U=c(()=>`${A.controlId||`searchable-select-${z}`}-options`),W=c(()=>A.options.find(({value:e})=>e===A.modelValue)??null),G=c(()=>A.searchable??A.options.length>5),K=c(()=>{let e=ee(),t=R.value.trim().toLocaleLowerCase(e);return t?A.options.filter(n=>[n.label,n.value,n.meta,n.search].filter(Boolean).join(` `).toLocaleLowerCase(e).includes(t)):A.options});b(()=>A.disabled,e=>{e&&J()}),r(()=>{document.addEventListener(`pointerdown`,X)}),m(()=>{document.removeEventListener(`pointerdown`,X)});async function ce(){I.value?J():await q()}async function q(){A.disabled||(R.value=``,pe(),I.value=!0,await e(),G.value?P.value?.focus():fe()?.focus())}function J({restoreFocus:t=!1}={}){I.value=!1,L.value=!1,R.value=``,t&&e(()=>N.value?.focus())}function Y(e){A.disabled||e.disabled||(j(`update:modelValue`,e.value),j(`change`,e.value),J({restoreFocus:!0}))}function le(e){[`ArrowDown`,`Enter`,` `].includes(e.key)&&(e.preventDefault(),q())}function ue(e){if(e.key===`Escape`){e.preventDefault(),J({restoreFocus:!0});return}if(e.key===`ArrowDown`){e.preventDefault(),$()?.focus();return}e.key===`Enter`&&(e.preventDefault(),$()?.click())}function de(e,t){if(e.key===`Enter`||e.key===` `){e.preventDefault(),Y(t);return}if(e.key===`Escape`){e.preventDefault(),J({restoreFocus:!0});return}if(![`ArrowDown`,`ArrowUp`,`Home`,`End`].includes(e.key))return;e.preventDefault();let n=Q(),r=n.indexOf(e.currentTarget);n[e.key===`Home`?0:e.key===`End`?n.length-1:e.key===`ArrowDown`?Math.min(n.length-1,r+1):Math.max(0,r-1)]?.focus()}function X(e){I.value&&!M.value?.contains(e.target)&&J()}function Z(e){let t=e.relatedTarget;t&&M.value?.contains(t)||queueMicrotask(()=>{I.value&&!M.value?.contains(document.activeElement)&&J()})}function Q(){return[...F.value?.querySelectorAll(`.searchable-select-option:not(:disabled)`)??[]]}function $(){return Q()[0]??null}function fe(){return Q().find(e=>e.getAttribute(`aria-selected`)===`true`)??$()}function pe(){let e=N.value?.getBoundingClientRect();L.value=!!(e&&window.innerHeight-e.bottom<270&&e.top>270)}return(e,r)=>(i(),y(`div`,{ref_key:`root`,ref:M,class:_([`searchable-select`,{open:I.value,"open-up":L.value,disabled:o.disabled}]),"data-select-id":o.controlId,onFocusout:Z},[v(`select`,{class:`searchable-select-native`,value:o.modelValue,name:o.name,required:o.required,disabled:o.disabled,tabindex:`-1`,"aria-hidden":`true`},[(i(!0),y(p,null,t(o.options,e=>(i(),y(`option`,{key:e.value,value:e.value,disabled:e.disabled},u(e.label),9,C))),128))],8,S),v(`button`,{ref_key:`trigger`,ref:N,type:`button`,class:`searchable-select-trigger`,role:`combobox`,"aria-haspopup":`listbox`,"aria-expanded":I.value,"aria-controls":U.value,"aria-label":B.value,disabled:o.disabled,onPointerdown:r[0]||=h(()=>{},[`stop`]),onClick:h(ce,[`stop`]),onKeydown:le},[v(`span`,T,[v(`span`,E,u(W.value?.label||V.value),1),W.value?.meta?(i(),y(`small`,D,u(W.value.meta),1)):d(``,!0)]),r[3]||=v(`i`,{class:`searchable-select-arrow`,"aria-hidden":`true`},null,-1)],40,w),v(`div`,{class:`searchable-select-panel`,hidden:!I.value},[G.value?(i(),y(`div`,te,[n(v(`input`,{ref_key:`searchInput`,ref:P,"onUpdate:modelValue":r[1]||=e=>R.value=e,type:`search`,autocomplete:`off`,placeholder:H.value,"aria-label":g(l)(`common.searchableSelect.searchAria`,{label:B.value}),onKeydown:ue},null,40,ne),[[f,R.value]])])):d(``,!0),v(`div`,{id:U.value,ref_key:`optionsList`,ref:F,class:`searchable-select-options`,role:`listbox`},[(i(!0),y(p,null,t(K.value,e=>(i(),y(`button`,{key:e.value,type:`button`,class:`searchable-select-option`,role:`option`,"aria-selected":e.value===o.modelValue,disabled:e.disabled,onMousedown:r[2]||=h(()=>{},[`prevent`]),onClick:t=>Y(e),onKeydown:t=>de(t,e)},[v(`span`,ae,[v(`strong`,null,u(e.label),1),e.meta?(i(),y(`small`,oe,u(e.meta),1)):d(``,!0)]),r[4]||=v(`i`,{class:`searchable-select-check`,"aria-hidden":`true`},null,-1)],40,ie))),128))],8,re),K.value.length===0?(i(),y(`p`,se,u(g(l)(`common.searchableSelect.noMatches`)),1)):d(``,!0)],8,O)],42,x))}});export{k as t};
1
+ import{A as e,F as t,H as n,M as r,N as i,R as a,T as o,Z as s,_ as c,a as l,at as u,b as d,d as f,h as p,j as m,m as h,n as ee,nt as g,rt as _,v,x as y,z as b}from"./i18n-75woNt31.js";var x=[`data-select-id`],S=[`value`,`name`,`required`,`disabled`],C=[`value`,`disabled`],w=[`aria-expanded`,`aria-controls`,`aria-label`,`disabled`],T={class:`searchable-select-current`},E={class:`searchable-select-current-label`},D={key:0,class:`searchable-select-current-meta`},O=[`hidden`],te={key:0,class:`searchable-select-search`},ne=[`placeholder`,`aria-label`],re=[`id`],ie=[`aria-selected`,`disabled`,`onClick`,`onKeydown`],ae={class:`searchable-select-option-copy`},oe={key:0},se={key:1,class:`searchable-select-empty`},k=o({__name:`SearchableSelect`,props:{modelValue:{},options:{},label:{},controlId:{default:void 0},placeholder:{default:void 0},searchPlaceholder:{default:void 0},searchable:{type:Boolean,default:void 0},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},name:{default:void 0}},emits:[`update:modelValue`,`change`],setup(o,{emit:k}){let A=o,j=k,M=s(null),N=s(null),P=s(null),F=s(null),I=s(!1),L=s(!1),R=s(``),z=a().replace(/[^A-Za-z0-9_-]/g,``),B=c(()=>A.label),V=c(()=>A.placeholder??l(`common.searchableSelect.placeholder`)),H=c(()=>A.searchPlaceholder??l(`common.searchableSelect.searchPlaceholder`)),U=c(()=>`${A.controlId||`searchable-select-${z}`}-options`),W=c(()=>A.options.find(({value:e})=>e===A.modelValue)??null),G=c(()=>A.searchable??A.options.length>5),K=c(()=>{let e=ee(),t=R.value.trim().toLocaleLowerCase(e);return t?A.options.filter(n=>[n.label,n.value,n.meta,n.search].filter(Boolean).join(` `).toLocaleLowerCase(e).includes(t)):A.options});b(()=>A.disabled,e=>{e&&J()}),r(()=>{document.addEventListener(`pointerdown`,X)}),m(()=>{document.removeEventListener(`pointerdown`,X)});async function ce(){I.value?J():await q()}async function q(){A.disabled||(R.value=``,pe(),I.value=!0,await e(),G.value?P.value?.focus():fe()?.focus())}function J({restoreFocus:t=!1}={}){I.value=!1,L.value=!1,R.value=``,t&&e(()=>N.value?.focus())}function Y(e){A.disabled||e.disabled||(j(`update:modelValue`,e.value),j(`change`,e.value),J({restoreFocus:!0}))}function le(e){[`ArrowDown`,`Enter`,` `].includes(e.key)&&(e.preventDefault(),q())}function ue(e){if(e.key===`Escape`){e.preventDefault(),J({restoreFocus:!0});return}if(e.key===`ArrowDown`){e.preventDefault(),$()?.focus();return}e.key===`Enter`&&(e.preventDefault(),$()?.click())}function de(e,t){if(e.key===`Enter`||e.key===` `){e.preventDefault(),Y(t);return}if(e.key===`Escape`){e.preventDefault(),J({restoreFocus:!0});return}if(![`ArrowDown`,`ArrowUp`,`Home`,`End`].includes(e.key))return;e.preventDefault();let n=Q(),r=n.indexOf(e.currentTarget);n[e.key===`Home`?0:e.key===`End`?n.length-1:e.key===`ArrowDown`?Math.min(n.length-1,r+1):Math.max(0,r-1)]?.focus()}function X(e){I.value&&!M.value?.contains(e.target)&&J()}function Z(e){let t=e.relatedTarget;t&&M.value?.contains(t)||queueMicrotask(()=>{I.value&&!M.value?.contains(document.activeElement)&&J()})}function Q(){return[...F.value?.querySelectorAll(`.searchable-select-option:not(:disabled)`)??[]]}function $(){return Q()[0]??null}function fe(){return Q().find(e=>e.getAttribute(`aria-selected`)===`true`)??$()}function pe(){let e=N.value?.getBoundingClientRect();L.value=!!(e&&window.innerHeight-e.bottom<270&&e.top>270)}return(e,r)=>(i(),y(`div`,{ref_key:`root`,ref:M,class:_([`searchable-select`,{open:I.value,"open-up":L.value,disabled:o.disabled}]),"data-select-id":o.controlId,onFocusout:Z},[v(`select`,{class:`searchable-select-native`,value:o.modelValue,name:o.name,required:o.required,disabled:o.disabled,tabindex:`-1`,"aria-hidden":`true`},[(i(!0),y(p,null,t(o.options,e=>(i(),y(`option`,{key:e.value,value:e.value,disabled:e.disabled},u(e.label),9,C))),128))],8,S),v(`button`,{ref_key:`trigger`,ref:N,type:`button`,class:`searchable-select-trigger`,role:`combobox`,"aria-haspopup":`listbox`,"aria-expanded":I.value,"aria-controls":U.value,"aria-label":B.value,disabled:o.disabled,onPointerdown:r[0]||=h(()=>{},[`stop`]),onClick:h(ce,[`stop`]),onKeydown:le},[v(`span`,T,[v(`span`,E,u(W.value?.label||V.value),1),W.value?.meta?(i(),y(`small`,D,u(W.value.meta),1)):d(``,!0)]),r[3]||=v(`i`,{class:`searchable-select-arrow`,"aria-hidden":`true`},null,-1)],40,w),v(`div`,{class:`searchable-select-panel`,hidden:!I.value},[G.value?(i(),y(`div`,te,[n(v(`input`,{ref_key:`searchInput`,ref:P,"onUpdate:modelValue":r[1]||=e=>R.value=e,type:`search`,autocomplete:`off`,placeholder:H.value,"aria-label":g(l)(`common.searchableSelect.searchAria`,{label:B.value}),onKeydown:ue},null,40,ne),[[f,R.value]])])):d(``,!0),v(`div`,{id:U.value,ref_key:`optionsList`,ref:F,class:`searchable-select-options`,role:`listbox`},[(i(!0),y(p,null,t(K.value,e=>(i(),y(`button`,{key:e.value,type:`button`,class:`searchable-select-option`,role:`option`,"aria-selected":e.value===o.modelValue,disabled:e.disabled,onMousedown:r[2]||=h(()=>{},[`prevent`]),onClick:t=>Y(e),onKeydown:t=>de(t,e)},[v(`span`,ae,[v(`strong`,null,u(e.label),1),e.meta?(i(),y(`small`,oe,u(e.meta),1)):d(``,!0)]),r[4]||=v(`i`,{class:`searchable-select-check`,"aria-hidden":`true`},null,-1)],40,ie))),128))],8,re),K.value.length===0?(i(),y(`p`,se,u(g(l)(`common.searchableSelect.noMatches`)),1)):d(``,!0)],8,O)],42,x))}});export{k as t};
@@ -1 +1 @@
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,r as re,v as _,w as v,x as y,y as b,z as ie}from"./i18n-BtOOoyJd.js";import{t as ae}from"./console--CZxc3PW.js";import{t as x}from"./GrowthLoading-Bu_kH-I8.js";import{t as S}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{a as oe,n as C}from"./client-CEHkJJ-5.js";import{t as w}from"./SearchableSelect-BZtyYmZN.js";import{i as se,n as T,s as ce,t as E}from"./conversation-launcher-settings-Co1RlTFH.js";var le=[`aria-label`],ue={class:`settings-content`},de={key:1,class:`settings-top-status`,role:`status`},fe={key:0},pe={key:1},me={class:`settings-card resource-card`},he={class:`section-heading`},ge={key:0},_e=[`disabled`],ve={key:1,class:`settings-error`,role:`alert`},ye={class:`resource-totals`},D={class:`resource-breakdowns`},O={class:`resource-group`},k={class:`resource-group`},A={class:`resource-notes`},j={key:0},M={key:1},N=[`aria-busy`],P=[`disabled`],be={class:`settings-card ports-card`},xe={class:`section-heading`},Se={key:0,class:`restart-chip`},Ce={class:`port-section`},we={class:`port-grid`},Te=[`onUpdate:modelValue`],Ee={class:`port-section development-section`},De={id:`conversation-launchers`,class:`settings-card conversation-launcher-card`},Oe={class:`conversation-launcher-list`},ke={class:`conversation-launcher-heading`},Ae={class:`conversation-launcher-switch`},je=[`onUpdate:modelValue`],Me={key:0,class:`conversation-launcher-note`},Ne={key:1,class:`conversation-launcher-fields`},Pe=[`onUpdate:modelValue`],Fe={class:`conversation-launcher-template`},Ie=[`onUpdate:modelValue`],Le={class:`settings-card behavior-card`},Re={class:`setting-list`},ze={class:`setting-row`},Be=[`checked`],Ve={class:`setting-row`},He=[`checked`],Ue={class:`setting-row`},We={class:`setting-row select-row`},Ge={class:`setting-row select-row`},Ke={class:`setting-row select-row`},qe={key:0,class:`settings-error`,role:`alert`},Je={key:4,class:`settings-error`,role:`alert`},F=S(a({__name:`SettingsPage`,setup(a){let S=ae(),F=o(null),I=o(null),L=o(null),R=o(!0),z=s({get:()=>S.settingsSaving,set:e=>{S.settingsSaving=e}}),B=o(!1),V=o(``),H=o(``),U=o(!1),W=null,Ye=[`console`,`personalProvider`,`personalNeo4jHttp`,`personalNeo4jBolt`],G=s({get:()=>ne(),set:e=>m(e)}),K=[5,10,30,60],Xe=se,Ze=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})}))),$e=s(()=>[{value:`native`,label:c(`settings.behavior.runtimeModes.native`)},{value:`container`,label:c(`settings.behavior.runtimeModes.container`)}]),et=s(()=>[{value:`any`,label:c(`settings.conversationLaunchers.idFormats.any`)},{value:`uuid`,label:c(`settings.conversationLaunchers.idFormats.uuid`)}]),tt=s(()=>S.state?.capturePolicy?.enabled!==!1),nt=s(()=>S.state?.agentAccessPolicy?.enabled!==!1),rt=s(()=>Math.max(1,...L.value?.memory.components.map(({bytes:e})=>e)??[1])),it=s(()=>Math.max(1,...L.value?.disk.components.map(({bytes:e})=>e)??[1])),at=s(()=>I.value?.graphRuntimeMode===`container`&&Number.isFinite(L.value?.memory.hostTotalBytes)&&Number(L.value?.memory.hostTotalBytes)<=16*1024**3);r(async()=>{S.runtimeStatus===`idle`&&S.refresh(),await Promise.all([ot(),q()]),R.value=!1}),ee(Y),ie(()=>I.value?.resourceRefreshSeconds,()=>st());async function ot(){try{let e=await C(`/api/system/settings`);F.value=e,I.value={...structuredClone(e.configured),conversationLaunchers:E(e.configured.conversationLaunchers)},T(e.configured.conversationLaunchers),V.value=``}catch(e){V.value=e instanceof Error?e.message:c(`settings.loadError`)}}async function q(){if(!(B.value||document.visibilityState===`hidden`)){B.value=!0;try{L.value=await C(`/api/system/resources`),H.value=``}catch(e){H.value=e instanceof Error?e.message:c(`settings.resources.unavailable`)}finally{B.value=!1}}}async function J(){if(!(!I.value||z.value)){z.value=!0,U.value=!1;try{let e=await oe(`/api/system/settings`,I.value);F.value=e,I.value={...structuredClone(e.configured),conversationLaunchers:E(e.configured.conversationLaunchers)},T(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 st(){Y();let e=I.value?.resourceRefreshSeconds;e&&(W=setInterval(()=>void q(),e*1e3))}function Y(){W&&clearInterval(W),W=null}function ct(e){S.updateCapturePolicy(e.currentTarget.checked)}function lt(e){S.updateAgentAccessPolicy(e.currentTarget.checked)}function ut(e){(e===`zh-CN`||e===`en-US`)&&m(e)}function dt(e){let t=K.find(t=>String(t)===e);t===void 0||!I.value||(I.value.resourceRefreshSeconds=t)}function ft(e){!I.value||e!==`native`&&e!==`container`||(I.value.graphRuntimeMode=e)}function pt(e){let t=c(`settings.conversationLaunchers.applications.${e}`);return t===`settings.conversationLaunchers.applications.${e}`?ce(e):t}function mt(e){return F.value?.active.ports[e]??`—`}function X(e){let t=`settings.resources.components.${e.id.replace(/-([a-z])/g,(e,t)=>t.toUpperCase())}`;return re.global.te(t)?c(t):e.label}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`,ue,[z.value?(i(),b(x,{key:0,variant:`inline`,label:g(c)(`settings.saving`)},null,8,[`label`])):u(``,!0),U.value||F.value?.restartRequired?(i(),y(`div`,de,[U.value?(i(),y(`strong`,fe,l(g(c)(`settings.saved`)),1)):u(``,!0),F.value?.restartRequired?(i(),y(`span`,pe,l(g(c)(`settings.restartCopy`)),1)):u(``,!0)])):u(``,!0),_(`section`,me,[_(`header`,he,[_(`div`,null,[_(`h3`,null,l(g(c)(`settings.resources.title`)),1),L.value?(i(),y(`p`,ge,l(g(c)(`settings.resources.measuredAt`,{time:$(L.value.sampledAt)})),1)):u(``,!0)]),_(`button`,{class:`quiet-button`,type:`button`,disabled:B.value,onClick:q},l(g(c)(`common.actions.refresh`)),9,_e)]),B.value?(i(),b(x,{key:0,variant:L.value?`inline`:`compact`,label:g(c)(`settings.resources.loading`)},null,8,[`variant`,`label`])):u(``,!0),H.value?(i(),y(`p`,ve,l(H.value),1)):L.value?(i(),y(p,{key:2},[_(`div`,ye,[_(`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`,D,[_(`div`,O,[_(`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,rt.value)})},null,4)])]))),128))]),_(`div`,k,[_(`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,it.value)})},null,4)])]))),128))])]),_(`div`,A,[_(`span`,null,l(g(c)(`settings.resources.diskMeasuredAt`,{time:$(L.value.disk.measuredAt)})),1),L.value.status===`partial`?(i(),y(`span`,j,l(g(c)(`settings.resources.partial`)),1)):u(``,!0),L.value.disk.temporaryBytes?(i(),y(`span`,M,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)):u(``,!0)]),R.value&&!I.value?(i(),b(x,{key:2,variant:`compact`,label:g(c)(`settings.loading`)},null,8,[`label`])):u(``,!0),I.value?(i(),y(`form`,{key:3,id:`settings-form`,class:`settings-form`,"aria-busy":z.value,onSubmit:te(J,[`prevent`])},[_(`fieldset`,{class:`settings-fields`,disabled:z.value},[_(`section`,be,[_(`header`,xe,[_(`h3`,null,l(g(c)(`settings.ports.title`)),1),F.value?.restartRequired?(i(),y(`span`,Se,l(g(c)(`settings.restartRequired`)),1)):u(``,!0)]),_(`div`,Ce,[_(`h4`,null,l(g(c)(`settings.ports.personal`)),1),_(`div`,we,[(i(),y(p,null,t(Ye,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,Te),[[f,I.value.ports[e],void 0,{number:!0}]]),_(`small`,null,l(g(c)(`settings.ports.active`,{port:mt(e)})),1)])),64))])]),_(`div`,Ee,[_(`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`,De,[_(`h3`,null,l(g(c)(`settings.conversationLaunchers.title`)),1),_(`div`,Oe,[(i(!0),y(p,null,t(g(Xe),t=>(i(),y(`article`,{key:t,class:`conversation-launcher-row`},[_(`div`,ke,[_(`span`,null,[_(`strong`,null,l(pt(t)),1),_(`small`,null,l(g(c)(`settings.conversationLaunchers.sourceId`,{id:t})),1)]),_(`label`,Ae,[_(`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,je),[[d,I.value.conversationLaunchers[t].enabled]])])]),I.value.conversationLaunchers[t].enabled&&t===`codex`?(i(),y(`small`,Me,l(g(c)(`settings.conversationLaunchers.idFormatMeta`)),1)):u(``,!0),I.value.conversationLaunchers[t].enabled?(i(),y(`div`,Ne,[_(`label`,null,[_(`span`,null,l(g(c)(`settings.conversationLaunchers.idFormat`)),1),v(w,{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:et.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,Pe),[[f,I.value.conversationLaunchers[t].appName,void 0,{trim:!0}]])]),_(`label`,Fe,[_(`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,Ie),[[f,I.value.conversationLaunchers[t].urlTemplate,void 0,{trim:!0}]])])])):u(``,!0)]))),128))])]),_(`section`,Le,[_(`h3`,null,l(g(c)(`settings.behavior.title`)),1),_(`div`,Re,[_(`label`,ze,[_(`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:tt.value,onChange:ct},null,40,Be)]),_(`label`,Ve,[_(`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:nt.value,onChange:lt},null,40,He)]),_(`label`,Ue,[_(`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`,We,[_(`span`,null,[_(`strong`,null,l(g(c)(`settings.behavior.runtimeMode`)),1),_(`small`,null,l(at.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(w,{class:`settings-select`,"control-id":`settings-runtime-mode`,"model-value":I.value.graphRuntimeMode,options:$e.value,label:g(c)(`settings.behavior.runtimeMode`),"onUpdate:modelValue":ft},null,8,[`model-value`,`options`,`label`])]),_(`div`,Ge,[_(`span`,null,[_(`strong`,null,l(g(c)(`settings.behavior.language`)),1)]),v(w,{class:`settings-select`,"control-id":`settings-language`,"model-value":G.value,options:Ze.value,label:g(c)(`settings.behavior.language`),"onUpdate:modelValue":ut},null,8,[`model-value`,`options`,`label`])]),_(`div`,Ke,[_(`span`,null,[_(`strong`,null,l(g(c)(`settings.resources.refresh`)),1)]),v(w,{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":dt},null,8,[`model-value`,`options`,`label`])])])])],8,P),V.value?(i(),y(`p`,qe,l(V.value),1)):u(``,!0)],40,N)):R.value?u(``,!0):(i(),y(`p`,Je,l(V.value||g(c)(`settings.loadError`)),1))])],8,le))}}),[[`__scopeId`,`data-v-d1c1de43`]]);export{F as default};
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,r as re,v as _,w as v,x as y,y as b,z as ie}from"./i18n-75woNt31.js";import{t as ae}from"./console-hUns2aD-.js";import{t as x}from"./GrowthLoading-DFOy-mEl.js";import{t as S}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{a as oe,n as C}from"./client-InXscj8J.js";import{t as w}from"./SearchableSelect-vaoSDq1g.js";import{i as se,n as T,s as ce,t as E}from"./conversation-launcher-settings-DEtJ6pZg.js";var le=[`aria-label`],ue={class:`settings-content`},de={key:1,class:`settings-top-status`,role:`status`},fe={key:0},pe={key:1},me={class:`settings-card resource-card`},he={class:`section-heading`},ge={key:0},_e=[`disabled`],ve={key:1,class:`settings-error`,role:`alert`},ye={class:`resource-totals`},D={class:`resource-breakdowns`},O={class:`resource-group`},k={class:`resource-group`},A={class:`resource-notes`},j={key:0},M={key:1},N=[`aria-busy`],P=[`disabled`],be={class:`settings-card ports-card`},xe={class:`section-heading`},Se={key:0,class:`restart-chip`},Ce={class:`port-section`},we={class:`port-grid`},Te=[`onUpdate:modelValue`],Ee={class:`port-section development-section`},De={id:`conversation-launchers`,class:`settings-card conversation-launcher-card`},Oe={class:`conversation-launcher-list`},ke={class:`conversation-launcher-heading`},Ae={class:`conversation-launcher-switch`},je=[`onUpdate:modelValue`],Me={key:0,class:`conversation-launcher-note`},Ne={key:1,class:`conversation-launcher-fields`},Pe=[`onUpdate:modelValue`],Fe={class:`conversation-launcher-template`},Ie=[`onUpdate:modelValue`],Le={class:`settings-card behavior-card`},Re={class:`setting-list`},ze={class:`setting-row`},Be=[`checked`],Ve={class:`setting-row`},He=[`checked`],Ue={class:`setting-row`},We={class:`setting-row select-row`},Ge={class:`setting-row select-row`},Ke={class:`setting-row select-row`},qe={key:0,class:`settings-error`,role:`alert`},Je={key:4,class:`settings-error`,role:`alert`},F=S(a({__name:`SettingsPage`,setup(a){let S=ae(),F=o(null),I=o(null),L=o(null),R=o(!0),z=s({get:()=>S.settingsSaving,set:e=>{S.settingsSaving=e}}),B=o(!1),V=o(``),H=o(``),U=o(!1),W=null,Ye=[`console`,`personalProvider`,`personalNeo4jHttp`,`personalNeo4jBolt`],G=s({get:()=>ne(),set:e=>m(e)}),K=[5,10,30,60],Xe=se,Ze=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})}))),$e=s(()=>[{value:`native`,label:c(`settings.behavior.runtimeModes.native`)},{value:`container`,label:c(`settings.behavior.runtimeModes.container`)}]),et=s(()=>[{value:`any`,label:c(`settings.conversationLaunchers.idFormats.any`)},{value:`uuid`,label:c(`settings.conversationLaunchers.idFormats.uuid`)}]),tt=s(()=>S.state?.capturePolicy?.enabled!==!1),nt=s(()=>S.state?.agentAccessPolicy?.enabled!==!1),rt=s(()=>Math.max(1,...L.value?.memory.components.map(({bytes:e})=>e)??[1])),it=s(()=>Math.max(1,...L.value?.disk.components.map(({bytes:e})=>e)??[1])),at=s(()=>I.value?.graphRuntimeMode===`container`&&Number.isFinite(L.value?.memory.hostTotalBytes)&&Number(L.value?.memory.hostTotalBytes)<=16*1024**3);r(async()=>{S.runtimeStatus===`idle`&&S.refresh(),await Promise.all([ot(),q()]),R.value=!1}),ee(Y),ie(()=>I.value?.resourceRefreshSeconds,()=>st());async function ot(){try{let e=await C(`/api/system/settings`);F.value=e,I.value={...structuredClone(e.configured),conversationLaunchers:E(e.configured.conversationLaunchers)},T(e.configured.conversationLaunchers),V.value=``}catch(e){V.value=e instanceof Error?e.message:c(`settings.loadError`)}}async function q(){if(!(B.value||document.visibilityState===`hidden`)){B.value=!0;try{L.value=await C(`/api/system/resources`),H.value=``}catch(e){H.value=e instanceof Error?e.message:c(`settings.resources.unavailable`)}finally{B.value=!1}}}async function J(){if(!(!I.value||z.value)){z.value=!0,U.value=!1;try{let e=await oe(`/api/system/settings`,I.value);F.value=e,I.value={...structuredClone(e.configured),conversationLaunchers:E(e.configured.conversationLaunchers)},T(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 st(){Y();let e=I.value?.resourceRefreshSeconds;e&&(W=setInterval(()=>void q(),e*1e3))}function Y(){W&&clearInterval(W),W=null}function ct(e){S.updateCapturePolicy(e.currentTarget.checked)}function lt(e){S.updateAgentAccessPolicy(e.currentTarget.checked)}function ut(e){(e===`zh-CN`||e===`en-US`)&&m(e)}function dt(e){let t=K.find(t=>String(t)===e);t===void 0||!I.value||(I.value.resourceRefreshSeconds=t)}function ft(e){!I.value||e!==`native`&&e!==`container`||(I.value.graphRuntimeMode=e)}function pt(e){let t=c(`settings.conversationLaunchers.applications.${e}`);return t===`settings.conversationLaunchers.applications.${e}`?ce(e):t}function mt(e){return F.value?.active.ports[e]??`—`}function X(e){let t=`settings.resources.components.${e.id.replace(/-([a-z])/g,(e,t)=>t.toUpperCase())}`;return re.global.te(t)?c(t):e.label}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`,ue,[z.value?(i(),b(x,{key:0,variant:`inline`,label:g(c)(`settings.saving`)},null,8,[`label`])):u(``,!0),U.value||F.value?.restartRequired?(i(),y(`div`,de,[U.value?(i(),y(`strong`,fe,l(g(c)(`settings.saved`)),1)):u(``,!0),F.value?.restartRequired?(i(),y(`span`,pe,l(g(c)(`settings.restartCopy`)),1)):u(``,!0)])):u(``,!0),_(`section`,me,[_(`header`,he,[_(`div`,null,[_(`h3`,null,l(g(c)(`settings.resources.title`)),1),L.value?(i(),y(`p`,ge,l(g(c)(`settings.resources.measuredAt`,{time:$(L.value.sampledAt)})),1)):u(``,!0)]),_(`button`,{class:`quiet-button`,type:`button`,disabled:B.value,onClick:q},l(g(c)(`common.actions.refresh`)),9,_e)]),B.value?(i(),b(x,{key:0,variant:L.value?`inline`:`compact`,label:g(c)(`settings.resources.loading`)},null,8,[`variant`,`label`])):u(``,!0),H.value?(i(),y(`p`,ve,l(H.value),1)):L.value?(i(),y(p,{key:2},[_(`div`,ye,[_(`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`,D,[_(`div`,O,[_(`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,rt.value)})},null,4)])]))),128))]),_(`div`,k,[_(`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,it.value)})},null,4)])]))),128))])]),_(`div`,A,[_(`span`,null,l(g(c)(`settings.resources.diskMeasuredAt`,{time:$(L.value.disk.measuredAt)})),1),L.value.status===`partial`?(i(),y(`span`,j,l(g(c)(`settings.resources.partial`)),1)):u(``,!0),L.value.disk.temporaryBytes?(i(),y(`span`,M,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)):u(``,!0)]),R.value&&!I.value?(i(),b(x,{key:2,variant:`compact`,label:g(c)(`settings.loading`)},null,8,[`label`])):u(``,!0),I.value?(i(),y(`form`,{key:3,id:`settings-form`,class:`settings-form`,"aria-busy":z.value,onSubmit:te(J,[`prevent`])},[_(`fieldset`,{class:`settings-fields`,disabled:z.value},[_(`section`,be,[_(`header`,xe,[_(`h3`,null,l(g(c)(`settings.ports.title`)),1),F.value?.restartRequired?(i(),y(`span`,Se,l(g(c)(`settings.restartRequired`)),1)):u(``,!0)]),_(`div`,Ce,[_(`h4`,null,l(g(c)(`settings.ports.personal`)),1),_(`div`,we,[(i(),y(p,null,t(Ye,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,Te),[[f,I.value.ports[e],void 0,{number:!0}]]),_(`small`,null,l(g(c)(`settings.ports.active`,{port:mt(e)})),1)])),64))])]),_(`div`,Ee,[_(`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`,De,[_(`h3`,null,l(g(c)(`settings.conversationLaunchers.title`)),1),_(`div`,Oe,[(i(!0),y(p,null,t(g(Xe),t=>(i(),y(`article`,{key:t,class:`conversation-launcher-row`},[_(`div`,ke,[_(`span`,null,[_(`strong`,null,l(pt(t)),1),_(`small`,null,l(g(c)(`settings.conversationLaunchers.sourceId`,{id:t})),1)]),_(`label`,Ae,[_(`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,je),[[d,I.value.conversationLaunchers[t].enabled]])])]),I.value.conversationLaunchers[t].enabled&&t===`codex`?(i(),y(`small`,Me,l(g(c)(`settings.conversationLaunchers.idFormatMeta`)),1)):u(``,!0),I.value.conversationLaunchers[t].enabled?(i(),y(`div`,Ne,[_(`label`,null,[_(`span`,null,l(g(c)(`settings.conversationLaunchers.idFormat`)),1),v(w,{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:et.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,Pe),[[f,I.value.conversationLaunchers[t].appName,void 0,{trim:!0}]])]),_(`label`,Fe,[_(`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,Ie),[[f,I.value.conversationLaunchers[t].urlTemplate,void 0,{trim:!0}]])])])):u(``,!0)]))),128))])]),_(`section`,Le,[_(`h3`,null,l(g(c)(`settings.behavior.title`)),1),_(`div`,Re,[_(`label`,ze,[_(`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:tt.value,onChange:ct},null,40,Be)]),_(`label`,Ve,[_(`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:nt.value,onChange:lt},null,40,He)]),_(`label`,Ue,[_(`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`,We,[_(`span`,null,[_(`strong`,null,l(g(c)(`settings.behavior.runtimeMode`)),1),_(`small`,null,l(at.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(w,{class:`settings-select`,"control-id":`settings-runtime-mode`,"model-value":I.value.graphRuntimeMode,options:$e.value,label:g(c)(`settings.behavior.runtimeMode`),"onUpdate:modelValue":ft},null,8,[`model-value`,`options`,`label`])]),_(`div`,Ge,[_(`span`,null,[_(`strong`,null,l(g(c)(`settings.behavior.language`)),1)]),v(w,{class:`settings-select`,"control-id":`settings-language`,"model-value":G.value,options:Ze.value,label:g(c)(`settings.behavior.language`),"onUpdate:modelValue":ut},null,8,[`model-value`,`options`,`label`])]),_(`div`,Ke,[_(`span`,null,[_(`strong`,null,l(g(c)(`settings.resources.refresh`)),1)]),v(w,{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":dt},null,8,[`model-value`,`options`,`label`])])])])],8,P),V.value?(i(),y(`p`,qe,l(V.value),1)):u(``,!0)],40,N)):R.value?u(``,!0):(i(),y(`p`,Je,l(V.value||g(c)(`settings.loadError`)),1))])],8,le))}}),[[`__scopeId`,`data-v-d1c1de43`]]);export{F as default};
@@ -1 +1 @@
1
- import{N as e,T as t,Z as n,_ as r,a as i,at as a,b as o,h as s,nt as c,v as l,x as u,y as d,z as f}from"./i18n-BtOOoyJd.js";import{t as p}from"./GrowthLoading-Bu_kH-I8.js";import{t as m}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{m as h}from"./useApi-CROJJdhE-raNlHRDl.js";import{i as g,n as _,t as v}from"./shared-report-BFUJqqQe.js";var y={class:`shared-jefa-report`},b={key:1,class:`report-state`,role:`alert`},x={key:0,class:`report-warning`},S={key:1,class:`report-state`,role:`status`},C=m(t({__name:`SharedJefaReportPage`,setup(t){let m=h(),C=n([]),w=n([]),T=n(!1),E=n(0),D=n(``),O=r(()=>C.value.reduce((e,t)=>e+t.items.length,0)),k=r(()=>m.fullPath.includes(`#`)?m.fullPath.slice(m.fullPath.indexOf(`#`)):m.hash),A=0;f(k,()=>{j()},{immediate:!0});async function j(){let e=++A;C.value=[],D.value=``,E.value=0,T.value=!0;try{let t=_(k.value),n=await Promise.allSettled(t.map(v));if(e!==A)return;C.value=n.flatMap(e=>e.status===`fulfilled`?[e.value]:[]),w.value=C.value.map(e=>e.project.id),E.value=n.filter(e=>e.status===`rejected`).length,C.value.length||(D.value=i(`employees.share.unavailable`))}catch{e===A&&(D.value=i(`employees.share.unavailable`))}finally{e===A&&(T.value=!1)}}return(t,n)=>(e(),u(`main`,y,[l(`header`,null,[n[1]||=l(`strong`,null,`Jefa`,-1),l(`h1`,null,a(c(i)(`employees.share.title`)),1),l(`span`,null,a(c(i)(`employees.share.readOnly`)),1)]),T.value?(e(),d(p,{key:0,label:c(i)(`employees.loadingReport`)},null,8,[`label`])):D.value?(e(),u(`div`,b,[l(`p`,null,a(D.value),1),l(`button`,{type:`button`,onClick:j},a(c(i)(`employees.retry`)),1)])):(e(),u(s,{key:2},[E.value?(e(),u(`p`,x,a(c(i)(`employees.share.unavailableCount`,{count:E.value})),1)):o(``,!0),O.value?(e(),d(g,{key:2,"visible-project-ids":w.value,"onUpdate:visibleProjectIds":n[0]||=e=>w.value=e,boards:C.value.filter(e=>w.value.includes(e.project.id)),projects:C.value.map(e=>e.project),"failed-projects":0,"can-move-tasks":!1,"read-only":``,onRetry:j},null,8,[`visible-project-ids`,`boards`,`projects`])):(e(),u(`div`,S,[l(`h2`,null,a(c(i)(`employees.shareContent.emptyTitle`)),1),l(`p`,null,a(c(i)(`employees.shareContent.emptyReport`,{count:C.value.length})),1),l(`button`,{type:`button`,onClick:j},a(c(i)(`common.actions.refresh`)),1)]))],64))]))}}),[[`__scopeId`,`data-v-0c275c93`]]);export{C as default};
1
+ import{N as e,T as t,Z as n,_ as r,a as i,at as a,b as o,h as s,nt as c,v as l,x as u,y as d,z as f}from"./i18n-75woNt31.js";import{t as p}from"./GrowthLoading-DFOy-mEl.js";import{t as m}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{m as h}from"./useApi-CROJJdhE-QfNm4ADP.js";import{i as g,n as _,t as v}from"./shared-report-tRQV1iJl.js";var y={class:`shared-jefa-report`},b={key:1,class:`report-state`,role:`alert`},x={key:0,class:`report-warning`},S={key:1,class:`report-state`,role:`status`},C=m(t({__name:`SharedJefaReportPage`,setup(t){let m=h(),C=n([]),w=n([]),T=n(!1),E=n(0),D=n(``),O=r(()=>C.value.reduce((e,t)=>e+t.items.length,0)),k=r(()=>m.fullPath.includes(`#`)?m.fullPath.slice(m.fullPath.indexOf(`#`)):m.hash),A=0;f(k,()=>{j()},{immediate:!0});async function j(){let e=++A;C.value=[],D.value=``,E.value=0,T.value=!0;try{let t=_(k.value),n=await Promise.allSettled(t.map(v));if(e!==A)return;C.value=n.flatMap(e=>e.status===`fulfilled`?[e.value]:[]),w.value=C.value.map(e=>e.project.id),E.value=n.filter(e=>e.status===`rejected`).length,C.value.length||(D.value=i(`employees.share.unavailable`))}catch{e===A&&(D.value=i(`employees.share.unavailable`))}finally{e===A&&(T.value=!1)}}return(t,n)=>(e(),u(`main`,y,[l(`header`,null,[n[1]||=l(`strong`,null,`Jefa`,-1),l(`h1`,null,a(c(i)(`employees.share.title`)),1),l(`span`,null,a(c(i)(`employees.share.readOnly`)),1)]),T.value?(e(),d(p,{key:0,label:c(i)(`employees.loadingReport`)},null,8,[`label`])):D.value?(e(),u(`div`,b,[l(`p`,null,a(D.value),1),l(`button`,{type:`button`,onClick:j},a(c(i)(`employees.retry`)),1)])):(e(),u(s,{key:2},[E.value?(e(),u(`p`,x,a(c(i)(`employees.share.unavailableCount`,{count:E.value})),1)):o(``,!0),O.value?(e(),d(g,{key:2,"visible-project-ids":w.value,"onUpdate:visibleProjectIds":n[0]||=e=>w.value=e,boards:C.value.filter(e=>w.value.includes(e.project.id)),projects:C.value.map(e=>e.project),"failed-projects":0,"can-move-tasks":!1,"read-only":``,onRetry:j},null,8,[`visible-project-ids`,`boards`,`projects`])):(e(),u(`div`,S,[l(`h2`,null,a(c(i)(`employees.shareContent.emptyTitle`)),1),l(`p`,null,a(c(i)(`employees.shareContent.emptyReport`,{count:C.value.length})),1),l(`button`,{type:`button`,onClick:j},a(c(i)(`common.actions.refresh`)),1)]))],64))]))}}),[[`__scopeId`,`data-v-0c275c93`]]);export{C as default};
@@ -1 +1 @@
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,j as ee,nt as d,rt as f,v as p,w as m,x as h,y as g,z as te}from"./i18n-BtOOoyJd.js";import{t as ne}from"./console--CZxc3PW.js";import{t as _}from"./GrowthLoading-Bu_kH-I8.js";import{t as v}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as re}from"./vue-router-JFYBLXB1.js";import{n as ie}from"./client-CEHkJJ-5.js";import{i as y,n as b,t as x}from"./KnowledgeEditDialog-BTwXXRCD.js";import{u as S,x as ae}from"./model-CGpllrds.js";import{t as oe}from"./personal-profile-graph-BNTG4PSY.js";var se={class:`view writing-taste-view`},ce={key:2,class:`writing-taste-unavailable`},le=[`role`],ue={class:`writing-taste-hero__copy`},de={class:`writing-taste-status`},C={class:`writing-taste-hero__score`,"aria-hidden":`true`},w=[`aria-label`],T={"aria-hidden":`true`},E={class:`writing-taste-rules`},D={key:0,class:`writing-taste-rule-list`},O={class:`writing-taste-rule__status`},k={key:0,class:`conflict`},A={class:`writing-taste-rule__body`},j={key:0},M={key:1},N={key:0},P={key:0,class:`writing-taste-rule__actions`},F=[`onClick`],I=[`onClick`],L={key:1,class:`writing-taste-empty`},R={key:0,class:`writing-taste-agent-preview`},z={key:0},B=v(r({__name:`WritingTastePage`,setup(r){let v=ne(),B=a(null),V=a(null),H=a(!1),U=a(!1),W=a(null),G=a(null),K=a(!1),q=0,J=null,Y=y(o(()=>H.value&&!B.value)),X=o(()=>ae(V.value)),Z=o(()=>new Map(X.value.map(e=>[`${e.itemKind}:${e.id}`,e]))),fe=o(()=>B.value?.status===`active`?s(`writingTaste.page.activeTitle`):B.value?.status===`preview_ready`?s(`writingTaste.page.previewTitle`):s(`writingTaste.page.collectingTitle`)),pe=o(()=>B.value?.status===`active`?s(`writingTaste.page.activeCopy`):B.value?.status===`preview_ready`?s(`writingTaste.page.previewCopy`):s(`writingTaste.page.collectingCopy`));te(()=>v.activePersonalSpace?.id,e=>{B.value=null,V.value=null,W.value=null,G.value=null,K.value=!1,Q(e)},{immediate:!0,flush:`sync`});async function Q(e=v.activePersonalSpace?.id){let t=++q;if(J?.abort(),J=null,U.value=!1,!e){H.value=!1;return}let n=new AbortController;J=n,H.value=!0;try{let r=new URLSearchParams({personalSpaceId:e,limit:`500`}),[i,a]=await Promise.all([ie(`/api/writing-taste-profile?${r}`,{signal:n.signal}),oe(e,n.signal)]);if(t!==q)return;B.value=ye(i)?i:null,V.value=be(a)?a:null,ve()}catch{if(t!==q)return;B.value=null,V.value=null,U.value=!0}finally{t===q&&(H.value=!1,J=null)}}ee(()=>{q+=1,J?.abort()});function $(e){return Z.value.get(`${e.item_kind}:${e.item_id}`)??null}function me(e){W.value=$(e)}function he(e){G.value=$(e)}function ge(e){if(e.preference_scope!==`project`||!e.preference_project_id)return s(`writingTaste.page.globalScope`);let t=v.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 _e(e){return e.key===`conflicts`?s(`writingTaste.criteria.conflictsProgress`,{current:e.current}):s(`writingTaste.criteria.progress`,{current:e.current,target:e.target})}function ve(){W.value&&=Z.value.get(`${W.value.itemKind}:${W.value.id}`)??null,G.value&&=Z.value.get(`${G.value.itemKind}:${G.value.id}`)??null}function ye(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 be(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`,se,[m(d(re),{class:`writing-taste-back`,to:`/preferences`},{default:i(()=>[a[6]||=p(`span`,{"aria-hidden":`true`},`←`,-1),e(` `+c(d(s)(`writingTaste.page.back`)),1)]),_:1}),H.value&&!d(Y)?(n(),g(_,{key:0,variant:`inline`,label:d(s)(`writingTaste.page.loading`)},null,8,[`label`])):l(``,!0),d(Y)?(n(),g(_,{key:1,label:d(s)(`writingTaste.page.loading`)},null,8,[`label`])):B.value?(n(),h(u,{key:3},[p(`header`,{class:f([`writing-taste-hero`,`status-${B.value.status}`])},[p(`div`,ue,[p(`span`,de,[a[7]||=p(`i`,{"aria-hidden":`true`},null,-1),e(` `+c(d(s)(`writingTaste.status.${B.value.status}`)),1)]),p(`h2`,null,c(fe.value),1),p(`p`,null,c(pe.value),1)]),p(`div`,C,[p(`strong`,null,c(B.value.readiness.rule_count),1),p(`span`,null,`/ `+c(B.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(B.value.readiness.criteria,e=>(n(),h(`article`,{key:e.key,class:f({met:e.met})},[p(`span`,T,c(e.met?`✓`:`·`),1),p(`div`,null,[p(`strong`,null,c(d(s)(`writingTaste.criteria.${e.key}`)),1),p(`small`,null,c(_e(e)),1)])],2))),128))],8,w),p(`section`,E,[p(`header`,null,[p(`h2`,null,c(d(s)(`writingTaste.page.rulesTitle`)),1),p(`span`,null,c(B.value.rules.length),1)]),B.value.rules.length?(n(),h(`div`,D,[(n(!0),h(u,null,t(B.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`,O,[p(`span`,{class:f(e.evidence_status.replaceAll(` `,`-`).toLowerCase())},c(d(s)(`writingTaste.evidenceStatus.${e.evidence_status}`)),3),p(`span`,null,c(ge(e)),1),e.has_conflict?(n(),h(`span`,k,c(d(s)(`writingTaste.page.conflict`)),1)):l(``,!0)]),p(`div`,A,[p(`h3`,null,c(e.title),1),p(`p`,null,c(e.instruction),1),e.reason?(n(),h(`small`,j,c(e.reason),1)):l(``,!0),e.contexts.length?(n(),h(`small`,M,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`,N,c(d(s)(`writingTaste.page.updated`,{time:d(S)(e.updated_at)})),1)):l(``,!0)]),$(e)?(n(),h(`div`,P,[p(`button`,{class:`secondary-action`,type:`button`,onClick:t=>he(e)},c(d(s)(`writingTaste.page.edit`)),9,F),e.evidence_status===`Confirmed`?l(``,!0):(n(),h(`button`,{key:0,class:`primary-action`,type:`button`,onClick:t=>me(e)},c(d(s)(`writingTaste.page.confirm`)),9,I))])):l(``,!0)])],2))),128))])):(n(),h(`div`,L,c(d(s)(`writingTaste.page.rulesEmpty`)),1))]),B.value.ready&&B.value.agent_markdown?(n(),h(`section`,R,[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[1]||=e=>K.value=!K.value},c(K.value?d(s)(`writingTaste.page.hideAgentPreview`):d(s)(`writingTaste.page.showAgentPreview`)),1),K.value?(n(),h(`pre`,z,c(B.value.agent_markdown),1)):l(``,!0)])):l(``,!0)],64)):(n(),h(`div`,ce,[p(`p`,{role:U.value?`alert`:void 0},c(d(s)(U.value?`common.errors.loadFailed`:`writingTaste.page.profileUnavailable`)),9,le),d(v).activePersonalSpace?(n(),h(`button`,{key:0,type:`button`,class:`secondary-action`,onClick:a[0]||=e=>Q()},c(d(s)(`common.actions.retry`)),1)):l(``,!0)])),m(x,{item:G.value,"personal-space-id":d(v).activePersonalSpace?.id??``,"personal-project-id":null,projects:d(v).state?.personalProjects??[],"replacement-items":X.value,onClose:a[2]||=e=>G.value=null,onSaved:a[3]||=e=>Q()},null,8,[`item`,`personal-space-id`,`projects`,`replacement-items`]),m(b,{item:W.value,"personal-space-id":d(v).activePersonalSpace?.id??``,"personal-project-id":null,onClose:a[4]||=e=>W.value=null,onSaved:a[5]||=e=>Q()},null,8,[`item`,`personal-space-id`])]))}}),[[`__scopeId`,`data-v-4bfe6da0`]]);export{B as default};
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,j as ee,nt as d,rt as f,v as p,w as m,x as h,y as g,z as te}from"./i18n-75woNt31.js";import{t as ne}from"./console-hUns2aD-.js";import{t as _}from"./GrowthLoading-DFOy-mEl.js";import{t as v}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as re}from"./vue-router-COCNAJJn.js";import{n as ie}from"./client-InXscj8J.js";import{i as y,n as b,t as x}from"./KnowledgeEditDialog-DBsjlkDr.js";import{u as S,x as ae}from"./model-C1GwBvd9.js";import{t as oe}from"./personal-profile-graph-BdV_3I1u.js";var se={class:`view writing-taste-view`},ce={key:2,class:`writing-taste-unavailable`},le=[`role`],ue={class:`writing-taste-hero__copy`},de={class:`writing-taste-status`},C={class:`writing-taste-hero__score`,"aria-hidden":`true`},w=[`aria-label`],T={"aria-hidden":`true`},E={class:`writing-taste-rules`},D={key:0,class:`writing-taste-rule-list`},O={class:`writing-taste-rule__status`},k={key:0,class:`conflict`},A={class:`writing-taste-rule__body`},j={key:0},M={key:1},N={key:0},P={key:0,class:`writing-taste-rule__actions`},F=[`onClick`],I=[`onClick`],L={key:1,class:`writing-taste-empty`},R={key:0,class:`writing-taste-agent-preview`},z={key:0},B=v(r({__name:`WritingTastePage`,setup(r){let v=ne(),B=a(null),V=a(null),H=a(!1),U=a(!1),W=a(null),G=a(null),K=a(!1),q=0,J=null,Y=y(o(()=>H.value&&!B.value)),X=o(()=>ae(V.value)),Z=o(()=>new Map(X.value.map(e=>[`${e.itemKind}:${e.id}`,e]))),fe=o(()=>B.value?.status===`active`?s(`writingTaste.page.activeTitle`):B.value?.status===`preview_ready`?s(`writingTaste.page.previewTitle`):s(`writingTaste.page.collectingTitle`)),pe=o(()=>B.value?.status===`active`?s(`writingTaste.page.activeCopy`):B.value?.status===`preview_ready`?s(`writingTaste.page.previewCopy`):s(`writingTaste.page.collectingCopy`));te(()=>v.activePersonalSpace?.id,e=>{B.value=null,V.value=null,W.value=null,G.value=null,K.value=!1,Q(e)},{immediate:!0,flush:`sync`});async function Q(e=v.activePersonalSpace?.id){let t=++q;if(J?.abort(),J=null,U.value=!1,!e){H.value=!1;return}let n=new AbortController;J=n,H.value=!0;try{let r=new URLSearchParams({personalSpaceId:e,limit:`500`}),[i,a]=await Promise.all([ie(`/api/writing-taste-profile?${r}`,{signal:n.signal}),oe(e,n.signal)]);if(t!==q)return;B.value=ye(i)?i:null,V.value=be(a)?a:null,ve()}catch{if(t!==q)return;B.value=null,V.value=null,U.value=!0}finally{t===q&&(H.value=!1,J=null)}}ee(()=>{q+=1,J?.abort()});function $(e){return Z.value.get(`${e.item_kind}:${e.item_id}`)??null}function me(e){W.value=$(e)}function he(e){G.value=$(e)}function ge(e){if(e.preference_scope!==`project`||!e.preference_project_id)return s(`writingTaste.page.globalScope`);let t=v.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 _e(e){return e.key===`conflicts`?s(`writingTaste.criteria.conflictsProgress`,{current:e.current}):s(`writingTaste.criteria.progress`,{current:e.current,target:e.target})}function ve(){W.value&&=Z.value.get(`${W.value.itemKind}:${W.value.id}`)??null,G.value&&=Z.value.get(`${G.value.itemKind}:${G.value.id}`)??null}function ye(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 be(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`,se,[m(d(re),{class:`writing-taste-back`,to:`/preferences`},{default:i(()=>[a[6]||=p(`span`,{"aria-hidden":`true`},`←`,-1),e(` `+c(d(s)(`writingTaste.page.back`)),1)]),_:1}),H.value&&!d(Y)?(n(),g(_,{key:0,variant:`inline`,label:d(s)(`writingTaste.page.loading`)},null,8,[`label`])):l(``,!0),d(Y)?(n(),g(_,{key:1,label:d(s)(`writingTaste.page.loading`)},null,8,[`label`])):B.value?(n(),h(u,{key:3},[p(`header`,{class:f([`writing-taste-hero`,`status-${B.value.status}`])},[p(`div`,ue,[p(`span`,de,[a[7]||=p(`i`,{"aria-hidden":`true`},null,-1),e(` `+c(d(s)(`writingTaste.status.${B.value.status}`)),1)]),p(`h2`,null,c(fe.value),1),p(`p`,null,c(pe.value),1)]),p(`div`,C,[p(`strong`,null,c(B.value.readiness.rule_count),1),p(`span`,null,`/ `+c(B.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(B.value.readiness.criteria,e=>(n(),h(`article`,{key:e.key,class:f({met:e.met})},[p(`span`,T,c(e.met?`✓`:`·`),1),p(`div`,null,[p(`strong`,null,c(d(s)(`writingTaste.criteria.${e.key}`)),1),p(`small`,null,c(_e(e)),1)])],2))),128))],8,w),p(`section`,E,[p(`header`,null,[p(`h2`,null,c(d(s)(`writingTaste.page.rulesTitle`)),1),p(`span`,null,c(B.value.rules.length),1)]),B.value.rules.length?(n(),h(`div`,D,[(n(!0),h(u,null,t(B.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`,O,[p(`span`,{class:f(e.evidence_status.replaceAll(` `,`-`).toLowerCase())},c(d(s)(`writingTaste.evidenceStatus.${e.evidence_status}`)),3),p(`span`,null,c(ge(e)),1),e.has_conflict?(n(),h(`span`,k,c(d(s)(`writingTaste.page.conflict`)),1)):l(``,!0)]),p(`div`,A,[p(`h3`,null,c(e.title),1),p(`p`,null,c(e.instruction),1),e.reason?(n(),h(`small`,j,c(e.reason),1)):l(``,!0),e.contexts.length?(n(),h(`small`,M,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`,N,c(d(s)(`writingTaste.page.updated`,{time:d(S)(e.updated_at)})),1)):l(``,!0)]),$(e)?(n(),h(`div`,P,[p(`button`,{class:`secondary-action`,type:`button`,onClick:t=>he(e)},c(d(s)(`writingTaste.page.edit`)),9,F),e.evidence_status===`Confirmed`?l(``,!0):(n(),h(`button`,{key:0,class:`primary-action`,type:`button`,onClick:t=>me(e)},c(d(s)(`writingTaste.page.confirm`)),9,I))])):l(``,!0)])],2))),128))])):(n(),h(`div`,L,c(d(s)(`writingTaste.page.rulesEmpty`)),1))]),B.value.ready&&B.value.agent_markdown?(n(),h(`section`,R,[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[1]||=e=>K.value=!K.value},c(K.value?d(s)(`writingTaste.page.hideAgentPreview`):d(s)(`writingTaste.page.showAgentPreview`)),1),K.value?(n(),h(`pre`,z,c(B.value.agent_markdown),1)):l(``,!0)])):l(``,!0)],64)):(n(),h(`div`,ce,[p(`p`,{role:U.value?`alert`:void 0},c(d(s)(U.value?`common.errors.loadFailed`:`writingTaste.page.profileUnavailable`)),9,le),d(v).activePersonalSpace?(n(),h(`button`,{key:0,type:`button`,class:`secondary-action`,onClick:a[0]||=e=>Q()},c(d(s)(`common.actions.retry`)),1)):l(``,!0)])),m(x,{item:G.value,"personal-space-id":d(v).activePersonalSpace?.id??``,"personal-project-id":null,projects:d(v).state?.personalProjects??[],"replacement-items":X.value,onClose:a[2]||=e=>G.value=null,onSaved:a[3]||=e=>Q()},null,8,[`item`,`personal-space-id`,`projects`,`replacement-items`]),m(b,{item:W.value,"personal-space-id":d(v).activePersonalSpace?.id??``,"personal-project-id":null,onClose:a[4]||=e=>W.value=null,onSaved:a[5]||=e=>Q()},null,8,[`item`,`personal-space-id`])]))}}),[[`__scopeId`,`data-v-4bfe6da0`]]);export{B as default};
@@ -1 +1 @@
1
- import{Z as e,a as t,z as n}from"./i18n-BtOOoyJd.js";import{n as r}from"./client-CEHkJJ-5.js";import{t as i}from"./task-evidence-BUu7yYIn.js";function a(a){let o=e([]),s=e(!1),c=e(``),l=0;async function u(){let e=++l,n=a.value;if(o.value=[],c.value=``,!a.value){s.value=!1;return}s.value=!0;try{let t=await r(`/api/project-agents?${new URLSearchParams({personalSpaceId:n})}`);if(e!==l)return;o.value=i(t).filter(e=>!!(e&&typeof e==`object`&&`agentId`in e&&`profile`in e&&`personalSpaceId`in e&&e.personalSpaceId===n))}catch(n){e===l&&(c.value=n instanceof Error?n.message:t(`agentProfiles.loadError`))}finally{e===l&&(s.value=!1)}}return n(a,u,{immediate:!0}),{agents:o,loading:s,error:c,load:u}}export{a as t};
1
+ import{Z as e,a as t,z as n}from"./i18n-75woNt31.js";import{n as r}from"./client-InXscj8J.js";import{t as i}from"./task-evidence-BUu7yYIn.js";function a(a){let o=e([]),s=e(!1),c=e(``),l=0;async function u(){let e=++l,n=a.value;if(o.value=[],c.value=``,!a.value){s.value=!1;return}s.value=!0;try{let t=await r(`/api/project-agents?${new URLSearchParams({personalSpaceId:n})}`);if(e!==l)return;o.value=i(t).filter(e=>!!(e&&typeof e==`object`&&`agentId`in e&&`profile`in e&&`personalSpaceId`in e&&e.personalSpaceId===n))}catch(n){e===l&&(c.value=n instanceof Error?n.message:t(`agentProfiles.loadError`))}finally{e===l&&(s.value=!1)}}return n(a,u,{immediate:!0}),{agents:o,loading:s,error:c,load:u}}export{a as t};
@@ -1 +1 @@
1
- import{Z as e,a as t}from"./i18n-BtOOoyJd.js";import{n}from"./client-CEHkJJ-5.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;async function u(e){if(!e)return[];let t=await n(`/api/employee-templates?${new URLSearchParams({personalSpaceId:e})}`);return Array.isArray(t.templates)?t.templates:[]}function d(e){if(e===s&&c)return c;let t=++l;return e!==s&&(i.value=[]),s=e,o.value=``,e?(a.value=!0,c=u(e).then(e=>{t===l&&(i.value=e)}).catch(e=>{t===l&&(i.value=[],o.value=f(e))}).finally(()=>{t===l&&(a.value=!1,c=null)}),c):(i.value=[],a.value=!1,Promise.resolve())}function f(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`)}}export{i as a,r as i,a as n,u as o,f as r,d as s,o as t};
1
+ import{Z as e,a as t}from"./i18n-75woNt31.js";import{n}from"./client-InXscj8J.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;async function u(e){if(!e)return[];let t=await n(`/api/employee-templates?${new URLSearchParams({personalSpaceId:e})}`);return Array.isArray(t.templates)?t.templates:[]}function d(e){if(e===s&&c)return c;let t=++l;return e!==s&&(i.value=[]),s=e,o.value=``,e?(a.value=!0,c=u(e).then(e=>{t===l&&(i.value=e)}).catch(e=>{t===l&&(i.value=[],o.value=f(e))}).finally(()=>{t===l&&(a.value=!1,c=null)}),c):(i.value=[],a.value=!1,Promise.resolve())}function f(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`)}}export{i as a,r as i,a as n,u as o,f as r,d as s,o as t};
@@ -1 +1 @@
1
- import{a as e}from"./i18n-BtOOoyJd.js";var t=class extends Error{status;detail;constructor(e,t,n=``){super(e),this.name=`ApiError`,this.status=t,this.detail=n}};async function n(n,r){let i=await fetch(n,r);if(!i.ok){let n=(await i.text()).trim();throw new t(i.status>=500?e(`common.errors.serviceUnavailable`,{status:i.status}):n||e(`common.errors.requestFailed`,{status:i.status}),i.status,n)}return i.json()}function r(e,t){return n(e,t)}function i(e,t){return n(e,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}function a(e,t){return n(e,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}function o(e,t){return n(e,{method:`PATCH`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}function s(e){return n(e,{method:`DELETE`})}export{a,i,r as n,o as r,s as t};
1
+ import{a as e}from"./i18n-75woNt31.js";var t=class extends Error{status;detail;constructor(e,t,n=``){super(e),this.name=`ApiError`,this.status=t,this.detail=n}};async function n(n,r){let i=await fetch(n,r);if(!i.ok){let n=(await i.text()).trim();throw new t(i.status>=500?e(`common.errors.serviceUnavailable`,{status:i.status}):n||e(`common.errors.requestFailed`,{status:i.status}),i.status,n)}return i.json()}function r(e,t){return n(e,t)}function i(e,t){return n(e,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}function a(e,t){return n(e,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}function o(e,t){return n(e,{method:`PATCH`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}function s(e){return n(e,{method:`DELETE`})}export{a,i,r as n,o as r,s as t};
@@ -1 +1 @@
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-BtOOoyJd.js";import{n as _,r as v}from"./client-CEHkJJ-5.js";var y=typeof window<`u`,b,x=e=>b=e,S=Symbol();function C(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var w=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 T(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 E(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){j(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function D(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function O(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 k=typeof navigator==`object`?navigator:{userAgent:``},A=/Macintosh/.test(k.userAgent)&&/AppleWebKit/.test(k.userAgent)&&!/Safari/.test(k.userAgent),j=y?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!A?M:`msSaveOrOpenBlob`in k?N:P:()=>{};function M(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?O(r):D(r.href)?E(e,t,n):(r.target=`_blank`,O(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){O(r)},0))}function N(e,t=`download`,n){if(typeof e==`string`)if(D(e))E(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){O(t)})}else navigator.msSaveOrOpenBlob(T(e,n),t)}function P(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return E(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(w.HTMLElement))||`safari`in w,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||A)&&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:F}=Object;function I(){let e=s(!0),t=e.run(()=>u({})),n=[],r=[],i=m({install(e){x(i),i._a=e,e.provide(S,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 L=()=>{};function R(e,t,n,r=L){e.add(t);let a=()=>{e.delete(t)&&r()};return!n&&c()&&i(a),a}function z(e,...t){e.forEach(e=>{e(...t)})}var B=e=>e(),V=Symbol(),H=Symbol();function U(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];C(o)&&C(i)&&Object.hasOwn(e,n)&&!a(i)&&!r(i)?e[n]=U(o,i):e[n]=i}return e}var W=Symbol();function G(e){return!e||typeof e!=`object`||!Object.hasOwn(e,W)}var{assign:K}=Object;function q(e){return!!(a(e)&&e.effect)}function J(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():{}),K(h(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=m(d(()=>{x(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return c=Y(e,l,t,n,r,!0),c}function Y(e,n,i={},o,c,u){let d,f=K({actions:{}},i),m={deep:!0},h,_,v=new Set,y=new Set,b=o.state.value[e];!u&&!b&&(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}):(U(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,z(v,r,o.state.value[e])}let w=u?function(){let{state:e}=i,t=e?e():{};this.$patch(e=>{K(e,t)})}:L;function T(){d.stop(),v.clear(),y.clear(),o._s.delete(e)}let E=(t,n=``)=>{if(V in t)return t[H]=n,t;let r=function(){x(o);let n=Array.from(arguments),i=new Set,a=new Set;function s(e){i.add(e)}function c(e){a.add(e)}z(y,{args:n,name:r[H],store:D,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:D,n)}catch(e){throw z(a,e),e}return l instanceof Promise?l.then(e=>(z(i,e),e)).catch(e=>(z(a,e),Promise.reject(e))):(z(i,l),l)};return r[V]=!0,r[H]=n,r},D=l({_p:o,$id:e,$onAction:R.bind(null,y),$patch:C,$reset:w,$subscribe(t,n={}){if(v.has(t))return L;let r=R(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)},K({},m,n)));return r},$dispose:T});o._s.set(e,D);let O=(o._a&&o._a.runWithContext||B)(()=>o._e.run(()=>(d=s()).run(()=>n({action:E}))));for(let t in O){let n=O[t];a(n)&&!q(n)||r(n)?u||(b&&G(n)&&(a(n)?n.value=b[t]:U(n,b[t])),o.state.value[e][t]=n):typeof n==`function`&&(O[t]=E(n,t),f.actions[t]=n)}return K(D,O),K(p(D),O),Object.defineProperty(D,"$state",{get:()=>o.state.value[e],set:e=>{C(t=>{K(t,e)})}}),o._p.forEach(e=>{let t=d.run(()=>e({store:D,app:o._a,pinia:o,options:f}));K(D,t)}),b&&u&&i.hydrate&&i.hydrate(D.$state,b),h=!0,_=!0,D}function X(e,t,r){let i,a=typeof t==`function`;i=a?r:t;function s(r,s){let c=n();return r||=c?o(S,null):null,r&&x(r),r=b,r._s.has(e)||(a?Y(e,t,i,r):J(e,i,r)),r._s.get(e)}return s.$id=e,s}var Z=X(`console`,()=>{let t=e(null),n=u(`idle`),r=u(!1),i=u(null),a=d(()=>{let e=t.value;return e?e.personalSpaces.find(({id:t})=>t===e.activePersonalSpaceId)??e.personalSpaces[0]??null:null}),o=d(()=>t.value?.mode===`connected`?`ready`:t.value?.mode===`degraded`?`error`:`disconnected`);async function s(){n.value=`loading`;try{t.value=await _(`/api/state`),n.value=`ready`}catch(e){n.value=`error`,h(e)}}async function c(e){try{let n=await v(`/api/capture-policy`,{enabled:e});t.value&&={...t.value,capturePolicy:n},m(f(e?`console.captureNotices.enabled`:`console.captureNotices.disabled`))}catch(e){h(e)}}async function l(e){try{let n=await v(`/api/agent-access-policy`,{enabled:e});t.value&&={...t.value,agentAccessPolicy:n},m(f(e?`console.agentAccess.enabledNotice`:`console.agentAccess.disabledNotice`))}catch(e){h(e)}}function p(e){return t.value?.capabilities?.[e]===!0}function m(e){i.value={message:e,tone:`success`}}function h(e){i.value={message:e instanceof Error?e.message:f(`common.errors.operationFailed`),tone:`error`}}function g(){i.value=null}return{state:t,runtimeStatus:n,settingsSaving:r,feedback:i,activePersonalSpace:a,publicRuntimeStatus:o,refresh:s,updateCapturePolicy:c,updateAgentAccessPolicy:l,hasCapability:p,notify:m,reportError:h,clearFeedback:g}});export{I as n,X as r,Z as t};
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-75woNt31.js";import{n as _,r as v}from"./client-InXscj8J.js";var y=typeof window<`u`,b,x=e=>b=e,S=Symbol();function C(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var w=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 T(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 E(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){j(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function D(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function O(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 k=typeof navigator==`object`?navigator:{userAgent:``},A=/Macintosh/.test(k.userAgent)&&/AppleWebKit/.test(k.userAgent)&&!/Safari/.test(k.userAgent),j=y?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!A?M:`msSaveOrOpenBlob`in k?N:P:()=>{};function M(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?O(r):D(r.href)?E(e,t,n):(r.target=`_blank`,O(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){O(r)},0))}function N(e,t=`download`,n){if(typeof e==`string`)if(D(e))E(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){O(t)})}else navigator.msSaveOrOpenBlob(T(e,n),t)}function P(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return E(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(w.HTMLElement))||`safari`in w,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||A)&&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:F}=Object;function I(){let e=s(!0),t=e.run(()=>u({})),n=[],r=[],i=m({install(e){x(i),i._a=e,e.provide(S,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 L=()=>{};function R(e,t,n,r=L){e.add(t);let a=()=>{e.delete(t)&&r()};return!n&&c()&&i(a),a}function z(e,...t){e.forEach(e=>{e(...t)})}var B=e=>e(),V=Symbol(),H=Symbol();function U(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];C(o)&&C(i)&&Object.hasOwn(e,n)&&!a(i)&&!r(i)?e[n]=U(o,i):e[n]=i}return e}var W=Symbol();function G(e){return!e||typeof e!=`object`||!Object.hasOwn(e,W)}var{assign:K}=Object;function q(e){return!!(a(e)&&e.effect)}function J(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():{}),K(h(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=m(d(()=>{x(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return c=Y(e,l,t,n,r,!0),c}function Y(e,n,i={},o,c,u){let d,f=K({actions:{}},i),m={deep:!0},h,_,v=new Set,y=new Set,b=o.state.value[e];!u&&!b&&(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}):(U(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,z(v,r,o.state.value[e])}let w=u?function(){let{state:e}=i,t=e?e():{};this.$patch(e=>{K(e,t)})}:L;function T(){d.stop(),v.clear(),y.clear(),o._s.delete(e)}let E=(t,n=``)=>{if(V in t)return t[H]=n,t;let r=function(){x(o);let n=Array.from(arguments),i=new Set,a=new Set;function s(e){i.add(e)}function c(e){a.add(e)}z(y,{args:n,name:r[H],store:D,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:D,n)}catch(e){throw z(a,e),e}return l instanceof Promise?l.then(e=>(z(i,e),e)).catch(e=>(z(a,e),Promise.reject(e))):(z(i,l),l)};return r[V]=!0,r[H]=n,r},D=l({_p:o,$id:e,$onAction:R.bind(null,y),$patch:C,$reset:w,$subscribe(t,n={}){if(v.has(t))return L;let r=R(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)},K({},m,n)));return r},$dispose:T});o._s.set(e,D);let O=(o._a&&o._a.runWithContext||B)(()=>o._e.run(()=>(d=s()).run(()=>n({action:E}))));for(let t in O){let n=O[t];a(n)&&!q(n)||r(n)?u||(b&&G(n)&&(a(n)?n.value=b[t]:U(n,b[t])),o.state.value[e][t]=n):typeof n==`function`&&(O[t]=E(n,t),f.actions[t]=n)}return K(D,O),K(p(D),O),Object.defineProperty(D,"$state",{get:()=>o.state.value[e],set:e=>{C(t=>{K(t,e)})}}),o._p.forEach(e=>{let t=d.run(()=>e({store:D,app:o._a,pinia:o,options:f}));K(D,t)}),b&&u&&i.hydrate&&i.hydrate(D.$state,b),h=!0,_=!0,D}function X(e,t,r){let i,a=typeof t==`function`;i=a?r:t;function s(r,s){let c=n();return r||=c?o(S,null):null,r&&x(r),r=b,r._s.has(e)||(a?Y(e,t,i,r):J(e,i,r)),r._s.get(e)}return s.$id=e,s}var Z=X(`console`,()=>{let t=e(null),n=u(`idle`),r=u(!1),i=u(null),a=d(()=>{let e=t.value;return e?e.personalSpaces.find(({id:t})=>t===e.activePersonalSpaceId)??e.personalSpaces[0]??null:null}),o=d(()=>t.value?.mode===`connected`?`ready`:t.value?.mode===`degraded`?`error`:`disconnected`);async function s(){n.value=`loading`;try{t.value=await _(`/api/state`),n.value=`ready`}catch(e){n.value=`error`,h(e)}}async function c(e){try{let n=await v(`/api/capture-policy`,{enabled:e});t.value&&={...t.value,capturePolicy:n},m(f(e?`console.captureNotices.enabled`:`console.captureNotices.disabled`))}catch(e){h(e)}}async function l(e){try{let n=await v(`/api/agent-access-policy`,{enabled:e});t.value&&={...t.value,agentAccessPolicy:n},m(f(e?`console.agentAccess.enabledNotice`:`console.agentAccess.disabledNotice`))}catch(e){h(e)}}function p(e){return t.value?.capabilities?.[e]===!0}function m(e){i.value={message:e,tone:`success`}}function h(e){i.value={message:e instanceof Error?e.message:f(`common.errors.operationFailed`),tone:`error`}}function g(){i.value=null}return{state:t,runtimeStatus:n,settingsSaving:r,feedback:i,activePersonalSpace:a,publicRuntimeStatus:o,refresh:s,updateCapturePolicy:c,updateAgentAccessPolicy:l,hasCapability:p,notify:m,reportError:h,clearFeedback:g}});export{I as n,X as r,Z as t};
@@ -1 +1 @@
1
- import{$ as e,X as t,a as n}from"./i18n-BtOOoyJd.js";import{n as r}from"./client-CEHkJJ-5.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{g as a,h as c,i,p as l,S as n,d as o,x as r,f as s,w as t};
1
+ import{$ as e,X as t,a as n}from"./i18n-75woNt31.js";import{n as r}from"./client-InXscj8J.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{g as a,h as c,i,p as l,S as n,d as o,x as r,f as s,w as t};