@lemoncat7/dsh-knowledge 0.7.2 → 1.0.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/README.md +16 -15
- package/cordis.patch.yml +0 -1
- package/docs/architecture.md +37 -19
- package/docs/document-knowledge-design.zh-CN.md +2 -2
- package/docs/requirements.md +9 -5
- package/lib/api.js +5 -1
- package/lib/api.js.map +1 -1
- package/lib/client.d.ts +6 -0
- package/lib/client.d.ts.map +1 -0
- package/lib/client.js +210 -170
- package/lib/client.js.map +3 -3
- package/lib/config.d.ts +2 -0
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js +5 -3
- package/lib/config.js.map +1 -1
- package/lib/constants.d.ts +3 -0
- package/lib/constants.d.ts.map +1 -0
- package/lib/constants.js +3 -0
- package/lib/constants.js.map +1 -0
- package/lib/documents/markdown.d.ts +33 -0
- package/lib/documents/markdown.d.ts.map +1 -0
- package/lib/documents/markdown.js +91 -0
- package/lib/documents/markdown.js.map +1 -0
- package/lib/documents/path.d.ts +4 -0
- package/lib/documents/path.d.ts.map +1 -0
- package/lib/documents/path.js +11 -0
- package/lib/documents/path.js.map +1 -0
- package/lib/documents/store.d.ts +32 -0
- package/lib/documents/store.d.ts.map +1 -0
- package/lib/documents/store.js +272 -0
- package/lib/documents/store.js.map +1 -0
- package/lib/domain.d.ts +2 -0
- package/lib/domain.d.ts.map +1 -1
- package/lib/domain.js +6 -0
- package/lib/domain.js.map +1 -1
- package/lib/extraction.d.ts.map +1 -1
- package/lib/extraction.js +210 -73
- package/lib/extraction.js.map +1 -1
- package/lib/index.d.ts +3 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +9 -4
- package/lib/index.js.map +1 -1
- package/lib/local-provider.d.ts +2 -0
- package/lib/local-provider.d.ts.map +1 -1
- package/lib/local-provider.js +145 -79
- package/lib/local-provider.js.map +1 -1
- package/lib/recall.d.ts +7 -2
- package/lib/recall.d.ts.map +1 -1
- package/lib/recall.js +46 -30
- package/lib/recall.js.map +1 -1
- package/lib/retrieval.d.ts +14 -4
- package/lib/retrieval.d.ts.map +1 -1
- package/lib/retrieval.js +133 -25
- package/lib/retrieval.js.map +1 -1
- package/lib/runtime.d.ts +5 -0
- package/lib/runtime.d.ts.map +1 -1
- package/lib/runtime.js.map +1 -1
- package/lib/theme-bridge.d.ts +23 -0
- package/lib/theme-bridge.d.ts.map +1 -0
- package/lib/theme-bridge.js +72 -0
- package/lib/theme-bridge.js.map +1 -0
- package/lib/tools.d.ts.map +1 -1
- package/lib/tools.js +165 -7
- package/lib/tools.js.map +1 -1
- package/lib/web-markdown-preview.d.ts +3 -0
- package/lib/web-markdown-preview.d.ts.map +1 -0
- package/lib/web-markdown-preview.js +24 -0
- package/lib/web-markdown-preview.js.map +1 -0
- package/lib/web.d.ts.map +1 -1
- package/lib/web.js +1 -0
- package/lib/web.js.map +1 -1
- package/package.json +16 -3
- package/web/app.js +326 -359
- package/web/index.html +1 -0
- package/web/markdown-preview.js +72 -0
- package/web/styles.css +177 -200
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,0BAA0B,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAC5E,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,0BAA0B,GAE3B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,aAAa,EAAkC,MAAM,aAAa,CAAA;AACnG,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAA;AAC7D,OAAO,EAAE,wBAAwB,EAAkC,MAAM,cAAc,CAAA;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAA;AAErE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAA2B,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AACnF,OAAO,EAAE,sBAAsB,EAA2B,MAAM,cAAc,CAAA;AAC9E,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AACtG,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAE/C,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAA;AAElC,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAEnF,yCAAyC;AACzC,MAAM,CAAC,MAAM,IAAI,GAAG,eAAe,CAAA;AAEnC,yFAAyF;AACzF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;AAEtC,4FAA4F;AAC5F,MAAM,UAAU,KAAK,CAAC,GAAY,EAAE,MAAuB;IACzD,MAAM,OAAO,GAAG,GAAoC,CAAA;IACpD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IACtC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,EAAE;QAC/C,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAChC,4BAA4B,EAC5B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EACjB,EAAE,IAAI,EAAE,EAAE,EAAE,CACb,CAAA;IACH,CAAC,CAAC,CAAA;IACF,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;IACzE,IAAI,gBAAgB,GAAG,QAAQ,CAAC,SAAS,CAAA;IACzC,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,mBAAmB,CAAC,oBAAoB,CAAC,CAAA;QAC/D,IAAI,aAAa,KAAK,SAAS;YAAE,gBAAgB,GAAG,aAAa,CAAC,gBAAgB,CAAA;IACpF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,oDAAoD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACnI,CAAC;IACD,IAAI,QAAQ,CAAC,OAAO,KAAK,QAAQ;QAAE,gBAAgB,GAAG,KAAK,CAAA;IAC3D,MAAM,cAAc,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAA;IACvD,IAAI,iBAAiB,GAAG,cAAc,CAAA;IACtC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;QAC5D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,0BAA0B,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,CAAC,YAAY,KAAK,SAAS,IAAI,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YACpI,iBAAiB,GAAG,MAAM,CAAA;QAC5B,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,qDAAqD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACpI,CAAC;IACD,MAAM,eAAe,GAAG,wBAAwB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAA;IAC/F,MAAM,kBAAkB,GAAG,QAAQ,CAAC,YAAY,KAAK,SAAS,IAAI,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QACzG,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,IAAI,sBAAsB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;IACrD,MAAM,cAAc,GAAG,IAAI,uBAAuB,CAAC,eAAe,CAAC,CAAA;IACnE,MAAM,QAAQ,GAAsB,cAAc,CAAC,QAAQ,CAAA;IAC3D,IAAI,gBAAgB,GAAG,iBAAiB,CAAA;IAExC,MAAM,WAAW,GAAG,IAAI,qBAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC1E,MAAM,WAAW,GAAG,IAAI,oBAAoB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA;IAC7D,uBAAuB,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;IACjE,wBAAwB,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IACrD,sBAAsB,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;IAEtD,IAAI,oBAAoB,GAAG,GAAS,EAAE,GAAE,CAAC,CAAA;IACzC,IAAI,SAAS,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAA;IACnD,MAAM,gBAAgB,GAAG,CAAC,KAAgC,EAAwC,EAAE;QAClG,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YACxC,MAAM,IAAI,GAAgC;gBACxC,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,eAAe,EAAE,KAAK,CAAC,eAAe;gBACtC,GAAG,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE;gBAC7J,GAAG,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;aAC1K,CAAA;YACD,0BAA0B,CAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,CAAC,YAAY,KAAK,SAAS,IAAI,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YAClI,IAAI,cAAc,CAAC,IAAI,EAAE,gBAAgB,CAAC;gBAAE,OAAO,gBAAgB,CAAA;YACnE,IAAI,QAAQ,CAAC,cAAc,KAAK,SAAS;gBAAE,MAAM,eAAe,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAA;YAC9F,MAAM,SAAS,GAAG,wBAAwB,CAAC,QAAQ,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAA;YAC5E,IAAI,SAAS,GAAG,KAAK,CAAA;YACrB,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ;oBAAE,MAAM,SAAS,CAAC,KAAK,EAAE,CAAA;gBACtD,MAAM,eAAe,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,CAAA;gBACpD,SAAS,GAAG,IAAI,CAAA;gBAChB,MAAM,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;gBACvC,gBAAgB,GAAG,IAAI,CAAA;gBACvB,oBAAoB,EAAE,CAAA;gBACtB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,2CAA2C,IAAI,CAAC,OAAO,WAAW,CAAC,CAAA;gBACvF,OAAO,gBAAgB,CAAA;YACzB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;gBACvC,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,eAAe,CAAC,QAAQ,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;wBACrF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yDAAyD,aAAa,YAAY,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;oBACjK,CAAC,CAAC,CAAA;gBACJ,CAAC;gBACD,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC,CAAC,CAAA;QACF,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACtC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,8CAA8C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YAC3H,MAAM,qBAAqB,CAAC,KAAK,CAAC,CAAA;QACpC,CAAC,CAAC,CAAA;QACF,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QACrC,OAAO,SAAS,CAAA;IAClB,CAAC,CAAA;IAED,MAAM,oBAAoB,GAAG,CAAC,WAA+B,EAAQ,EAAE;QACrE,IAAI,gBAA0C,CAAA;QAC9C,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,eAAe,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAA;QACvF,MAAM,mBAAmB,GAAG,CAAC,OAAgB,EAAQ,EAAE;YACrD,gBAAgB,EAAE,EAAE,CAAA;YACpB,gBAAgB,GAAG,SAAS,CAAA;YAC5B,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,kBAAkB,KAAK,SAAS;oBAAE,MAAM,eAAe,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAA;gBAC1F,gBAAgB,GAAG,oBAAoB,CAAC,WAAW,EAAE,kBAAkB,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAA;YAC9F,CAAC;QACH,CAAC,CAAA;QACD,MAAM,eAAe,GAAG,KAAK,EAAE,OAAgB,EAA6C,EAAE;YAC5F,IAAI,OAAO,KAAK,gBAAgB;gBAAE,OAAO,aAAa,EAAE,CAAA;YACxD,IAAI,OAAO,IAAI,gBAAgB,CAAC,OAAO,KAAK,OAAO;gBAAE,MAAM,eAAe,CAAC,GAAG,EAAE,0BAA0B,CAAC,CAAA;YAC3G,IAAI,oBAAoB,KAAK,SAAS;gBAAE,MAAM,eAAe,CAAC,GAAG,EAAE,8BAA8B,CAAC,CAAA;YAClG,MAAM,QAAQ,GAAG,gBAAgB,CAAA;YACjC,mBAAmB,CAAC,OAAO,CAAC,CAAA;YAC5B,gBAAgB,GAAG,OAAO,CAAA;YAC1B,IAAI,CAAC;gBACH,MAAM,oBAAoB,CAAC,oBAAoB,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAA;YACxE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,gBAAgB,GAAG,QAAQ,CAAA;gBAC3B,mBAAmB,CAAC,QAAQ,CAAC,CAAA;gBAC7B,MAAM,KAAK,CAAA;YACb,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,OAAO,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAA;YAC7G,OAAO,aAAa,EAAE,CAAA;QACxB,CAAC,CAAA;QAED,IAAI,QAAQ,CAAC,SAAS,IAAI,kBAAkB,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC9F,kBAAkB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAC5D,CAAC;QAED,IAAI,oBAA8C,CAAA;QAClD,MAAM,uBAAuB,GAAG,GAAS,EAAE;YACzC,oBAAoB,EAAE,EAAE,CAAA;YACxB,oBAAoB,GAAG,SAAS,CAAA;YAChC,IAAI,CAAC,QAAQ,CAAC,SAAS;gBAAE,OAAM;YAC/B,IAAI,gBAAgB,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC1C,oBAAoB,GAAG,6BAA6B,CAAC,WAAW,EAAE,2BAA2B,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAA;YACxH,CAAC;iBAAM,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;gBAC5C,oBAAoB,GAAG,oBAAoB,CAAC,WAAW,EAAE,kBAAkB,EAAE,2BAA2B,EAAE;oBACxG,QAAQ,EAAE,aAAa;oBACvB,OAAO,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE;iBAC7D,CAAC,CAAA;YACJ,CAAC;QACH,CAAC,CAAA;QACD,oBAAoB,GAAG,uBAAuB,CAAA;QAC9C,uBAAuB,EAAE,CAAA;QACzB,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,oBAAoB,EAAE,EAAE,CAAA,CAAC,CAAC,EAAE,8BAA8B,CAAC,CAAA;QAE5F,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACvB,MAAM,UAAU,GAAG,oBAAoB,CAAC,WAAW,EAAE,QAAQ,CAAC,OAAO,EAAE,2BAA2B,EAAE,aAAa,CAAC,CAAA;YAClH,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAA;QAC3D,CAAC;QAED,mBAAmB,CAAC,gBAAgB,CAAC,CAAA;QACrC,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,gBAAgB,EAAE,EAAE,CAAA,CAAC,CAAC,EAAE,0BAA0B,CAAC,CAAA;QAEpF,MAAM,cAAc,GAAG,wBAAwB,CAAC,WAAW,EAAE;YAC3D,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB;YAC/B,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC,gBAAgB;YACxC,QAAQ,EAAE,QAAQ,CAAC,cAAc,KAAK,SAAS;YAC/C,mBAAmB,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,IAAI,CAAC,gBAAgB,CAAC,OAAO,KAAK,QAAQ,IAAI,kBAAkB,KAAK,SAAS,CAAC;YAC5H,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE;YACjE,MAAM,EAAE,gBAAgB;SACzB,CAAC,CAAA;QACF,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,kCAAkC,CAAC,CAAA;IAC9E,CAAC,CAAA;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,EAAE,oBAAoB,CAAC,CAAA;IACrD,CAAC;SAAM,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAC3C,oBAAoB,CAAC,OAAO,CAAC,CAAA;IAC/B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,0FAA0F,CAAC,CAAA;IACjH,CAAC;IAED,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAC/B,OAAO,CAAC,EAAE,CAAC,qBAAqB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;YAClE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;YAClH,IAAI,OAAe,CAAA;YACnB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;gBACjE,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW;oBAAE,OAAM;gBACzC,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW;oBAAE,OAAO,GAAG,kBAAkB,CAAA;qBAC1D,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;oBAAE,OAAO,GAAG,oBAAoB,CAAA;qBAC/D,IAAI,MAAM,CAAC,cAAc,KAAK,CAAC;oBAAE,OAAO,GAAG,cAAc,CAAA;;oBACzD,OAAO,GAAG,WAAW,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;wBAChD,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;wBACxI,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;oBAC1C,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;YAChB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,MAAM,CAAC,OAAO;oBAAE,OAAM;gBAC1B,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACtE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,gDAAgD,OAAO,EAAE,CAAC,CAAA;gBAC9E,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;oBACtC,CAAC,CAAC,yBAAyB;oBAC3B,CAAC,CAAC,kBAAkB,CAAA;YACxB,CAAC;YACD,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,sBAAsB,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAA;QAChG,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE;QAC9B,MAAM,WAAW,CAAC,KAAK,EAAE,CAAA;QACzB,MAAM,cAAc,CAAC,KAAK,EAAE,CAAA;QAC5B,MAAM,kBAAkB,EAAE,KAAK,EAAE,CAAA;IACnC,CAAC,EAAE,qBAAqB,CAAC,CAAA;IAEzB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,QAAQ,CAAC,IAAI,iBAAiB,CAAC,CAAA;AACvE,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IAC3C,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;QACzC,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC,CAAA;QACtE,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,eAAe,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAA;QAC1E,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,eAAe,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAA;QAC9E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,eAAe,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAA;QAC7E,OAAO,eAAe,CAAC,GAAG,EAAE,kBAAkB,KAAK,CAAC,MAAM,IAAI,CAAC,CAAA;IACjE,CAAC;IACD,IAAI,KAAK,YAAY,KAAK,IAAI,OAAQ,KAAsC,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC9G,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,IAAI,4CAA4C,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YAAE,OAAO,eAAe,CAAC,GAAG,EAAE,0BAA0B,CAAC,CAAA;QAC7H,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YAAE,OAAO,eAAe,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAA;QACjF,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YAAE,OAAO,eAAe,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;QAC7E,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YAAE,OAAO,eAAe,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAA;IAC5F,CAAC;IACD,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;AAClE,CAAC;AAED,SAAS,eAAe,CAAC,MAAc,EAAE,OAAe;IACtD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;AACtD,CAAC"}
|
package/lib/local-provider.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ import type { KnowledgeProvider } from './provider.js';
|
|
|
3
3
|
export declare class LocalKnowledgeProvider implements KnowledgeProvider {
|
|
4
4
|
readonly mode: "local";
|
|
5
5
|
private readonly db;
|
|
6
|
+
private readonly documentStore;
|
|
7
|
+
private readonly documentsReady;
|
|
6
8
|
private closed;
|
|
7
9
|
constructor(path: string);
|
|
8
10
|
private migrate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-provider.d.ts","sourceRoot":"","sources":["../src/local-provider.ts"],"names":[],"mappings":"AAIA,OAAO,EASL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EAEtB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"local-provider.d.ts","sourceRoot":"","sources":["../src/local-provider.ts"],"names":[],"mappings":"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"}
|
package/lib/local-provider.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import { dirname } from 'node:path';
|
|
1
|
+
import { dirname, join } from 'node:path';
|
|
2
2
|
import { createHash, randomBytes } from 'node:crypto';
|
|
3
3
|
import { mkdirSync } from 'node:fs';
|
|
4
4
|
import { DatabaseSync } from 'node:sqlite';
|
|
5
5
|
import { contentHash, DEFAULT_KNOWLEDGE_BASE_ID, newId, normalizeDraft, normalizeKnowledgeBaseDraft, normalizeKnowledgeMountDraft, normalizeKnowledgeSettings, nowIso, } from './domain.js';
|
|
6
|
+
import { renderKnowledgeMarkdown } from './documents/markdown.js';
|
|
7
|
+
import { knowledgeDocumentPath } from './documents/path.js';
|
|
8
|
+
import { KnowledgeDocumentStore } from './documents/store.js';
|
|
6
9
|
const ENTRY_COLUMNS = `
|
|
7
10
|
id, knowledge_base_id, title, body, type, tags_json, scope_kind, scope_id, confidence,
|
|
8
11
|
status, version, source_json, created_at, updated_at
|
|
@@ -16,17 +19,21 @@ const JOINED_ENTRY_COLUMNS = `
|
|
|
16
19
|
export class LocalKnowledgeProvider {
|
|
17
20
|
mode = 'local';
|
|
18
21
|
db;
|
|
22
|
+
documentStore;
|
|
23
|
+
documentsReady;
|
|
19
24
|
closed = false;
|
|
20
25
|
constructor(path) {
|
|
21
26
|
if (path !== ':memory:')
|
|
22
27
|
mkdirSync(dirname(path), { recursive: true });
|
|
28
|
+
this.documentStore = new KnowledgeDocumentStore(join(dirname(path), 'documents'));
|
|
23
29
|
this.db = new DatabaseSync(path);
|
|
24
30
|
this.db.exec('PRAGMA journal_mode = WAL; PRAGMA foreign_keys = ON; PRAGMA busy_timeout = 5000;');
|
|
25
31
|
this.migrate();
|
|
32
|
+
this.documentsReady = this.syncAllDocuments();
|
|
26
33
|
}
|
|
27
34
|
migrate() {
|
|
28
35
|
let version = Number(this.db.prepare('PRAGMA user_version').get().user_version ?? 0);
|
|
29
|
-
if (version >
|
|
36
|
+
if (version > 6)
|
|
30
37
|
throw new Error(`knowledge database schema ${version} is newer than this plugin supports`);
|
|
31
38
|
if (version === 0)
|
|
32
39
|
this.db.exec(`
|
|
@@ -194,11 +201,14 @@ export class LocalKnowledgeProvider {
|
|
|
194
201
|
PRAGMA user_version = 5;
|
|
195
202
|
COMMIT;
|
|
196
203
|
`);
|
|
204
|
+
if (version <= 4)
|
|
205
|
+
version = 5;
|
|
206
|
+
if (version === 5)
|
|
207
|
+
this.db.exec('PRAGMA user_version = 6;');
|
|
197
208
|
// Alpha v2 used a migration note as the default base's routing description.
|
|
198
209
|
// Clear only that exact placeholder so existing user-authored descriptions stay untouched.
|
|
199
210
|
this.db.prepare("UPDATE knowledge_bases SET description='' WHERE id=? AND description=?")
|
|
200
211
|
.run(DEFAULT_KNOWLEDGE_BASE_ID, '由 0.2 版本迁移的知识。');
|
|
201
|
-
this.syncAllDocuments();
|
|
202
212
|
}
|
|
203
213
|
assertOpen() {
|
|
204
214
|
if (this.closed)
|
|
@@ -232,6 +242,7 @@ export class LocalKnowledgeProvider {
|
|
|
232
242
|
}
|
|
233
243
|
async createKnowledgeBase(input) {
|
|
234
244
|
this.assertOpen();
|
|
245
|
+
await this.documentsReady;
|
|
235
246
|
const draft = normalizeKnowledgeBaseDraft(input);
|
|
236
247
|
const timestamp = nowIso();
|
|
237
248
|
const base = { ...draft, id: newId(), status: 'active', createdAt: timestamp, updatedAt: timestamp };
|
|
@@ -240,11 +251,12 @@ export class LocalKnowledgeProvider {
|
|
|
240
251
|
id,name,description,default_tags_json,extraction_instructions,writeback_provider,writeback_model,status,created_at,updated_at
|
|
241
252
|
) VALUES(?,?,?,?,?,?,?,'active',?,?)
|
|
242
253
|
`).run(base.id, base.name, base.description, JSON.stringify(base.defaultTags), base.extractionInstructions, base.writebackProvider ?? null, base.writebackModel ?? null, timestamp, timestamp);
|
|
243
|
-
this.syncKnowledgeDocuments(base.id);
|
|
254
|
+
await this.syncKnowledgeDocuments(base.id);
|
|
244
255
|
return base;
|
|
245
256
|
}
|
|
246
257
|
async updateKnowledgeBase(id, input) {
|
|
247
258
|
this.assertOpen();
|
|
259
|
+
await this.documentsReady;
|
|
248
260
|
const current = await this.getKnowledgeBase(id);
|
|
249
261
|
if (current === undefined)
|
|
250
262
|
throw notFound('knowledge base', id);
|
|
@@ -255,7 +267,7 @@ export class LocalKnowledgeProvider {
|
|
|
255
267
|
name=?,description=?,default_tags_json=?,extraction_instructions=?,writeback_provider=?,writeback_model=?,updated_at=?
|
|
256
268
|
WHERE id=?
|
|
257
269
|
`).run(updated.name, updated.description, JSON.stringify(updated.defaultTags), updated.extractionInstructions, updated.writebackProvider ?? null, updated.writebackModel ?? null, updated.updatedAt, id);
|
|
258
|
-
this.syncKnowledgeDocuments(id);
|
|
270
|
+
await this.syncKnowledgeDocuments(id);
|
|
259
271
|
return updated;
|
|
260
272
|
}
|
|
261
273
|
async patchKnowledgeBase(id, patch) {
|
|
@@ -301,6 +313,8 @@ export class LocalKnowledgeProvider {
|
|
|
301
313
|
}
|
|
302
314
|
async deleteKnowledgeBase(id) {
|
|
303
315
|
this.assertOpen();
|
|
316
|
+
await this.documentsReady;
|
|
317
|
+
const base = await this.getKnowledgeBase(id);
|
|
304
318
|
if (id === DEFAULT_KNOWLEDGE_BASE_ID)
|
|
305
319
|
throw conflict('the default knowledge base cannot be deleted');
|
|
306
320
|
this.transaction(() => {
|
|
@@ -323,9 +337,12 @@ export class LocalKnowledgeProvider {
|
|
|
323
337
|
this.db.prepare('DELETE FROM knowledge_documents WHERE knowledge_base_id=?').run(id);
|
|
324
338
|
this.db.prepare('DELETE FROM knowledge_bases WHERE id=?').run(id);
|
|
325
339
|
});
|
|
340
|
+
if (base !== undefined)
|
|
341
|
+
await this.documentStore.deleteBase(this.documentStore.baseDirectory(base));
|
|
326
342
|
}
|
|
327
343
|
async listDocuments(knowledgeBaseId, query) {
|
|
328
344
|
this.assertOpen();
|
|
345
|
+
await this.documentsReady;
|
|
329
346
|
const where = [];
|
|
330
347
|
const args = [];
|
|
331
348
|
if (knowledgeBaseId !== undefined) {
|
|
@@ -343,6 +360,7 @@ export class LocalKnowledgeProvider {
|
|
|
343
360
|
}
|
|
344
361
|
async getDocument(id) {
|
|
345
362
|
this.assertOpen();
|
|
363
|
+
await this.documentsReady;
|
|
346
364
|
const row = this.db.prepare('SELECT * FROM knowledge_documents WHERE id=?').get(id);
|
|
347
365
|
return row === undefined ? undefined : rowToDocument(row);
|
|
348
366
|
}
|
|
@@ -543,7 +561,10 @@ export class LocalKnowledgeProvider {
|
|
|
543
561
|
rows.push(...supplements.filter(row => !seen.has(String(row.id))).slice(0, limit - rows.length));
|
|
544
562
|
}
|
|
545
563
|
}
|
|
546
|
-
return rows.map(row =>
|
|
564
|
+
return rows.map(row => {
|
|
565
|
+
const entry = rowToEntry(row);
|
|
566
|
+
return { entry, score: relevanceScore(entry, text) };
|
|
567
|
+
});
|
|
547
568
|
}
|
|
548
569
|
searchByTerms(text, scopeSql, scopeArgs, filterSql, filterArgs, limit) {
|
|
549
570
|
const terms = fallbackTerms(text);
|
|
@@ -609,8 +630,9 @@ export class LocalKnowledgeProvider {
|
|
|
609
630
|
}
|
|
610
631
|
async create(draft) {
|
|
611
632
|
this.assertOpen();
|
|
633
|
+
await this.documentsReady;
|
|
612
634
|
const entry = this.transaction(() => this.insertEntry(draft));
|
|
613
|
-
this.syncKnowledgeDocuments(entry.knowledgeBaseId);
|
|
635
|
+
await this.syncKnowledgeDocuments(entry.knowledgeBaseId);
|
|
614
636
|
return entry;
|
|
615
637
|
}
|
|
616
638
|
insertEntry(input) {
|
|
@@ -632,11 +654,12 @@ export class LocalKnowledgeProvider {
|
|
|
632
654
|
}
|
|
633
655
|
async update(id, draft) {
|
|
634
656
|
this.assertOpen();
|
|
657
|
+
await this.documentsReady;
|
|
635
658
|
const current = await this.get(id);
|
|
636
659
|
const entry = this.transaction(() => this.updateEntry(id, draft, 'update'));
|
|
637
660
|
if (current !== undefined && current.knowledgeBaseId !== entry.knowledgeBaseId)
|
|
638
|
-
this.syncKnowledgeDocuments(current.knowledgeBaseId);
|
|
639
|
-
this.syncKnowledgeDocuments(entry.knowledgeBaseId);
|
|
661
|
+
await this.syncKnowledgeDocuments(current.knowledgeBaseId);
|
|
662
|
+
await this.syncKnowledgeDocuments(entry.knowledgeBaseId);
|
|
640
663
|
return entry;
|
|
641
664
|
}
|
|
642
665
|
updateEntry(id, input, changeKind) {
|
|
@@ -669,6 +692,7 @@ export class LocalKnowledgeProvider {
|
|
|
669
692
|
}
|
|
670
693
|
async archive(id) {
|
|
671
694
|
this.assertOpen();
|
|
695
|
+
await this.documentsReady;
|
|
672
696
|
const entry = this.transaction(() => {
|
|
673
697
|
const row = this.db.prepare(`SELECT ${ENTRY_COLUMNS} FROM knowledge_entries WHERE id = ?`).get(id);
|
|
674
698
|
if (row === undefined)
|
|
@@ -682,11 +706,12 @@ export class LocalKnowledgeProvider {
|
|
|
682
706
|
this.db.prepare('DELETE FROM knowledge_fts WHERE knowledge_id = ?').run(id);
|
|
683
707
|
return updated;
|
|
684
708
|
});
|
|
685
|
-
this.syncKnowledgeDocuments(entry.knowledgeBaseId);
|
|
709
|
+
await this.syncKnowledgeDocuments(entry.knowledgeBaseId);
|
|
686
710
|
return entry;
|
|
687
711
|
}
|
|
688
712
|
async delete(id) {
|
|
689
713
|
this.assertOpen();
|
|
714
|
+
await this.documentsReady;
|
|
690
715
|
const current = await this.get(id);
|
|
691
716
|
this.transaction(() => {
|
|
692
717
|
this.db.prepare('DELETE FROM knowledge_fts WHERE knowledge_id = ?').run(id);
|
|
@@ -695,7 +720,7 @@ export class LocalKnowledgeProvider {
|
|
|
695
720
|
throw notFound('knowledge entry', id);
|
|
696
721
|
});
|
|
697
722
|
if (current !== undefined)
|
|
698
|
-
this.syncKnowledgeDocuments(current.knowledgeBaseId);
|
|
723
|
+
await this.syncKnowledgeDocuments(current.knowledgeBaseId);
|
|
699
724
|
}
|
|
700
725
|
async propose(input, sourceKey) {
|
|
701
726
|
this.assertOpen();
|
|
@@ -703,6 +728,7 @@ export class LocalKnowledgeProvider {
|
|
|
703
728
|
}
|
|
704
729
|
async writeDirect(input, sourceKey) {
|
|
705
730
|
this.assertOpen();
|
|
731
|
+
await this.documentsReady;
|
|
706
732
|
let touchedBaseId;
|
|
707
733
|
const result = this.transaction(() => {
|
|
708
734
|
const resolution = this.resolveDirectProposal(normalizeProposal(input));
|
|
@@ -736,7 +762,7 @@ export class LocalKnowledgeProvider {
|
|
|
736
762
|
};
|
|
737
763
|
});
|
|
738
764
|
if (touchedBaseId !== undefined)
|
|
739
|
-
this.syncKnowledgeDocuments(touchedBaseId);
|
|
765
|
+
await this.syncKnowledgeDocuments(touchedBaseId);
|
|
740
766
|
return result;
|
|
741
767
|
}
|
|
742
768
|
insertCandidate(proposal, sourceKey) {
|
|
@@ -781,7 +807,8 @@ export class LocalKnowledgeProvider {
|
|
|
781
807
|
const entries = this.activeEntriesForDraft(proposal.draft);
|
|
782
808
|
const bodyMatch = entries.find(entry => normalizedBody(entry.body) === normalizedBody(proposal.draft.body));
|
|
783
809
|
const titleMatch = entries.find(entry => normalizedTitle(entry.title) === normalizedTitle(proposal.draft.title));
|
|
784
|
-
const
|
|
810
|
+
const referenceMatch = entries.find(entry => sharesCanonicalTopicReference(entry, proposal.draft));
|
|
811
|
+
const target = bodyMatch ?? titleMatch ?? referenceMatch;
|
|
785
812
|
if (target === undefined)
|
|
786
813
|
return { outcome: 'created', proposal };
|
|
787
814
|
if (potentiallyConflicts(target, proposal.draft)) {
|
|
@@ -820,6 +847,7 @@ export class LocalKnowledgeProvider {
|
|
|
820
847
|
}
|
|
821
848
|
async review(id, decision) {
|
|
822
849
|
this.assertOpen();
|
|
850
|
+
await this.documentsReady;
|
|
823
851
|
const reviewed = this.transaction(() => {
|
|
824
852
|
const row = this.db.prepare('SELECT * FROM knowledge_candidates WHERE id = ?').get(id);
|
|
825
853
|
if (row === undefined)
|
|
@@ -829,18 +857,34 @@ export class LocalKnowledgeProvider {
|
|
|
829
857
|
throw conflict(`candidate ${id} was already ${candidate.status}`);
|
|
830
858
|
let draft = decision.draft === undefined ? candidate.draft : normalizeDraft(decision.draft);
|
|
831
859
|
if (decision.decision === 'approve') {
|
|
832
|
-
if (candidate.action === '
|
|
833
|
-
this.insertEntry(draft);
|
|
834
|
-
}
|
|
835
|
-
else {
|
|
860
|
+
if (candidate.action === 'conflict') {
|
|
836
861
|
if (candidate.targetId === undefined)
|
|
837
862
|
throw new Error('candidate target is missing');
|
|
838
|
-
const
|
|
839
|
-
if (
|
|
863
|
+
const targetRow = this.db.prepare(`SELECT ${ENTRY_COLUMNS} FROM knowledge_entries WHERE id = ?`).get(candidate.targetId);
|
|
864
|
+
if (targetRow === undefined)
|
|
840
865
|
throw notFound('candidate target', candidate.targetId);
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
866
|
+
const target = rowToEntry(targetRow);
|
|
867
|
+
if (draft.knowledgeBaseId !== target.knowledgeBaseId) {
|
|
868
|
+
throw conflict('candidate approval cannot move a document between knowledge bases');
|
|
869
|
+
}
|
|
870
|
+
this.updateEntry(candidate.targetId, mergeKnowledgeDraft(target, draft, true), 'update');
|
|
871
|
+
}
|
|
872
|
+
else {
|
|
873
|
+
const resolution = this.resolveDirectProposal({
|
|
874
|
+
action: candidate.action,
|
|
875
|
+
...candidate.targetId === undefined ? {} : { targetId: candidate.targetId },
|
|
876
|
+
draft,
|
|
877
|
+
reason: candidate.reason,
|
|
878
|
+
});
|
|
879
|
+
if (resolution.outcome === 'conflict') {
|
|
880
|
+
throw conflict('knowledge changed during review and now requires conflict resolution');
|
|
881
|
+
}
|
|
882
|
+
if (resolution.outcome !== 'duplicate') {
|
|
883
|
+
if (resolution.proposal.action === 'create')
|
|
884
|
+
this.insertEntry(resolution.proposal.draft);
|
|
885
|
+
else
|
|
886
|
+
this.updateEntry(resolution.proposal.targetId, resolution.proposal.draft, 'update');
|
|
887
|
+
}
|
|
844
888
|
}
|
|
845
889
|
}
|
|
846
890
|
const status = decision.decision === 'approve' ? 'approved' : 'rejected';
|
|
@@ -851,7 +895,7 @@ export class LocalKnowledgeProvider {
|
|
|
851
895
|
return { ...candidate, status, reviewedAt, ...note === undefined ? {} : { reviewNote: note } };
|
|
852
896
|
});
|
|
853
897
|
if (decision.decision === 'approve')
|
|
854
|
-
this.syncKnowledgeDocuments(reviewed.draft.knowledgeBaseId);
|
|
898
|
+
await this.syncKnowledgeDocuments(reviewed.draft.knowledgeBaseId);
|
|
855
899
|
return reviewed;
|
|
856
900
|
}
|
|
857
901
|
async claimExtraction(sourceKey) {
|
|
@@ -941,6 +985,7 @@ export class LocalKnowledgeProvider {
|
|
|
941
985
|
async close() {
|
|
942
986
|
if (this.closed)
|
|
943
987
|
return;
|
|
988
|
+
await this.documentsReady;
|
|
944
989
|
this.closed = true;
|
|
945
990
|
this.db.close();
|
|
946
991
|
}
|
|
@@ -966,91 +1011,76 @@ export class LocalKnowledgeProvider {
|
|
|
966
1011
|
.run(entry.id, entry.title, entry.body, entry.tags.join(' '));
|
|
967
1012
|
}
|
|
968
1013
|
}
|
|
969
|
-
syncAllDocuments() {
|
|
1014
|
+
async syncAllDocuments() {
|
|
1015
|
+
await this.documentStore.initialize();
|
|
970
1016
|
const bases = this.db.prepare('SELECT id FROM knowledge_bases').all();
|
|
971
1017
|
for (const base of bases)
|
|
972
|
-
this.syncKnowledgeDocuments(String(base.id));
|
|
1018
|
+
await this.syncKnowledgeDocuments(String(base.id));
|
|
973
1019
|
}
|
|
974
|
-
syncKnowledgeDocuments(knowledgeBaseId) {
|
|
1020
|
+
async syncKnowledgeDocuments(knowledgeBaseId) {
|
|
975
1021
|
const baseRow = this.db.prepare('SELECT * FROM knowledge_bases WHERE id=?').get(knowledgeBaseId);
|
|
976
1022
|
if (baseRow === undefined)
|
|
977
1023
|
return;
|
|
978
1024
|
const base = rowToKnowledgeBase(baseRow);
|
|
1025
|
+
const directory = await this.documentStore.ensureBase(base);
|
|
979
1026
|
const entries = this.db.prepare(`
|
|
980
1027
|
SELECT ${ENTRY_COLUMNS} FROM knowledge_entries
|
|
981
1028
|
WHERE knowledge_base_id=? AND status='active'
|
|
982
|
-
ORDER BY
|
|
1029
|
+
ORDER BY updated_at DESC, id
|
|
983
1030
|
`).all(knowledgeBaseId).map(rowToEntry);
|
|
984
1031
|
const desired = new Map();
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
1032
|
+
for (const entry of entries) {
|
|
1033
|
+
const relPath = knowledgeDocumentPath(entry);
|
|
1034
|
+
const markdown = renderKnowledgeMarkdown({
|
|
1035
|
+
metadata: {
|
|
1036
|
+
id: entry.id,
|
|
1037
|
+
type: entry.type,
|
|
1038
|
+
tags: entry.tags,
|
|
1039
|
+
scope: entry.scope,
|
|
1040
|
+
confidence: entry.confidence,
|
|
1041
|
+
status: entry.status,
|
|
1042
|
+
},
|
|
1043
|
+
title: entry.title,
|
|
1044
|
+
body: entry.body,
|
|
1045
|
+
});
|
|
1046
|
+
const stored = await this.documentStore.writeDocument(directory, relPath, markdown);
|
|
1047
|
+
desired.set(entry.id, {
|
|
1048
|
+
entry,
|
|
1049
|
+
relPath,
|
|
1050
|
+
content: `# ${markdownHeading(entry.title)}\n\n${entry.body.trim()}\n`,
|
|
1051
|
+
contentHash: stored.contentHash,
|
|
998
1052
|
});
|
|
999
1053
|
}
|
|
1000
|
-
const
|
|
1054
|
+
const storedDocuments = await this.documentStore.listDocuments(directory);
|
|
1055
|
+
for (const document of storedDocuments) {
|
|
1056
|
+
const expected = desired.get(document.metadata.id);
|
|
1057
|
+
if (expected === undefined || expected.relPath !== document.relPath) {
|
|
1058
|
+
await this.documentStore.deleteDocument(directory, document.relPath, document.contentHash);
|
|
1059
|
+
}
|
|
1060
|
+
}
|
|
1001
1061
|
const existing = this.db.prepare('SELECT id,rel_path,created_at FROM knowledge_documents WHERE knowledge_base_id=?')
|
|
1002
1062
|
.all(knowledgeBaseId);
|
|
1003
|
-
const
|
|
1004
|
-
for (const [relPath, document] of desired) {
|
|
1005
|
-
const previous = byPath.get(relPath);
|
|
1006
|
-
const hash = createHash('sha256').update(document.content).digest('hex');
|
|
1063
|
+
for (const document of desired.values()) {
|
|
1007
1064
|
this.db.prepare(`
|
|
1008
1065
|
INSERT INTO knowledge_documents(
|
|
1009
1066
|
id,knowledge_base_id,rel_path,title,content,entry_count,content_hash,created_at,updated_at
|
|
1010
1067
|
) VALUES(?,?,?,?,?,?,?,?,?)
|
|
1011
|
-
ON CONFLICT(
|
|
1068
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
1069
|
+
knowledge_base_id=excluded.knowledge_base_id,rel_path=excluded.rel_path,
|
|
1012
1070
|
title=excluded.title,content=excluded.content,entry_count=excluded.entry_count,
|
|
1013
1071
|
content_hash=excluded.content_hash,updated_at=excluded.updated_at
|
|
1014
1072
|
WHERE knowledge_documents.content_hash<>excluded.content_hash
|
|
1073
|
+
OR knowledge_documents.rel_path<>excluded.rel_path
|
|
1015
1074
|
OR knowledge_documents.title<>excluded.title
|
|
1016
1075
|
OR knowledge_documents.entry_count<>excluded.entry_count
|
|
1017
|
-
`).run(
|
|
1076
|
+
`).run(document.entry.id, knowledgeBaseId, document.relPath, document.entry.title, document.content, 1, document.contentHash, document.entry.createdAt, document.entry.updatedAt);
|
|
1018
1077
|
}
|
|
1019
1078
|
for (const row of existing) {
|
|
1020
|
-
if (!desired.has(String(row.
|
|
1079
|
+
if (!desired.has(String(row.id)))
|
|
1021
1080
|
this.db.prepare('DELETE FROM knowledge_documents WHERE id=?').run(String(row.id));
|
|
1022
1081
|
}
|
|
1023
1082
|
}
|
|
1024
1083
|
}
|
|
1025
|
-
const DOCUMENT_TYPES = {
|
|
1026
|
-
preference: { relPath: 'preferences.md', title: '偏好' },
|
|
1027
|
-
fact: { relPath: 'facts.md', title: '事实' },
|
|
1028
|
-
decision: { relPath: 'decisions.md', title: '决策' },
|
|
1029
|
-
procedure: { relPath: 'procedures.md', title: '流程' },
|
|
1030
|
-
lesson: { relPath: 'lessons.md', title: '经验' },
|
|
1031
|
-
};
|
|
1032
|
-
function renderKnowledgeBaseReadme(base, entryCount) {
|
|
1033
|
-
const lines = [`# ${markdownHeading(base.name)}`, ''];
|
|
1034
|
-
if (base.description)
|
|
1035
|
-
lines.push(base.description, '');
|
|
1036
|
-
lines.push(`> 当前包含 ${entryCount} 条已生效知识,由 DSH Knowledge 自动整理为 Markdown 文档。`, '');
|
|
1037
|
-
if (base.defaultTags.length > 0)
|
|
1038
|
-
lines.push(`默认标签:${base.defaultTags.map(tag => `#${tag}`).join(' ')}`, '');
|
|
1039
|
-
lines.push(`回写模型:${base.writebackProvider && base.writebackModel ? `${base.writebackProvider} / ${base.writebackModel}` : '跟随当前会话模型'}`, '');
|
|
1040
|
-
if (base.extractionInstructions)
|
|
1041
|
-
lines.push('## 提取要求', '', base.extractionInstructions, '');
|
|
1042
|
-
return `${lines.join('\n').trim()}\n`;
|
|
1043
|
-
}
|
|
1044
|
-
function renderEntryDocument(base, title, entries) {
|
|
1045
|
-
const lines = [`# ${title}`, '', `> ${base.name} · ${entries.length} 条知识`, ''];
|
|
1046
|
-
for (const entry of entries) {
|
|
1047
|
-
lines.push(`## ${markdownHeading(entry.title)}`, '', entry.body.trim(), '');
|
|
1048
|
-
const scope = entry.scope.kind === 'global' ? '全局' : `项目:${entry.scope.id}`;
|
|
1049
|
-
const metadata = [scope, ...entry.tags.map(tag => `#${tag}`), `置信度 ${Math.round(entry.confidence * 100)}%`];
|
|
1050
|
-
lines.push(`<small>${metadata.join(' · ')}</small>`, '');
|
|
1051
|
-
}
|
|
1052
|
-
return `${lines.join('\n').trim()}\n`;
|
|
1053
|
-
}
|
|
1054
1084
|
function markdownHeading(value) {
|
|
1055
1085
|
return value.replace(/[\r\n]+/g, ' ').replace(/^#+\s*/, '').trim();
|
|
1056
1086
|
}
|
|
@@ -1181,6 +1211,23 @@ function normalizedTitle(value) {
|
|
|
1181
1211
|
function normalizedBody(value) {
|
|
1182
1212
|
return value.normalize('NFKC').toLocaleLowerCase().replace(/\s+/gu, ' ').trim();
|
|
1183
1213
|
}
|
|
1214
|
+
function sharesCanonicalTopicReference(current, incoming) {
|
|
1215
|
+
const currentReferences = canonicalTopicReferences(`${current.title}\n${current.body}`);
|
|
1216
|
+
if (currentReferences.size === 0)
|
|
1217
|
+
return false;
|
|
1218
|
+
return [...canonicalTopicReferences(`${incoming.title}\n${incoming.body}`)]
|
|
1219
|
+
.some(reference => currentReferences.has(reference));
|
|
1220
|
+
}
|
|
1221
|
+
function canonicalTopicReferences(value) {
|
|
1222
|
+
const references = new Set();
|
|
1223
|
+
for (const match of value.matchAll(/https?:\/\/(?:www\.)?github\.com\/([^\s/?#]+)\/([^\s/?#]+)/giu)) {
|
|
1224
|
+
const owner = match[1]?.toLocaleLowerCase();
|
|
1225
|
+
const repository = match[2]?.replace(/\.git$/iu, '').replace(/[.,,。;;::!?!?]+$/u, '').toLocaleLowerCase();
|
|
1226
|
+
if (owner && repository)
|
|
1227
|
+
references.add(`github:${owner}/${repository}`);
|
|
1228
|
+
}
|
|
1229
|
+
return references;
|
|
1230
|
+
}
|
|
1184
1231
|
function sameScope(left, right) {
|
|
1185
1232
|
return left.kind === right.kind && (left.kind === 'global' || left.id === right.id);
|
|
1186
1233
|
}
|
|
@@ -1288,9 +1335,28 @@ function fallbackTerms(text) {
|
|
|
1288
1335
|
}
|
|
1289
1336
|
return [...terms].slice(0, 20);
|
|
1290
1337
|
}
|
|
1291
|
-
function
|
|
1292
|
-
|
|
1338
|
+
function relevanceScore(entry, query) {
|
|
1339
|
+
const normalizedQuery = normalizedBody(query);
|
|
1340
|
+
if (normalizedQuery.length === 0)
|
|
1341
|
+
return 1;
|
|
1342
|
+
const title = normalizedBody(entry.title);
|
|
1343
|
+
const body = normalizedBody(entry.body);
|
|
1344
|
+
const tags = normalizedBody(entry.tags.join(' '));
|
|
1345
|
+
const combined = `${title}\n${body}\n${tags}`;
|
|
1346
|
+
if (combined.includes(normalizedQuery))
|
|
1347
|
+
return .98;
|
|
1348
|
+
const terms = fallbackTerms(query).filter(term => !SEARCH_STOP_TERMS.has(term));
|
|
1349
|
+
if (terms.length === 0)
|
|
1350
|
+
return .25;
|
|
1351
|
+
const coverage = terms.filter(term => combined.includes(term)).length / terms.length;
|
|
1352
|
+
const titleCoverage = terms.filter(term => title.includes(term)).length / terms.length;
|
|
1353
|
+
const tagCoverage = terms.filter(term => tags.includes(term)).length / terms.length;
|
|
1354
|
+
return Math.min(.97, .05 + coverage * .72 + titleCoverage * .13 + tagCoverage * .1);
|
|
1293
1355
|
}
|
|
1356
|
+
const SEARCH_STOP_TERMS = new Set([
|
|
1357
|
+
'a', 'an', 'and', 'are', 'for', 'how', 'is', 'of', 'or', 'the', 'to', 'what', 'when', 'where', 'which', 'who', 'why',
|
|
1358
|
+
'什么', '么是', '如何', '怎么', '是否', '介绍',
|
|
1359
|
+
]);
|
|
1294
1360
|
function encodeCursor(updatedAt, id) {
|
|
1295
1361
|
return Buffer.from(JSON.stringify({ updatedAt, id })).toString('base64url');
|
|
1296
1362
|
}
|