@inkeep/open-knowledge 0.6.0-beta.9 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/THIRD_PARTY_NOTICES.md +37 -1
- package/dist/assets/skills/discovery/SKILL.md +1 -1
- package/dist/assets/skills/project/SKILL.md +101 -33
- package/dist/cli.mjs +40 -40
- package/dist/config-schema.json +20 -0
- package/dist/config.project.schema.json +20 -0
- package/dist/constants-BqW_5Zct.mjs +2 -0
- package/dist/{dist-soQLoIV1.mjs → dist-C3d5vMka.mjs} +152 -61
- package/dist/dist-DHCla-dZ.mjs +1 -0
- package/dist/{git-handle-DwfYp_z--CfyPz4Dz.mjs → git-handle-CjyGVy33-CK0dYQ8y.mjs} +2 -2
- package/dist/git-handle-CjyGVy33-DVACqhWk.mjs +1 -0
- package/dist/index.mjs +1 -1
- package/dist/{init-BG3i7h4P.mjs → init-DbKyc-NP.mjs} +7 -7
- package/dist/init-_Gb8p_KN.mjs +1 -0
- package/dist/loader-BorPcYdC.mjs +1 -0
- package/dist/{loader-4X5eR4wo.mjs → loader-DPtC9EX7.mjs} +3 -3
- package/dist/preview-BSw2DxmP.mjs +1 -0
- package/dist/{preview-fk1DB9JQ.mjs → preview-DKceAysF.mjs} +2 -2
- package/dist/public/assets/ActivityModeContent-f87lu1R1.js +2 -0
- package/dist/public/assets/{ActivityPanelDiffView-BN3fSrLi.js → ActivityPanelDiffView-LNHry3BJ.js} +2 -2
- package/dist/public/assets/ConsentDialogBody-RTxXUjwn.js +2 -0
- package/dist/public/assets/DocumentContext-BVFYhVUK.js +58 -0
- package/dist/public/assets/GraphPanel-0aB3TF2C.js +46 -0
- package/dist/public/assets/McpConsentDialogBody-cnhKG6kN.js +1 -0
- package/dist/public/assets/SettingsDialogBody-B_UH7Jye.js +7 -0
- package/dist/public/assets/{SourceEditor-_oSCmouY.js → SourceEditor-C3ri5HiW.js} +2 -2
- package/dist/public/assets/{_baseFor-BQ6FmUXQ.js → _baseFor-B3FCzyNW.js} +1 -1
- package/dist/public/assets/{agent-presence-DUe_PdKt.js → agent-presence-DxGcS3q2.js} +1 -1
- package/dist/public/assets/{arc-BTYHqK6I.js → arc-GOD6SLHR.js} +1 -1
- package/dist/public/assets/architecture-YZFGNWBL-B2pJrg2X.js +1 -0
- package/dist/public/assets/{architectureDiagram-Q4EWVU46-BeBUNHfZ.js → architectureDiagram-Q4EWVU46-CIVh0TLx.js} +1 -1
- package/dist/public/assets/{blockDiagram-DXYQGD6D-DsdTvw8_.js → blockDiagram-DXYQGD6D-Cg-UHasz.js} +1 -1
- package/dist/public/assets/button-DenIdY-r.js +1 -0
- package/dist/public/assets/{c4Diagram-AHTNJAMY-C-rFnJCR.js → c4Diagram-AHTNJAMY-KFeHAAOO.js} +1 -1
- package/dist/public/assets/channel-BqqURnVG.js +1 -0
- package/dist/public/assets/{checkbox-DlLMG5cc.js → checkbox-BSqPN8L7.js} +1 -1
- package/dist/public/assets/{chunk-2KRD3SAO-C0VEmSSK.js → chunk-2KRD3SAO-ChBquZUZ.js} +1 -1
- package/dist/public/assets/{chunk-336JU56O-gb9mgyWz.js → chunk-336JU56O-DHqaXNrn.js} +2 -2
- package/dist/public/assets/chunk-426QAEUC-CuPmuy8t.js +1 -0
- package/dist/public/assets/{chunk-4BX2VUAB-CqFQlA48.js → chunk-4BX2VUAB-Dagml-_v.js} +1 -1
- package/dist/public/assets/{chunk-4TB4RGXK-SWtNUTYl.js → chunk-4TB4RGXK-QLafKs7A.js} +1 -1
- package/dist/public/assets/chunk-55IACEB6-BRPDx2aU.js +1 -0
- package/dist/public/assets/{chunk-5FUZZQ4R-CwnM4vYi.js → chunk-5FUZZQ4R-DoG5zk7O.js} +1 -1
- package/dist/public/assets/{chunk-5PVQY5BW-D1dRE2Kl.js → chunk-5PVQY5BW--zDnbXdQ.js} +1 -1
- package/dist/public/assets/{chunk-67CJDMHE-DaOHFcoK.js → chunk-67CJDMHE-BDDJCVvR.js} +1 -1
- package/dist/public/assets/{chunk-7N4EOEYR-DxJSpCGX.js → chunk-7N4EOEYR-DcM-tXJf.js} +1 -1
- package/dist/public/assets/{chunk-AA7GKIK3-Ck4Wrqot.js → chunk-AA7GKIK3-CIk9DOam.js} +1 -1
- package/dist/public/assets/{chunk-BSJP7CBP-c353z_ln.js → chunk-BSJP7CBP-CC13npHT.js} +1 -1
- package/dist/public/assets/{chunk-CIAEETIT-fgTeYGb2.js → chunk-CIAEETIT-B7rpgB3I.js} +1 -1
- package/dist/public/assets/{chunk-EDXVE4YY-DgNhZfoF.js → chunk-EDXVE4YY-BfT15Ufb.js} +1 -1
- package/dist/public/assets/{chunk-ENJZ2VHE-BuXqjNcc.js → chunk-ENJZ2VHE-DEtEhITq.js} +1 -1
- package/dist/public/assets/{chunk-FMBD7UC4-c2vVGInH.js → chunk-FMBD7UC4-DXl_nUYs.js} +1 -1
- package/dist/public/assets/{chunk-FOC6F5B3-CH9dNZl0.js → chunk-FOC6F5B3-wEKzMqND.js} +1 -1
- package/dist/public/assets/{chunk-ICPOFSXX-JDKZSS0Z.js → chunk-ICPOFSXX-C8AElYY_.js} +2 -2
- package/dist/public/assets/{chunk-K5T4RW27-DPAjYSpe.js → chunk-K5T4RW27-DcJgbIMU.js} +1 -1
- package/dist/public/assets/{chunk-KGLVRYIC-BKUgXOPp.js → chunk-KGLVRYIC-kNC4I9ls.js} +1 -1
- package/dist/public/assets/{chunk-LIHQZDEY-CWn5kZJ_.js → chunk-LIHQZDEY-B0zYcYPV.js} +1 -1
- package/dist/public/assets/{chunk-ORNJ4GCN-BETATk1q.js → chunk-ORNJ4GCN-S_3Y_0FS.js} +1 -1
- package/dist/public/assets/{chunk-OYMX7WX6-Dj48iVpu.js → chunk-OYMX7WX6-CX3nrwxJ.js} +1 -1
- package/dist/public/assets/chunk-QZHKN3VN-CTZ4su3-.js +1 -0
- package/dist/public/assets/{chunk-U2HBQHQK-CHYJZdMm.js → chunk-U2HBQHQK-CfAyyLJz.js} +1 -1
- package/dist/public/assets/{chunk-X2U36JSP-CXEQobKO.js → chunk-X2U36JSP-CmACymAN.js} +1 -1
- package/dist/public/assets/{chunk-XPW4576I-BQtjckSw.js → chunk-XPW4576I-D1s3NdKZ.js} +1 -1
- package/dist/public/assets/{chunk-YZCP3GAM-CjxtydJy.js → chunk-YZCP3GAM-CiWxV9XS.js} +1 -1
- package/dist/public/assets/{chunk-ZZ45TVLE-D0y4RiW0.js → chunk-ZZ45TVLE-B7t5_MqN.js} +1 -1
- package/dist/public/assets/classDiagram-6PBFFD2Q-DrN_pUa5.js +1 -0
- package/dist/public/assets/classDiagram-v2-HSJHXN6E-C1MJ1Ukt.js +1 -0
- package/dist/public/assets/clone-CecJCxEU.js +1 -0
- package/dist/public/assets/{collapsible-DfUFsfqv.js → collapsible-BhpeB6tu.js} +1 -1
- package/dist/public/assets/compiler-runtime-Cs91PcD2.js +1 -0
- package/dist/public/assets/config-validation-events-BQa42yM4.js +11 -0
- package/dist/public/assets/{cose-bilkent-S5V4N54A-D7YGD8wq.js → cose-bilkent-S5V4N54A-BjJ-OKPr.js} +1 -1
- package/dist/public/assets/{dagre-DMcENKoE.js → dagre-BuFRtOcC.js} +1 -1
- package/dist/public/assets/{dagre-KV5264BT-BqnXUWtP.js → dagre-KV5264BT-BpBW6R71.js} +1 -1
- package/dist/public/assets/{diagram-5BDNPKRD-vW7QcnnV.js → diagram-5BDNPKRD-B5phtkJp.js} +1 -1
- package/dist/public/assets/{diagram-G4DWMVQ6-Da6SwXmu.js → diagram-G4DWMVQ6-tjReW6yx.js} +1 -1
- package/dist/public/assets/{diagram-MMDJMWI5-dI7u2q2_.js → diagram-MMDJMWI5-b4CgKryF.js} +1 -1
- package/dist/public/assets/{diagram-TYMM5635-CPHmeIdk.js → diagram-TYMM5635-D5B0g2lj.js} +1 -1
- package/dist/public/assets/dialog-C1dBa8-m.js +45 -0
- package/dist/public/assets/{dist-BPdgMMrT.js → dist-CadHdAvi.js} +1 -1
- package/dist/public/assets/{dist-Wjnnj7ws.js → dist-CdAufVHw.js} +1 -1
- package/dist/public/assets/{dist-rBb7QGSM.js → dist-Cwt7KtW7.js} +1 -1
- package/dist/public/assets/{dist-DBGkcnST.js → dist-DRBAXDc3.js} +1 -1
- package/dist/public/assets/{dist-ChXyuS-V.js → dist-DkR43q3h.js} +1 -1
- package/dist/public/assets/{dist-BzP1Tn1M.js → dist-sw9fzKjM.js} +1 -1
- package/dist/public/assets/{dist-J4_ocm9a.js → dist-y5PvfJVO.js} +1 -1
- package/dist/public/assets/{erDiagram-SMLLAGMA-DitwrtLX.js → erDiagram-SMLLAGMA-CRJz10Jv.js} +1 -1
- package/dist/public/assets/{flatten-ptFIxnDZ.js → flatten-BWAerz3O.js} +1 -1
- package/dist/public/assets/{flowDiagram-DWJPFMVM-C0gFyX_S.js → flowDiagram-DWJPFMVM-BDCJTgJ7.js} +1 -1
- package/dist/public/assets/{ganttDiagram-T4ZO3ILL-tiotNOZI.js → ganttDiagram-T4ZO3ILL-cPQKlGYc.js} +1 -1
- package/dist/public/assets/gitGraph-7Q5UKJZL-BMann5g7.js +1 -0
- package/dist/public/assets/{gitGraphDiagram-UUTBAWPF-DMvh5XLj.js → gitGraphDiagram-UUTBAWPF-BMyjc352.js} +1 -1
- package/dist/public/assets/{graphlib-BrqdZy8t.js → graphlib-BU8FnRz1.js} +1 -1
- package/dist/public/assets/index-7FUClmdK.css +1 -0
- package/dist/public/assets/index-ItRM_S62.js +1915 -0
- package/dist/public/assets/info-OMHHGYJF-CKMkwFH6.js +1 -0
- package/dist/public/assets/{infoDiagram-42DDH7IO-DKk8uvIK.js → infoDiagram-42DDH7IO-BZ6v5y-j.js} +1 -1
- package/dist/public/assets/{isEmpty-Dff4GQVw.js → isEmpty-Cairwk5V.js} +1 -1
- package/dist/public/assets/isSymbol-BKUBGC2u.js +1 -0
- package/dist/public/assets/{ishikawaDiagram-UXIWVN3A-CdKANno1.js → ishikawaDiagram-UXIWVN3A-DA7_P2Up.js} +1 -1
- package/dist/public/assets/{journeyDiagram-VCZTEJTY-DbR4q1G1.js → journeyDiagram-VCZTEJTY-CzZoB161.js} +1 -1
- package/dist/public/assets/{kanban-definition-6JOO6SKY-dx60koQU.js → kanban-definition-6JOO6SKY-DKg7pXv1.js} +1 -1
- package/dist/public/assets/{label-D2tjsHNp.js → label-DCMZaJ38.js} +1 -1
- package/dist/public/assets/{line--3PJLF7I.js → line-DGc-MCyQ.js} +1 -1
- package/dist/public/assets/{linear-B5hCL-s4.js → linear-D6wzOaQP.js} +1 -1
- package/dist/public/assets/{mermaid-parser.core-DfyX5Z2V.js → mermaid-parser.core-Bm2u0Ges.js} +2 -2
- package/dist/public/assets/{mermaid.core-3naqvDT_.js → mermaid.core-DRx0wZe0.js} +3 -3
- package/dist/public/assets/{mindmap-definition-QFDTVHPH-B6GzcY6Y.js → mindmap-definition-QFDTVHPH-C9GRZxO6.js} +1 -1
- package/dist/public/assets/{now-y3Cm704C.js → now-BN_Nj6nz.js} +1 -1
- package/dist/public/assets/{ordinal-CdtiT3iH.js → ordinal-Dk6d5Y-0.js} +1 -1
- package/dist/public/assets/packet-4T2RLAQJ-DXn_0fd3.js +1 -0
- package/dist/public/assets/{panel-CxlToFCs.js → panel-BNBODYwB.js} +1 -1
- package/dist/public/assets/pie-ZZUOXDRM-BdZBZPW9.js +1 -0
- package/dist/public/assets/{pieDiagram-DEJITSTG-DpAjvB-E.js → pieDiagram-DEJITSTG-L6I3ft9Z.js} +1 -1
- package/dist/public/assets/prop-types-C7ZcPhvT.js +495 -0
- package/dist/public/assets/{propagation-api-CobBjsTC.js → propagation-api-3kmMXRwS.js} +1 -1
- package/dist/public/assets/{quadrantDiagram-34T5L4WZ-Cfy7zW3N.js → quadrantDiagram-34T5L4WZ-Dp2IeEPC.js} +1 -1
- package/dist/public/assets/radar-PYXPWWZC-yUE2OrUV.js +1 -0
- package/dist/public/assets/{reduce-C8tvPXVb.js → reduce-CSWSFqzz.js} +1 -1
- package/dist/public/assets/{requirementDiagram-MS252O5E-Bq0qocwq.js → requirementDiagram-MS252O5E-BxNWyIZg.js} +1 -1
- package/dist/public/assets/{sankeyDiagram-XADWPNL6-Cs_gUjif.js → sankeyDiagram-XADWPNL6-CRn0_xkw.js} +1 -1
- package/dist/public/assets/{sequenceDiagram-FGHM5R23-mAj4_C_D.js → sequenceDiagram-FGHM5R23-Drkjb1j4.js} +1 -1
- package/dist/public/assets/{src-BqeO7p9A.js → src-DZeiyxTL.js} +1 -1
- package/dist/public/assets/{stateDiagram-FHFEXIEX-Dl7UQcWR.js → stateDiagram-FHFEXIEX-BBUFKS0u.js} +1 -1
- package/dist/public/assets/stateDiagram-v2-QKLJ7IA2-BtYsWsIg.js +1 -0
- package/dist/public/assets/target-navigation-intent-B_XxwO2E.js +1 -0
- package/dist/public/assets/{telemetry-impl-4gFdQtY5.js → telemetry-impl-DPRMO_b_.js} +2 -2
- package/dist/public/assets/{textarea-CzzwWKq0.js → textarea-C_bHQrXh.js} +1 -1
- package/dist/public/assets/{timeline-definition-GMOUNBTQ-BsJlKEZE.js → timeline-definition-GMOUNBTQ-CLoe9y-z.js} +1 -1
- package/dist/public/assets/toggle-group-vVm0xmLD.js +1 -0
- package/dist/public/assets/treeView-SZITEDCU-BjJ_gnFc.js +1 -0
- package/dist/public/assets/treemap-W4RFUUIX-DiV984fD.js +1 -0
- package/dist/public/assets/typing-burst-detector-CC-taYRN.js +2 -0
- package/dist/public/assets/{vennDiagram-DHZGUBPP-8a9bTsJc.js → vennDiagram-DHZGUBPP-q2zdiy4F.js} +1 -1
- package/dist/public/assets/wardley-RL74JXVD-DbPCtCHV.js +1 -0
- package/dist/public/assets/{wardleyDiagram-NUSXRM2D-C_5vGuXg.js → wardleyDiagram-NUSXRM2D-Njg6YHso.js} +1 -1
- package/dist/public/assets/{xychartDiagram-5P7HB3ND-C-11ks2d.js → xychartDiagram-5P7HB3ND-Ct8Wgp45.js} +1 -1
- package/dist/public/index.html +28 -29
- package/dist/{repair-launch-json-ChOioNjY.mjs → repair-launch-json-C0A-MS1q.mjs} +2 -2
- package/dist/{repair-mcp-configs-KXG6sJju.mjs → repair-mcp-configs-C-anXKkD.mjs} +2 -2
- package/dist/schemas/v0/config.project.schema.json +20 -0
- package/dist/{server-lock-D7DXNVql-BRVVzA6T.mjs → server-lock-BniQ3qki-CadPGoZN.mjs} +1 -1
- package/dist/server-lock-BniQ3qki-DjKtnzVr.mjs +1 -0
- package/dist/{src-C-7gHcnB.mjs → src-D4AydmJF.mjs} +2 -2
- package/dist/{start-vBx0y7gg.mjs → start-BW-lqkFX.mjs} +2 -2
- package/dist/start-CK8Xftdg.mjs +1 -0
- package/package.json +2 -2
- package/dist/constants-CkYsa36O.mjs +0 -2
- package/dist/dist-7_PKsuCz.mjs +0 -1
- package/dist/git-handle-DwfYp_z--DreW3fNC.mjs +0 -1
- package/dist/init-CGZULhvc.mjs +0 -1
- package/dist/loader-DOJXinKb.mjs +0 -1
- package/dist/preview-DCei46zt.mjs +0 -1
- package/dist/public/assets/ActivityModeContent-DMKML_zC.js +0 -2
- package/dist/public/assets/ConsentDialogBody-C5uHYfEW.js +0 -2
- package/dist/public/assets/DocumentContext-CP8suU6i.js +0 -62
- package/dist/public/assets/GraphPanel-Dk9s6BR5.js +0 -46
- package/dist/public/assets/McpConsentDialogBody-BfIuibLb.js +0 -1
- package/dist/public/assets/SettingsDialogBody-DD8SsPLc.js +0 -7
- package/dist/public/assets/architecture-YZFGNWBL-haHjZ-W1.js +0 -1
- package/dist/public/assets/button-JrGyO3-P.js +0 -1
- package/dist/public/assets/channel-BrrATp5X.js +0 -1
- package/dist/public/assets/chunk-426QAEUC-WS9k1tU2.js +0 -1
- package/dist/public/assets/chunk-55IACEB6-mJDPihNE.js +0 -1
- package/dist/public/assets/chunk-QZHKN3VN-B5CMAE_s.js +0 -1
- package/dist/public/assets/classDiagram-6PBFFD2Q-CQWW9Gah.js +0 -1
- package/dist/public/assets/classDiagram-v2-HSJHXN6E-BLv6Pgu5.js +0 -1
- package/dist/public/assets/clone-bY7YorPK.js +0 -1
- package/dist/public/assets/compiler-runtime-CVnuRdak.js +0 -1
- package/dist/public/assets/config-validation-events-OLcd2xaS.js +0 -10
- package/dist/public/assets/dialog-bA5Nvc2p.js +0 -45
- package/dist/public/assets/dist-CQw2y-s3.js +0 -1
- package/dist/public/assets/doc-hash-BrKkCdCz.js +0 -423
- package/dist/public/assets/gitGraph-7Q5UKJZL-EPtzLtdn.js +0 -1
- package/dist/public/assets/index-CXzfIokG.css +0 -1
- package/dist/public/assets/index-DoV-kWhK.js +0 -1916
- package/dist/public/assets/info-OMHHGYJF-DhGHQOTJ.js +0 -1
- package/dist/public/assets/isSymbol-DIRIUNhN.js +0 -1
- package/dist/public/assets/packet-4T2RLAQJ-dOkbaGJi.js +0 -1
- package/dist/public/assets/pie-ZZUOXDRM-7mxWmZMD.js +0 -1
- package/dist/public/assets/radar-PYXPWWZC-CYrvwt0c.js +0 -1
- package/dist/public/assets/stateDiagram-v2-QKLJ7IA2-BBPg5CA6.js +0 -1
- package/dist/public/assets/target-navigation-intent-B5Xuyiwx.js +0 -1
- package/dist/public/assets/toggle-group-Dzandm58.js +0 -1
- package/dist/public/assets/treeView-SZITEDCU-bf7fN5vg.js +0 -1
- package/dist/public/assets/treemap-W4RFUUIX-DeijdxYt.js +0 -1
- package/dist/public/assets/typing-burst-detector-tbQ3pXg5.js +0 -2
- package/dist/public/assets/wardley-RL74JXVD-XbGOizT8.js +0 -1
- package/dist/server-lock-D7DXNVql-B5nINglj.mjs +0 -1
- package/dist/start-CNPhu259.mjs +0 -1
- /package/dist/public/assets/{__vite-browser-external-CCyf2WTU.js → __vite-browser-external-Bet_nOzq.js} +0 -0
- /package/dist/public/assets/{array-B4rubdDx.js → array-DfeqBzds.js} +0 -0
- /package/dist/public/assets/{colors-DTkp5rhC.js → colors-CuFmRbNJ.js} +0 -0
- /package/dist/public/assets/{cytoscape.esm-lL68JtBB.js → cytoscape.esm-C3hcpWGW.js} +0 -0
- /package/dist/public/assets/{defaultLocale-VDKImYxX.js → defaultLocale-CmG7Nywc.js} +0 -0
- /package/dist/public/assets/{dist-Df8SLnPf.js → dist-GFox5lpz.js} +0 -0
- /package/dist/public/assets/{go-D1ad2i41.js → go-BjDSeE19.js} +0 -0
- /package/dist/public/assets/{init-B4uw1rya.js → init-D-V7N9g_.js} +0 -0
- /package/dist/public/assets/{isObjectLike-DkPsJ8ZC.js → isObjectLike-HLvQwJYx.js} +0 -0
- /package/dist/public/assets/{katex-qwlL5fSd.js → katex-DX-tM4Fr.js} +0 -0
- /package/dist/public/assets/{mcp-consent-store-DncCuarR.js → mcp-consent-store-19Boxoxe.js} +0 -0
- /package/dist/public/assets/{min-DTUJKQNu.js → min-CHzARyU6.js} +0 -0
- /package/dist/public/assets/{path-flVp2dgl.js → path-Bf8MP5yP.js} +0 -0
- /package/dist/public/assets/{pdf-zy6UKR6F.js → pdf-wFLJduM2.js} +0 -0
- /package/dist/public/assets/{pdf.worker-CETvIAHl.js → pdf.worker-CP44mBOj.js} +0 -0
- /package/dist/public/assets/{project-paths-6yNxfBJd.js → project-paths-eyh51nmQ.js} +0 -0
- /package/dist/public/assets/{rough.esm-pmFy2cex.js → rough.esm-Di0388iR.js} +0 -0
- /package/dist/public/assets/{shell-FUK9YCOo.js → shell-184Lov7C.js} +0 -0
- /package/dist/public/assets/{src-CdWhPaRj.js → src-Dz70a8sm.js} +0 -0
- /package/dist/public/assets/{stex-BUy0wSq4.js → stex-DxnLy7rA.js} +0 -0
- /package/dist/public/assets/{trace-api-3dczfLSc.js → trace-api-CiCjX4Sz.js} +0 -0
- /package/dist/public/assets/{w3c-keyname-BSTW6KzM.js → w3c-keyname-B5t0fahT.js} +0 -0
|
@@ -1510,7 +1510,7 @@ Homepage: https://github.com/Brooooooklyn/canvas
|
|
|
1510
1510
|
|
|
1511
1511
|
Copyright (c) 2020 lynweklm@gmail.com
|
|
1512
1512
|
|
|
1513
|
-
### `@napi-rs/keyring@1.
|
|
1513
|
+
### `@napi-rs/keyring@1.3.0`
|
|
1514
1514
|
Homepage: https://github.com/Brooooooklyn/keyring-node
|
|
1515
1515
|
|
|
1516
1516
|
Copyright (c) 2020 N-API for Rust
|
|
@@ -2459,6 +2459,11 @@ Homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/p
|
|
|
2459
2459
|
|
|
2460
2460
|
Copyright (c) Microsoft Corporation.
|
|
2461
2461
|
|
|
2462
|
+
### `@types/react@19.2.14`
|
|
2463
|
+
Homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react
|
|
2464
|
+
|
|
2465
|
+
Copyright (c) Microsoft Corporation.
|
|
2466
|
+
|
|
2462
2467
|
### `@types/statuses@2.0.6`
|
|
2463
2468
|
Homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/statuses
|
|
2464
2469
|
|
|
@@ -2489,6 +2494,11 @@ Homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/v
|
|
|
2489
2494
|
|
|
2490
2495
|
Copyright (c) Microsoft Corporation.
|
|
2491
2496
|
|
|
2497
|
+
### `@types/vimeo__player@2.18.3`
|
|
2498
|
+
Homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/vimeo__player
|
|
2499
|
+
|
|
2500
|
+
Copyright (c) Microsoft Corporation.
|
|
2501
|
+
|
|
2492
2502
|
### `@types/yargs@17.0.35`
|
|
2493
2503
|
Homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/yargs
|
|
2494
2504
|
|
|
@@ -2499,6 +2509,11 @@ Homepage: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/y
|
|
|
2499
2509
|
|
|
2500
2510
|
Copyright (c) Microsoft Corporation.
|
|
2501
2511
|
|
|
2512
|
+
### `@u-wave/react-vimeo@0.9.12`
|
|
2513
|
+
Homepage: https://github.com/u-wave/react-vimeo#readme
|
|
2514
|
+
|
|
2515
|
+
Copyright (c) 2016 Renée Kooi
|
|
2516
|
+
|
|
2502
2517
|
### `@uiw/codemirror-theme-basic@4.25.9`
|
|
2503
2518
|
Homepage: https://uiwjs.github.io/react-codemirror/#/theme/data/basic/light
|
|
2504
2519
|
|
|
@@ -2514,6 +2529,11 @@ Homepage: https://github.com/upsetjs/venn.js
|
|
|
2514
2529
|
|
|
2515
2530
|
Copyright (c) 2013 Ben Frederickson Copyright (c) 2021 Samuel Gratzl
|
|
2516
2531
|
|
|
2532
|
+
### `@vimeo/player@2.30.4`
|
|
2533
|
+
Homepage: https://github.com/vimeo/player.js
|
|
2534
|
+
|
|
2535
|
+
Copyright (c) 2016 [Vimeo](https://vimeo.com)
|
|
2536
|
+
|
|
2517
2537
|
### `accepts@2.0.0`
|
|
2518
2538
|
Homepage: https://github.com/jshttp/accepts
|
|
2519
2539
|
|
|
@@ -2913,6 +2933,11 @@ Homepage: https://mths.be/cssesc
|
|
|
2913
2933
|
|
|
2914
2934
|
_(No LICENSE file in package; SPDX identifier in `package.json` is the sole declared grant.)_
|
|
2915
2935
|
|
|
2936
|
+
### `csstype@3.2.3`
|
|
2937
|
+
Homepage: https://github.com/frenic/csstype
|
|
2938
|
+
|
|
2939
|
+
Copyright (c) 2017-2018 Fredrik Nicol
|
|
2940
|
+
|
|
2916
2941
|
### `cytoscape@3.33.2`
|
|
2917
2942
|
Homepage: http://js.cytoscape.org
|
|
2918
2943
|
|
|
@@ -4265,6 +4290,11 @@ Homepage: https://github.com/inspiredware/napi-build-utils#readme
|
|
|
4265
4290
|
|
|
4266
4291
|
Copyright (c) 2018 inspiredware
|
|
4267
4292
|
|
|
4293
|
+
### `native-promise-only@0.8.1`
|
|
4294
|
+
Homepage: http://github.com/getify/native-promise-only
|
|
4295
|
+
|
|
4296
|
+
_(No LICENSE file in package; SPDX identifier in `package.json` is the sole declared grant.)_
|
|
4297
|
+
|
|
4268
4298
|
### `negotiator@1.0.0`
|
|
4269
4299
|
Homepage: https://github.com/jshttp/negotiator
|
|
4270
4300
|
|
|
@@ -5501,6 +5531,11 @@ Homepage: https://github.com/BerkeleyTrue/warning
|
|
|
5501
5531
|
|
|
5502
5532
|
Copyright (c) 2013-present, Facebook, Inc.
|
|
5503
5533
|
|
|
5534
|
+
### `weakmap-polyfill@2.0.4`
|
|
5535
|
+
Homepage: https://github.com/polygonplanet/weakmap-polyfill
|
|
5536
|
+
|
|
5537
|
+
Copyright (c) 2015-2021 polygonplanet
|
|
5538
|
+
|
|
5504
5539
|
### `web-namespaces@2.0.1`
|
|
5505
5540
|
Homepage: https://github.com/wooorm/web-namespaces
|
|
5506
5541
|
|
|
@@ -6262,6 +6297,7 @@ The following MIT-licensed packages are patched in this repository via Bun's `pa
|
|
|
6262
6297
|
| Package | Patch file |
|
|
6263
6298
|
| --- | --- |
|
|
6264
6299
|
| `@handlewithcare/remark-prosemirror@0.1.5` | `patches/@handlewithcare%2Fremark-prosemirror@0.1.5.patch` |
|
|
6300
|
+
| `@pierre/trees@1.0.0-beta.3` | `patches/@pierre%2Ftrees@1.0.0-beta.3.patch` |
|
|
6265
6301
|
| `@tiptap/extension-drag-handle@3.22.3` | `patches/@tiptap%2Fextension-drag-handle@3.22.3.patch` |
|
|
6266
6302
|
| `@tiptap/y-tiptap@3.0.3` | `patches/@tiptap%2Fy-tiptap@3.0.3.patch` |
|
|
6267
6303
|
| `react-medium-image-zoom@5.4.3` | `patches/react-medium-image-zoom@5.4.3.patch` |
|
|
@@ -3,7 +3,7 @@ name: open-knowledge-discovery
|
|
|
3
3
|
description: "Read when the user asks what Open Knowledge is, wants to install it on a repository, wants to share an Open Knowledge project with collaborators, or asks how `ok init` / `ok install-skill` / OK Desktop set up a project. Do NOT load to perform Open Knowledge reads/writes — the runtime guidance for editing markdown inside an initialized OK project ships as a separate project-local skill at `.claude/skills/open-knowledge/` whenever `ok init` runs. If the user appears to be editing markdown inside a `.ok/` project and this is the only OK skill loaded, advise them to re-run `ok init` to install the project-local skill."
|
|
4
4
|
compatibility: "Any agent host — no MCP server required. Pure discovery + install guidance."
|
|
5
5
|
metadata:
|
|
6
|
-
version: "0.6.0
|
|
6
|
+
version: "0.6.0"
|
|
7
7
|
author: "Inkeep"
|
|
8
8
|
repository: "https://github.com/inkeep/open-knowledge"
|
|
9
9
|
---
|
|
@@ -3,7 +3,7 @@ name: open-knowledge
|
|
|
3
3
|
description: "MUST invoke before reading or editing any `.md` / `.mdx` file, and before any `mcp__open-knowledge__*` tool call (`exec`, `search`, `write_document`, `edit_document`, and the rest). This skill is installed into the repository by `ok init`, so its presence alone means this is an Open Knowledge project — its runtime contract governs every markdown file here, with no need to probe for a `.ok/` directory. Authoritative agent-runtime contract; supersedes the overlapping MCP server `instructions` echo."
|
|
4
4
|
compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires Open Knowledge MCP server + code execution."
|
|
5
5
|
metadata:
|
|
6
|
-
version: "0.6.0
|
|
6
|
+
version: "0.6.0"
|
|
7
7
|
author: "Inkeep"
|
|
8
8
|
repository: "https://github.com/inkeep/open-knowledge"
|
|
9
9
|
---
|
|
@@ -19,17 +19,18 @@ Open Knowledge (OK) is a markdown-CRDT collaboration platform exposed via MCP. T
|
|
|
19
19
|
|
|
20
20
|
1. **Reads:** `exec("cat …")` for a single doc, `exec("ls -A …")` for a directory (with folder defaults + template menu), `exec("grep …")` for literal, `search` for ranked retrieval. Native `Read` / `Grep` only on source code (`.ts` / `.py` / …), never on in-scope `.md` / `.mdx`.
|
|
21
21
|
2. **Writes:** `write_document` for new or full-replace, `edit_document` for body-only find/replace, `edit_frontmatter` for 1-2 frontmatter keys (JSON Merge Patch — preferred). Full frontmatter rewrites use `write_document({ position: "replace" })`. `edit_document` rejects frontmatter (HTTP 400).
|
|
22
|
-
3. **Preview:** every OK
|
|
22
|
+
3. **Preview:** every OK read/write response carries a route-only `previewUrl` (`/#/<doc>`, no host:port). If you have a `preview_*` tool, call `preview_start("open-knowledge-ui")`; otherwise call `get_preview_url` once for the full browser URL and open it in your own in-app browser. Surface to the user on a `start-ui` warning (no UI running). Don't `preview_screenshot` to confirm edits — the CRDT tool response is the confirmation.
|
|
23
23
|
4. **Workflow tools** (`ingest` / `research` / `consolidate` / `discover`) return procedural guides, not data. Use them when the work fits the layer; follow their numbered steps.
|
|
24
24
|
|
|
25
25
|
Everything below is depth. Read on demand.
|
|
26
26
|
|
|
27
|
-
## Tool index —
|
|
27
|
+
## Tool index — 22 tools
|
|
28
28
|
|
|
29
29
|
The full MCP surface, grouped by risk-level. Every tool's `kind` / `action` set is single-risk-level (never a read and a write behind one discriminator).
|
|
30
30
|
|
|
31
|
-
- **Reads** — `exec` (primary; shell-style `cat`/`ls`/`grep`/`find` with frontmatter + backlink + history enrichment), `search` (ranked, BM25 + recency), `get_history` (versions for a doc), `links` (`kind: 'backlinks'|'forward'|'dead'|'orphans'|'hubs'|'suggest'`), `get_config` (resolved config), `get_components` (canonical component schemas).
|
|
31
|
+
- **Reads** — `exec` (primary; shell-style `cat`/`ls`/`grep`/`find` with frontmatter + backlink + history enrichment), `search` (ranked, BM25 + recency), `get_history` (versions for a doc), `links` (`kind: 'backlinks'|'forward'|'dead'|'orphans'|'hubs'|'suggest'`), `get_config` (resolved config), `get_components` (canonical component JSX schemas), `get_authoring_palette` (markdown-native authoring forms + themed `html preview` embed starters + theme tokens), `get_preview_url` (browser-reachable preview URL on demand).
|
|
32
32
|
- **Writes** — `write_document` (new or full-replace; supports `template:` instantiation), `edit_document` (body-only find/replace), `edit_frontmatter` (1-2 keys via RFC 7396 JSON Merge Patch — preferred), `delete_document`, `rename` (probes file vs folder; rewrites referrers), `version` (`action: 'save'|'rollback'`), `folder_config` (`action: 'set-rule'|'write-template'|'delete-template'`).
|
|
33
|
+
- **GitHub-sync conflicts** — `list_conflicts` (enumerate), `get_conflict_content` (base/ours/theirs stages + lifecycle), `resolve_conflict` (write a chosen resolution + commit; destructive). Mutating writes against a doc in conflict return RFC 9457 `urn:ok:error:doc-in-conflict` (409); `exec("cat …")` returns `lifecycle: {status, reason} | null` so you can detect the state proactively. See *Conflict-aware writes*.
|
|
33
34
|
- **Workflow** — `ingest`, `research`, `consolidate`, `discover` (return procedural guides, not data).
|
|
34
35
|
|
|
35
36
|
Tools NOT in OK MCP (they belong to your agent host): `preview_start`, `preview_screenshot`, `WebFetch`, `WebSearch`, native `Read` / `Grep` / `Glob` / `Edit`. The STOP rule below governs which of those you may use on in-scope markdown.
|
|
@@ -61,34 +62,38 @@ Why: native tools skip frontmatter, backlinks, shadow-repo activity, and project
|
|
|
61
62
|
|
|
62
63
|
## Preview — open the browser at session start
|
|
63
64
|
|
|
64
|
-
|
|
65
|
+
The user watches your edits land in a live browser preview. Open it once at session start, then keep working. Re-navigate only when the user asks to open a different doc, or to land them on a finished deliverable (see below) — not to re-check your own edits.
|
|
65
66
|
|
|
66
|
-
**
|
|
67
|
+
**End a turn on the deliverable, not your scratch space.** Keep the preview steady *during* a multi-doc task — don't yank it around to re-check your own edits. But when a turn created or substantially changed user-facing docs, navigate the preview to the primary deliverable before you hand back: the hub / overview / index page when you created several docs, or the changed doc when you changed one. Don't step the user through every supporting source card — the user is watching, so leave them on the result.
|
|
67
68
|
|
|
68
|
-
|
|
69
|
-
- **Claude Code Desktop**: call `preview_start("open-knowledge-ui")` (host tool, not OK MCP) — and nothing else. Do NOT read, diagnose, or edit `.claude/launch.json`; that file is host-managed config, and the OK ui lock-collision proxy handles the UI-already-running case automatically. If `preview_start` fails, surface the `previewUrl` from any recent OK tool response and report the issue to the user — do not try to "fix" `launch.json`.
|
|
70
|
-
- **Stdio-only hosts**: surface the URL in chat; `open <url>` (macOS) if the host can shell out.
|
|
69
|
+
**`previewUrl` is a route, not a URL to open.** Every read response (per-doc, on `exec` / `search` / `links` rows) and every write response carries a `previewUrl` — a route fragment like `/#/specs/foo/SPEC`, with **no scheme, host, or port**. It identifies *which doc* to preview, not a URL to hand a browser by itself. Never construct or guess preview URLs.
|
|
71
70
|
|
|
72
|
-
**
|
|
71
|
+
**Pick how to open the preview by tool capability — not by host name.** Look at the tools actually available to you this session:
|
|
72
|
+
|
|
73
|
+
- **You have a `preview_*` tool** (e.g. `preview_start`) → call `preview_start("open-knowledge-ui")` and nothing else. The pane supplies its own origin; you never need a URL. Do NOT also call `get_preview_url`. Do NOT read, diagnose, or edit `.claude/launch.json` — that file is host-managed, and the OK lock-collision proxy handles the UI-already-running case automatically. If `preview_start` fails, report it to the user; do not try to "fix" `launch.json`.
|
|
74
|
+
- **No `preview_*` tool, but you have an in-app / built-in browser tool** → call `get_preview_url` once to get the full browser URL (`{ url, baseUrl, running }`), then navigate your **in-app browser** to `url`. Pass a `docName` to `get_preview_url` to jump straight to a doc, or omit it for the UI root.
|
|
75
|
+
- **No browser tool at all** (a stdio host such as the Codex CLI, which has no embedded browser) → call `get_preview_url`, then `open <url>` in the system browser as a last resort, and say so plainly to the user ("opening the preview in your system browser — this host has no in-app browser"). The system browser is the fallback, never the default.
|
|
76
|
+
|
|
77
|
+
**Opening or reading a file IS a preview navigation.** On any "open `<file>`" / "read `<file>`" request, navigate the browser to that doc's `previewUrl` route from the tool response — not a separate fetch, not a fresh system-browser launch.
|
|
78
|
+
|
|
79
|
+
**Four signals to check if the preview is already attached** (read these from each write response):
|
|
73
80
|
|
|
74
81
|
1. You opened/navigated earlier this session → don't reopen.
|
|
75
|
-
2. Write response has `previewUrl` (non-null) and NO `warning` → a browser is attached somewhere; do nothing.
|
|
76
|
-
3. `warning: { action: "attach-preview-once", previewUrl, message }` → UI reachable, no browser attached; navigate one-shot.
|
|
82
|
+
2. Write response has `previewUrl` (non-null route) and NO `warning` → a browser is attached somewhere; do nothing.
|
|
83
|
+
3. `warning: { action: "attach-preview-once", previewUrl, message }` → UI reachable, no browser attached; navigate one-shot (`preview_start`, or `get_preview_url` → in-app browser).
|
|
77
84
|
4. `warning: { action: "start-ui", previewUrl: null, message }` → no UI running anywhere. Surface the message verbatim — recovery options are in the in-band copy. Don't loop on retries.
|
|
78
85
|
|
|
79
86
|
Warnings fire at most once per session in the fresh-start case.
|
|
80
87
|
|
|
81
|
-
**`previewUrl: null` only means "no UI reachable" on the three attach-warning tools: `write_document` / `edit_document` / `edit_frontmatter`.** Workflow tools return prose and don't carry `previewUrl`. `delete_document` / `rename` emit `previousPreviewUrl` (different field, for closing stale tabs) and don't fire attach warnings.
|
|
82
|
-
|
|
83
|
-
**Always read `previewUrl` from the latest write response.** Don't cache the session-start value — Electron quit/reopen (or `ok ui` restart) can change the port; the resolver picks up the new port automatically.
|
|
88
|
+
**`previewUrl: null` only means "no UI reachable" on the three attach-warning tools: `write_document` / `edit_document` / `edit_frontmatter`.** Workflow tools return prose and don't carry `previewUrl`. `delete_document` / `rename` emit `previousPreviewUrl` (different field, for closing stale tabs) and don't fire attach warnings. `get_preview_url` reports `running: false` + `url: null` when no UI is running.
|
|
84
89
|
|
|
85
|
-
If you see `"Hocuspocus server is not running"`, run `ok start` and retry.
|
|
90
|
+
If you see `"Hocuspocus server is not running"`, run `ok start` and retry.
|
|
86
91
|
|
|
87
|
-
OK Electron and `ok ui` share `ui.lock
|
|
92
|
+
OK Electron and `ok ui` share `ui.lock`; when a second UI binds a different port, the OK lock-collision proxy bridges it to the live server transparently. That is exactly why `previewUrl` is route-only — the port behind the proxy is not the agent's to use. **Do not nudge the user to quit OK Electron to free a port** — the proxy handles it, and quitting tears down a UI in active use.
|
|
88
93
|
|
|
89
|
-
**The preview is read-only for the agent
|
|
94
|
+
**The preview is read-only for the agent — it is the user's view, not a surface you read back.** You cannot click or type to drive edits — the CRDT flow is one-way (agent → MCP → CRDT → preview).
|
|
90
95
|
|
|
91
|
-
**No screenshots
|
|
96
|
+
**No screenshots to confirm edits, no generic verification loop.** Do NOT take `preview_screenshot` (host tool, not OK MCP) after a write, and do not run a generic snapshot/eval/screenshot verification loop — OK's preview is a read-only, one-way mirror, so the CRDT tool response *is* the confirmation that an edit landed. Screenshot only when debugging a visual rendering issue or when the user explicitly asks to see the preview — never to confirm an edit landed.
|
|
92
97
|
|
|
93
98
|
## Writing
|
|
94
99
|
|
|
@@ -98,22 +103,84 @@ To delete a doc, call `delete_document` — never `rm` / `unlink` / native `Bash
|
|
|
98
103
|
|
|
99
104
|
**If `edit_document` returns "Text not found" on text you can verify exists on disk** (via `exec("cat …")`), the MCP session is likely stale (e.g., after a folder rename or server restart). Treat this as the escape-hatch trigger from the STOP block: prefix your next user-visible sentence with `Open Knowledge MCP unavailable:` and report the inconsistency. Don't loop on retries — the symptom is structural, not transient.
|
|
100
105
|
|
|
101
|
-
##
|
|
106
|
+
## Conflict-aware writes
|
|
107
|
+
|
|
108
|
+
Projects with GitHub sync enabled may carry docs in a merge-conflict state. The MCP server refuses every mutating call against such a doc with a structured RFC 9457 response:
|
|
109
|
+
|
|
110
|
+
```json
|
|
111
|
+
{
|
|
112
|
+
"type": "urn:ok:error:doc-in-conflict",
|
|
113
|
+
"title": "Document is in conflict.",
|
|
114
|
+
"status": 409,
|
|
115
|
+
"detail": "The document is in a merge-conflict state. Call get_conflict_content + resolve_conflict before retrying.",
|
|
116
|
+
"file": "notes/sso.md",
|
|
117
|
+
"resolutionOptions": ["mine", "theirs", "content"]
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
The gate covers `write_document`, `edit_document`, `delete_document`, `rename`, `version` (`action: 'rollback'`), `folder_config` (`action: 'write-template'|'delete-template'`), and agent undo. You cannot route around it by writing content that byte-matches one of the merge stages — the gate refuses on lifecycle state, not on body equality.
|
|
122
|
+
|
|
123
|
+
**Detect proactively.** `exec("cat <path>.md")` always returns `lifecycle: {status, reason} | null` alongside the body. When `status === 'conflict'`, switch to the resolution flow before attempting any mutation.
|
|
124
|
+
|
|
125
|
+
**Resolution flow.** Three tools compose:
|
|
126
|
+
|
|
127
|
+
1. `list_conflicts()` → enumerate every doc currently tracked in conflict.
|
|
128
|
+
2. `get_conflict_content({ file })` → fetch `base` / `ours` / `theirs` stages plus the doc's `lifecycleStatus`. `ours` reflects the live Y.Text (what the human user sees in the editor) when the doc is loaded server-side and is marker-free; falls back to `git show :2:<file>` otherwise (e.g. after an editor reopen seeded markers into Y.Text).
|
|
129
|
+
3. `resolve_conflict({ file, strategy, content? })` → write the chosen bytes and commit. Strategies: `mine` writes `git show :2:`, `theirs` writes `git show :3:`, `content` writes the bytes you supply.
|
|
130
|
+
|
|
131
|
+
`file` is a `.md` / `.mdx` path relative to the project dir (extension included) — mirrors the on-disk shape, not the extension-less `docName` used by other tools.
|
|
132
|
+
|
|
133
|
+
The resolve operation is best-effort and NOT atomic: `git checkout --ours/--theirs && git add` may succeed but the subsequent `git commit --no-edit` can fail (pre-commit hook rejection, locked index). On commit failure the staged files are re-`git add`-ed back into the unmerged index and the tracked entry remains in `conflicts.json` — re-call `resolve_conflict` after the user clears the blocker.
|
|
102
134
|
|
|
103
|
-
|
|
135
|
+
## Components — write the markdown-native form, not JSX
|
|
104
136
|
|
|
105
|
-
|
|
106
|
-
2. **Fetch.** `get_components({ ids: [...] })` returns per-entry `example` (literal copy-paste bytes) + form-aware `params` schema (`type`, `values?` for enums, `required`, `defaultValue?`, `description`).
|
|
107
|
-
3. **Write.** Compose markdown inline using the `example` syntax + your prop values, then call `write_document` or `edit_document`. Shapes: `<BlockComponent prop="...">body</BlockComponent>` or `<VoidComponent prop="..." />`.
|
|
137
|
+
OK auto-promotes markdown-native syntax into themed canonical components at parse time. **Write the markdown-native form — don't reach for JSX when one exists.** The promoted component is themed, accessible, and part of the content graph; hand-rolled JSX is none of those, and it fights the model's markdown prior instead of using it.
|
|
108
138
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
139
|
+
| Want | Write this (markdown-native) | Promotes to |
|
|
140
|
+
| --- | --- | --- |
|
|
141
|
+
| Callout / admonition | `> [!NOTE]` + body — 15 types (NOTE, TIP, IMPORTANT, WARNING, CAUTION, …); append `+` / `-` (`> [!NOTE]+`) to make it foldable | themed Callout |
|
|
142
|
+
| Collapsible section | `<details><summary>Title</summary>` … `</details>` | themed Accordion |
|
|
143
|
+
| Diagram | a ` ```mermaid ` fenced block (flowchart, sequence, class, state, ER, gantt, pie) | Mermaid diagram |
|
|
144
|
+
| Math | `$x$` inline, `$$…$$` block | KaTeX Math |
|
|
145
|
+
| Inline a doc or asset | `![[file]]` | wiki embed |
|
|
113
146
|
|
|
114
|
-
|
|
147
|
+
`Tabs` is the lone canonical with **no** markdown-native form — write the JSX directly (`<Tabs><Tab label="…">…</Tab></Tabs>`). For any canonical's full JSX prop schema, call `get_components({ ids })`. If no canonical fits, any `<TagName>…</TagName>` falls through as raw MDX — but prefer a canonical when one matches.
|
|
148
|
+
|
|
149
|
+
**Discover the palette in one call.** `get_authoring_palette` returns every markdown-native form (copy-ready `example` + `guidance`), the themed `html preview` embed starters, and the injected theme-token list — the source of truth for component-forward, themed authoring. Canonical names/counts beyond the markdown-native set are project-specific; the inventory in the `write_document` / `edit_document` descriptions and `get_components` are authoritative for those.
|
|
150
|
+
|
|
151
|
+
**Show findings, don't just tell them.** When a point is quantitative or comparative — a trend over time, a breakdown, a before/after, a ranking, a distribution — present it visually: a chart or stat-card `html preview` embed, a ` ```mermaid ` diagram, a table, or a Callout for the headline takeaway. Prose-only buries the insight. This matters most where the document's job is to make findings legible — **`research` reports and `consolidate` articles especially**, and any write-up meant to present results. A research article with three dense paragraphs of numbers should have been a chart. Reach for `get_authoring_palette` as you draft, not after.
|
|
152
|
+
|
|
153
|
+
### `html preview` — themed interactive embeds
|
|
154
|
+
|
|
155
|
+
A ` ```html preview ` fence (also `htm` / `xml`) renders a standalone HTML/CSS/JS page as a live sandboxed iframe — the extend-to-anything primitive for charts, stat cards, custom SVG, calculators, demos. The iframe auto-sizes to its content; pass `h=` / `w=` (e.g. ` ```html preview h=400px `) only to pin a fixed size.
|
|
156
|
+
|
|
157
|
+
**Start from a starter — don't hand-roll.** `get_authoring_palette` returns `embedPatterns` (chart, stat cards, custom SVG, interactive control), each already wired to the theme tokens. Copy one and fill in your data — that is the only path that cannot render unthemed. Hand-author a fence from scratch only when no starter is close.
|
|
158
|
+
|
|
159
|
+
**MUST — never hardcode colors in an `html preview` embed.** OK injects its theme tokens into every preview iframe; an embed that hardcodes hex / `rgb()` renders unthemed — a white box on a dark page, clashing with every component around it. This is the single most common embed mistake. Wire every color to a token: `var(--chart-1..5)` for chart series, `var(--foreground)` / `var(--muted-foreground)` for text, `var(--card)` / `var(--background)` for surfaces, plus `var(--border)`, `var(--primary)`, `var(--radius)`. Don't set a `body` background at all unless you specifically mean to — the iframe already carries a themed one.
|
|
160
|
+
|
|
161
|
+
````
|
|
162
|
+
```html preview
|
|
163
|
+
<div style="font-family:system-ui;padding:20px;color:var(--foreground)">
|
|
164
|
+
<h3 style="margin:0 0 10px">Themed embed</h3>
|
|
165
|
+
<div style="display:flex;gap:8px">
|
|
166
|
+
<div style="flex:1;height:48px;background:var(--chart-1);border-radius:var(--radius)"></div>
|
|
167
|
+
<div style="flex:1;height:48px;background:var(--chart-2);border-radius:var(--radius)"></div>
|
|
168
|
+
<div style="flex:1;height:48px;background:var(--chart-3);border-radius:var(--radius)"></div>
|
|
169
|
+
</div>
|
|
170
|
+
</div>
|
|
171
|
+
```
|
|
172
|
+
````
|
|
173
|
+
|
|
174
|
+
Done wrong, that same embed is `body{background:#fff;color:#1a1a1a}` with a `background:#2563eb` bar — a white box with a hardcoded blue, blind to the reader's theme.
|
|
175
|
+
|
|
176
|
+
**Charts.** A pure-CSS or inline-SVG chart wired to `var(--chart-*)` re-skins on a theme toggle for free — prefer it. A JS charting library (Chart.js, D3) works too, but a themed `body` does NOT theme the colors you pass the library in JS — read the token at runtime instead of hardcoding:
|
|
177
|
+
|
|
178
|
+
```js
|
|
179
|
+
const c1 = getComputedStyle(document.documentElement).getPropertyValue('--chart-1').trim();
|
|
180
|
+
// → pass c1 to Chart.js / D3 as the series color
|
|
181
|
+
```
|
|
115
182
|
|
|
116
|
-
**
|
|
183
|
+
**Boundary.** Reach for a canonical (via its markdown-native form) when one matches the semantic need — it is themed and integrated. Reach for ` ```html preview ` for interactive or bespoke content no canonical covers. ` ```<lang> ` fences for other languages are plain syntax-highlighted code, no preview.
|
|
117
184
|
|
|
118
185
|
## Grounding — every factual claim needs a source (MUST)
|
|
119
186
|
|
|
@@ -136,9 +203,10 @@ Knowledge-base docs are factual artifacts — whether the project is a wiki, an
|
|
|
136
203
|
- **Every noun-phrase that names another document should be linked** using standard markdown link syntax: `[text](./relative/path.md)` or `[text](/absolute/from/content-root.md)`.
|
|
137
204
|
- **External web sources are NOT inline body links.** Per the Grounding rule above, web URLs live in the `source_url:` frontmatter of an ingested doc under `external-sources/` (or the project's equivalent raw-sources folder); the body cites the local path: `[source name](./external-sources/source-slug.md)`. A raw `[source](https://...)` inline in the body is a TODO, not a citation — see Grounding for the closed-loop contract.
|
|
138
205
|
- **Internal cross-refs between OK docs** → `[text](./other-doc.md)` — link liberally to aid navigation.
|
|
206
|
+
- **Every link must resolve to a doc that exists.** Never link to a doc that isn't written yet. If you want to reference something that should have its own page but doesn't: create that page in the same pass, or record it as a tracked task (`TaskCreate`, or your host's task tool — if the host has none, tell the user) and leave the mention as plain prose. A broken link is debt, not a to-do marker.
|
|
139
207
|
- **Never wrap a link in backticks.** `` `[text](./foo.md)` `` is a bug — the backticks make it render as literal code rather than a link.
|
|
140
208
|
- **Never use HTML anchors** (`<a href="...">`). Markdown link syntax only.
|
|
141
|
-
- **Verify before walking away.** After writing a doc, call `links({ kind: "dead", sourceDocNames: ["your/doc"] })` to find broken references. Fix
|
|
209
|
+
- **Verify before walking away.** After writing a doc, call `links({ kind: "dead", sourceDocNames: ["your/doc"] })` to find broken references. Fix or remove every one — a dead link is never acceptable to leave behind. Companion `links` kinds: `backlinks` (incoming), `forward` (outgoing), `orphans` (no incoming), `hubs` (high-incoming), `suggest` (untextualized mentions worth linking).
|
|
142
210
|
- **The editor's red-underline visual lies.** Its dead-link detection tolerates slug-fallback (e.g., `foo` may appear resolved because `foo.md` exists at root). `links({ kind: "dead" })` is strict-exact — trust the tool, not the visual.
|
|
143
211
|
|
|
144
212
|
**Note on wiki-link syntax (`[[Page]]`):** the parser still handles it for legacy content, but it's NO LONGER the recommended default. Write new content with standard markdown links per above. Seed-pack templates (`ok seed --pack <name>`) may still emit `[[Page]]` placeholders inside template body text — those are legacy. When you instantiate a seed-pack template, replace the legacy placeholders with standard markdown links during the `{shape}`-fill pass.
|
|
@@ -303,7 +371,7 @@ Body is just the wiki-embed. PDFs/opaque attachments render as a click-dispatchi
|
|
|
303
371
|
|
|
304
372
|
When you make a multi-step change (batch of new docs, folder restructure), pause between steps to let the browser preview catch up. The CRDT edit streams live; the preview follows your edit cadence. Don't batch 10 writes in a row — interleave the writes so the user watching the browser sees the narrative progress.
|
|
305
373
|
|
|
306
|
-
This is primarily a human-watchability concern — the user watches edits land in the preview; interleaved cadence makes the narrative legible.
|
|
374
|
+
This is primarily a human-watchability concern — the user watches edits land in the preview; interleaved cadence makes the narrative legible. When the batch is done, navigate the preview to the primary deliverable (see "End a turn on the deliverable" in §Preview).
|
|
307
375
|
|
|
308
376
|
**Hub docs.** Don't *create* `INDEX.md` / `README.md` hub files solely to catalog children — `exec("ls -A <folder>")` returns the same view live, with per-file frontmatter + backlink counts. But if a hub doc *already exists* from prior work, keep it updated as children change — interleave: write child → update hub → write next child, rather than batching five child edits and a single trailing hub update.
|
|
309
377
|
|
|
@@ -324,7 +392,7 @@ The skill carries the trigger ("KB content changed this turn — go look"). The
|
|
|
324
392
|
| Read an individual doc | `Read: specs/foo/SPEC.md` | `exec("cat specs/foo/SPEC.md")` |
|
|
325
393
|
| Explore a markdown-heavy dir | `Agent(Explore): "..."` | Do `exec`-based exploration yourself |
|
|
326
394
|
| Wait for the server to tell you to open preview | Skip the session-start preview open and wait for the `attach-preview-once` hint | Open the preview browser at session start; the hint is a fallback when you didn't |
|
|
327
|
-
| Ignore the attach hint | Skip the `warning: { action: "attach-preview-once" }` hint in write-tool responses | Open the
|
|
395
|
+
| Ignore the attach hint | Skip the `warning: { action: "attach-preview-once" }` hint in write-tool responses | Open the preview when the hint fires (`preview_start`, or `get_preview_url`); otherwise do nothing |
|
|
328
396
|
| Make the Claude Code Desktop preview work | Read / diagnose / edit `.claude/launch.json` (host-managed config) | Call `preview_start("open-knowledge-ui")` and nothing else; the OK lock-collision proxy bridges any port mismatch transparently |
|
|
329
397
|
| Reference another doc | `` `[text](./page.md)` `` (backticked) or HTML `<a>` | `[text](./page.md)` (raw markdown) |
|
|
330
398
|
| Embed an image | `<img src="...">` (HTML) or hot-linked external URL | Fetch + save locally + `` |
|