fuli-context 0.5.0 → 0.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +370 -202
- package/README.zh-CN.md +448 -0
- package/compose.graphiti.yml +6 -6
- package/dist/web/assets/AboutPage-DXh7Fwxt.css +1 -0
- package/dist/web/assets/AboutPage-qeO_vm0T.js +1 -0
- package/dist/web/assets/ConnectionsPage-CBHAdZXT.css +1 -0
- package/dist/web/assets/ConnectionsPage-DO0GR9Xg.js +1 -0
- package/dist/web/assets/KnowledgeInspector-Bjhdu2mf.css +1 -0
- package/dist/web/assets/KnowledgeInspector-DEW5lA1m.js +1 -0
- package/dist/web/assets/KnowledgeOrganizerPage-BkM568Ld.js +1 -0
- package/dist/web/assets/KnowledgeOrganizerPage-Cx1w1jb2.css +1 -0
- package/dist/web/assets/KnowledgePage-BAT4aZIm.js +1 -0
- package/dist/web/assets/KnowledgeWorkspace-DyGtBz--.js +4 -0
- package/dist/web/assets/OverviewPage-CmCcDCAs.js +1 -0
- package/dist/web/assets/PersonalProfilePage-C42mwKN8.js +1 -0
- package/dist/web/assets/{PersonalProfilePage-S8ZcG2LU.css → PersonalProfilePage-CdmEzyvZ.css} +1 -1
- package/dist/web/assets/PersonalProjectsPage-BwaXR62K.js +1 -0
- package/dist/web/assets/PublicProjectsPage-egKBulOq.js +1 -0
- package/dist/web/assets/ReviewPage-B3vnZ6gn.js +1 -0
- package/dist/web/assets/SearchableSelect-ih69qbcS.js +1 -0
- package/dist/web/assets/SettingsPage-C6ouU0sR.css +1 -0
- package/dist/web/assets/SettingsPage-oLE8mNs5.js +1 -0
- package/dist/web/assets/_plugin-vue_export-helper-BDNMzG2s.js +1 -0
- package/dist/web/assets/console-DE40hXGC.js +1 -0
- package/dist/web/assets/fuli-logo-Bu9WBuQe.js +1 -0
- package/dist/web/assets/fuli-logo-ER1wQ8Kk.png +0 -0
- package/dist/web/assets/i18n-CDxBs1sz.js +5 -0
- package/dist/web/assets/identity-BCxb1mcy.js +1 -0
- package/dist/web/assets/index-BzhNfzU_.js +2 -0
- package/dist/web/assets/index-CCOGfZzE.css +1 -0
- package/dist/web/assets/model-CCMdt10Q.js +1 -0
- package/dist/web/assets/paths-DwHeiGMT.js +1 -0
- package/dist/web/assets/useMinimumLoadingDisplay-BpCyBeko.css +1 -0
- package/dist/web/assets/useMinimumLoadingDisplay-HdI7XAmu.js +1 -0
- package/dist/web/assets/vue-router-Drfl1F8i.js +1 -0
- package/dist/web/index.html +9 -6
- package/docs/external-knowledge-architecture.md +279 -0
- package/examples/external-knowledge/markdown-folder.mjs +235 -0
- package/graph-provider/fuli_graph/app.py +57 -1
- package/graph-provider/fuli_graph/graph_models.py +3 -0
- package/graph-provider/fuli_graph/graph_query.py +62 -16
- package/graph-provider/fuli_graph/knowledge_review.py +657 -0
- package/graph-provider/fuli_graph/knowledge_review_models.py +133 -0
- package/graph-provider/fuli_graph/knowledge_search.py +51 -4
- package/graph-provider/fuli_graph/models.py +19 -0
- package/graph-provider/fuli_graph/runtime.py +15 -0
- package/graph-provider/fuli_graph/store_knowledge.py +2 -1
- package/graph-provider/pyproject.toml +1 -1
- package/npm-shrinkwrap.json +5 -407
- package/package.json +7 -5
- package/skills/capturing-session-knowledge/SKILL.md +24 -4
- package/skills/flreview/SKILL.md +100 -0
- package/skills/flreview/agents/openai.yaml +6 -0
- package/src/agent-tools/graph-definitions.js +81 -6
- package/src/agent-tools/graph-handlers.js +12 -0
- package/src/cli/command-registry.js +3 -3
- package/src/cli/local-runtime-command.js +51 -28
- package/src/cli/local-runtime-options.js +14 -8
- package/src/cli/setup-agent-selection.js +12 -12
- package/src/cli/setup-command.js +41 -18
- package/src/cli/shell-argument.js +10 -0
- package/src/cli/uninstall-command.js +17 -15
- package/src/cli/update-command.js +38 -30
- package/src/external-knowledge/catalog.js +61 -0
- package/src/external-knowledge/conflict-policy.js +58 -0
- package/src/external-knowledge/connected-search.js +166 -0
- package/src/external-knowledge/connectors/custom.js +133 -0
- package/src/external-knowledge/connectors/feishu.js +461 -0
- package/src/external-knowledge/connectors/mcp.js +438 -0
- package/src/external-knowledge/connectors/notion.js +307 -0
- package/src/external-knowledge/connectors/retrieval-api.js +222 -0
- package/src/external-knowledge/document-mapping.js +151 -0
- package/src/external-knowledge/graph-projection.js +17 -0
- package/src/external-knowledge/index.js +8 -0
- package/src/external-knowledge/registry.js +91 -0
- package/src/external-knowledge/runtime.js +68 -0
- package/src/external-knowledge/safe-diagnostic.js +14 -0
- package/src/external-knowledge/service.js +811 -0
- package/src/graphiti/agent-knowledge-workflows.js +7 -2
- package/src/graphiti/federated-application.js +68 -42
- package/src/graphiti/knowledge-item-role.js +21 -0
- package/src/graphiti/knowledge-review.js +43 -0
- package/src/graphiti/project-profile-mapping.js +32 -0
- package/src/graphiti/provider-client.js +22 -1
- package/src/graphiti/source-marker.js +54 -3
- package/src/graphiti/task-knowledge-recall.js +250 -0
- package/src/http/api-router.js +23 -108
- package/src/http/external-knowledge-api-router.js +104 -0
- package/src/http/graph-api-router.js +12 -1
- package/src/http/request-policy.js +1 -1
- package/src/local-runtime/lifecycle.js +26 -15
- package/src/mcp/create-mcp-server.js +4 -1
- package/src/mcp/instructions.js +7 -7
- package/src/mcp/tool-annotations.js +6 -0
- package/src/mcp/tool-result.js +1 -0
- package/src/server/application-lifecycle.js +2 -11
- package/src/server/blocked-ports.js +11 -0
- package/src/server.js +36 -17
- package/src/setup/agent-installation-status.js +2 -1
- package/src/setup/agents.js +2 -1
- package/src/setup/claude-code-config.js +2 -1
- package/src/setup/codex-bootstrap.js +12 -7
- package/src/setup/container-runtime.js +25 -21
- package/src/setup/graph-runtime.js +148 -56
- package/src/setup/node-runtime.js +3 -3
- package/src/setup/options.js +2 -4
- package/src/setup/paths.js +18 -3
- package/src/setup/review-skill-adapters.js +49 -0
- package/src/setup/setup.js +26 -2
- package/src/setup/uninstall.js +4 -2
- package/src/system/resource-monitor.js +317 -0
- package/src/system/runtime-settings.js +131 -0
- package/src/system/system-service.js +119 -0
- package/README.en.md +0 -336
- package/dist/web/assets/ConnectionsPage-CCKWm-6p.js +0 -1
- package/dist/web/assets/KnowledgeInspector-BZkB2wJn.js +0 -1
- package/dist/web/assets/KnowledgeInspector-CrGYxEob.css +0 -1
- package/dist/web/assets/KnowledgeOrganizerPage-CZAF_OlN.css +0 -1
- package/dist/web/assets/KnowledgeOrganizerPage-DlvcLwlL.js +0 -1
- package/dist/web/assets/KnowledgePage-CNQXd15y.js +0 -1
- package/dist/web/assets/KnowledgeWorkspace-CXPE4GCD.js +0 -4
- package/dist/web/assets/OverviewPage-ul7g7HXh.js +0 -1
- package/dist/web/assets/PersonalProfilePage-CC40Pw2L.js +0 -1
- package/dist/web/assets/PersonalProjectsPage-CPIEcShD.js +0 -1
- package/dist/web/assets/PublicProjectsPage-C700sR7z.js +0 -1
- package/dist/web/assets/ReviewPage-7MDDUDgA.js +0 -1
- package/dist/web/assets/console-B_Ena2DS.js +0 -5
- package/dist/web/assets/fuli-logo-DGuyqchQ.png +0 -0
- package/dist/web/assets/identity-CjBwYSMX.js +0 -1
- package/dist/web/assets/index-CpLDx3of.css +0 -1
- package/dist/web/assets/index-DAzeFJSc.js +0 -2
- package/dist/web/assets/model-C-5RVIJ2.js +0 -1
- package/dist/web/assets/paths-BkULqmGI.js +0 -1
- package/dist/web/assets/vue-router-DnD3hUm7.js +0 -1
- package/src/agent/candidate-read-service.js +0 -53
- package/src/agent/context-pack-service.js +0 -83
- package/src/agent/public-read-policy.js +0 -39
- package/src/agent/public-read-service.js +0 -69
- package/src/agent/read-projection.js +0 -107
- package/src/agent/search-service.js +0 -61
- package/src/agent/space-boundary.js +0 -33
- package/src/app/bootstrap.js +0 -8
- package/src/app/create-application.js +0 -143
- package/src/app/state-service.js +0 -38
- package/src/candidates.js +0 -78
- package/src/classifier.js +0 -63
- package/src/cli/command-arguments.js +0 -14
- package/src/context-pack.js +0 -206
- package/src/extractor.js +0 -77
- package/src/fact-history.js +0 -39
- package/src/facts/fact-service.js +0 -89
- package/src/http/bounded-json-array.js +0 -19
- package/src/http/lens-route.js +0 -50
- package/src/ingestion.js +0 -161
- package/src/lens/lens-correction-service.js +0 -81
- package/src/lens/lens-fact-writer.js +0 -85
- package/src/lens/lens-input.js +0 -62
- package/src/lens/lens-query-projection.js +0 -87
- package/src/lens/lens-query-ranking.js +0 -62
- package/src/lens/lens-query.js +0 -143
- package/src/lens/lens-resource-projection.js +0 -93
- package/src/lens/lens-resource-selection.js +0 -45
- package/src/lens/lens-resource-service.js +0 -103
- package/src/lens/lens-search-query.js +0 -122
- package/src/lens/lens-service.js +0 -183
- package/src/models.js +0 -44
- package/src/observer.js +0 -83
- package/src/project-rules.js +0 -33
- package/src/publication/outbox-service.js +0 -46
- package/src/publication/publication-envelope-schema.js +0 -75
- package/src/publication/publication-envelope.js +0 -37
- package/src/publication/publication-policy.js +0 -82
- package/src/publication/publication-service.js +0 -48
- package/src/router.js +0 -58
- package/src/runtime-options.js +0 -138
- package/src/security/episode-visibility.js +0 -14
- package/src/security/fact-visibility.js +0 -15
- package/src/security/source-metadata-policy.js +0 -8
- package/src/storage/episode-evidence-preview.js +0 -100
- package/src/storage/fact-search-order.js +0 -18
- package/src/storage/file/episode-evidence.js +0 -37
- package/src/storage/file/episode-index.js +0 -59
- package/src/storage/file/fact-search.js +0 -60
- package/src/storage/file-store.js +0 -437
- package/src/storage/migrate.js +0 -128
- package/src/storage/migrations/001-initial.sql +0 -83
- package/src/storage/migrations/002-storage-integrity.sql +0 -113
- package/src/storage/record-validation.js +0 -46
- package/src/storage/snapshot-defaults.js +0 -54
- package/src/storage/sqlite/candidates-repository.js +0 -84
- package/src/storage/sqlite/episode-evidence-repository.js +0 -154
- package/src/storage/sqlite/episode-privacy-sql.js +0 -33
- package/src/storage/sqlite/episodes-repository.js +0 -52
- package/src/storage/sqlite/fact-search-repository.js +0 -162
- package/src/storage/sqlite/facts-repository.js +0 -146
- package/src/storage/sqlite/imports-repository.js +0 -39
- package/src/storage/sqlite/mapper.js +0 -84
- package/src/storage/sqlite/open-database.js +0 -15
- package/src/storage/sqlite/outbox-repository.js +0 -103
- package/src/storage/sqlite/snapshot-repository.js +0 -69
- package/src/storage/sqlite/spaces-repository.js +0 -52
- package/src/storage/sqlite/subscriptions-repository.js +0 -54
- package/src/storage/sqlite-store.js +0 -159
- package/src/storage/stable-json.js +0 -24
- package/src/storage/store-port.js +0 -20
- package/src/store.js +0 -2
package/dist/web/assets/{PersonalProfilePage-S8ZcG2LU.css → PersonalProfilePage-CdmEzyvZ.css}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
.conflict-resolution-dialog.vue-dialog[data-v-dee70ac5]{width:min(1180px,100vw - 48px)}.conflict-resolution-shell[data-v-dee70ac5]{overflow:auto}.conflict-pair-context[data-v-dee70ac5]{flex-wrap:wrap;gap:8px;padding:14px 0;display:flex}.conflict-pair-context span[data-v-dee70ac5]{color:#747d77;border:1px solid #e1e5e2;border-radius:999px;padding:6px 9px;font-size:10px}.conflict-pair-context strong[data-v-dee70ac5]{color:#3c4941;margin-left:4px}.conflict-comparison[data-v-dee70ac5]{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.conflict-side[data-v-dee70ac5]{background:#f9fbfa;border:1px solid #dfe5e1;border-radius:10px;align-content:start;gap:8px;min-width:0;padding:16px;display:grid}.conflict-side-left[data-v-dee70ac5]{background:#f1f8fd;border-color:#b8d8ef}.conflict-side-right[data-v-dee70ac5]{background:#f7f4fd;border-color:#d2c6ef}.conflict-side-heading[data-v-dee70ac5]{color:#69736c;justify-content:space-between;gap:12px;font-size:10px;display:flex}.conflict-side h4[data-v-dee70ac5],.conflict-side p[data-v-dee70ac5]{margin:0}.conflict-side h4[data-v-dee70ac5]{color:#2f3d35;font-size:14px}.conflict-side p[data-v-dee70ac5]{color:#45524a;white-space:pre-wrap;min-height:48px;font-size:12px;line-height:1.6}.conflict-side small[data-v-dee70ac5]{color:#7c857f;text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.text-action[data-v-dee70ac5]{color:#52705f;background:0 0;border:0;justify-self:start;padding:0;font-size:10px}.conflict-difference[data-v-dee70ac5]{background:#fbfcfb;border:1px solid #e5e7e5;border-radius:9px;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px;padding:12px;display:grid}.conflict-difference>div[data-v-dee70ac5]{align-content:start;gap:7px;min-width:0;display:grid}.conflict-difference span[data-v-dee70ac5]{color:#7a837d;font-size:9px;font-weight:700}.conflict-difference p[data-v-dee70ac5]{flex-wrap:wrap;gap:5px;margin:0;display:flex}.conflict-difference b[data-v-dee70ac5]{color:#46534b;background:#e9efeb;border-radius:5px;padding:4px 7px;font-size:10px;font-weight:600}.conflict-difference .muted[data-v-dee70ac5]{color:#929993;font-size:10px;display:block}.conflict-resolution-options[data-v-dee70ac5]{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px;display:grid}.conflict-resolution-options>button[data-v-dee70ac5]{color:#3d4942;text-align:left;background:#fff;border:1px solid #dfe4e0;border-radius:9px;align-content:start;gap:6px;min-height:86px;padding:12px;display:grid;position:relative}.conflict-resolution-options>button[aria-pressed=true][data-v-dee70ac5]{background:#f1f7f3;border-color:#7ba08a;box-shadow:inset 0 0 0 1px #7ba08a}.conflict-resolution-options strong[data-v-dee70ac5]{font-size:11px}.conflict-resolution-options span[data-v-dee70ac5]{color:#7a837d;font-size:9px;line-height:1.45}.conflict-resolution-options em[data-v-dee70ac5]{color:#376047;background:#dcecdf;border-radius:999px;padding:2px 5px;font-size:8px;font-style:normal;position:absolute;top:8px;right:8px}.conflict-resolution-detail[data-v-dee70ac5],.conflict-impact-preview[data-v-dee70ac5]{background:#fafcfb;border:1px solid #dfe5e1;border-radius:9px;gap:10px;margin-top:12px;padding:13px;display:grid}.conflict-resolution-detail label[data-v-dee70ac5],.conflict-resolution-reason[data-v-dee70ac5]{color:#5f6962;gap:6px;font-size:10px;font-weight:600;display:grid}.conflict-resolution-detail textarea[data-v-dee70ac5],.conflict-resolution-reason textarea[data-v-dee70ac5],.conflict-resolution-detail select[data-v-dee70ac5]{width:100%}.conflict-inline-options[data-v-dee70ac5]{align-items:center;gap:6px;display:flex}.conflict-inline-options span[data-v-dee70ac5]{color:#667169;margin-right:4px;font-size:10px}.conflict-inline-options button[data-v-dee70ac5]{color:#58645c;background:#fff;border:1px solid #d9dfdb;border-radius:6px;padding:5px 8px;font-size:10px}.conflict-inline-options button[aria-pressed=true][data-v-dee70ac5]{color:#315141;background:#eaf2ed;border-color:#789986}.conflict-impact-preview[data-v-dee70ac5]{background:#fffaf0;border-color:#f0d99d}.conflict-impact-preview span[data-v-dee70ac5]{color:#826b37;text-transform:uppercase;font-size:9px;font-weight:700}.conflict-impact-preview p[data-v-dee70ac5]{color:#554d3c;margin:0;font-size:11px;line-height:1.55}.conflict-resolution-reason[data-v-dee70ac5]{margin-top:12px}.conflict-resolution-actions>div[data-v-dee70ac5]{gap:8px;display:flex}@media (width<=900px){.conflict-comparison[data-v-dee70ac5],.conflict-difference[data-v-dee70ac5]{grid-template-columns:1fr}.conflict-resolution-options[data-v-dee70ac5]{grid-template-columns:repeat(2,minmax(0,1fr))}}.preference-conflict-alert[data-v-db0b68f4]{background:#f7f9f7;border:1px solid #d6ddd8;border-radius:11px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;margin-top:12px;padding:12px 14px;display:grid;box-shadow:0 7px 20px #3142380d}.preference-conflict-alert-icon[data-v-db0b68f4]{color:#fff;background:#52685b;border-radius:50%;place-items:center;width:30px;height:30px;font-size:16px;font-weight:800;display:grid}.preference-conflict-alert>div[data-v-db0b68f4]:nth-child(2){gap:2px;display:grid}.preference-conflict-alert span[data-v-db0b68f4]{color:#65736b;letter-spacing:.08em;text-transform:uppercase;font-size:9px;font-weight:800}.preference-conflict-alert h2[data-v-db0b68f4],.preference-conflict-alert p[data-v-db0b68f4]{margin:0}.preference-conflict-alert h2[data-v-db0b68f4]{color:#344239;font-size:14px}.preference-conflict-alert p[data-v-db0b68f4]{color:#6f7972;font-size:10px;line-height:1.5}.preference-conflict-workbench[data-v-db0b68f4]{flex:1;min-height:0;padding:18px 0 4px;overflow:auto}.preference-conflict-workbench>header[data-v-db0b68f4]{justify-content:space-between;align-items:flex-end;gap:24px;padding:0 2px 14px;display:flex}.preference-conflict-workbench h2[data-v-db0b68f4],.preference-conflict-workbench p[data-v-db0b68f4]{margin:0}.preference-conflict-workbench h2[data-v-db0b68f4]{color:#2e3d35;font-size:17px}.preference-conflict-workbench>header>p[data-v-db0b68f4]{color:#778079;text-align:right;max-width:520px;font-size:10px;line-height:1.55}.preference-conflict-list[data-v-db0b68f4]{gap:12px;display:grid}.preference-conflict-card[data-v-db0b68f4]{background:#fff;border:1px solid #d9dfdb;border-radius:11px;gap:12px;padding:15px;display:grid;box-shadow:0 7px 20px #2d3d340a}.preference-conflict-card-heading[data-v-db0b68f4],.preference-conflict-card footer[data-v-db0b68f4]{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.preference-conflict-card-heading>div[data-v-db0b68f4]{gap:3px;display:grid}.preference-conflict-card-heading>div[data-v-db0b68f4]:last-child{justify-items:end}.preference-conflict-card-heading span[data-v-db0b68f4],.preference-conflict-card footer span[data-v-db0b68f4]{color:#7d8780;text-transform:uppercase;font-size:9px;font-weight:700}.preference-conflict-card-heading h3[data-v-db0b68f4]{color:#344239;margin:0;font-size:14px}.preference-conflict-card-heading strong[data-v-db0b68f4]{color:#53685b;font-size:10px}.preference-conflict-pair[data-v-db0b68f4]{grid-template-columns:minmax(0,1fr) 26px minmax(0,1fr);align-items:stretch;gap:8px;display:grid}.preference-conflict-pair>section[data-v-db0b68f4]{background:#fff;border:1px solid #e0e5e1;border-radius:8px;align-content:start;gap:6px;min-width:0;padding:12px;display:grid}.preference-conflict-pair>section[data-v-db0b68f4]:first-child{background:#f5fafe;border-color:#c7ddec}.preference-conflict-pair>section[data-v-db0b68f4]:last-child{background:#faf8fd;border-color:#d8ceeb}.preference-conflict-pair span[data-v-db0b68f4],.preference-conflict-pair small[data-v-db0b68f4]{color:#7d8780;font-size:9px}.preference-conflict-pair strong[data-v-db0b68f4]{color:#35423a;font-size:11px}.preference-conflict-pair p[data-v-db0b68f4]{color:#566159;font-size:10px;line-height:1.55}.preference-conflict-pair>i[data-v-db0b68f4]{color:#9b9486;text-align:center;align-self:center;font-size:14px;font-style:normal}.preference-conflict-card footer[data-v-db0b68f4]{border-top:1px solid #e5e9e6;padding-top:11px}.preference-conflict-card footer>div[data-v-db0b68f4]{gap:4px;display:grid}.preference-conflict-card footer p[data-v-db0b68f4]{color:#5d625d;font-size:10px}.preference-conflict-card footer small[data-v-db0b68f4]{color:#758079;font-size:9px}.preference-conflict-card footer button[data-v-db0b68f4]{flex:none}.preference-conflict-card footer .preference-conflict-actions[data-v-db0b68f4]{justify-content:flex-end;align-items:center;gap:8px;display:flex}.preference-conflict-card footer .preference-conflict-actions .secondary-action[data-v-db0b68f4]{color:#5e665f;background:#f5f7f5}.personal-profile-row.ai-resolved-conflict[data-v-db0b68f4]{background:#f6fbf8;border-color:#b8d5c3}.personal-profile-row.ai-resolved-conflict .personal-profile-origin strong[data-v-db0b68f4]{color:#39724f}.personal-profile-inspector[data-v-db0b68f4] .inspector-classification.state-pending,.personal-profile-inspector[data-v-db0b68f4] .inspector-classification.state-needs_review{background:#f5f7f5;border-color:#d8dfda}.personal-profile-inspector[data-v-db0b68f4] .inspector-classification.state-pending strong,.personal-profile-inspector[data-v-db0b68f4] .inspector-classification.state-needs_review strong{color:#53645a}@media (width<=860px){.preference-conflict-alert[data-v-db0b68f4]{grid-template-columns:auto minmax(0,1fr)}.preference-conflict-alert>button[data-v-db0b68f4]{grid-column:1/-1}.preference-conflict-workbench>header[data-v-db0b68f4],.preference-conflict-card-heading[data-v-db0b68f4],.preference-conflict-card footer[data-v-db0b68f4]{flex-direction:column;align-items:stretch}.preference-conflict-workbench>header>p[data-v-db0b68f4]{text-align:left}.preference-conflict-card-heading>div[data-v-db0b68f4]:last-child{justify-items:start}.preference-conflict-pair[data-v-db0b68f4]{grid-template-columns:1fr}.preference-conflict-card footer .preference-conflict-actions[data-v-db0b68f4]{flex-wrap:wrap;justify-content:flex-start}}
|
|
1
|
+
.conflict-resolution-dialog.vue-dialog[data-v-dee70ac5]{width:min(1180px,100vw - 48px)}.conflict-resolution-shell[data-v-dee70ac5]{overflow:auto}.conflict-pair-context[data-v-dee70ac5]{flex-wrap:wrap;gap:8px;padding:14px 0;display:flex}.conflict-pair-context span[data-v-dee70ac5]{color:#747d77;border:1px solid #e1e5e2;border-radius:999px;padding:6px 9px;font-size:10px}.conflict-pair-context strong[data-v-dee70ac5]{color:#3c4941;margin-left:4px}.conflict-comparison[data-v-dee70ac5]{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.conflict-side[data-v-dee70ac5]{background:#f9fbfa;border:1px solid #dfe5e1;border-radius:10px;align-content:start;gap:8px;min-width:0;padding:16px;display:grid}.conflict-side-left[data-v-dee70ac5]{background:#f1f8fd;border-color:#b8d8ef}.conflict-side-right[data-v-dee70ac5]{background:#f7f4fd;border-color:#d2c6ef}.conflict-side-heading[data-v-dee70ac5]{color:#69736c;justify-content:space-between;gap:12px;font-size:10px;display:flex}.conflict-side h4[data-v-dee70ac5],.conflict-side p[data-v-dee70ac5]{margin:0}.conflict-side h4[data-v-dee70ac5]{color:#2f3d35;font-size:14px}.conflict-side p[data-v-dee70ac5]{color:#45524a;white-space:pre-wrap;min-height:48px;font-size:12px;line-height:1.6}.conflict-side small[data-v-dee70ac5]{color:#7c857f;text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.text-action[data-v-dee70ac5]{color:#52705f;background:0 0;border:0;justify-self:start;padding:0;font-size:10px}.conflict-difference[data-v-dee70ac5]{background:#fbfcfb;border:1px solid #e5e7e5;border-radius:9px;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px;padding:12px;display:grid}.conflict-difference>div[data-v-dee70ac5]{align-content:start;gap:7px;min-width:0;display:grid}.conflict-difference span[data-v-dee70ac5]{color:#7a837d;font-size:9px;font-weight:700}.conflict-difference p[data-v-dee70ac5]{flex-wrap:wrap;gap:5px;margin:0;display:flex}.conflict-difference b[data-v-dee70ac5]{color:#46534b;background:#e9efeb;border-radius:5px;padding:4px 7px;font-size:10px;font-weight:600}.conflict-difference .muted[data-v-dee70ac5]{color:#929993;font-size:10px;display:block}.conflict-resolution-options[data-v-dee70ac5]{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px;display:grid}.conflict-resolution-options>button[data-v-dee70ac5]{color:#3d4942;text-align:left;background:#fff;border:1px solid #dfe4e0;border-radius:9px;align-content:start;gap:6px;min-height:86px;padding:12px;display:grid;position:relative}.conflict-resolution-options>button[aria-pressed=true][data-v-dee70ac5]{background:#f1f7f3;border-color:#7ba08a;box-shadow:inset 0 0 0 1px #7ba08a}.conflict-resolution-options strong[data-v-dee70ac5]{font-size:11px}.conflict-resolution-options span[data-v-dee70ac5]{color:#7a837d;font-size:9px;line-height:1.45}.conflict-resolution-options em[data-v-dee70ac5]{color:#376047;background:#dcecdf;border-radius:999px;padding:2px 5px;font-size:8px;font-style:normal;position:absolute;top:8px;right:8px}.conflict-resolution-detail[data-v-dee70ac5],.conflict-impact-preview[data-v-dee70ac5]{background:#fafcfb;border:1px solid #dfe5e1;border-radius:9px;gap:10px;margin-top:12px;padding:13px;display:grid}.conflict-resolution-detail label[data-v-dee70ac5],.conflict-resolution-reason[data-v-dee70ac5]{color:#5f6962;gap:6px;font-size:10px;font-weight:600;display:grid}.conflict-resolution-detail textarea[data-v-dee70ac5],.conflict-resolution-reason textarea[data-v-dee70ac5],.conflict-resolution-detail select[data-v-dee70ac5]{width:100%}.conflict-inline-options[data-v-dee70ac5]{align-items:center;gap:6px;display:flex}.conflict-inline-options span[data-v-dee70ac5]{color:#667169;margin-right:4px;font-size:10px}.conflict-inline-options button[data-v-dee70ac5]{color:#58645c;background:#fff;border:1px solid #d9dfdb;border-radius:6px;padding:5px 8px;font-size:10px}.conflict-inline-options button[aria-pressed=true][data-v-dee70ac5]{color:#315141;background:#eaf2ed;border-color:#789986}.conflict-impact-preview[data-v-dee70ac5]{background:#fffaf0;border-color:#f0d99d}.conflict-impact-preview span[data-v-dee70ac5]{color:#826b37;text-transform:uppercase;font-size:9px;font-weight:700}.conflict-impact-preview p[data-v-dee70ac5]{color:#554d3c;margin:0;font-size:11px;line-height:1.55}.conflict-resolution-reason[data-v-dee70ac5]{margin-top:12px}.conflict-resolution-actions>div[data-v-dee70ac5]{gap:8px;display:flex}@media (width<=900px){.conflict-comparison[data-v-dee70ac5],.conflict-difference[data-v-dee70ac5]{grid-template-columns:1fr}.conflict-resolution-options[data-v-dee70ac5]{grid-template-columns:repeat(2,minmax(0,1fr))}}.preference-conflict-alert[data-v-3faa3faa]{background:#f7f9f7;border:1px solid #d6ddd8;border-radius:11px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;margin-top:12px;padding:12px 14px;display:grid;box-shadow:0 7px 20px #3142380d}.preference-conflict-alert-icon[data-v-3faa3faa]{color:#fff;background:#52685b;border-radius:50%;place-items:center;width:30px;height:30px;font-size:16px;font-weight:800;display:grid}.preference-conflict-alert>div[data-v-3faa3faa]:nth-child(2){gap:2px;display:grid}.preference-conflict-alert span[data-v-3faa3faa]{color:#65736b;letter-spacing:.08em;text-transform:uppercase;font-size:9px;font-weight:800}.preference-conflict-alert h2[data-v-3faa3faa],.preference-conflict-alert p[data-v-3faa3faa]{margin:0}.preference-conflict-alert h2[data-v-3faa3faa]{color:#344239;font-size:14px}.preference-conflict-alert p[data-v-3faa3faa]{color:#6f7972;font-size:10px;line-height:1.5}.preference-conflict-workbench[data-v-3faa3faa]{flex:1;min-height:0;padding:18px 0 4px;overflow:auto}.preference-conflict-workbench>header[data-v-3faa3faa]{justify-content:space-between;align-items:flex-end;gap:24px;padding:0 2px 14px;display:flex}.preference-conflict-workbench h2[data-v-3faa3faa],.preference-conflict-workbench p[data-v-3faa3faa]{margin:0}.preference-conflict-workbench h2[data-v-3faa3faa]{color:#2e3d35;font-size:17px}.preference-conflict-workbench>header>p[data-v-3faa3faa]{color:#778079;text-align:right;max-width:520px;font-size:10px;line-height:1.55}.preference-conflict-list[data-v-3faa3faa]{gap:12px;display:grid}.preference-conflict-card[data-v-3faa3faa]{background:#fff;border:1px solid #d9dfdb;border-radius:11px;gap:12px;padding:15px;display:grid;box-shadow:0 7px 20px #2d3d340a}.preference-conflict-card-heading[data-v-3faa3faa],.preference-conflict-card footer[data-v-3faa3faa]{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.preference-conflict-card-heading>div[data-v-3faa3faa]{gap:3px;display:grid}.preference-conflict-card-heading>div[data-v-3faa3faa]:last-child{justify-items:end}.preference-conflict-card-heading span[data-v-3faa3faa],.preference-conflict-card footer span[data-v-3faa3faa]{color:#7d8780;text-transform:uppercase;font-size:9px;font-weight:700}.preference-conflict-card-heading h3[data-v-3faa3faa]{color:#344239;margin:0;font-size:14px}.preference-conflict-card-heading strong[data-v-3faa3faa]{color:#53685b;font-size:10px}.preference-conflict-pair[data-v-3faa3faa]{grid-template-columns:minmax(0,1fr) 26px minmax(0,1fr);align-items:stretch;gap:8px;display:grid}.preference-conflict-pair>section[data-v-3faa3faa]{background:#fff;border:1px solid #e0e5e1;border-radius:8px;align-content:start;gap:6px;min-width:0;padding:12px;display:grid}.preference-conflict-pair>section[data-v-3faa3faa]:first-child{background:#f5fafe;border-color:#c7ddec}.preference-conflict-pair>section[data-v-3faa3faa]:last-child{background:#faf8fd;border-color:#d8ceeb}.preference-conflict-pair span[data-v-3faa3faa],.preference-conflict-pair small[data-v-3faa3faa]{color:#7d8780;font-size:9px}.preference-conflict-pair strong[data-v-3faa3faa]{color:#35423a;font-size:11px}.preference-conflict-pair p[data-v-3faa3faa]{color:#566159;font-size:10px;line-height:1.55}.preference-conflict-pair>i[data-v-3faa3faa]{color:#9b9486;text-align:center;align-self:center;font-size:14px;font-style:normal}.preference-conflict-card footer[data-v-3faa3faa]{border-top:1px solid #e5e9e6;padding-top:11px}.preference-conflict-card footer>div[data-v-3faa3faa]{gap:4px;display:grid}.preference-conflict-card footer p[data-v-3faa3faa]{color:#5d625d;font-size:10px}.preference-conflict-card footer small[data-v-3faa3faa]{color:#758079;font-size:9px}.preference-conflict-card footer button[data-v-3faa3faa]{flex:none}.preference-conflict-card footer .preference-conflict-actions[data-v-3faa3faa]{justify-content:flex-end;align-items:center;gap:8px;display:flex}.preference-conflict-card footer .preference-conflict-actions .secondary-action[data-v-3faa3faa]{color:#5e665f;background:#f5f7f5}.personal-profile-row.ai-resolved-conflict[data-v-3faa3faa]{background:#f6fbf8;border-color:#b8d5c3}.personal-profile-row.ai-resolved-conflict .personal-profile-origin strong[data-v-3faa3faa]{color:#39724f}.personal-profile-inspector[data-v-3faa3faa] .inspector-classification.state-pending,.personal-profile-inspector[data-v-3faa3faa] .inspector-classification.state-needs_review{background:#f5f7f5;border-color:#d8dfda}.personal-profile-inspector[data-v-3faa3faa] .inspector-classification.state-pending strong,.personal-profile-inspector[data-v-3faa3faa] .inspector-classification.state-needs_review strong{color:#53645a}@media (width<=860px){.preference-conflict-alert[data-v-3faa3faa]{grid-template-columns:auto minmax(0,1fr)}.preference-conflict-alert>button[data-v-3faa3faa]{grid-column:1/-1}.preference-conflict-workbench>header[data-v-3faa3faa],.preference-conflict-card-heading[data-v-3faa3faa],.preference-conflict-card footer[data-v-3faa3faa]{flex-direction:column;align-items:stretch}.preference-conflict-workbench>header>p[data-v-3faa3faa]{text-align:left}.preference-conflict-card-heading>div[data-v-3faa3faa]:last-child{justify-items:start}.preference-conflict-pair[data-v-3faa3faa]{grid-template-columns:1fr}.preference-conflict-card footer .preference-conflict-actions[data-v-3faa3faa]{flex-wrap:wrap;justify-content:flex-start}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h as e,k as t,x as n}from"./i18n-CDxBs1sz.js";import{t as r}from"./KnowledgeWorkspace-DyGtBz--.js";var i=n({__name:`PersonalProjectsPage`,setup(n){return(n,i)=>(t(),e(r,{"personal-projects-only":``}))}});export{i as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,Q as t,R as n,_ as r,a as i,b as a,d as ee,f as o,g as s,j as c,k as l,m as u,n as te,p as d,q as f,tt as p,u as ne,x as re,y as m}from"./i18n-CDxBs1sz.js";import{a as h,n as g,r as _,t as ie}from"./console-DE40hXGC.js";import{_ as ae,t as oe}from"./paths-DwHeiGMT.js";import{t as v}from"./SearchableSelect-ih69qbcS.js";import{r as y,t as b}from"./identity-BCxb1mcy.js";var se={class:`view`},ce={class:`space-heading public-space-heading`},le=[`aria-label`],ue={class:`project-grid`},de={class:`project-card-heading`},fe={class:`project-card-heading-actions`},pe=[`onClick`],me={class:`completion-badge`},he={class:`project-purpose`},ge={class:`evidence-row`},_e={key:0,class:`muted`},ve={class:`project-access`},ye={class:`muted`},be={key:0,class:`project-release-meta`},xe={class:`project-card-footer`},Se=[`onClick`],x=[`onClick`],S={key:0,class:`empty-state project-empty`},C={class:`project-section`},w={class:`section-toolbar compact-toolbar relation-section-toolbar`},T=[`disabled`],E={class:`compact-relation-preview`,"aria-live":`polite`},D={key:0},O={key:1},k={class:`primary-action`,type:`submit`},A=[`open`],j={key:0,class:`project-dialog-shell`},Ce={class:`project-dialog-header`},we={class:`project-latest-release`},Te={key:0},Ee={key:1,class:`muted`},De={class:`project-detail-columns`},Oe={key:0,class:`muted`},ke={key:1,class:`muted`},Ae={key:0,class:`muted`},je={class:`project-dialog-actions`},Me=[`open`],Ne={key:0,class:`project-dialog-shell`},Pe={class:`project-dialog-header`},Fe=[`disabled`],Ie={class:`project-delete-confirmation`},Le=[`disabled`],Re={key:0,class:`publish-dialog-error`,role:`alert`},ze={class:`project-dialog-actions`},Be=[`disabled`],M=re({__name:`PublicProjectsPage`,setup(re){let M=ie(),Ve=ae(),N=f(null),P=f([]),F=f([]),I=f(!1),L=f(!1),R=f(``),z=f(``),B=f(`RELATED_TO`),V=f(null),H=f(``),U=f(!1),W=f(``),G=d(()=>M.state?.projects??[]),K=d(()=>new Set((M.state?.subscriptions??[]).map(({provider_url:e,project_id:t})=>`${e}::${t}`))),q=d(()=>G.value.filter(({role:e,isOwner:t})=>e===`maintainer`||t)),He=d(()=>q.value.map(e=>({value:e.id,label:e.name,meta:`#${b(e.id,26)}`,search:y(e.id)}))),Ue=d(()=>{let e=G.value.find(({id:e})=>e===R.value);return G.value.filter(({id:t,providerUrl:n})=>t!==e?.id&&n===e?.providerUrl)}),We=d(()=>Ue.value.map(e=>({value:e.id,label:e.name,meta:`#${b(e.id,26)}`,search:y(e.id)}))),Ge=d(()=>G.value.find(({id:e})=>e===R.value)??null),Ke=d(()=>G.value.find(({id:e})=>e===z.value)??null),J=d(()=>X.value.find(({value:e})=>e===B.value)?.label??i(`pages.publicProjects.relationLabels.relatedTo`)),Y=d(()=>!!(V.value&&H.value===V.value.name)),X=d(()=>[{value:`PART_OF`,label:i(`pages.publicProjects.relationLabels.partOf`)},{value:`USES_KNOWLEDGE_FROM`,label:i(`pages.publicProjects.relationLabels.usesKnowledgeFrom`)},{value:`DEPENDS_ON`,label:i(`pages.publicProjects.relationLabels.dependsOn`)},{value:`PROVIDES_TO`,label:i(`pages.publicProjects.relationLabels.providesTo`)},{value:`SHARES_CAPABILITY_WITH`,label:i(`pages.publicProjects.relationLabels.sharesCapabilityWith`)},{value:`SUCCESSOR_OF`,label:i(`pages.publicProjects.relationLabels.successorOf`)},{value:`RELATED_TO`,label:i(`pages.publicProjects.relationLabels.relatedTo`)}]);function Z(e){return`${e.providerUrl}::${e.id}`}function Q(e){return e.profile?.purpose||e.profile?.scope||e.profile?.technical_summary||e.description||i(`pages.publicProjects.fallbackDescription`)}async function qe(e){try{if(K.value.has(Z(e))){let t=new URLSearchParams({personalSpaceId:M.activePersonalSpace?.id??``,providerUrl:e.providerUrl});await g(`/api/subscriptions/${encodeURIComponent(e.id)}?${t}`),M.notify(i(`pages.publicProjects.unsubscribed`,{name:e.name}))}else await h(`/api/subscriptions`,{personalSpaceId:M.activePersonalSpace?.id,projectId:e.id,providerUrl:e.providerUrl,projectName:e.name}),M.notify(i(`pages.publicProjects.subscribed`,{name:e.name}));await M.refresh()}catch(e){M.reportError(e)}}async function Je(e){N.value=e,P.value=[],F.value=[],I.value=!0;try{let t=new URLSearchParams({providerUrl:e.providerUrl}),[n,r]=await Promise.all([_(`/api/projects/${encodeURIComponent(e.id)}/releases?${t}`),_(`/api/project-relations?${new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl})}`)]);P.value=n.releases??[],F.value=r.relations??[]}catch(e){M.reportError(e)}finally{I.value=!1}}async function Ye(e){N.value=null,await Ve.push(oe(`public`,e.id,`graph`))}function Xe(e){V.value=e,H.value=``,W.value=``}function Ze(){U.value||(V.value=null,H.value=``,W.value=``)}async function Qe(){let e=V.value;if(!e||!Y.value){W.value=i(`pages.publicProjects.deleteNameRequired`);return}U.value=!0,W.value=``;try{let t=new URLSearchParams({providerUrl:e.providerUrl});await g(`/api/projects/${encodeURIComponent(e.id)}?${t}`),N.value=null,V.value=null,M.notify(i(`pages.publicProjects.deleted`,{name:e.name})),await M.refresh()}catch(e){W.value=e instanceof Error?e.message:i(`pages.publicProjects.deleteFailed`),M.reportError(e)}finally{U.value=!1}}async function $e(){let e=G.value.find(({id:e})=>e===R.value),t=G.value.find(({id:e})=>e===z.value);if(!e||!t){M.reportError(Error(i(`pages.publicProjects.chooseRelationProjects`)));return}try{await h(`/api/project-relations`,{sourceProjectId:e.id,targetProjectId:t.id,providerUrl:e.providerUrl,relationType:B.value,note:null}),L.value=!1,R.value=``,z.value=``,M.notify(B.value===`PART_OF`?i(`pages.publicProjects.parentRelationSubmitted`):i(`pages.publicProjects.relationCreated`))}catch(e){M.reportError(e)}}function $(e){return e?new Date(e).toLocaleString(te()):i(`pages.publicProjects.timeNotRecorded`)}return(te,d)=>(l(),r(`section`,se,[u(`div`,ce,[d[8]||=u(`span`,{class:`space-heading-icon`,"aria-hidden":`true`},[u(`span`,{class:`nav-icon nav-icon-public-project`})],-1),u(`div`,null,[u(`p`,null,p(t(i)(`pages.publicProjects.intro`)),1)]),u(`div`,{class:`public-space-stats`,"aria-label":t(i)(`pages.publicProjects.overviewAria`)},[u(`span`,null,[u(`strong`,null,p(G.value.length),1),m(p(t(i)(`pages.publicProjects.discoverable`)),1)]),u(`span`,null,[u(`strong`,null,p(t(M).state?.subscriptions.length??0),1),m(p(t(i)(`pages.publicProjects.subscribedCount`)),1)])],8,le)]),u(`div`,ue,[(l(!0),r(o,null,c(G.value,n=>(l(),r(`article`,{key:Z(n),class:`project-card`},[u(`div`,de,[u(`div`,null,[d[9]||=u(`p`,{class:`eyebrow`},`PUBLIC PROJECT`,-1),u(`h4`,null,p(n.name),1)]),u(`div`,fe,[n.can_manage?(l(),r(`button`,{key:0,class:`management-action`,type:`button`,onClick:e=>Xe(n)},p(t(i)(`pages.publicProjects.manage`)),9,pe)):s(``,!0),u(`div`,me,[u(`strong`,null,p(n.profile?.assessment?.score??`—`),1),u(`span`,null,p(n.profile?.assessment?t(i)(`pages.publicProjects.coverage`):t(i)(`pages.publicProjects.noSummary`)),1)])])]),u(`p`,he,p(Q(n)),1),u(`div`,ge,[(l(!0),r(o,null,c(n.profile?.sources??[],(e,n)=>(l(),r(`span`,{key:n,class:`status-chip`},p(e.kind??t(i)(`pages.publicProjects.material`)),1))),128)),n.profile?.sources?.length?s(``,!0):(l(),r(`span`,_e,p(t(i)(`pages.publicProjects.noSources`)),1))]),u(`div`,ve,[u(`span`,{class:e([`status-chip`,{owner:n.isOwner}])},p(n.isOwner?`Owner`:n.role??`Reader`),3),u(`span`,ye,p(n.isOwner?t(i)(`pages.publicProjects.publishedByYou`):t(i)(`pages.publicProjects.publiclyDiscoverable`)),1),n.current_release?(l(),r(`span`,be,[u(`strong`,null,p(n.current_release.version),1),u(`span`,null,p($(n.current_release.published_at)),1)])):s(``,!0)]),u(`footer`,xe,[u(`button`,{class:`secondary-action`,type:`button`,onClick:e=>qe(n)},p(K.value.has(Z(n))?t(i)(`pages.publicProjects.unsubscribe`):t(i)(`pages.publicProjects.subscribe`)),9,Se),u(`button`,{class:`primary-action`,type:`button`,onClick:e=>Je(n)},p(t(i)(`common.actions.viewDetails`)),9,x)])]))),128)),G.value.length?s(``,!0):(l(),r(`div`,S,p(t(i)(`pages.publicProjects.noProjects`)),1))]),u(`section`,C,[u(`div`,w,[u(`div`,null,[d[10]||=u(`p`,{class:`eyebrow`},`PROJECT RELATIONS`,-1),u(`h3`,null,p(t(i)(`pages.publicProjects.relationsTitle`)),1),u(`p`,null,p(t(i)(`pages.publicProjects.relationsCopy`)),1)]),u(`button`,{class:`primary-action`,type:`button`,disabled:!q.value.length,onClick:d[0]||=e=>L.value=!L.value},p(t(i)(`pages.publicProjects.addRelation`)),9,T)]),L.value?(l(),r(`form`,{key:0,class:`relation-composer relation-composer-form compact-relation-form`,onSubmit:ee($e,[`prevent`])},[u(`label`,null,[m(p(t(i)(`pages.publicProjects.sourceProject`))+` `,1),a(v,{modelValue:R.value,"onUpdate:modelValue":d[1]||=e=>R.value=e,options:He.value,label:t(i)(`pages.publicProjects.sourceProjectLabel`),placeholder:t(i)(`pages.publicProjects.chooseProject`),searchable:``,required:``,onChange:d[2]||=e=>z.value=``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),u(`label`,null,[m(p(t(i)(`pages.publicProjects.relation`))+` `,1),a(v,{modelValue:B.value,"onUpdate:modelValue":d[3]||=e=>B.value=e,options:X.value,label:t(i)(`pages.publicProjects.relationTypeLabel`)},null,8,[`modelValue`,`options`,`label`])]),u(`label`,null,[m(p(t(i)(`pages.publicProjects.targetProject`))+` `,1),a(v,{modelValue:z.value,"onUpdate:modelValue":d[4]||=e=>z.value=e,options:We.value,label:t(i)(`pages.publicProjects.targetProjectLabel`),placeholder:t(i)(`pages.publicProjects.chooseProject`),searchable:``,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),u(`div`,E,[u(`span`,null,p(t(i)(`pages.publicProjects.preview`)),1),u(`strong`,null,p(Ge.value?.name||t(i)(`pages.publicProjects.sourceProject`))+` `+p(J.value)+` `+p(Ke.value?.name||t(i)(`pages.publicProjects.targetProject`)),1),B.value===`PART_OF`?(l(),r(`p`,D,p(t(i)(`pages.publicProjects.parentConfirmation`)),1)):(l(),r(`p`,O,p(t(i)(`pages.publicProjects.relationBoundary`)),1))]),u(`button`,k,p(t(i)(`pages.publicProjects.addRelation`)),1)],32)):s(``,!0)]),u(`dialog`,{open:!!N.value,class:`project-dialog vue-dialog`},[N.value?(l(),r(`div`,j,[u(`header`,Ce,[u(`div`,null,[d[11]||=u(`p`,{class:`eyebrow`},`PUBLIC PROJECT`,-1),u(`h3`,null,p(N.value.name),1),u(`p`,null,p(Q(N.value)),1)]),u(`button`,{class:`secondary-action`,type:`button`,onClick:d[5]||=e=>N.value=null},p(t(i)(`common.actions.close`)),1)]),u(`section`,we,[d[12]||=u(`p`,{class:`eyebrow`},`LATEST RELEASE`,-1),u(`h4`,null,p(t(i)(`pages.publicProjects.latestRelease`)),1),N.value.current_release?(l(),r(`p`,Te,[u(`strong`,null,p(N.value.current_release.version),1),m(` · `+p($(N.value.current_release.published_at)),1)])):(l(),r(`p`,Ee,p(t(i)(`pages.publicProjects.noRelease`)),1))]),u(`div`,De,[u(`section`,null,[u(`h4`,null,p(t(i)(`pages.publicProjects.releaseHistory`)),1),I.value?(l(),r(`p`,Oe,p(t(i)(`pages.publicProjects.loading`)),1)):s(``,!0),(l(!0),r(o,null,c(P.value,e=>(l(),r(`article`,{key:e.version,class:`project-release-item`},[u(`strong`,null,p(e.version),1),u(`p`,null,p(e.update_summary),1),u(`small`,null,p($(e.published_at)),1)]))),128)),!I.value&&!P.value.length?(l(),r(`p`,ke,p(t(i)(`pages.publicProjects.noReleaseHistory`)),1)):s(``,!0)]),u(`section`,null,[u(`h4`,null,p(t(i)(`pages.publicProjects.relationsTitle`)),1),(l(!0),r(o,null,c(F.value,e=>(l(),r(`article`,{key:e.id,class:`project-detail-relation`},[u(`strong`,null,p(e.relation_type),1),u(`small`,null,p(e.status??`active`),1)]))),128)),!I.value&&!F.value.length?(l(),r(`p`,Ae,p(t(i)(`pages.publicProjects.noRelations`)),1)):s(``,!0)])]),u(`footer`,je,[u(`span`,null,p(t(i)(`pages.publicProjects.contentManagementSeparated`)),1),u(`button`,{class:`primary-action`,type:`button`,onClick:d[6]||=e=>Ye(N.value)},p(t(i)(`pages.publicProjects.viewGraph`)),1)])])):s(``,!0)],8,A),u(`dialog`,{open:!!V.value,class:`project-dialog vue-dialog`},[V.value?(l(),r(`div`,Ne,[u(`header`,Pe,[u(`div`,null,[d[13]||=u(`p`,{class:`eyebrow`},`DESTRUCTIVE ACTION`,-1),u(`h3`,null,p(t(i)(`pages.publicProjects.deleteTitle`)),1),u(`p`,null,p(t(i)(`pages.publicProjects.deleteCopy`)),1)]),u(`button`,{class:`secondary-action`,type:`button`,disabled:U.value,onClick:Ze},p(t(i)(`common.actions.close`)),9,Fe)]),u(`label`,Ie,[m(p(t(i)(`pages.publicProjects.enterFullName`))+` `,1),u(`strong`,null,p(V.value.name),1),n(u(`input`,{"onUpdate:modelValue":d[7]||=e=>H.value=e,autocomplete:`off`,disabled:U.value},null,8,Le),[[ne,H.value]])]),W.value?(l(),r(`p`,Re,p(W.value),1)):s(``,!0),u(`footer`,ze,[u(`span`,null,p(t(i)(`pages.publicProjects.deleteWarning`)),1),u(`button`,{class:`reject`,type:`button`,disabled:!Y.value||U.value,onClick:Qe},p(U.value?t(i)(`pages.publicProjects.deleting`):t(i)(`pages.publicProjects.deletePermanently`)),9,Be)])])):s(``,!0)],8,Me)]))}});export{M as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{F as e,Q as t,_ as n,a as r,b as i,f as a,g as o,j as s,k as c,m as l,p as u,q as d,tt as f,x as p}from"./i18n-CDxBs1sz.js";import{a as m,r as h,t as g}from"./console-DE40hXGC.js";import{t as _}from"./SearchableSelect-ih69qbcS.js";import{r as v,t as y}from"./identity-BCxb1mcy.js";import{u as b}from"./model-CCMdt10Q.js";var x={class:`view`},S={class:`section-title`},C={class:`review-list`},w={class:`review-stage`},T={class:`review-meta`},E={class:`review-actions stacked-actions`},D=[`onClick`],O=[`onClick`],k=[`onClick`],A={key:0,class:`empty-state`},j={key:0,class:`project-section`},M={class:`section-toolbar`},N={class:`review-list`},P={class:`review-stage`},F={class:`review-meta`},I={class:`review-actions`},L=[`onClick`],R=[`onClick`],z={key:0,class:`empty-state`},B=p({__name:`ReviewPage`,setup(p){let B=g(),V=d([]),H=d([]),U=d(``),W=d(!1),G=u(()=>(B.state?.projects??[]).filter(({role:e})=>e===`maintainer`)),K=u(()=>G.value.map(e=>({value:e.id,label:e.name,meta:`#${y(e.id,26)}`,search:v(e.id)}))),q=u(()=>G.value.find(({id:e})=>e===U.value)??null);e(()=>B.state,e=>{e&&(U.value||=G.value[0]?.id??``,J())},{immediate:!0}),e(U,()=>void X());async function J(){W.value=!0,await Promise.all([Y(),X()]),W.value=!1}async function Y(){let e=B.activePersonalSpace?.id;if(e)try{let t=await h(`/api/personal-review?${new URLSearchParams({personalSpaceId:e,status:`pending`})}`);V.value=t.drafts??[]}catch(e){B.reportError(e)}}async function X(){let e=q.value;if(!e){H.value=[];return}try{let t=await h(`/api/review?${new URLSearchParams({projectId:e.id,providerUrl:e.providerUrl,status:`pending`})}`);H.value=t.proposals??[]}catch(e){H.value=[],B.reportError(e)}}async function Z(e,t){try{await m(`/api/personal-review/${encodeURIComponent(e.id)}/decision`,{decision:t}),await Promise.all([Y(),B.refresh()])}catch(e){B.reportError(e)}}async function Q(e,t){let n=q.value;if(n)try{await m(`/api/review/${encodeURIComponent(e.id)}/decision`,{projectId:n.id,providerUrl:n.providerUrl,decision:t,note:null}),await X()}catch(e){B.reportError(e)}}return(e,u)=>(c(),n(`section`,x,[l(`div`,S,[l(`h3`,null,f(t(r)(`pages.review.personalTitle`)),1),l(`p`,null,f(t(r)(`pages.review.personalCopy`)),1)]),l(`div`,C,[(c(!0),n(a,null,s(V.value,e=>(c(),n(`article`,{key:e.id,class:`review-item review-item-detailed`},[l(`div`,null,[l(`div`,w,f(t(r)(`pages.review.beforePublic`)),1),l(`h4`,null,f(e.episode.name),1),l(`p`,null,f(e.episode.summary||e.episode.source_description),1),l(`div`,T,[l(`span`,null,f(t(r)(`common.counts.entities`,{count:e.episode.entities?.length??0})),1),l(`span`,null,f(t(r)(`common.counts.relationships`,{count:e.episode.relationships?.length??0})),1),l(`span`,null,f(t(b)(e.created_at)),1)])]),l(`div`,E,[l(`button`,{class:`secondary-action`,type:`button`,onClick:t=>Z(e,`keep_personal`)},f(t(r)(`pages.review.keepPersonal`)),9,D),l(`button`,{class:`reject`,type:`button`,onClick:t=>Z(e,`ignore`)},f(t(r)(`pages.review.ignore`)),9,O),t(B).state?.capabilities?.submitKnowledge?(c(),n(`button`,{key:0,class:`approve`,type:`button`,onClick:t=>Z(e,`submit_public`)},f(t(r)(`pages.review.submitPublic`)),9,k)):o(``,!0)])]))),128)),!W.value&&!V.value.length?(c(),n(`div`,A,f(t(r)(`pages.review.noPersonalDrafts`)),1)):o(``,!0)]),t(B).state?.capabilities?.reviewProposals?(c(),n(`section`,j,[l(`div`,M,[l(`div`,null,[l(`h3`,null,f(t(r)(`pages.review.publicTitle`)),1),l(`p`,null,f(t(r)(`pages.review.publicCopy`)),1)]),i(_,{modelValue:U.value,"onUpdate:modelValue":u[0]||=e=>U.value=e,options:K.value,label:t(r)(`pages.review.projectLabel`),"control-id":`review-project`,searchable:``},null,8,[`modelValue`,`options`,`label`])]),l(`div`,N,[(c(!0),n(a,null,s(H.value,e=>(c(),n(`article`,{key:e.id,class:`review-item`},[l(`div`,null,[l(`div`,P,f(t(r)(`pages.review.maintainerReview`)),1),l(`h4`,null,f(e.episode.name),1),l(`p`,null,f(e.episode.summary||e.episode.source_description),1),l(`div`,F,[l(`span`,null,f(t(b)(e.created_at)),1)])]),l(`div`,I,[l(`button`,{class:`reject`,type:`button`,onClick:t=>Q(e,`reject`)},f(t(r)(`pages.review.reject`)),9,L),l(`button`,{class:`approve`,type:`button`,onClick:t=>Q(e,`approve`)},f(t(r)(`pages.review.approve`)),9,R)])]))),128)),!W.value&&!H.value.length?(c(),n(`div`,z,f(t(r)(`pages.review.noProposals`)),1)):o(``,!0)])])):o(``,!0)]))}});export{B as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,D as t,E as n,F as r,O as i,P as a,Q as o,R as s,_ as c,a as l,d as u,f as d,g as f,j as p,k as m,m as h,n as ee,p as g,q as _,tt as v,u as y,x as b}from"./i18n-CDxBs1sz.js";var x=[`data-select-id`],S=[`value`,`name`,`required`,`disabled`],C=[`value`,`disabled`],w=[`aria-expanded`,`aria-controls`,`aria-label`,`disabled`],T={class:`searchable-select-current`},E={class:`searchable-select-current-label`},D={key:0,class:`searchable-select-current-meta`},O=[`hidden`],k={key:0,class:`searchable-select-search`},te=[`placeholder`,`aria-label`],ne=[`id`],re=[`aria-selected`,`disabled`,`onClick`],ie={class:`searchable-select-option-copy`},ae={key:0},A={key:1,class:`searchable-select-empty`},j=b({__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(b,{emit:j}){let M=b,N=j,P=_(null),F=_(null),I=_(null),L=_(null),R=_(!1),z=_(!1),B=_(``),V=a().replace(/[^A-Za-z0-9_-]/g,``),H=g(()=>M.label),U=g(()=>M.placeholder??l(`common.searchableSelect.placeholder`)),W=g(()=>M.searchPlaceholder??l(`common.searchableSelect.searchPlaceholder`)),G=g(()=>`${M.controlId||`searchable-select-${V}`}-options`),K=g(()=>M.options.find(({value:e})=>e===M.modelValue)??null),q=g(()=>M.searchable??M.options.length>5),J=g(()=>{let e=ee(),t=B.value.trim().toLocaleLowerCase(e);return t?M.options.filter(n=>[n.label,n.value,n.meta,n.search].filter(Boolean).join(` `).toLocaleLowerCase(e).includes(t)):M.options});r(()=>M.disabled,e=>{e&&X()}),i(()=>{document.addEventListener(`pointerdown`,Z)}),t(()=>{document.removeEventListener(`pointerdown`,Z)});async function oe(){R.value?X():await Y()}async function Y(){M.disabled||(B.value=``,pe(),R.value=!0,await n(),q.value?I.value?.focus():fe()?.focus())}function X({restoreFocus:e=!1}={}){R.value=!1,z.value=!1,B.value=``,e&&n(()=>F.value?.focus())}function se(e){M.disabled||e.disabled||(N(`update:modelValue`,e.value),N(`change`,e.value),X({restoreFocus:!0}))}function ce(e){[`ArrowDown`,`Enter`,` `].includes(e.key)&&(e.preventDefault(),Y())}function le(e){if(e.key===`Escape`){e.preventDefault(),X({restoreFocus:!0});return}if(e.key===`ArrowDown`){e.preventDefault(),$()?.focus();return}e.key===`Enter`&&(e.preventDefault(),$()?.click())}function ue(e){if(e.key===`Escape`){e.preventDefault(),X({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 Z(e){R.value&&!P.value?.contains(e.target)&&X()}function de(e){let t=e.relatedTarget;t&&P.value?.contains(t)||queueMicrotask(()=>{R.value&&!P.value?.contains(document.activeElement)&&X()})}function Q(){return[...L.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=F.value?.getBoundingClientRect();z.value=!!(e&&window.innerHeight-e.bottom<270&&e.top>270)}return(t,n)=>(m(),c(`div`,{ref_key:`root`,ref:P,class:e([`searchable-select`,{open:R.value,"open-up":z.value,disabled:b.disabled}]),"data-select-id":b.controlId,onFocusout:de},[h(`select`,{class:`searchable-select-native`,value:b.modelValue,name:b.name,required:b.required,disabled:b.disabled,tabindex:`-1`,"aria-hidden":`true`},[(m(!0),c(d,null,p(b.options,e=>(m(),c(`option`,{key:e.value,value:e.value,disabled:e.disabled},v(e.label),9,C))),128))],8,S),h(`button`,{ref_key:`trigger`,ref:F,type:`button`,class:`searchable-select-trigger`,role:`combobox`,"aria-haspopup":`listbox`,"aria-expanded":R.value,"aria-controls":G.value,"aria-label":H.value,disabled:b.disabled,onPointerdown:n[0]||=u(()=>{},[`stop`]),onClick:u(oe,[`stop`]),onKeydown:ce},[h(`span`,T,[h(`span`,E,v(K.value?.label||U.value),1),K.value?.meta?(m(),c(`small`,D,v(K.value.meta),1)):f(``,!0)]),n[3]||=h(`i`,{class:`searchable-select-arrow`,"aria-hidden":`true`},null,-1)],40,w),h(`div`,{class:`searchable-select-panel`,hidden:!R.value},[q.value?(m(),c(`div`,k,[s(h(`input`,{ref_key:`searchInput`,ref:I,"onUpdate:modelValue":n[1]||=e=>B.value=e,type:`search`,autocomplete:`off`,placeholder:W.value,"aria-label":o(l)(`common.searchableSelect.searchAria`,{label:H.value}),onKeydown:le},null,40,te),[[y,B.value]])])):f(``,!0),h(`div`,{id:G.value,ref_key:`optionsList`,ref:L,class:`searchable-select-options`,role:`listbox`},[(m(!0),c(d,null,p(J.value,e=>(m(),c(`button`,{key:e.value,type:`button`,class:`searchable-select-option`,role:`option`,"aria-selected":e.value===b.modelValue,disabled:e.disabled,onMousedown:n[2]||=u(()=>{},[`prevent`]),onClick:t=>se(e),onKeydown:ue},[h(`span`,ie,[h(`strong`,null,v(e.label),1),e.meta?(m(),c(`small`,ae,v(e.meta),1)):f(``,!0)]),n[4]||=h(`i`,{class:`searchable-select-check`,"aria-hidden":`true`},null,-1)],40,re))),128))],8,ne),J.value.length===0?(m(),c(`p`,A,v(o(l)(`common.searchableSelect.noMatches`)),1)):f(``,!0)],8,O)],42,x))}});export{j as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.settings-view[data-v-f2c3482b]{background:#f7f8f6;padding-top:24px}.settings-content[data-v-f2c3482b]{gap:18px;width:min(1120px,100%);margin:0 auto;display:grid}.settings-form[data-v-f2c3482b]{gap:18px;display:grid}.settings-card[data-v-f2c3482b]{background:#fff;border:1px solid #d7ddd8;border-radius:12px;padding:26px;box-shadow:0 8px 30px #2b3b320a}.section-heading[data-v-f2c3482b]{justify-content:space-between;align-items:center;gap:18px;margin-bottom:22px;display:flex}.settings-card h3[data-v-f2c3482b]{color:#2e3c34;font-size:19px}.section-heading p[data-v-f2c3482b]{color:#879089;margin-top:5px;font-size:11px}.resource-totals[data-v-f2c3482b]{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.resource-totals article[data-v-f2c3482b]{background:#f7f9f7;border:1px solid #dce2dd;border-radius:10px;align-content:center;gap:7px;min-height:126px;padding:20px 22px;display:grid}.resource-totals span[data-v-f2c3482b]{color:#667169;font-size:12px}.resource-totals strong[data-v-f2c3482b]{color:#24332a;letter-spacing:-.04em;font-size:clamp(25px,3vw,34px)}.resource-totals small[data-v-f2c3482b]{color:#8a938d;font-size:11px}.resource-breakdowns[data-v-f2c3482b]{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:26px;display:grid}.resource-group[data-v-f2c3482b]{gap:13px;display:grid}.resource-group h4[data-v-f2c3482b],.port-section h4[data-v-f2c3482b]{color:#536058;font-size:12px}.resource-row[data-v-f2c3482b]{gap:6px;display:grid}.resource-row>div[data-v-f2c3482b]{color:#67736b;justify-content:space-between;gap:12px;font-size:11px;display:flex}.resource-row strong[data-v-f2c3482b]{color:#36443b;font-weight:650}.resource-row i[data-v-f2c3482b]{background:#eef1ee;border-radius:999px;height:5px;overflow:hidden}.resource-row b[data-v-f2c3482b]{border-radius:inherit;background:#6f8f79;height:100%;display:block}.resource-group:last-child .resource-row b[data-v-f2c3482b]{background:#82958a}.resource-notes[data-v-f2c3482b]{color:#8a938d;flex-wrap:wrap;gap:8px 18px;margin-top:22px;font-size:10px;display:flex}.settings-skeleton[data-v-f2c3482b]{background:#f2f4f2;border-radius:9px;height:260px}.restart-chip[data-v-f2c3482b]{color:#8d5a18;background:#fff8ec;border:1px solid #d7aa68;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:700}.port-section[data-v-f2c3482b]{gap:13px;display:grid}.port-section+.port-section[data-v-f2c3482b]{border-top:1px solid #edf0ed;margin-top:25px;padding-top:22px}.development-section>div[data-v-f2c3482b]{align-items:center;gap:9px;display:flex}.development-section>div>span[data-v-f2c3482b]{color:#78633a;background:#f6f0e4;border-radius:999px;padding:4px 8px;font-size:9px;font-weight:700}.development-section>p[data-v-f2c3482b]{color:#8b948e;font-size:10px}.port-grid[data-v-f2c3482b]{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.port-grid label[data-v-f2c3482b]{color:#59655e;gap:7px;font-size:11px;display:grid}.port-grid input[data-v-f2c3482b],.select-row[data-v-f2c3482b] .settings-select .searchable-select-trigger{color:#2f3d34;width:100%;min-height:40px;font:inherit;background:#fbfcfb;border:1px solid #ccd4ce;border-radius:8px;outline:none;padding:0 11px}.port-grid input[data-v-f2c3482b]:focus,.select-row[data-v-f2c3482b] .settings-select .searchable-select-trigger:focus-visible{border-color:#6f8f79;box-shadow:0 0 0 3px #6f8f791f}.port-grid small[data-v-f2c3482b]{color:#9aa29d;font-size:9px}.behavior-card>h3[data-v-f2c3482b]{margin-bottom:14px}.setting-list[data-v-f2c3482b]{display:grid}.setting-row[data-v-f2c3482b]{cursor:pointer;border-top:1px solid #edf0ed;justify-content:space-between;align-items:center;gap:24px;min-height:64px;display:flex}.setting-row[data-v-f2c3482b]:first-child{border-top:0}.setting-row>span[data-v-f2c3482b]{gap:4px;display:grid}.setting-row strong[data-v-f2c3482b]{color:#354239;font-size:12px}.setting-row small[data-v-f2c3482b]{color:#8b948e;font-size:10px}.setting-row input[role=switch][data-v-f2c3482b]{appearance:none;cursor:pointer;background:#cbd2cd;border-radius:999px;width:38px;height:21px;transition:background .18s;position:relative}.setting-row input[role=switch][data-v-f2c3482b]:after{content:"";background:#fff;border-radius:50%;width:17px;height:17px;transition:transform .18s;position:absolute;top:50%;left:2px;transform:translateY(-50%);box-shadow:0 0 4px #0000002e}.setting-row input[role=switch][data-v-f2c3482b]:checked{background:#688b73}.setting-row input[role=switch][data-v-f2c3482b]:checked:after{transform:translate(17px,-50%)}.select-row .settings-select[data-v-f2c3482b]{width:180px;min-width:0}.select-row[data-v-f2c3482b] .settings-select .searchable-select-trigger{background:#fbfcfb;border-radius:8px;padding:0 14px 0 11px}.select-row[data-v-f2c3482b] .settings-select .searchable-select-current{align-items:center}.select-row[data-v-f2c3482b] .settings-select .searchable-select-current-label{font-weight:500}.select-row[data-v-f2c3482b] .settings-select .searchable-select-arrow{border-width:1.5px;width:8px;height:8px;margin-right:1px}.select-row[data-v-f2c3482b] .settings-select .searchable-select-panel{width:100%;min-width:0}.settings-top-status[data-v-f2c3482b]{color:#7d8780;flex-wrap:wrap;align-items:center;gap:6px 16px;padding:0 4px 2px;font-size:10px;display:flex}.settings-top-status strong[data-v-f2c3482b]{color:#477356;font-weight:700}.settings-error[data-v-f2c3482b]{color:#8c3934;background:#fff2f0;border-radius:8px;padding:11px 13px;font-size:11px}@media (width<=900px){.port-grid[data-v-f2c3482b]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=680px){.settings-card[data-v-f2c3482b]{padding:20px}.resource-totals[data-v-f2c3482b],.resource-breakdowns[data-v-f2c3482b],.port-grid[data-v-f2c3482b]{grid-template-columns:1fr}.select-row[data-v-f2c3482b]{flex-direction:column;align-items:flex-start;padding:14px 0}.select-row .settings-select[data-v-f2c3482b]{width:100%}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{D as e,F as t,O as n,Q as r,R as i,_ as a,a as o,b as s,d as ee,et as c,f as l,g as u,i as d,j as f,k as p,m,n as te,p as h,q as g,s as ne,tt as _,u as re,x as ie}from"./i18n-CDxBs1sz.js";import{o as ae,r as v,t as oe}from"./console-DE40hXGC.js";import{t as y}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as b}from"./SearchableSelect-ih69qbcS.js";var se=[`aria-label`],ce={class:`settings-content`},le={key:0,class:`settings-top-status`,role:`status`},ue={key:0},de={key:1},fe={class:`settings-card resource-card`},pe={class:`section-heading`},me={key:0},he=[`disabled`],ge={key:0,class:`settings-error`,role:`alert`},_e={class:`resource-totals`},ve={class:`resource-breakdowns`},ye={class:`resource-group`},x={class:`resource-group`},S={class:`resource-notes`},C={key:0},w={key:1},T={key:2,class:`settings-skeleton`,"aria-hidden":`true`},E={class:`settings-card ports-card`},D={class:`section-heading`},O={key:0,class:`restart-chip`},k={class:`port-section`},A={class:`port-grid`},j=[`onUpdate:modelValue`],M={class:`port-section development-section`},N={class:`settings-card behavior-card`},P={class:`setting-list`},be={class:`setting-row`},xe=[`checked`],Se={class:`setting-row`},Ce=[`checked`],we={class:`setting-row`},Te={class:`setting-row select-row`},Ee={class:`setting-row select-row`},De={key:0,class:`settings-error`,role:`alert`},Oe={key:2,class:`settings-error`,role:`alert`},F=y(ie({__name:`SettingsPage`,setup(ie){let y=oe(),F=g(null),I=g(null),L=g(null),R=g(!0),z=g(!1),B=g(!1),V=g(``),H=g(``),U=g(!1),W=null,ke=[`console`,`personalProvider`,`personalNeo4jHttp`,`personalNeo4jBolt`],G=h({get:()=>te(),set:e=>d(e)}),K=[5,10,30,60],Ae=h(()=>[{value:`zh-CN`,label:o(`settings.behavior.zh`)},{value:`en-US`,label:o(`settings.behavior.en`)}]),je=h(()=>K.map(e=>({value:String(e),label:o(`settings.resources.refreshUnit`,{seconds:e})}))),Me=h(()=>y.state?.capturePolicy?.enabled!==!1),Ne=h(()=>y.state?.agentAccessPolicy?.enabled!==!1),Pe=h(()=>Math.max(1,...L.value?.memory.components.map(({bytes:e})=>e)??[1])),Fe=h(()=>Math.max(1,...L.value?.disk.components.map(({bytes:e})=>e)??[1]));n(async()=>{y.runtimeStatus===`idle`&&y.refresh(),await Promise.all([Ie(),q()]),R.value=!1}),e(J),t(()=>I.value?.resourceRefreshSeconds,()=>Re());async function Ie(){try{let e=await v(`/api/system/settings`);F.value=e,I.value=structuredClone(e.configured),V.value=``}catch(e){V.value=e instanceof Error?e.message:o(`settings.loadError`)}}async function q(){if(!(B.value||document.visibilityState===`hidden`)){B.value=!0;try{L.value=await v(`/api/system/resources`),H.value=``}catch(e){H.value=e instanceof Error?e.message:o(`settings.resources.unavailable`)}finally{B.value=!1}}}async function Le(){if(!(!I.value||z.value)){z.value=!0,U.value=!1;try{let e=await ae(`/api/system/settings`,I.value);F.value=e,I.value=structuredClone(e.configured),U.value=!0,V.value=``,window.setTimeout(()=>{U.value=!1},2400)}catch(e){V.value=e instanceof Error?e.message:o(`settings.saveError`)}finally{z.value=!1}}}function Re(){J();let e=I.value?.resourceRefreshSeconds;e&&(W=setInterval(()=>void q(),e*1e3))}function J(){W&&clearInterval(W),W=null}function ze(e){y.updateCapturePolicy(e.currentTarget.checked)}function Be(e){y.updateAgentAccessPolicy(e.currentTarget.checked)}function Ve(e){(e===`zh-CN`||e===`en-US`)&&d(e)}function Y(e){let t=K.find(t=>String(t)===e);t===void 0||!I.value||(I.value.resourceRefreshSeconds=t)}function He(e){return F.value?.active.ports[e]??`—`}function X(e){let t=`settings.resources.components.${e.id}`,n=o(t);return n===t?e.label:n}function Z(e){if(!Number.isFinite(e))return`—`;let t=Number(e),n=[`B`,`KiB`,`MiB`,`GiB`,`TiB`],r=t,i=0;for(;r>=1024&&i<n.length-1;)r/=1024,i+=1;let a=i===0||r>=100?0:r>=10?1:2;return`${r.toFixed(a)} ${n[i]}`}function Q(e,t){return`${Math.max(3,Math.round(e/t*100))}%`}function $(e){return e?new Intl.DateTimeFormat(G.value,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`}).format(new Date(e)):`—`}return(e,t)=>(p(),a(`section`,{class:`view settings-view`,"aria-label":r(o)(`settings.aria`)},[m(`div`,ce,[U.value||F.value?.restartRequired?(p(),a(`div`,le,[U.value?(p(),a(`strong`,ue,_(r(o)(`settings.saved`)),1)):u(``,!0),F.value?.restartRequired?(p(),a(`span`,de,_(r(o)(`settings.restartCopy`)),1)):u(``,!0)])):u(``,!0),m(`section`,fe,[m(`header`,pe,[m(`div`,null,[m(`h3`,null,_(r(o)(`settings.resources.title`)),1),L.value?(p(),a(`p`,me,_(r(o)(`settings.resources.measuredAt`,{time:$(L.value.sampledAt)})),1)):u(``,!0)]),m(`button`,{class:`quiet-button`,type:`button`,disabled:B.value,onClick:q},_(r(o)(`common.actions.refresh`)),9,he)]),H.value?(p(),a(`p`,ge,_(H.value),1)):L.value?(p(),a(l,{key:1},[m(`div`,_e,[m(`article`,null,[m(`span`,null,_(r(o)(`settings.resources.memory`)),1),m(`strong`,null,_(Z(L.value.memory.usedBytes)),1),m(`small`,null,_(r(o)(`settings.resources.available`,{value:Z(L.value.memory.hostFreeBytes)})),1)]),m(`article`,null,[m(`span`,null,_(r(o)(`settings.resources.disk`)),1),m(`strong`,null,_(Z(L.value.disk.usedBytes)),1),m(`small`,null,_(r(o)(`settings.resources.available`,{value:Z(L.value.disk.hostFreeBytes)})),1)])]),m(`div`,ve,[m(`div`,ye,[m(`h4`,null,_(r(o)(`settings.resources.memory`)),1),(p(!0),a(l,null,f(L.value.memory.components,e=>(p(),a(`div`,{key:e.id,class:`resource-row`},[m(`div`,null,[m(`span`,null,_(X(e)),1),m(`strong`,null,_(Z(e.bytes)),1)]),m(`i`,null,[m(`b`,{style:c({width:Q(e.bytes,Pe.value)})},null,4)])]))),128))]),m(`div`,x,[m(`h4`,null,_(r(o)(`settings.resources.disk`)),1),(p(!0),a(l,null,f(L.value.disk.components,e=>(p(),a(`div`,{key:e.id,class:`resource-row`},[m(`div`,null,[m(`span`,null,_(X(e)),1),m(`strong`,null,_(Z(e.bytes)),1)]),m(`i`,null,[m(`b`,{style:c({width:Q(e.bytes,Fe.value)})},null,4)])]))),128))])]),m(`div`,S,[m(`span`,null,_(r(o)(`settings.resources.diskMeasuredAt`,{time:$(L.value.disk.measuredAt)})),1),L.value.status===`partial`?(p(),a(`span`,C,_(r(o)(`settings.resources.partial`)),1)):u(``,!0),L.value.disk.temporaryBytes?(p(),a(`span`,w,_(r(o)(`settings.resources.temporary`,{value:Z(L.value.disk.temporaryBytes)})),1)):u(``,!0),m(`span`,null,_(r(o)(`settings.resources.exclusions`)),1)])],64)):(p(),a(`div`,T))]),I.value?(p(),a(`form`,{key:1,id:`settings-form`,class:`settings-form`,onSubmit:ee(Le,[`prevent`])},[m(`section`,E,[m(`header`,D,[m(`h3`,null,_(r(o)(`settings.ports.title`)),1),F.value?.restartRequired?(p(),a(`span`,O,_(r(o)(`settings.restartRequired`)),1)):u(``,!0)]),m(`div`,k,[m(`h4`,null,_(r(o)(`settings.ports.personal`)),1),m(`div`,A,[(p(),a(l,null,f(ke,e=>m(`label`,{key:e},[m(`span`,null,_(r(o)(`settings.ports.${e}`)),1),i(m(`input`,{"onUpdate:modelValue":t=>I.value.ports[e]=t,type:`number`,min:`1`,max:`65535`,required:``},null,8,j),[[re,I.value.ports[e],void 0,{number:!0}]]),m(`small`,null,_(r(o)(`settings.ports.active`,{port:He(e)})),1)])),64))])]),m(`div`,M,[m(`div`,null,[m(`h4`,null,_(r(o)(`settings.ports.development`)),1),m(`span`,null,_(r(o)(`settings.ports.developing`)),1)]),m(`p`,null,_(r(o)(`settings.ports.developmentMeta`)),1)])]),m(`section`,N,[m(`h3`,null,_(r(o)(`settings.behavior.title`)),1),m(`div`,P,[m(`label`,be,[m(`span`,null,[m(`strong`,null,_(r(o)(`settings.behavior.capture`)),1),m(`small`,null,_(r(o)(`settings.behavior.captureMeta`)),1)]),m(`input`,{type:`checkbox`,role:`switch`,checked:Me.value,onChange:ze},null,40,xe)]),m(`label`,Se,[m(`span`,null,[m(`strong`,null,_(r(o)(`settings.behavior.agentAccess`)),1),m(`small`,null,_(r(o)(`settings.behavior.agentAccessMeta`)),1)]),m(`input`,{type:`checkbox`,role:`switch`,checked:Ne.value,onChange:Be},null,40,Ce)]),m(`label`,we,[m(`span`,null,[m(`strong`,null,_(r(o)(`settings.behavior.lanAccess`)),1),m(`small`,null,_(r(o)(`settings.behavior.lanAccessMeta`)),1)]),i(m(`input`,{"onUpdate:modelValue":t[0]||=e=>I.value.lanAccess=e,type:`checkbox`,role:`switch`},null,512),[[ne,I.value.lanAccess]])]),m(`div`,Te,[m(`span`,null,[m(`strong`,null,_(r(o)(`settings.behavior.language`)),1)]),s(b,{class:`settings-select`,"control-id":`settings-language`,"model-value":G.value,options:Ae.value,label:r(o)(`settings.behavior.language`),"onUpdate:modelValue":Ve},null,8,[`model-value`,`options`,`label`])]),m(`div`,Ee,[m(`span`,null,[m(`strong`,null,_(r(o)(`settings.resources.refresh`)),1)]),s(b,{class:`settings-select`,"control-id":`settings-refresh-interval`,"model-value":String(I.value.resourceRefreshSeconds),options:je.value,label:r(o)(`settings.resources.refresh`),"onUpdate:modelValue":Y},null,8,[`model-value`,`options`,`label`])])])]),V.value?(p(),a(`p`,De,_(V.value),1)):u(``,!0)],32)):R.value?u(``,!0):(p(),a(`p`,Oe,_(V.value||r(o)(`settings.loadError`)),1))])],8,se))}}),[[`__scopeId`,`data-v-f2c3482b`]]);export{F as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n};export{e as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{B as e,C as t,E as n,F as r,G as i,H as a,U as o,V as s,W as c,X as l,Y as u,Z as d,a as f,p,q as m,w as h,z as g}from"./i18n-CDxBs1sz.js";var _=typeof window<`u`,v,y=e=>v=e,b=Symbol();function x(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var S=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:typeof globalThis==`object`?globalThis:{HTMLElement:null};function C(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function w(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){k(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function T(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function E(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,view:window,detail:0,screenX:80,screenY:20,clientX:80,clientY:20,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null});e.dispatchEvent(t)}}var D=typeof navigator==`object`?navigator:{userAgent:``},O=/Macintosh/.test(D.userAgent)&&/AppleWebKit/.test(D.userAgent)&&!/Safari/.test(D.userAgent),k=_?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!O?A:`msSaveOrOpenBlob`in D?j:M:()=>{};function A(e,t=`download`,n){let r=document.createElement(`a`);r.download=t,r.rel=`noopener`,typeof e==`string`?(r.href=e,r.origin===location.origin?E(r):T(r.href)?w(e,t,n):(r.target=`_blank`,E(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){E(r)},0))}function j(e,t=`download`,n){if(typeof e==`string`)if(T(e))w(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){E(t)})}else navigator.msSaveOrOpenBlob(C(e,n),t)}function M(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return w(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(S.HTMLElement))||`safari`in S,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||O)&&typeof FileReader<`u`){let t=new FileReader;t.onloadend=function(){let e=t.result;if(typeof e!=`string`)throw r=null,Error(`Wrong reader.result type`);e=o?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),r?r.location.href=e:location.assign(e),r=null},t.readAsDataURL(e)}else{let t=URL.createObjectURL(e);r?r.location.assign(t):location.href=t,r=null,setTimeout(function(){URL.revokeObjectURL(t)},4e4)}}var{assign:ee}=Object;function N(){let e=g(!0),t=e.run(()=>m({})),n=[],r=[],i=o({install(e){y(i),i._a=e,e.provide(b,i),e.config.globalProperties.$pinia=i,r.forEach(e=>n.push(e)),r=[]},use(e){return this._a?n.push(e):r.push(e),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return i}var P=()=>{};function F(t,n,r,i=P){t.add(n);let a=()=>{t.delete(n)&&i()};return!r&&e()&&c(a),a}function I(e,...t){e.forEach(e=>{e(...t)})}var L=e=>e(),R=Symbol(),z=Symbol();function B(e,t){e instanceof Map&&t instanceof Map?t.forEach((t,n)=>e.set(n,t)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(let n in t){if(!Object.hasOwn(t,n))continue;let r=t[n],i=e[n];x(i)&&x(r)&&Object.hasOwn(e,n)&&!a(r)&&!s(r)?e[n]=B(i,r):e[n]=r}return e}var V=Symbol();function H(e){return!e||typeof e!=`object`||!Object.hasOwn(e,V)}var{assign:U}=Object;function W(e){return!!(a(e)&&e.effect)}function G(e,t,n,r){let{state:i,actions:a,getters:s}=t,c=n.state.value[e],l;function u(){return c||(n.state.value[e]=i?i():{}),U(d(n.state.value[e]),a,Object.keys(s||{}).reduce((t,r)=>(t[r]=o(p(()=>{y(n);let t=n._s.get(e);return s[r].call(t,t)})),t),{}))}return l=K(e,u,t,n,r,!0),l}function K(e,t,o={},c,u,d){let f,p=U({actions:{}},o),m={deep:!0},h,_,v=new Set,b=new Set,x=c.state.value[e];!d&&!x&&(c.state.value[e]={});let S;function C(t){let r;h=_=!1,typeof t==`function`?(t(c.state.value[e]),r={type:`patch function`,storeId:e,events:void 0}):(B(c.state.value[e],t),r={type:`patch object`,payload:t,storeId:e,events:void 0});let i=S=Symbol();n().then(()=>{S===i&&(h=!0)}),_=!0,I(v,r,c.state.value[e])}let w=d?function(){let{state:e}=o,t=e?e():{};this.$patch(e=>{U(e,t)})}:P;function T(){f.stop(),v.clear(),b.clear(),c._s.delete(e)}let E=(t,n=``)=>{if(R in t)return t[z]=n,t;let r=function(){y(c);let n=Array.from(arguments),i=new Set,a=new Set;function o(e){i.add(e)}function s(e){a.add(e)}I(b,{args:n,name:r[z],store:D,after:o,onError:s});let l;try{l=t.apply(this&&this.$id===e?this:D,n)}catch(e){throw I(a,e),e}return l instanceof Promise?l.then(e=>(I(i,e),e)).catch(e=>(I(a,e),Promise.reject(e))):(I(i,l),l)};return r[R]=!0,r[z]=n,r},D=i({_p:c,$id:e,$onAction:F.bind(null,b),$patch:C,$reset:w,$subscribe(t,n={}){if(v.has(t))return P;let i=F(v,t,n.detached,()=>a()),a=f.run(()=>r(()=>c.state.value[e],r=>{(n.flush===`sync`?_:h)&&t({storeId:e,type:`direct`,events:void 0},r)},U({},m,n)));return i},$dispose:T});c._s.set(e,D);let O=(c._a&&c._a.runWithContext||L)(()=>c._e.run(()=>(f=g()).run(()=>t({action:E}))));for(let t in O){let n=O[t];a(n)&&!W(n)||s(n)?d||(x&&H(n)&&(a(n)?n.value=x[t]:B(n,x[t])),c.state.value[e][t]=n):typeof n==`function`&&(O[t]=E(n,t),p.actions[t]=n)}return U(D,O),U(l(D),O),Object.defineProperty(D,"$state",{get:()=>c.state.value[e],set:e=>{C(t=>{U(t,e)})}}),c._p.forEach(e=>{let t=f.run(()=>e({store:D,app:c._a,pinia:c,options:p}));U(D,t)}),x&&d&&o.hydrate&&o.hydrate(D.$state,x),h=!0,_=!0,D}function q(e,n,r){let i,a=typeof n==`function`;i=a?r:n;function o(r,o){let s=t();return r||=s?h(b,null):null,r&&y(r),r=v,r._s.has(e)||(a?K(e,n,i,r):G(e,i,r)),r._s.get(e)}return o.$id=e,o}var J=class extends Error{status;constructor(e,t){super(e),this.name=`ApiError`,this.status=t}};async function Y(e,t){let n=await fetch(e,t);if(!n.ok)throw new J((await n.text()).trim()||f(`common.errors.requestFailed`,{status:n.status}),n.status);return n.json()}function X(e,t){return Y(e,t)}function Z(e,t){return Y(e,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}function Q(e,t){return Y(e,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}function $(e,t){return Y(e,{method:`PATCH`,headers:{"content-type":`application/json`},body:JSON.stringify(t)})}function te(e){return Y(e,{method:`DELETE`})}var ne=q(`console`,()=>{let e=u(null),t=m(`idle`),n=m(null),r=p(()=>{let t=e.value;return t?t.personalSpaces.find(({id:e})=>e===t.activePersonalSpaceId)??t.personalSpaces[0]??null:null}),i=p(()=>e.value?.mode===`connected`?`ready`:e.value?.mode===`degraded`?`error`:`disconnected`);async function a(){t.value=`loading`;try{e.value=await X(`/api/state`),t.value=`ready`}catch(e){t.value=`error`,d(e)}}async function o(t){try{let n=await $(`/api/capture-policy`,{enabled:t});e.value&&={...e.value,capturePolicy:n},l(f(t?`console.captureNotices.enabled`:`console.captureNotices.disabled`))}catch(e){d(e)}}async function s(t){try{let n=await $(`/api/agent-access-policy`,{enabled:t});e.value&&={...e.value,agentAccessPolicy:n},l(f(t?`console.agentAccess.enabledNotice`:`console.agentAccess.disabledNotice`))}catch(e){d(e)}}function c(t){return e.value?.capabilities?.[t]===!0}function l(e){n.value={message:e,tone:`success`}}function d(e){n.value={message:e instanceof Error?e.message:f(`common.errors.operationFailed`),tone:`error`}}function h(){n.value=null}return{state:e,runtimeStatus:t,feedback:n,activePersonalSpace:r,publicRuntimeStatus:i,refresh:a,updateCapturePolicy:o,updateAgentAccessPolicy:s,hasCapability:c,notify:l,reportError:d,clearFeedback:h}});export{Z as a,$ as i,te as n,Q as o,X as r,N as s,ne as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=`/assets/fuli-logo-ER1wQ8Kk.png`;export{e as t};
|
|
Binary file
|