@mdfriday/foundry 26.4.19 → 26.5.1
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/cjs/index.js +1 -1
- package/dist/cjs/obsidian/mobile.js +1 -1
- package/dist/cjs/worker/pool-manager.js +341 -362
- package/dist/cjs/worker/worker-node.js +110 -132
- package/dist/esm/index.js +1 -1
- package/dist/esm/obsidian/mobile.js +1 -1
- package/dist/types/internal/application/batch-task-queue.d.ts +17 -0
- package/dist/types/internal/application/container.d.ts +68 -1
- package/dist/types/internal/application/identity.d.ts +173 -0
- package/dist/types/internal/application/incremental-build-coordinator.d.ts +28 -0
- package/dist/types/internal/application/incremental-ssg.d.ts +4 -0
- package/dist/types/internal/application/index.d.ts +5 -4
- package/dist/types/internal/application/publish.d.ts +37 -0
- package/dist/types/internal/application/ssg-parallel.d.ts +6 -0
- package/dist/types/internal/application/ssg.d.ts +15 -0
- package/dist/types/internal/application/wiki-service-config.d.ts +65 -0
- package/dist/types/internal/application/wiki-service.d.ts +199 -0
- package/dist/types/internal/application/worker/pool-manager.d.ts +43 -0
- package/dist/types/internal/application/worker/worker-browser.d.ts +6 -0
- package/dist/types/internal/application/worker/worker-main.d.ts +12 -0
- package/dist/types/internal/application/worker/worker-state.d.ts +23 -0
- package/dist/types/internal/application/workspace.d.ts +98 -0
- package/dist/types/internal/domain/config/entity/config.d.ts +40 -0
- package/dist/types/internal/domain/config/entity/language.d.ts +51 -0
- package/dist/types/internal/domain/config/entity/markdown.d.ts +36 -0
- package/dist/types/internal/domain/config/entity/module.d.ts +36 -0
- package/dist/types/internal/domain/config/entity/root.d.ts +39 -0
- package/dist/types/internal/domain/config/entity/service.d.ts +36 -0
- package/dist/types/internal/domain/config/entity/social.d.ts +43 -0
- package/dist/types/internal/domain/config/entity/taxonomy.d.ts +39 -0
- package/dist/types/internal/domain/config/factory/config.d.ts +3 -0
- package/dist/types/internal/domain/config/factory/loader.d.ts +24 -0
- package/dist/types/internal/domain/config/factory/provider.d.ts +10 -0
- package/dist/types/internal/domain/config/factory/sourcedescriptor.d.ts +12 -0
- package/dist/types/internal/domain/config/type.d.ts +56 -0
- package/dist/types/internal/domain/config/vo/language.d.ts +6 -0
- package/dist/types/internal/domain/config/vo/markdown.d.ts +13 -0
- package/dist/types/internal/domain/config/vo/module.d.ts +9 -0
- package/dist/types/internal/domain/config/vo/root.d.ts +6 -0
- package/dist/types/internal/domain/config/vo/service.d.ts +6 -0
- package/dist/types/internal/domain/config/vo/social.d.ts +16 -0
- package/dist/types/internal/domain/config/vo/taxonomy.d.ts +12 -0
- package/dist/types/internal/domain/content/entity/content.d.ts +36 -0
- package/dist/types/internal/domain/content/entity/page.d.ts +23 -0
- package/dist/types/internal/domain/content/entity/pagebuilder.d.ts +83 -0
- package/dist/types/internal/domain/content/entity/pagecollector.d.ts +3 -0
- package/dist/types/internal/domain/content/entity/pagecontent.d.ts +14 -0
- package/dist/types/internal/domain/content/entity/pagemap.d.ts +69 -0
- package/dist/types/internal/domain/content/entity/pagesource.d.ts +52 -0
- package/dist/types/internal/domain/content/entity/pagetrees.d.ts +12 -0
- package/dist/types/internal/domain/content/entity/paginator.d.ts +19 -0
- package/dist/types/internal/domain/content/entity/section.d.ts +15 -0
- package/dist/types/internal/domain/content/entity/shortcode.d.ts +39 -0
- package/dist/types/internal/domain/content/entity/standalone.d.ts +9 -0
- package/dist/types/internal/domain/content/entity/taxonomy.d.ts +15 -0
- package/dist/types/internal/domain/content/entity/term.d.ts +6 -0
- package/dist/types/internal/domain/content/entity/translator.d.ts +22 -0
- package/dist/types/internal/domain/content/type.d.ts +6 -0
- package/dist/types/internal/domain/content/vo/classifier.d.ts +24 -0
- package/dist/types/internal/domain/content/vo/frontmatter.d.ts +65 -0
- package/dist/types/internal/domain/content/vo/kind.d.ts +10 -0
- package/dist/types/internal/domain/fs/entity/basefs.d.ts +23 -0
- package/dist/types/internal/domain/fs/entity/fs.d.ts +13 -0
- package/dist/types/internal/domain/fs/entity/originfs.d.ts +6 -0
- package/dist/types/internal/domain/fs/entity/overlaydir.d.ts +44 -0
- package/dist/types/internal/domain/fs/entity/overlayfs.d.ts +79 -0
- package/dist/types/internal/domain/fs/entity/service.d.ts +15 -0
- package/dist/types/internal/domain/fs/factory/fs.d.ts +4 -0
- package/dist/types/internal/domain/fs/type.d.ts +95 -0
- package/dist/types/internal/domain/fs/vo/dir.d.ts +41 -0
- package/dist/types/internal/domain/fs/vo/file.d.ts +28 -0
- package/dist/types/internal/domain/fs/vo/fileinfo.d.ts +23 -0
- package/dist/types/internal/domain/fs/vo/filemeta.d.ts +45 -0
- package/dist/types/internal/domain/fs/vo/filesystemscollector.d.ts +17 -0
- package/dist/types/internal/domain/fs/vo/filevitural.d.ts +8 -0
- package/dist/types/internal/domain/fs/vo/osfs.d.ts +12 -0
- package/dist/types/internal/domain/fs/vo/overlay-factory.d.ts +4 -0
- package/dist/types/internal/domain/fs/vo/overlayfs-factory.d.ts +42 -0
- package/dist/types/internal/domain/fs/vo/overlayoptions.d.ts +44 -0
- package/dist/types/internal/domain/fs/vo/static-copier.d.ts +22 -0
- package/dist/types/internal/domain/fs/vo/walkway.d.ts +22 -0
- package/dist/types/internal/domain/identity/entity/user.d.ts +100 -0
- package/dist/types/internal/domain/identity/factory/user-factory.d.ts +183 -0
- package/dist/types/internal/domain/identity/repository/index.d.ts +30 -0
- package/dist/types/internal/domain/identity/type.d.ts +17 -0
- package/dist/types/internal/domain/identity/value-object/device.d.ts +26 -0
- package/dist/types/internal/domain/identity/value-object/email.d.ts +29 -0
- package/dist/types/internal/domain/identity/value-object/license.d.ts +91 -0
- package/dist/types/internal/domain/identity/value-object/server-config.d.ts +37 -0
- package/dist/types/internal/domain/identity/value-object/sync-config.d.ts +47 -0
- package/dist/types/internal/domain/identity/value-object/token.d.ts +35 -0
- package/dist/types/internal/domain/markdown/entity/markdown.d.ts +41 -0
- package/dist/types/internal/domain/markdown/factory/it/config.d.ts +60 -0
- package/dist/types/internal/domain/markdown/factory/it/index.d.ts +21 -1
- package/dist/types/internal/domain/markdown/factory/it/parserresult.d.ts +3 -0
- package/dist/types/internal/domain/markdown/factory/it/plugins/callout-plugin.d.ts +40 -0
- package/dist/types/internal/domain/markdown/factory/it/plugins/latex-plugin.d.ts +23 -0
- package/dist/types/internal/domain/markdown/factory/it/plugins/mermaid-plugin.d.ts +24 -0
- package/dist/types/internal/domain/markdown/factory/it/plugins/tag-plugin.d.ts +71 -0
- package/dist/types/internal/domain/markdown/factory/it/plugins/wikilink-plugin.d.ts +28 -0
- package/dist/types/internal/domain/markdown/factory/it/plugins/wikilink.d.ts +31 -0
- package/dist/types/internal/domain/markdown/factory/it/tableofcontents.d.ts +21 -0
- package/dist/types/internal/domain/markdown/factory/it/util/path.d.ts +11 -0
- package/dist/types/internal/domain/markdown/factory/it/util/slugger-fallback.d.ts +6 -0
- package/dist/types/internal/domain/markdown/type.d.ts +159 -0
- package/dist/types/internal/domain/markdown/vo/config.d.ts +48 -0
- package/dist/types/internal/domain/markdown/vo/content.d.ts +92 -0
- package/dist/types/internal/domain/markdown/vo/context.d.ts +9 -0
- package/dist/types/internal/domain/markdown/vo/highlight.d.ts +15 -0
- package/dist/types/internal/domain/markdown/vo/pageparser.d.ts +9 -0
- package/dist/types/internal/domain/markdown/vo/parseinfo.d.ts +36 -0
- package/dist/types/internal/domain/markdown/vo/parserresult.d.ts +6 -0
- package/dist/types/internal/domain/markdown/vo/shortcode.d.ts +31 -1
- package/dist/types/internal/domain/markdown/vo/tableofcontents.d.ts +21 -0
- package/dist/types/internal/domain/module/entity/lang.d.ts +12 -0
- package/dist/types/internal/domain/module/entity/module.d.ts +73 -0
- package/dist/types/internal/domain/module/factory/module.d.ts +6 -0
- package/dist/types/internal/domain/module/type.d.ts +58 -0
- package/dist/types/internal/domain/module/vo/cache.d.ts +48 -0
- package/dist/types/internal/domain/module/vo/httpclient.d.ts +14 -0
- package/dist/types/internal/domain/module/vo/module.d.ts +76 -0
- package/dist/types/internal/domain/module/vo/mount.d.ts +39 -0
- package/dist/types/internal/domain/module/vo/themes.d.ts +38 -0
- package/dist/types/internal/domain/module/vo/zipextractor.d.ts +31 -0
- package/dist/types/internal/domain/paths/entity/path.d.ts +28 -0
- package/dist/types/internal/domain/paths/factory/pathfactory.d.ts +82 -0
- package/dist/types/internal/domain/paths/type.d.ts +133 -1
- package/dist/types/internal/domain/paths/vo/pathcomponents.d.ts +94 -0
- package/dist/types/internal/domain/paths/vo/pathparser.d.ts +77 -0
- package/dist/types/internal/domain/publish/entity/publisher.d.ts +26 -0
- package/dist/types/internal/domain/publish/factory/publisher-factory.d.ts +17 -0
- package/dist/types/internal/domain/publish/repository/http-client.d.ts +21 -0
- package/dist/types/internal/domain/publish/repository/manifest-repository.d.ts +27 -0
- package/dist/types/internal/domain/publish/type.d.ts +49 -0
- package/dist/types/internal/domain/publish/value-object/ftp-publisher.d.ts +30 -0
- package/dist/types/internal/domain/publish/value-object/mdfriday-publisher.d.ts +57 -0
- package/dist/types/internal/domain/publish/value-object/netlify-publisher.d.ts +55 -0
- package/dist/types/internal/domain/publish/value-object/publish-config.d.ts +38 -0
- package/dist/types/internal/domain/publish/value-object/publish-manifest.d.ts +50 -0
- package/dist/types/internal/domain/resources/entity/http.d.ts +11 -0
- package/dist/types/internal/domain/resources/entity/integrity.d.ts +4 -0
- package/dist/types/internal/domain/resources/entity/minifier.d.ts +4 -0
- package/dist/types/internal/domain/resources/entity/publisher.d.ts +24 -0
- package/dist/types/internal/domain/resources/entity/resource.d.ts +4 -0
- package/dist/types/internal/domain/resources/entity/resources.d.ts +40 -0
- package/dist/types/internal/domain/resources/entity/template.d.ts +4 -0
- package/dist/types/internal/domain/resources/factory/resource.d.ts +4 -0
- package/dist/types/internal/domain/site/entity/language.d.ts +55 -0
- package/dist/types/internal/domain/site/entity/menu-builder.d.ts +50 -0
- package/dist/types/internal/domain/site/entity/navigation.d.ts +8 -0
- package/dist/types/internal/domain/site/entity/page.d.ts +88 -0
- package/dist/types/internal/domain/site/entity/pagegraph.d.ts +85 -0
- package/dist/types/internal/domain/site/entity/pager.d.ts +6 -0
- package/dist/types/internal/domain/site/entity/publisher.d.ts +26 -0
- package/dist/types/internal/domain/site/entity/ref.d.ts +27 -0
- package/dist/types/internal/domain/site/entity/site.d.ts +178 -0
- package/dist/types/internal/domain/site/factory/navigation-factory.d.ts +6 -0
- package/dist/types/internal/domain/site/factory/site.d.ts +4 -0
- package/dist/types/internal/domain/site/service/html-link-processor.d.ts +44 -0
- package/dist/types/internal/domain/site/type.d.ts +100 -0
- package/dist/types/internal/domain/site/valueobject/author.d.ts +16 -0
- package/dist/types/internal/domain/site/valueobject/baseurl.d.ts +39 -0
- package/dist/types/internal/domain/site/valueobject/menu.d.ts +49 -0
- package/dist/types/internal/domain/site/valueobject/organization.d.ts +37 -0
- package/dist/types/internal/domain/site/valueobject/path.d.ts +50 -0
- package/dist/types/internal/domain/site/valueobject/version.d.ts +14 -0
- package/dist/types/internal/domain/template/entity/executor.d.ts +22 -0
- package/dist/types/internal/domain/template/entity/lookup.d.ts +55 -0
- package/dist/types/internal/domain/template/entity/parser.d.ts +40 -0
- package/dist/types/internal/domain/template/entity/template.d.ts +87 -0
- package/dist/types/internal/domain/template/factory/template.d.ts +61 -0
- package/dist/types/internal/domain/template/type.d.ts +109 -0
- package/dist/types/internal/domain/template/vo/baseof.d.ts +47 -0
- package/dist/types/internal/domain/template/vo/info.d.ts +28 -0
- package/dist/types/internal/domain/template/vo/namespace.d.ts +91 -0
- package/dist/types/internal/domain/template/vo/registry.d.ts +160 -0
- package/dist/types/internal/domain/wiki/entity/concept.d.ts +31 -0
- package/dist/types/internal/domain/wiki/entity/connection.d.ts +29 -0
- package/dist/types/internal/domain/wiki/entity/conversation.d.ts +65 -0
- package/dist/types/internal/domain/wiki/entity/embedding-index.d.ts +60 -0
- package/dist/types/internal/domain/wiki/entity/entity.d.ts +32 -0
- package/dist/types/internal/domain/wiki/entity/knowledge-base.d.ts +292 -0
- package/dist/types/internal/domain/wiki/entity/operation-log.d.ts +82 -0
- package/dist/types/internal/domain/wiki/factory/wiki-factory.d.ts +41 -0
- package/dist/types/internal/domain/wiki/index.d.ts +22 -0
- package/dist/types/internal/domain/wiki/repository/conversation-repository.interface.d.ts +29 -0
- package/dist/types/internal/domain/wiki/repository/crypto-service.d.ts +16 -0
- package/dist/types/internal/domain/wiki/repository/embedding-provider.d.ts +12 -0
- package/dist/types/internal/domain/wiki/repository/file-system.d.ts +43 -0
- package/dist/types/internal/domain/wiki/repository/index.d.ts +14 -0
- package/dist/types/internal/domain/wiki/repository/kb-repository.interface.d.ts +30 -0
- package/dist/types/internal/domain/wiki/repository/llm-http-client.d.ts +40 -0
- package/dist/types/internal/domain/wiki/repository/llm-provider.d.ts +34 -0
- package/dist/types/internal/domain/wiki/repository/path-service.d.ts +32 -0
- package/dist/types/internal/domain/wiki/repository/wiki-page-repository.interface.d.ts +49 -0
- package/dist/types/internal/domain/wiki/value-object/connection-type.d.ts +24 -0
- package/dist/types/internal/domain/wiki/value-object/content-annotator.d.ts +61 -0
- package/dist/types/internal/domain/wiki/value-object/entity-id.d.ts +17 -0
- package/dist/types/internal/domain/wiki/value-object/entity-type.d.ts +24 -0
- package/dist/types/internal/domain/wiki/value-object/extraction-parser.d.ts +27 -0
- package/dist/types/internal/domain/wiki/value-object/extraction-result.d.ts +32 -0
- package/dist/types/internal/domain/wiki/value-object/retrieval.d.ts +228 -0
- package/dist/types/internal/domain/wiki/value-object/source-record.d.ts +17 -0
- package/dist/types/internal/domain/wiki/value-object/wiki-config.d.ts +40 -0
- package/dist/types/internal/domain/wiki/value-object/wiki-index-generator.d.ts +31 -0
- package/dist/types/internal/domain/wiki/value-object/wiki-page-renderer.d.ts +42 -0
- package/dist/types/internal/domain/workspace/entity/authentication.d.ts +29 -0
- package/dist/types/internal/domain/workspace/entity/project.d.ts +173 -0
- package/dist/types/internal/domain/workspace/entity/workspace.d.ts +85 -0
- package/dist/types/internal/domain/workspace/factory/workspace-factory.d.ts +107 -0
- package/dist/types/internal/domain/workspace/repository/file-system.d.ts +241 -0
- package/dist/types/internal/domain/workspace/repository/index.d.ts +6 -0
- package/dist/types/internal/domain/workspace/repository.d.ts +72 -0
- package/dist/types/internal/domain/workspace/type.d.ts +18 -0
- package/dist/types/internal/domain/workspace/value-object/folder-structure.d.ts +41 -0
- package/dist/types/internal/domain/workspace/value-object/project-metadata.d.ts +36 -0
- package/dist/types/internal/domain/workspace/value-object/workspace-metadata.d.ts +7 -0
- package/dist/types/internal/infrastructure/embedding/embedding-provider.interface.d.ts +33 -0
- package/dist/types/internal/infrastructure/embedding/index.d.ts +5 -0
- package/dist/types/internal/infrastructure/embedding/ollama-embedding-provider.d.ts +24 -0
- package/dist/types/internal/infrastructure/http/netlify-http-client.d.ts +20 -0
- package/dist/types/internal/infrastructure/http/node-http-client.d.ts +3 -0
- package/dist/types/internal/infrastructure/index.d.ts +8 -0
- package/dist/types/internal/infrastructure/llm/fetch-http-client.d.ts +24 -0
- package/dist/types/internal/infrastructure/llm/index.d.ts +6 -0
- package/dist/types/internal/infrastructure/llm/llm-config.d.ts +80 -0
- package/dist/types/internal/infrastructure/llm/lmstudio-provider.d.ts +55 -0
- package/dist/types/internal/infrastructure/llm/node-llm-http-client.d.ts +21 -0
- package/dist/types/internal/infrastructure/llm/ollama-provider.d.ts +17 -0
- package/dist/types/internal/infrastructure/llm/openai-compatible-provider.d.ts +70 -0
- package/dist/types/internal/infrastructure/llm/provider-factory.d.ts +36 -0
- package/dist/types/internal/infrastructure/llm/provider.d.ts +77 -0
- package/dist/types/internal/infrastructure/node/index.d.ts +11 -0
- package/dist/types/internal/infrastructure/node/node-conversation-repository.d.ts +21 -0
- package/dist/types/internal/infrastructure/node/node-crypto-service.d.ts +10 -0
- package/dist/types/internal/infrastructure/node/node-file-system.d.ts +29 -0
- package/dist/types/internal/infrastructure/node/node-kb-repository.d.ts +18 -0
- package/dist/types/internal/infrastructure/node/node-path-service.d.ts +14 -0
- package/dist/types/internal/infrastructure/node/node-wiki-page-repository.d.ts +25 -0
- package/dist/types/internal/infrastructure/persistence/node-file-system.d.ts +8 -0
- package/dist/types/internal/infrastructure/persistence/node-manifest-repository.d.ts +31 -0
- package/dist/types/internal/infrastructure/persistence/node-snapshot-repository.d.ts +28 -0
- package/dist/types/internal/infrastructure/persistence/node-workspace-repository.d.ts +9 -0
- package/dist/types/pkg/cahce/cache.d.ts +56 -0
- package/dist/types/pkg/lang/data.d.ts +21 -0
- package/dist/types/pkg/lang/index.d.ts +46 -0
- package/dist/types/pkg/lang/service.d.ts +49 -0
- package/dist/types/pkg/lang/types.d.ts +29 -0
- package/dist/types/pkg/log/http.d.ts +16 -0
- package/dist/types/pkg/log/manager.d.ts +57 -0
- package/dist/types/pkg/maps/scratch.d.ts +25 -0
- package/dist/types/pkg/md/parser/item.d.ts +3 -3
- package/dist/types/pkg/media/type.d.ts +19 -0
- package/dist/types/pkg/page-filter/index.d.ts +29 -0
- package/dist/types/pkg/paths/index.d.ts +9 -0
- package/dist/types/pkg/text/index.d.ts +4 -0
- package/dist/types/pkg/web/server/livereload-server.d.ts +7 -0
- package/dist/types/pkg/web/watcher/content-file-watcher.d.ts +3 -0
- package/package.json +21 -15
- package/dist/types/index.d.ts +0 -20
- package/dist/types/internal/interfaces/obsidian/adapters/identity-adapter.d.ts +0 -5
- package/dist/types/internal/interfaces/obsidian/adapters/index.d.ts +0 -2
- package/dist/types/internal/interfaces/obsidian/adapters/workspace-adapter.d.ts +0 -8
- package/dist/types/internal/interfaces/obsidian/desktop/adapters/identity-adapter.d.ts +0 -6
- package/dist/types/internal/interfaces/obsidian/desktop/adapters/index.d.ts +0 -2
- package/dist/types/internal/interfaces/obsidian/desktop/adapters/workspace-adapter.d.ts +0 -12
- package/dist/types/internal/interfaces/obsidian/desktop/container.d.ts +0 -7
- package/dist/types/internal/interfaces/obsidian/desktop/index.d.ts +0 -22
- package/dist/types/internal/interfaces/obsidian/index.d.ts +0 -7
- package/dist/types/internal/interfaces/obsidian/mobile/adapters/identity-adapter.d.ts +0 -9
- package/dist/types/internal/interfaces/obsidian/mobile/adapters/index.d.ts +0 -2
- package/dist/types/internal/interfaces/obsidian/mobile/adapters/workspace-adapter.d.ts +0 -13
- package/dist/types/internal/interfaces/obsidian/mobile/config-types.d.ts +0 -13
- package/dist/types/internal/interfaces/obsidian/mobile/container.d.ts +0 -6
- package/dist/types/internal/interfaces/obsidian/mobile/index.d.ts +0 -16
- package/dist/types/internal/interfaces/obsidian/mobile.d.ts +0 -2
- package/dist/types/internal/interfaces/obsidian/services/auth.service.d.ts +0 -11
- package/dist/types/internal/interfaces/obsidian/services/build.service.d.ts +0 -9
- package/dist/types/internal/interfaces/obsidian/services/config.service.d.ts +0 -31
- package/dist/types/internal/interfaces/obsidian/services/domain.service.d.ts +0 -15
- package/dist/types/internal/interfaces/obsidian/services/license.service.d.ts +0 -22
- package/dist/types/internal/interfaces/obsidian/services/project.service.d.ts +0 -17
- package/dist/types/internal/interfaces/obsidian/services/publish.service.d.ts +0 -11
- package/dist/types/internal/interfaces/obsidian/services/serve.service.d.ts +0 -18
- package/dist/types/internal/interfaces/obsidian/services/workspace.service.d.ts +0 -10
- package/dist/types/internal/interfaces/obsidian/types/auth.d.ts +0 -27
- package/dist/types/internal/interfaces/obsidian/types/build.d.ts +0 -23
- package/dist/types/internal/interfaces/obsidian/types/config.d.ts +0 -16
- package/dist/types/internal/interfaces/obsidian/types/domain.d.ts +0 -46
- package/dist/types/internal/interfaces/obsidian/types/index.d.ts +0 -9
- package/dist/types/internal/interfaces/obsidian/types/license.d.ts +0 -87
- package/dist/types/internal/interfaces/obsidian/types/project.d.ts +0 -56
- package/dist/types/internal/interfaces/obsidian/types/publish.d.ts +0 -33
- package/dist/types/internal/interfaces/obsidian/types/serve.d.ts +0 -46
- package/dist/types/internal/interfaces/obsidian/types/workspace.d.ts +0 -27
- package/dist/types/pkg/log/browser-manager.d.ts +0 -20
- package/dist/types/pkg/log/browser.d.ts +0 -25
- package/dist/types/pkg/media/buildin.d.ts +0 -3
|
@@ -1,36 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Application Layer: Identity Management Service
|
|
3
|
+
*
|
|
4
|
+
* 职责:
|
|
5
|
+
* - 协调 Identity Domain 和其他 Domain 的交互
|
|
6
|
+
* - 提供应用级的 Identity 服务
|
|
7
|
+
* - 不包含业务逻辑(业务逻辑在 Domain 层)
|
|
8
|
+
*/
|
|
1
9
|
import { UserFactory } from '@internal/domain/identity/factory/user-factory';
|
|
2
10
|
import { User, UserStatus } from '@internal/domain/identity/entity/user';
|
|
3
11
|
import { ServerConfig } from '@internal/domain/identity/value-object/server-config';
|
|
4
12
|
import { License } from '@internal/domain/identity/value-object/license';
|
|
5
13
|
import { Device } from '@internal/domain/identity/value-object/device';
|
|
14
|
+
/**
|
|
15
|
+
* IdentityAppService Options
|
|
16
|
+
*/
|
|
6
17
|
export interface IdentityAppServiceOptions {
|
|
7
18
|
userFactory: UserFactory;
|
|
8
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Identity Application Service
|
|
22
|
+
*
|
|
23
|
+
* 提供应用层的 Identity 服务
|
|
24
|
+
*/
|
|
9
25
|
export declare class IdentityAppService {
|
|
10
26
|
private userFactory;
|
|
11
27
|
private currentUser;
|
|
12
28
|
private cachedServerConfig;
|
|
13
29
|
constructor(options: IdentityAppServiceOptions);
|
|
30
|
+
/**
|
|
31
|
+
* 初始化服务(加载已保存的用户和服务器配置)
|
|
32
|
+
*/
|
|
14
33
|
initialize(): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* 用户登录
|
|
36
|
+
*/
|
|
15
37
|
login(email: string, password: string): Promise<User>;
|
|
38
|
+
/**
|
|
39
|
+
* 用户注册
|
|
40
|
+
*/
|
|
16
41
|
register(email: string, password: string): Promise<User>;
|
|
42
|
+
/**
|
|
43
|
+
* 用户登出
|
|
44
|
+
*/
|
|
17
45
|
logout(): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* 获取当前用户
|
|
48
|
+
*/
|
|
18
49
|
getCurrentUser(): User | null;
|
|
50
|
+
/**
|
|
51
|
+
* 检查是否已认证
|
|
52
|
+
*/
|
|
19
53
|
isAuthenticated(): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* 获取认证令牌字符串
|
|
56
|
+
*/
|
|
20
57
|
getToken(): string | null;
|
|
58
|
+
/**
|
|
59
|
+
* 获取认证状态
|
|
60
|
+
*/
|
|
61
|
+
/**
|
|
62
|
+
* 获取用户状态
|
|
63
|
+
*
|
|
64
|
+
* @returns 用户状态信息,包括认证、License 和 Sync 配置
|
|
65
|
+
*/
|
|
21
66
|
getStatus(): UserStatus;
|
|
67
|
+
/**
|
|
68
|
+
* 获取服务器配置
|
|
69
|
+
*
|
|
70
|
+
* 优先级:当前用户配置 > 缓存配置 > 默认配置
|
|
71
|
+
*/
|
|
22
72
|
getServerConfig(): ServerConfig;
|
|
73
|
+
/**
|
|
74
|
+
* 更新服务器配置
|
|
75
|
+
*/
|
|
23
76
|
updateServerConfig(updates: {
|
|
24
77
|
apiUrl?: string;
|
|
25
78
|
websiteUrl?: string;
|
|
26
79
|
}): Promise<void>;
|
|
80
|
+
/**
|
|
81
|
+
* 申请试用 License(只申请,不激活)
|
|
82
|
+
*
|
|
83
|
+
* @param email - 用户邮箱
|
|
84
|
+
* @returns 试用 License 信息和凭证
|
|
85
|
+
*/
|
|
27
86
|
requestTrial(email: string): Promise<import("@internal/domain/identity/factory/user-factory").TrialLicenseResponse>;
|
|
87
|
+
/**
|
|
88
|
+
* 使用 License Key 登录
|
|
89
|
+
*
|
|
90
|
+
* License Key 会自动生成 email 和 password
|
|
91
|
+
*
|
|
92
|
+
* @param licenseKey - License Key (MDF-XXXX-XXXX-XXXX)
|
|
93
|
+
* @returns 登录成功的用户
|
|
94
|
+
*/
|
|
28
95
|
loginWithLicense(licenseKey: string): Promise<User>;
|
|
96
|
+
/**
|
|
97
|
+
* 激活 License
|
|
98
|
+
*
|
|
99
|
+
* @param licenseKey - License Key
|
|
100
|
+
* @param device - 设备信息(可选)
|
|
101
|
+
* @returns 激活后的用户
|
|
102
|
+
*/
|
|
29
103
|
activateLicense(licenseKey: string, device?: Device): Promise<User>;
|
|
104
|
+
/**
|
|
105
|
+
* 完整的试用流程:申请 → 登录 → 激活
|
|
106
|
+
*
|
|
107
|
+
* 简化操作:只需提供邮箱即可
|
|
108
|
+
*
|
|
109
|
+
* @param email - 用户邮箱
|
|
110
|
+
* @returns 已激活试用 License 的用户
|
|
111
|
+
*/
|
|
112
|
+
/**
|
|
113
|
+
* 申请试用 License 并自动激活
|
|
114
|
+
*
|
|
115
|
+
* 流程:
|
|
116
|
+
* 1. 申请试用 License
|
|
117
|
+
* 2. 使用 License Key 登录
|
|
118
|
+
* 3. 激活 License
|
|
119
|
+
*
|
|
120
|
+
* @param email - 用户邮箱
|
|
121
|
+
* @returns 登录并激活后的 User
|
|
122
|
+
*/
|
|
30
123
|
requestAndActivateTrial(email: string): Promise<User>;
|
|
124
|
+
/**
|
|
125
|
+
* 获取当前用户的 License
|
|
126
|
+
*/
|
|
31
127
|
getLicense(): License | null;
|
|
128
|
+
/**
|
|
129
|
+
* 检查用户是否有有效的 License
|
|
130
|
+
*/
|
|
32
131
|
hasValidLicense(): boolean;
|
|
132
|
+
/**
|
|
133
|
+
* 检查是否是试用账户
|
|
134
|
+
*/
|
|
33
135
|
isTrialAccount(): boolean;
|
|
136
|
+
/**
|
|
137
|
+
* 获取 License 信息(用于显示)
|
|
138
|
+
* 从当前用户的 License 对象获取,不调用 API
|
|
139
|
+
*/
|
|
34
140
|
getLicenseDisplay(): {
|
|
35
141
|
key: string;
|
|
36
142
|
plan: string;
|
|
@@ -41,28 +147,95 @@ export declare class IdentityAppService {
|
|
|
41
147
|
isTrial: boolean;
|
|
42
148
|
features: import("@internal/domain/identity/value-object/license").LicenseFeatures;
|
|
43
149
|
} | null;
|
|
150
|
+
/**
|
|
151
|
+
* 自动刷新当前用户的 Token(如果需要)
|
|
152
|
+
*
|
|
153
|
+
* 当用户使用 License 登录后,token 会在 30 天后过期
|
|
154
|
+
* 此方法检查 token 是否过期,如果是则自动使用 license 重新登录
|
|
155
|
+
*
|
|
156
|
+
* @returns 是否执行了刷新操作
|
|
157
|
+
*/
|
|
44
158
|
refreshTokenIfNeeded(): Promise<boolean>;
|
|
159
|
+
/**
|
|
160
|
+
* 执行需要认证的请求,自动处理 token 刷新
|
|
161
|
+
*
|
|
162
|
+
* 当请求返回 401 时,自动刷新 token 并重试
|
|
163
|
+
* 这是对 UserFactory.requestWithAutoRefresh 的应用层封装
|
|
164
|
+
*
|
|
165
|
+
* @param requestFn - 执行实际请求的函数,接收 token 字符串作为参数
|
|
166
|
+
* @returns 请求结果
|
|
167
|
+
*
|
|
168
|
+
* @example
|
|
169
|
+
* ```typescript
|
|
170
|
+
* const result = await identityService.requestWithAutoRefresh(async (token) => {
|
|
171
|
+
* return httpClient.post('/api/some-endpoint', { data }, {
|
|
172
|
+
* headers: { Authorization: `Bearer ${token}` }
|
|
173
|
+
* });
|
|
174
|
+
* });
|
|
175
|
+
* ```
|
|
176
|
+
*/
|
|
45
177
|
requestWithAutoRefresh<T>(requestFn: (tokenValue: string) => Promise<T>): Promise<T>;
|
|
178
|
+
/**
|
|
179
|
+
* 获取 License 使用量信息
|
|
180
|
+
*
|
|
181
|
+
* @returns License 使用量信息
|
|
182
|
+
*/
|
|
46
183
|
getLicenseUsage(): Promise<import("@internal/domain/identity/factory/user-factory").LicenseUsageResponse | null>;
|
|
184
|
+
/**
|
|
185
|
+
* 获取 License 详细信息
|
|
186
|
+
*
|
|
187
|
+
* @param licenseKey - 可选的 License Key,如果不提供则从当前用户的 license 中获取
|
|
188
|
+
*/
|
|
47
189
|
getLicenseInfo(licenseKey?: string): Promise<any>;
|
|
190
|
+
/**
|
|
191
|
+
* 重置 License 使用量
|
|
192
|
+
*/
|
|
48
193
|
resetUsage(): Promise<{
|
|
49
194
|
success: boolean;
|
|
50
195
|
message?: string;
|
|
51
196
|
}>;
|
|
197
|
+
/**
|
|
198
|
+
* 获取域名信息(包括子域名和自定义域名)
|
|
199
|
+
*/
|
|
52
200
|
getDomains(): Promise<import("@internal/domain/identity/factory/user-factory").DomainInfo | null>;
|
|
201
|
+
/**
|
|
202
|
+
* 检查子域名可用性
|
|
203
|
+
*
|
|
204
|
+
* @param subdomain - 要检查的子域名
|
|
205
|
+
*/
|
|
53
206
|
checkSubdomainAvailability(subdomain: string): Promise<import("@internal/domain/identity/factory/user-factory").SubdomainCheckResponse | null>;
|
|
207
|
+
/**
|
|
208
|
+
* 更新子域名
|
|
209
|
+
*
|
|
210
|
+
* @param newSubdomain - 新的子域名
|
|
211
|
+
*/
|
|
54
212
|
updateSubdomain(newSubdomain: string): Promise<import("@internal/domain/identity/factory/user-factory").SubdomainUpdateResponse | null>;
|
|
213
|
+
/**
|
|
214
|
+
* 检查自定义域名 DNS 配置
|
|
215
|
+
*
|
|
216
|
+
* @param domain - 要检查的域名
|
|
217
|
+
*/
|
|
55
218
|
checkCustomDomain(domain: string): Promise<{
|
|
56
219
|
dns_valid: boolean;
|
|
57
220
|
ready: boolean;
|
|
58
221
|
message: string;
|
|
59
222
|
resolved_ips?: string[];
|
|
60
223
|
} | null>;
|
|
224
|
+
/**
|
|
225
|
+
* 添加自定义域名
|
|
226
|
+
*
|
|
227
|
+
* @param domain - 要添加的域名
|
|
228
|
+
*/
|
|
61
229
|
addCustomDomain(domain: string): Promise<{
|
|
62
230
|
domain: string;
|
|
63
231
|
status: string;
|
|
64
232
|
message: string;
|
|
65
233
|
} | null>;
|
|
234
|
+
/**
|
|
235
|
+
* 检查自定义域名 HTTPS 证书状态
|
|
236
|
+
*
|
|
237
|
+
* @param domain - 要检查的域名
|
|
238
|
+
*/
|
|
66
239
|
checkCustomDomainHttpsStatus(domain: string): Promise<{
|
|
67
240
|
status: string;
|
|
68
241
|
tls_ready: boolean;
|
|
@@ -29,19 +29,47 @@ export declare class IncrementalBuildCoordinator {
|
|
|
29
29
|
private initialized;
|
|
30
30
|
private domainInstances?;
|
|
31
31
|
constructor(config: IncrementalBuildConfig);
|
|
32
|
+
/**
|
|
33
|
+
* 初始化:执行首次完整构建并保存 domain 实例
|
|
34
|
+
*/
|
|
32
35
|
initialize(): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* 执行完整构建并缓存 domain 实例
|
|
38
|
+
*/
|
|
33
39
|
private performFullBuildAndCacheDomains;
|
|
34
40
|
startWatching(): Promise<void>;
|
|
35
41
|
stopWatching(): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* 处理文件变更事件,触发增量构建
|
|
44
|
+
* 阶段3-5:完整的增量构建流程
|
|
45
|
+
*/
|
|
36
46
|
private handleFileChanges;
|
|
37
47
|
needFullRebuild(events: FileChangeEvent[]): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* 执行增量构建(阶段3-5的核心实现)
|
|
50
|
+
*/
|
|
38
51
|
private performIncrementalBuild;
|
|
39
52
|
getEventsFilePaths(events: FileChangeEvent[]): string[];
|
|
53
|
+
/**
|
|
54
|
+
* 第2阶段的临时实现:执行完整重建并通知 Live Reload
|
|
55
|
+
*/
|
|
40
56
|
private performFullRebuild;
|
|
57
|
+
/**
|
|
58
|
+
* 获取当前是否已初始化
|
|
59
|
+
*/
|
|
41
60
|
isInitialized(): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* 获取是否正在构建
|
|
63
|
+
*/
|
|
42
64
|
isBuildInProgress(): boolean;
|
|
65
|
+
/**
|
|
66
|
+
* 获取配置信息
|
|
67
|
+
*/
|
|
43
68
|
getConfig(): IncrementalBuildConfig;
|
|
44
69
|
getServerUrl(): string;
|
|
70
|
+
/**
|
|
71
|
+
* 获取 Live Reload 服务器状态
|
|
72
|
+
*/
|
|
45
73
|
getLiveReloadStatus(): {
|
|
46
74
|
running: boolean;
|
|
47
75
|
url?: string;
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import { IncrementalBuildCoordinator, IncrementalBuildConfig } from './incremental-build-coordinator';
|
|
2
2
|
export { IncrementalBuildConfig, IncrementalBuildCoordinator };
|
|
3
|
+
/**
|
|
4
|
+
* 增量构建的主入口函数
|
|
5
|
+
* 第1阶段:实现基础的初始化和完整构建
|
|
6
|
+
*/
|
|
3
7
|
export declare function startIncrementalBuild(config: IncrementalBuildConfig): Promise<IncrementalBuildCoordinator>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export
|
|
1
|
+
/**
|
|
2
|
+
* Application Layer Exports
|
|
3
|
+
*/
|
|
4
|
+
export * from './wiki-service';
|
|
5
|
+
export * from './wiki-service-config';
|
|
@@ -10,18 +10,55 @@ export type PublishProgressCallback = (progress: {
|
|
|
10
10
|
filesTotal?: number;
|
|
11
11
|
bytesTransferred?: number;
|
|
12
12
|
}) => void;
|
|
13
|
+
/**
|
|
14
|
+
* Publish Application Service
|
|
15
|
+
*
|
|
16
|
+
* 协调发布操作,通过 PublisherFactory 创建聚合根
|
|
17
|
+
*
|
|
18
|
+
* 注意:配置的查找和合并由 Interface 层(CLI/Obsidian)负责
|
|
19
|
+
* Application 层只负责编排业务逻辑
|
|
20
|
+
*/
|
|
13
21
|
export declare class PublishAppService {
|
|
14
22
|
private publisherFactory;
|
|
15
23
|
private workspaceService;
|
|
16
24
|
constructor(publisherFactory: PublisherFactory, workspaceService: WorkspaceAppService);
|
|
25
|
+
/**
|
|
26
|
+
* Publish project to specified platform
|
|
27
|
+
*
|
|
28
|
+
* @param project - 项目实例
|
|
29
|
+
* @param config - 已合并的发布配置(由调用方准备)
|
|
30
|
+
* @param options - 发布选项
|
|
31
|
+
* @param onProgress - 进度回调
|
|
32
|
+
*/
|
|
17
33
|
publish(project: Project, config: AnyPublishConfig, options?: {
|
|
18
34
|
force?: boolean;
|
|
19
35
|
incremental?: boolean;
|
|
20
36
|
}, onProgress?: PublishProgressCallback): Promise<any>;
|
|
37
|
+
/**
|
|
38
|
+
* Test connection
|
|
39
|
+
*
|
|
40
|
+
* @param project - 项目实例
|
|
41
|
+
* @param config - 已合并的发布配置(由调用方准备)
|
|
42
|
+
*/
|
|
21
43
|
testConnection(project: Project, config: AnyPublishConfig): Promise<{
|
|
22
44
|
success: boolean;
|
|
23
45
|
error?: string;
|
|
24
46
|
}>;
|
|
47
|
+
/**
|
|
48
|
+
* 准备最终的发布配置
|
|
49
|
+
*
|
|
50
|
+
* 配置查找优先级(两级):
|
|
51
|
+
* 1. 项目配置 (project.config.publish)
|
|
52
|
+
* 2. 全局配置 (workspace global config)
|
|
53
|
+
*
|
|
54
|
+
* @param workspace - Workspace 实例
|
|
55
|
+
* @param project - Project 实例
|
|
56
|
+
* @param method - 发布方法
|
|
57
|
+
* @returns 最终的发布配置
|
|
58
|
+
*/
|
|
25
59
|
prepareFinalConfig(workspace: Workspace, project: Project, method: 'ftp' | 'netlify' | 'mdfriday'): Promise<AnyPublishConfig>;
|
|
60
|
+
/**
|
|
61
|
+
* Get method-specific config from WorkspacePublishConfig
|
|
62
|
+
*/
|
|
26
63
|
private getMethodConfig;
|
|
27
64
|
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { SSGProgressCallback } from './ssg';
|
|
2
2
|
import { MarkdownRenderer } from "@internal/domain/markdown";
|
|
3
3
|
import { HttpClient } from "@internal/domain/module";
|
|
4
|
+
/**
|
|
5
|
+
* 并行 SSG 统计信息
|
|
6
|
+
*/
|
|
4
7
|
export interface ParallelSSGStats {
|
|
5
8
|
totalPages: number;
|
|
6
9
|
totalBatches: number;
|
|
@@ -10,4 +13,7 @@ export interface ParallelSSGStats {
|
|
|
10
13
|
parallelSpeedup: number;
|
|
11
14
|
pagesPerSecond: number;
|
|
12
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* 并行处理 SSG(主入口)
|
|
18
|
+
*/
|
|
13
19
|
export declare function processSSGParallel(projDir: string, modulesDir: string, markdown?: MarkdownRenderer, onProgress?: SSGProgressCallback, httpClient?: HttpClient): Promise<ParallelSSGStats>;
|
|
@@ -6,6 +6,9 @@ import { Site } from "@internal/domain/site/entity/site";
|
|
|
6
6
|
import { Resources } from "@internal/domain/resources/entity/resources";
|
|
7
7
|
import { MarkdownRenderer } from "@internal/domain/markdown";
|
|
8
8
|
import { PageTask } from "@pkg/page-filter";
|
|
9
|
+
/**
|
|
10
|
+
* Domain 实例集合,用于增量构建时复用
|
|
11
|
+
*/
|
|
9
12
|
export interface DomainInstances {
|
|
10
13
|
site: Site;
|
|
11
14
|
content: Content;
|
|
@@ -14,8 +17,14 @@ export interface DomainInstances {
|
|
|
14
17
|
modules: Modules;
|
|
15
18
|
resources: Resources;
|
|
16
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Generate static site
|
|
22
|
+
*/
|
|
17
23
|
export declare function generateStaticSite(projDir: string, modulesDir: string, markdown?: MarkdownRenderer): Promise<void>;
|
|
18
24
|
export declare function processSSG(projDir: string, modulesDir: string, markdown?: MarkdownRenderer): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Progress callback interface for SSG processing
|
|
27
|
+
*/
|
|
19
28
|
export interface SSGProgressCallback {
|
|
20
29
|
(progress: {
|
|
21
30
|
stage: 'config' | 'modules' | 'filesystem' | 'content' | 'site' | 'template' | 'pages' | 'build' | 'completion';
|
|
@@ -31,7 +40,13 @@ export interface SSGProgressCallback {
|
|
|
31
40
|
};
|
|
32
41
|
}): void;
|
|
33
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Generate static site with progress callbacks
|
|
45
|
+
*/
|
|
34
46
|
export declare function generateStaticSiteWithProgress(projDir: string, modulesDir: string, markdown?: MarkdownRenderer, onProgress?: SSGProgressCallback, httpClient?: HttpClient): Promise<DomainInstances>;
|
|
47
|
+
/**
|
|
48
|
+
* Process SSG with progress callbacks
|
|
49
|
+
*/
|
|
35
50
|
export declare function processSSGWithProgress(projDir: string, modulesDir: string, markdown?: MarkdownRenderer, onProgress?: SSGProgressCallback, httpClient?: HttpClient): Promise<void>;
|
|
36
51
|
export declare function serveSSG(projDir: string, modulesDir: string, markdown?: MarkdownRenderer, onProgress?: SSGProgressCallback, httpClient?: HttpClient): Promise<DomainInstances>;
|
|
37
52
|
export declare function collectAllPageTasks(projDir: string, modulesDir: string, markdown?: MarkdownRenderer, onProgress?: SSGProgressCallback, httpClient?: HttpClient): Promise<PageTask[]>;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WikiService 配置
|
|
3
|
+
*
|
|
4
|
+
* 用户在创建 WikiService 时一次性传入所有配置
|
|
5
|
+
* 避免在每次方法调用时重复传入相同参数
|
|
6
|
+
*/
|
|
7
|
+
import { ILLMProvider, IEmbeddingProvider, IFileSystem, IPathService, ICryptoService, IConversationRepository } from '../domain/wiki/repository';
|
|
8
|
+
/**
|
|
9
|
+
* LLM 配置
|
|
10
|
+
*/
|
|
11
|
+
export interface WikiServiceLLMConfig {
|
|
12
|
+
provider: ILLMProvider;
|
|
13
|
+
defaultModel: string;
|
|
14
|
+
defaultTemperature?: number;
|
|
15
|
+
defaultMaxTokens?: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Embedding 配置(可选)
|
|
19
|
+
*/
|
|
20
|
+
export interface WikiServiceEmbeddingConfig {
|
|
21
|
+
provider: IEmbeddingProvider;
|
|
22
|
+
defaultModel: string;
|
|
23
|
+
cacheEnabled?: boolean;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Wiki Domain 行为配置
|
|
27
|
+
*/
|
|
28
|
+
export interface WikiServiceDomainConfig {
|
|
29
|
+
outputLanguage?: string;
|
|
30
|
+
ingestTemperature?: number;
|
|
31
|
+
queryTemperature?: number;
|
|
32
|
+
maxQueryResults?: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* 基础设施配置
|
|
36
|
+
*/
|
|
37
|
+
export interface WikiServiceInfrastructureConfig {
|
|
38
|
+
fileSystem: IFileSystem;
|
|
39
|
+
pathService: IPathService;
|
|
40
|
+
cryptoService: ICryptoService;
|
|
41
|
+
conversationRepo: IConversationRepository;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* 路径配置
|
|
45
|
+
*/
|
|
46
|
+
export interface WikiServicePathsConfig {
|
|
47
|
+
kbPath: string;
|
|
48
|
+
embeddingsPath: string;
|
|
49
|
+
wikiDir: string;
|
|
50
|
+
conversationsDir: string;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* WikiService 完整配置
|
|
54
|
+
*/
|
|
55
|
+
export interface WikiServiceConfig {
|
|
56
|
+
llm: WikiServiceLLMConfig;
|
|
57
|
+
embedding?: WikiServiceEmbeddingConfig;
|
|
58
|
+
wiki?: WikiServiceDomainConfig;
|
|
59
|
+
infrastructure: WikiServiceInfrastructureConfig;
|
|
60
|
+
paths: WikiServicePathsConfig;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* 默认配置值
|
|
64
|
+
*/
|
|
65
|
+
export declare const DEFAULT_WIKI_SERVICE_CONFIG: Partial<WikiServiceDomainConfig>;
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wiki Service - Application Layer
|
|
3
|
+
*
|
|
4
|
+
* 重构后的应用服务,遵循 DDD 架构:
|
|
5
|
+
* - 持有 WikiFactory 和统一配置
|
|
6
|
+
* - 通过 Factory 创建和加载 KB
|
|
7
|
+
* - 调用 KB 聚合根的业务方法
|
|
8
|
+
* - 协调依赖,不包含业务逻辑
|
|
9
|
+
* - 配置在创建时一次性传入,避免重复
|
|
10
|
+
*/
|
|
11
|
+
import { KnowledgeBase, WikiFactory, ConversationMetadata } from '../domain/wiki';
|
|
12
|
+
import { WikiServiceConfig } from './wiki-service-config';
|
|
13
|
+
/**
|
|
14
|
+
* Ingest 可选配置(用于覆盖默认值)
|
|
15
|
+
*/
|
|
16
|
+
export interface IngestOptions {
|
|
17
|
+
temperature?: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Query 可选配置(用于覆盖默认值)
|
|
21
|
+
*/
|
|
22
|
+
export interface QueryOptions {
|
|
23
|
+
temperature?: number;
|
|
24
|
+
maxResults?: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Ingest 结果
|
|
28
|
+
*/
|
|
29
|
+
export interface IngestResult {
|
|
30
|
+
success: boolean;
|
|
31
|
+
sourcePath: string;
|
|
32
|
+
extractedEntities: number;
|
|
33
|
+
extractedConcepts: number;
|
|
34
|
+
extractedConnections: number;
|
|
35
|
+
timeMs: number;
|
|
36
|
+
error?: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Query 结果
|
|
40
|
+
*/
|
|
41
|
+
export interface QueryResult {
|
|
42
|
+
entities: Array<{
|
|
43
|
+
id: string;
|
|
44
|
+
name: string;
|
|
45
|
+
type: string;
|
|
46
|
+
relevance: number;
|
|
47
|
+
}>;
|
|
48
|
+
concepts: Array<{
|
|
49
|
+
name: string;
|
|
50
|
+
definition: string;
|
|
51
|
+
relevance: number;
|
|
52
|
+
}>;
|
|
53
|
+
connections: Array<{
|
|
54
|
+
from: string;
|
|
55
|
+
to: string;
|
|
56
|
+
type: string;
|
|
57
|
+
description: string;
|
|
58
|
+
}>;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Lint 问题
|
|
62
|
+
*/
|
|
63
|
+
export interface LintIssue {
|
|
64
|
+
severity: 'error' | 'warning' | 'info';
|
|
65
|
+
type: string;
|
|
66
|
+
message: string;
|
|
67
|
+
location?: string;
|
|
68
|
+
suggestion?: string;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* WikiService - 应用服务(协调层)
|
|
72
|
+
*
|
|
73
|
+
* 职责:
|
|
74
|
+
* - 持有 Factory 和统一配置
|
|
75
|
+
* - 协调聚合根操作
|
|
76
|
+
* - 管理辅助操作(保存对话、构建索引等)
|
|
77
|
+
* - 不包含业务逻辑
|
|
78
|
+
*/
|
|
79
|
+
export declare class WikiService {
|
|
80
|
+
private factory;
|
|
81
|
+
private kb;
|
|
82
|
+
private readonly config;
|
|
83
|
+
constructor(factory: WikiFactory, config: WikiServiceConfig);
|
|
84
|
+
private get llmProvider();
|
|
85
|
+
private get embeddingProvider();
|
|
86
|
+
private get fileSystem();
|
|
87
|
+
private get pathService();
|
|
88
|
+
private get cryptoService();
|
|
89
|
+
private get conversationRepo();
|
|
90
|
+
/**
|
|
91
|
+
* 加载 KB
|
|
92
|
+
*
|
|
93
|
+
* 如果配置了 embedding,自动构建索引
|
|
94
|
+
*/
|
|
95
|
+
loadKB(): Promise<boolean>;
|
|
96
|
+
/**
|
|
97
|
+
* 保存 KB
|
|
98
|
+
*
|
|
99
|
+
* 同时保存 embedding index
|
|
100
|
+
*/
|
|
101
|
+
saveKB(): Promise<void>;
|
|
102
|
+
/**
|
|
103
|
+
* 获取当前 KB 的统计信息
|
|
104
|
+
*/
|
|
105
|
+
getStats(): {
|
|
106
|
+
entities: number;
|
|
107
|
+
concepts: number;
|
|
108
|
+
connections: number;
|
|
109
|
+
sources: number;
|
|
110
|
+
operations: number;
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* 获取 KnowledgeBase 实例(供高级用法)
|
|
114
|
+
*/
|
|
115
|
+
getKnowledgeBase(): KnowledgeBase;
|
|
116
|
+
/**
|
|
117
|
+
* Ingest 文件
|
|
118
|
+
*
|
|
119
|
+
* 协调聚合根的 ingestFromSource 方法
|
|
120
|
+
* 使用配置的默认值,允许可选覆盖
|
|
121
|
+
* Ingest 后自动更新 embedding
|
|
122
|
+
*/
|
|
123
|
+
ingestFile(filePath: string, options?: IngestOptions): Promise<IngestResult>;
|
|
124
|
+
/**
|
|
125
|
+
* 增量 Ingest 文件列表(业务逻辑在此封装)
|
|
126
|
+
*
|
|
127
|
+
* 规则:
|
|
128
|
+
* - 对每个文件调用 kb.isNewSource(path) 进行判断
|
|
129
|
+
* - 只对"全新文件"触发 ingestFile;已知文件直接跳过
|
|
130
|
+
* - 返回新增/跳过文件数量,供上层进度汇报
|
|
131
|
+
*
|
|
132
|
+
* @param files 待检查的文件路径列表(绝对路径)
|
|
133
|
+
* @param options ingest 选项(temperature 等)
|
|
134
|
+
* @param onFileProgress 每处理一个文件的回调(fileIndex, total, filePath, isNew)
|
|
135
|
+
*/
|
|
136
|
+
ingestFolderIncremental(files: string[], options?: IngestOptions, onFileProgress?: (fileIndex: number, total: number, filePath: string, isNew: boolean) => void | Promise<void>): Promise<{
|
|
137
|
+
newFiles: string[];
|
|
138
|
+
skippedFiles: string[];
|
|
139
|
+
extractedEntities: number;
|
|
140
|
+
extractedConcepts: number;
|
|
141
|
+
extractedConnections: number;
|
|
142
|
+
timeMs: number;
|
|
143
|
+
}>;
|
|
144
|
+
/**
|
|
145
|
+
* Query (同步)
|
|
146
|
+
*
|
|
147
|
+
* 协调聚合根的 query 方法
|
|
148
|
+
* 使用配置的默认值,允许可选覆盖
|
|
149
|
+
* KB 会自动使用内部的 Embedding Index
|
|
150
|
+
*/
|
|
151
|
+
query(question: string, options?: QueryOptions): Promise<QueryResult>;
|
|
152
|
+
/**
|
|
153
|
+
* Query (流式)
|
|
154
|
+
*
|
|
155
|
+
* 使用 LLM 流式生成答案
|
|
156
|
+
* 使用配置的默认值,允许可选覆盖
|
|
157
|
+
* 委托给 KB 的 queryStream 方法
|
|
158
|
+
*/
|
|
159
|
+
queryStream(question: string, options?: QueryOptions): AsyncGenerator<string, void, unknown>;
|
|
160
|
+
/**
|
|
161
|
+
* 生成所有 Wiki 页面
|
|
162
|
+
*
|
|
163
|
+
* 协调聚合根的 generateWikiPages 方法
|
|
164
|
+
*/
|
|
165
|
+
generateAllPages(): Promise<void>;
|
|
166
|
+
/**
|
|
167
|
+
* Lint 检查
|
|
168
|
+
*
|
|
169
|
+
* 调用聚合根的 lint 方法
|
|
170
|
+
*/
|
|
171
|
+
lint(): Promise<LintIssue[]>;
|
|
172
|
+
/**
|
|
173
|
+
* 为当前 KB 构建 Embedding Index
|
|
174
|
+
*
|
|
175
|
+
* 私有方法,由 loadKB 和 ingestFile 自动调用
|
|
176
|
+
*/
|
|
177
|
+
private buildEmbeddingIndexForKB;
|
|
178
|
+
/**
|
|
179
|
+
* 手动触发 Embedding Index 构建
|
|
180
|
+
*
|
|
181
|
+
* 供外部调用(如测试)
|
|
182
|
+
*/
|
|
183
|
+
buildEmbeddingIndex(): Promise<void>;
|
|
184
|
+
/**
|
|
185
|
+
* 保存对话结果为新的源文件
|
|
186
|
+
*/
|
|
187
|
+
saveConversation(question: string, answer: string, metadata?: {
|
|
188
|
+
sources?: string[];
|
|
189
|
+
retrieval?: {
|
|
190
|
+
entityCount: number;
|
|
191
|
+
conceptCount: number;
|
|
192
|
+
totalResults: number;
|
|
193
|
+
};
|
|
194
|
+
}): Promise<string>;
|
|
195
|
+
/**
|
|
196
|
+
* 列出所有保存的对话
|
|
197
|
+
*/
|
|
198
|
+
listConversations(): Promise<ConversationMetadata[]>;
|
|
199
|
+
}
|