fuli-context 0.4.0 → 0.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +5 -0
- package/README.md +411 -173
- 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-DfnZo7Lo.js +1 -0
- package/dist/web/assets/ConnectionsPage-BloaSKmt.js +1 -0
- package/dist/web/assets/ConnectionsPage-CBHAdZXT.css +1 -0
- package/dist/web/assets/KnowledgeInspector-Bjhdu2mf.css +1 -0
- package/dist/web/assets/KnowledgeInspector-QvNpv0_k.js +1 -0
- package/dist/web/assets/KnowledgeOrganizerPage-Cx1w1jb2.css +1 -0
- package/dist/web/assets/KnowledgeOrganizerPage-DKq1jVD5.js +1 -0
- package/dist/web/assets/KnowledgePage-BWL0jT01.js +1 -0
- package/dist/web/assets/KnowledgeWorkspace-Czq6aZ7b.js +4 -0
- package/dist/web/assets/OverviewPage-5sJoO1Gh.js +1 -0
- package/dist/web/assets/{PersonalProfilePage-S8ZcG2LU.css → PersonalProfilePage-CdmEzyvZ.css} +1 -1
- package/dist/web/assets/PersonalProfilePage-tVChM9ik.js +1 -0
- package/dist/web/assets/PersonalProjectsPage-BPFrup4V.js +1 -0
- package/dist/web/assets/PublicProjectsPage-BPJSeREN.js +1 -0
- package/dist/web/assets/ReviewPage-B7EN817i.js +1 -0
- package/dist/web/assets/SearchableSelect-ClLN0rIb.js +1 -0
- package/dist/web/assets/SettingsPage-C6ouU0sR.css +1 -0
- package/dist/web/assets/SettingsPage-Chd_B3eH.js +1 -0
- package/dist/web/assets/_plugin-vue_export-helper-BDNMzG2s.js +1 -0
- package/dist/web/assets/console-CbDsKrsO.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-BQcns1PH.js +5 -0
- package/dist/web/assets/identity-B8K4VYg6.js +1 -0
- package/dist/web/assets/index-CB8Xmsc2.js +2 -0
- package/dist/web/assets/index-CZeuPh-U.css +1 -0
- package/dist/web/assets/model-eF52GgPF.js +1 -0
- package/dist/web/assets/paths-hwz-Ac1g.js +1 -0
- package/dist/web/assets/useMinimumLoadingDisplay-BpCyBeko.css +1 -0
- package/dist/web/assets/useMinimumLoadingDisplay-wCgGDmHg.js +1 -0
- package/dist/web/assets/vue-router-BsEp_XwI.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 +612 -0
- package/graph-provider/fuli_graph/knowledge_review_models.py +127 -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 -4
- package/skills/capturing-session-knowledge/SKILL.md +24 -4
- package/skills/flreview/SKILL.md +73 -0
- package/skills/flreview/agents/openai.yaml +6 -0
- package/src/agent-tools/graph-definitions.js +79 -4
- package/src/agent-tools/graph-handlers.js +12 -0
- package/src/cli/command-registry.js +3 -3
- package/src/cli/local-runtime-command.js +60 -23
- package/src/cli/local-runtime-options.js +16 -6
- 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 +66 -41
- 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 +38 -3
- package/src/local-runtime/lifecycle.js +37 -16
- package/src/mcp/create-mcp-server.js +1 -0
- 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/lan-access.js +52 -0
- package/src/server.js +103 -25
- 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 +219 -58
- 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/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-CJCNI2Wd.css +0 -1
- package/dist/web/assets/KnowledgeOrganizerPage-PXH-TlGt.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-BQRkOwPx.js +0 -2
- package/dist/web/assets/index-CpLDx3of.css +0 -1
- 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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as e,D as t,E as n,F as r,J as i,K as a,N as o,T as s,U as c,V as ee,_ as te,a as l,b as u,c as ne,d,n as f,q as re,r as p,t as ie,v as ae,w as m,x as h,y as g}from"./console-B_Ena2DS.js";import{t as oe,v as se}from"./paths-BkULqmGI.js";import{i as _,r as v,t as y}from"./identity-CjBwYSMX.js";var ce={class:`view`},le={class:`space-heading public-space-heading`},ue=[`aria-label`],de={class:`project-grid`},fe={class:`project-card-heading`},pe={class:`project-card-heading-actions`},me=[`onClick`],he={class:`completion-badge`},ge={class:`project-purpose`},_e={class:`evidence-row`},ve={key:0,class:`muted`},ye={class:`project-access`},be={class:`muted`},xe={key:0,class:`project-release-meta`},Se={class:`project-card-footer`},b=[`onClick`],x=[`onClick`],S={key:0,class:`empty-state project-empty`},C={class:`project-section`},w={class:`section-toolbar compact-toolbar relation-section-toolbar`},T=[`disabled`],E={class:`compact-relation-preview`,"aria-live":`polite`},D={key:0},O={key:1},k={class:`primary-action`,type:`submit`},A=[`open`],j={key:0,class:`project-dialog-shell`},Ce={class:`project-dialog-header`},we={class:`project-latest-release`},Te={key:0},Ee={key:1,class:`muted`},De={class:`project-detail-columns`},Oe={key:0,class:`muted`},ke={key:1,class:`muted`},Ae={key:0,class:`muted`},je={class:`project-dialog-actions`},Me=[`open`],Ne={key:0,class:`project-dialog-shell`},Pe={class:`project-dialog-header`},Fe=[`disabled`],Ie={class:`project-delete-confirmation`},Le=[`disabled`],Re={key:0,class:`publish-dialog-error`,role:`alert`},ze={class:`project-dialog-actions`},Be=[`disabled`],M=t({__name:`PublicProjectsPage`,setup(t){let M=ie(),Ve=se(),N=c(null),P=c([]),F=c([]),I=c(!1),L=c(!1),R=c(``),z=c(``),B=c(`RELATED_TO`),V=c(null),H=c(``),U=c(!1),W=c(``),G=u(()=>M.state?.projects??[]),K=u(()=>new Set((M.state?.subscriptions??[]).map(({provider_url:e,project_id:t})=>`${e}::${t}`))),q=u(()=>G.value.filter(({role:e,isOwner:t})=>e===`maintainer`||t)),He=u(()=>q.value.map(e=>({value:e.id,label:e.name,meta:`#${y(e.id,26)}`,search:v(e.id)}))),Ue=u(()=>{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=u(()=>Ue.value.map(e=>({value:e.id,label:e.name,meta:`#${y(e.id,26)}`,search:v(e.id)}))),Ge=u(()=>G.value.find(({id:e})=>e===R.value)??null),Ke=u(()=>G.value.find(({id:e})=>e===z.value)??null),J=u(()=>X.value.find(({value:e})=>e===B.value)?.label??d(`pages.publicProjects.relationLabels.relatedTo`)),Y=u(()=>!!(V.value&&H.value===V.value.name)),X=u(()=>[{value:`PART_OF`,label:d(`pages.publicProjects.relationLabels.partOf`)},{value:`USES_KNOWLEDGE_FROM`,label:d(`pages.publicProjects.relationLabels.usesKnowledgeFrom`)},{value:`DEPENDS_ON`,label:d(`pages.publicProjects.relationLabels.dependsOn`)},{value:`PROVIDES_TO`,label:d(`pages.publicProjects.relationLabels.providesTo`)},{value:`SHARES_CAPABILITY_WITH`,label:d(`pages.publicProjects.relationLabels.sharesCapabilityWith`)},{value:`SUCCESSOR_OF`,label:d(`pages.publicProjects.relationLabels.successorOf`)},{value:`RELATED_TO`,label:d(`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||d(`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 f(`/api/subscriptions/${encodeURIComponent(e.id)}?${t}`),M.notify(d(`pages.publicProjects.unsubscribed`,{name:e.name}))}else await l(`/api/subscriptions`,{personalSpaceId:M.activePersonalSpace?.id,projectId:e.id,providerUrl:e.providerUrl,projectName:e.name}),M.notify(d(`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([p(`/api/projects/${encodeURIComponent(e.id)}/releases?${t}`),p(`/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=d(`pages.publicProjects.deleteNameRequired`);return}U.value=!0,W.value=``;try{let t=new URLSearchParams({providerUrl:e.providerUrl});await f(`/api/projects/${encodeURIComponent(e.id)}?${t}`),N.value=null,V.value=null,M.notify(d(`pages.publicProjects.deleted`,{name:e.name})),await M.refresh()}catch(e){W.value=e instanceof Error?e.message:d(`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(d(`pages.publicProjects.chooseRelationProjects`)));return}try{await l(`/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`?d(`pages.publicProjects.parentRelationSubmitted`):d(`pages.publicProjects.relationCreated`))}catch(e){M.reportError(e)}}function $(e){return e?new Date(e).toLocaleString(ne()):d(`pages.publicProjects.timeNotRecorded`)}return(t,c)=>(o(),m(`section`,ce,[h(`div`,le,[c[8]||=h(`span`,{class:`space-heading-icon`,"aria-hidden":`true`},[h(`span`,{class:`nav-icon nav-icon-public-project`})],-1),h(`div`,null,[h(`p`,null,i(a(d)(`pages.publicProjects.intro`)),1)]),h(`div`,{class:`public-space-stats`,"aria-label":a(d)(`pages.publicProjects.overviewAria`)},[h(`span`,null,[h(`strong`,null,i(G.value.length),1),s(i(a(d)(`pages.publicProjects.discoverable`)),1)]),h(`span`,null,[h(`strong`,null,i(a(M).state?.subscriptions.length??0),1),s(i(a(d)(`pages.publicProjects.subscribedCount`)),1)])],8,ue)]),h(`div`,de,[(o(!0),m(g,null,r(G.value,t=>(o(),m(`article`,{key:Z(t),class:`project-card`},[h(`div`,fe,[h(`div`,null,[c[9]||=h(`p`,{class:`eyebrow`},`PUBLIC PROJECT`,-1),h(`h4`,null,i(t.name),1)]),h(`div`,pe,[t.can_manage?(o(),m(`button`,{key:0,class:`management-action`,type:`button`,onClick:e=>Xe(t)},i(a(d)(`pages.publicProjects.manage`)),9,me)):e(``,!0),h(`div`,he,[h(`strong`,null,i(t.profile?.assessment?.score??`—`),1),h(`span`,null,i(t.profile?.assessment?a(d)(`pages.publicProjects.coverage`):a(d)(`pages.publicProjects.noSummary`)),1)])])]),h(`p`,ge,i(Q(t)),1),h(`div`,_e,[(o(!0),m(g,null,r(t.profile?.sources??[],(e,t)=>(o(),m(`span`,{key:t,class:`status-chip`},i(e.kind??a(d)(`pages.publicProjects.material`)),1))),128)),t.profile?.sources?.length?e(``,!0):(o(),m(`span`,ve,i(a(d)(`pages.publicProjects.noSources`)),1))]),h(`div`,ye,[h(`span`,{class:re([`status-chip`,{owner:t.isOwner}])},i(t.isOwner?`Owner`:t.role??`Reader`),3),h(`span`,be,i(t.isOwner?a(d)(`pages.publicProjects.publishedByYou`):a(d)(`pages.publicProjects.publiclyDiscoverable`)),1),t.current_release?(o(),m(`span`,xe,[h(`strong`,null,i(t.current_release.version),1),h(`span`,null,i($(t.current_release.published_at)),1)])):e(``,!0)]),h(`footer`,Se,[h(`button`,{class:`secondary-action`,type:`button`,onClick:e=>qe(t)},i(K.value.has(Z(t))?a(d)(`pages.publicProjects.unsubscribe`):a(d)(`pages.publicProjects.subscribe`)),9,b),h(`button`,{class:`primary-action`,type:`button`,onClick:e=>Je(t)},i(a(d)(`common.actions.viewDetails`)),9,x)])]))),128)),G.value.length?e(``,!0):(o(),m(`div`,S,i(a(d)(`pages.publicProjects.noProjects`)),1))]),h(`section`,C,[h(`div`,w,[h(`div`,null,[c[10]||=h(`p`,{class:`eyebrow`},`PROJECT RELATIONS`,-1),h(`h3`,null,i(a(d)(`pages.publicProjects.relationsTitle`)),1),h(`p`,null,i(a(d)(`pages.publicProjects.relationsCopy`)),1)]),h(`button`,{class:`primary-action`,type:`button`,disabled:!q.value.length,onClick:c[0]||=e=>L.value=!L.value},i(a(d)(`pages.publicProjects.addRelation`)),9,T)]),L.value?(o(),m(`form`,{key:0,class:`relation-composer relation-composer-form compact-relation-form`,onSubmit:ae($e,[`prevent`])},[h(`label`,null,[s(i(a(d)(`pages.publicProjects.sourceProject`))+` `,1),n(_,{modelValue:R.value,"onUpdate:modelValue":c[1]||=e=>R.value=e,options:He.value,label:a(d)(`pages.publicProjects.sourceProjectLabel`),placeholder:a(d)(`pages.publicProjects.chooseProject`),searchable:``,required:``,onChange:c[2]||=e=>z.value=``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),h(`label`,null,[s(i(a(d)(`pages.publicProjects.relation`))+` `,1),n(_,{modelValue:B.value,"onUpdate:modelValue":c[3]||=e=>B.value=e,options:X.value,label:a(d)(`pages.publicProjects.relationTypeLabel`)},null,8,[`modelValue`,`options`,`label`])]),h(`label`,null,[s(i(a(d)(`pages.publicProjects.targetProject`))+` `,1),n(_,{modelValue:z.value,"onUpdate:modelValue":c[4]||=e=>z.value=e,options:We.value,label:a(d)(`pages.publicProjects.targetProjectLabel`),placeholder:a(d)(`pages.publicProjects.chooseProject`),searchable:``,required:``},null,8,[`modelValue`,`options`,`label`,`placeholder`])]),h(`div`,E,[h(`span`,null,i(a(d)(`pages.publicProjects.preview`)),1),h(`strong`,null,i(Ge.value?.name||a(d)(`pages.publicProjects.sourceProject`))+` `+i(J.value)+` `+i(Ke.value?.name||a(d)(`pages.publicProjects.targetProject`)),1),B.value===`PART_OF`?(o(),m(`p`,D,i(a(d)(`pages.publicProjects.parentConfirmation`)),1)):(o(),m(`p`,O,i(a(d)(`pages.publicProjects.relationBoundary`)),1))]),h(`button`,k,i(a(d)(`pages.publicProjects.addRelation`)),1)],32)):e(``,!0)]),h(`dialog`,{open:!!N.value,class:`project-dialog vue-dialog`},[N.value?(o(),m(`div`,j,[h(`header`,Ce,[h(`div`,null,[c[11]||=h(`p`,{class:`eyebrow`},`PUBLIC PROJECT`,-1),h(`h3`,null,i(N.value.name),1),h(`p`,null,i(Q(N.value)),1)]),h(`button`,{class:`secondary-action`,type:`button`,onClick:c[5]||=e=>N.value=null},i(a(d)(`common.actions.close`)),1)]),h(`section`,we,[c[12]||=h(`p`,{class:`eyebrow`},`LATEST RELEASE`,-1),h(`h4`,null,i(a(d)(`pages.publicProjects.latestRelease`)),1),N.value.current_release?(o(),m(`p`,Te,[h(`strong`,null,i(N.value.current_release.version),1),s(` · `+i($(N.value.current_release.published_at)),1)])):(o(),m(`p`,Ee,i(a(d)(`pages.publicProjects.noRelease`)),1))]),h(`div`,De,[h(`section`,null,[h(`h4`,null,i(a(d)(`pages.publicProjects.releaseHistory`)),1),I.value?(o(),m(`p`,Oe,i(a(d)(`pages.publicProjects.loading`)),1)):e(``,!0),(o(!0),m(g,null,r(P.value,e=>(o(),m(`article`,{key:e.version,class:`project-release-item`},[h(`strong`,null,i(e.version),1),h(`p`,null,i(e.update_summary),1),h(`small`,null,i($(e.published_at)),1)]))),128)),!I.value&&!P.value.length?(o(),m(`p`,ke,i(a(d)(`pages.publicProjects.noReleaseHistory`)),1)):e(``,!0)]),h(`section`,null,[h(`h4`,null,i(a(d)(`pages.publicProjects.relationsTitle`)),1),(o(!0),m(g,null,r(F.value,e=>(o(),m(`article`,{key:e.id,class:`project-detail-relation`},[h(`strong`,null,i(e.relation_type),1),h(`small`,null,i(e.status??`active`),1)]))),128)),!I.value&&!F.value.length?(o(),m(`p`,Ae,i(a(d)(`pages.publicProjects.noRelations`)),1)):e(``,!0)])]),h(`footer`,je,[h(`span`,null,i(a(d)(`pages.publicProjects.contentManagementSeparated`)),1),h(`button`,{class:`primary-action`,type:`button`,onClick:c[6]||=e=>Ye(N.value)},i(a(d)(`pages.publicProjects.viewGraph`)),1)])])):e(``,!0)],8,A),h(`dialog`,{open:!!V.value,class:`project-dialog vue-dialog`},[V.value?(o(),m(`div`,Ne,[h(`header`,Pe,[h(`div`,null,[c[13]||=h(`p`,{class:`eyebrow`},`DESTRUCTIVE ACTION`,-1),h(`h3`,null,i(a(d)(`pages.publicProjects.deleteTitle`)),1),h(`p`,null,i(a(d)(`pages.publicProjects.deleteCopy`)),1)]),h(`button`,{class:`secondary-action`,type:`button`,disabled:U.value,onClick:Ze},i(a(d)(`common.actions.close`)),9,Fe)]),h(`label`,Ie,[s(i(a(d)(`pages.publicProjects.enterFullName`))+` `,1),h(`strong`,null,i(V.value.name),1),ee(h(`input`,{"onUpdate:modelValue":c[7]||=e=>H.value=e,autocomplete:`off`,disabled:U.value},null,8,Le),[[te,H.value]])]),W.value?(o(),m(`p`,Re,i(W.value),1)):e(``,!0),h(`footer`,ze,[h(`span`,null,i(a(d)(`pages.publicProjects.deleteWarning`)),1),h(`button`,{class:`reject`,type:`button`,disabled:!Y.value||U.value,onClick:Qe},i(U.value?a(d)(`pages.publicProjects.deleting`):a(d)(`pages.publicProjects.deletePermanently`)),9,Be)])])):e(``,!0)],8,Me)]))}});export{M as default};
|
|
@@ -1 +0,0 @@
|
|
|
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,U as c,a as l,b as u,d,r as f,t 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";import{l as b}from"./model-C-5RVIJ2.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=t({__name:`ReviewPage`,setup(t){let B=p(),V=c([]),H=c([]),U=c(``),W=c(!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);s(()=>B.state,e=>{e&&(U.value||=G.value[0]?.id??``,J())},{immediate:!0}),s(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 f(`/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 f(`/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 l(`/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 l(`/api/review/${encodeURIComponent(e.id)}/decision`,{projectId:n.id,providerUrl:n.providerUrl,decision:t,note:null}),await X()}catch(e){B.reportError(e)}}return(t,s)=>(o(),m(`section`,x,[h(`div`,S,[h(`h3`,null,i(a(d)(`pages.review.personalTitle`)),1),h(`p`,null,i(a(d)(`pages.review.personalCopy`)),1)]),h(`div`,C,[(o(!0),m(g,null,r(V.value,t=>(o(),m(`article`,{key:t.id,class:`review-item review-item-detailed`},[h(`div`,null,[h(`div`,w,i(a(d)(`pages.review.beforePublic`)),1),h(`h4`,null,i(t.episode.name),1),h(`p`,null,i(t.episode.summary||t.episode.source_description),1),h(`div`,T,[h(`span`,null,i(a(d)(`common.counts.entities`,{count:t.episode.entities?.length??0})),1),h(`span`,null,i(a(d)(`common.counts.relationships`,{count:t.episode.relationships?.length??0})),1),h(`span`,null,i(a(b)(t.created_at)),1)])]),h(`div`,E,[h(`button`,{class:`secondary-action`,type:`button`,onClick:e=>Z(t,`keep_personal`)},i(a(d)(`pages.review.keepPersonal`)),9,D),h(`button`,{class:`reject`,type:`button`,onClick:e=>Z(t,`ignore`)},i(a(d)(`pages.review.ignore`)),9,O),a(B).state?.capabilities?.submitKnowledge?(o(),m(`button`,{key:0,class:`approve`,type:`button`,onClick:e=>Z(t,`submit_public`)},i(a(d)(`pages.review.submitPublic`)),9,k)):e(``,!0)])]))),128)),!W.value&&!V.value.length?(o(),m(`div`,A,i(a(d)(`pages.review.noPersonalDrafts`)),1)):e(``,!0)]),a(B).state?.capabilities?.reviewProposals?(o(),m(`section`,j,[h(`div`,M,[h(`div`,null,[h(`h3`,null,i(a(d)(`pages.review.publicTitle`)),1),h(`p`,null,i(a(d)(`pages.review.publicCopy`)),1)]),n(_,{modelValue:U.value,"onUpdate:modelValue":s[0]||=e=>U.value=e,options:K.value,label:a(d)(`pages.review.projectLabel`),"control-id":`review-project`,searchable:``},null,8,[`modelValue`,`options`,`label`])]),h(`div`,N,[(o(!0),m(g,null,r(H.value,e=>(o(),m(`article`,{key:e.id,class:`review-item`},[h(`div`,null,[h(`div`,P,i(a(d)(`pages.review.maintainerReview`)),1),h(`h4`,null,i(e.episode.name),1),h(`p`,null,i(e.episode.summary||e.episode.source_description),1),h(`div`,F,[h(`span`,null,i(a(b)(e.created_at)),1)])]),h(`div`,I,[h(`button`,{class:`reject`,type:`button`,onClick:t=>Q(e,`reject`)},i(a(d)(`pages.review.reject`)),9,L),h(`button`,{class:`approve`,type:`button`,onClick:t=>Q(e,`approve`)},i(a(d)(`pages.review.approve`)),9,R)])]))),128)),!W.value&&!H.value.length?(o(),m(`div`,z,i(a(d)(`pages.review.noProposals`)),1)):e(``,!0)])])):e(``,!0)]))}});export{B as default};
|