fuli-context 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/README.md +94 -25
  2. package/dist/web/assets/ConnectionsPage-CCKWm-6p.js +1 -0
  3. package/dist/web/assets/KnowledgeInspector-BZkB2wJn.js +1 -0
  4. package/dist/web/assets/KnowledgeInspector-CrGYxEob.css +1 -0
  5. package/dist/web/assets/KnowledgeOrganizerPage-CJCNI2Wd.css +1 -0
  6. package/dist/web/assets/KnowledgeOrganizerPage-PXH-TlGt.js +1 -0
  7. package/dist/web/assets/KnowledgePage-CNQXd15y.js +1 -0
  8. package/dist/web/assets/KnowledgeWorkspace-CXPE4GCD.js +4 -0
  9. package/dist/web/assets/OverviewPage-ul7g7HXh.js +1 -0
  10. package/dist/web/assets/PersonalProfilePage-CC40Pw2L.js +1 -0
  11. package/dist/web/assets/PersonalProfilePage-S8ZcG2LU.css +1 -0
  12. package/dist/web/assets/PersonalProjectsPage-CPIEcShD.js +1 -0
  13. package/dist/web/assets/PublicProjectsPage-C700sR7z.js +1 -0
  14. package/dist/web/assets/ReviewPage-7MDDUDgA.js +1 -0
  15. package/dist/web/assets/console-B_Ena2DS.js +5 -0
  16. package/dist/web/assets/identity-CjBwYSMX.js +1 -0
  17. package/dist/web/assets/index-BQRkOwPx.js +2 -0
  18. package/dist/web/assets/{index-Devf7glZ.css → index-CpLDx3of.css} +1 -1
  19. package/dist/web/assets/model-C-5RVIJ2.js +1 -0
  20. package/dist/web/assets/{paths-B790iniO.js → paths-BkULqmGI.js} +1 -1
  21. package/dist/web/assets/{vue-router-BYTAoWT3.js → vue-router-DnD3hUm7.js} +1 -1
  22. package/dist/web/index.html +5 -6
  23. package/graph-provider/fuli_graph/app.py +48 -0
  24. package/graph-provider/fuli_graph/common_knowledge.py +443 -0
  25. package/graph-provider/fuli_graph/common_knowledge_models.py +54 -0
  26. package/graph-provider/fuli_graph/graph_models.py +9 -0
  27. package/graph-provider/fuli_graph/graph_query.py +25 -0
  28. package/graph-provider/fuli_graph/knowledge_audit.py +211 -0
  29. package/graph-provider/fuli_graph/knowledge_feedback_models.py +69 -0
  30. package/graph-provider/fuli_graph/knowledge_management.py +37 -0
  31. package/graph-provider/fuli_graph/knowledge_search.py +24 -2
  32. package/graph-provider/fuli_graph/models.py +69 -0
  33. package/graph-provider/fuli_graph/search_projection.py +59 -0
  34. package/graph-provider/fuli_graph/store_knowledge.py +2 -0
  35. package/graph-provider/pyproject.toml +1 -1
  36. package/npm-shrinkwrap.json +97 -2
  37. package/package.json +2 -1
  38. package/skills/capturing-session-knowledge/SKILL.md +86 -15
  39. package/src/agent-tools/graph-definitions.js +181 -13
  40. package/src/agent-tools/graph-handlers.js +19 -0
  41. package/src/cli/command-registry.js +6 -59
  42. package/src/cli/update-command.js +293 -0
  43. package/src/cli.js +7 -34
  44. package/src/graphiti/agent-knowledge-workflows.js +543 -0
  45. package/src/graphiti/federated-application.js +85 -104
  46. package/src/graphiti/knowledge-provider-mapping.js +91 -0
  47. package/src/graphiti/provider-client.js +15 -0
  48. package/src/graphiti/source-marker.js +1 -7
  49. package/src/graphiti/source-uri.js +29 -0
  50. package/src/http/static-handler.js +29 -3
  51. package/src/mcp/common-knowledge-preview-tokens.js +67 -0
  52. package/src/mcp/create-mcp-server.js +43 -7
  53. package/src/mcp/instructions.js +7 -8
  54. package/src/mcp/lifecycle-audit.js +27 -0
  55. package/src/mcp/task-context-registry.js +93 -0
  56. package/src/mcp/tool-annotations.js +16 -1
  57. package/src/mcp/tool-result.js +24 -0
  58. package/src/runtime-options.js +7 -8
  59. package/src/setup/agent-installation-status.js +14 -2
  60. package/src/setup/agents.js +12 -1
  61. package/src/setup/claude-code-config.js +194 -0
  62. package/src/setup/config-backup.js +20 -5
  63. package/src/setup/options.js +9 -1
  64. package/dist/web/assets/ConnectionsPage-CY6H_mJJ.js +0 -1
  65. package/dist/web/assets/KnowledgeInspector-BSpz5Sfm.js +0 -1
  66. package/dist/web/assets/KnowledgeInspector-CHbB_0rC.css +0 -1
  67. package/dist/web/assets/KnowledgeOrganizerPage-BlEvhPrv.css +0 -1
  68. package/dist/web/assets/KnowledgeOrganizerPage-CvjGPlUc.js +0 -1
  69. package/dist/web/assets/KnowledgePage-Khuo3cNs.js +0 -1
  70. package/dist/web/assets/KnowledgeWorkspace-DVZusvem.js +0 -4
  71. package/dist/web/assets/OverviewPage-DC4C4Fhn.js +0 -1
  72. package/dist/web/assets/PersonalProfilePage-CSV9Mtgz.js +0 -1
  73. package/dist/web/assets/PersonalProfilePage-CVJ3TcRi.css +0 -1
  74. package/dist/web/assets/PersonalProjectsPage-A50EaseQ.js +0 -1
  75. package/dist/web/assets/PublicProjectsPage-BAdO_bae.js +0 -1
  76. package/dist/web/assets/ReviewPage-Dztk2jDG.js +0 -1
  77. package/dist/web/assets/console-tbvTUi6p.js +0 -1
  78. package/dist/web/assets/identity-B3s5CXhv.js +0 -1
  79. package/dist/web/assets/index-DwUDhQKc.js +0 -6
  80. package/dist/web/assets/model-DVT8sjy9.js +0 -1
  81. package/dist/web/assets/runtime-dom.esm-bundler-DttsK21F.js +0 -1
  82. package/src/cli/commands/candidates.js +0 -17
  83. package/src/cli/commands/ingestion.js +0 -32
  84. package/src/cli/commands/reads.js +0 -50
  85. package/src/cli/commands/spaces.js +0 -20
  86. package/src/cli/invocation.js +0 -47
  87. package/src/cli/migrate-command.js +0 -71
  88. package/src/cli/migration-destination.js +0 -117
  89. package/src/storage/import-json.js +0 -70
  90. package/src/storage/legacy-record-validation.js +0 -152
  91. package/src/storage/legacy-snapshot-validation.js +0 -32
package/README.md CHANGED
@@ -19,10 +19,10 @@ Cursor 在会话之间复用个人偏好、项目约束、历史决策与 Runboo
19
19
 
20
20
  ```bash
21
21
  npm install --global fuli-context
22
- fl setup
22
+ fuli setup
23
23
  ```
24
24
 
25
- `fl setup` 会先展示即将进行的操作,再请求确认。它会检查容器运行时、初始化本机
25
+ `fuli setup` 会先展示即将进行的操作,再请求确认。它会检查容器运行时、初始化本机
26
26
  Graphiti / Neo4j、创建个人空间、安装配套 Agent Skills,并为检测到的 Agent 注册
27
27
  `fuli` MCP。Codex 接入还会在用户级 `AGENTS.md` 中合并一段很短的 Bootstrap:每个
28
28
  用户任务开始时先调用协作偏好工具,并把当前工作目录作为 `projectPath` 传给 Fuli。
@@ -32,59 +32,128 @@ Provider。
32
32
  初始化完成后:
33
33
 
34
34
  ```bash
35
- fl open
35
+ fuli open
36
36
  ```
37
37
 
38
38
  管理界面默认位于 `http://127.0.0.1:2727`。
39
39
 
40
- ## 常用命令
40
+ ## CLI 使用
41
+
42
+ 全局安装会提供两个等价命令:
43
+
44
+ - `fuli`:完整命令名,文档默认使用它;
45
+ - `fl`:短别名,例如 `fl status` 与 `fuli status` 完全相同。
46
+
47
+ 查看版本和内置帮助:
48
+
49
+ ```bash
50
+ fuli --version
51
+ fuli --help
52
+ ```
53
+
54
+ ### 本地服务与安装
55
+
56
+ | 命令 | 用途 |
57
+ | --- | --- |
58
+ | `fuli setup [选项]` | 初始化 Provider、管理界面、Agent 接入和 Skills;可重复执行 |
59
+ | `fuli start [选项]` | 启动本机服务 |
60
+ | `fuli stop [--data-dir DIR]` | 安全停止本机服务并保留数据 |
61
+ | `fuli restart [选项]` | 重启本机服务 |
62
+ | `fuli status [--json]` | 查看服务状态;`--json` 输出机器可读结果 |
63
+ | `fuli open` | 在浏览器中打开管理界面 |
64
+ | `fuli update [setup 选项]` | 更新全局 npm 包,并用新版 CLI 刷新本机接入 |
65
+ | `fuli uninstall [--yes]` | 清理 Agent 接入和服务,保留知识数据 |
66
+
67
+ 常用示例:
68
+
69
+ ```bash
70
+ fuli start
71
+ fuli start --open
72
+ fuli status
73
+ fuli status --json
74
+ fuli restart
75
+ fuli restart --rebuild
76
+ fuli stop
77
+ ```
78
+
79
+ `fuli stop` 只停止本机服务,不删除图谱数据。
80
+
81
+ `start` 和 `restart` 可使用 `--data-dir DIR`、`--personal-space NAME`、`--port PORT`;
82
+ `--open` 会在启动后打开管理界面,`--rebuild` 会重新构建本机 Provider 容器。
83
+
84
+ ### setup 选项
85
+
86
+ | 选项 | 用途 |
87
+ | --- | --- |
88
+ | `--yes` | 跳过确认,适合无人值守执行 |
89
+ | `--data-dir DIR` | 使用指定数据目录;后续命令应继续传入同一路径 |
90
+ | `--personal-space NAME` | 设置首次初始化时的个人空间名称,默认是 `我` |
91
+ | `--port PORT` | 设置管理界面端口,默认是 `2727` |
92
+ | `--codex-only` | 只接入 Codex |
93
+ | `--skip-agents` | 不修改 Agent 配置,也不刷新 Agent Skills |
94
+ | `--no-start` | 初始化 Provider,但不启动管理界面 |
95
+ | `--personal-only` | 只使用个人 Provider;这是默认模式 |
96
+ | `--with-dev-public` | 同时启动本机开发用公共 Provider,仅用于开发或联调 |
97
+
98
+ 例如,无人值守地完成默认初始化:
41
99
 
42
100
  ```bash
43
- fl --version
44
- fl --help
45
-
46
- fl start
47
- fl start --open
48
- fl status
49
- fl status --json
50
- fl open
51
- fl restart
52
- fl restart --rebuild
53
- fl stop
101
+ fuli setup --yes
54
102
  ```
55
103
 
56
- `fl stop` 只停止本机服务,不删除图谱数据。需要无人值守初始化时可以使用:
104
+ 使用自定义数据目录和管理界面端口:
57
105
 
58
106
  ```bash
59
- fl setup --yes
107
+ fuli setup --data-dir "./fuli-data" --port 3727
60
108
  ```
61
109
 
62
110
  只初始化 Provider、不启动管理界面:
63
111
 
64
112
  ```bash
65
- fl setup --no-start
113
+ fuli setup --no-start
66
114
  ```
67
115
 
68
116
  ## 更新
69
117
 
70
118
  ```bash
71
- fl stop
119
+ fuli update
120
+ ```
121
+
122
+ `fuli update` 默认先展示更新计划并请求确认。需要无人值守执行时:
123
+
124
+ ```bash
125
+ fuli update --yes
126
+ ```
127
+
128
+ 更新流程会先查询 npm 的 `latest` 版本;确认不会降级后,才安全停止旧版服务、安装当时
129
+ 的 `fuli-context@latest` 对应版本,再直接使用新安装版本的 CLI 执行 `setup --yes`。
130
+ 既有知识数据、配置备份和 Neo4j 数据卷不会删除;即使 npm 上已经是当前版本,也会刷新
131
+ Agent 接入和配套 Skills。`update` 支持上表中的全部 setup 选项;使用过自定义数据目录、
132
+ 端口或 Provider 模式时,应在更新时重复传入相同选项。
133
+
134
+ 如果当前 CLI 来自尚未发布的工作区版本,并且版本号高于 npm `latest`,更新会在停止服务
135
+ 和安装包之前退出,避免把开发版本降级。
136
+
137
+ 如果当前已安装版本尚不识别 `update`,需要先手动升级一次到包含该命令的版本:
138
+
139
+ ```bash
72
140
  npm install --global fuli-context@latest
73
- fl setup --yes
141
+ fuli setup --yes
74
142
  ```
75
143
 
