fuli-context 0.5.0 → 0.7.2

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 (206) hide show
  1. package/README.en.md +2 -333
  2. package/README.md +370 -202
  3. package/README.zh-CN.md +448 -0
  4. package/compose.graphiti.yml +6 -6
  5. package/dist/web/assets/AboutPage-DXh7Fwxt.css +1 -0
  6. package/dist/web/assets/AboutPage-DfnZo7Lo.js +1 -0
  7. package/dist/web/assets/ConnectionsPage-BloaSKmt.js +1 -0
  8. package/dist/web/assets/ConnectionsPage-CBHAdZXT.css +1 -0
  9. package/dist/web/assets/KnowledgeInspector-Bjhdu2mf.css +1 -0
  10. package/dist/web/assets/KnowledgeInspector-QvNpv0_k.js +1 -0
  11. package/dist/web/assets/KnowledgeOrganizerPage-Cx1w1jb2.css +1 -0
  12. package/dist/web/assets/KnowledgeOrganizerPage-DKq1jVD5.js +1 -0
  13. package/dist/web/assets/KnowledgePage-BWL0jT01.js +1 -0
  14. package/dist/web/assets/KnowledgeWorkspace-Czq6aZ7b.js +4 -0
  15. package/dist/web/assets/OverviewPage-5sJoO1Gh.js +1 -0
  16. package/dist/web/assets/{PersonalProfilePage-S8ZcG2LU.css → PersonalProfilePage-CdmEzyvZ.css} +1 -1
  17. package/dist/web/assets/PersonalProfilePage-tVChM9ik.js +1 -0
  18. package/dist/web/assets/PersonalProjectsPage-BPFrup4V.js +1 -0
  19. package/dist/web/assets/PublicProjectsPage-BPJSeREN.js +1 -0
  20. package/dist/web/assets/ReviewPage-B7EN817i.js +1 -0
  21. package/dist/web/assets/SearchableSelect-ClLN0rIb.js +1 -0
  22. package/dist/web/assets/SettingsPage-C6ouU0sR.css +1 -0
  23. package/dist/web/assets/SettingsPage-Chd_B3eH.js +1 -0
  24. package/dist/web/assets/_plugin-vue_export-helper-BDNMzG2s.js +1 -0
  25. package/dist/web/assets/console-CbDsKrsO.js +1 -0
  26. package/dist/web/assets/fuli-logo-Bu9WBuQe.js +1 -0
  27. package/dist/web/assets/fuli-logo-ER1wQ8Kk.png +0 -0
  28. package/dist/web/assets/i18n-BQcns1PH.js +5 -0
  29. package/dist/web/assets/identity-B8K4VYg6.js +1 -0
  30. package/dist/web/assets/index-CB8Xmsc2.js +2 -0
  31. package/dist/web/assets/index-CZeuPh-U.css +1 -0
  32. package/dist/web/assets/model-eF52GgPF.js +1 -0
  33. package/dist/web/assets/paths-hwz-Ac1g.js +1 -0
  34. package/dist/web/assets/useMinimumLoadingDisplay-BpCyBeko.css +1 -0
  35. package/dist/web/assets/useMinimumLoadingDisplay-wCgGDmHg.js +1 -0
  36. package/dist/web/assets/vue-router-BsEp_XwI.js +1 -0
  37. package/dist/web/index.html +9 -6
  38. package/docs/external-knowledge-architecture.md +279 -0
  39. package/examples/external-knowledge/markdown-folder.mjs +235 -0
  40. package/graph-provider/fuli_graph/app.py +57 -1
  41. package/graph-provider/fuli_graph/graph_models.py +3 -0
  42. package/graph-provider/fuli_graph/graph_query.py +62 -16
  43. package/graph-provider/fuli_graph/knowledge_review.py +612 -0
  44. package/graph-provider/fuli_graph/knowledge_review_models.py +127 -0
  45. package/graph-provider/fuli_graph/knowledge_search.py +51 -4
  46. package/graph-provider/fuli_graph/models.py +19 -0
  47. package/graph-provider/fuli_graph/runtime.py +15 -0
  48. package/graph-provider/fuli_graph/store_knowledge.py +2 -1
  49. package/graph-provider/pyproject.toml +1 -1
  50. package/npm-shrinkwrap.json +5 -407
  51. package/package.json +7 -5
  52. package/skills/capturing-session-knowledge/SKILL.md +24 -4
  53. package/skills/flreview/SKILL.md +73 -0
  54. package/skills/flreview/agents/openai.yaml +6 -0
  55. package/src/agent-tools/graph-definitions.js +79 -4
  56. package/src/agent-tools/graph-handlers.js +12 -0
  57. package/src/cli/command-registry.js +3 -3
  58. package/src/cli/local-runtime-command.js +51 -28
  59. package/src/cli/local-runtime-options.js +14 -8
  60. package/src/cli/setup-agent-selection.js +12 -12
  61. package/src/cli/setup-command.js +41 -18
  62. package/src/cli/shell-argument.js +10 -0
  63. package/src/cli/uninstall-command.js +17 -15
  64. package/src/cli/update-command.js +38 -30
  65. package/src/external-knowledge/catalog.js +61 -0
  66. package/src/external-knowledge/conflict-policy.js +58 -0
  67. package/src/external-knowledge/connected-search.js +166 -0
  68. package/src/external-knowledge/connectors/custom.js +133 -0
  69. package/src/external-knowledge/connectors/feishu.js +461 -0
  70. package/src/external-knowledge/connectors/mcp.js +438 -0
  71. package/src/external-knowledge/connectors/notion.js +307 -0
  72. package/src/external-knowledge/connectors/retrieval-api.js +222 -0
  73. package/src/external-knowledge/document-mapping.js +151 -0
  74. package/src/external-knowledge/graph-projection.js +17 -0
  75. package/src/external-knowledge/index.js +8 -0
  76. package/src/external-knowledge/registry.js +91 -0
  77. package/src/external-knowledge/runtime.js +68 -0
  78. package/src/external-knowledge/safe-diagnostic.js +14 -0
  79. package/src/external-knowledge/service.js +811 -0
  80. package/src/graphiti/agent-knowledge-workflows.js +7 -2
  81. package/src/graphiti/federated-application.js +66 -41
  82. package/src/graphiti/knowledge-item-role.js +21 -0
  83. package/src/graphiti/knowledge-review.js +43 -0
  84. package/src/graphiti/project-profile-mapping.js +32 -0
  85. package/src/graphiti/provider-client.js +22 -1
  86. package/src/graphiti/source-marker.js +54 -3
  87. package/src/graphiti/task-knowledge-recall.js +250 -0
  88. package/src/http/api-router.js +23 -108
  89. package/src/http/external-knowledge-api-router.js +104 -0
  90. package/src/http/graph-api-router.js +12 -1
  91. package/src/http/request-policy.js +1 -1
  92. package/src/local-runtime/lifecycle.js +26 -15
  93. package/src/mcp/create-mcp-server.js +1 -0
  94. package/src/mcp/instructions.js +7 -7
  95. package/src/mcp/tool-annotations.js +6 -0
  96. package/src/mcp/tool-result.js +1 -0
  97. package/src/server/application-lifecycle.js +2 -11
  98. package/src/server/blocked-ports.js +11 -0
  99. package/src/server.js +36 -17
  100. package/src/setup/agent-installation-status.js +2 -1
  101. package/src/setup/agents.js +2 -1
  102. package/src/setup/claude-code-config.js +2 -1
  103. package/src/setup/codex-bootstrap.js +12 -7
  104. package/src/setup/container-runtime.js +25 -21
  105. package/src/setup/graph-runtime.js +148 -56
  106. package/src/setup/node-runtime.js +3 -3
  107. package/src/setup/options.js +2 -4
  108. package/src/setup/paths.js +18 -3
  109. package/src/setup/review-skill-adapters.js +49 -0
  110. package/src/setup/setup.js +26 -2
  111. package/src/setup/uninstall.js +4 -2
  112. package/src/system/resource-monitor.js +317 -0
  113. package/src/system/runtime-settings.js +131 -0
  114. package/src/system/system-service.js +119 -0
  115. package/dist/web/assets/ConnectionsPage-CCKWm-6p.js +0 -1
  116. package/dist/web/assets/KnowledgeInspector-BZkB2wJn.js +0 -1
  117. package/dist/web/assets/KnowledgeInspector-CrGYxEob.css +0 -1
  118. package/dist/web/assets/KnowledgeOrganizerPage-CZAF_OlN.css +0 -1
  119. package/dist/web/assets/KnowledgeOrganizerPage-DlvcLwlL.js +0 -1
  120. package/dist/web/assets/KnowledgePage-CNQXd15y.js +0 -1
  121. package/dist/web/assets/KnowledgeWorkspace-CXPE4GCD.js +0 -4
  122. package/dist/web/assets/OverviewPage-ul7g7HXh.js +0 -1
  123. package/dist/web/assets/PersonalProfilePage-CC40Pw2L.js +0 -1
  124. package/dist/web/assets/PersonalProjectsPage-CPIEcShD.js +0 -1
  125. package/dist/web/assets/PublicProjectsPage-C700sR7z.js +0 -1
  126. package/dist/web/assets/ReviewPage-7MDDUDgA.js +0 -1
  127. package/dist/web/assets/console-B_Ena2DS.js +0 -5
  128. package/dist/web/assets/fuli-logo-DGuyqchQ.png +0 -0
  129. package/dist/web/assets/identity-CjBwYSMX.js +0 -1
  130. package/dist/web/assets/index-CpLDx3of.css +0 -1
  131. package/dist/web/assets/index-DAzeFJSc.js +0 -2
  132. package/dist/web/assets/model-C-5RVIJ2.js +0 -1
  133. package/dist/web/assets/paths-BkULqmGI.js +0 -1
  134. package/dist/web/assets/vue-router-DnD3hUm7.js +0 -1
  135. package/src/agent/candidate-read-service.js +0 -53
  136. package/src/agent/context-pack-service.js +0 -83
  137. package/src/agent/public-read-policy.js +0 -39
  138. package/src/agent/public-read-service.js +0 -69
  139. package/src/agent/read-projection.js +0 -107
  140. package/src/agent/search-service.js +0 -61
  141. package/src/agent/space-boundary.js +0 -33
  142. package/src/app/bootstrap.js +0 -8
  143. package/src/app/create-application.js +0 -143
  144. package/src/app/state-service.js +0 -38
  145. package/src/candidates.js +0 -78
  146. package/src/classifier.js +0 -63
  147. package/src/cli/command-arguments.js +0 -14
  148. package/src/context-pack.js +0 -206
  149. package/src/extractor.js +0 -77
  150. package/src/fact-history.js +0 -39
  151. package/src/facts/fact-service.js +0 -89
  152. package/src/http/bounded-json-array.js +0 -19
  153. package/src/http/lens-route.js +0 -50
  154. package/src/ingestion.js +0 -161
  155. package/src/lens/lens-correction-service.js +0 -81
  156. package/src/lens/lens-fact-writer.js +0 -85
  157. package/src/lens/lens-input.js +0 -62
  158. package/src/lens/lens-query-projection.js +0 -87
  159. package/src/lens/lens-query-ranking.js +0 -62
  160. package/src/lens/lens-query.js +0 -143
  161. package/src/lens/lens-resource-projection.js +0 -93
  162. package/src/lens/lens-resource-selection.js +0 -45
  163. package/src/lens/lens-resource-service.js +0 -103
  164. package/src/lens/lens-search-query.js +0 -122
  165. package/src/lens/lens-service.js +0 -183
  166. package/src/models.js +0 -44
  167. package/src/observer.js +0 -83
  168. package/src/project-rules.js +0 -33
  169. package/src/publication/outbox-service.js +0 -46
  170. package/src/publication/publication-envelope-schema.js +0 -75
  171. package/src/publication/publication-envelope.js +0 -37
  172. package/src/publication/publication-policy.js +0 -82
  173. package/src/publication/publication-service.js +0 -48
  174. package/src/router.js +0 -58
  175. package/src/runtime-options.js +0 -138
  176. package/src/security/episode-visibility.js +0 -14
  177. package/src/security/fact-visibility.js +0 -15
  178. package/src/security/source-metadata-policy.js +0 -8
  179. package/src/storage/episode-evidence-preview.js +0 -100
  180. package/src/storage/fact-search-order.js +0 -18
  181. package/src/storage/file/episode-evidence.js +0 -37
  182. package/src/storage/file/episode-index.js +0 -59
  183. package/src/storage/file/fact-search.js +0 -60
  184. package/src/storage/file-store.js +0 -437
  185. package/src/storage/migrate.js +0 -128
  186. package/src/storage/migrations/001-initial.sql +0 -83
  187. package/src/storage/migrations/002-storage-integrity.sql +0 -113
  188. package/src/storage/record-validation.js +0 -46
  189. package/src/storage/snapshot-defaults.js +0 -54
  190. package/src/storage/sqlite/candidates-repository.js +0 -84
  191. package/src/storage/sqlite/episode-evidence-repository.js +0 -154
  192. package/src/storage/sqlite/episode-privacy-sql.js +0 -33
  193. package/src/storage/sqlite/episodes-repository.js +0 -52
  194. package/src/storage/sqlite/fact-search-repository.js +0 -162
  195. package/src/storage/sqlite/facts-repository.js +0 -146
  196. package/src/storage/sqlite/imports-repository.js +0 -39
  197. package/src/storage/sqlite/mapper.js +0 -84
  198. package/src/storage/sqlite/open-database.js +0 -15
  199. package/src/storage/sqlite/outbox-repository.js +0 -103
  200. package/src/storage/sqlite/snapshot-repository.js +0 -69
  201. package/src/storage/sqlite/spaces-repository.js +0 -52
  202. package/src/storage/sqlite/subscriptions-repository.js +0 -54
  203. package/src/storage/sqlite-store.js +0 -159
  204. package/src/storage/stable-json.js +0 -24
  205. package/src/storage/store-port.js +0 -20
  206. package/src/store.js +0 -2
@@ -1 +0,0 @@
1
- import{A as e,C as t,D as n,F as r,J as i,K as a,L as o,M as s,N as c,R as l,U as u,V as d,_ as f,b as p,c as m,d as h,j as g,q as _,v,w as y,x as b,y as x}from"./console-B_Ena2DS.js";var S=[`data-select-id`],C=[`value`,`name`,`required`,`disabled`],w=[`value`,`disabled`],ee=[`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`},te=[`hidden`],ne={key:0,class:`searchable-select-search`},re=[`placeholder`,`aria-label`],ie=[`id`],ae=[`aria-selected`,`disabled`,`onClick`],oe={class:`searchable-select-option-copy`},O={key:0},k={key:1,class:`searchable-select-empty`},A=n({__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(n,{emit:A}){let j=n,M=A,N=u(null),P=u(null),F=u(null),I=u(null),L=u(!1),R=u(!1),z=u(``),B=o().replace(/[^A-Za-z0-9_-]/g,``),V=p(()=>j.label),H=p(()=>j.placeholder??h(`common.searchableSelect.placeholder`)),U=p(()=>j.searchPlaceholder??h(`common.searchableSelect.searchPlaceholder`)),W=p(()=>`${j.controlId||`searchable-select-${B}`}-options`),G=p(()=>j.options.find(({value:e})=>e===j.modelValue)??null),K=p(()=>j.searchable??j.options.length>5),q=p(()=>{let e=m(),t=z.value.trim().toLocaleLowerCase(e);return t?j.options.filter(n=>[n.label,n.value,n.meta,n.search].filter(Boolean).join(` `).toLocaleLowerCase(e).includes(t)):j.options});l(()=>j.disabled,e=>{e&&Y()}),s(()=>{document.addEventListener(`pointerdown`,X)}),g(()=>{document.removeEventListener(`pointerdown`,X)});async function se(){L.value?Y():await J()}async function J(){j.disabled||(z.value=``,pe(),L.value=!0,await e(),K.value?F.value?.focus():fe()?.focus())}function Y({restoreFocus:t=!1}={}){L.value=!1,R.value=!1,z.value=``,t&&e(()=>P.value?.focus())}function ce(e){j.disabled||e.disabled||(M(`update:modelValue`,e.value),M(`change`,e.value),Y({restoreFocus:!0}))}function le(e){[`ArrowDown`,`Enter`,` `].includes(e.key)&&(e.preventDefault(),J())}function ue(e){if(e.key===`Escape`){e.preventDefault(),Y({restoreFocus:!0});return}if(e.key===`ArrowDown`){e.preventDefault(),$()?.focus();return}e.key===`Enter`&&(e.preventDefault(),$()?.click())}function de(e){if(e.key===`Escape`){e.preventDefault(),Y({restoreFocus:!0});return}if(![`ArrowDown`,`ArrowUp`,`Home`,`End`].includes(e.key))return;e.preventDefault();let t=Q(),n=t.indexOf(e.currentTarget);t[e.key===`Home`?0:e.key===`End`?t.length-1:e.key===`ArrowDown`?Math.min(t.length-1,n+1):Math.max(0,n-1)]?.focus()}function X(e){L.value&&!N.value?.contains(e.target)&&Y()}function Z(){queueMicrotask(()=>{L.value&&!N.value?.contains(document.activeElement)&&Y()})}function Q(){return[...I.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=P.value?.getBoundingClientRect();R.value=!!(e&&window.innerHeight-e.bottom<270&&e.top>270)}return(e,o)=>(c(),y(`div`,{ref_key:`root`,ref:N,class:_([`searchable-select`,{open:L.value,"open-up":R.value,disabled:n.disabled}]),"data-select-id":n.controlId,onFocusout:Z},[b(`select`,{class:`searchable-select-native`,value:n.modelValue,name:n.name,required:n.required,disabled:n.disabled,tabindex:`-1`,"aria-hidden":`true`},[(c(!0),y(x,null,r(n.options,e=>(c(),y(`option`,{key:e.value,value:e.value,disabled:e.disabled},i(e.label),9,w))),128))],8,C),b(`button`,{ref_key:`trigger`,ref:P,type:`button`,class:`searchable-select-trigger`,role:`combobox`,"aria-haspopup":`listbox`,"aria-expanded":L.value,"aria-controls":W.value,"aria-label":V.value,disabled:n.disabled,onClick:se,onKeydown:le},[b(`span`,T,[b(`span`,E,i(G.value?.label||H.value),1),G.value?.meta?(c(),y(`small`,D,i(G.value.meta),1)):t(``,!0)]),o[2]||=b(`i`,{class:`searchable-select-arrow`,"aria-hidden":`true`},null,-1)],40,ee),b(`div`,{class:`searchable-select-panel`,hidden:!L.value},[K.value?(c(),y(`div`,ne,[d(b(`input`,{ref_key:`searchInput`,ref:F,"onUpdate:modelValue":o[0]||=e=>z.value=e,type:`search`,autocomplete:`off`,placeholder:U.value,"aria-label":a(h)(`common.searchableSelect.searchAria`,{label:V.value}),onKeydown:ue},null,40,re),[[f,z.value]])])):t(``,!0),b(`div`,{id:W.value,ref_key:`optionsList`,ref:I,class:`searchable-select-options`,role:`listbox`},[(c(!0),y(x,null,r(q.value,e=>(c(),y(`button`,{key:e.value,type:`button`,class:`searchable-select-option`,role:`option`,"aria-selected":e.value===n.modelValue,disabled:e.disabled,onMousedown:o[1]||=v(()=>{},[`prevent`]),onClick:t=>ce(e),onKeydown:de},[b(`span`,oe,[b(`strong`,null,i(e.label),1),e.meta?(c(),y(`small`,O,i(e.meta),1)):t(``,!0)]),o[3]||=b(`i`,{class:`searchable-select-check`,"aria-hidden":`true`},null,-1)],40,ae))),128))],8,ie),q.value.length===0?(c(),y(`p`,k,i(a(h)(`common.searchableSelect.noMatches`)),1)):t(``,!0)],8,te)],42,S))}}),j=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function M(e,t=18){let n=String(e??``).trim();if(!n)return h(`common.status.notRecorded`);if(n.length<=t)return n;if(j.test(n))return n.slice(0,8);let r=Math.max(7,Math.ceil((t-1)*.58)),i=Math.max(4,t-r-1);return`${n.slice(0,r)}…${n.slice(-i)}`}function N(e){let t=String(e??``).trim();return`${t} ${M(t)}`}function P(e){let t=e?.attributes?.projectId;return M(t||e?.id,t?26:18)}export{A as i,P as n,N as r,M as t};
@@ -1 +0,0 @@
1
- :root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#202522;font-synthesis:none;background:#f4f5f3;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box;scrollbar-color:#b8c2bb transparent;scrollbar-width:thin}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-corner{background:0 0}::-webkit-scrollbar-thumb{background:#b8c2bb padding-box padding-box;border:1px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background-color:#98a69d}[hidden]{display:none!important}html,body{height:100%;overflow:hidden}body{min-width:1060px;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin:0}h1{letter-spacing:-.02em;font-size:18px}h2{letter-spacing:-.025em;font-size:25px}h3{font-size:15px}.app-shell{grid-template-columns:240px 1fr;height:100vh;display:grid;overflow:hidden}.sidebar{background:#eef0ed;border-right:1px solid #dce0db;flex-direction:column;height:100vh;padding:20px 14px 16px;display:flex;position:sticky;top:0}.brand-block{align-items:center;gap:11px;padding:0 8px 22px;display:flex}.brand-block p,.sidebar-foot small{color:#747d76;margin-top:2px;font-size:10px}.brand-mark{object-fit:contain;flex:none;width:38px;height:38px}.primary-nav{gap:3px;display:grid}.nav-section-label{color:#939a94;letter-spacing:.12em;text-transform:uppercase;margin:0 10px 5px;font-size:9px;font-weight:700}.nav-space-label,.nav-tool-label{margin-top:16px}.primary-nav button{color:#505852;text-align:left;background:0 0;border:0;border-radius:7px;grid-template-columns:24px 1fr auto;align-items:center;width:100%;padding:9px 10px;font-size:13px;display:grid;position:relative}.primary-nav button:hover{background:#e4e7e3}.primary-nav button:focus-visible{outline-offset:1px;outline:2px solid #91a398}.primary-nav button[aria-pressed=true]{color:#243b31;background:#dde4df;font-weight:650}.primary-nav .space-nav-button{min-height:52px;padding-block:8px}.primary-nav .personal-space-button[aria-pressed=true]{color:#254234;background:#dde7e1}.primary-nav .public-space-button[aria-pressed=true]{color:#2c414d;background:#e0e6e9}.nav-copy{gap:2px;display:grid}.nav-copy strong{font-size:13px;font-weight:650}.nav-copy small{color:#858d87;font-size:9px;font-weight:500}.primary-nav #review-count{color:#fff;text-align:center;background:#b94e45;border-radius:9px;min-width:20px;padding:1px 6px;font-size:10px}.nav-icon{width:17px;height:17px;-webkit-mask:var(--icon) center / contain no-repeat;-webkit-mask:var(--icon) center / contain no-repeat;mask:var(--icon) center / contain no-repeat;background:currentColor;display:inline-block}.nav-icon-overview{--icon:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3e%3cpath%20d='M512%2085.333333c235.648%200%20426.666667%20191.018667%20426.666667%20426.666667s-191.018667%20426.666667-426.666667%20426.666667S85.333333%20747.648%2085.333333%20512%20276.352%2085.333333%20512%2085.333333z%20m0%2085.333334a341.333333%20341.333333%200%201%200%200%20682.666666%20341.333333%20341.333333%200%200%200%200-682.666666z%20m0%2042.666666c43.434667%200%2084.693333%209.258667%20121.941333%2025.941334L567.253333%20305.92a213.333333%20213.333333%200%200%200-206.08%20356.949333L300.8%20723.2l-6.656-6.869333A298.666667%20298.666667%200%200%201%20512%20213.333333z%20m272.725333%20176.768c16.64%2037.205333%2025.941333%2078.506667%2025.941334%20121.898667a297.728%20297.728%200%200%201-87.466667%20211.2l-60.330667-60.330667a213.674667%20213.674667%200%200%200%2055.253334-206.08l66.602666-66.688z%20m-91.733333-119.466666l60.373333%2060.330666-158.933333%20158.976A85.461333%2085.461333%200%200%201%20512%20597.333333a85.333333%2085.333333%200%201%201%2022.058667-167.765333l158.976-158.933333z'/%3e%3c/svg%3e")}.nav-icon-personal-profile{--icon:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3e%3cpath%20d='M853.333333%200H170.666667C75.093333%200%200%2075.093333%200%20170.666667v682.666666c0%2095.573333%2075.093333%20170.666667%20170.666667%20170.666667h682.666666c95.573333%200%20170.666667-75.093333%20170.666667-170.666667V170.666667c0-95.573333-75.093333-170.666667-170.666667-170.666667z%20m102.4%20853.333333c0%2054.613333-47.786667%20102.4-102.4%20102.4H170.666667c-54.613333%200-102.4-47.786667-102.4-102.4V170.666667c0-54.613333%2047.786667-102.4%20102.4-102.4h682.666666c54.613333%200%20102.4%2047.786667%20102.4%20102.4v682.666666z%20m-238.933333-477.866666c0-116.053333-88.746667-204.8-204.8-204.8s-204.8%2088.746667-204.8%20204.8c0%2061.44%2027.306667%20116.053333%2068.266667%20157.013333-122.88%2040.96-204.8%20157.013333-204.8%20286.72%200%2020.48%2013.653333%2034.133333%2034.133333%2034.133333s34.133333-13.653333%2034.133333-34.133333c0-129.706667%20109.226667-238.933333%20238.933334-238.933333h34.133333c116.053333%200%20204.8-88.746667%20204.8-204.8z%20m-204.8%20136.533333c-75.093333%200-136.533333-61.44-136.533333-136.533333s61.44-136.533333%20136.533333-136.533334%20136.533333%2061.44%20136.533333%20136.533334-61.44%20136.533333-136.533333%20136.533333z%20m273.066667%20102.4h-204.8c-20.48%200-34.133333%2013.653333-34.133334%2034.133333s13.653333%2034.133333%2034.133334%2034.133334h204.8c20.48%200%2034.133333-13.653333%2034.133333-34.133334s-13.653333-34.133333-34.133333-34.133333z%20m0%20136.533333h-204.8c-20.48%200-34.133333%2013.653333-34.133334%2034.133334s13.653333%2034.133334%2034.133334%2034.133334h204.8c20.48%200%2034.133333-13.653333%2034.133333-34.133333s-13.653333-34.133333-34.133333-34.133334z'/%3e%3c/svg%3e")}.nav-icon-knowledge-organizer{--icon:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3e%3cpath%20d='M870%20719.5c-23.6%200-46%205.5-65.9%2015.3L689.6%20620.3c19.3-31.7%2030.4-69%2030.4-108.8s-11.1-77-30.4-108.8l113.8-113.8c20.1%2010%2042.7%2015.6%2066.6%2015.6%2082.7%200%20150-67.3%20150-150s-67.3-150-150-150-150%2067.3-150%20150c0%2022.4%204.9%2043.6%2013.7%2062.7L618.9%20332c-31.8-19.3-69.1-30.5-108.9-30.5-39.8%200-77%2011.1-108.8%2030.4L289.1%20219.7c9.6-19.7%2014.9-41.9%2014.9-65.2%200-82.7-67.3-150-150-150S4%2071.8%204%20154.5s67.3%20150%20150%20150c22.9%200%2044.6-5.2%2064-14.4l112.5%20112.5c-19.3%2031.8-30.5%2069.1-30.5%20108.9%200%2039.8%2011.2%2077.1%2030.5%20108.9L217.3%20733.5c-19.3-9-40.7-14-63.3-14-82.7%200-150%2067.3-150%20150s67.3%20150%20150%20150%20150-67.3%20150-150c0-23.6-5.5-46-15.3-65.9l112.5-112.5c31.7%2019.3%2069%2030.4%20108.8%2030.4s77.1-11.2%20108.9-30.5L734%20806.2c-9%2019.3-14%2040.7-14%2063.3%200%2082.7%2067.3%20150%20150%20150s150-67.3%20150-150-67.3-150-150-150zm0-615c27.6%200%2050%2022.4%2050%2050s-22.4%2050-50%2050-50-22.4-50-50%2022.4-50%2050-50zm-766%2050c0-27.6%2022.4-50%2050-50s50%2022.4%2050%2050-22.4%2050-50%2050-50-22.4-50-50zm50%20765c-27.6%200-50-22.4-50-50s22.4-50%2050-50%2050%2022.4%2050%2050-22.4%2050-50%2050zm246-408c0-60.7%2049.3-110%20110-110s110%2049.3%20110%20110-49.3%20110-110%20110-110-49.3-110-110zm470%20408c-27.6%200-50-22.4-50-50s22.4-50%2050-50%2050%2022.4%2050%2050-22.4%2050-50%2050z'/%3e%3c/svg%3e")}.nav-icon-personal-project{--icon:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3e%3cpath%20d='M800.2%20299.5H683.7l-7.8-32.1c-7.8-31.9-30.6-66.8-62.6-95.6-15.3-13.8-55.2-46-94.4-46h-293c-46.3%200-84%2042-84%2093.7v140.3h.2v456.4c0%2045.2%2036.7%2081.9%2081.9%2081.9h576.2c45.2%200%2081.9-36.7%2081.9-81.9V381.4c0-45.1-36.7-81.9-81.9-81.9zM211.9%20219.5c0-14.2%208.4-23.7%2014-23.7h293c5.4%200%2024.1%206.8%2047.5%2027.9%2021.2%2019.1%2037.1%2042.2%2041.5%2060.3l1.4%205.8H211.9v-70.3zm600.2%20596.8c0%206.4-5.4%2011.9-11.9%2011.9H224c-6.4%200-11.9-5.4-11.9-11.9V369.5h588.1c6.4%200%2011.9%205.4%2011.9%2011.9v434.9z'/%3e%3cpath%20d='M282.4%20486.3h70v70h-70zM282.4%20644.4h70v70h-70zM731.6%20486.3H442.1c-19.3%200-35%2015.7-35%2035s15.7%2035%2035%2035h289.5c19.3%200%2035-15.7%2035-35s-15.7-35-35-35zM731.6%20644.4H442.1c-19.3%200-35%2015.7-35%2035s15.7%2035%2035%2035h289.5c19.3%200%2035-15.7%2035-35s-15.7-35-35-35z'/%3e%3c/svg%3e")}.nav-icon-public-project{--icon:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3e%3cpath%20d='M494.677333%20114.368a42.666667%2042.666667%200%200%201%2034.645334%200l329.173333%20146.304a21.333333%2021.333333%200%200%201%202.304%2037.76l-61.333333%2036.821333a42.666667%2042.666667%200%200%201-21.952%206.08H246.485333a42.666667%2042.666667%200%200%201-21.952-6.08L163.2%20298.453333a21.333333%2021.333333%200%200%201%202.304-37.781333l329.173333-146.304zM320%20384a21.333333%2021.333333%200%200%201%2021.333333%2021.333333v234.666667h42.666667V405.333333a21.333333%2021.333333%200%200%201%2021.333333-21.333333h64a21.333333%2021.333333%200%200%201%2021.333334%2021.333333v234.666667h42.666666V405.333333a21.333333%2021.333333%200%200%201%2021.333334-21.333333h64a21.333333%2021.333333%200%200%201%2021.333333%2021.333333v234.666667h42.666667V405.333333a21.333333%2021.333333%200%200%201%2021.333333-21.333333h64a21.333333%2021.333333%200%200%201%2021.333333%2021.333333v234.666667l38.4%2051.2A21.333333%2021.333333%200%200%201%20810.666667%20725.333333H213.333333a21.333333%2021.333333%200%200%201-17.066666-34.133333L234.666667%20640V405.333333a21.333333%2021.333333%200%200%201%2021.333333-21.333333h64zM149.333333%20789.333333a21.333333%2021.333333%200%200%201%2021.333334-21.333333h682.666666a21.333333%2021.333333%200%200%201%2021.333334%2021.333333v64a21.333333%2021.333333%200%200%201-21.333334%2021.333334H170.666667a21.333333%2021.333333%200%200%201-21.333334-21.333334v-64z'/%3e%3c/svg%3e")}.nav-icon-knowledge-graph{--icon:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3e%3cpath%20d='M870%20719.5c-23.6%200-46%205.5-65.9%2015.3L689.6%20620.3c19.3-31.7%2030.4-69%2030.4-108.8s-11.1-77-30.4-108.8l113.8-113.8c20.1%2010%2042.7%2015.6%2066.6%2015.6%2082.7%200%20150-67.3%20150-150s-67.3-150-150-150-150%2067.3-150%20150c0%2022.4%204.9%2043.6%2013.7%2062.7L618.9%20332c-31.8-19.3-69.1-30.5-108.9-30.5-39.8%200-77%2011.1-108.8%2030.4L289.1%20219.7c9.6-19.7%2014.9-41.9%2014.9-65.2%200-82.7-67.3-150-150-150S4%2071.8%204%20154.5s67.3%20150%20150%20150c22.9%200%2044.6-5.2%2064-14.4l112.5%20112.5c-19.3%2031.8-30.5%2069.1-30.5%20108.9%200%2039.8%2011.2%2077.1%2030.5%20108.9L217.3%20733.5c-19.3-9-40.7-14-63.3-14-82.7%200-150%2067.3-150%20150s67.3%20150%20150%20150%20150-67.3%20150-150c0-23.6-5.5-46-15.3-65.9l112.5-112.5c31.7%2019.3%2069%2030.4%20108.8%2030.4s77.1-11.2%20108.9-30.5L734%20806.2c-9%2019.3-14%2040.7-14%2063.3%200%2082.7%2067.3%20150%20150%20150s150-67.3%20150-150-67.3-150-150-150zm0-615c27.6%200%2050%2022.4%2050%2050s-22.4%2050-50%2050-50-22.4-50-50%2022.4-50%2050-50zm-766%2050c0-27.6%2022.4-50%2050-50s50%2022.4%2050%2050-22.4%2050-50%2050-50-22.4-50-50zm50%20765c-27.6%200-50-22.4-50-50s22.4-50%2050-50%2050%2022.4%2050%2050-22.4%2050-50%2050zm246-408c0-60.7%2049.3-110%20110-110s110%2049.3%20110%20110-49.3%20110-110%20110-110-49.3-110-110zm470%20408c-27.6%200-50-22.4-50-50s22.4-50%2050-50%2050%2022.4%2050%2050-22.4%2050-50%2050z'/%3e%3c/svg%3e")}.nav-icon-review{--icon:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3e%3cpath%20d='M768%20992H256c-89.6%200-160-70.4-160-160V320L377.6%2032H768c89.6%200%20160%2070.4%20160%20160v640c0%2089.6-70.4%20160-160%20160zM160%20345.6V832c0%2051.2%2044.8%2096%2096%2096h512c51.2%200%2096-44.8%2096-96V192c0-51.2-44.8-96-96-96H403.2L160%20345.6z'/%3e%3cpath%20d='M300.8%20352H147.2v-64h153.6c32%200%2051.2-25.6%2051.2-51.2V64h64v172.8c0%2064-51.2%20115.2-115.2%20115.2zm134.4%20358.4c-6.4%200-19.2%200-25.6-6.4l-128-140.8c-12.8-12.8-12.8-32%200-44.8%2012.8-12.8%2032-12.8%2044.8%200l134.4%20134.4c12.8%2012.8%2012.8%2032%200%2044.8-6.4%206.4-12.8%2012.8-25.6%2012.8z'/%3e%3cpath%20d='M435.2%20710.4c-6.4%200-19.2%200-25.6-6.4-12.8-12.8-12.8-32%200-44.8L684.8%20384c12.8-12.8%2032-12.8%2044.8%200s12.8%2032%200%2044.8L460.8%20697.6c-6.4%206.4-12.8%2012.8-25.6%2012.8z'/%3e%3c/svg%3e")}.nav-icon-connections{--icon:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3e%3cpath%20d='M582.239997%20663.142968c-56.713997%200-113.426994-21.589999-156.609992-64.772997-11.728999-11.726999-11.728999-30.792998%200-42.520998%2011.728999-11.726999%2030.791998-11.726999%2042.520998%200%2062.910997%2062.909997%20165.212992%2062.909997%20228.121989%200L914.94998%20337.169984c62.910997-62.909997%2062.910997-165.211992%200-228.121989-62.907997-62.909997-165.210992-62.909997-228.119989%200L502.313%20293.565986c-11.728999%2011.727999-30.792998%2011.727999-42.521998%200-11.726999-11.727999-11.726999-30.792998%200-42.520998L644.308994%2066.527997c86.364996-86.364996%20226.858989-86.364996%20313.163985%200%2086.304996%2086.363996%2086.363996%20226.857989%200%20313.163985L738.794989%20598.368971c-43.183998%2043.183998-99.898995%2064.772997-156.612992%2064.772997zM221.386014%201023.99995c-56.714997%200-113.429994-21.591999-156.611992-64.772997-86.363996-86.364996-86.363996-226.856989%200-313.163985l218.678989-218.678989c86.364996-86.364996%20226.858989-86.364996%20313.162985%200%2011.727999%2011.727999%2011.727999%2030.791998%200%2042.520998-11.727999%2011.726999-30.792998%2011.726999-42.518998%200-62.910997-62.909997-165.213992-62.909997-228.122989%200L107.29402%20688.583966c-62.909997%2062.907997-62.909997%20165.212992%200%20228.120989%2062.908997%2062.907997%20165.211992%2062.907997%20228.121989%200l184.516991-184.517991c11.728999-11.728999%2030.793998-11.728999%2042.520998%200%2011.728999%2011.726999%2011.728999%2030.790998%200%2042.520998L377.938007%20959.226953C334.755009%201002.407951%20278.040011%201023.99995%20221.325014%201023.99995z'/%3e%3c/svg%3e")}.sidebar-foot{border-top:1px solid #d7dbd6;gap:11px;margin-top:auto;padding:12px 2px 2px;display:grid}.sidebar-foot strong{font-size:12px;display:block}.service-runtime-list{gap:8px;display:grid}.runtime-status{align-items:center;gap:8px;min-width:0;display:flex}.runtime-status>div{min-width:0}.capture-setting{color:#626b65;cursor:pointer;border-top:1px solid #dde1dc;justify-content:space-between;align-items:center;gap:8px;padding-top:9px;font-size:10px;display:flex}.capture-setting>span{min-width:0}.capture-setting>span strong{color:#46534b}.capture-setting>span small{margin-top:2px;display:block}.agent-access-setting{padding-top:10px}.agent-access-setting[data-enabled=false]>span strong{color:#8b4f49}.capture-setting input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.capture-setting i{background:#c8cdc9;border:1px solid #b9c0bb;border-radius:999px;flex:none;width:31px;height:18px;transition:background-color .16s,border-color .16s;position:relative}.capture-setting i:after{content:"";background:#fff;border-radius:50%;width:12px;height:12px;transition:transform .16s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #222b2538}.capture-setting input:checked+i{background:#5f816d;border-color:#537461}.capture-setting input:checked+i:after{transform:translate(13px)}.capture-setting input:focus-visible+i{outline-offset:2px;outline:2px solid #91a398}.capture-setting input:disabled+i{opacity:.55}.status-dot{background:#c4a34a;border-radius:50%;width:8px;height:8px}.status-dot.ready{background:#3f8b64}.status-dot.error{background:#b94e45}.status-dot.disconnected{background:#aeb5af}.workspace{flex-direction:column;min-width:0;height:100vh;min-height:0;display:flex;overflow:hidden}.topbar{background:#fafbf9eb;border-bottom:1px solid #e1e4df;justify-content:space-between;align-items:center;gap:28px;min-height:92px;padding:15px 32px 14px;display:flex}.topbar-heading{align-content:center;gap:2px;min-width:0;display:grid}.topbar-heading .eyebrow{margin:0 0 2px}.topbar-heading h2{line-height:1.12}.topbar-description{color:#7b847e;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:min(58vw,820px);font-size:10px;line-height:1.45;overflow:hidden}.topbar-actions{flex:none;align-items:center;gap:14px;display:flex}.eyebrow{color:#879088;letter-spacing:.14em;margin-bottom:5px;font-size:10px;font-weight:700}.quiet-button,.subscription-form button{color:#3f4741;background:#fff;border:1px solid #cfd5cf;border-radius:7px;padding:7px 12px;font-size:12px}.quiet-button:hover,.subscription-form button:hover{border-color:#8e9b92}.feedback{color:#8b3f38;background:#fbf3f2;border:1px solid #d8b3ae;border-radius:7px;margin:18px 32px 0;padding:10px 12px;font-size:13px}.feedback.success{color:#356046;background:#f1f7f3;border-color:#bfd3c5}.view{flex:1;min-height:0;padding:30px 32px 44px;overflow:auto}.view[data-view-panel=personal-profile]{flex-direction:column;padding:18px 32px 20px;display:flex;overflow:hidden}.intro-row,.section-toolbar{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.intro-row h3{margin-bottom:7px;font-size:19px}.intro-row p,.section-toolbar p{color:#68716a;font-size:13px;line-height:1.55}.mode-chip{color:#426352;background:#f5f8f6;border:1px solid #c8d3cb;border-radius:999px;padding:5px 9px;font-size:11px}.metrics{background:#fff;border:1px solid #dfe3de;border-radius:9px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:28px 0 34px;display:grid}.metrics article{border-right:1px solid #e7e9e6;padding:20px 22px}.metrics article:last-child{border-right:0}.metrics strong{color:#27352e;font-size:27px;font-weight:620;display:block}.metrics span{color:#747c76;font-size:12px}.two-column{grid-template-columns:1.15fr .85fr;gap:24px;display:grid}.section-block{border-top:1px solid #cfd5cf;padding-top:14px}.section-title{margin-bottom:14px}.flow-list{gap:17px;margin:0;padding:0;list-style:none;display:grid}.flow-list li{grid-template-columns:28px 1fr;align-items:start;gap:11px;display:grid}.flow-list li>span{color:#3f5d4e;background:#e3e9e5;border-radius:50%;place-items:center;width:24px;height:24px;font-size:11px;font-weight:700;display:grid}.flow-list strong{font-size:13px}.flow-list p{color:#79817b;margin-top:3px;font-size:12px}.space-heading{grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:15px;padding:0 0 18px;display:grid}.space-heading-icon{color:#3f6652;background-color:#fff;border:1px solid #d7ded9;border-radius:10px;place-items:center;width:42px;height:42px;display:grid}.space-heading-icon .nav-icon{width:21px;height:21px}.public-space-heading .space-heading-icon{color:#496272;background-color:#f8fafb;border-color:#d5dde2}.space-heading p{color:#68716a;font-size:13px;line-height:1.55}.space-heading-status{text-align:right;border-left:1px solid #dfe3df;min-width:94px;padding-left:20px}.space-heading-status strong{color:#31523f;font-size:24px;font-weight:620;display:block}.space-heading-status span,.space-heading-status small{color:#747d76;font-size:10px;display:block}.space-heading-status small{color:#9aa19b;margin-top:2px}.public-space-stats{background:#f9fbfc;border:1px solid #d8dfe3;border-radius:8px;align-items:stretch;display:flex}.public-space-stats span{color:#79838a;text-align:center;min-width:76px;padding:9px 12px;font-size:9px}.public-space-stats span+span{border-left:1px solid #dde3e6}.public-space-stats strong{color:#385363;font-size:18px;line-height:1.15;display:block}.personal-profile-summary{background:#f0f3f0;border-radius:8px;align-items:center;gap:0;min-height:50px;padding:0 16px;display:flex}.personal-profile-summary strong{color:#314a3d;font-size:18px;display:block}.personal-profile-summary>button{color:#7a837d;text-align:left;background:0 0;border:0;min-width:102px;padding:10px 18px;font-size:10px;transition:color .15s,background-color .15s,box-shadow .15s}.personal-profile-summary>button+button{border-left:1px solid #dce2dd}.personal-profile-summary>button small{color:#879089;margin-top:2px;font-size:8px;font-weight:650;display:block}.personal-profile-summary>button:hover{color:#415249;background:#e9eeea}.personal-profile-summary>button:focus{outline:none}.personal-profile-summary>button:focus-visible{outline-offset:-2px;outline:2px solid #91a398}.personal-profile-summary>button[aria-pressed=true]{color:#2f4d3d;background:#e3ebe6;box-shadow:inset 0 -2px #71877a}.personal-profile-summary>button[aria-pressed=true] small{color:currentColor}.personal-profile-summary p{color:#7c857f;margin-left:auto;font-size:10px}.personal-profile-toolbar{justify-content:space-between;align-items:center;gap:16px;min-height:46px;display:flex}.personal-profile-toolbar-actions{align-items:center;gap:10px;display:flex}.personal-profile-filter-groups{align-items:center;gap:10px;min-width:0;display:flex}.personal-profile-filters{gap:4px;display:flex}.personal-profile-filters button{color:#69726c;background:0 0;border:1px solid #0000;border-radius:6px;min-width:64px;padding:6px 9px;font-size:10px}.personal-profile-filters button:hover{background:#eef2ef}.personal-profile-filters button[aria-pressed=true]{color:#31523f;background:#edf3ef;border-color:#aebfb4;font-weight:650}.personal-profile-scope-filter{width:min(240px,28vw)}.personal-profile-scope-filter .searchable-select-trigger{background:#fff;border-radius:6px;min-height:30px}.personal-profile-layout{isolation:isolate;background:#fff;border:1px solid #cfd7d1;border-radius:8px;flex:1;grid-template-columns:minmax(0,1fr) 340px;align-items:stretch;min-height:0;display:grid;overflow:hidden}.personal-profile-directory{overscroll-behavior:contain;min-width:0;overflow:auto}.personal-profile-table-head,.personal-profile-row{grid-template-columns:88px minmax(240px,1.35fr) minmax(170px,.8fr) 130px;align-items:center;gap:13px;display:grid}.personal-profile-table-head{z-index:2;color:#8b938d;background:#f7f8f6;border-bottom:1px solid #e0e4e0;padding:10px 15px;font-size:9px;font-weight:680;position:sticky;top:0}.personal-profile-row{color:#4f5952;text-align:left;background:#fff;border:0;border-bottom:1px solid #e8ebe8;width:100%;min-height:76px;padding:12px 15px}.personal-profile-row:hover{background:#f8faf8}.personal-profile-row.selected{background:#f1f6f3;box-shadow:inset 0 0 0 1px #d2dfd7}.profile-aspect-mark{border-radius:999px;width:fit-content;padding:4px 8px;font-size:9px;font-weight:680}.profile-aspect-mark.taste{color:#5f5640;background:#f5f0e5}.profile-aspect-mark.personality{color:#4f5f78;background:#edf1f6}.profile-aspect-mark.judgment_preference{color:#405e50;background:#eaf3ee}.personal-profile-copy,.personal-profile-origin{gap:4px;min-width:0;display:grid}.personal-profile-copy strong,.personal-profile-origin strong{color:#303b35;font-size:11px}.personal-profile-origin strong.has-conflict{color:#53615a}.personal-profile-copy small,.personal-profile-origin small,.personal-profile-row time{color:#7b847e;font-size:9px;line-height:1.45}.personal-profile-copy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.personal-profile-inspector{align-self:stretch;min-width:0;position:static;overflow:auto}.project-section{margin-top:34px}.compact-toolbar{border-top:1px solid #cfd5cf;padding-top:14px}.project-grid{grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:14px;margin-top:18px;display:grid}.project-empty{background:#fafbfa;border:1px dashed #d8ddd8;border-radius:8px;grid-column:1/-1}.project-card{background:#fff;border:1px solid #dfe3de;border-radius:9px;min-width:0;padding:18px}.project-card-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.project-card-heading-actions{align-items:flex-start;gap:8px;display:flex}.project-card h4{color:#28352e;overflow-wrap:anywhere;margin:0;font-size:16px}.project-purpose{color:#626c65;min-height:38px;margin-top:12px;font-size:12px;line-height:1.55}.completion-badge{text-align:center;background:#f8faf8;border:1px solid #d4dbd5;border-radius:8px;flex:none;min-width:54px;padding:7px 8px}.completion-badge strong{color:#345241;font-size:18px;line-height:1;display:block}.completion-badge span{color:#7c857e;font-size:9px}.evidence-row{flex-wrap:wrap;gap:5px;min-height:24px;margin-top:13px;display:flex}.status-chip{color:#4d6558;background:#f7faf8;border:1px solid #d5ddd7;border-radius:999px;align-items:center;width:fit-content;padding:3px 7px;font-size:9px;font-weight:650;display:inline-flex}.status-chip.owner{color:#2f5943;background:#eef6f1;border-color:#b8cdbf}.status-chip.private{color:#746448;background:#fbf8f1;border-color:#ddd5c5}.completion-note{color:#879088;margin-top:14px;font-size:10px}.completion-details{border-top:1px solid #e7eae7;margin-top:13px;padding-top:10px}.completion-details summary,.episode-details summary{color:#53645a;cursor:pointer;font-size:10px}.completion-columns{grid-template-columns:repeat(2,1fr);gap:8px;margin-top:11px;display:grid}.assessment-block{background:#f7f8f7;border-radius:6px;min-width:0;padding:8px}.assessment-block>strong{color:#59645d;font-size:9px}.assessment-block ul{color:#6f7872;margin:5px 0 0;padding-left:14px;font-size:9px;line-height:1.45}.assessment-block.inferred{background:#faf8f2}.project-access,.project-actions{align-items:center;gap:7px;margin-top:14px;display:flex}.project-access{border-top:1px solid #e8ebe8;padding-top:12px}.project-actions{flex-wrap:wrap}.primary-action,.secondary-action,.management-action,.danger-action,.relation-actions button{border-radius:7px;min-height:32px;padding:7px 11px;font-size:10px;font-weight:600}.primary-action{color:#fff;background:#426f58;border:1px solid #3e6b54}.secondary-action{color:#53615a;background:#fff;border:1px solid #cdd5cf}.management-action{color:#59665f;background:#f8faf8;border:1px solid #d6dcd7}.danger-action{color:#fff;background:#ad4d44;border:1px solid #a64940}.primary-action:hover{background:#365f4a}.secondary-action:hover,.management-action:hover{background:#fafcfb;border-color:#9eaca2}.danger-action:hover{background:#983f37}.primary-action:disabled,.secondary-action:disabled,.management-action:disabled,.danger-action:disabled{cursor:wait;opacity:.58}.project-release-meta{border-left:1px solid #e2e6e2;gap:1px;margin-left:auto;padding-left:11px;display:grid}.project-release-meta strong{color:#3e5c4c;font-size:10px}.project-release-meta span{color:#89918b;font-size:9px}.project-card-footer{border-top:1px solid #e7eae7;justify-content:space-between;align-items:center;gap:14px;margin-top:15px;padding-top:13px;display:flex}.project-card-footer>.secondary-action,.project-card-footer>.primary-action{min-width:92px}.project-footer-label{color:#7f8982;font-size:9px;font-weight:650}.project-subscription-state{color:#53625a;align-items:center;gap:7px;font-size:10px;display:flex}.subscription-indicator{align-items:center;gap:6px;display:inline-flex}.subscription-indicator i{background:#3f8b64;border-radius:50%;width:7px;height:7px}.subscription-action{min-height:30px;margin-left:4px;padding:5px 10px;font-size:11px}.project-publication-bar{background:#f8faf8;border:1px solid #dfe5e0;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;margin-top:12px;padding:12px;display:flex}.project-publication-bar strong{color:#3d4f45;font-size:10px;display:block}.project-publication-bar span{color:#7e8881;margin-top:2px;font-size:9px;display:block}.project-relations{gap:6px;margin-top:11px;display:grid}.relation-loading{padding:9px 0 2px}.project-relation-row{background:#f7f8f7;border-radius:7px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;display:grid}.project-relation-row strong{font-size:10px;display:block}.project-relation-row span{display:block}.relation-actions{gap:5px;display:flex}.relation-section-toolbar{align-items:center}.relation-section-toolbar .primary-action{flex:none;padding:8px 12px;font-size:11px}.relation-section-toolbar .primary-action:disabled{cursor:not-allowed}.relation-composer{background:#fff;border:1px solid #d9ded9;border-radius:10px;margin-top:16px;box-shadow:0 10px 30px #2330280f}.relation-composer-form{padding:18px}.relation-preview{background:#f8faf8;border:1px solid #e0e5e1;border-radius:9px;grid-template-columns:minmax(180px,1fr) minmax(150px,.65fr) minmax(180px,1fr);align-items:center;gap:16px;padding:18px;display:grid}.relation-preview-node{background:#fff;border:1px solid #ced8d1;border-radius:9px;align-content:center;gap:4px;min-width:0;min-height:98px;padding:15px;display:grid}.relation-preview-node span{color:#849087;letter-spacing:.09em;font-size:9px;font-weight:700}.relation-preview-node strong{color:#2e4137;overflow-wrap:anywhere;font-size:15px}.relation-preview-node small{color:#818a84;font-size:9px}.relation-preview-target{border-color:#ccd8de}.relation-preview-connector{text-align:center;grid-template-rows:auto 1px;align-items:center;gap:8px;display:grid}.relation-preview-connector span{color:#3f6250;overflow-wrap:anywhere;background:#fff;border:1px solid #c6d3cb;border-radius:999px;width:fit-content;max-width:100%;margin:0 auto;padding:4px 9px;font-size:10px;font-weight:650}.relation-preview-connector i{border-top:1px solid #91a399;width:100%}.relation-builder{border-top:1px solid #e3e7e3;border-bottom:1px solid #e3e7e3;grid-template-columns:minmax(170px,.75fr) minmax(360px,1.6fr) minmax(220px,1fr);gap:0;margin-top:18px;display:grid}.relation-builder-step{border:0;min-width:0;margin:0;padding:17px 18px 18px 0}.relation-builder-step+.relation-builder-step{border-left:1px solid #e4e8e4;padding-left:18px}.relation-builder-step>label,.relation-builder-step legend{color:#36443c;margin:3px 0 9px;padding:0;font-size:11px;font-weight:650;display:block}.relation-builder-step>select,.relation-builder-step>input{width:100%}.relation-builder-step>small{color:#8a928c;margin-top:8px;font-size:9px;line-height:1.45;display:block}.relation-step-number{color:#8b958e;letter-spacing:.11em;font-size:9px;font-weight:700}.relation-builder-step legend .relation-step-number{margin-bottom:7px;display:block}.relation-type-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.relation-type-options label,.relation-target-option{cursor:pointer;background:#fff;border:1px solid #dce2dd;border-radius:7px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px;display:grid}.relation-type-options label{min-height:55px;padding:9px}.relation-type-options label:hover,.relation-target-option:hover{background:#fafcfb;border-color:#aebbb2}.relation-type-options label:has(input:checked){background:#f1f6f3;border-color:#6d8b7b;box-shadow:0 0 0 1px #4d6f5c14}.relation-target-option:has(input:checked){background:#f1f6f3;border-color:#6d8b7b;box-shadow:0 0 0 1px #4d6f5c14}.relation-type-options input,.relation-target-option input{accent-color:#426f58;margin:2px 0 0}.relation-type-options span,.relation-target-option span{min-width:0}.relation-type-options strong,.relation-target-option strong{color:#3b4941;font-size:10px;display:block}.relation-type-options small,.relation-target-option small{color:#7f8882;overflow-wrap:anywhere;margin-top:3px;font-size:9px;line-height:1.35;display:block}.relation-target-list{gap:6px;max-height:152px;margin-top:8px;display:grid;overflow:auto}.relation-target-option{padding:9px}.relation-target-empty{color:#8b938d;text-align:center;padding:18px 8px;font-size:10px}.relation-composer-footer{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px 20px;padding-top:15px;display:grid}.relation-rule{color:#69736c;font-size:10px;line-height:1.45}.relation-validation{color:#98483f;grid-column:1;font-size:10px}.relation-composer-actions{grid-area:1/2/span 2;gap:7px;display:flex}.relation-composer-actions button{min-width:92px;padding:7px 11px}.provider-list,.subscription-list{gap:8px;display:grid}.provider-row,.subscription-row{border-bottom:1px solid #e3e6e2;grid-template-columns:10px 1fr auto;align-items:center;gap:9px;padding:10px 0;display:grid}.provider-row:last-child,.subscription-row:last-child{border-bottom:0}.provider-row i{background:#3f8b64;border-radius:50%;width:7px;height:7px}.provider-row i.disconnected{background:#aeb5af}.provider-row strong,.subscription-row strong{font-size:12px;display:block}.provider-row span,.subscription-row span{color:#7a837c;font-size:11px}.provider-row .provider-state{color:#6d7770;font-size:10px;font-weight:620}.connections-view{padding-top:24px}.connection-intro{max-width:760px}.connection-intro h3{font-size:18px}.connection-intro p{color:#6d7770;margin-top:6px;font-size:12px;line-height:1.55}.service-connection-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px;display:grid}.service-connection-card{background:#fff;border:1px solid #cfd7d1;border-radius:8px;min-width:0;padding:18px}.service-connection-card[data-status=ready]{border-color:#b8cbbf}.service-connection-card[data-status=error]{border-color:#dcc3bf}.service-connection-card>header{grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;display:grid}.service-connection-card>header .eyebrow{margin-bottom:2px;font-size:8px}.service-connection-card>header h3{color:#2f3c35;font-size:15px}.service-connection-icon{color:#426652;background:#f5f8f6;border:1px solid #d4ddd7;border-radius:9px;place-items:center;width:38px;height:38px;display:grid}.service-connection-icon.public{color:#4f6875;background:#f6f8f9;border-color:#d6dde1}.service-state{color:#66716a;align-items:center;gap:6px;font-size:10px;font-weight:650;display:inline-flex}.service-state:before{content:"";background:#aeb5af;border-radius:50%;width:6px;height:6px}.service-connection-card[data-status=ready] .service-state{color:#3c654f}.service-connection-card[data-status=ready] .service-state:before{background:#3f8b64}.service-connection-card[data-status=error] .service-state{color:#8b4b44}.service-connection-card[data-status=error] .service-state:before{background:#b94e45}.service-connection-card>p{color:#69736c;min-height:38px;margin-top:15px;font-size:11px;line-height:1.55}.service-connection-card dl{border-top:1px solid #e4e8e4;margin:14px 0 0}.service-connection-card dl>div{border-bottom:1px solid #edf0ed;grid-template-columns:86px minmax(0,1fr);gap:12px;padding:9px 0;display:grid}.service-connection-card dl>div:last-child{border-bottom:0;padding-bottom:0}.service-connection-card dt{color:#8a928c;font-size:9px}.service-connection-card dd{color:#4d5851;overflow-wrap:anywhere;margin:0;font-size:10px}.connection-subscriptions{border-top:1px solid #d9dfda;margin-top:24px;padding-top:16px}.connection-subscriptions .section-title{margin-bottom:10px}.connection-subscriptions .section-title p{color:#7b847e;margin-top:4px;font-size:10px}.graph-view{flex-direction:column;padding:18px 24px 20px;display:flex;overflow:hidden}.graph-view.graph-canvas-active{overflow:hidden}.knowledge-view-heading{border-bottom:1px solid #dce1dc;justify-content:space-between;align-items:center;min-height:42px;display:flex}.knowledge-mode-switch{align-self:stretch;gap:22px;display:flex}.knowledge-mode-switch button{color:#7a837d;background:0 0;border:0;padding:0 1px;font-size:12px;font-weight:620;position:relative}.knowledge-mode-switch button[aria-selected=true]{color:#2f4d3d}.knowledge-mode-switch button[aria-selected=true]:after{content:"";background:#3f6b55;border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:-1px;left:0;right:0}#graph-count.search-active{color:#8a5b16;font-weight:650}.graph-toolbar{flex-wrap:wrap;align-items:center;gap:8px 10px;min-height:48px;padding:8px 0;display:flex}select,input,textarea{color:#303632;background:#fff;border:1px solid #cfd5cf;border-radius:7px;outline:none;padding:7px 9px;font-size:12px}textarea{resize:vertical;line-height:1.5}select:focus,input:focus,textarea:focus{border-color:#6f8577;box-shadow:0 0 0 2px #54715f1a}.searchable-select{color:#303632;vertical-align:middle;min-width:128px;font-size:11px;display:inline-block;position:relative}.searchable-select-native{display:none!important}.searchable-select-trigger{color:#39433d;text-align:left;background:#fff;border:1px solid #cfd5cf;border-radius:7px;grid-template-columns:minmax(0,1fr) 12px;align-items:center;gap:8px;width:100%;min-height:32px;padding:6px 9px;display:grid}.searchable-select-trigger:hover{background:#fcfdfc;border-color:#a9b4ac}.searchable-select-trigger:focus-visible{border-color:#6f8577;outline:0;box-shadow:0 0 0 2px #54715f1f}.searchable-select-current{align-items:baseline;gap:7px;min-width:0;display:flex}.searchable-select-current-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:560;overflow:hidden}.searchable-select-current-meta{color:#8a938d;text-overflow:ellipsis;white-space:nowrap;flex:0 auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:8px;font-weight:520;overflow:hidden}.searchable-select-arrow{border-bottom:1.5px solid #7d8881;border-right:1.5px solid #7d8881;justify-self:end;width:7px;height:7px;transition:transform .14s;transform:translateY(-2px)rotate(45deg)}.searchable-select.open .searchable-select-arrow{transform:translateY(2px)rotate(225deg)}.searchable-select.disabled{opacity:.52}.searchable-select.disabled .searchable-select-trigger{cursor:not-allowed}.searchable-select-panel{z-index:45;background:#fff;border:1px solid #d4dad5;border-radius:9px;width:max(100%,268px);padding:7px;position:absolute;top:calc(100% + 5px);left:0;box-shadow:0 14px 36px #23302824}.searchable-select.open-up .searchable-select-panel{top:auto;bottom:calc(100% + 5px)}.searchable-select-search{padding:2px 2px 7px}.searchable-select-search input{background:#f7f9f7;border-color:#dbe0dc;width:100%;height:31px;padding:6px 8px;font-size:10px}.searchable-select-options{overscroll-behavior:contain;gap:2px;max-height:228px;display:grid;overflow:auto}.searchable-select-option{color:#455149;text-align:left;background:0 0;border:0;border-radius:6px;grid-template-columns:minmax(0,1fr) 14px;align-items:center;gap:8px;width:100%;min-height:36px;padding:7px 8px;display:grid}.searchable-select-option:hover,.searchable-select-option:focus-visible{background:#f2f6f3;outline:0}.searchable-select-option[aria-selected=true]{color:#2f5541;background:#edf4ef}.searchable-select-option:disabled{cursor:not-allowed;opacity:.4}.searchable-select-option-copy{gap:2px;min-width:0;display:grid}.searchable-select-option-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:620;overflow:hidden}.searchable-select-option-copy small{color:#8a938d;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:8px;overflow:hidden}.searchable-select-check{border-bottom:1.5px solid #0000;border-left:1.5px solid #0000;width:8px;height:4px;transform:rotate(-45deg)}.searchable-select-option[aria-selected=true] .searchable-select-check{border-color:#47705a}.searchable-select-empty{color:#8a938d;text-align:center;padding:20px 8px;font-size:10px}.searchable-select[data-select-id=graph-space]{min-width:225px}.searchable-select[data-select-id=knowledge-type-filter]{width:120px}.searchable-select[data-select-id=knowledge-quadrant-filter]{width:110px}.searchable-select[data-select-id=knowledge-profile-filter]{width:112px}.searchable-select[data-select-id=knowledge-status-filter]{width:105px}.relation-builder-step>.searchable-select,.knowledge-editor-form .searchable-select,.knowledge-project-fields .searchable-select,.knowledge-project-relation .searchable-select{width:100%}.personal-context-picker{position:relative}.personal-context-picker>summary{color:#4e5d54;cursor:pointer;background:#fff;border:1px solid #cfd5cf;border-radius:7px;align-items:center;gap:8px;min-height:32px;padding:6px 9px;font-size:10px;list-style:none;display:flex}.personal-context-picker>summary::-webkit-details-marker{display:none}.personal-context-picker>summary span{color:#7e8982}.personal-context-picker>summary .searchable-select-arrow{flex:none;margin-left:auto}.personal-context-picker[open]>summary .searchable-select-arrow{transform:translateY(2px)rotate(225deg)}.personal-context-panel{z-index:8;background:#fff;border:1px solid #d7ddd8;border-radius:8px;width:286px;padding:13px;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 12px 30px #2330281a}.personal-context-panel>strong{color:#34483d;font-size:11px}.personal-context-panel>p{color:#7b847e;margin-top:4px;font-size:9px;line-height:1.45}.personal-context-list{gap:3px;max-height:220px;margin-top:10px;display:grid;overflow:auto}.personal-context-option{cursor:pointer;border-radius:6px;grid-template-columns:17px 1fr;align-items:center;gap:8px;padding:8px;display:grid}.personal-context-option:hover{background:#f3f6f4}.personal-context-option input{margin:0}.personal-context-option span{gap:2px;display:grid}.personal-context-option strong{color:#3f4d45;font-size:10px}.personal-context-option small{color:#879088;font-size:9px}.search-form{flex:0 300px;min-width:220px}.search-form input{width:100%}#knowledge-type-filter{max-width:160px}#knowledge-quadrant-filter{max-width:130px}#knowledge-profile-filter{max-width:135px}.graph-view-actions{border-left:1px solid #dfe3de;align-items:center;gap:3px;margin-left:auto;padding-left:4px;display:flex}.graph-controls{gap:3px;display:flex}.toolbar-action{color:#566059;background:0 0;border:1px solid #0000;border-radius:6px;min-width:31px;height:31px;padding:0 8px;font-size:12px}.toolbar-action:hover{color:#253d32;background:#fff;border-color:#d2d8d2}.toolbar-action:focus-visible{outline-offset:1px;outline:2px solid #3f6b5547}.knowledge-layout{isolation:isolate;background:#fbfcfa;border:1px solid #cfd7d1;border-radius:8px;flex:1;grid-template-columns:minmax(0,1fr) 340px;align-items:stretch;min-height:0;display:grid;overflow:hidden}.knowledge-directory-panel{overscroll-behavior:contain;background:#fff;min-width:0;overflow:hidden auto;container:knowledge-directory/inline-size}.directory-kind-tabs{z-index:4;background:#fafbf9f7;border-bottom:1px solid #dfe4df;align-items:stretch;gap:22px;min-height:44px;padding:0 16px;display:flex;position:sticky;top:0}.directory-kind-tab{color:#737d76;background:0 0;border:0;align-items:center;gap:7px;min-width:0;padding:0 1px;font-size:11px;font-weight:620;display:inline-flex;position:relative}.directory-kind-tab:hover{color:#365543}.directory-kind-tab:focus-visible{outline-offset:-2px;outline:2px solid #3f6b5547}.directory-kind-tab:after{content:"";background:0 0;height:2px;position:absolute;bottom:-1px;left:0;right:0}.directory-kind-tab[aria-selected=true]{color:#294838}.directory-kind-tab[aria-selected=true]:after{background:#52725f}.directory-kind-tab small{color:#78827b;text-align:center;background:#edf0ed;border-radius:999px;min-width:20px;padding:1px 6px;font-size:9px;font-weight:650}.directory-kind-tab[aria-selected=true] small{color:#3b604b;background:#e5eee8}.directory-tab-panel{min-width:0}.directory-section-heading{background:#f7f8f6;border-bottom:1px solid #e0e4e0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 14px;min-width:0;padding:12px 16px;display:flex}.directory-section-copy{flex:260px;align-items:baseline;gap:10px;min-width:0;display:flex}.directory-section-heading strong{color:#34453b;font-size:11px;font-weight:680}.directory-section-copy span,.directory-section-count{color:#838c85;font-size:9px;line-height:1.45}.directory-section-copy span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.directory-section-count{flex:none}.knowledge-status-filter{background:#eef1ee;border:1px solid #dce2dd;border-radius:7px;flex:none;align-items:center;gap:2px;padding:2px;display:inline-flex}.knowledge-status-option{color:#707a73;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:5px;align-items:center;gap:5px;height:24px;padding:0 7px;font-size:9px;font-weight:640;display:inline-flex}.knowledge-status-option:hover{color:#395545;background:#ffffffb8}.knowledge-status-option:focus-visible{outline-offset:1px;outline:2px solid #3f6b5547}.knowledge-status-option[aria-pressed=true]{color:#355844;background:#fff;border-color:#cbd7cf}.knowledge-status-option[data-status=historical][aria-pressed=true]{color:#78594f;background:#fbf5f3;border-color:#e1cec8}.knowledge-status-option span{min-width:16px;color:inherit;text-align:center;background:#4f695914;border-radius:999px;padding:0 4px;font-size:8px;line-height:16px}.project-material-list{min-width:0;display:grid}.project-material-row{color:#4f5952;text-align:left;background:#fff;border:0;border-bottom:1px solid #e8ebe8;grid-template-columns:minmax(0,1fr) minmax(94px,118px) auto;align-items:center;gap:16px;width:100%;min-height:61px;padding:10px 16px;display:grid}.project-material-row:last-child{border-bottom:0}.project-material-row:hover{background:#f8faf8}.project-material-row.selected{background:#f1f6f3;box-shadow:inset 0 0 0 1px #9fb5a8}.project-material-copy{gap:4px;min-width:0;display:grid}.project-material-copy strong{color:#2f3933;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:630;overflow:hidden}.project-material-copy small{color:#79827c;text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:1.4;overflow:hidden}.project-material-type{color:#4b6858;font-size:10px;font-weight:620}.project-material-link{color:#52705f;text-align:right;font-size:9px;font-weight:650}.graph-canvas-active .knowledge-layout{flex:1;align-items:stretch;min-height:0;overflow:hidden}.knowledge-table-head,.knowledge-row{grid-template-columns:minmax(220px,1.8fr) minmax(92px,.68fr) minmax(104px,.75fr) minmax(90px,.65fr) minmax(118px,.9fr) minmax(102px,.72fr) minmax(58px,.42fr);align-items:center;gap:12px;width:100%;min-width:0;display:grid}.knowledge-table-head{z-index:2;color:#8b938d;letter-spacing:.05em;background:#f7f8f6;border-bottom:1px solid #e0e4e0;padding:10px 16px;font-size:9px;font-weight:680;position:sticky;top:0}.has-directory-tabs .knowledge-table-head{top:44px}.knowledge-row{color:#4f5952;text-align:left;background:#fff;border:0;border-bottom:1px solid #e8ebe8;min-height:68px;padding:11px 16px;font-size:10px}.knowledge-table-head>span,.knowledge-row>span{min-width:0}.knowledge-row:hover{background:#f8faf8}.knowledge-row.selected{background:#f1f6f3;box-shadow:inset 0 0 0 1px #9fb5a8}.knowledge-row-content{gap:4px;min-width:0;display:grid}.knowledge-row-title{align-items:center;gap:7px;min-width:0;display:flex}.knowledge-row-content strong{color:#2f3933;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;font-weight:630;overflow:hidden}.human-change-badge{color:#765126;white-space:nowrap;background:#fff1d9;border-radius:999px;flex:none;padding:2px 6px;font-size:8px;font-style:normal;font-weight:700}.human-change-badge.state-viewed{color:#4f6076;background:#eaf0f7}.knowledge-row-content small{color:#79827c;text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:1.4;overflow:hidden}.knowledge-row-type,.knowledge-row-source,.knowledge-row-time{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.knowledge-row-type{color:#4b6858;font-weight:620}.knowledge-row-source,.knowledge-row-time{color:#7d867f}.knowledge-row-quadrant{color:#59655e;white-space:nowrap;background:#f0f2ef;border-radius:999px;width:fit-content;padding:3px 7px;font-size:9px;font-weight:650}.knowledge-row-quadrant.known_known{color:#356047;background:#edf6f0}.knowledge-row-quadrant.known_unknown{color:#77602f;background:#f7f2e5}.knowledge-row-quadrant.unknown_known{color:#4d5f78;background:#eef2f7}.knowledge-row-quadrant.unknown_unknown{color:#725d70;background:#f5eff4}.knowledge-row-quadrant.unclassified{color:#666e68;background:#eff1ef}.knowledge-review-state{color:#59655e;white-space:nowrap;background:#f0f2ef;border-radius:999px;width:fit-content;padding:3px 7px;font-size:9px;font-weight:650}.knowledge-review-state.state-confirmed{color:#356047;background:#edf6f0}.knowledge-review-state.state-agent_confirmed{color:#4d5f78;background:#eef2f7}.knowledge-review-state.state-pending,.knowledge-review-state.state-needs_review{color:#77602f;background:#f7f2e5}.knowledge-review-state.state-exploratory{color:#725d70;background:#f5eff4}.knowledge-review-state.state-unclassified{color:#666e68;background:#eff1ef}.knowledge-status{border-radius:999px;width:fit-content;padding:3px 7px;font-size:9px;font-weight:650}.knowledge-status.current{color:#356047;background:#edf6f0}.knowledge-status.historical{color:#80645d;background:#f7efed}@container knowledge-directory (width<=900px){.knowledge-table-head,.knowledge-row{grid-template-columns:minmax(220px,1.8fr) minmax(92px,.75fr) minmax(104px,.8fr) minmax(90px,.7fr) minmax(58px,.45fr)}.knowledge-column-source,.knowledge-column-time,.knowledge-row-source,.knowledge-row-time{display:none}}@container knowledge-directory (width<=660px){.knowledge-status-filter{order:3;margin-right:auto}.knowledge-table-head,.knowledge-row{grid-template-columns:minmax(180px,1fr) 90px 96px 58px}.knowledge-column-type,.knowledge-row-type{display:none}.project-material-row{grid-template-columns:minmax(0,1fr) auto}.project-material-type{display:none}}@container knowledge-directory (width<=500px){.knowledge-table-head,.knowledge-row{grid-template-columns:minmax(160px,1fr) 92px 58px}.knowledge-column-quadrant,.knowledge-row-quadrant{display:none}}.graph-inspector{overscroll-behavior:contain;background:#fff;border-left:1px solid #d7ddd8;align-self:stretch;padding:18px;position:static;overflow:auto}.graph-canvas-active .graph-inspector{align-self:stretch;position:static;overflow:auto}.graph-inspector h3{overflow-wrap:anywhere;margin-bottom:8px;font-size:16px}.graph-inspector .muted{color:#737c75;font-size:12px;line-height:1.55}.inspector-classification{background:#f7f9f7;border:1px solid #dbe1dc;border-radius:7px;gap:7px;margin-top:15px;padding:11px 12px;display:grid}.inspector-classification>div{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.inspector-classification span{color:#7f8982;font-size:9px;font-weight:650}.inspector-classification strong{color:#40574a;font-size:11px}.inspector-classification p{color:#68726b;font-size:10px;line-height:1.55}.inspector-classification.state-pending,.inspector-classification.state-needs_review{background:#faf8f1;border-color:#e2d7bd}.inspector-classification.state-pending strong,.inspector-classification.state-needs_review strong{color:#755d2e}.inspector-classification.state-exploratory{background:#f8f5f8;border-color:#ddd3dc}.inspector-classification.state-exploratory strong{color:#6f596c}.inspector-classification.state-unclassified{background:#f5f6f5;border-color:#d9ddda}.inspector-classification.state-unclassified strong{color:#626b65}.inspector-human-change{background:#fff9ee;border:1px solid #e2d3b8;border-radius:7px;gap:6px;margin-top:10px;padding:11px 12px;display:grid}.inspector-human-change>div{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.inspector-human-change span,.inspector-human-change small{color:#8b7a61;font-size:9px;font-weight:650}.inspector-human-change strong{color:#765126;font-size:11px}.inspector-human-change p{color:#766b5b;font-size:10px;line-height:1.55}.inspector-human-change.state-viewed{background:#f5f8fb;border-color:#d3dce7}.inspector-human-change.state-viewed strong{color:#4f6076}.inspector-human-change.state-reviewed{background:#f6f9f7;border-color:#d8e2db}.inspector-human-change.state-reviewed strong{color:#456451}.inspector-replacement{background:#fbf9f3;border:1px solid #dfd7c5;border-radius:7px;gap:8px;margin-top:10px;padding:11px 12px;display:grid}.inspector-replacement-heading{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.inspector-replacement-heading span{color:#8a806b;font-size:9px;font-weight:650}.inspector-replacement-heading strong{color:#695934;font-size:11px}.inspector-replacement>p{color:#766f60;font-size:10px;line-height:1.55}.inspector-replacement-link{width:100%;color:inherit;text-align:left;background:#fff;border:1px solid #d7ded8;border-radius:6px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:9px 10px;display:grid}.inspector-replacement-link:hover{background:#f6f9f7;border-color:#9fb2a5}.inspector-replacement-link>span{gap:3px;min-width:0;display:grid}.inspector-replacement-link strong,.inspector-replacement-link small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.inspector-replacement-link strong{color:#3d4d44;font-size:10px}.inspector-replacement-link small{color:#7d8780;font-size:9px}.inspector-replacement-link b{color:#446b57;white-space:nowrap;font-size:9px;font-weight:680}.inspector-project-material{background:#f4f8f5;border:1px solid #cfdcd4;border-radius:7px;gap:7px;margin-top:15px;padding:11px 12px;display:grid}.inspector-project-material>div{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.inspector-project-material span{color:#7b8980;font-size:9px;font-weight:650}.inspector-project-material strong{color:#3f5e4d;font-size:11px}.inspector-project-material p{color:#657269;font-size:10px;line-height:1.55}.inspector-identity{background:#f3f6f3;border-radius:6px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;margin:2px 0 13px;padding:7px 8px;display:grid}.inspector-identity>span{color:#7f8982;font-size:8px;font-weight:650}.inspector-identity code{color:#4e5c54;overflow-wrap:anywhere;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:8px;line-height:1.35}.inspector-identity-copy{color:#4a6b59;background:0 0;border:0;padding:2px 4px;font-size:8px}.inspector-identity-copy:hover{color:#274a38;text-decoration:underline}.inspector-identity-copy:focus-visible{outline-offset:2px;outline:1px solid #799284}.inspector-meta{gap:8px;margin-top:18px;display:grid}.inspector-meta div{border-top:1px solid #e6e8e5;padding-top:8px}.inspector-meta dt{color:#8a928c;text-transform:uppercase;letter-spacing:.08em;font-size:10px}.inspector-meta dd{overflow-wrap:anywhere;margin:3px 0 0;font-size:12px}.inspector-attributes{margin-top:0}.inspector-subtitle{color:#5d665f;margin:20px 0 7px;font-size:11px;font-weight:650}.inspector-reasoning{color:#626c65;white-space:pre-wrap;font-size:11px;line-height:1.6}.inspector-relations{display:grid}.inspector-relation{border-top:1px solid #edf0ec;grid-template-columns:minmax(0,1fr);gap:3px;min-width:0;padding:10px 0;font-size:10px;display:grid}.relation-type{color:#4f6d5d;letter-spacing:.035em;overflow-wrap:anywhere;font-size:9px;font-weight:700;line-height:1.4}.relation-target{color:#737c75;overflow-wrap:anywhere;min-width:0;margin:0;line-height:1.55}.inspector-evidence{gap:7px;display:grid}.evidence-card{background:#fafbf9;border:1px solid #e0e5e1;border-radius:7px;padding:10px}.evidence-card strong{color:#3c4b43;font-size:11px;display:block}.evidence-card p{color:#68726b;margin-top:4px;font-size:10px;line-height:1.5}.evidence-card span{color:#909791;margin-top:6px;font-size:9px;display:block}.evidence-card .evidence-excerpt{color:#59635d;white-space:pre-wrap;background:#f1f4f1;border-radius:5px;margin-top:8px;padding:8px}.evidence-source-action{color:#446755;background:0 0;border:0;margin-top:8px;padding:0;font-size:10px;font-weight:650;text-decoration:none;display:inline-flex}.evidence-source-action:hover{color:#294c3a;text-decoration:underline}.conflict-title{color:#806338}.suspected-conflicts .history-row strong{color:#775b31}.inspector-edit-button{width:100%;margin-top:16px}.inspector-actions{gap:7px;margin-top:16px;display:grid}.inspector-actions button{width:100%}.inspector-history{display:grid}.history-row{border-top:1px solid #e8ebe8;padding:9px 0}.history-row strong{color:#435149;font-size:10px}.history-row p{color:#68726b;margin-top:3px;font-size:10px;line-height:1.45}.history-row span{color:#929993;margin-top:4px;font-size:9px;display:block}.history-row small{color:#77827a;margin-top:4px;font-size:9px;display:block}.section-toolbar{border-bottom:1px solid #dfe3de;padding-bottom:18px}.section-toolbar h3{margin-bottom:5px;font-size:18px}.searchable-select[data-select-id=review-project]{min-width:220px}.review-list{margin-top:10px;display:grid}.review-item{border-bottom:1px solid #e0e3df;grid-template-columns:minmax(0,1fr) auto;gap:24px;padding:18px 0;display:grid}.review-item h4{margin:0 0 5px;font-size:14px}.review-item p{color:#677069;font-size:12px;line-height:1.55}.review-stage{color:#607068;letter-spacing:.08em;text-transform:uppercase;width:fit-content;margin-bottom:7px;font-size:9px;font-weight:700}.review-meta{color:#89908b;gap:12px;margin-top:9px;font-size:10px;display:flex}.review-actions{align-items:center;gap:7px;display:flex}.review-actions button{border-radius:7px;padding:7px 11px;font-size:12px}.approve{color:#fff;background:#3f6b55;border:1px solid #335e49}.reject{color:#666e68;background:#fff;border:1px solid #d0d5d0}.stacked-actions{flex-wrap:wrap;justify-content:flex-end;align-items:flex-end;max-width:240px}.episode-details{margin-top:13px}.episode-body{background:#fafbfa;border:1px solid #e2e6e2;border-radius:7px;gap:12px;margin-top:10px;padding:12px;display:grid}.episode-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px;margin:0;display:grid}.episode-meta div{min-width:0}.episode-meta dt{color:#89918b;font-size:9px}.episode-meta dd{color:#555f58;overflow-wrap:anywhere;margin:2px 0 0;font-size:10px}.episode-section{gap:5px;display:grid}.episode-section>strong{color:#5b655e;font-size:10px}.episode-record{border-top:1px solid #e7eae7;grid-template-columns:auto minmax(100px,.6fr) minmax(0,1fr);align-items:start;gap:7px;padding:6px 0;font-size:10px;display:grid}.episode-record small{color:#7a837c;overflow-wrap:anywhere;line-height:1.45}.empty-state{text-align:center;color:#858d87;padding:40px 0;font-size:13px}.connections-grid{align-items:start}.subscription-form{border-top:1px solid #dfe3de;gap:7px;margin-top:18px;padding-top:14px;display:flex}.subscription-form .searchable-select{flex:1}.muted{color:#7a837c;font-size:12px}.publish-dialog{color:#27312b;background:#fff;border:0;border-radius:12px;width:min(500px,100vw - 32px);padding:0;box-shadow:0 24px 70px #18221c3d}.publish-dialog::backdrop{background:#1c221e6b}.publish-dialog-shell{padding:24px}.publish-dialog h3{margin:0;font-size:20px}.publish-dialog-intro{color:#69736c;gap:4px;margin-top:13px;font-size:12px;line-height:1.55;display:grid}.publish-dialog-intro strong{color:#334039;font-size:14px}.publish-release-fields{gap:12px;margin-top:18px;display:grid}.publish-release-fields label{gap:6px;display:grid}.publish-release-fields label>span{color:#46534c;font-size:11px;font-weight:650}.publish-release-fields small{color:#89918b;font-size:9px}.publish-impact{border-top:1px solid #e2e6e2;border-bottom:1px solid #e2e6e2;margin-top:19px}.publish-impact>div{grid-template-columns:108px 1fr;gap:14px;padding:12px 0;display:grid}.publish-impact>div+div{border-top:1px solid #eceeec}.publish-impact strong{color:#34453c;font-size:11px}.publish-impact span{color:#6f7872;font-size:11px;line-height:1.5}.publish-dialog-error{color:#99483f;margin-top:12px;font-size:11px}.publish-dialog-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.publish-dialog-actions button{min-width:88px;padding:8px 13px;font-size:12px}.project-dialog{color:#27312b;background:#fff;border:0;border-radius:12px;width:min(900px,100vw - 32px);max-height:calc(100vh - 48px);padding:0;overflow:hidden;box-shadow:0 24px 70px #18221c3d}.project-dialog::backdrop{background:#1c221e6b}.project-dialog-shell{box-sizing:border-box;max-height:calc(100vh - 48px);padding:24px;overflow:auto}.project-dialog-header{border-bottom:1px solid #e1e5e2;justify-content:space-between;align-items:flex-start;gap:24px;padding-bottom:18px;display:flex}.project-dialog-header h3{font-size:20px}.project-dialog-header p:last-child{color:#737d76;margin-top:5px;font-size:11px;line-height:1.5}.project-dialog-header>button{flex:none}.project-latest-release{border-bottom:1px solid #e3e6e3;padding:18px 0}.project-latest-release h4,.project-detail-section-heading h4,.danger-zone h4{color:#344239;margin:0;font-size:13px}.project-latest-release>div{margin-top:10px}.release-copy{grid-template-columns:90px minmax(0,1fr) auto;align-items:start;gap:16px;display:grid}.release-copy strong{color:#345a46;font-size:14px}.release-copy p{color:#59645d;font-size:11px;line-height:1.5}.release-copy small{color:#858e87;font-size:9px}.project-detail-columns{grid-template-columns:1fr 1fr;gap:24px;padding:20px 0;display:grid}.project-detail-columns>section+section{border-left:1px solid #e3e6e3;padding-left:24px}.project-detail-section-heading{justify-content:space-between;align-items:end;margin-bottom:10px;display:flex}.project-release-list,.project-details-relations{max-height:250px;display:grid;overflow:auto}.project-release-item{border-top:1px solid #e8ebe8;grid-template-columns:72px minmax(0,1fr);gap:3px 10px;padding:11px 0;display:grid}.project-release-item strong{color:#3e5c4c;grid-row:1/span 2;font-size:10px}.project-release-item p{color:#59635c;font-size:10px;line-height:1.45}.project-release-item small{color:#89918b;font-size:9px}.project-detail-relation{border-top:1px solid #e8ebe8;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:11px 0;display:grid}.project-detail-relation>div:first-child{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px 8px;display:grid}.project-detail-relation strong{font-size:10px}.project-detail-relation small{color:#879088;grid-column:2;font-size:9px}.project-detail-relation-actions{align-items:center;gap:5px;display:flex}.project-detail-relation-actions button{min-height:28px;padding:5px 8px}.project-dialog-actions{border-top:1px solid #e2e6e2;justify-content:space-between;align-items:center;gap:20px;padding-top:16px;display:flex}.project-dialog-actions span{color:#89918b;font-size:9px}.management-summary{border-bottom:1px solid #e2e6e2;grid-template-columns:repeat(3,1fr);display:grid}.management-summary div{padding:18px 16px}.management-summary div+div{border-left:1px solid #e4e7e4}.management-summary span,.management-summary strong{display:block}.management-summary span{color:#89918b;font-size:9px}.management-summary strong{color:#3c4a42;margin-top:4px;font-size:12px}.danger-zone{background:#fcf8f7;border:1px solid #e5cfcc;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;margin-top:22px;padding:18px;display:grid}.danger-zone p{color:#7d6966;margin-top:5px;font-size:10px;line-height:1.5}.delete-confirmation{border-top:1px solid #ead8d5;grid-column:1/-1;padding-top:16px}.delete-confirmation label{color:#6f5c59;gap:6px;font-size:10px;display:grid}.delete-confirmation>p{color:#99483f}.delete-confirmation>div{justify-content:flex-end;gap:7px;margin-top:12px;display:flex}.knowledge-edit-dialog{width:min(880px,100vw - 32px)}.knowledge-edit-columns{grid-template-columns:1.15fr .85fr;gap:28px;padding-top:22px;display:grid}.knowledge-edit-columns>section+section{border-left:1px solid #e1e5e2;padding-left:28px}.knowledge-edit-columns h4{color:#344239;margin:0 0 6px;font-size:13px}.knowledge-edit-columns section>p{color:#78817b;font-size:10px;line-height:1.5}.knowledge-editor-form{gap:13px;margin-top:16px;display:grid}.knowledge-taxonomy-fields{grid-template-columns:repeat(3,1fr);gap:9px;display:grid}.knowledge-editor-form label{color:#5f6962;gap:6px;font-size:10px;font-weight:600;display:grid}.knowledge-editor-form .knowledge-classification-warning{color:#755f35;background:#faf8f1;border:1px solid #e3d8bf;border-radius:7px;padding:9px 10px;font-size:10px;line-height:1.5}.knowledge-confirmation-fields{background:#f9faf9;border:1px solid #dfe4e0;border-radius:8px;gap:11px;margin:0;padding:13px;display:grid}.knowledge-confirmation-fields legend{color:#45534a;padding:0 5px;font-size:10px;font-weight:680}.knowledge-confirmation-fields .knowledge-taxonomy-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.knowledge-confirmation-fields>p{color:#7c857f;font-size:9px;line-height:1.5}.knowledge-replacement-fields{background:#fbfaf6;border:1px solid #e3dccb;border-radius:8px;gap:10px;margin:0;padding:13px;display:grid}.knowledge-replacement-fields legend{color:#5e553f;padding:0 5px;font-size:10px;font-weight:680}.knowledge-replacement-fields>p{color:#837b69;font-size:9px;line-height:1.5}.knowledge-editor-actions{justify-content:flex-end;gap:7px;padding-top:4px;display:flex}.knowledge-editor-actions button{min-width:94px}.knowledge-project-dialog{width:min(780px,100vw - 32px)}.knowledge-project-form{gap:18px;padding-top:20px;display:grid}.knowledge-project-source{border-bottom:1px solid #e3e6e3;padding-bottom:16px}.knowledge-project-source span,.knowledge-project-preview span{color:#89918b;letter-spacing:.08em;font-size:9px;font-weight:700;display:block}.knowledge-project-source strong{color:#34443b;margin-top:5px;font-size:15px;display:block}.knowledge-project-source p{color:#6e7871;margin-top:4px;font-size:11px;line-height:1.5}.knowledge-project-mode{border:0;grid-template-columns:1fr 1fr;gap:9px;margin:0;padding:0;display:grid}.knowledge-project-mode legend,.knowledge-project-conflict-options legend{color:#5c665f;grid-column:1/-1;margin-bottom:4px;font-size:10px;font-weight:650}.knowledge-project-mode label{cursor:pointer;background:#fff;border:1px solid #d7ddd8;border-radius:8px;align-items:flex-start;gap:9px;padding:11px;display:flex}.knowledge-project-mode label:has(input:checked){background:#f5f8f6;border-color:#789487}.knowledge-project-mode label.disabled{cursor:not-allowed;opacity:.48}.knowledge-project-mode label span,.toggle-row span{gap:3px;display:grid}.knowledge-project-mode strong,.toggle-row strong{color:#3c4942;font-size:11px}.knowledge-project-mode small,.toggle-row small,.knowledge-project-fields small{color:#858e87;font-size:9px;line-height:1.4}.knowledge-project-fields{grid-template-columns:1fr 1fr;gap:12px;display:grid}.knowledge-project-fields label,.knowledge-project-relation>label:not(.toggle-row),.knowledge-project-reason{color:#5f6962;gap:6px;font-size:10px;font-weight:600;display:grid}.knowledge-project-fields .full-width{grid-column:1/-1}.knowledge-project-relation{border-top:1px solid #e5e8e5;border-bottom:1px solid #e5e8e5;grid-template-columns:minmax(0,1fr) 210px;align-items:end;gap:18px;padding:13px 0;display:grid}.toggle-row{cursor:pointer;align-items:flex-start;gap:9px;display:flex}.knowledge-project-preview{background:#fafbfa;border:1px solid #dce2dd;border-radius:8px;padding:14px}.knowledge-project-preview>div:first-child>strong{color:#34463c;margin-top:4px;font-size:12px;display:block}.knowledge-project-preview>div:first-child>p{color:#6d7770;margin-top:4px;font-size:10px;line-height:1.5}.knowledge-project-compare{background:#e1e5e2;border:1px solid #e1e5e2;grid-template-columns:1fr 1fr;gap:1px;margin-top:13px;display:grid}.knowledge-project-compare article{background:#fff;min-width:0;padding:11px}.knowledge-project-compare strong{color:#3f4b44;margin-top:4px;font-size:10px;display:block}.knowledge-project-compare p{color:#6e7771;white-space:pre-wrap;margin-top:4px;font-size:9px;line-height:1.5}.knowledge-project-conflict-options{border:0;border-top:1px solid #e5ddd4;gap:7px;margin:14px 0 0;padding:12px 0 0;display:grid}.knowledge-project-conflict-options label{color:#625b50;font-size:10px}.knowledge-project-actions{justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.knowledge-project-actions button{min-width:96px}.project-profile-dialog{color:#27312b;background:#fff;border:0;border-radius:12px;width:min(820px,100vw - 32px);max-height:calc(100vh - 48px);padding:0;overflow:hidden;box-shadow:0 24px 70px #18221c3d}.project-profile-dialog::backdrop{background:#1c221e6b}.project-profile-dialog-shell{box-sizing:border-box;max-height:calc(100vh - 48px);padding:24px;overflow:auto}.project-profile-dialog-header{border-bottom:1px solid #e1e5e2;justify-content:space-between;align-items:flex-start;gap:24px;padding-bottom:18px;display:flex}.project-profile-dialog-header h3{font-size:20px}.project-profile-dialog-header p:last-child{color:#737d76;margin-top:5px;font-size:11px;line-height:1.5}.project-profile-fields{grid-template-columns:minmax(0,1fr) 180px;gap:13px;padding:20px 0;display:grid}.project-profile-fields label,.project-source-row label{color:#5f6962;align-content:start;gap:6px;font-size:10px;font-weight:600;display:grid}.project-profile-fields small{color:#858e87;font-size:9px;font-weight:500}.project-profile-wide-field{grid-column:1/-1}.project-source-editor{border-top:1px solid #e2e6e2;padding:18px 0}.project-source-editor-heading{outline:none;justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.project-source-editor-heading h4{color:#344239;margin:0;font-size:13px}.project-source-editor-heading p{color:#78817b;margin-top:4px;font-size:10px;line-height:1.5}.project-source-list{gap:9px;margin-top:14px;display:grid}.project-source-row{background:#fafbfa;border:1px solid #dfe4e0;border-radius:8px;grid-template-columns:minmax(180px,1fr) 150px auto;align-items:end;gap:10px;padding:12px;display:grid}.project-source-wide-field{grid-column:1/span 2}.project-source-remove{color:#8b554e;background:0 0;border:0;min-height:32px;padding:6px 9px;font-size:10px}.project-source-remove:hover{color:#713b35;text-decoration:underline}.project-source-empty{color:#858e87;margin-top:13px;font-size:10px}.project-profile-state-note{color:#68736b;background:#f7f9f7;border:1px solid #dce2dd;border-radius:7px;padding:11px 12px;font-size:10px;line-height:1.55}.project-profile-error{color:#99483f;margin-top:11px;font-size:11px}.project-profile-dialog-actions{border-top:1px solid #e2e6e2;justify-content:flex-end;gap:8px;margin-top:18px;padding-top:16px;display:flex}.project-profile-dialog-actions button{min-width:100px}@media (width<=1180px){body{min-width:920px}.app-shell{grid-template-columns:210px 1fr}.two-column{grid-template-columns:1fr}.metrics article{padding-inline:16px}.relation-builder{grid-template-columns:1fr 1.6fr}.relation-target-step{border-top:1px solid #e4e8e4;border-left:0;grid-column:1/-1;padding-left:0}.relation-preview{grid-template-columns:minmax(150px,1fr) minmax(110px,.6fr) minmax(150px,1fr)}.personal-profile-layout{grid-template-columns:minmax(0,1fr) 300px}.personal-profile-table-head,.personal-profile-row{grid-template-columns:78px minmax(190px,1fr) minmax(135px,.75fr) 105px}}.graph-stage{background:#f9faf8;grid-template-columns:minmax(0,1fr);min-width:0;min-height:520px;display:grid;position:relative;overflow:hidden}.graph-stage.has-parent-projects{grid-template-columns:minmax(190px,220px) minmax(0,1fr)}.graph-canvas-active .graph-stage{min-height:0}.graph-canvas-panel{min-width:0;min-height:0;position:relative;overflow:hidden}#knowledge-graph{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}#knowledge-graph:active{cursor:grabbing}.project-hierarchy-aside{z-index:4;background:#fff;border-right:1px solid #dbe1dc;min-width:0;padding:18px 16px;position:relative}.project-hierarchy-aside header{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:3px 8px;display:grid}.project-hierarchy-aside header>span{color:#7e8881;letter-spacing:.1em;grid-column:1/-1;font-size:8px;font-weight:720}.project-hierarchy-aside header>strong{color:#30483a;font-size:15px;font-weight:680}.project-hierarchy-aside header>small{color:#60756a;background:#edf2ee;border-radius:999px;padding:2px 6px;font-size:8px;font-weight:680}.project-hierarchy-aside>p{color:#79837c;margin-top:7px;font-size:9px;line-height:1.5}.project-hierarchy-aside nav{border-top:1px solid #e4e8e5;margin-top:14px;display:grid}.project-parent-link{min-width:0;color:inherit;border-bottom:1px solid #e8ece9;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;padding:12px 1px;text-decoration:none;display:grid}.project-parent-link:hover{background:#f7f9f7}.project-parent-link:focus-visible{outline-offset:2px;outline:2px solid #3f6b5547}.project-parent-icon{color:#466c58;background:#edf3ef;border-radius:7px;place-items:center;width:32px;height:32px;display:grid}.project-parent-icon svg{width:17px;height:17px}.project-parent-icon path{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round}.project-parent-link>span:nth-child(2){gap:2px;min-width:0;display:grid}.project-parent-link small{color:#7e8982;font-size:8px}.project-parent-link strong{color:#34483d;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:680;overflow:hidden}.project-parent-link em{color:#6f7a73;text-overflow:ellipsis;white-space:nowrap;font-size:8px;font-style:normal;overflow:hidden}.project-parent-link b{color:#54705f;font-size:11px;font-weight:680}.graph-relation-legend{z-index:4;position:absolute;top:12px;left:12px}.graph-relation-legend>summary{color:#536159;cursor:pointer;background:#fffffff2;border:1px solid #d8ded9;border-radius:7px;grid-template-columns:15px auto auto 8px;align-items:center;gap:6px;min-height:30px;padding:5px 8px;font-size:9px;font-weight:660;list-style:none;display:grid;box-shadow:0 3px 12px #26342b14}.graph-relation-legend>summary::-webkit-details-marker{display:none}.graph-relation-legend>summary svg{width:15px;height:15px}.graph-relation-legend>summary path{fill:none;stroke:#557161;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round}.graph-relation-legend>summary small{color:#68776e;text-align:center;background:#edf1ee;border-radius:999px;justify-self:end;width:fit-content;min-width:17px;padding:1px 5px;font-size:8px}.graph-relation-legend>summary i{border-bottom:1.3px solid #7d8881;border-right:1.3px solid #7d8881;width:6px;height:6px;transform:translateY(-2px)rotate(45deg)}.graph-relation-legend[open]>summary i{transform:translateY(2px)rotate(225deg)}.graph-relation-legend-panel{background:#fffffffa;border:1px solid #d8ded9;border-radius:8px;width:250px;margin-top:6px;padding:12px;box-shadow:0 12px 30px #23302821}.graph-relation-legend-panel header{gap:2px;padding-bottom:9px;display:grid}.graph-relation-legend-panel header strong{color:#34473c;font-size:11px}.graph-relation-legend-panel header span{color:#818b84;font-size:8px}.graph-relation-legend-panel ul{border-top:1px solid #e5e9e6;max-height:300px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.graph-relation-legend-panel li{border-bottom:1px solid #edf0ed;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:8px;min-width:0;padding:8px 0;display:grid}.graph-relation-legend-panel li:last-child{border-bottom:0}.graph-relation-legend-panel li>svg{color:#54705f;background:#f0f4f1;border-radius:7px;width:28px;height:28px;padding:6px}.graph-relation-legend-panel li path{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round}.graph-relation-legend-panel li>span{gap:2px;min-width:0;display:grid}.graph-relation-legend-panel li strong{color:#3d4c43;font-size:10px}.graph-relation-legend-panel li small{color:#7b857e;text-overflow:ellipsis;white-space:nowrap;font-size:8px;overflow:hidden}.graph-search-legend{z-index:2;color:#765019;pointer-events:none;background:#fffcf4f0;border:1px solid #e1c997;border-radius:6px;align-items:center;gap:7px;padding:7px 9px;font-size:10px;font-weight:680;display:flex;position:absolute;top:12px;left:12px;box-shadow:0 4px 14px #49351717}.graph-search-legend[hidden]{display:none}.graph-search-legend i{background:#bd7416;border-radius:50%;width:8px;height:8px}.graph-search-status{z-index:3;box-sizing:border-box;color:#354139;background:#fffffff7;border:1px solid #d8ded9;border-radius:9px;width:min(440px,100% - 36px);padding:15px 16px;position:absolute;top:18px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #2b383021}.graph-search-status[hidden]{display:none}.graph-search-status-kicker{color:#875b1c;letter-spacing:.08em;margin-bottom:5px;font-size:9px;font-weight:720;display:block}.graph-search-status-title{font-size:14px;font-weight:680;display:block}.graph-search-status-copy{color:#6b756e;margin-top:5px;font-size:10px;line-height:1.55}.graph-search-suggestions{gap:5px;margin-top:11px;display:grid}.graph-search-suggestion{color:inherit;background:#f8faf8;border:1px solid #e0e5e1;border-radius:6px;justify-content:space-between;align-items:center;gap:18px;padding:8px 9px;text-decoration:none;display:flex}.graph-search-suggestion:hover{background:#f3f7f4;border-color:#a8b9ae}.graph-search-suggestion>span{gap:2px;min-width:0;display:grid}.graph-search-suggestion strong{color:#3b4941;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.graph-search-suggestion small{color:#859088;font-size:9px}.graph-search-suggestion b{color:#446b57;flex:none;font-size:10px;font-weight:680}.graph-empty{color:#858d87;pointer-events:none;place-items:center;font-size:13px;display:grid;position:absolute;inset:0}.graph-hint{color:#88908a;text-align:right;margin-top:8px;font-size:10px}.graph-edge{stroke:#b5beb7;stroke-width:1.2px;opacity:.72;pointer-events:none;transition:opacity .12s,stroke .12s,stroke-width .12s}.graph-edge.historical{stroke-dasharray:5 4;opacity:.45}.graph-edge.human-change-pending{stroke:#c48738;stroke-width:2.2px;stroke-dasharray:4 3;opacity:.9}.graph-edge.human-change-viewed{stroke:#6f8299}.graph-edge-hit{stroke:#0000;stroke-width:15px;cursor:pointer}.graph-edge-label{opacity:.9;pointer-events:none;transition:opacity .12s}.graph-edge-label-bg{fill:#f9faf8f0;stroke:#dce2dd;stroke-width:.8px;transition:fill .12s,stroke .12s}.graph-edge-label-icon{fill:none;stroke:#6e7d74;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;transition:stroke .12s}.graph-edge-label-text{fill:#66736b;pointer-events:none;font-size:8.5px;font-weight:650;transition:fill .12s}.graph-arrow{fill:#aeb8b0}.graph-node{cursor:move;outline:none;transition:opacity .12s}.graph-node-human-marker{fill:#d18a30;stroke:#fff;stroke-width:1.5px;pointer-events:none}.graph-node.human-change-viewed .graph-node-human-marker{fill:#70849b}.graph-node-shape{stroke:#fff;stroke-width:2.5px;filter:drop-shadow(0 1px 2px #1c2a2126);transition:stroke .12s,stroke-width .12s,opacity .12s}.graph-project-ring{fill:#f7faf8;stroke:#b9cbbf;stroke-width:1.5px;filter:drop-shadow(0 2px 4px #1f31271f);transition:fill .12s,stroke .12s,stroke-width .12s}.graph-node.project-node .graph-node-shape{fill:#466c58;stroke:#fff;stroke-width:2.5px}.graph-project-icon{fill:none;stroke:#fff;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.graph-node-label{fill:#3b443e;text-anchor:middle;pointer-events:none;paint-order:stroke;stroke:#f9faf8;stroke-width:3px;stroke-linejoin:round;font-size:10px;font-weight:540}.graph-node-id{fill:#7f8982;letter-spacing:.02em;text-anchor:middle;pointer-events:none;opacity:0;paint-order:stroke;stroke:#f9faf8;stroke-width:2.5px;stroke-linejoin:round;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:7px;font-weight:560;transition:opacity .12s}.graph-node.project-node .graph-node-id{opacity:.72}.graph-search-badge{pointer-events:none;display:none}.graph-search-badge rect{fill:#fff8e8;stroke:#bd7416;stroke-width:1px}.graph-search-badge text{fill:#855916;text-anchor:middle;paint-order:stroke;stroke:#fff8e8;stroke-width:1px;font-size:8px;font-weight:740}.graph-node.search-match .graph-search-badge{display:block}.graph-node:hover .graph-node-id,.graph-node:focus-visible .graph-node-id,.graph-node.selected .graph-node-id{opacity:1}.graph-node:not(.project-node):hover .graph-node-shape,.graph-node:not(.project-node):focus-visible .graph-node-shape,.graph-node:not(.project-node).selected .graph-node-shape{stroke:#334d42;stroke-width:3.5px}.graph-node:not(.project-node).related .graph-node-shape{stroke:#789282;stroke-width:3px}.graph-node.project-node:hover .graph-project-ring,.graph-node.project-node:focus-visible .graph-project-ring,.graph-node.project-node.selected .graph-project-ring{fill:#edf4ef;stroke:#315541;stroke-width:2.4px}.graph-node.project-node.related .graph-project-ring{stroke:#789282;stroke-width:2px}.graph-node:not(.project-node).search-match .graph-node-shape{stroke:#bd7416;stroke-width:5px;filter:drop-shadow(0 0 5px #bd74166b)}.graph-node.project-node.search-match .graph-project-ring{fill:#fff8e8;stroke:#bd7416;stroke-width:3px;filter:drop-shadow(0 0 5px #bd741652)}.graph-node.pinned .graph-node-shape{stroke:#658271;stroke-width:3px}.graph-node.dimmed,.graph-edge.dimmed,.graph-edge-label.dimmed{opacity:.08}.graph-node.dimmed .graph-node-id{opacity:.05}.graph-edge.related{stroke:#6c8a79;stroke-width:2px;opacity:.9}.graph-edge.selected{stroke:#334d42;stroke-width:2.8px;opacity:1}.graph-edge.search-match{stroke:#bd7416;stroke-width:2.8px;opacity:1}.graph-edge-label.search-match{opacity:1}.graph-edge-label.search-match .graph-edge-label-bg{fill:#fff8e8;stroke:#d39a4e}.graph-edge-label.search-match .graph-edge-label-icon{stroke:#855916}.graph-edge-label.search-match .graph-edge-label-text{fill:#855916}.graph-edge-label.related,.graph-edge-label.selected{opacity:1}.graph-edge-label.related .graph-edge-label-bg,.graph-edge-label.selected .graph-edge-label-bg{fill:#f2f7f4;stroke:#9fb5a8}.graph-edge-label.related .graph-edge-label-icon,.graph-edge-label.selected .graph-edge-label-icon{stroke:#405f4f}.graph-edge-label.related .graph-edge-label-text,.graph-edge-label.selected .graph-edge-label-text{fill:#405f4f;font-weight:700}#app{height:100%}.primary-nav a{color:#505852;text-align:left;background:0 0;border:0;border-radius:7px;grid-template-columns:24px 1fr auto;align-items:center;width:100%;padding:9px 10px;font-size:13px;text-decoration:none;display:grid;position:relative}.primary-nav a:hover{background:#e4e7e3}.primary-nav a:focus-visible{outline-offset:1px;outline:2px solid #91a398}.primary-nav a.is-active{color:#243b31;background:#dde4df;font-weight:650}.primary-nav a.space-nav-button{min-height:52px;padding-block:8px}.primary-nav a.personal-space-button.is-active{color:#254234;background:#dde7e1}.primary-nav a.public-space-button.is-active{color:#2c414d;background:#e0e6e9}.feedback-button{text-align:left;cursor:pointer;width:auto}.status-dot.idle,.provider-row i.disconnected{background:#aeb5af}.provider-row i.error{background:#b94e45}.provider-row i.ready{background:#3f8b64}.view-loading{color:#778079;place-items:center;min-height:240px;font-size:12px;display:grid}.inline-error{color:#8b3f38}.inspector-meta>div{min-width:0}.inspector-meta dd{overflow-wrap:anywhere}.inspector-placeholder{color:#7b847e;font-size:11px;line-height:1.55}.feedback,.project-card,.knowledge-row,.personal-profile-row{transition:border-color .15s,background-color .15s}.vue-personal-profile{flex-direction:column;padding:18px 32px 20px;display:flex;overflow:hidden}.vue-knowledge-view{flex-direction:column;padding:18px 24px 20px;display:flex;overflow:hidden}.vue-knowledge-view .knowledge-layout{flex:1;min-height:0}.compact-relation-form{grid-template-columns:repeat(3,minmax(180px,1fr)) auto;align-items:end;gap:12px;padding:16px;display:grid}.compact-relation-form label{color:#67716a;gap:5px;font-size:10px;display:grid}.compact-relation-form select{min-width:0}.compact-relation-form .searchable-select{width:100%;min-width:0}.compact-relation-preview{background:#f8faf8;border:1px solid #dfe5e0;border-radius:8px;grid-column:1/-1;gap:4px;padding:11px 12px;display:grid}.compact-relation-preview span{color:#7f8982;letter-spacing:.08em;font-size:9px;font-weight:700}.compact-relation-preview strong{color:#35483e;font-size:11px}.compact-relation-preview p{color:#717b74;font-size:10px;line-height:1.5}.project-delete-confirmation{color:#6f5c59;gap:7px;padding:18px 0;font-size:10px;display:grid}.project-delete-confirmation strong{color:#493c3a}.vue-dialog[open]{z-index:20;width:min(980px,100vw - 64px);max-height:calc(100vh - 64px);margin:auto;display:grid;position:fixed;inset:0}.knowledge-edit-dialog.vue-dialog{width:min(1080px,100vw - 64px)}.vue-dialog::backdrop{background:#171f1b59}@media (width<=1180px){.compact-relation-form{grid-template-columns:repeat(2,minmax(180px,1fr))}}.locale-switcher{background:#f5f7f5;border:1px solid #d8ded9;border-radius:8px;align-items:center;gap:2px;padding:2px;display:inline-flex}.locale-switcher button{color:#6a746d;min-width:30px;min-height:26px;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 7px;font-size:11px;font-weight:700}.locale-switcher button:hover{color:#2f5d49}.locale-switcher button[aria-pressed=true]{color:#2f5d49;background:#fff;box-shadow:0 1px 2px #20342a1f}
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/OverviewPage-ul7g7HXh.js","assets/console-B_Ena2DS.js","assets/PersonalProfilePage-CC40Pw2L.js","assets/identity-CjBwYSMX.js","assets/model-C-5RVIJ2.js","assets/KnowledgeInspector-BZkB2wJn.js","assets/KnowledgeInspector-CrGYxEob.css","assets/PersonalProfilePage-S8ZcG2LU.css","assets/PersonalProjectsPage-CPIEcShD.js","assets/KnowledgeWorkspace-CXPE4GCD.js","assets/paths-BkULqmGI.js","assets/vue-router-DnD3hUm7.js","assets/KnowledgeOrganizerPage-DlvcLwlL.js","assets/KnowledgeOrganizerPage-CZAF_OlN.css","assets/PublicProjectsPage-C700sR7z.js","assets/KnowledgePage-CNQXd15y.js","assets/ReviewPage-7MDDUDgA.js","assets/ConnectionsPage-CCKWm-6p.js"])))=>i.map(i=>d[i]);
2
- import{B as e,C as t,D as n,E as r,F as i,I as a,J as o,K as s,M as c,N as l,S as u,b as d,c as f,d as p,f as m,l as h,p as g,q as _,s as v,t as ee,u as y,w as b,x,y as S,z as te}from"./console-B_Ena2DS.js";import{_ as ne,n as C,r as w,t as T}from"./paths-BkULqmGI.js";import{i as E,n as re,r as D,t as O}from"./vue-router-DnD3hUm7.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var ie=`/assets/fuli-logo-DGuyqchQ.png`,k=[`aria-label`],A=[`lang`,`aria-label`,`aria-pressed`,`onClick`],ae=n({__name:`LocaleSwitcher`,setup(e){let t=d(()=>f()),n={"zh-CN":`中`,"en-US":`EN`};function r(e){e!==t.value&&y(e)}return(e,a)=>(l(),b(`div`,{class:`locale-switcher`,role:`group`,"aria-label":s(p)(`common.language.label`)},[(l(!0),b(S,null,i(s(v),e=>(l(),b(`button`,{key:e,type:`button`,lang:e,"aria-label":s(p)(e===`zh-CN`?`common.language.chinese`:`common.language.english`),"aria-pressed":t.value===e,onClick:t=>r(e)},o(n[e]),9,A))),128))],8,k))}}),j=[`routes.`,`common.`];function M(e,t=``){let n=typeof e==`string`&&e?e:t;return j.some(e=>n.startsWith(e))?p(n):n}function N(e){if(typeof document>`u`)return;let t=M(e,`routes.overview.title`);document.title=`${t} · ${p(`common.brand`)}`}var oe={class:`app-shell`},se={class:`sidebar`},ce={class:`brand-block`},le=[`src`],ue=[`aria-label`],de={class:`nav-section-label`},fe={class:`nav-label`},P={class:`nav-section-label nav-space-label`},F={class:`nav-copy`},I={class:`nav-copy`},L={class:`nav-copy`},R={class:`nav-section-label nav-public-label`},z={class:`nav-copy`},B={class:`nav-section-label nav-tool-label`},V={class:`nav-label`},pe={class:`nav-label`},me={class:`nav-label`},he={class:`sidebar-foot`},ge=[`aria-label`],_e={class:`runtime-status`},ve={class:`runtime-status`},ye=[`data-enabled`,`title`],be=[`aria-label`,`aria-checked`,`checked`,`disabled`],xe=[`data-enabled`,`title`],Se=[`aria-label`,`aria-checked`,`checked`,`disabled`],Ce={class:`workspace`},we={class:`topbar`},Te={class:`topbar-heading`},Ee={class:`eyebrow`},De={key:0,class:`topbar-description`},Oe={class:`topbar-actions`},ke={key:0,class:`mode-chip`},H=n({__name:`ConsoleLayout`,setup(n){let i=ee(),f=ne(),m=d(()=>i.activePersonalSpace?.id??`current`),h=d(()=>C(m.value,`graph`)),g=d(()=>T(`personal`,m.value,`directory`)),v=d(()=>M(f.meta.title,`routes.overview.title`)),y=d(()=>String(f.meta.eyebrow??`LOCAL + FEDERATED`)),w=d(()=>M(f.meta.description)),E=d(()=>i.publicRuntimeStatus===`ready`),D=d(()=>i.publicRuntimeStatus===`ready`?p(`console.services.publicReady`):i.publicRuntimeStatus===`error`?p(`console.services.publicError`):p(`console.services.publicOffline`)),k=d(()=>i.publicRuntimeStatus===`ready`?p(`console.services.publicAvailable`):i.publicRuntimeStatus===`error`?p(`console.services.localUnaffected`):p(`console.services.localOnly`)),A=d(()=>i.state?.capturePolicy?.enabled!==!1),j=d(()=>i.state?.agentAccessPolicy?.enabled!==!1),H=d(()=>i.state?.capabilities?.browsePublicProjects!==!1),U=d(()=>{let e=i.state?.capabilities;return e?.submitKnowledge!==!1||e?.reviewProposals===!0});c(()=>{i.runtimeStatus===`idle`&&i.refresh()}),te(()=>{N(f.meta.title)});function W(e){let t=e.currentTarget;i.updateCapturePolicy(t.checked)}function G(e){let t=e.currentTarget;i.updateAgentAccessPolicy(t.checked)}return(n,c)=>(l(),b(`div`,oe,[x(`aside`,se,[x(`div`,ce,[x(`img`,{class:`brand-mark`,src:s(ie),alt:``,"aria-hidden":`true`},null,8,le),x(`div`,null,[x(`h1`,null,o(s(p)(`common.brand`)),1),c[2]||=x(`p`,null,`Context Graph`,-1)])]),x(`nav`,{class:`primary-nav`,"aria-label":s(p)(`console.navigation.aria`)},[x(`p`,de,o(s(p)(`console.navigation.workspace`)),1),r(s(O),{to:`/`,"exact-active-class":`is-active`},{default:e(()=>[c[3]||=x(`span`,{class:`nav-icon nav-icon-overview`,"aria-hidden":`true`},null,-1),x(`span`,fe,o(s(p)(`console.navigation.overview`)),1)]),_:1}),x(`p`,P,o(s(p)(`console.navigation.personalSpace`)),1),r(s(O),{class:`space-nav-button personal-profile-button`,to:`/preferences`,"active-class":`is-active`},{default:e(()=>[c[4]||=x(`span`,{class:`nav-icon nav-icon-personal-profile`,"aria-hidden":`true`},null,-1),x(`span`,F,[x(`strong`,null,o(s(p)(`console.navigation.preferences`)),1),x(`small`,null,o(s(p)(`console.navigation.preferencesMeta`)),1)])]),_:1}),r(s(O),{class:`space-nav-button knowledge-organizer-button`,to:`/organize`,"active-class":`is-active`},{default:e(()=>[c[5]||=x(`span`,{class:`nav-icon nav-icon-knowledge-organizer`,"aria-hidden":`true`},null,-1),x(`span`,I,[x(`strong`,null,o(s(p)(`console.navigation.organizer`)),1),x(`small`,null,o(s(p)(`console.navigation.organizerMeta`)),1)])]),_:1}),r(s(O),{class:`space-nav-button personal-space-button`,to:h.value,"active-class":`is-active`},{default:e(()=>[c[6]||=x(`span`,{class:`nav-icon nav-icon-personal-project`,"aria-hidden":`true`},null,-1),x(`span`,L,[x(`strong`,null,o(s(p)(`console.navigation.personalProjects`)),1),x(`small`,null,o(s(p)(`console.navigation.personalProjectsMeta`)),1)])]),_:1},8,[`to`]),H.value?(l(),b(S,{key:0},[x(`p`,R,o(s(p)(`console.navigation.publicSpace`)),1),r(s(O),{class:`space-nav-button public-space-button`,to:`/public-projects`,"active-class":`is-active`},{default:e(()=>[c[7]||=x(`span`,{class:`nav-icon nav-icon-public-project`,"aria-hidden":`true`},null,-1),x(`span`,z,[x(`strong`,null,o(s(p)(`console.navigation.publicProjects`)),1),x(`small`,null,o(s(p)(`console.navigation.publicProjectsMeta`)),1)])]),_:1})],64)):t(``,!0),x(`p`,B,o(s(p)(`console.navigation.governance`)),1),r(s(O),{to:g.value,"active-class":`is-active`},{default:e(()=>[c[8]||=x(`span`,{class:`nav-icon nav-icon-knowledge-graph`,"aria-hidden":`true`},null,-1),x(`span`,V,o(s(p)(`console.navigation.knowledge`)),1)]),_:1},8,[`to`]),U.value?(l(),u(s(O),{key:1,to:`/review`,"active-class":`is-active`},{default:e(()=>[c[9]||=x(`span`,{class:`nav-icon nav-icon-review`,"aria-hidden":`true`},null,-1),x(`span`,pe,o(s(p)(`console.navigation.review`)),1)]),_:1})):t(``,!0),r(s(O),{to:`/connections`,"active-class":`is-active`},{default:e(()=>[c[10]||=x(`span`,{class:`nav-icon nav-icon-connections`,"aria-hidden":`true`},null,-1),x(`span`,me,o(s(p)(`console.navigation.connections`)),1)]),_:1})],8,ue),x(`div`,he,[x(`div`,{class:`service-runtime-list`,"aria-label":s(p)(`console.services.aria`)},[x(`div`,_e,[x(`span`,{class:_([`status-dot`,s(i).runtimeStatus])},null,2),x(`div`,null,[x(`strong`,null,o(s(i).runtimeStatus===`ready`?s(p)(`console.services.localReady`):s(i).runtimeStatus===`error`?s(p)(`console.services.localError`):s(p)(`console.services.localConnecting`)),1),c[11]||=x(`small`,null,`Graphiti / Neo4j`,-1)])]),x(`div`,ve,[x(`span`,{class:_([`status-dot`,s(i).publicRuntimeStatus])},null,2),x(`div`,null,[x(`strong`,null,o(D.value),1),x(`small`,null,o(k.value),1)])])],8,ge),x(`label`,{class:`capture-setting`,"data-enabled":A.value,title:A.value?s(p)(`console.capture.enabledTitle`):s(p)(`console.capture.disabledTitle`)},[x(`span`,null,o(s(p)(`console.capture.label`)),1),x(`input`,{type:`checkbox`,role:`switch`,"aria-label":s(p)(`console.capture.aria`),"aria-checked":A.value,checked:A.value,disabled:s(i).runtimeStatus!==`ready`,onChange:W},null,40,be),c[12]||=x(`i`,{"aria-hidden":`true`},null,-1)],8,ye),x(`label`,{class:`capture-setting agent-access-setting`,"data-enabled":j.value,title:j.value?s(p)(`console.agentAccess.enabledTitle`):s(p)(`console.agentAccess.disabledTitle`)},[x(`span`,null,[x(`strong`,null,o(s(p)(`console.agentAccess.label`)),1),x(`small`,null,o(j.value?s(p)(`console.agentAccess.enabledCopy`):s(p)(`console.agentAccess.disabledCopy`)),1)]),x(`input`,{type:`checkbox`,role:`switch`,"aria-label":s(p)(`console.agentAccess.aria`),"aria-checked":j.value,checked:j.value,disabled:s(i).runtimeStatus!==`ready`,onChange:G},null,40,Se),c[13]||=x(`i`,{"aria-hidden":`true`},null,-1)],8,xe)])]),x(`main`,Ce,[x(`header`,we,[x(`div`,Te,[x(`p`,Ee,o(y.value),1),x(`h2`,null,o(v.value),1),w.value?(l(),b(`p`,De,o(w.value),1)):t(``,!0)]),x(`div`,Oe,[E.value?(l(),b(`span`,ke,o(s(p)(`console.publicReady`)),1)):t(``,!0),r(ae),x(`button`,{class:`quiet-button`,type:`button`,onClick:c[0]||=(...e)=>s(i).refresh&&s(i).refresh(...e)},o(s(p)(`common.actions.refresh`)),1)])]),s(i).feedback?(l(),b(`button`,{key:0,class:_([`feedback feedback-button`,{success:s(i).feedback.tone===`success`}]),type:`button`,"aria-live":`polite`,onClick:c[1]||=(...e)=>s(i).clearFeedback&&s(i).clearFeedback(...e)},o(s(i).feedback.message),3)):t(``,!0),r(s(re),null,{default:e(({Component:e})=>[(l(),u(a(e)))]),_:1})])]))}}),U=n({__name:`App`,setup(e){return(e,t)=>(l(),u(H))}}),W=new Set([`overview`,`personal-profile`,`personal-projects`,`public-projects`,`graph`,`review`,`connections`]);function G(e){let t=Ae(e.hash);if(t)return t;let n=q(e.searchParams.get(`view`));if(!n||!W.has(n))return null;let r={overview:`/`,"personal-profile":`/preferences`,"public-projects":`/public-projects`,review:`/review`,connections:`/connections`};if(r[n])return{path:r[n]};let i=q(e.searchParams.get(`scope`)),a=q(e.searchParams.get(`space`)),o=q(e.searchParams.get(`project`)),s=K(e.searchParams.get(`mode`),n),c=w(e.searchParams);return n===`personal-projects`?a?{path:C(a,s,o),query:c}:{path:`/personal/current/projects/graph`,query:c}:n===`graph`?!a||i!==`personal`&&i!==`public`?{path:`/knowledge`,query:c}:{path:T(i,a,s,{projectId:o}),query:c}:null}function Ae(e){let t=e.match(/^#\/knowledge\/(personal|project)\/([^/]+)\/(entity|relationship)\/(.+)$/);if(!t)return null;let[,n,r,i,a]=t;return{path:T(n===`project`?`public`:`personal`,J(r),`directory`,{itemKind:i,itemId:J(a)})}}function K(e,t){return e===`directory`||e===`graph`?e:t===`personal-projects`?`graph`:`directory`}function q(e,t=512){return e&&e.length<=t?e:null}function J(e){try{return decodeURIComponent(e)}catch{return e}}var je=`modulepreload`,Me=function(e){return`/`+e},Y={},X=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=Me(t,n),t=s(t),t in Y)return;Y[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:je,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Z=D({history:E(`/`),routes:[{path:`/`,name:`overview`,component:()=>X(()=>import(`./OverviewPage-ul7g7HXh.js`),__vite__mapDeps([0,1])),meta:{eyebrow:`LOCAL + FEDERATED`,title:`routes.overview.title`}},{path:`/preferences`,name:`personal-profile`,component:()=>X(()=>import(`./PersonalProfilePage-CC40Pw2L.js`),__vite__mapDeps([2,1,3,4,5,6,7])),meta:{eyebrow:`PERSONAL LENS`,title:`routes.preferences.title`,description:`routes.preferences.description`}},{path:`/personal/:spaceId/projects/:projectId/:mode/:itemKind/:itemId`,name:`personal-project-item`,component:()=>X(()=>import(`./PersonalProjectsPage-CPIEcShD.js`),__vite__mapDeps([8,1,9,10,11,3,4,5,6])),meta:{eyebrow:`PERSONAL PROJECT`,title:`routes.personalProjects.title`}},{path:`/personal/:spaceId/projects/:mode/:itemKind/:itemId`,name:`personal-projects-item`,component:()=>X(()=>import(`./PersonalProjectsPage-CPIEcShD.js`),__vite__mapDeps([8,1,9,10,11,3,4,5,6])),meta:{eyebrow:`PERSONAL PROJECTS`,title:`routes.personalProjects.title`,description:`routes.personalProjects.description`}},{path:`/personal/:spaceId/projects/:mode`,name:`personal-projects`,component:()=>X(()=>import(`./PersonalProjectsPage-CPIEcShD.js`),__vite__mapDeps([8,1,9,10,11,3,4,5,6])),meta:{eyebrow:`PERSONAL PROJECTS`,title:`routes.personalProjects.title`,description:`routes.personalProjects.description`}},{path:`/personal/:spaceId/projects/:projectId/:mode`,name:`personal-project`,component:()=>X(()=>import(`./PersonalProjectsPage-CPIEcShD.js`),__vite__mapDeps([8,1,9,10,11,3,4,5,6])),meta:{eyebrow:`PERSONAL PROJECT`,title:`routes.personalProjects.title`}},{path:`/organize`,name:`knowledge-organizer`,component:()=>X(()=>import(`./KnowledgeOrganizerPage-DlvcLwlL.js`),__vite__mapDeps([12,1,3,4,5,6,13])),meta:{eyebrow:`KNOWLEDGE CLASSIFICATION`,title:`routes.organizer.title`,description:`routes.organizer.description`}},{path:`/public-projects`,name:`public-projects`,component:()=>X(()=>import(`./PublicProjectsPage-C700sR7z.js`),__vite__mapDeps([14,1,10,3])),meta:{eyebrow:`PUBLIC PROJECTS`,title:`routes.publicProjects.title`,description:`routes.publicProjects.description`}},{path:`/knowledge`,name:`knowledge-default`,component:()=>X(()=>import(`./KnowledgePage-CNQXd15y.js`),__vite__mapDeps([15,1,9,10,11,3,4,5,6])),meta:{eyebrow:`KNOWLEDGE BASE`,title:`routes.knowledge.title`}},{path:`/knowledge/:scope/:spaceId/:projectId/:mode/:itemKind/:itemId`,name:`project-knowledge-item`,component:()=>X(()=>import(`./KnowledgePage-CNQXd15y.js`),__vite__mapDeps([15,1,9,10,11,3,4,5,6])),meta:{eyebrow:`KNOWLEDGE BASE`,title:`routes.knowledge.title`}},{path:`/knowledge/:scope/:spaceId/:mode/:itemKind/:itemId`,name:`knowledge-item`,component:()=>X(()=>import(`./KnowledgePage-CNQXd15y.js`),__vite__mapDeps([15,1,9,10,11,3,4,5,6])),meta:{eyebrow:`KNOWLEDGE BASE`,title:`routes.knowledge.title`}},{path:`/knowledge/:scope/:spaceId/:projectId/:mode`,name:`project-knowledge`,component:()=>X(()=>import(`./KnowledgePage-CNQXd15y.js`),__vite__mapDeps([15,1,9,10,11,3,4,5,6])),meta:{eyebrow:`KNOWLEDGE BASE`,title:`routes.knowledge.title`}},{path:`/knowledge/:scope/:spaceId/:mode`,name:`knowledge`,component:()=>X(()=>import(`./KnowledgePage-CNQXd15y.js`),__vite__mapDeps([15,1,9,10,11,3,4,5,6])),meta:{eyebrow:`KNOWLEDGE BASE`,title:`routes.knowledge.title`}},{path:`/review`,name:`review`,component:()=>X(()=>import(`./ReviewPage-7MDDUDgA.js`),__vite__mapDeps([16,1,3,4])),meta:{eyebrow:`REVIEW WORKSPACE`,title:`routes.review.title`,description:`routes.review.description`}},{path:`/connections`,name:`connections`,component:()=>X(()=>import(`./ConnectionsPage-CCKWm-6p.js`),__vite__mapDeps([17,1,3])),meta:{eyebrow:`SERVICE CONNECTIONS`,title:`routes.connections.title`,description:`routes.connections.description`}},{path:`/:pathMatch(.*)*`,redirect:`/`}],scrollBehavior:()=>({top:0})}),Q=!1;Z.beforeEach(()=>Q||typeof window>`u`?!0:(Q=!0,G(new URL(window.location.href))??!0)),Z.afterEach(e=>{N(e.meta.title)});var $=g(U);$.use(m()),$.use(h),$.use(Z),await Z.isReady(),$.mount(`#app`);
@@ -1 +0,0 @@
1
- import{c as e,d as t}from"./console-B_Ena2DS.js";var n=new Set([`ProjectSpace`,`PersonalSpace`,`PersonalProject`,`ProjectPurpose`,`ProjectScope`,`ProjectSource`,`ProjectBoundary`,`ProjectAssessment`,`AssessmentDimension`,`RelatedPersonalProject`]),r=new Set([`ProjectSpace`,`PersonalSpace`,`PersonalProject`,`ProjectPurpose`,`ProjectScope`,`TechnicalSummary`,`ProjectSource`,`ProjectBoundary`,`ProjectAssessment`,`AssessmentDimension`,`RelatedPersonalProject`]),i=new Set([`known_known`,`known_unknown`,`unknown_known`,`unknown_unknown`,`unclassified`]),a=new Set([`taste`,`personality`,`judgment_preference`]),o=new Set([`confirm`,`update`,`invalidate`,`link_replacement`,`restore`,`scope_change`,`batch_confirm`]),s=new Set([`human_change`,`agent_view`,`agent_review`,`knowledge_used`]),c=new Set([`user`,`agent`,`authoritative_source`,`import`]);function l(e){let n=e??`unclassified`;return i.has(n)?t(`knowledge.domain.quadrants.${n}`):n}function u(e){let n=e??`unclassified`;return i.has(n)?t(`knowledge.domain.quadrants.descriptions.${n}`):t(`knowledge.domain.quadrants.customDescription`)}function d(e){let n=e??``;return a.has(n)?t(`knowledge.domain.profiles.${n}`):n}function f(e){let n=e??``;return o.has(n)?t(`knowledge.domain.revisions.${n}`):n||t(`knowledge.domain.revisions.fallback`)}function p(e){return t(`knowledge.domain.humanChanges.${e??`none`}`)}function m(e){let n=e??``;return s.has(n)?t(`knowledge.domain.auditActions.${n}`):n||t(`knowledge.domain.auditActions.fallback`)}function h(e){return e?e.label||(c.has(e.kind)?t(`knowledge.domain.actors.${e.kind}`):e.kind):t(`knowledge.domain.actors.notRecorded`)}function g(e){return typeof e==`object`&&e?e.id:e}function _(e){let t=e.nodes.filter(e=>!e.invalid_at),n=new Set(t.map(({id:e})=>e)),r=e.edges.filter(e=>!e.invalid_at&&n.has(g(e.source))&&n.has(g(e.target)));return{...e,nodes:t,edges:r}}function v(e){if(!e)return[];let t=new Map(e.nodes.map(e=>[e.id,e.name])),n=e.nodes.filter(e=>!T(e)).map(e=>b(e)),r=e.edges.filter(e=>!E(e)).map(e=>x(e,t));return[...n,...r].sort((e,t)=>K(t)-K(e))}function y(e){if(!e)return[];let t=new Map(e.nodes.map(e=>[e.id,e.name])),n=e.nodes.filter(T).map(e=>b(e)),r=e.edges.filter(E).map(e=>x(e,t));return[...n,...r]}function b(e){return{id:e.id,itemKind:`entity`,title:e.name,body:e.summary||t(`common.status.noDescription`),type:e.type,...U(e),raw:e}}function x(e,n){return{id:e.id,itemKind:`relationship`,title:`${n.get(g(e.source))??t(`knowledge.domain.items.unknownEntity`)} → ${n.get(g(e.target))??t(`knowledge.domain.items.unknownEntity`)}`,body:e.fact||t(`knowledge.domain.items.noRelationDescription`),type:t(`knowledge.domain.items.relationshipType`,{type:e.type}),...U(e),raw:e}}function S(e){return e?n.has(e.type)||D(e.id):!1}function C(e){return e.itemKind===`relationship`?t(`knowledge.domain.materialTypes.relationship`):r.has(e.type)?t(`knowledge.domain.materialTypes.${e.type}`):e.type}function w(e){if(!e||e.itemKind!==`entity`)return null;let t=e.raw.attributes?.projectId;return typeof t==`string`&&t?t:null}function T(e){return n.has(e.type)||D(e.id)}function E(e){return D(e.id)}function D(e){return String(e).startsWith(`project-profile:`)||String(e).startsWith(`project-profile-edge:`)||String(e).startsWith(`space-edge:`)||String(e).startsWith(`personal-project-relation:`)}function O(e,t){let n=t.query?.trim().toLocaleLowerCase()??``;return e.filter(e=>t.type&&t.type!==`all`&&e.type!==t.type||t.quadrant&&t.quadrant!==`all`&&e.originQuadrant!==t.quadrant||t.profile===`profile`&&!e.profileAspect||t.profile===`regular`&&e.profileAspect||t.status===`current`&&e.invalidAt||t.status===`historical`&&!e.invalidAt||t.humanChange===`human_changed`&&!e.humanEdited||t.humanChange&&![`all`,`human_changed`].includes(t.humanChange)&&e.humanChangeStatus!==t.humanChange?!1:!n||G(e).toLocaleLowerCase().includes(n))}function k(e){let t=v(e).filter(({profileAspect:e})=>e),n=new Set(t.filter(({itemKind:e})=>e===`relationship`).flatMap(({raw:e})=>{let t=e;return[g(t.source),g(t.target)]}));return t.filter(({id:e,itemKind:t})=>t===`relationship`||!n.has(e))}function A(e){let t=e.filter(e=>!!e);return{...t[0]??{space_id:null},nodes:q(t.flatMap(e=>e.nodes)),edges:q(t.flatMap(e=>e.edges)),truncated:t.some(({truncated:e})=>e)}}function j(e){return e.revisions.at(0)?.created_at??e.createdAt??e.evidence.at(0)?.created_at??e.evidence.at(0)?.reference_time??null}function M(n){if(!n)return t(`knowledge.domain.items.notRecorded`);let r=new Date(n);return Number.isNaN(r.getTime())?n:r.toLocaleString(e())}function N(e){let t=e.confirmationBasis;return!e.confirmationExplicit||!t?.confirmed_by||!t.confirmed_at?`pending`:e.confirmationStatus===`confirmed`&&[`user`,`authoritative_source`].includes(t.confirmed_by.kind)?`confirmed`:e.confirmationStatus===`agent_confirmed`&&t.confirmed_by.kind===`agent`&&t.agent_policy_version?`agent_confirmed`:`pending`}function P(e){return t(`knowledge.domain.reviewStates.${N(e)}`)}function F(n){let r=new Map,i=n.filter(e=>!e.invalidAt&&e.classificationExplicit&&N(e)!==`confirmed`);for(let e of i)for(let n of e.evidence)n.id&&L(r,{kind:`source`,value:n.id,label:R(n),description:n.source_description||n.summary||t(`knowledge.domain.confirmation.sameSource`)},e),n.session_id&&L(r,{kind:`session`,value:n.session_id,label:z(n),description:n.source_description||n.summary||t(`knowledge.domain.confirmation.sameSession`)},e);return[...r.values()].filter(({items:e})=>e.length>=2).sort((t,n)=>n.items.length-t.items.length||t.label.localeCompare(n.label,e()))}function I(e,n){let r=e.evidence.find(e=>n.kind===`source`?e.id===n.value:e.session_id===n.value),i=e.confirmationBasis;return{existenceReason:i?.existence_reason||r?.source_description||r?.summary||t(`knowledge.domain.confirmation.sourceSupports`,{label:n.label}),quadrantReason:i?.quadrant_reason||e.reasoningSummary||t(`knowledge.domain.confirmation.quadrantReason`,{quadrant:l(e.originQuadrant),description:u(e.originQuadrant)}),proposedBy:i?.proposed_by||B(r)}}function L(e,t,n){let r=`${t.kind}:${t.value}`,i=e.get(r)??{key:r,...t,items:[]},a=`${n.itemKind}:${n.id}`;i.items.some(e=>`${e.itemKind}:${e.id}`===a)||i.items.push(n),e.set(r,i)}function R(e){return e.name||e.source_description||e.summary||t(`knowledge.domain.confirmation.sourceRecord`)}function z(e){let n={codex:`Codex`,claude_code:`Claude Code`,cursor:`Cursor`,kiro:`Kiro`,other:t(`knowledge.domain.confirmation.otherSource`)}[e.source_application??``];return n?`${n} · ${e.name||e.source_kind||t(`knowledge.domain.confirmation.session`)}`:e.name||e.source_kind||t(`knowledge.domain.confirmation.sourceSession`)}function B(e){let n={codex:`Codex`,claude_code:`Claude Code`,cursor:`Cursor`,kiro:`Kiro`,other:t(`knowledge.domain.actors.otherAgent`)}[e?.source_application??``];return n?{kind:`agent`,label:n}:{kind:`import`,label:t(`knowledge.domain.actors.historicalRecord`)}}function V(e){if(!e.classificationExplicit)return t(`knowledge.domain.confirmation.legacyUnclassified`);let n=e.confirmationBasis;return N(e)===`confirmed`&&n?t(`knowledge.domain.confirmation.confirmed`,{actor:h(n.confirmed_by),time:M(n.confirmed_at)}):N(e)===`agent_confirmed`&&n?t(`knowledge.domain.confirmation.agentConfirmed`,{time:M(n.confirmed_at)}):n?t(`knowledge.domain.confirmation.pending`,{actor:h(n.proposed_by)}):t(`knowledge.domain.confirmation.legacyPending`)}function H(e){let n=e.confirmationBasis;return n?N(e)===`confirmed`?`${h(n.confirmed_by)} · ${M(n.confirmed_at)}`:N(e)===`agent_confirmed`?t(`knowledge.domain.confirmation.agentPolicy`,{time:M(n.confirmed_at)}):t(`knowledge.domain.confirmation.proposed`,{actor:h(n.proposed_by),reason:n.existence_reason}):t(`knowledge.domain.confirmation.legacyBasisMissing`)}function U(e){let t=e.epistemic_state_explicit===!0,n=e.confirmation_state_explicit===!0;return{originQuadrant:t?e.origin_quadrant??`known_known`:`unclassified`,currentQuadrant:t?e.current_quadrant??`known_known`:`unclassified`,epistemicStatus:t?e.epistemic_status??`confirmed`:`unreviewed`,classificationExplicit:t,confirmationStatus:W(e.confirmation_status),confirmationExplicit:n,confirmationBasis:e.confirmation_basis??null,reasoningSummary:e.reasoning_summary??``,profileAspect:e.profile_aspect??null,preferenceScope:e.preference_scope??(e.profile_aspect?`global`:null),preferenceProjectId:e.preference_project_id??null,inheritanceMode:e.inheritance_mode??`local_only`,inheritedProjectIds:e.inherited_project_ids??[],humanEdited:e.human_edited===!0,humanChangeStatus:e.human_change_status??`none`,humanChangeVersion:e.human_change_version??0,lastHumanChangedAt:e.last_human_changed_at??null,lastAgentViewedAt:e.last_agent_viewed_at??null,lastAgentReviewedAt:e.last_agent_reviewed_at??null,utilityScore:e.utility_score??0,confidenceScore:e.confidence_score??.5,qualifiedUseCount:e.qualified_use_count??0,distinctTaskCount:e.distinct_task_count??0,lastUsedAt:e.last_used_at??null,usageGeneration:e.usage_generation??1,invalidAt:e.invalid_at,replacedByItemId:e.replaced_by_item_id??null,replacedByItemKind:e.replaced_by_item_kind??null,createdAt:e.created_at,evidence:e.evidence??[],revisions:e.revisions??[],assignments:e.assignments??[],projectReferences:e.project_references??[],conflicts:e.conflicts??[],auditEvents:e.audit_events??[]}}function W(e){return e===`confirmed`||e===`agent_confirmed`?e:`pending`}function G(e){return[e.id,e.title,e.body,e.type,l(e.originQuadrant),d(e.profileAspect),e.reasoningSummary,e.confirmationBasis?.existence_reason,e.confirmationBasis?.quadrant_reason,h(e.confirmationBasis?.proposed_by),h(e.confirmationBasis?.confirmed_by),p(e.humanChangeStatus),...e.auditEvents.flatMap(e=>[m(e.action),e.reason,e.tool_name,e.conflict_check,e.classification_check,e.outcome]),...e.evidence.flatMap(e=>[e.name,e.summary,e.source_description,e.session_id,e.source_excerpt])].filter(Boolean).join(` `)}function K(e){let t=j(e),n=t?new Date(t).getTime():0;return Number.isNaN(n)?0:n}function q(e){let t=new Map;for(let n of e){let e=t.get(n.id);t.set(n.id,e?J(e,n):n)}return[...t.values()]}function J(e,t){let n={...e,...t};for(let r of[`evidence`,`revisions`,`assignments`,`project_references`,`conflicts`,`audit_events`,`episodes`]){let i=e[r],a=t[r];!i&&!a||(n[r]=Y([...i??[],...a??[]]))}return n}function Y(e){let t=new Set;return e.filter(e=>{let n=typeof e==`object`&&e?e.id??JSON.stringify(e):e;return t.has(n)?!1:(t.add(n),!0)})}export{C,f as D,P as E,d as S,l as T,j as _,H as a,k as b,O as c,S as d,m as f,N as g,v as h,h as i,M as l,b as m,F as n,_ as o,x as p,V as r,g as s,I as t,p as u,y as v,u as w,w as x,A as y};
@@ -1 +0,0 @@
1
- import{k as e}from"./console-B_Ena2DS.js";function t(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function n(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&t(e.default)}var r=Object.assign;function i(e,t){let n={};for(let r in t){let i=t[r];n[r]=o(i)?i.map(e):e(i)}return n}var a=()=>{},o=Array.isArray;function s(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var c=Symbol(``);function l(e,t){return r(Error(),{type:e,[c]:!0},t)}function u(e,t){return e instanceof Error&&c in e&&(t==null||!!(e.type&t))}var d=Symbol(``),f=Symbol(``),p=Symbol(``),m=Symbol(``),h=Symbol(``);function g(){return e(p)}function _(t){return e(m)}function v(e){return encodeURIComponent(e)}function y(e,t=`graph`,n,r={}){return`${`/personal/${v(e)}/projects`}${n?`/${v(n)}`:``}/${t}${r.itemKind&&r.itemId?`/${r.itemKind}/${v(r.itemId)}`:``}`}function b(e,t,n=`directory`,r={}){return`${`/knowledge/${e}/${v(t)}`}${r.projectId?`/${v(r.projectId)}`:``}/${n}${r.itemKind&&r.itemId?`/${r.itemKind}/${v(r.itemId)}`:``}`}function x(e){let t={};for(let n of[`q`,`type`,`quadrant`,`profile`,`status`]){let r=e.get(n);r&&(t[n]=r)}let n=e.getAll(`context`).filter(Boolean).slice(0,12);return n.length&&(t.context=n),t}export{_,r as a,n as c,d,s as f,h as g,p as h,i,u as l,m,y as n,l as o,a as p,x as r,o as s,b as t,t as u,g as v,f as y};
@@ -1 +0,0 @@
1
- import{A as e,D as t,G as n,H as r,K as i,O as a,P as o,R as s,U as c,W as l,b as u,k as d}from"./console-B_Ena2DS.js";import{a as f,c as p,d as m,f as h,g,h as _,i as v,l as y,m as ee,o as b,p as x,s as S,u as te,y as C}from"./paths-BkULqmGI.js";var w=typeof document<`u`,T=/#/g,ne=/&/g,re=/\//g,ie=/=/g,E=/\?/g,D=/\+/g,O=/%5B/g,k=/%5D/g,ae=/%5E/g,oe=/%60/g,A=/%7B/g,se=/%7C/g,j=/%7D/g,M=/%20/g;function N(e){return e==null?``:encodeURI(``+e).replace(se,`|`).replace(O,`[`).replace(k,`]`)}function ce(e){return N(e).replace(A,`{`).replace(j,`}`).replace(ae,`^`)}function P(e){return N(e).replace(D,`%2B`).replace(M,`+`).replace(T,`%23`).replace(ne,`%26`).replace(oe,"`").replace(A,`{`).replace(j,`}`).replace(ae,`^`)}function F(e){return P(e).replace(ie,`%3D`)}function le(e){return N(e).replace(T,`%23`).replace(E,`%3F`)}function ue(e){return le(e).replace(re,`%2F`)}function I(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var L=/\/$/,R=e=>e.replace(L,``);function z(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=G(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:I(o)}}function de(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function B(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function fe(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&V(t.matched[r],n.matched[i])&&H(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function V(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function H(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!U(e[n],t[n]))return!1;return!0}function U(e,t){return S(e)?W(e,t):S(t)?W(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function W(e,t){return S(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function G(e,t){if(e.startsWith(`/`))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o<r.length;o++)if(s=r[o],s!==`.`)if(s===`..`)a>1&&a--;else break;return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var K={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0};function q(e){if(!e)if(w){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^/]+/,``)}else e=`/`;return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),R(e)}var J=/^[^#]+#/;function Y(e,t){return e.replace(J,`#`)+t}function X(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var Z=()=>({left:window.scrollX,top:window.scrollY});function pe(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=X(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function me(e,t){return(history.state?history.state.position-t:-1)+e}var he=new Map;function ge(e,t){he.set(e,t)}function _e(e){let t=he.get(e);return he.delete(e),t}function ve(e){return typeof e==`string`||e&&typeof e==`object`}function ye(e){return typeof e==`string`||typeof e==`symbol`}function be(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;e<n.length;++e){let r=n[e].replace(D,` `),i=r.indexOf(`=`),a=I(i<0?r:r.slice(0,i)),o=i<0?null:I(r.slice(i+1));if(a in t){let e=t[a];S(e)||(e=t[a]=[e]),e.push(o)}else t[a]=o}return t}function xe(e){let t=``;for(let n in e){let r=e[n];if(n=F(n),r==null){r!==void 0&&(t+=(t.length?`&`:``)+n);continue}(S(r)?r.map(e=>e&&P(e)):[r&&P(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function Se(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=S(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}function Q(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function $(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(b(4,{from:n,to:t})):e instanceof Error?c(e):ve(e)?c(b(2,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function Ce(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(!(t!==`beforeRouteEnter`&&!o.instances[e]))if(te(s)){let c=(s.__vccOpts||s)[t];c&&a.push($(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=p(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&$(c,n,r,o,e,i)()}))}}return a}function we(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;o<a;o++){let a=t.matched[o];a&&(e.matched.find(e=>V(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>V(e,s))||i.push(s))}return[n,r,i]}var Te=()=>location.protocol+`//`+location.host;function Ee(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),B(n,``)}return B(n,e)+r+i}function De(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=Ee(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:`pop`,direction:u?u>0?`forward`:`back`:``})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState(f({},e.state,{scroll:Z()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function Oe(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?Z():null}}function ke(e){let{history:t,location:n}=window,r={value:Ee(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:Te()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,f({},t.state,Oe(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=f({},i.value,t.state,{forward:e,scroll:Z()});a(o.current,o,!0),a(e,f({},Oe(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function Ae(e){e=q(e);let t=ke(e),n=De(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=f({location:``,base:e,go:r,createHref:Y.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}var je={type:0,value:``},Me=/[a-zA-Z0-9_]/;function Ne(e){if(!e)return[[]];if(e===`/`)return[[je]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=0,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===0?a.push({type:0,value:l}):n===1||n===2||n===3?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;s<e.length;)switch(c=e[s++],n){case 0:c===`\\`?(r=n,n=4):c===`/`?(l&&d(),o()):c===`:`?(d(),n=1):f();break;case 4:f(),n=r;break;case 1:c===`(`?n=2:Me.test(c)?f():(d(),n=0,c!==`*`&&c!==`?`&&c!==`+`&&s--);break;case 2:c===`)`?u[u.length-1]==`\\`?u=u.slice(0,-1)+c:n=3:u+=c;break;case 3:d(),n=0,c!==`*`&&c!==`?`&&c!==`+`&&s--,u=``;break;default:t(`Unknown state`);break}return n===2&&t(`Unfinished custom RegExp for param "${l}"`),d(),o(),i}var Pe=`[^/]+?`,Fe={sensitive:!1,strict:!1,start:!0,end:!0},Ie=/[.+*?^${}()[\]/\\]/g;function Le(e,t){let n=f({},Fe,t),r=[],i=n.start?`^`:``,a=[];for(let t of e){let e=t.length?[]:[90];n.strict&&!t.length&&(i+=`/`);for(let r=0;r<t.length;r++){let o=t[r],s=40+(n.sensitive?.25:0);if(o.type===0)r||(i+=`/`),i+=o.value.replace(Ie,`\\$&`),s+=40;else if(o.type===1){let{value:e,repeatable:n,optional:c,regexp:l}=o;a.push({name:e,repeatable:n,optional:c});let u=l||Pe;if(u!==Pe){s+=10;try{RegExp(`(${u})`)}catch(t){throw Error(`Invalid custom RegExp for param "${e}" (${u}): `+t.message)}}let d=n?`((?:${u})(?:/(?:${u}))*)`:`(${u})`;r||(d=c&&t.length<2?`(?:/${d})`:`/`+d),c&&(d+=`?`),i+=d,s+=20,c&&(s+=-8),n&&(s+=-20),u===`.*`&&(s+=-50)}e.push(s)}r.push(e)}if(n.strict&&n.end){let e=r.length-1;r[e][r[e].length-1]+=.7000000000000001}n.strict||(i+=`/?`),n.end?i+=`$`:n.strict&&!i.endsWith(`/`)&&(i+=`(?:/|$)`);let o=new RegExp(i,n.sensitive?``:`i`);function s(e){let t=e.match(o),n={};if(!t)return null;for(let e=1;e<t.length;e++){let r=t[e]||``,i=a[e-1];n[i.name]=r&&i.repeatable?r.split(`/`):r}return n}function c(t){let n=``,r=!1;for(let i of e){(!r||!n.endsWith(`/`))&&(n+=`/`),r=!1;for(let e of i)if(e.type===0)n+=e.value;else if(e.type===1){let{value:a,repeatable:o,optional:s}=e,c=a in t?t[a]:``;if(S(c)&&!o)throw Error(`Provided param "${a}" is an array but it is not repeatable (* or + modifiers)`);let l=S(c)?c.join(`/`):c;if(!l)if(s)i.length<2&&(n.endsWith(`/`)?n=n.slice(0,-1):r=!0);else throw Error(`Missing required param "${a}"`);n+=l}}return n||`/`}return{re:o,score:r,keys:a,parse:s,stringify:c}}function Re(e,t){let n=0;for(;n<e.length&&n<t.length;){let r=t[n]-e[n];if(r)return r;n++}return e.length<t.length?e.length===1&&e[0]===80?-1:1:e.length>t.length?t.length===1&&t[0]===80?1:-1:0}function ze(e,t){let n=0,r=e.score,i=t.score;for(;n<r.length&&n<i.length;){let e=Re(r[n],i[n]);if(e)return e;n++}if(Math.abs(i.length-r.length)===1){if(Be(r))return 1;if(Be(i))return-1}return i.length-r.length}function Be(e){let t=e[e.length-1];return e.length>0&&t[t.length-1]<0}var Ve={strict:!1,end:!0,sensitive:!1};function He(e,t,n){let r=f(Le(Ne(e.path),n),{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function Ue(e,t){let n=[],r=new Map;t=h(Ve,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=Ge(e);s.aliasOf=r&&r.record;let l=h(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(Ge(f({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,p;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=He(t,n,l),r?r.alias.push(d):(p||=d,p!==d&&p.alias.push(d),i&&e.name&&!qe(d)&&o(e.name)),Ze(d)&&c(d),s.children){let e=s.children;for(let t=0;t<e.length;t++)a(e[t],d,r&&r.children[t])}r||=d}return p?()=>{o(p)}:x}function o(e){if(ye(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=Ye(e,n);n.splice(t,0,e),e.record.name&&!qe(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw b(1,{location:e});s=i.record.name,a=f(We(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&We(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name,i.keys.forEach(e=>{e.optional&&!a[e.name]&&delete a[e.name]}));else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw b(1,{location:e,currentLocation:t});s=i.record.name,a=f({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:Je(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function We(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Ge(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ke(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Ke(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function qe(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Je(e){return e.reduce((e,t)=>f(e,t.meta),{})}function Ye(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;ze(e,t[i])<0?r=i:n=i+1}let i=Xe(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function Xe(e){let t=e;for(;t=t.parent;)if(Ze(t)&&ze(e,t)===0)return t}function Ze({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Qe(e){let t=d(_),n=d(ee),r=u(()=>{let n=i(e.to);return t.resolve(n)}),a=u(()=>{let{matched:e}=r.value,{length:t}=e,i=e[t-1],a=n.matched;if(!i||!a.length)return-1;let o=a.findIndex(V.bind(null,i));if(o>-1)return o;let s=rt(e[t-2]);return t>1&&rt(i)===s&&a[a.length-1].path!==s?a.findIndex(V.bind(null,e[t-2])):o}),o=u(()=>a.value>-1&&nt(n.params,r.value.params)),s=u(()=>a.value>-1&&a.value===n.matched.length-1&&H(n.params,r.value.params));function c(n={}){if(tt(n)){let n=t[i(e.replace)?`replace`:`push`](i(e.to)).catch(x);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:u(()=>r.value.href),isActive:o,isExactActive:s,navigate:c}}function $e(e){return e.length===1?e[0]:e}var et=t({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:Qe,setup(e,{slots:t}){let n=r(Qe(e)),{options:i}=d(_),o=u(()=>({[it(e.activeClass,i.linkActiveClass,`router-link-active`)]:n.isActive,[it(e.exactActiveClass,i.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&$e(t.default(n));return e.custom?r:a(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:o.value},r)}}});function tt(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function nt(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!S(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function rt(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var it=(e,t,n)=>e??t??n,at=t({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=d(g),l=u(()=>e.route||r.value),p=d(C,0),h=u(()=>{let e=i(p),{matched:t}=l.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),_=u(()=>l.value.matched[h.value]);o(C,u(()=>h.value+1)),o(m,_),o(g,l);let v=c();return s(()=>[v.value,_.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!V(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=l.value,i=e.name,o=_.value,s=o&&o.components[i];if(!s)return ot(n.default,{Component:s,route:r});let c=o.props[i],u=a(s,f({},c?c===!0?r.params:typeof c==`function`?c(r):c:null,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[i]=null)},ref:v}));return ot(n.default,{Component:u,route:r})||u}}});function ot(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var st=at;function ct(t){let r=Ue(t.routes,t),a=t.parseQuery||be,o=t.stringifyQuery||xe,s=t.history,c=Q(),u=Q(),d=Q(),p=n(K),m=K;w&&t.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let h=v.bind(null,e=>``+e),te=v.bind(null,ue),C=v.bind(null,I);function T(e,t){let n,i;return ye(e)?(n=r.getRecordMatcher(e),i=t):i=e,r.addRoute(i,n)}function ne(e){let t=r.getRecordMatcher(e);t&&r.removeRoute(t)}function re(){return r.getRoutes().map(e=>e.record)}function ie(e){return!!r.getRecordMatcher(e)}function E(e,t){if(t=f({},t||p.value),typeof e==`string`){let n=z(a,e,t.path),i=r.resolve({path:n.path},t),o=s.createHref(n.fullPath);return f(n,i,{params:C(i.params),redirectedFrom:void 0,href:o})}let n;if(e.path!=null)n=f({},e,{path:z(a,e.path,t.path).path});else{let r=f({},e.params);for(let e in r)r[e]??delete r[e];n=f({},e,{params:te(r)}),t.params=te(t.params)}let i=r.resolve(n,t),c=e.hash||``;i.params=h(C(i.params));let l=de(o,f({},e,{hash:ce(c),path:i.path})),u=s.createHref(l);return f({fullPath:l,hash:c,query:o===xe?Se(e.query):e.query||{}},i,{redirectedFrom:void 0,href:u})}function D(e){return typeof e==`string`?z(a,e,p.value.path):f({},e)}function O(e,t){if(m!==e)return b(8,{from:t,to:e})}function k(e){return A(e)}function ae(e){return k(f(D(e),{replace:!0}))}function oe(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=D(i):{path:i},i.params={}),f({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function A(e,t){let n=m=E(e),r=p.value,i=e.state,a=e.force,s=e.replace===!0,c=oe(n,r);if(c)return A(f(D(c),{state:typeof c==`object`?f({},i,c.state):i,force:a,replace:s}),t||n);let l=n;l.redirectedFrom=t;let u;return!a&&fe(o,r,n)&&(u=b(16,{to:l,from:r}),W(r,r,!0,!1)),(u?Promise.resolve(u):M(l,r)).catch(e=>y(e)?y(e,2)?e:U(e):V(e,l,r)).then(e=>{if(e){if(y(e,2))return A(f({replace:s},D(e.to),{state:typeof e.to==`object`?f({},i,e.to.state):i,force:a}),t||l)}else e=P(l,r,!0,s,i);return N(l,r,e),e})}function se(e,t){let n=O(e,t);return n?Promise.reject(n):Promise.resolve()}function j(e){let t=J.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function M(e,t){let n,[r,i,a]=we(e,t);n=Ce(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push($(r,e,t))});let o=se.bind(null,e,t);return n.push(o),X(n).then(()=>{n=[];for(let r of c.list())n.push($(r,e,t));return n.push(o),X(n)}).then(()=>{n=Ce(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push($(r,e,t))});return n.push(o),X(n)}).then(()=>{n=[];for(let r of a)if(r.beforeEnter)if(S(r.beforeEnter))for(let i of r.beforeEnter)n.push($(i,e,t));else n.push($(r.beforeEnter,e,t));return n.push(o),X(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=Ce(a,`beforeRouteEnter`,e,t,j),n.push(o),X(n))).then(()=>{n=[];for(let r of u.list())n.push($(r,e,t));return n.push(o),X(n)}).catch(e=>y(e,8)?e:Promise.reject(e))}function N(e,t,n){d.list().forEach(r=>j(()=>r(e,t,n)))}function P(e,t,n,r,i){let a=O(e,t);if(a)return a;let o=t===K,c=w?history.state:{};n&&(r||o?s.replace(e.fullPath,f({scroll:o&&c&&c.scroll},i)):s.push(e.fullPath,i)),p.value=e,W(e,t,n,o),U()}let F;function le(){F||=s.listen((e,t,n)=>{if(!Y.listening)return;let r=E(e),i=oe(r,Y.currentRoute.value);if(i){A(f(i,{replace:!0,force:!0}),r).catch(x);return}m=r;let a=p.value;w&&ge(me(a.fullPath,n.delta),Z()),M(r,a).catch(e=>y(e,12)?e:y(e,2)?(A(f(D(e.to),{force:!0}),r).then(e=>{y(e,20)&&!n.delta&&n.type===`pop`&&s.go(-1,!1)}).catch(x),Promise.reject()):(n.delta&&s.go(-n.delta,!1),V(e,r,a))).then(e=>{e||=P(r,a,!1),e&&(n.delta&&!y(e,8)?s.go(-n.delta,!1):n.type===`pop`&&y(e,20)&&s.go(-1,!1)),N(r,a,e)}).catch(x)})}let L=Q(),R=Q(),B;function V(e,t,n){U(e);let r=R.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function H(){return B&&p.value!==K?Promise.resolve():new Promise((e,t)=>{L.add([e,t])})}function U(e){return B||(B=!e,le(),L.list().forEach(([t,n])=>e?n(e):t()),L.reset()),e}function W(n,r,i,a){let{scrollBehavior:o}=t;if(!w||!o)return Promise.resolve();let s=!i&&_e(me(n.fullPath,0))||(a||!i)&&history.state&&history.state.scroll||null;return e().then(()=>o(n,r,s)).then(e=>n===p.value&&e&&pe(e)).catch(e=>n===p.value&&V(e,n,r))}let G=e=>s.go(e),q,J=new Set,Y={currentRoute:p,listening:!0,addRoute:T,removeRoute:ne,clearRoutes:r.clearRoutes,hasRoute:ie,getRoutes:re,resolve:E,options:t,push:k,replace:ae,go:G,back:()=>G(-1),forward:()=>G(1),beforeEach:c.add,beforeResolve:u.add,afterEach:d.add,onError:R.add,isReady:H,install(e){e.component(`RouterLink`,et),e.component(`RouterView`,st),e.config.globalProperties.$router=Y,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>i(p)}),w&&!q&&p.value===K&&(q=!0,k(s.location).catch(e=>{}));let t={};for(let e in K)Object.defineProperty(t,e,{get:()=>p.value[e],enumerable:!0});e.provide(_,Y),e.provide(ee,l(t)),e.provide(g,p);let n=e.unmount;J.add(e),e.unmount=function(){J.delete(e),J.size<1&&(m=K,F&&F(),F=null,p.value=K,q=!1,B=!1),n()}}};function X(e){return e.reduce((e,t)=>e.then(()=>j(t)),Promise.resolve())}return Y}export{Ae as i,st as n,ct as r,et as t};
@@ -1,53 +0,0 @@
1
- import { SpaceKind } from '../models.js';
2
- import { isSafeAgentText } from './public-read-policy.js';
3
- import { requirePersonalSpace } from './space-boundary.js';
4
-
5
- export class AgentCandidateReadService {
6
- constructor(store) {
7
- this.store = store;
8
- }
9
-
10
- list(personalSpaceId) {
11
- requirePersonalSpace(this.store, personalSpaceId);
12
- return this.store.pendingCandidates(personalSpaceId)
13
- .map((candidate) => this.#project(candidate, personalSpaceId));
14
- }
15
-
16
- listForSpace(personalSpaceId, spaceId) {
17
- return this.list(personalSpaceId)
18
- .filter((candidate) => !candidate.targetSpaceId || candidate.targetSpaceId === spaceId);
19
- }
20
-
21
- #project(candidate, personalSpaceId) {
22
- const resolvedTarget = candidate.targetSpaceId
23
- ? this.store.getSpace(candidate.targetSpaceId)
24
- : null;
25
- const target = resolvedTarget?.kind === SpaceKind.PUBLIC ? resolvedTarget : null;
26
- return {
27
- id: candidate.id,
28
- reason: isSafeAgentText(candidate.reason) ? candidate.reason : null,
29
- status: candidate.status,
30
- createdAt: candidate.createdAt,
31
- targetSpaceId: target?.id ?? null,
32
- targetSpaceName: target?.name ?? null,
33
- source: this.#source(candidate.episodeId, personalSpaceId)
34
- };
35
- }
36
-
37
- #source(episodeId, personalSpaceId) {
38
- const episode = this.store.getEpisode(episodeId);
39
- if (!episode || episode.spaceId !== personalSpaceId) return null;
40
- if (![
41
- episode.sourceKind,
42
- episode.sourceUri,
43
- episode.body,
44
- JSON.stringify(episode.metadata)
45
- ].every(isSafeAgentText)) return null;
46
- return {
47
- id: episode.id,
48
- kind: episode.sourceKind,
49
- uri: episode.sourceUri,
50
- createdAt: episode.createdAt
51
- };
52
- }
53
- }
@@ -1,83 +0,0 @@
1
- import { FactStatus } from '../models.js';
2
- import { compactHistoryFact, compactMatch } from './read-projection.js';
3
- import { requirePersonalSpace, requirePublicSpace } from './space-boundary.js';
4
-
5
- export class AgentContextPackService {
6
- constructor(store, publicReads, search, candidateReads) {
7
- this.store = store;
8
- this.publicReads = publicReads;
9
- this.search = search;
10
- this.candidateReads = candidateReads;
11
- }
12
-
13
- build({ personalSpaceId, spaceId, query = '' }) {
14
- const personal = requirePersonalSpace(this.store, personalSpaceId);
15
- const project = requirePublicSpace(this.store, spaceId);
16
- const personalMatches = this.search
17
- .personalMatches({ personalSpaceId, query, includeHistorical: false }, personal.name)
18
- .filter(({ fact }) => [FactStatus.CONFIRMED, FactStatus.OBSERVED].includes(fact.status));
19
- const publicMatches = this.search.publicMatches([spaceId], query);
20
- const matches = [...personalMatches, ...publicMatches].map(compactMatch);
21
- const candidates = this.candidateReads.listForSpace(personalSpaceId, spaceId);
22
- return {
23
- query,
24
- personalSpace: compactSpace(personal),
25
- space: compactSpace(project),
26
- rules: this.#rules(spaceId),
27
- matches,
28
- histories: this.#histories(publicMatches),
29
- candidateCount: candidates.length,
30
- candidates,
31
- answer: formatAnswer(matches)
32
- };
33
- }
34
-
35
- #rules(spaceId) {
36
- const rules = this.publicReads.projectRules(spaceId);
37
- const compact = (fact) => compactHistoryFact(this.store, {
38
- ...fact,
39
- current: true
40
- });
41
- return {
42
- spaceId: rules.spaceId,
43
- spaceName: rules.spaceName,
44
- forbidden: rules.forbidden.map(compact),
45
- parameters: rules.parameters.map(compact),
46
- links: rules.links.map(compact)
47
- };
48
- }
49
-
50
- #histories(matches) {
51
- const seen = new Set();
52
- const histories = [];
53
- for (const match of matches) {
54
- const key = `${match.fact.spaceId}:${match.fact.predicate}`;
55
- if (seen.has(key)) continue;
56
- seen.add(key);
57
- const history = this.publicReads.factHistory({
58
- spaceId: match.fact.spaceId,
59
- predicate: match.fact.predicate
60
- });
61
- if (history.facts.length <= 1) continue;
62
- histories.push({
63
- spaceId: history.spaceId,
64
- spaceName: history.spaceName,
65
- predicate: history.predicate,
66
- facts: history.facts.map((fact) => compactHistoryFact(this.store, fact))
67
- });
68
- }
69
- return histories;
70
- }
71
-
72
- }
73
-
74
- function compactSpace(space) {
75
- return { id: space.id, name: space.name, kind: space.kind };
76
- }
77
-
78
- function formatAnswer(matches) {
79
- if (!matches.length) return 'No matching current facts found.';
80
- return matches
81
- .map(({ fact }) => `${fact.subject} ${fact.predicate} ${fact.object}`)
82
- .join('\n');
83
- }
@@ -1,39 +0,0 @@
1
- import { FactScope, FactStatus, Sensitivity } from '../models.js';
2
- import { detectSensitiveContent } from '../security/sensitive-content.js';
3
-
4
- export function isAgentReadablePublicFact(store, fact) {
5
- return fact?.scope === FactScope.PUBLIC &&
6
- fact.status === FactStatus.CONFIRMED &&
7
- fact.sensitivity === Sensitivity.NORMAL &&
8
- [fact.subject, fact.predicate, fact.object].every(isSafeText) &&
9
- getAgentReadablePublicSource(store, fact) !== null;
10
- }
11
-
12
- export function getAgentReadablePublicSource(store, fact) {
13
- const episode = fact ? store.getEpisode(fact.sourceEpisodeId) : null;
14
- if (!episode || episode.spaceId !== fact.spaceId) return null;
15
- if (![
16
- episode.sourceKind,
17
- episode.sourceUri,
18
- episode.body,
19
- JSON.stringify(episode.metadata)
20
- ].every(isSafeText)) return null;
21
- return episode;
22
- }
23
-
24
- export function getAgentReadableReplacementId(store, fact) {
25
- if (!fact.replacedByFactId) return null;
26
- const replacement = store.getFact(fact.replacedByFactId);
27
- return replacement?.spaceId === fact.spaceId && isAgentReadablePublicFact(store, replacement)
28
- ? replacement.id
29
- : null;
30
- }
31
-
32
- export function isSafeAgentText(value) {
33
- return isSafeText(value);
34
- }
35
-
36
- function isSafeText(value) {
37
- return value === null || value === undefined ||
38
- !detectSensitiveContent(String(value)).restricted;
39
- }
@@ -1,69 +0,0 @@
1
- import { getFactHistory } from '../fact-history.js';
2
- import { FactScope } from '../models.js';
3
- import { getProjectRules } from '../project-rules.js';
4
- import { projectPublicMatch } from './read-projection.js';
5
- import { requirePublicSpace } from './space-boundary.js';
6
-
7
- export class AgentPublicReadService {
8
- constructor(store) {
9
- this.store = store;
10
- }
11
-
12
- currentFacts(spaceId) {
13
- requirePublicSpace(this.store, spaceId);
14
- return this.#publicFacts(this.store.currentFacts(spaceId));
15
- }
16
-
17
- timeline(spaceId, subject) {
18
- requirePublicSpace(this.store, spaceId);
19
- return this.#publicFacts(this.store.timeline(spaceId, subject));
20
- }
21
-
22
- projectRules(spaceId) {
23
- requirePublicSpace(this.store, spaceId);
24
- const rules = getProjectRules(this.store, spaceId);
25
- const facts = rules.facts
26
- .filter((fact) => fact.scope === FactScope.PUBLIC)
27
- .map((fact) => this.#enrich(fact))
28
- .filter(Boolean);
29
- return {
30
- spaceId: rules.spaceId,
31
- spaceName: rules.spaceName,
32
- forbidden: facts.filter((fact) => fact.predicate === 'forbids'),
33
- parameters: facts.filter(isProjectParameter),
34
- links: facts.filter((fact) => fact.predicate === 'has_url'),
35
- facts
36
- };
37
- }
38
-
39
- factHistory(input) {
40
- requirePublicSpace(this.store, input.spaceId);
41
- const history = getFactHistory(this.store, input);
42
- return {
43
- ...history,
44
- facts: history.facts
45
- .filter((fact) => fact.scope === FactScope.PUBLIC)
46
- .map((fact) => {
47
- const enriched = this.#enrich(fact);
48
- return enriched ? { ...enriched, current: fact.current } : null;
49
- })
50
- .filter(Boolean)
51
- };
52
- }
53
-
54
- #publicFacts(facts) {
55
- return facts
56
- .filter((fact) => fact.scope === FactScope.PUBLIC)
57
- .map((fact) => projectPublicMatch(this.store, fact)?.fact)
58
- .filter(Boolean);
59
- }
60
-
61
- #enrich(fact) {
62
- const match = projectPublicMatch(this.store, fact);
63
- return match ? { ...match.fact, source: match.source } : null;
64
- }
65
- }
66
-
67
- function isProjectParameter(fact) {
68
- return fact.predicate.startsWith('has_') && fact.predicate !== 'has_url';
69
- }