76
- 重复执行 setup 会保留既有知识数据,并刷新 Agent 接入和配套 Skills。
144
+ 如果自动更新在 npm 安装或新版 setup 阶段失败,知识数据仍会保留。检查命令输出后可用
145
+ 上面两条命令恢复;使用过自定义 setup 选项时也要一并带上。
77
146
 
78
147
  ## 卸载
79
148
 
80
149
  先清理 Agent 接入,再移除全局 npm 包:
81
150
 
82
151
  ```bash
83
- fl uninstall
152
+ fuli uninstall
84
153
  npm uninstall --global fuli-context
85
154
  ```
86
155
 
87
- `fl uninstall` 会:
156
+ `fuli uninstall` 会:
88
157
 
89
158
  - 停止本机 Fuli 服务;
90
159
  - 从 Codex、Claude Code 和 Cursor 中移除 Fuli MCP 接入;
@@ -170,8 +239,8 @@ docker compose -f compose.graphiti.yml config --quiet
170
239
  ```
171
240
 
172
241
  `npm run test:package` 会构建前端、生成真实 npm tarball、安装到隔离的全局前缀,并验证
173
- `fl`、版本号、帮助信息和已发布 Web UI。测试源码、QA 截图与内部设计文档都不会进入
174
- npm 包。
242
+ `fuli` / `fl`、版本号、帮助信息和已发布 Web UI。测试源码、QA 截图与内部设计文档
243
+ 都不会进入 npm 包。
175
244
 
176
245
  ## License
177
246
 
@@ -0,0 +1 @@
1
+ import{C as e,D as t,E as n,F as r,J as i,K as a,N as o,U as s,a as c,b as l,d as u,n as d,t as f,v as p,w as m,x as h,y as g}from"./console-B_Ena2DS.js";import{i as _,r as v,t as y}from"./identity-CjBwYSMX.js";var b={class:`view connections-view`},x={class:`connection-intro`},S=[`aria-label`],C=[`data-status`],w={class:`service-state`},T=[`data-status`],E={class:`service-state`},D={key:0,class:`connection-subscriptions`},O={class:`section-title`},k={class:`subscription-list`},A=[`onClick`],j={key:0,class:`empty-state`},M={type:`submit`},N=t({__name:`ConnectionsPage`,setup(t){let N=f(),P=s(``),F=l(()=>N.state?.providers?.personal?.status===`ready`),I=l(()=>N.state?.providers?.workspaces??[]),L=l(()=>I.value.filter(({status:e})=>e===`ready`).length),R=l(()=>N.state?.subscriptions??[]),z=l(()=>new Set(R.value.map(({provider_url:e,project_id:t})=>`${e}::${t}`))),B=l(()=>(N.state?.projects??[]).filter(e=>!z.value.has(H(e)))),V=l(()=>B.value.map(e=>({value:H(e),label:e.name,meta:`#${y(e.id,26)}`,search:v(e.id)})));function H(e){return`${e.providerUrl}::${e.id}`}async function U(){let e=B.value.find(e=>H(e)===P.value);if(e)try{await c(`/api/subscriptions`,{personalSpaceId:N.activePersonalSpace?.id,projectId:e.id,providerUrl:e.providerUrl,projectName:e.name}),P.value=``,N.notify(u(`pages.connections.subscribed`,{name:e.name})),await N.refresh()}catch(e){N.reportError(e)}}async function W(e){try{let t=new URLSearchParams({personalSpaceId:N.activePersonalSpace?.id??``,providerUrl:e.provider_url});await d(`/api/subscriptions/${encodeURIComponent(e.project_id)}?${t}`),N.notify(u(`pages.connections.unsubscribed`,{name:e.project_name??e.project_id})),await N.refresh()}catch(e){N.reportError(e)}}return(t,s)=>(o(),m(`section`,b,[h(`div`,x,[h(`h3`,null,i(a(u)(`pages.connections.title`)),1),h(`p`,null,i(a(u)(`pages.connections.intro`)),1)]),h(`div`,{class:`service-connection-grid`,"aria-label":a(u)(`pages.connections.statusAria`)},[h(`article`,{class:`service-connection-card`,"data-status":F.value?`ready`:`error`},[h(`header`,null,[s[2]||=h(`span`,{class:`service-connection-icon local`,"aria-hidden":`true`},[h(`span`,{class:`nav-icon nav-icon-personal-project`})],-1),h(`div`,null,[s[1]||=h(`p`,null,`LOCAL KNOWLEDGE`,-1),h(`h3`,null,i(a(u)(`pages.connections.localGraphiti`)),1)]),h(`span`,w,i(F.value?a(u)(`common.status.connected`):a(u)(`common.status.connectionError`)),1)]),h(`p`,null,i(F.value?a(u)(`pages.connections.localReadyCopy`):a(u)(`pages.connections.localErrorCopy`)),1),h(`dl`,null,[h(`div`,null,[h(`dt`,null,i(a(u)(`pages.connections.storage`)),1),s[3]||=h(`dd`,null,`Neo4j`,-1)]),h(`div`,null,[h(`dt`,null,i(a(u)(`pages.connections.purpose`)),1),h(`dd`,null,i(a(u)(`pages.connections.localPurpose`)),1)])])],8,C),h(`article`,{class:`service-connection-card`,"data-status":a(N).publicRuntimeStatus},[h(`header`,null,[s[5]||=h(`span`,{class:`service-connection-icon public`,"aria-hidden":`true`},[h(`span`,{class:`nav-icon nav-icon-public-project`})],-1),h(`div`,null,[s[4]||=h(`p`,null,`PUBLIC PROVIDER`,-1),h(`h3`,null,i(a(u)(`pages.connections.publicService`)),1)]),h(`span`,E,i(a(N).publicRuntimeStatus===`ready`?a(u)(`common.status.connected`):a(N).publicRuntimeStatus===`error`?a(u)(`common.status.connectionError`):a(u)(`common.status.notConnected`)),1)]),h(`p`,null,i(a(N).publicRuntimeStatus===`ready`?a(u)(`pages.connections.publicReadyCopy`):a(N).publicRuntimeStatus===`error`?a(u)(`pages.connections.publicErrorCopy`):a(u)(`pages.connections.publicOfflineCopy`)),1),h(`dl`,null,[h(`div`,null,[h(`dt`,null,i(a(u)(`pages.connections.currentStatus`)),1),h(`dd`,null,i(a(N).publicRuntimeStatus===`ready`?a(u)(`pages.connections.sharedServicesReady`,{count:L.value||I.value.length}):a(u)(`pages.connections.notAvailable`)),1)]),h(`div`,null,[h(`dt`,null,i(a(u)(`pages.connections.purpose`)),1),h(`dd`,null,i(a(u)(`pages.connections.publicPurpose`)),1)])])],8,T)],8,S),a(N).state?.capabilities?.subscribeProject?(o(),m(`section`,D,[h(`div`,O,[h(`h3`,null,i(a(u)(`pages.connections.subscriptionsTitle`)),1),h(`p`,null,i(a(u)(`pages.connections.subscriptionsCopy`)),1)]),h(`div`,k,[(o(!0),m(g,null,r(R.value,e=>(o(),m(`div`,{key:`${e.provider_url}:${e.project_id}`,class:`subscription-row`},[s[6]||=h(`span`,null,`↗`,-1),h(`div`,null,[h(`strong`,null,i(e.project_name??e.project_id),1),h(`span`,null,i(a(u)(`pages.connections.sharedProject`)),1)]),h(`button`,{class:`secondary-action subscription-action`,type:`button`,onClick:t=>W(e)},i(a(u)(`pages.connections.unsubscribe`)),9,A)]))),128)),R.value.length?e(``,!0):(o(),m(`div`,j,i(a(u)(`pages.connections.noSubscriptions`)),1))]),h(`form`,{class:`subscription-form`,onSubmit:p(U,[`prevent`])},[n(_,{modelValue:P.value,"onUpdate:modelValue":s[0]||=e=>P.value=e,options:V.value,label:a(u)(`pages.connections.sharedProjectLabel`),placeholder:a(u)(`pages.connections.choosePublicProject`),searchable:``,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`]),h(`button`,M,i(a(u)(`pages.connections.subscribe`)),1)],32)])):e(``,!0)]))}});export{N as default};
@@ -0,0 +1 @@
1
+ import{C as e,D as t,E as n,F as r,H as i,J as a,K as o,N as s,R as c,T as l,U as u,V as d,_ as f,a as p,b as m,d as h,i as g,m as _,q as v,t as y,v as b,w as x,x as S,y as C}from"./console-B_Ena2DS.js";import{i as w,r as T,t as E}from"./identity-CjBwYSMX.js";import{C as D,D as O,E as k,S as A,T as j,d as M,f as N,g as P,h as F,i as I,l as L,r as R,s as z,u as B,w as V,x as H}from"./model-C-5RVIJ2.js";var U=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},ee={key:0,open:``,class:`knowledge-confirm-dialog vue-dialog`},W={class:`project-dialog-header`},te=[`disabled`],G={class:`knowledge-confirm-summary`},K={class:`knowledge-confirm-fields`},q={class:`knowledge-confirm-acknowledgement`},ne={key:0,class:`publish-dialog-error`,role:`alert`},J={class:`project-profile-dialog-actions`},Y=[`disabled`],re=[`disabled`],X=U(t({__name:`KnowledgeConfirmDialog`,props:{item:{},personalSpaceId:{},personalProjectId:{}},emits:[`close`,`saved`],setup(t,{emit:n}){let r=t,i=n,l=y(),p=u(``),v=u(``),C=u(``),w=u(!1),T=u(!1),E=u(``),D=u({kind:`import`,label:h(`knowledge.domain.actors.historicalRecord`)}),O=m(()=>r.item?.profileAspect?h(`knowledge.dialogs.confirm.preferenceSubject`):h(`knowledge.dialogs.confirm.knowledgeSubject`));c(()=>r.item,e=>{if(!e)return;let t=e.evidence.at(0),n=e.confirmationBasis;p.value=n?.existence_reason||t?.source_description||t?.summary||h(`knowledge.dialogs.confirm.sourceSupport`),v.value=n?.quadrant_reason||e.reasoningSummary||h(`knowledge.dialogs.confirm.quadrantReason`,{quadrant:j(e.originQuadrant),description:V(e.originQuadrant)}),D.value=n?.proposed_by??A(t),C.value=h(`knowledge.dialogs.confirm.confirmationReason`),w.value=!1,E.value=``},{immediate:!0});async function k(){let e=r.item;if(!(!e||T.value)){if(!e.classificationExplicit)return M(h(`knowledge.dialogs.confirm.errors.quadrantRequired`));if(!p.value.trim())return M(h(`knowledge.dialogs.confirm.errors.existenceRequired`));if(!v.value.trim())return M(h(`knowledge.dialogs.confirm.errors.quadrantReasonRequired`));if(!C.value.trim())return M(h(`knowledge.dialogs.confirm.errors.confirmationReasonRequired`));if(!w.value)return M(h(`knowledge.dialogs.confirm.errors.acknowledgmentRequired`));T.value=!0,E.value=``;try{await g(`/api/knowledge/${e.itemKind}/${encodeURIComponent(e.id)}`,{personalSpaceId:r.personalSpaceId,personalProjectId:r.personalProjectId,action:`confirm`,reason:C.value.trim(),confirmationStatus:`confirmed`,confirmationBasis:{existenceReason:p.value.trim(),quadrantReason:v.value.trim(),proposedBy:D.value,confirmedBy:{kind:`user`,label:h(`knowledge.domain.actors.currentUser`)},confirmedAt:new Date().toISOString()}}),l.notify(h(`knowledge.dialogs.confirm.confirmed`,{subject:O.value})),i(`saved`),i(`close`)}catch(e){E.value=e instanceof Error?e.message:h(`knowledge.dialogs.confirm.errors.failed`),l.reportError(e)}finally{T.value=!1}}}function A(e){let t={codex:`Codex`,claude_code:`Claude Code`,cursor:`Cursor`,kiro:`Kiro`,other:h(`knowledge.domain.actors.otherAgent`)}[e?.source_application??``];return t?{kind:`agent`,label:t}:{kind:`import`,label:h(`knowledge.domain.actors.historicalRecord`)}}function M(e){E.value=e}return(n,r)=>t.item?(s(),x(`dialog`,ee,[S(`form`,{class:`knowledge-confirm-dialog-shell`,onSubmit:b(k,[`prevent`])},[S(`header`,W,[S(`div`,null,[r[6]||=S(`p`,{class:`eyebrow`},`KNOWLEDGE CONFIRMATION`,-1),S(`h3`,null,a(o(h)(`knowledge.dialogs.confirm.title`,{subject:O.value})),1),S(`p`,null,a(o(h)(`knowledge.dialogs.confirm.intro`)),1)]),S(`button`,{class:`secondary-action`,type:`button`,disabled:T.value,onClick:r[0]||=e=>i(`close`)},a(o(h)(`common.actions.close`)),9,te)]),S(`section`,G,[S(`span`,null,a(t.item.profileAspect?o(h)(`knowledge.dialogs.confirm.preference`):o(h)(`knowledge.dialogs.confirm.knowledge`)),1),S(`strong`,null,a(t.item.title),1),S(`p`,null,a(t.item.body),1),S(`small`,null,a(o(h)(`knowledge.dialogs.confirm.quadrant`,{quadrant:o(j)(t.item.originQuadrant)})),1)]),S(`div`,K,[S(`label`,null,[S(`span`,null,a(o(h)(`knowledge.dialogs.confirm.whyExists`)),1),d(S(`textarea`,{"onUpdate:modelValue":r[1]||=e=>p.value=e,name:`confirmation-existence-reason`,maxlength:`4096`,rows:`3`,required:``},null,512),[[f,p.value]])]),S(`label`,null,[S(`span`,null,a(o(h)(`knowledge.dialogs.confirm.whyQuadrant`)),1),d(S(`textarea`,{"onUpdate:modelValue":r[2]||=e=>v.value=e,name:`confirmation-quadrant-reason`,maxlength:`4096`,rows:`3`,required:``},null,512),[[f,v.value]])]),S(`label`,null,[S(`span`,null,a(o(h)(`knowledge.dialogs.confirm.confirmationCopy`)),1),d(S(`textarea`,{"onUpdate:modelValue":r[3]||=e=>C.value=e,name:`confirmation-reason`,maxlength:`2000`,rows:`2`,required:``},null,512),[[f,C.value]])])]),S(`label`,q,[d(S(`input`,{"onUpdate:modelValue":r[4]||=e=>w.value=e,name:`confirmation-acknowledged`,type:`checkbox`},null,512),[[_,w.value]]),S(`span`,null,a(o(h)(`knowledge.dialogs.confirm.acknowledgment`)),1)]),E.value?(s(),x(`p`,ne,a(E.value),1)):e(``,!0),S(`footer`,J,[S(`button`,{class:`secondary-action`,type:`button`,disabled:T.value,onClick:r[5]||=e=>i(`close`)},a(o(h)(`common.actions.cancel`)),9,Y),S(`button`,{class:`primary-action`,type:`submit`,disabled:T.value||!w.value},a(T.value?o(h)(`knowledge.dialogs.confirm.confirming`):o(h)(`knowledge.dialogs.confirm.confirmSubject`,{subject:O.value})),9,re)])],32)])):e(``,!0)}}),[[`__scopeId`,`data-v-26170b1a`]]),ie={key:0,open:``,class:`project-dialog knowledge-edit-dialog vue-dialog`},ae={class:`project-dialog-shell`},oe={class:`project-dialog-header`},se={class:`knowledge-edit-columns`},ce={key:0},le={key:1},ue={key:2},de={class:`knowledge-taxonomy-fields`},fe={class:`knowledge-classification-warning`},pe={key:3,class:`knowledge-classification-warning`},me={class:`knowledge-confirmation-fields`},he={class:`knowledge-taxonomy-fields`},ge=[`placeholder`],_e=[`placeholder`],ve={key:4,class:`knowledge-replacement-fields`},ye={key:0},be={class:`knowledge-replacement-fields`},xe={key:5,class:`publish-dialog-error`,role:`alert`},Se={class:`knowledge-editor-actions`},Ce=[`disabled`],we=[`disabled`],Te=[`disabled`],Ee=[`disabled`],De={key:0},Oe=[`disabled`],ke={key:1},Ae={key:0},je=[`disabled`],Me=t({__name:`KnowledgeEditDialog`,props:{item:{},personalSpaceId:{},personalProjectId:{},projects:{},replacementItems:{default:()=>[]}},emits:[`close`,`saved`],setup(t,{emit:r}){let _=t,v=r,D=y(),O=u(!1),k=u(``),A=u(``),M=u(``),N=u(`global`),P=u(``),F=u(``),I=u(``),L=u(``),R=i({name:``,summary:``,fact:``,currentQuadrant:``,confirmationStatus:`pending`,existenceReason:``,quadrantReason:``,proposedByKind:`agent`,proposedByLabel:``,confirmedByKind:`user`,confirmedByLabel:``,profileAspect:`none`,inheritanceMode:`local_only`,reason:``}),z=m(()=>_.item?.itemKind===`relationship`),B=m(()=>!!_.item?.invalidAt),V=m(()=>!!_.item?.raw.profile_aspect),H=m(()=>_.projects.map(e=>({value:e.project_id,label:e.profile.name,meta:`#${E(e.project_id,26)}`,search:T(e.project_id)}))),U=m(()=>[`known_known`,`known_unknown`,`unknown_known`,`unknown_unknown`].map(e=>({value:e,label:h(`knowledge.dialogs.edit.quadrants.${e}`)}))),ee=m(()=>[{value:`pending`,label:h(`knowledge.dialogs.edit.confirmationStates.pending`)},{value:`confirmed`,label:h(`knowledge.dialogs.edit.confirmationStates.confirmed`)}]),W=m(()=>[{value:`local_only`,label:h(`knowledge.dialogs.edit.inheritance.local`)},{value:`descendants`,label:h(`knowledge.dialogs.edit.inheritance.descendants`)},{value:`selected_projects`,label:h(`knowledge.dialogs.edit.inheritance.selected`)}]),te=m(()=>[`user`,`agent`,`authoritative_source`,`import`].map(e=>({value:e,label:h(`knowledge.domain.actors.${e}`)}))),G=m(()=>[`user`,`authoritative_source`].map(e=>({value:e,label:h(`knowledge.domain.actors.${e}`)}))),K=m(()=>[{value:`none`,label:h(`knowledge.dialogs.edit.profiles.none`)},...[`taste`,`personality`,`judgment_preference`].map(e=>({value:e,label:h(`knowledge.domain.profiles.${e}`)}))]),q=m(()=>[{value:`global`,label:h(`knowledge.dialogs.edit.scopes.global`)},{value:`project`,label:h(`knowledge.dialogs.edit.scopes.project`),disabled:_.projects.length===0}]),ne=m(()=>[{value:``,label:h(`knowledge.dialogs.edit.replacementNone`)},..._.replacementItems.filter(e=>!e.invalidAt&&(e.itemKind!==_.item?.itemKind||e.id!==_.item?.id)).map(e=>({value:Fe(e.itemKind,e.id),label:e.title,meta:e.type,search:`${e.body} ${e.id}`}))]),J=m(()=>{if(!L.value)return null;try{let[e,t]=JSON.parse(L.value);return e!==`entity`&&e!==`relationship`||typeof t!=`string`?null:{itemKind:e,id:t}}catch{return null}}),Y=m(()=>_.item?.assignments.at(0)?.project_id??_.item?.evidence.find(({personal_project_id:e})=>e)?.personal_project_id??_.personalProjectId??null);c(()=>_.item,e=>{if(!e)return;let t=e.raw;R.name=e.itemKind===`entity`?t.name:``,R.summary=e.itemKind===`entity`?t.summary??``:``,R.fact=e.itemKind===`relationship`?t.fact??``:``;let n=e.confirmationBasis,r=e.evidence.at(0);R.currentQuadrant=e.classificationExplicit?t.current_quadrant??t.origin_quadrant??`known_known`:``,R.confirmationStatus=e.confirmationStatus===`confirmed`?`confirmed`:`pending`,R.existenceReason=n?.existence_reason??r?.source_description??r?.summary??``,R.quadrantReason=n?.quadrant_reason??t.reasoning_summary??``,R.proposedByKind=n?.proposed_by.kind??`agent`,R.proposedByLabel=n?.proposed_by.label??``,R.confirmedByKind=n?.confirmed_by?.kind??`user`,R.confirmedByLabel=n?.confirmed_by?.label??``,R.profileAspect=t.profile_aspect??`none`,R.inheritanceMode=t.profile_aspect?`local_only`:t.inheritance_mode??`local_only`,I.value=t.inherited_project_ids?.at(0)??_.projects[0]?.project_id??``,R.reason=``,A.value=``,M.value=Y.value??_.projects[0]?.project_id??``,N.value=t.preference_scope??`global`,P.value=t.preference_project_id??_.projects[0]?.project_id??``,F.value=``,L.value=e.replacedByItemId&&e.replacedByItemKind?Fe(e.replacedByItemKind,e.replacedByItemId):``,k.value=``},{immediate:!0});async function re(){let e=_.item;if(!e)return;if(!R.reason.trim())return $(h(`knowledge.dialogs.edit.errors.reasonRequired`));if(!z.value&&!R.name.trim())return $(h(`knowledge.dialogs.edit.errors.nameRequired`));if(z.value&&!R.fact.trim())return $(h(`knowledge.dialogs.edit.errors.factRequired`));if(!R.currentQuadrant||!R.confirmationStatus)return $(h(`knowledge.dialogs.edit.errors.classificationRequired`));if(!R.existenceReason.trim())return $(h(`knowledge.dialogs.edit.errors.existenceRequired`));if(!R.quadrantReason.trim())return $(h(`knowledge.dialogs.edit.errors.quadrantRequired`));if(!R.proposedByKind)return $(h(`knowledge.dialogs.edit.errors.proposerRequired`));if(R.confirmationStatus===`confirmed`&&!R.confirmedByKind)return $(h(`knowledge.dialogs.edit.errors.confirmerRequired`));if(R.inheritanceMode===`selected_projects`&&!I.value)return $(h(`knowledge.dialogs.edit.errors.inheritedProjectsRequired`));let t={...Z(`update`),confirmationStatus:R.confirmationStatus,confirmationBasis:{existenceReason:R.existenceReason.trim(),quadrantReason:R.quadrantReason.trim(),proposedBy:{kind:R.proposedByKind,label:R.proposedByLabel.trim()||null},confirmedBy:R.confirmationStatus===`confirmed`?{kind:R.confirmedByKind,label:R.confirmedByLabel.trim()||null}:null,confirmedAt:R.confirmationStatus===`confirmed`?new Date().toISOString():null},profileAspect:R.profileAspect,inheritanceMode:R.profileAspect===`none`?R.inheritanceMode:`local_only`,inheritedProjectIds:R.profileAspect===`none`&&R.inheritanceMode===`selected_projects`?[I.value]:[],reasoningSummary:R.quadrantReason.trim()};_.item.classificationExplicit?t.currentQuadrant=R.currentQuadrant:t.originQuadrant=R.currentQuadrant,z.value?t.fact=R.fact.trim():(t.name=R.name.trim(),t.summary=R.summary.trim()),await Q(async()=>{await g(`/api/knowledge/${e.itemKind}/${encodeURIComponent(e.id)}`,t),D.notify(h(`knowledge.dialogs.edit.notices.corrected`))})}async function X(e){let t=_.item;if(t){if(!R.reason.trim())return $(h(e===`invalidate`?`knowledge.dialogs.edit.errors.statusReasonRequired`:`knowledge.dialogs.edit.errors.restoreReasonRequired`));await Q(async()=>{let n=Z(e);e===`invalidate`&&J.value&&(n.replacementItemId=J.value.id,n.replacementItemKind=J.value.itemKind),await g(`/api/knowledge/${t.itemKind}/${encodeURIComponent(t.id)}`,n),D.notify(e===`invalidate`?J.value?h(`knowledge.dialogs.edit.notices.invalidatedWithReplacement`):h(`knowledge.dialogs.edit.notices.invalidated`):h(`knowledge.dialogs.edit.notices.restored`))})}}async function Me(){let e=_.item,t=J.value;if(!(!e||!B.value)){if(!t)return $(h(`knowledge.dialogs.edit.errors.replacementRequired`));if(!R.reason.trim())return $(h(`knowledge.dialogs.edit.errors.replacementReasonRequired`));await Q(async()=>{await g(`/api/knowledge/${e.itemKind}/${encodeURIComponent(e.id)}`,{...Z(`link_replacement`),replacementItemId:t.id,replacementItemKind:t.itemKind}),D.notify(h(`knowledge.dialogs.edit.notices.replacementSaved`))})}}async function Ne(){let e=_.item;if(e){if(!M.value)return $(h(`knowledge.dialogs.edit.errors.projectRequired`));if(!A.value.trim())return $(h(`knowledge.dialogs.edit.errors.assignmentReasonRequired`));if(M.value===Y.value)return $(h(`knowledge.dialogs.edit.errors.alreadyAssigned`));await Q(async()=>{await p(`/api/knowledge/${e.itemKind}/${encodeURIComponent(e.id)}/assignment`,{personalSpaceId:_.personalSpaceId,targetProjectId:M.value,reason:A.value.trim()}),D.notify(h(`knowledge.dialogs.edit.notices.assignmentChanged`))})}}async function Pe(){let e=_.item;if(!e)return;let t=N.value===`project`?P.value:null;if(N.value===`project`&&!t)return $(h(`knowledge.dialogs.edit.errors.preferenceProjectRequired`));if(!F.value.trim())return $(h(`knowledge.dialogs.edit.errors.preferenceReasonRequired`));await Q(async()=>{await p(`/api/knowledge/${e.itemKind}/${encodeURIComponent(e.id)}/preference-scope`,{personalSpaceId:_.personalSpaceId,scope:N.value,projectId:t,reason:F.value.trim()}),D.notify(N.value===`global`?h(`knowledge.dialogs.edit.notices.preferenceGlobal`):h(`knowledge.dialogs.edit.notices.preferenceProject`))})}function Z(e){return{personalSpaceId:_.personalSpaceId,personalProjectId:_.personalProjectId,action:e,reason:R.reason.trim()}}function Fe(e,t){return JSON.stringify([e,t])}async function Q(e){O.value=!0,k.value=``;try{await e(),v(`close`),v(`saved`)}catch(e){k.value=e instanceof Error?e.message:h(`knowledge.dialogs.edit.errors.saveFailed`),D.reportError(e)}finally{O.value=!1}}function $(e){k.value=e}return(r,i)=>t.item?(s(),x(`dialog`,ie,[S(`div`,ae,[S(`header`,oe,[S(`div`,null,[i[24]||=S(`p`,{class:`eyebrow`},`PERSONAL KNOWLEDGE`,-1),S(`h3`,null,a(B.value?o(h)(`knowledge.dialogs.edit.titleRestore`):o(h)(`knowledge.dialogs.edit.titleCorrect`)),1),S(`p`,null,a(o(h)(`knowledge.dialogs.edit.intro`)),1)]),S(`button`,{class:`secondary-action`,type:`button`,onClick:i[0]||=e=>v(`close`)},a(o(h)(`common.actions.close`)),1)]),S(`div`,se,[S(`section`,null,[S(`h4`,null,a(o(h)(`knowledge.dialogs.edit.currentContent`)),1),S(`form`,{class:`knowledge-editor-form`,onSubmit:b(re,[`prevent`])},[z.value?e(``,!0):(s(),x(`label`,ce,[l(a(o(h)(`knowledge.dialogs.edit.name`)),1),d(S(`input`,{"onUpdate:modelValue":i[1]||=e=>R.name=e,maxlength:`512`},null,512),[[f,R.name]])])),z.value?(s(),x(`label`,ue,[l(a(o(h)(`knowledge.dialogs.edit.fact`)),1),d(S(`textarea`,{"onUpdate:modelValue":i[3]||=e=>R.fact=e,maxlength:`8192`,rows:`5`},null,512),[[f,R.fact]])])):(s(),x(`label`,le,[l(a(o(h)(`knowledge.dialogs.edit.description`)),1),d(S(`textarea`,{"onUpdate:modelValue":i[2]||=e=>R.summary=e,maxlength:`4096`,rows:`5`},null,512),[[f,R.summary]])])),S(`div`,de,[S(`label`,null,[l(a(o(h)(`knowledge.dialogs.edit.classification`))+` `,1),n(w,{modelValue:R.currentQuadrant,"onUpdate:modelValue":i[4]||=e=>R.currentQuadrant=e,options:U.value,label:o(h)(`knowledge.dialogs.edit.classification`)},null,8,[`modelValue`,`options`,`label`])]),S(`label`,null,[l(a(o(h)(`knowledge.dialogs.edit.confirmationStatus`))+` `,1),n(w,{modelValue:R.confirmationStatus,"onUpdate:modelValue":i[5]||=e=>R.confirmationStatus=e,options:ee.value,label:o(h)(`knowledge.dialogs.edit.confirmationStatus`)},null,8,[`modelValue`,`options`,`label`])]),S(`label`,null,[l(a(o(h)(`knowledge.dialogs.edit.preferenceDimension`))+` `,1),n(w,{modelValue:R.profileAspect,"onUpdate:modelValue":i[6]||=e=>R.profileAspect=e,options:K.value,label:o(h)(`knowledge.dialogs.edit.preferenceDimension`)},null,8,[`modelValue`,`options`,`label`])])]),S(`p`,fe,a(o(h)(`knowledge.dialogs.edit.originQuadrant`,{quadrant:o(j)(t.item.originQuadrant)})),1),t.item.classificationExplicit?e(``,!0):(s(),x(`p`,pe,a(o(h)(`knowledge.dialogs.edit.missingQuadrant`)),1)),S(`fieldset`,me,[S(`legend`,null,a(o(h)(`knowledge.dialogs.edit.basis`)),1),S(`label`,null,[l(a(o(h)(`knowledge.dialogs.edit.whyExists`))+` `,1),d(S(`textarea`,{"onUpdate:modelValue":i[7]||=e=>R.existenceReason=e,maxlength:`4096`,rows:`3`,required:``},null,512),[[f,R.existenceReason]])]),S(`label`,null,[l(a(o(h)(`knowledge.dialogs.edit.whyQuadrant`))+` `,1),d(S(`textarea`,{"onUpdate:modelValue":i[8]||=e=>R.quadrantReason=e,maxlength:`4096`,rows:`3`,required:``},null,512),[[f,R.quadrantReason]])]),S(`div`,he,[S(`label`,null,[l(a(o(h)(`knowledge.dialogs.edit.proposer`))+` `,1),n(w,{modelValue:R.proposedByKind,"onUpdate:modelValue":i[9]||=e=>R.proposedByKind=e,options:te.value,label:o(h)(`knowledge.dialogs.edit.proposer`)},null,8,[`modelValue`,`options`,`label`])]),S(`label`,null,[l(a(o(h)(`knowledge.dialogs.edit.proposerDescription`))+` `,1),d(S(`input`,{"onUpdate:modelValue":i[10]||=e=>R.proposedByLabel=e,maxlength:`160`,placeholder:o(h)(`knowledge.dialogs.edit.proposerPlaceholder`)},null,8,ge),[[f,R.proposedByLabel]])]),R.confirmationStatus===`confirmed`?(s(),x(C,{key:0},[S(`label`,null,[l(a(o(h)(`knowledge.dialogs.edit.confirmer`))+` `,1),n(w,{modelValue:R.confirmedByKind,"onUpdate:modelValue":i[11]||=e=>R.confirmedByKind=e,options:G.value,label:o(h)(`knowledge.dialogs.edit.confirmer`)},null,8,[`modelValue`,`options`,`label`])]),S(`label`,null,[l(a(o(h)(`knowledge.dialogs.edit.confirmerDescription`))+` `,1),d(S(`input`,{"onUpdate:modelValue":i[12]||=e=>R.confirmedByLabel=e,maxlength:`160`,placeholder:o(h)(`knowledge.dialogs.edit.confirmerPlaceholder`)},null,8,_e),[[f,R.confirmedByLabel]])])],64)):e(``,!0)]),S(`p`,null,a(o(h)(`knowledge.dialogs.edit.agentConfirmedBoundary`)),1)]),V.value?e(``,!0):(s(),x(`fieldset`,ve,[S(`legend`,null,a(o(h)(`knowledge.dialogs.edit.crossProjectInheritance`)),1),S(`label`,null,[l(a(o(h)(`knowledge.dialogs.edit.inheritanceScope`))+` `,1),n(w,{modelValue:R.inheritanceMode,"onUpdate:modelValue":i[13]||=e=>R.inheritanceMode=e,options:W.value,label:o(h)(`knowledge.dialogs.edit.inheritanceScope`)},null,8,[`modelValue`,`options`,`label`])]),R.inheritanceMode===`selected_projects`?(s(),x(`label`,ye,[l(a(o(h)(`knowledge.dialogs.edit.inheritedProjects`))+` `,1),n(w,{modelValue:I.value,"onUpdate:modelValue":i[14]||=e=>I.value=e,options:H.value,label:o(h)(`knowledge.dialogs.edit.inheritedProjects`),searchable:``},null,8,[`modelValue`,`options`,`label`])])):e(``,!0),S(`p`,null,a(o(h)(`knowledge.dialogs.edit.inheritanceBoundary`)),1)])),S(`fieldset`,be,[S(`legend`,null,a(B.value?o(h)(`knowledge.dialogs.edit.replacement`):o(h)(`knowledge.dialogs.edit.optionalReplacement`)),1),S(`label`,null,[l(a(B.value?o(h)(`knowledge.dialogs.edit.historicalReplacement`):o(h)(`knowledge.dialogs.edit.activeReplacement`))+` `,1),n(w,{modelValue:L.value,"onUpdate:modelValue":i[15]||=e=>L.value=e,options:ne.value,label:o(h)(`knowledge.dialogs.edit.replacement`),searchable:``},null,8,[`modelValue`,`options`,`label`])]),S(`p`,null,a(o(h)(`knowledge.dialogs.edit.replacementBoundary`)),1)]),S(`label`,null,[l(a(o(h)(`knowledge.dialogs.edit.correctionReason`)),1),d(S(`textarea`,{"onUpdate:modelValue":i[16]||=e=>R.reason=e,maxlength:`2000`,rows:`3`,required:``},null,512),[[f,R.reason]])]),k.value?(s(),x(`p`,xe,a(k.value),1)):e(``,!0),S(`div`,Se,[B.value?(s(),x(C,{key:1},[S(`button`,{class:`secondary-action`,type:`button`,disabled:O.value,onClick:i[18]||=e=>X(`restore`)},a(o(h)(`knowledge.dialogs.edit.restore`)),9,we),S(`button`,{class:`secondary-action`,type:`button`,disabled:O.value,onClick:Me},a(o(h)(`knowledge.dialogs.edit.saveReplacement`)),9,Te)],64)):(s(),x(`button`,{key:0,class:`secondary-action`,type:`button`,disabled:O.value,onClick:i[17]||=e=>X(`invalidate`)},a(o(h)(`knowledge.dialogs.edit.invalidate`)),9,Ce)),S(`button`,{class:`primary-action`,type:`submit`,disabled:O.value},a(O.value?o(h)(`knowledge.dialogs.edit.saving`):R.confirmationStatus===`confirmed`?o(h)(`knowledge.dialogs.edit.saveConfirmed`):o(h)(`knowledge.dialogs.edit.savePending`)),9,Ee)])],32)]),V.value?(s(),x(`section`,ke,[S(`h4`,null,a(o(h)(`knowledge.dialogs.edit.preferenceScope`)),1),S(`p`,null,a(o(h)(`knowledge.dialogs.edit.preferenceScopeCopy`)),1),S(`form`,{class:`knowledge-editor-form`,onSubmit:b(Pe,[`prevent`])},[S(`label`,null,[l(a(o(h)(`knowledge.dialogs.edit.effectiveScope`))+` `,1),n(w,{modelValue:N.value,"onUpdate:modelValue":i[21]||=e=>N.value=e,options:q.value,label:o(h)(`knowledge.dialogs.edit.preferenceScope`)},null,8,[`modelValue`,`options`,`label`])]),N.value===`project`?(s(),x(`label`,Ae,[l(a(o(h)(`knowledge.dialogs.edit.personalProject`))+` `,1),n(w,{modelValue:P.value,"onUpdate:modelValue":i[22]||=e=>P.value=e,options:H.value,label:o(h)(`knowledge.dialogs.edit.personalProject`),searchable:``},null,8,[`modelValue`,`options`,`label`])])):e(``,!0),S(`label`,null,[l(a(o(h)(`knowledge.dialogs.edit.assignmentReason`)),1),d(S(`textarea`,{"onUpdate:modelValue":i[23]||=e=>F.value=e,maxlength:`2000`,rows:`3`,required:``},null,512),[[f,F.value]])]),S(`button`,{class:`primary-action`,type:`submit`,disabled:O.value},a(o(h)(`knowledge.dialogs.edit.saveScope`)),9,je)],32)])):(s(),x(`section`,De,[S(`h4`,null,a(o(h)(`knowledge.dialogs.edit.projectOwnership`)),1),S(`p`,null,a(o(h)(`knowledge.dialogs.edit.ownershipCopy`)),1),S(`form`,{class:`knowledge-editor-form`,onSubmit:b(Ne,[`prevent`])},[S(`label`,null,[l(a(o(h)(`knowledge.dialogs.edit.targetProject`))+` `,1),n(w,{modelValue:M.value,"onUpdate:modelValue":i[19]||=e=>M.value=e,options:H.value,label:o(h)(`knowledge.dialogs.edit.targetProject`),searchable:``,required:``},null,8,[`modelValue`,`options`,`label`])]),S(`label`,null,[l(a(o(h)(`knowledge.dialogs.edit.assignmentReason`)),1),d(S(`textarea`,{"onUpdate:modelValue":i[20]||=e=>A.value=e,maxlength:`2000`,rows:`3`,required:``},null,512),[[f,A.value]])]),S(`button`,{class:`primary-action`,type:`submit`,disabled:O.value||t.projects.length===0},a(o(h)(`knowledge.dialogs.edit.adjustOwnership`)),9,Oe)],32)]))])])])):e(``,!0)}}),Ne={codex:`Codex`,claude_code:`Claude Code`,cursor:`Cursor`,kiro:`Kiro`,other:`Other Agent`},Pe=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function Z(e={}){let t=e.source_application;if(t&&Ne[t])return t;let n=`${e.source_kind??``} ${e.source_description??``}`.toLocaleLowerCase();return n.includes(`claude`)?`claude_code`:n.includes(`cursor`)?`cursor`:n.includes(`kiro`)?`kiro`:n.includes(`codex`)?`codex`:`other`}function Fe(e){let t=Z(e);return t===`other`?h(`knowledge.domain.actors.otherAgent`):Ne[t]}function Q(e={}){return Z(e)!==`codex`||!Pe.test(e.session_id??``)?null:`codex://threads/${e.session_id}`}async function $(e={},t=globalThis.navigator?.clipboard){return!e.session_id||!t?.writeText?!1:(await t.writeText(e.session_id),!0)}var Ie={class:`graph-inspector`},Le={class:`eyebrow`},Re={class:`inspector-identity`},ze={class:`muted`},Be={key:0,class:`inspector-project-material`},Ve={key:3,class:`inspector-replacement`},He={class:`inspector-replacement-heading`},Ue={key:1},We={key:2},Ge={class:`inspector-meta`},Ke={key:0},qe={key:1},Je={key:2},Ye={key:3},Xe={key:4},Ze={key:5},Qe={key:6},$e={key:7},et={key:8},tt={key:9},nt={key:10},rt={key:12},it={class:`inspector-subtitle`},at={key:0,class:`inspector-meta inspector-confirmation-basis`},ot={key:0},st={key:1,class:`inspector-reasoning`},ct={class:`inspector-subtitle`},lt={class:`inspector-meta inspector-attributes`},ut={class:`inspector-subtitle`},dt={class:`inspector-reasoning`},ft={key:7,class:`inspector-actions`},pt={class:`inspector-subtitle`},mt={class:`inspector-relations`},ht={class:`relation-type`},gt={class:`relation-target`},_t={class:`inspector-subtitle`},vt={class:`inspector-evidence`},yt={key:0,class:`evidence-excerpt`},bt=[`href`],xt=[`onClick`],St={class:`inspector-subtitle`},Ct={class:`inspector-history`},wt={class:`inspector-subtitle`},Tt={class:`inspector-history inspector-audit-history`},Et={key:0},Dt={class:`eyebrow`},Ot={class:`inspector-placeholder`},kt=t({__name:`KnowledgeInspector`,props:{item:{},graph:{},editable:{type:Boolean},currentProjectId:{},canPublishProject:{type:Boolean},canManageProject:{type:Boolean},mode:{}},emits:[`confirm`,`edit`,`createProject`,`openProject`,`publishProject`,`openDirectory`,`openGraph`,`openReplacement`,`manageProject`],setup(t,{emit:n}){let i=t,c=n,l=m(()=>i.item?.itemKind===`entity`?i.item.raw:null),d=m(()=>i.item?.itemKind===`relationship`?i.item.raw:null),f=m(()=>new Map(i.graph?.nodes.map(e=>[e.id,e.name])??[])),p=m(()=>!l.value||!i.graph?[]:i.graph.edges.filter(e=>z(e.source)===l.value?.id||z(e.target)===l.value?.id).slice(0,12)),g=m(()=>Object.entries(i.item?.raw.attributes??{}).filter(([,e])=>e!=null&&e!==``)),_=m(()=>M(i.item)),y=m(()=>H(i.item)),b=m(()=>i.item?.itemKind===`entity`&&[`PersonalProject`,`RelatedPersonalProject`].includes(i.item.type)),w=m(()=>i.editable&&i.item?.itemKind===`entity`&&!i.item.invalidAt&&!i.item.profileAspect&&!_.value),T=m(()=>i.editable&&!_.value),E=m(()=>i.editable&&!_.value&&!i.item?.invalidAt&&!!i.item?.classificationExplicit&&W.value===`pending`),U=m(()=>_.value&&i.canManageProject),ee=m(()=>w.value||T.value||E.value||U.value||!!i.mode||b.value&&!!y.value&&y.value!==i.currentProjectId||b.value&&!!y.value&&i.canPublishProject),W=m(()=>i.item?P(i.item):`unclassified`),te=m(()=>i.item?R(i.item):``),G=m(()=>i.item?.confirmationBasis??null),K=u(``),q=m(()=>{let e=i.item?.replacedByItemId,t=i.item?.replacedByItemKind;return!e||!t?null:F(i.graph).find(n=>n.id===e&&n.itemKind===t)??null}),ne=m(()=>{let e=i.item;return e?.humanEdited?e.humanChangeStatus===`unseen`?h(`knowledge.workspace.inspector.humanReview.unseen`):e.humanChangeStatus===`viewed`?h(`knowledge.workspace.inspector.humanReview.viewed`):h(`knowledge.workspace.inspector.humanReview.reviewed`):``});function J(e){return typeof e==`string`?e:JSON.stringify(e)}function Y(e){return`${Math.round(e*100)}%`}function re(e){return e.inheritanceMode===`descendants`?h(`knowledge.workspace.inspector.inheritance.descendants`):e.inheritanceMode===`selected_projects`?h(`knowledge.workspace.inspector.inheritance.selected`,{count:e.inheritedProjectIds.length}):h(`knowledge.workspace.inspector.inheritance.local`)}function X(e,t){return String(e.id??e.session_id??t)}async function ie(e,t){await $(e)&&(K.value=X(e,t))}return(n,i)=>(s(),x(`aside`,Ie,[t.item?(s(),x(C,{key:0},[S(`p`,Le,a(_.value?`PROJECT MATERIAL`:t.item.itemKind===`entity`?`ENTITY`:`RELATIONSHIP`),1),S(`h3`,null,a(t.item.itemKind===`entity`?t.item.title:d.value?.type),1),S(`div`,Re,[S(`span`,null,a(_.value?o(h)(`knowledge.workspace.inspector.ids.projection`):t.item.itemKind===`entity`?o(h)(`knowledge.workspace.inspector.ids.node`):o(h)(`knowledge.workspace.inspector.ids.relationship`)),1),S(`code`,null,a(t.item.id),1)]),S(`p`,ze,a(t.item.body),1),_.value?(s(),x(`section`,Be,[S(`div`,null,[S(`span`,null,a(o(h)(`knowledge.workspace.inspector.ownership`)),1),S(`strong`,null,a(o(D)(t.item)),1)]),S(`p`,null,a(o(h)(`knowledge.workspace.inspector.projectionCopy`)),1)])):(s(),x(`section`,{key:1,class:v([`inspector-classification`,`state-${W.value}`])},[S(`div`,null,[S(`span`,null,a(o(h)(`knowledge.workspace.inspector.currentJudgment`)),1),S(`strong`,null,a(o(k)(t.item)),1)]),S(`p`,null,a(te.value),1)],2)),!_.value&&t.item.humanEdited?(s(),x(`section`,{key:2,class:v([`inspector-human-change`,`state-${t.item.humanChangeStatus}`])},[S(`div`,null,[S(`span`,null,a(o(h)(`knowledge.workspace.inspector.humanReviewTitle`)),1),S(`strong`,null,a(o(B)(t.item.humanChangeStatus)),1)]),S(`p`,null,a(ne.value),1),S(`small`,null,a(o(h)(`knowledge.workspace.inspector.humanVersion`,{version:t.item.humanChangeVersion})),1)],2)):e(``,!0),!_.value&&t.item.invalidAt?(s(),x(`section`,Ve,[S(`div`,He,[S(`span`,null,a(o(h)(`knowledge.workspace.inspector.replacement`)),1),S(`strong`,null,a(q.value?o(h)(`knowledge.workspace.inspector.replacedBy`):o(h)(`knowledge.workspace.inspector.noReplacement`)),1)]),q.value?(s(),x(`button`,{key:0,class:`inspector-replacement-link`,type:`button`,onClick:i[0]||=e=>c(`openReplacement`,q.value)},[S(`span`,null,[S(`strong`,null,a(q.value.title),1),S(`small`,null,a(q.value.body),1)]),S(`b`,null,a(o(h)(`knowledge.workspace.inspector.viewReplacement`)),1)])):t.item.replacedByItemId?(s(),x(`p`,Ue,a(o(h)(`knowledge.workspace.inspector.replacementOutOfScope`)),1)):(s(),x(`p`,We,a(o(h)(`knowledge.workspace.inspector.missingReplacement`)),1))])):e(``,!0),S(`dl`,Ge,[S(`div`,null,[S(`dt`,null,a(o(h)(`knowledge.workspace.inspector.fields.type`)),1),S(`dd`,null,a(t.item.type),1)]),_.value?e(``,!0):(s(),x(`div`,Ke,[S(`dt`,null,a(o(h)(`knowledge.workspace.inspector.fields.originQuadrant`)),1),S(`dd`,null,a(o(j)(t.item.originQuadrant)),1)])),_.value?e(``,!0):(s(),x(`div`,qe,[S(`dt`,null,a(o(h)(`knowledge.workspace.inspector.fields.currentQuadrant`)),1),S(`dd`,null,a(o(j)(t.item.currentQuadrant)),1)])),_.value?e(``,!0):(s(),x(`div`,Je,[S(`dt`,null,a(o(h)(`knowledge.workspace.inspector.fields.quadrantExplanation`)),1),S(`dd`,null,a(o(V)(t.item.originQuadrant)),1)])),_.value?e(``,!0):(s(),x(`div`,Ye,[S(`dt`,null,a(o(h)(`knowledge.workspace.inspector.fields.confirmationStatus`)),1),S(`dd`,null,a(o(k)(t.item)),1)])),_.value?e(``,!0):(s(),x(`div`,Xe,[S(`dt`,null,a(o(h)(`knowledge.workspace.inspector.fields.confidence`)),1),S(`dd`,null,a(Y(t.item.confidenceScore)),1)])),_.value?e(``,!0):(s(),x(`div`,Ze,[S(`dt`,null,a(o(h)(`knowledge.workspace.inspector.fields.utility`)),1),S(`dd`,null,a(Y(t.item.utilityScore)),1)])),_.value?e(``,!0):(s(),x(`div`,Qe,[S(`dt`,null,a(o(h)(`knowledge.workspace.inspector.fields.materialUse`)),1),S(`dd`,null,a(o(h)(`knowledge.workspace.inspector.useCount`,{uses:t.item.qualifiedUseCount,tasks:t.item.distinctTaskCount})),1)])),_.value?e(``,!0):(s(),x(`div`,$e,[S(`dt`,null,a(o(h)(`knowledge.workspace.inspector.fields.recentUse`)),1),S(`dd`,null,a(o(L)(t.item.lastUsedAt)),1)])),!_.value&&!t.item.profileAspect?(s(),x(`div`,et,[S(`dt`,null,a(o(h)(`knowledge.workspace.inspector.fields.inheritance`)),1),S(`dd`,null,a(re(t.item)),1)])):e(``,!0),!_.value&&t.item.profileAspect?(s(),x(`div`,tt,[S(`dt`,null,a(o(h)(`knowledge.workspace.inspector.fields.preference`)),1),S(`dd`,null,a(o(A)(t.item.profileAspect)),1)])):e(``,!0),!_.value&&t.item.profileAspect?(s(),x(`div`,nt,[S(`dt`,null,a(o(h)(`knowledge.workspace.inspector.fields.effectiveScope`)),1),S(`dd`,null,a(t.item.preferenceScope===`project`?o(h)(`knowledge.workspace.inspector.selectedProject`):o(h)(`knowledge.workspace.inspector.personalGlobal`)),1)])):e(``,!0),d.value?(s(),x(C,{key:11},[S(`div`,null,[S(`dt`,null,a(o(h)(`knowledge.workspace.inspector.fields.source`)),1),S(`dd`,null,a(f.value.get(o(z)(d.value.source))??o(z)(d.value.source)),1)]),S(`div`,null,[S(`dt`,null,a(o(h)(`knowledge.workspace.inspector.fields.target`)),1),S(`dd`,null,a(f.value.get(o(z)(d.value.target))??o(z)(d.value.target)),1)])],64)):e(``,!0),_.value?e(``,!0):(s(),x(`div`,rt,[S(`dt`,null,a(o(h)(`knowledge.workspace.inspector.fields.status`)),1),S(`dd`,null,a(t.item.invalidAt?o(h)(`knowledge.workspace.inspector.historical`):o(h)(`common.status.current`)),1)]))]),_.value?e(``,!0):(s(),x(C,{key:4},[S(`h4`,it,a(o(h)(`knowledge.workspace.inspector.basisTitle`)),1),G.value?(s(),x(`dl`,at,[S(`div`,null,[S(`dt`,null,a(o(h)(`knowledge.workspace.inspector.basis.existence`)),1),S(`dd`,null,a(G.value.existence_reason),1)]),S(`div`,null,[S(`dt`,null,a(o(h)(`knowledge.workspace.inspector.basis.quadrant`)),1),S(`dd`,null,a(G.value.quadrant_reason),1)]),S(`div`,null,[S(`dt`,null,a(o(h)(`knowledge.workspace.inspector.basis.proposer`)),1),S(`dd`,null,a(o(I)(G.value.proposed_by)),1)]),S(`div`,null,[S(`dt`,null,a(o(h)(`knowledge.workspace.inspector.basis.confirmer`)),1),S(`dd`,null,a(o(I)(G.value.confirmed_by)),1)]),S(`div`,null,[S(`dt`,null,a(o(h)(`knowledge.workspace.inspector.basis.time`)),1),S(`dd`,null,a(o(L)(G.value.confirmed_at)),1)]),G.value.agent_policy_version?(s(),x(`div`,ot,[S(`dt`,null,a(o(h)(`knowledge.workspace.inspector.basis.agentPolicy`)),1),S(`dd`,null,a(G.value.agent_policy_version),1)])):e(``,!0)])):(s(),x(`p`,st,a(o(h)(`knowledge.workspace.inspector.legacyBasis`)),1))],64)),g.value.length?(s(),x(C,{key:5},[S(`h4`,ct,a(o(h)(`knowledge.workspace.inspector.contentDetails`)),1),S(`dl`,lt,[(s(!0),x(C,null,r(g.value,([e,t])=>(s(),x(`div`,{key:e},[S(`dt`,null,a(e),1),S(`dd`,null,a(J(t)),1)]))),128))])],64)):e(``,!0),t.item.reasoningSummary?(s(),x(C,{key:6},[S(`h4`,ut,a(o(h)(`knowledge.workspace.inspector.formation`)),1),S(`p`,dt,a(t.item.reasoningSummary),1)],64)):e(``,!0),ee.value?(s(),x(`div`,ft,[E.value?(s(),x(`button`,{key:0,class:`primary-action inspector-confirm-action`,type:`button`,onClick:i[1]||=e=>c(`confirm`,t.item)},a(t.item.profileAspect?o(h)(`knowledge.workspace.inspector.confirmPreference`):o(h)(`knowledge.workspace.inspector.confirmKnowledge`)),1)):e(``,!0),U.value?(s(),x(`button`,{key:1,class:`primary-action`,type:`button`,onClick:i[2]||=e=>c(`manageProject`,t.item)},a(o(h)(`knowledge.workspace.inspector.editMaterials`)),1)):e(``,!0),t.mode===`graph`?(s(),x(`button`,{key:2,class:`secondary-action`,type:`button`,onClick:i[3]||=e=>c(`openDirectory`,t.item)},a(o(h)(`knowledge.workspace.inspector.locateDirectory`)),1)):e(``,!0),t.mode===`directory`?(s(),x(`button`,{key:3,class:`secondary-action`,type:`button`,onClick:i[4]||=e=>c(`openGraph`,t.item)},a(o(h)(`knowledge.workspace.inspector.locateGraph`)),1)):e(``,!0),b.value&&y.value&&y.value!==t.currentProjectId?(s(),x(`button`,{key:4,class:`primary-action`,type:`button`,onClick:i[5]||=e=>c(`openProject`,y.value)},a(o(h)(`knowledge.workspace.inspector.enterProject`)),1)):e(``,!0),b.value&&y.value&&t.canPublishProject?(s(),x(`button`,{key:5,class:`secondary-action`,type:`button`,onClick:i[6]||=e=>c(`publishProject`,y.value)},a(o(h)(`knowledge.workspace.inspector.publish`)),1)):e(``,!0),w.value?(s(),x(`button`,{key:6,class:`primary-action`,type:`button`,onClick:i[7]||=e=>c(`createProject`,t.item)},a(o(h)(`knowledge.workspace.inspector.createProject`)),1)):e(``,!0),T.value?(s(),x(`button`,{key:7,class:`secondary-action inspector-edit-action`,type:`button`,onClick:i[8]||=e=>c(`edit`,t.item)},a(t.item.profileAspect?o(h)(`knowledge.workspace.inspector.correctPreference`):o(h)(`knowledge.workspace.inspector.correctOrAssign`)),1)):e(``,!0)])):e(``,!0),p.value.length?(s(),x(C,{key:8},[S(`h4`,pt,a(o(h)(`knowledge.workspace.inspector.relations`)),1),S(`div`,mt,[(s(!0),x(C,null,r(p.value,e=>(s(),x(`div`,{key:e.id,class:`inspector-relation`},[S(`strong`,ht,a(e.type),1),S(`p`,gt,a(e.fact||o(h)(`knowledge.workspace.inspector.relationshipFallback`)),1)]))),128))])],64)):e(``,!0),t.item.evidence.length?(s(),x(C,{key:9},[S(`h4`,_t,a(o(h)(`knowledge.workspace.inspector.evidence`)),1),S(`div`,vt,[(s(!0),x(C,null,r(t.item.evidence,(t,n)=>(s(),x(`article`,{key:X(t,n),class:`evidence-card`},[S(`strong`,null,a(t.name||t.source_description||o(h)(`knowledge.workspace.inspector.sourceRecord`)),1),S(`p`,null,a(t.summary||t.source_description),1),S(`span`,null,a(o(Fe)(t))+` · `+a(t.source_kind||o(h)(`knowledge.workspace.inspector.source`))+` · `+a(o(L)(t.reference_time||t.created_at)),1),t.source_excerpt?(s(),x(`p`,yt,a(t.source_excerpt),1)):e(``,!0),o(Q)(t)?(s(),x(`a`,{key:1,class:`evidence-source-action`,href:o(Q)(t)??void 0},a(o(h)(`knowledge.workspace.inspector.openConversation`)),9,bt)):t.session_id?(s(),x(`button`,{key:2,class:`evidence-source-action`,type:`button`,onClick:e=>ie(t,n)},a(K.value===X(t,n)?o(h)(`knowledge.workspace.inspector.copiedSessionId`):o(h)(`knowledge.workspace.inspector.copySessionId`)),9,xt)):e(``,!0)]))),128))])],64)):e(``,!0),t.item.revisions.length?(s(),x(C,{key:10},[S(`h4`,St,a(o(h)(`knowledge.workspace.inspector.revisions`)),1),S(`div`,Ct,[(s(!0),x(C,null,r(t.item.revisions,(e,t)=>(s(),x(`article`,{key:String(e.id??t),class:`history-row`},[S(`strong`,null,a(o(O)(e.action)),1),S(`p`,null,a(e.reason??e.summary??o(h)(`knowledge.workspace.inspector.noRevisionCopy`)),1),S(`span`,null,a(o(L)(e.created_at)),1)]))),128))])],64)):e(``,!0),t.item.auditEvents.length?(s(),x(C,{key:11},[S(`h4`,wt,a(o(h)(`knowledge.workspace.inspector.audit`)),1),S(`div`,Tt,[(s(!0),x(C,null,r(t.item.auditEvents,t=>(s(),x(`article`,{key:t.id,class:`history-row`},[S(`strong`,null,a(o(N)(t.action)),1),S(`p`,null,a(t.reason),1),S(`span`,null,a(o(h)(`knowledge.workspace.inspector.version`,{version:t.human_change_version}))+` · `+a(o(L)(t.created_at)),1),t.action===`agent_review`?(s(),x(`small`,Et,a(o(h)(`knowledge.workspace.inspector.conflictClassification`,{conflict:t.conflict_check===`no_conflict`?o(h)(`knowledge.workspace.inspector.conflictNone`):o(h)(`knowledge.workspace.inspector.conflictFound`),classification:t.classification_check===`reasonable`?o(h)(`knowledge.workspace.inspector.classificationReasonable`):o(h)(`knowledge.workspace.inspector.classificationAdjust`)})),1)):e(``,!0)]))),128))])],64)):e(``,!0)],64)):(s(),x(C,{key:1},[S(`p`,Dt,a(o(h)(`knowledge.workspace.inspector.contentDetails`)),1),S(`h3`,null,a(o(h)(`knowledge.workspace.inspector.placeholderTitle`)),1),S(`p`,Ot,a(o(h)(`knowledge.workspace.inspector.placeholderCopy`)),1)],64))]))}});export{U as i,Me as n,X as r,kt as t};
@@ -0,0 +1 @@
1
+ .knowledge-confirm-dialog[data-v-26170b1a]{width:min(680px,100vw - 48px)}.knowledge-confirm-dialog-shell[data-v-26170b1a]{gap:18px;padding:24px;display:grid}.knowledge-confirm-summary[data-v-26170b1a]{border-top:1px solid #e1e5e2;border-bottom:1px solid #e1e5e2;gap:6px;padding:14px 0;display:grid}.knowledge-confirm-summary span[data-v-26170b1a],.knowledge-confirm-summary small[data-v-26170b1a]{color:#7d8780;font-size:10px}.knowledge-confirm-summary strong[data-v-26170b1a]{color:#29382f;font-size:16px}.knowledge-confirm-summary p[data-v-26170b1a]{color:#606b63;font-size:12px;line-height:1.65}.knowledge-confirm-fields[data-v-26170b1a]{gap:14px;display:grid}.knowledge-confirm-fields label[data-v-26170b1a]{color:#59645c;gap:6px;font-size:11px;font-weight:600;display:grid}.knowledge-confirm-acknowledgement[data-v-26170b1a]{color:#4e5c53;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:9px;font-size:11px;line-height:1.5;display:grid}
@@ -0,0 +1 @@
1
+ .batch-confirm-dialog[data-v-5b6ea24b]{width:min(980px,100vw - 64px)}.batch-confirm-form[data-v-5b6ea24b]{grid-template-columns:320px minmax(0,1fr);gap:24px;padding-top:20px;display:grid}.batch-confirm-controls[data-v-5b6ea24b]{align-content:start;gap:14px;display:grid}.batch-confirm-controls>label[data-v-5b6ea24b],.batch-confirmer-fields label[data-v-5b6ea24b]{color:#5f6962;gap:6px;font-size:10px;font-weight:600;display:grid}.batch-confirm-controls[data-v-5b6ea24b] .searchable-select{width:100%}.batch-group-summary[data-v-5b6ea24b]{border-top:1px solid #e1e5e2;border-bottom:1px solid #e1e5e2;gap:4px;padding:12px 0;display:grid}.batch-group-summary span[data-v-5b6ea24b],.batch-group-summary small[data-v-5b6ea24b]{color:#89918b;font-size:8px}.batch-group-summary strong[data-v-5b6ea24b]{color:#35443b;font-size:12px}.batch-group-summary p[data-v-5b6ea24b]{color:#6e7871;font-size:9px;line-height:1.5}.batch-confirmer-fields[data-v-5b6ea24b]{grid-template-columns:112px minmax(0,1fr);gap:8px;display:grid}.batch-confirm-rule[data-v-5b6ea24b],.batch-limit-note[data-v-5b6ea24b]{color:#7c857f;font-size:9px;line-height:1.5}.batch-confirm-review[data-v-5b6ea24b]{border-left:1px solid #e1e5e2;min-width:0;padding-left:24px}.batch-review-heading[data-v-5b6ea24b]{justify-content:space-between;align-items:center;gap:16px;padding-bottom:10px;display:flex}.batch-review-heading h4[data-v-5b6ea24b]{color:#344239;font-size:13px}.batch-review-heading p[data-v-5b6ea24b]{color:#858e87;margin-top:2px;font-size:9px}.batch-review-list[data-v-5b6ea24b]{border-top:1px solid #e3e6e3;border-bottom:1px solid #e3e6e3;max-height:410px;overflow:auto}.batch-review-item[data-v-5b6ea24b]{cursor:pointer;border-bottom:1px solid #eceeec;grid-template-columns:auto minmax(0,1fr);gap:9px;padding:10px 2px;display:grid}.batch-review-item[data-v-5b6ea24b]:last-child{border-bottom:0}.batch-review-item>input[data-v-5b6ea24b]{margin-top:2px}.batch-review-item>span[data-v-5b6ea24b]{gap:3px;min-width:0;display:grid}.batch-review-item strong[data-v-5b6ea24b]{color:#3a4740;font-size:10px}.batch-review-item small[data-v-5b6ea24b]{color:#77817a;font-size:8px}.batch-review-item em[data-v-5b6ea24b]{color:#848d87;text-overflow:ellipsis;white-space:nowrap;font-size:8px;font-style:normal;line-height:1.4;overflow:hidden}.batch-confirm-acknowledgement[data-v-5b6ea24b]{color:#4f5d55;cursor:pointer;align-items:flex-start;gap:8px;margin-top:12px;font-size:9px;line-height:1.5;display:flex}.batch-confirm-form>.publish-dialog-error[data-v-5b6ea24b],.batch-confirm-form>.publish-dialog-actions[data-v-5b6ea24b]{grid-column:1/-1}@media (width<=820px){.batch-confirm-form[data-v-5b6ea24b]{grid-template-columns:1fr}.batch-confirm-review[data-v-5b6ea24b]{border-left:0;padding:0}}.knowledge-organizer[data-v-e7137842]{flex-direction:column;gap:12px;padding:18px 24px 20px;display:flex;overflow:hidden}.organizer-head[data-v-e7137842]{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px 24px;min-width:0;display:grid}.organizer-principle[data-v-e7137842]{align-self:center;min-width:0;padding:0 2px}.organizer-principle h3[data-v-e7137842]{font-size:16px}.organizer-principle>p[data-v-e7137842]:last-child{color:#6e7771;max-width:760px;margin-top:5px;font-size:11px;line-height:1.55}.organizer-attention[data-v-e7137842]{text-align:right;border-left:1px solid #dde2de;grid-area:1/2;min-width:152px;padding-left:20px}.organizer-attention strong[data-v-e7137842],.organizer-attention span[data-v-e7137842],.organizer-attention small[data-v-e7137842]{display:block}.organizer-attention strong[data-v-e7137842]{color:#6f582b;font-size:23px;font-weight:620}.organizer-attention span[data-v-e7137842]{color:#5f675f;font-size:10px;font-weight:650}.organizer-attention small[data-v-e7137842]{color:#8a918b;margin-top:2px;font-size:8px}.organizer-loading-inline[data-v-e7137842]{color:#7b847e;text-align:center;font-size:10px}.organizer-toolbar[data-v-e7137842]{align-items:center;gap:8px;min-height:34px;display:flex}.organizer-search[data-v-e7137842]{flex:300px;min-width:180px;max-width:360px}.organizer-search>span[data-v-e7137842]{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.organizer-search input[data-v-e7137842]{width:100%}.review-state-filter[data-v-e7137842],.quadrant-filter[data-v-e7137842]{white-space:nowrap;background:#f1f4f1;border:1px solid #d7ddd8;border-radius:7px;flex:none;align-items:center;gap:2px;height:31px;padding:2px;display:flex}.quadrant-filter[data-v-e7137842]{max-width:470px;overflow-x:auto}.review-state-filter>span[data-v-e7137842],.quadrant-filter>span[data-v-e7137842]{color:#7a847d;padding:0 6px;font-size:8px;font-weight:650}.review-state-filter button[data-v-e7137842],.quadrant-filter button[data-v-e7137842]{color:#626d66;white-space:nowrap;background:0 0;border:0;border-radius:5px;height:25px;padding:0 7px;font-size:9px}.review-state-filter button[data-v-e7137842]:hover,.quadrant-filter button[data-v-e7137842]:hover{color:#35473d;background:#ffffffa8}.review-state-filter button.active[data-v-e7137842],.quadrant-filter button.active[data-v-e7137842]{color:#30483a;background:#fff;box-shadow:0 1px 3px #2f3d341f}.review-state-filter button.state-pending.active[data-v-e7137842]{color:#765d2e}.review-state-filter button.state-agent_confirmed.active[data-v-e7137842]{color:#4d5f78}.review-state-filter button.state-confirmed.active[data-v-e7137842]{color:#356047}.review-state-filter button strong[data-v-e7137842],.quadrant-filter button strong[data-v-e7137842]{margin-left:2px;font-size:8px;font-weight:720}.organizer-result-summary[data-v-e7137842]{color:#7b847e;white-space:nowrap;flex:none;font-size:9px}.organizer-toolbar .batch-confirm-action[data-v-e7137842]{margin-left:auto}.organizer-toolbar .toolbar-action+.toolbar-action[data-v-e7137842]{margin-left:0}.organizer-truncated[data-v-e7137842]{color:#806536;margin:-4px 0 0;font-size:9px}.organizer-layout[data-v-e7137842]{background:#fff;border:1px solid #cfd7d1;border-radius:8px;flex:1;grid-template-columns:minmax(0,1fr);min-height:0;display:grid;overflow:hidden}.organizer-layout.has-selection[data-v-e7137842]{grid-template-columns:minmax(0,1fr) 340px}.organizer-layout[data-v-e7137842]:not(.has-selection) .graph-inspector{display:none}.organizer-directory[data-v-e7137842]{overscroll-behavior:contain;min-width:0;overflow:auto}.organizer-table-head[data-v-e7137842],.organizer-row[data-v-e7137842]{grid-template-columns:minmax(230px,1.35fr) 114px 130px minmax(160px,.8fr) 118px;align-items:center;gap:12px;min-width:920px;display:grid}.organizer-table-head[data-v-e7137842]{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}.organizer-row[data-v-e7137842]{color:#4f5952;text-align:left;background:#fff;border:0;border-bottom:1px solid #e8ebe8;width:100%;min-height:68px;padding:11px 15px}.organizer-row[data-v-e7137842]:hover{background:#f8faf8}.organizer-row.selected[data-v-e7137842]{background:#f1f6f3;box-shadow:inset 2px 0 #557863}.organizer-item-copy[data-v-e7137842]{gap:4px;min-width:0;display:grid}.organizer-item-copy strong[data-v-e7137842],.organizer-item-copy small[data-v-e7137842]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.organizer-item-copy strong[data-v-e7137842]{color:#2f3933;font-size:11px;font-weight:630}.organizer-item-copy small[data-v-e7137842],.organizer-basis[data-v-e7137842],.organizer-row time[data-v-e7137842]{color:#7b847e;font-size:9px}.quadrant-chip[data-v-e7137842],.review-chip[data-v-e7137842]{white-space:nowrap;border-radius:999px;width:fit-content;padding:4px 7px;font-size:9px;font-weight:650}.quadrant-chip[data-v-e7137842]{color:#59655e;background:#f0f2ef;gap:1px;display:grid}.quadrant-chip small[data-v-e7137842]{color:inherit;opacity:.75;font-size:7px;font-weight:520}.quadrant-chip.known_known[data-v-e7137842]{color:#356047;background:#edf6f0}.quadrant-chip.known_unknown[data-v-e7137842]{color:#77602f;background:#f7f2e5}.quadrant-chip.unknown_known[data-v-e7137842]{color:#4d5f78;background:#eef2f7}.quadrant-chip.unknown_unknown[data-v-e7137842]{color:#725d70;background:#f5eff4}.review-chip.state-confirmed[data-v-e7137842]{color:#356047;background:#edf6f0}.review-chip.state-agent_confirmed[data-v-e7137842]{color:#4d5f78;background:#eef2f7}.review-chip.state-pending[data-v-e7137842]{color:#77602f;background:#f7f2e5}.organizer-basis[data-v-e7137842]{overflow-wrap:anywhere}@media (width<=1260px){.review-state-filter>span[data-v-e7137842],.quadrant-filter>span[data-v-e7137842],.organizer-result-summary[data-v-e7137842]{display:none}.organizer-table-head[data-v-e7137842],.organizer-row[data-v-e7137842]{grid-template-columns:minmax(210px,1fr) 108px 104px minmax(140px,.8fr) 104px;min-width:760px}}@media (width<=1040px){.organizer-layout.has-selection[data-v-e7137842]{grid-template-columns:minmax(0,1fr) 280px}.organizer-table-head[data-v-e7137842],.organizer-row[data-v-e7137842]{grid-template-columns:minmax(210px,1fr) 108px 104px;min-width:470px}.organizer-table-head[data-v-e7137842]>:nth-child(n+4),.organizer-basis[data-v-e7137842],.organizer-row time[data-v-e7137842]{display:none}.batch-confirm-action[data-v-e7137842]{text-overflow:ellipsis;white-space:nowrap;max-width:108px;overflow:hidden}}
@@ -0,0 +1 @@
1
+ import{C as e,D as t,E as n,F as r,J as i,K as a,N as o,R as s,S as c,T as l,U as u,V as d,_ as f,a as p,b as m,d as h,m as g,q as _,r as v,t as ee,v as y,w as b,x,y as S}from"./console-B_Ena2DS.js";import{i as C,r as w,t as T}from"./identity-CjBwYSMX.js";import{E,T as D,_ as O,a as k,g as A,h as j,l as M,n as N,t as P}from"./model-C-5RVIJ2.js";import{i as F,n as I,r as te,t as L}from"./KnowledgeInspector-BZkB2wJn.js";var R={open:``,class:`project-dialog batch-confirm-dialog vue-dialog`},z={class:`project-dialog-shell`},B={class:`project-dialog-header`},V={class:`batch-confirm-controls`},H={key:0,class:`batch-group-summary`},U={class:`batch-confirmer-fields`},ne=[`required`,`placeholder`],re=[`placeholder`],ie={class:`batch-confirm-rule`},W={class:`batch-confirm-review`},ae={class:`batch-review-heading`},oe={key:0,class:`batch-limit-note`},G={class:`batch-review-list`},K=[`value`],se={class:`batch-confirm-acknowledgement`},q={key:0,class:`publish-dialog-error`,role:`alert`},ce={class:`publish-dialog-actions`},le=[`disabled`],ue=[`disabled`],J=F(t({__name:`KnowledgeBatchConfirmDialog`,props:{groups:{},personalSpaceId:{}},emits:[`close`,`saved`],setup(t,{emit:c}){let _=t,v=c,E=ee(),O=u(``),k=u([]),A=u(`user`),j=u(``),M=u(``),N=u(!1),F=u(!1),I=u(``),te=m(()=>_.groups.map(e=>({value:e.key,label:e.label,meta:h(`knowledge.dialogs.batch.groupMeta`,{kind:e.kind===`source`?h(`knowledge.dialogs.batch.sameSource`):h(`knowledge.dialogs.batch.sameSession`),count:e.items.length}),search:`${w(e.value)} ${e.description}`}))),L=m(()=>_.groups.find(({key:e})=>e===O.value)??null),J=m(()=>L.value?.items.slice(0,200)??[]),Y=m(()=>{let e=new Set(k.value);return J.value.filter(t=>e.has(Z(t)))}),X=m(()=>J.value.length>0&&Y.value.length===J.value.length),de=m(()=>!F.value&&Y.value.length>=2&&!!M.value.trim()&&N.value&&(A.value!==`authoritative_source`||!!j.value.trim())),fe=m(()=>[{value:`user`,label:h(`knowledge.domain.actors.user`)},{value:`authoritative_source`,label:h(`knowledge.domain.actors.authoritative_source`)}]);s(()=>_.groups,e=>{e.some(({key:e})=>e===O.value)||(O.value=e[0]?.key??``)},{immediate:!0}),s(O,()=>{k.value=J.value.map(Z),N.value=!1,I.value=``},{immediate:!0});function Z(e){return`${e.itemKind}:${e.id}`}function pe(){k.value=X.value?[]:J.value.map(Z),N.value=!1}function Q(e){let t=L.value;return t?P(e,t):null}async function me(){let e=L.value;if(!e)return $(h(`knowledge.dialogs.batch.errors.groupRequired`));if(Y.value.length<2)return $(h(`knowledge.dialogs.batch.errors.itemsRequired`));if(!M.value.trim())return $(h(`knowledge.dialogs.batch.errors.reasonRequired`));if(A.value===`authoritative_source`&&!j.value.trim())return $(h(`knowledge.dialogs.batch.errors.sourceNameRequired`));if(!N.value)return $(h(`knowledge.dialogs.batch.errors.acknowledgmentRequired`));F.value=!0,I.value=``;try{let t=await p(`/api/knowledge/batch-confirmation`,{personalSpaceId:_.personalSpaceId,groupKind:e.kind,groupValue:e.value,reason:M.value.trim(),confirmer:{kind:A.value,label:j.value.trim()||null},items:Y.value.map(e=>{let t=Q(e);return{itemId:e.id,itemKind:e.itemKind,existenceReason:t.existenceReason,quadrantReason:t.quadrantReason,proposedBy:t.proposedBy}})});E.notify(h(`knowledge.dialogs.batch.confirmed`,{count:t.confirmed_count})),v(`saved`),v(`close`)}catch(e){I.value=e instanceof Error?e.message:h(`knowledge.dialogs.batch.errors.failed`),E.reportError(e)}finally{F.value=!1}}function $(e){I.value=e}return(t,s)=>(o(),b(`dialog`,R,[x(`div`,z,[x(`header`,B,[x(`div`,null,[s[8]||=x(`p`,{class:`eyebrow`},`BATCH CONFIRMATION`,-1),x(`h3`,null,i(a(h)(`knowledge.dialogs.batch.title`)),1),x(`p`,null,i(a(h)(`knowledge.dialogs.batch.intro`)),1)]),x(`button`,{class:`secondary-action`,type:`button`,onClick:s[0]||=e=>v(`close`)},i(a(h)(`common.actions.close`)),1)]),x(`form`,{class:`batch-confirm-form`,onSubmit:y(me,[`prevent`])},[x(`section`,V,[x(`label`,null,[l(i(a(h)(`knowledge.dialogs.batch.range`))+` `,1),n(C,{modelValue:O.value,"onUpdate:modelValue":s[1]||=e=>O.value=e,options:te.value,label:a(h)(`knowledge.dialogs.batch.rangeLabel`),searchable:``},null,8,[`modelValue`,`options`,`label`])]),L.value?(o(),b(`div`,H,[x(`span`,null,i(L.value.kind===`source`?a(h)(`knowledge.dialogs.batch.sameSource`):a(h)(`knowledge.dialogs.batch.sameSession`)),1),x(`strong`,null,i(L.value.label),1),x(`p`,null,i(L.value.description),1),x(`small`,null,`#`+i(a(T)(L.value.value,28)),1)])):e(``,!0),x(`div`,U,[x(`label`,null,[l(i(a(h)(`knowledge.dialogs.batch.confirmer`))+` `,1),n(C,{modelValue:A.value,"onUpdate:modelValue":s[2]||=e=>A.value=e,options:fe.value,label:a(h)(`knowledge.dialogs.batch.confirmerLabel`)},null,8,[`modelValue`,`options`,`label`])]),x(`label`,null,[l(i(a(h)(`knowledge.dialogs.batch.confirmerDescription`))+` `,1),d(x(`input`,{"onUpdate:modelValue":s[3]||=e=>j.value=e,maxlength:`160`,required:A.value===`authoritative_source`,placeholder:A.value===`user`?a(h)(`knowledge.dialogs.batch.userPlaceholder`):a(h)(`knowledge.dialogs.batch.sourcePlaceholder`)},null,8,ne),[[f,j.value]])])]),x(`label`,null,[l(i(a(h)(`knowledge.dialogs.batch.basis`))+` `,1),d(x(`textarea`,{"onUpdate:modelValue":s[4]||=e=>M.value=e,maxlength:`2000`,rows:`3`,required:``,placeholder:a(h)(`knowledge.dialogs.batch.basisPlaceholder`)},null,8,re),[[f,M.value]])]),x(`p`,ie,i(a(h)(`knowledge.dialogs.batch.agentBoundary`)),1)]),x(`section`,W,[x(`div`,ae,[x(`div`,null,[x(`h4`,null,i(a(h)(`knowledge.dialogs.batch.itemReview`)),1),x(`p`,null,i(a(h)(`knowledge.dialogs.batch.selected`,{selected:Y.value.length,total:J.value.length})),1)]),x(`button`,{class:`secondary-action`,type:`button`,onClick:pe},i(X.value?a(h)(`knowledge.dialogs.batch.clearAll`):a(h)(`knowledge.dialogs.batch.selectAll`)),1)]),(L.value?.items.length??0)>200?(o(),b(`p`,oe,i(a(h)(`knowledge.dialogs.batch.limit`)),1)):e(``,!0),x(`div`,G,[(o(!0),b(S,null,r(J.value,e=>(o(),b(`label`,{key:Z(e),class:`batch-review-item`},[d(x(`input`,{"onUpdate:modelValue":s[5]||=e=>k.value=e,type:`checkbox`,value:Z(e)},null,8,K),[[g,k.value]]),x(`span`,null,[x(`strong`,null,i(e.title),1),x(`small`,null,i(a(D)(e.originQuadrant))+` · `+i(e.type),1),x(`em`,null,i(Q(e)?.existenceReason),1),x(`em`,null,i(Q(e)?.quadrantReason),1)])]))),128))]),x(`label`,se,[d(x(`input`,{"onUpdate:modelValue":s[6]||=e=>N.value=e,type:`checkbox`},null,512),[[g,N.value]]),x(`span`,null,i(a(h)(`knowledge.dialogs.batch.acknowledgment`)),1)])]),I.value?(o(),b(`p`,q,i(I.value),1)):e(``,!0),x(`div`,ce,[x(`button`,{class:`secondary-action`,type:`button`,disabled:F.value,onClick:s[7]||=e=>v(`close`)},i(a(h)(`common.actions.cancel`)),9,le),x(`button`,{class:`primary-action`,type:`submit`,disabled:!de.value},i(F.value?a(h)(`knowledge.dialogs.batch.confirming`):a(h)(`knowledge.dialogs.batch.confirmItems`,{count:Y.value.length})),9,ue)])],32)])]))}}),[[`__scopeId`,`data-v-5b6ea24b`]]),Y={class:`view knowledge-organizer`},X={class:`organizer-head`},de={class:`organizer-principle`},fe={class:`organizer-attention`},Z={class:`organizer-toolbar`},pe={class:`organizer-search`},Q=[`placeholder`],me=[`aria-label`],$=[`aria-pressed`],he=[`data-quadrant`,`aria-pressed`,`title`,`onClick`],ge=[`aria-label`],_e=[`aria-pressed`],ve=[`data-review-state`,`aria-pressed`,`title`,`onClick`],ye={class:`organizer-result-summary`},be={key:0},xe={key:0,class:`organizer-truncated`},Se={key:1,class:`view-loading`},Ce=[`aria-label`],we={class:`organizer-table-head`,"aria-hidden":`true`},Te={class:`organizer-list`},Ee=[`onClick`],De={class:`organizer-item-copy`},Oe={class:`organizer-basis`},ke={key:0,class:`empty-state`},Ae=F(t({__name:`KnowledgeOrganizerPage`,setup(t){let p=ee(),g=u(null),y=u(!1),C=u(``),w=u(`all`),T=u(`all`),P=u(null),F=u(null),R=u(null),z=u(!1),B=m(()=>[{value:`known_unknown`,short:h(`knowledge.workspace.organizer.quadrants.known_unknown.short`),coordinate:h(`knowledge.workspace.organizer.quadrants.known_unknown.coordinate`)},{value:`known_known`,short:h(`knowledge.workspace.organizer.quadrants.known_known.short`),coordinate:h(`knowledge.workspace.organizer.quadrants.known_known.coordinate`)},{value:`unknown_unknown`,short:h(`knowledge.workspace.organizer.quadrants.unknown_unknown.short`),coordinate:h(`knowledge.workspace.organizer.quadrants.unknown_unknown.coordinate`)},{value:`unknown_known`,short:h(`knowledge.workspace.organizer.quadrants.unknown_known.short`),coordinate:h(`knowledge.workspace.organizer.quadrants.unknown_known.coordinate`)}]),V=m(()=>[{value:`pending`,label:h(`knowledge.domain.reviewStates.pending`),hint:h(`knowledge.workspace.organizer.review.pendingHint`)},{value:`agent_confirmed`,label:h(`knowledge.domain.reviewStates.agent_confirmed`),hint:h(`knowledge.workspace.organizer.review.agentConfirmedHint`)},{value:`confirmed`,label:h(`knowledge.domain.reviewStates.confirmed`),hint:h(`knowledge.workspace.organizer.review.confirmedHint`)}]),H=m(()=>j(g.value)),U=m(()=>N(H.value)),ne=m(()=>Object.fromEntries([...B.value.map(({value:e})=>e),`unclassified`].map(e=>[e,H.value.filter(t=>t.originQuadrant===e).length]))),re=m(()=>Object.fromEntries(V.value.map(({value:e})=>[e,H.value.filter(t=>A(t)===e).length]))),ie=m(()=>w.value!==`all`),W=m(()=>ie.value?H.value.filter(e=>e.originQuadrant===w.value):H.value),ae=m(()=>Object.fromEntries(V.value.map(({value:e})=>[e,W.value.filter(t=>A(t)===e).length]))),oe=m(()=>re.value.pending),G=m(()=>{let e=C.value.trim().toLocaleLowerCase();return H.value.filter(t=>w.value!==`all`&&t.originQuadrant!==w.value||T.value!==`all`&&A(t)!==T.value?!1:!e||[t.title,t.body,t.type,D(t.originQuadrant),E(t),...t.evidence.flatMap(e=>[e.name,e.summary,e.source_description])].filter(Boolean).join(` `).toLocaleLowerCase().includes(e))});s(()=>p.activePersonalSpace?.id,e=>{e&&K(e)},{immediate:!0}),s(G,e=>{P.value&&!e.some(({id:e,itemKind:t})=>e===P.value?.id&&t===P.value?.itemKind)&&(P.value=null)});async function K(e=p.activePersonalSpace?.id){if(e){y.value=!0;try{let t=new URLSearchParams({spaceId:e,limit:`500`});g.value=await v(`/api/graph?${t}`),P.value&&=H.value.find(({id:e})=>e===P.value?.id)??null}catch(e){g.value=null,p.reportError(e)}finally{y.value=!1}}}function se(e){w.value=w.value===e?`all`:e}function q(e){T.value=e}function ce(e){C.value=``,w.value=e.originQuadrant,T.value=`all`,P.value=e}return(t,s)=>(o(),b(`section`,Y,[x(`div`,X,[x(`div`,de,[s[13]||=x(`p`,{class:`eyebrow`},`HOW CLASSIFICATION WORKS`,-1),x(`h3`,null,i(a(h)(`knowledge.workspace.organizer.title`)),1),x(`p`,null,i(a(h)(`knowledge.workspace.organizer.copy`)),1)]),x(`div`,fe,[x(`strong`,null,i(oe.value),1),x(`span`,null,i(a(h)(`knowledge.workspace.organizer.needsAttention`)),1),x(`small`,null,i(a(h)(`knowledge.workspace.organizer.legacyAttention`)),1)])]),x(`template`,null,[x(`div`,Z,[x(`label`,pe,[x(`span`,null,i(a(h)(`knowledge.workspace.organizer.filterKnowledge`)),1),d(x(`input`,{"onUpdate:modelValue":s[0]||=e=>C.value=e,type:`search`,placeholder:a(h)(`knowledge.workspace.organizer.searchPlaceholder`)},null,8,Q),[[f,C.value]])]),x(`div`,{class:`quadrant-filter`,"aria-label":a(h)(`knowledge.workspace.organizer.quadrantFilterAria`)},[x(`span`,null,i(a(h)(`knowledge.workspace.organizer.discoverySource`)),1),x(`button`,{type:`button`,"data-quadrant":`all`,class:_({active:w.value===`all`}),"aria-pressed":w.value===`all`,onClick:s[1]||=e=>w.value=`all`},[l(i(a(h)(`common.status.all`))+` `,1),x(`strong`,null,i(H.value.length),1)],10,$),(o(!0),b(S,null,r(B.value,e=>(o(),b(`button`,{key:e.value,type:`button`,"data-quadrant":e.value,class:_({active:w.value===e.value}),"aria-pressed":w.value===e.value,title:e.coordinate,onClick:t=>se(e.value)},[l(i(e.short)+` `,1),x(`strong`,null,i(ne.value[e.value]),1)],10,he))),128))],8,me),x(`div`,{class:`review-state-filter`,"aria-label":a(h)(`knowledge.workspace.organizer.reviewFilterAria`)},[x(`span`,null,i(a(h)(`knowledge.workspace.organizer.reviewStatus`)),1),x(`button`,{type:`button`,"data-review-state":`all`,class:_({active:T.value===`all`}),"aria-pressed":T.value===`all`,onClick:s[2]||=e=>q(`all`)},[l(i(a(h)(`common.status.all`))+` `,1),x(`strong`,null,i(W.value.length),1)],10,_e),(o(!0),b(S,null,r(V.value,e=>(o(),b(`button`,{key:e.value,type:`button`,"data-review-state":e.value,class:_([`state-${e.value}`,{active:T.value===e.value}]),"aria-pressed":T.value===e.value,title:e.hint,onClick:t=>q(e.value)},[l(i(e.label)+` `,1),x(`strong`,null,i(ae.value[e.value]),1)],10,ve))),128))],8,ge),x(`p`,ye,[l(i(a(h)(`knowledge.workspace.organizer.showing`,{visible:G.value.length,total:W.value.length}))+` `,1),T.value===`all`?e(``,!0):(o(),b(`span`,be,` · `+i(V.value.find(({value:e})=>e===T.value)?.label),1))]),U.value.length?(o(),b(`button`,{key:0,class:`toolbar-action batch-confirm-action`,type:`button`,onClick:s[3]||=e=>z.value=!0},i(a(h)(`knowledge.workspace.organizer.batchConfirm`,{count:U.value.length})),1)):e(``,!0),x(`button`,{class:`toolbar-action`,type:`button`,onClick:s[4]||=e=>K()},i(a(h)(`common.actions.refresh`)),1)]),g.value?.truncated?(o(),b(`p`,xe,i(a(h)(`knowledge.workspace.organizer.truncated`)),1)):e(``,!0),y.value&&!g.value?(o(),b(`div`,Se,i(a(h)(`common.status.loadingKnowledge`)),1)):(o(),b(`div`,{key:2,class:_([`organizer-layout`,{"has-selection":P.value}])},[x(`section`,{class:`organizer-directory`,"aria-label":a(h)(`knowledge.workspace.organizer.directoryAria`)},[x(`div`,we,[x(`span`,null,i(a(h)(`knowledge.workspace.workspace.view.knowledgeContent`)),1),x(`span`,null,i(a(h)(`knowledge.workspace.workspace.view.columns.quadrant`)),1),x(`span`,null,i(a(h)(`knowledge.workspace.workspace.view.columns.review`)),1),x(`span`,null,i(a(h)(`knowledge.workspace.organizer.confirmationBasis`)),1),x(`span`,null,i(a(h)(`knowledge.workspace.organizer.updated`)),1)]),x(`div`,Te,[(o(!0),b(S,null,r(G.value,e=>(o(),b(`button`,{key:`${e.itemKind}:${e.id}`,type:`button`,class:_([`organizer-row`,{selected:P.value?.id===e.id}]),onClick:t=>P.value=e},[x(`span`,De,[x(`strong`,null,i(e.title),1),x(`small`,null,i(e.body),1)]),x(`span`,{class:_([`quadrant-chip`,e.originQuadrant])},i(a(D)(e.originQuadrant)),3),x(`span`,{class:_([`review-chip`,`state-${a(A)(e)}`])},i(a(E)(e)),3),x(`span`,Oe,i(a(k)(e)),1),x(`time`,null,i(a(M)(a(O)(e))),1)],10,Ee))),128))]),G.value.length?e(``,!0):(o(),b(`div`,ke,i(H.value.length?a(h)(`knowledge.workspace.organizer.noFilteredContent`):a(h)(`knowledge.workspace.organizer.noContent`)),1))],8,Ce),n(L,{item:P.value,graph:g.value,editable:``,onConfirm:s[5]||=e=>F.value=e,onEdit:s[6]||=e=>R.value=e,onOpenReplacement:ce},null,8,[`item`,`graph`])],2))]),n(I,{item:R.value,"personal-space-id":a(p).activePersonalSpace?.id??``,"personal-project-id":null,projects:a(p).state?.personalProjects??[],"replacement-items":H.value,onClose:s[7]||=e=>R.value=null,onSaved:s[8]||=e=>K()},null,8,[`item`,`personal-space-id`,`projects`,`replacement-items`]),n(te,{item:F.value,"personal-space-id":a(p).activePersonalSpace?.id??``,"personal-project-id":null,onClose:s[9]||=e=>F.value=null,onSaved:s[10]||=e=>K()},null,8,[`item`,`personal-space-id`]),z.value?(o(),c(J,{key:0,groups:U.value,"personal-space-id":a(p).activePersonalSpace?.id??``,onClose:s[11]||=e=>z.value=!1,onSaved:s[12]||=e=>K()},null,8,[`groups`,`personal-space-id`])):e(``,!0)]))}}),[[`__scopeId`,`data-v-e7137842`]]);export{Ae as default};
@@ -0,0 +1 @@
1
+ import{D as e,N as t,S as n}from"./console-B_Ena2DS.js";import{t as r}from"./KnowledgeWorkspace-CXPE4GCD.js";var i=e({__name:`KnowledgePage`,setup(e){return(e,i)=>(t(),n(r))}});export{i as default};