@andre.li/memoark 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +388 -69
- package/README.md +674 -309
- package/README.zh-CN.md +816 -0
- package/bin/memoark.mjs +7 -2
- package/dist/adapters/store.d.ts.map +1 -1
- package/dist/adapters/store.js +6 -5
- package/dist/adapters/store.js.map +1 -1
- package/dist/cli-helpers.d.ts +12 -0
- package/dist/cli-helpers.d.ts.map +1 -0
- package/dist/cli-helpers.js +11 -0
- package/dist/cli-helpers.js.map +1 -0
- package/dist/cli.js +682 -126
- package/dist/cli.js.map +1 -1
- package/dist/collectors/feishu/chat-name-resolver.d.ts +33 -0
- package/dist/collectors/feishu/chat-name-resolver.d.ts.map +1 -0
- package/dist/collectors/feishu/chat-name-resolver.js +63 -0
- package/dist/collectors/feishu/chat-name-resolver.js.map +1 -0
- package/dist/collectors/feishu/collector.d.ts +4 -0
- package/dist/collectors/feishu/collector.d.ts.map +1 -1
- package/dist/collectors/feishu/collector.js +27 -4
- package/dist/collectors/feishu/collector.js.map +1 -1
- package/dist/collectors/feishu/docs/blocks.d.ts +25 -0
- package/dist/collectors/feishu/docs/blocks.d.ts.map +1 -0
- package/dist/collectors/feishu/docs/blocks.js +34 -0
- package/dist/collectors/feishu/docs/blocks.js.map +1 -0
- package/dist/collectors/feishu/docs/candidate.d.ts +17 -0
- package/dist/collectors/feishu/docs/candidate.d.ts.map +1 -0
- package/dist/collectors/feishu/docs/candidate.js +36 -0
- package/dist/collectors/feishu/docs/candidate.js.map +1 -0
- package/dist/collectors/feishu/docs/config.d.ts +41 -0
- package/dist/collectors/feishu/docs/config.d.ts.map +1 -0
- package/dist/collectors/feishu/docs/config.js +30 -0
- package/dist/collectors/feishu/docs/config.js.map +1 -0
- package/dist/collectors/feishu/docs/decision.d.ts +14 -0
- package/dist/collectors/feishu/docs/decision.d.ts.map +1 -0
- package/dist/collectors/feishu/docs/decision.js +43 -0
- package/dist/collectors/feishu/docs/decision.js.map +1 -0
- package/dist/collectors/feishu/docs/full-builder.d.ts +17 -0
- package/dist/collectors/feishu/docs/full-builder.d.ts.map +1 -0
- package/dist/collectors/feishu/docs/full-builder.js +136 -0
- package/dist/collectors/feishu/docs/full-builder.js.map +1 -0
- package/dist/collectors/feishu/docs/hash.d.ts +8 -0
- package/dist/collectors/feishu/docs/hash.d.ts.map +1 -0
- package/dist/collectors/feishu/docs/hash.js +15 -0
- package/dist/collectors/feishu/docs/hash.js.map +1 -0
- package/dist/collectors/feishu/docs/ingest.d.ts +54 -0
- package/dist/collectors/feishu/docs/ingest.d.ts.map +1 -0
- package/dist/collectors/feishu/docs/ingest.js +120 -0
- package/dist/collectors/feishu/docs/ingest.js.map +1 -0
- package/dist/collectors/feishu/docs/llm-json.d.ts +13 -0
- package/dist/collectors/feishu/docs/llm-json.d.ts.map +1 -0
- package/dist/collectors/feishu/docs/llm-json.js +40 -0
- package/dist/collectors/feishu/docs/llm-json.js.map +1 -0
- package/dist/collectors/feishu/docs/pointer-builder.d.ts +7 -0
- package/dist/collectors/feishu/docs/pointer-builder.d.ts.map +1 -0
- package/dist/collectors/feishu/docs/pointer-builder.js +11 -0
- package/dist/collectors/feishu/docs/pointer-builder.js.map +1 -0
- package/dist/collectors/feishu/docs/render.d.ts +8 -0
- package/dist/collectors/feishu/docs/render.d.ts.map +1 -0
- package/dist/collectors/feishu/docs/render.js +105 -0
- package/dist/collectors/feishu/docs/render.js.map +1 -0
- package/dist/collectors/feishu/docs/run.d.ts +37 -0
- package/dist/collectors/feishu/docs/run.d.ts.map +1 -0
- package/dist/collectors/feishu/docs/run.js +143 -0
- package/dist/collectors/feishu/docs/run.js.map +1 -0
- package/dist/collectors/feishu/docs/status.d.ts +16 -0
- package/dist/collectors/feishu/docs/status.d.ts.map +1 -0
- package/dist/collectors/feishu/docs/status.js +24 -0
- package/dist/collectors/feishu/docs/status.js.map +1 -0
- package/dist/collectors/feishu/docs/store-writer.d.ts +32 -0
- package/dist/collectors/feishu/docs/store-writer.d.ts.map +1 -0
- package/dist/collectors/feishu/docs/store-writer.js +71 -0
- package/dist/collectors/feishu/docs/store-writer.js.map +1 -0
- package/dist/collectors/feishu/docs/toc.d.ts +3 -0
- package/dist/collectors/feishu/docs/toc.d.ts.map +1 -0
- package/dist/collectors/feishu/docs/toc.js +19 -0
- package/dist/collectors/feishu/docs/toc.js.map +1 -0
- package/dist/collectors/feishu/docs/triggers.d.ts +7 -0
- package/dist/collectors/feishu/docs/triggers.d.ts.map +1 -0
- package/dist/collectors/feishu/docs/triggers.js +31 -0
- package/dist/collectors/feishu/docs/triggers.js.map +1 -0
- package/dist/collectors/feishu/docs/types.d.ts +109 -0
- package/dist/collectors/feishu/docs/types.d.ts.map +1 -0
- package/dist/collectors/feishu/docs/types.js +2 -0
- package/dist/collectors/feishu/docs/types.js.map +1 -0
- package/dist/collectors/feishu/docs/upgrade-queue.d.ts +19 -0
- package/dist/collectors/feishu/docs/upgrade-queue.d.ts.map +1 -0
- package/dist/collectors/feishu/docs/upgrade-queue.js +36 -0
- package/dist/collectors/feishu/docs/upgrade-queue.js.map +1 -0
- package/dist/collectors/feishu/docs/url-parser.d.ts +3 -0
- package/dist/collectors/feishu/docs/url-parser.d.ts.map +1 -0
- package/dist/collectors/feishu/docs/url-parser.js +39 -0
- package/dist/collectors/feishu/docs/url-parser.js.map +1 -0
- package/dist/collectors/feishu/docs/walkers.d.ts +24 -0
- package/dist/collectors/feishu/docs/walkers.d.ts.map +1 -0
- package/dist/collectors/feishu/docs/walkers.js +90 -0
- package/dist/collectors/feishu/docs/walkers.js.map +1 -0
- package/dist/collectors/feishu/docs/wiki-resolver.d.ts +15 -0
- package/dist/collectors/feishu/docs/wiki-resolver.d.ts.map +1 -0
- package/dist/collectors/feishu/docs/wiki-resolver.js +24 -0
- package/dist/collectors/feishu/docs/wiki-resolver.js.map +1 -0
- package/dist/collectors/feishu/lark-cli-client.d.ts +12 -0
- package/dist/collectors/feishu/lark-cli-client.d.ts.map +1 -1
- package/dist/collectors/feishu/lark-cli-client.js +37 -2
- package/dist/collectors/feishu/lark-cli-client.js.map +1 -1
- package/dist/collectors/feishu/lark-cli-identity-backend.d.ts +28 -0
- package/dist/collectors/feishu/lark-cli-identity-backend.d.ts.map +1 -0
- package/dist/collectors/feishu/lark-cli-identity-backend.js +110 -0
- package/dist/collectors/feishu/lark-cli-identity-backend.js.map +1 -0
- package/dist/collectors/feishu/self-open-id.d.ts +20 -0
- package/dist/collectors/feishu/self-open-id.d.ts.map +1 -0
- package/dist/collectors/feishu/self-open-id.js +31 -0
- package/dist/collectors/feishu/self-open-id.js.map +1 -0
- package/dist/collectors/feishu/sources/dm.d.ts.map +1 -1
- package/dist/collectors/feishu/sources/dm.js +4 -0
- package/dist/collectors/feishu/sources/dm.js.map +1 -1
- package/dist/collectors/feishu/sources/mail.d.ts.map +1 -1
- package/dist/collectors/feishu/sources/mail.js +18 -20
- package/dist/collectors/feishu/sources/mail.js.map +1 -1
- package/dist/collectors/feishu/sources/messages.d.ts +2 -0
- package/dist/collectors/feishu/sources/messages.d.ts.map +1 -1
- package/dist/collectors/feishu/sources/messages.js +28 -1
- package/dist/collectors/feishu/sources/messages.js.map +1 -1
- package/dist/collectors/feishu/types.d.ts +37 -3
- package/dist/collectors/feishu/types.d.ts.map +1 -1
- package/dist/collectors/feishu/types.js.map +1 -1
- package/dist/config-center/connection-checks.d.ts.map +1 -1
- package/dist/config-center/connection-checks.js +1 -1
- package/dist/config-center/connection-checks.js.map +1 -1
- package/dist/config-center/schema.d.ts.map +1 -1
- package/dist/config-center/schema.js +77 -0
- package/dist/config-center/schema.js.map +1 -1
- package/dist/consolidator/consolidator.d.ts +13 -1
- package/dist/consolidator/consolidator.d.ts.map +1 -1
- package/dist/consolidator/consolidator.js +12 -2
- package/dist/consolidator/consolidator.js.map +1 -1
- package/dist/core/canonicalize.js +5 -1
- package/dist/core/canonicalize.js.map +1 -1
- package/dist/core/config.d.ts +52 -9
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +86 -24
- package/dist/core/config.js.map +1 -1
- package/dist/core/env-validation.d.ts +9 -0
- package/dist/core/env-validation.d.ts.map +1 -0
- package/dist/core/env-validation.js +94 -0
- package/dist/core/env-validation.js.map +1 -0
- package/dist/core/identity-resolver.d.ts +24 -3
- package/dist/core/identity-resolver.d.ts.map +1 -1
- package/dist/core/identity-resolver.js +147 -2
- package/dist/core/identity-resolver.js.map +1 -1
- package/dist/core/person-identity.d.ts +124 -0
- package/dist/core/person-identity.d.ts.map +1 -0
- package/dist/core/person-identity.js +342 -0
- package/dist/core/person-identity.js.map +1 -0
- package/dist/core/person-slug.d.ts +21 -0
- package/dist/core/person-slug.d.ts.map +1 -0
- package/dist/core/person-slug.js +93 -0
- package/dist/core/person-slug.js.map +1 -0
- package/dist/core/pipeline-factory.d.ts +1 -1
- package/dist/core/pipeline-factory.d.ts.map +1 -1
- package/dist/core/pipeline-factory.js +8 -3
- package/dist/core/pipeline-factory.js.map +1 -1
- package/dist/core/pipeline.d.ts +16 -0
- package/dist/core/pipeline.d.ts.map +1 -1
- package/dist/core/pipeline.js +49 -1
- package/dist/core/pipeline.js.map +1 -1
- package/dist/core/resource-loader.d.ts +2 -0
- package/dist/core/resource-loader.d.ts.map +1 -0
- package/dist/core/resource-loader.js +12 -0
- package/dist/core/resource-loader.js.map +1 -0
- package/dist/core/schemas.d.ts +2981 -309
- package/dist/core/schemas.d.ts.map +1 -1
- package/dist/core/schemas.js +27 -0
- package/dist/core/schemas.js.map +1 -1
- package/dist/core/signal-scoring.d.ts.map +1 -1
- package/dist/core/signal-scoring.js +5 -1
- package/dist/core/signal-scoring.js.map +1 -1
- package/dist/core/source-ref.d.ts +4 -0
- package/dist/core/source-ref.d.ts.map +1 -0
- package/dist/core/source-ref.js +24 -0
- package/dist/core/source-ref.js.map +1 -0
- package/dist/core/state.d.ts +1 -1
- package/dist/core/state.d.ts.map +1 -1
- package/dist/core/state.js +3 -2
- package/dist/core/state.js.map +1 -1
- package/dist/core/types.d.ts +34 -6
- package/dist/core/types.d.ts.map +1 -1
- package/dist/daemon/reload-manager.d.ts +27 -0
- package/dist/daemon/reload-manager.d.ts.map +1 -0
- package/dist/daemon/reload-manager.js +67 -0
- package/dist/daemon/reload-manager.js.map +1 -0
- package/dist/daemon/scheduler.d.ts +9 -1
- package/dist/daemon/scheduler.d.ts.map +1 -1
- package/dist/daemon/scheduler.js +113 -38
- package/dist/daemon/scheduler.js.map +1 -1
- package/dist/daemon/serve-runtime.d.ts +31 -0
- package/dist/daemon/serve-runtime.d.ts.map +1 -0
- package/dist/daemon/serve-runtime.js +230 -0
- package/dist/daemon/serve-runtime.js.map +1 -0
- package/dist/embedded-assets.generated.d.ts.map +1 -1
- package/dist/embedded-assets.generated.js +3 -3
- package/dist/embedded-assets.generated.js.map +1 -1
- package/dist/extractors/playbook-extractor.d.ts +35 -0
- package/dist/extractors/playbook-extractor.d.ts.map +1 -0
- package/dist/extractors/playbook-extractor.js +98 -0
- package/dist/extractors/playbook-extractor.js.map +1 -0
- package/dist/extractors/prompts/examples/agent-session.md +257 -0
- package/dist/extractors/prompts/signal-extract.md +199 -0
- package/dist/extractors/prompts/system.md +45 -0
- package/dist/extractors/signal-extractor.d.ts +2 -1
- package/dist/extractors/signal-extractor.d.ts.map +1 -1
- package/dist/extractors/signal-extractor.js +99 -7
- package/dist/extractors/signal-extractor.js.map +1 -1
- package/dist/hooks/handlers.d.ts +21 -0
- package/dist/hooks/handlers.d.ts.map +1 -0
- package/dist/hooks/handlers.js +22 -0
- package/dist/hooks/handlers.js.map +1 -0
- package/dist/hooks/inject.d.ts +7 -0
- package/dist/hooks/inject.d.ts.map +1 -0
- package/dist/hooks/inject.js +18 -0
- package/dist/hooks/inject.js.map +1 -0
- package/dist/hooks/install.d.ts +14 -0
- package/dist/hooks/install.d.ts.map +1 -0
- package/dist/hooks/install.js +34 -0
- package/dist/hooks/install.js.map +1 -0
- package/dist/hooks/output.d.ts +19 -0
- package/dist/hooks/output.d.ts.map +1 -0
- package/dist/hooks/output.js +13 -0
- package/dist/hooks/output.js.map +1 -0
- package/dist/hooks/recall-client.d.ts +25 -0
- package/dist/hooks/recall-client.d.ts.map +1 -0
- package/dist/hooks/recall-client.js +56 -0
- package/dist/hooks/recall-client.js.map +1 -0
- package/dist/hooks/run-event.d.ts +13 -0
- package/dist/hooks/run-event.d.ts.map +1 -0
- package/dist/hooks/run-event.js +20 -0
- package/dist/hooks/run-event.js.map +1 -0
- package/dist/hooks/settings-edit.d.ts +10 -0
- package/dist/hooks/settings-edit.d.ts.map +1 -0
- package/dist/hooks/settings-edit.js +44 -0
- package/dist/hooks/settings-edit.js.map +1 -0
- package/dist/hooks/writeback.d.ts +12 -0
- package/dist/hooks/writeback.d.ts.map +1 -0
- package/dist/hooks/writeback.js +48 -0
- package/dist/hooks/writeback.js.map +1 -0
- package/dist/install/clients/claude-code.d.ts +3 -0
- package/dist/install/clients/claude-code.d.ts.map +1 -0
- package/dist/install/clients/claude-code.js +30 -0
- package/dist/install/clients/claude-code.js.map +1 -0
- package/dist/install/clients/claude-desktop.d.ts +3 -0
- package/dist/install/clients/claude-desktop.d.ts.map +1 -0
- package/dist/install/clients/claude-desktop.js +31 -0
- package/dist/install/clients/claude-desktop.js.map +1 -0
- package/dist/install/clients/codex.d.ts +3 -0
- package/dist/install/clients/codex.d.ts.map +1 -0
- package/dist/install/clients/codex.js +32 -0
- package/dist/install/clients/codex.js.map +1 -0
- package/dist/install/clients/cursor.d.ts +3 -0
- package/dist/install/clients/cursor.d.ts.map +1 -0
- package/dist/install/clients/cursor.js +35 -0
- package/dist/install/clients/cursor.js.map +1 -0
- package/dist/install/clients/hermes.d.ts +3 -0
- package/dist/install/clients/hermes.d.ts.map +1 -0
- package/dist/install/clients/hermes.js +35 -0
- package/dist/install/clients/hermes.js.map +1 -0
- package/dist/install/clients/index.d.ts +4 -0
- package/dist/install/clients/index.d.ts.map +1 -0
- package/dist/install/clients/index.js +18 -0
- package/dist/install/clients/index.js.map +1 -0
- package/dist/install/clients/windsurf.d.ts +3 -0
- package/dist/install/clients/windsurf.d.ts.map +1 -0
- package/dist/install/clients/windsurf.js +32 -0
- package/dist/install/clients/windsurf.js.map +1 -0
- package/dist/install/command.d.ts +14 -0
- package/dist/install/command.d.ts.map +1 -0
- package/dist/install/command.js +34 -0
- package/dist/install/command.js.map +1 -0
- package/dist/install/directive.d.ts +7 -0
- package/dist/install/directive.d.ts.map +1 -0
- package/dist/install/directive.js +31 -0
- package/dist/install/directive.js.map +1 -0
- package/dist/install/index.d.ts +26 -0
- package/dist/install/index.d.ts.map +1 -0
- package/dist/install/index.js +117 -0
- package/dist/install/index.js.map +1 -0
- package/dist/install/json-config.d.ts +11 -0
- package/dist/install/json-config.d.ts.map +1 -0
- package/dist/install/json-config.js +39 -0
- package/dist/install/json-config.js.map +1 -0
- package/dist/install/marked-block.d.ts +11 -0
- package/dist/install/marked-block.d.ts.map +1 -0
- package/dist/install/marked-block.js +34 -0
- package/dist/install/marked-block.js.map +1 -0
- package/dist/install/skill.d.ts +4 -0
- package/dist/install/skill.d.ts.map +1 -0
- package/dist/install/skill.js +61 -0
- package/dist/install/skill.js.map +1 -0
- package/dist/install/toml-config.d.ts +4 -0
- package/dist/install/toml-config.d.ts.map +1 -0
- package/dist/install/toml-config.js +51 -0
- package/dist/install/toml-config.js.map +1 -0
- package/dist/install/types.d.ts +37 -0
- package/dist/install/types.d.ts.map +1 -0
- package/dist/install/types.js +4 -0
- package/dist/install/types.js.map +1 -0
- package/dist/install/yaml-config.d.ts +4 -0
- package/dist/install/yaml-config.d.ts.map +1 -0
- package/dist/install/yaml-config.js +18 -0
- package/dist/install/yaml-config.js.map +1 -0
- package/dist/processors/privacy.d.ts +4 -1
- package/dist/processors/privacy.d.ts.map +1 -1
- package/dist/processors/privacy.js +5 -3
- package/dist/processors/privacy.js.map +1 -1
- package/dist/profile/accumulate.d.ts +28 -0
- package/dist/profile/accumulate.d.ts.map +1 -0
- package/dist/profile/accumulate.js +48 -0
- package/dist/profile/accumulate.js.map +1 -0
- package/dist/profile/behavior.d.ts +32 -0
- package/dist/profile/behavior.d.ts.map +1 -0
- package/dist/profile/behavior.js +122 -0
- package/dist/profile/behavior.js.map +1 -0
- package/dist/profile/four-color.d.ts +12 -0
- package/dist/profile/four-color.d.ts.map +1 -0
- package/dist/profile/four-color.js +39 -0
- package/dist/profile/four-color.js.map +1 -0
- package/dist/profile/profile-synth.d.ts +27 -0
- package/dist/profile/profile-synth.d.ts.map +1 -0
- package/dist/profile/profile-synth.js +174 -0
- package/dist/profile/profile-synth.js.map +1 -0
- package/dist/profile/types.d.ts +84 -0
- package/dist/profile/types.d.ts.map +1 -0
- package/dist/profile/types.js +11 -0
- package/dist/profile/types.js.map +1 -0
- package/dist/server/api.d.ts +8 -2
- package/dist/server/api.d.ts.map +1 -1
- package/dist/server/api.js +69 -34
- package/dist/server/api.js.map +1 -1
- package/dist/server/backfill-routes.d.ts.map +1 -1
- package/dist/server/backfill-routes.js +14 -1
- package/dist/server/backfill-routes.js.map +1 -1
- package/dist/server/chat-name-refresh-job.d.ts +33 -0
- package/dist/server/chat-name-refresh-job.d.ts.map +1 -0
- package/dist/server/chat-name-refresh-job.js +120 -0
- package/dist/server/chat-name-refresh-job.js.map +1 -0
- package/dist/server/chat-name-routes.d.ts +13 -0
- package/dist/server/chat-name-routes.d.ts.map +1 -0
- package/dist/server/chat-name-routes.js +81 -0
- package/dist/server/chat-name-routes.js.map +1 -0
- package/dist/server/config-routes.d.ts +2 -0
- package/dist/server/config-routes.d.ts.map +1 -1
- package/dist/server/config-routes.js +2 -1
- package/dist/server/config-routes.js.map +1 -1
- package/dist/server/mcp-http.d.ts +26 -0
- package/dist/server/mcp-http.d.ts.map +1 -0
- package/dist/server/mcp-http.js +102 -0
- package/dist/server/mcp-http.js.map +1 -0
- package/dist/server/mcp.d.ts +191 -25
- package/dist/server/mcp.d.ts.map +1 -1
- package/dist/server/mcp.js +1111 -68
- package/dist/server/mcp.js.map +1 -1
- package/dist/server/open-browser.d.ts +3 -0
- package/dist/server/open-browser.d.ts.map +1 -0
- package/dist/server/open-browser.js +12 -0
- package/dist/server/open-browser.js.map +1 -0
- package/dist/server/runtime.d.ts +13 -0
- package/dist/server/runtime.d.ts.map +1 -0
- package/dist/server/runtime.js +27 -0
- package/dist/server/runtime.js.map +1 -0
- package/dist/server/setup-server.d.ts.map +1 -1
- package/dist/server/setup-server.js +8 -11
- package/dist/server/setup-server.js.map +1 -1
- package/dist/setup/connection-tests.d.ts +1 -1
- package/dist/setup/connection-tests.d.ts.map +1 -1
- package/dist/setup/connection-tests.js +4 -2
- package/dist/setup/connection-tests.js.map +1 -1
- package/dist/setup/generate-config.d.ts.map +1 -1
- package/dist/setup/generate-config.js +31 -1
- package/dist/setup/generate-config.js.map +1 -1
- package/dist/setup/init-wizard.d.ts +1 -0
- package/dist/setup/init-wizard.d.ts.map +1 -1
- package/dist/setup/init-wizard.js +38 -21
- package/dist/setup/init-wizard.js.map +1 -1
- package/dist/setup/validate-config.d.ts +5 -1
- package/dist/setup/validate-config.d.ts.map +1 -1
- package/dist/setup/validate-config.js +18 -0
- package/dist/setup/validate-config.js.map +1 -1
- package/dist/store/data-dir-lock.d.ts +15 -0
- package/dist/store/data-dir-lock.d.ts.map +1 -0
- package/dist/store/data-dir-lock.js +96 -0
- package/dist/store/data-dir-lock.js.map +1 -0
- package/dist/store/database.d.ts +2 -0
- package/dist/store/database.d.ts.map +1 -1
- package/dist/store/database.js +23 -10
- package/dist/store/database.js.map +1 -1
- package/dist/store/graph.d.ts +22 -0
- package/dist/store/graph.d.ts.map +1 -1
- package/dist/store/graph.js +97 -7
- package/dist/store/graph.js.map +1 -1
- package/dist/store/migrations/index.d.ts.map +1 -1
- package/dist/store/migrations/index.js +52 -0
- package/dist/store/migrations/index.js.map +1 -1
- package/dist/store/pages.d.ts +7 -0
- package/dist/store/pages.d.ts.map +1 -1
- package/dist/store/pages.js +56 -1
- package/dist/store/pages.js.map +1 -1
- package/dist/store/person-behavior.d.ts +28 -0
- package/dist/store/person-behavior.d.ts.map +1 -0
- package/dist/store/person-behavior.js +127 -0
- package/dist/store/person-behavior.js.map +1 -0
- package/dist/store/pglite-assets.d.ts +15 -0
- package/dist/store/pglite-assets.d.ts.map +1 -0
- package/dist/store/pglite-assets.js +47 -0
- package/dist/store/pglite-assets.js.map +1 -0
- package/dist/store/query-rewrite.d.ts +28 -0
- package/dist/store/query-rewrite.d.ts.map +1 -0
- package/dist/store/query-rewrite.js +97 -0
- package/dist/store/query-rewrite.js.map +1 -0
- package/dist/store/schema.sql +107 -0
- package/dist/store/search.d.ts +36 -8
- package/dist/store/search.d.ts.map +1 -1
- package/dist/store/search.js +188 -76
- package/dist/store/search.js.map +1 -1
- package/dist/store/tags.d.ts.map +1 -1
- package/dist/store/tags.js +6 -2
- package/dist/store/tags.js.map +1 -1
- package/dist/store/timeline.d.ts +13 -1
- package/dist/store/timeline.d.ts.map +1 -1
- package/dist/store/timeline.js +134 -4
- package/dist/store/timeline.js.map +1 -1
- package/dist/store/trgm-search.d.ts +13 -0
- package/dist/store/trgm-search.d.ts.map +1 -0
- package/dist/store/trgm-search.js +53 -0
- package/dist/store/trgm-search.js.map +1 -0
- package/dist/store/wikilink.d.ts +17 -0
- package/dist/store/wikilink.d.ts.map +1 -0
- package/dist/store/wikilink.js +58 -0
- package/dist/store/wikilink.js.map +1 -0
- package/dist/sync/obsidian.d.ts.map +1 -1
- package/dist/sync/obsidian.js +5 -1
- package/dist/sync/obsidian.js.map +1 -1
- package/dist/synth/cache.d.ts +17 -0
- package/dist/synth/cache.d.ts.map +1 -0
- package/dist/synth/cache.js +67 -0
- package/dist/synth/cache.js.map +1 -0
- package/dist/synth/citations.d.ts +12 -0
- package/dist/synth/citations.d.ts.map +1 -0
- package/dist/synth/citations.js +28 -0
- package/dist/synth/citations.js.map +1 -0
- package/dist/synth/context.d.ts +10 -0
- package/dist/synth/context.d.ts.map +1 -0
- package/dist/synth/context.js +67 -0
- package/dist/synth/context.js.map +1 -0
- package/dist/synth/engine.d.ts +16 -0
- package/dist/synth/engine.d.ts.map +1 -0
- package/dist/synth/engine.js +111 -0
- package/dist/synth/engine.js.map +1 -0
- package/dist/synth/gaps.d.ts +17 -0
- package/dist/synth/gaps.d.ts.map +1 -0
- package/dist/synth/gaps.js +57 -0
- package/dist/synth/gaps.js.map +1 -0
- package/dist/synth/index.d.ts +6 -0
- package/dist/synth/index.d.ts.map +1 -0
- package/dist/synth/index.js +6 -0
- package/dist/synth/index.js.map +1 -0
- package/dist/synth/intent.d.ts +6 -0
- package/dist/synth/intent.d.ts.map +1 -0
- package/dist/synth/intent.js +13 -0
- package/dist/synth/intent.js.map +1 -0
- package/dist/synth/intents/daily-report.d.ts +7 -0
- package/dist/synth/intents/daily-report.d.ts.map +1 -0
- package/dist/synth/intents/daily-report.js +37 -0
- package/dist/synth/intents/daily-report.js.map +1 -0
- package/dist/synth/intents/index.d.ts +2 -0
- package/dist/synth/intents/index.d.ts.map +1 -0
- package/dist/synth/intents/index.js +12 -0
- package/dist/synth/intents/index.js.map +1 -0
- package/dist/synth/intents/person-strategy.d.ts +40 -0
- package/dist/synth/intents/person-strategy.d.ts.map +1 -0
- package/dist/synth/intents/person-strategy.js +66 -0
- package/dist/synth/intents/person-strategy.js.map +1 -0
- package/dist/synth/intents/recall.d.ts +8 -0
- package/dist/synth/intents/recall.d.ts.map +1 -0
- package/dist/synth/intents/recall.js +26 -0
- package/dist/synth/intents/recall.js.map +1 -0
- package/dist/synth/intents/troubleshoot.d.ts +11 -0
- package/dist/synth/intents/troubleshoot.d.ts.map +1 -0
- package/dist/synth/intents/troubleshoot.js +66 -0
- package/dist/synth/intents/troubleshoot.js.map +1 -0
- package/dist/synth/scope.d.ts +13 -0
- package/dist/synth/scope.d.ts.map +1 -0
- package/dist/synth/scope.js +139 -0
- package/dist/synth/scope.js.map +1 -0
- package/dist/synth/types.d.ts +117 -0
- package/dist/synth/types.d.ts.map +1 -0
- package/dist/synth/types.js +2 -0
- package/dist/synth/types.js.map +1 -0
- package/package.json +18 -6
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
3
|
+
import { homedir } from "node:os";
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
// Opt-in, debounced, non-blocking auto write-back for the SessionEnd hook.
|
|
6
|
+
// When enabled, triggers a detached `memoark extract --source claude-code`
|
|
7
|
+
// (incremental + deduped + L1/L2 noise-filtered) at most once per debounce window.
|
|
8
|
+
const DEFAULT_DEBOUNCE_MS = 10 * 60 * 1000; // 10 minutes
|
|
9
|
+
function stampPath(home) {
|
|
10
|
+
return join(home, ".memoark", ".last-writeback");
|
|
11
|
+
}
|
|
12
|
+
function defaultReadStamp(home) {
|
|
13
|
+
const p = stampPath(home);
|
|
14
|
+
if (!existsSync(p))
|
|
15
|
+
return null;
|
|
16
|
+
const n = Number(readFileSync(p, "utf8").trim());
|
|
17
|
+
return Number.isFinite(n) ? n : null;
|
|
18
|
+
}
|
|
19
|
+
function defaultWriteStamp(home, t) {
|
|
20
|
+
try {
|
|
21
|
+
writeFileSync(stampPath(home), String(t));
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
// best-effort; a missing ~/.memoark just means no debounce persistence
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function defaultSpawn() {
|
|
28
|
+
const child = spawn("memoark", ["extract", "--source", "claude-code"], {
|
|
29
|
+
detached: true,
|
|
30
|
+
stdio: "ignore",
|
|
31
|
+
});
|
|
32
|
+
child.unref();
|
|
33
|
+
}
|
|
34
|
+
/** Returns true if a write-back was triggered. Never blocks (extract is detached). */
|
|
35
|
+
export function runWriteback(deps) {
|
|
36
|
+
if (!deps.enabled)
|
|
37
|
+
return false;
|
|
38
|
+
const home = deps.home ?? homedir();
|
|
39
|
+
const now = deps.now ?? Date.now();
|
|
40
|
+
const debounce = deps.debounceMs ?? DEFAULT_DEBOUNCE_MS;
|
|
41
|
+
const last = (deps.readStamp ?? (() => defaultReadStamp(home)))();
|
|
42
|
+
if (last !== null && now - last < debounce)
|
|
43
|
+
return false;
|
|
44
|
+
(deps.writeStamp ?? ((t) => defaultWriteStamp(home, t)))(now);
|
|
45
|
+
(deps.spawnExtract ?? defaultSpawn)();
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=writeback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writeback.js","sourceRoot":"","sources":["../../src/hooks/writeback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,2EAA2E;AAC3E,2EAA2E;AAC3E,mFAAmF;AAEnF,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;AAEzD,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY,EAAE,CAAS;IAChD,IAAI,CAAC;QACH,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;IACzE,CAAC;AACH,CAAC;AAED,SAAS,YAAY;IACnB,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE;QACrE,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,QAAQ;KAChB,CAAC,CAAC;IACH,KAAK,CAAC,KAAK,EAAE,CAAC;AAChB,CAAC;AAYD,sFAAsF;AACtF,MAAM,UAAU,YAAY,CAAC,IAAmB;IAC9C,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,IAAI,mBAAmB,CAAC;IACxD,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,QAAQ;QAAE,OAAO,KAAK,CAAC;IACzD,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC9D,CAAC,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,EAAE,CAAC;IACtC,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../../src/install/clients/claude-code.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,aAAa,EAA0B,MAAM,aAAa,CAAC;AAEzE,eAAO,MAAM,UAAU,EAAE,aA0BxB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { DIRECTIVE_L1 } from "../directive.js";
|
|
4
|
+
import { mcpEntry } from "../types.js";
|
|
5
|
+
export const claudeCode = {
|
|
6
|
+
id: "claude-code",
|
|
7
|
+
displayName: "Claude Code",
|
|
8
|
+
detect(home) {
|
|
9
|
+
return existsSync(join(home, ".claude")) || existsSync(join(home, ".claude.json"));
|
|
10
|
+
},
|
|
11
|
+
plan(ctx) {
|
|
12
|
+
const mcpPath = ctx.scope === "project" ? join(ctx.cwd, ".mcp.json") : join(ctx.home, ".claude.json");
|
|
13
|
+
const rulesPath = ctx.scope === "project" ? join(ctx.cwd, "CLAUDE.md") : join(ctx.home, ".claude", "CLAUDE.md");
|
|
14
|
+
return [
|
|
15
|
+
{
|
|
16
|
+
path: mcpPath,
|
|
17
|
+
kind: "json-mcp",
|
|
18
|
+
action: ctx.action,
|
|
19
|
+
entry: ctx.action === "upsert" ? mcpEntry(ctx) : undefined,
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
path: rulesPath,
|
|
23
|
+
kind: "marked-block",
|
|
24
|
+
action: ctx.action,
|
|
25
|
+
content: ctx.action === "upsert" ? DIRECTIVE_L1 : undefined,
|
|
26
|
+
},
|
|
27
|
+
];
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=claude-code.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/install/clients/claude-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAsB,QAAQ,EAAgB,MAAM,aAAa,CAAC;AAEzE,MAAM,CAAC,MAAM,UAAU,GAAkB;IACvC,EAAE,EAAE,aAAa;IACjB,WAAW,EAAE,aAAa;IAC1B,MAAM,CAAC,IAAI;QACT,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,CAAC,GAAY;QACf,MAAM,OAAO,GACX,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QACxF,MAAM,SAAS,GACb,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAChG,OAAO;YACL;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,KAAK,EAAE,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;aAC3D;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,OAAO,EAAE,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;aAC5D;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-desktop.d.ts","sourceRoot":"","sources":["../../../src/install/clients/claude-desktop.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAA0B,MAAM,aAAa,CAAC;AAUzE,eAAO,MAAM,aAAa,EAAE,aAiB3B,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { mcpEntry } from "../types.js";
|
|
4
|
+
// Claude Desktop has no rules-file mechanism; it relies on the L2 MCP
|
|
5
|
+
// `instructions` field. Install only registers the MCP server.
|
|
6
|
+
function configDir(home, platform) {
|
|
7
|
+
if (platform === "darwin")
|
|
8
|
+
return join(home, "Library", "Application Support", "Claude");
|
|
9
|
+
if (platform === "win32")
|
|
10
|
+
return join(home, "AppData", "Roaming", "Claude");
|
|
11
|
+
return join(home, ".config", "Claude");
|
|
12
|
+
}
|
|
13
|
+
export const claudeDesktop = {
|
|
14
|
+
id: "claude-desktop",
|
|
15
|
+
displayName: "Claude Desktop",
|
|
16
|
+
detect(home, platform) {
|
|
17
|
+
return existsSync(configDir(home, platform));
|
|
18
|
+
},
|
|
19
|
+
plan(ctx) {
|
|
20
|
+
const path = join(configDir(ctx.home, ctx.platform), "claude_desktop_config.json");
|
|
21
|
+
return [
|
|
22
|
+
{
|
|
23
|
+
path,
|
|
24
|
+
kind: "json-mcp",
|
|
25
|
+
action: ctx.action,
|
|
26
|
+
entry: ctx.action === "upsert" ? mcpEntry(ctx) : undefined,
|
|
27
|
+
},
|
|
28
|
+
];
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=claude-desktop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-desktop.js","sourceRoot":"","sources":["../../../src/install/clients/claude-desktop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAsB,QAAQ,EAAgB,MAAM,aAAa,CAAC;AAEzE,sEAAsE;AACtE,+DAA+D;AAC/D,SAAS,SAAS,CAAC,IAAY,EAAE,QAAyB;IACxD,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,qBAAqB,EAAE,QAAQ,CAAC,CAAC;IACzF,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC5E,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,EAAE,EAAE,gBAAgB;IACpB,WAAW,EAAE,gBAAgB;IAC7B,MAAM,CAAC,IAAI,EAAE,QAAQ;QACnB,OAAO,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,CAAC,GAAY;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,4BAA4B,CAAC,CAAC;QACnF,OAAO;YACL;gBACE,IAAI;gBACJ,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,KAAK,EAAE,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;aAC3D;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/install/clients/codex.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,aAAa,EAA0B,MAAM,aAAa,CAAC;AAIzE,eAAO,MAAM,KAAK,EAAE,aAyBnB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { DIRECTIVE_L1 } from "../directive.js";
|
|
4
|
+
import { mcpEntry } from "../types.js";
|
|
5
|
+
// Codex MCP config is global-only (~/.codex/config.toml); rules go to AGENTS.md
|
|
6
|
+
// (global ~/.codex/AGENTS.md or project ./AGENTS.md).
|
|
7
|
+
export const codex = {
|
|
8
|
+
id: "codex",
|
|
9
|
+
displayName: "Codex",
|
|
10
|
+
detect(home) {
|
|
11
|
+
return existsSync(join(home, ".codex"));
|
|
12
|
+
},
|
|
13
|
+
plan(ctx) {
|
|
14
|
+
const mcpPath = join(ctx.home, ".codex", "config.toml");
|
|
15
|
+
const rulesPath = ctx.scope === "project" ? join(ctx.cwd, "AGENTS.md") : join(ctx.home, ".codex", "AGENTS.md");
|
|
16
|
+
return [
|
|
17
|
+
{
|
|
18
|
+
path: mcpPath,
|
|
19
|
+
kind: "toml-mcp",
|
|
20
|
+
action: ctx.action,
|
|
21
|
+
entry: ctx.action === "upsert" ? mcpEntry(ctx) : undefined,
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
path: rulesPath,
|
|
25
|
+
kind: "marked-block",
|
|
26
|
+
action: ctx.action,
|
|
27
|
+
content: ctx.action === "upsert" ? DIRECTIVE_L1 : undefined,
|
|
28
|
+
},
|
|
29
|
+
];
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=codex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/install/clients/codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAsB,QAAQ,EAAgB,MAAM,aAAa,CAAC;AAEzE,gFAAgF;AAChF,sDAAsD;AACtD,MAAM,CAAC,MAAM,KAAK,GAAkB;IAClC,EAAE,EAAE,OAAO;IACX,WAAW,EAAE,OAAO;IACpB,MAAM,CAAC,IAAI;QACT,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,CAAC,GAAY;QACf,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QACxD,MAAM,SAAS,GACb,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC/F,OAAO;YACL;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,KAAK,EAAE,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;aAC3D;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,OAAO,EAAE,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;aAC5D;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../../src/install/clients/cursor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,aAAa,EAA0B,MAAM,aAAa,CAAC;AAOzE,eAAO,MAAM,MAAM,EAAE,aAyBpB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { DIRECTIVE_L1, MEMOARK_BLOCK_END, MEMOARK_BLOCK_START } from "../directive.js";
|
|
4
|
+
import { mcpEntry } from "../types.js";
|
|
5
|
+
// Cursor rules use `.mdc` with required frontmatter, so memoark owns the whole
|
|
6
|
+
// file (managed-file) rather than appending a marker block.
|
|
7
|
+
const L1_BODY = DIRECTIVE_L1.replace(MEMOARK_BLOCK_START, "").replace(MEMOARK_BLOCK_END, "").trim();
|
|
8
|
+
const CURSOR_MDC = `---\nalwaysApply: true\n---\n\n${L1_BODY}\n`;
|
|
9
|
+
export const cursor = {
|
|
10
|
+
id: "cursor",
|
|
11
|
+
displayName: "Cursor",
|
|
12
|
+
detect(home) {
|
|
13
|
+
return existsSync(join(home, ".cursor"));
|
|
14
|
+
},
|
|
15
|
+
plan(ctx) {
|
|
16
|
+
const base = ctx.scope === "project" ? ctx.cwd : ctx.home;
|
|
17
|
+
const mcpPath = join(base, ".cursor", "mcp.json");
|
|
18
|
+
const rulesPath = join(base, ".cursor", "rules", "memoark.mdc");
|
|
19
|
+
return [
|
|
20
|
+
{
|
|
21
|
+
path: mcpPath,
|
|
22
|
+
kind: "json-mcp",
|
|
23
|
+
action: ctx.action,
|
|
24
|
+
entry: ctx.action === "upsert" ? mcpEntry(ctx) : undefined,
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
path: rulesPath,
|
|
28
|
+
kind: "managed-file",
|
|
29
|
+
action: ctx.action,
|
|
30
|
+
content: ctx.action === "upsert" ? CURSOR_MDC : undefined,
|
|
31
|
+
},
|
|
32
|
+
];
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=cursor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../../src/install/clients/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACvF,OAAO,EAAsB,QAAQ,EAAgB,MAAM,aAAa,CAAC;AAEzE,+EAA+E;AAC/E,4DAA4D;AAC5D,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACpG,MAAM,UAAU,GAAG,kCAAkC,OAAO,IAAI,CAAC;AAEjE,MAAM,CAAC,MAAM,MAAM,GAAkB;IACnC,EAAE,EAAE,QAAQ;IACZ,WAAW,EAAE,QAAQ;IACrB,MAAM,CAAC,IAAI;QACT,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,CAAC,GAAY;QACf,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QAChE,OAAO;YACL;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,KAAK,EAAE,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;aAC3D;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,OAAO,EAAE,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;aAC1D;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hermes.d.ts","sourceRoot":"","sources":["../../../src/install/clients/hermes.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,aAAa,EAA0B,MAAM,aAAa,CAAC;AASzE,eAAO,MAAM,MAAM,EAAE,aAuBpB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { MEMOARK_SKILL } from "../skill.js";
|
|
4
|
+
import { mcpEntry } from "../types.js";
|
|
5
|
+
// OpenClaw / Hermes. MCP lives in config.yaml `mcp_servers`; the skill drops
|
|
6
|
+
// into the skills dir. Newer Hermes uses ~/.hermes; older OpenClaw layout uses
|
|
7
|
+
// ~/.openclaw — detect either and pin the root accordingly.
|
|
8
|
+
function hermesRoot(home) {
|
|
9
|
+
return existsSync(join(home, ".hermes")) ? join(home, ".hermes") : join(home, ".openclaw");
|
|
10
|
+
}
|
|
11
|
+
export const hermes = {
|
|
12
|
+
id: "hermes",
|
|
13
|
+
displayName: "OpenClaw / Hermes",
|
|
14
|
+
detect(home) {
|
|
15
|
+
return existsSync(join(home, ".hermes")) || existsSync(join(home, ".openclaw"));
|
|
16
|
+
},
|
|
17
|
+
plan(ctx) {
|
|
18
|
+
const root = hermesRoot(ctx.home);
|
|
19
|
+
return [
|
|
20
|
+
{
|
|
21
|
+
path: join(root, "config.yaml"),
|
|
22
|
+
kind: "yaml-mcp",
|
|
23
|
+
action: ctx.action,
|
|
24
|
+
entry: ctx.action === "upsert" ? mcpEntry(ctx) : undefined,
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
path: join(root, "skills", "memoark", "SKILL.md"),
|
|
28
|
+
kind: "managed-file",
|
|
29
|
+
action: ctx.action,
|
|
30
|
+
content: ctx.action === "upsert" ? MEMOARK_SKILL : undefined,
|
|
31
|
+
},
|
|
32
|
+
];
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=hermes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hermes.js","sourceRoot":"","sources":["../../../src/install/clients/hermes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAsB,QAAQ,EAAgB,MAAM,aAAa,CAAC;AAEzE,6EAA6E;AAC7E,+EAA+E;AAC/E,4DAA4D;AAC5D,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAkB;IACnC,EAAE,EAAE,QAAQ;IACZ,WAAW,EAAE,mBAAmB;IAChC,MAAM,CAAC,IAAI;QACT,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,CAAC,GAAY;QACf,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO;YACL;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;gBAC/B,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,KAAK,EAAE,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;aAC3D;YACD;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC;gBACjD,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,OAAO,EAAE,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;aAC7D;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/install/clients/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQjD,eAAO,MAAM,QAAQ,EAAE,aAAa,EAOnC,CAAC;AAEF,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAEhE"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { claudeCode } from "./claude-code.js";
|
|
2
|
+
import { claudeDesktop } from "./claude-desktop.js";
|
|
3
|
+
import { codex } from "./codex.js";
|
|
4
|
+
import { cursor } from "./cursor.js";
|
|
5
|
+
import { hermes } from "./hermes.js";
|
|
6
|
+
import { windsurf } from "./windsurf.js";
|
|
7
|
+
export const ADAPTERS = [
|
|
8
|
+
claudeCode,
|
|
9
|
+
claudeDesktop,
|
|
10
|
+
cursor,
|
|
11
|
+
codex,
|
|
12
|
+
windsurf,
|
|
13
|
+
hermes,
|
|
14
|
+
];
|
|
15
|
+
export function getAdapter(id) {
|
|
16
|
+
return ADAPTERS.find((a) => a.id === id);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/install/clients/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,CAAC,MAAM,QAAQ,GAAoB;IACvC,UAAU;IACV,aAAa;IACb,MAAM;IACN,KAAK;IACL,QAAQ;IACR,MAAM;CACP,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,EAAU;IACnC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"windsurf.d.ts","sourceRoot":"","sources":["../../../src/install/clients/windsurf.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,aAAa,EAA0B,MAAM,aAAa,CAAC;AAEzE,eAAO,MAAM,QAAQ,EAAE,aA2BtB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { DIRECTIVE_L1 } from "../directive.js";
|
|
4
|
+
import { mcpEntry } from "../types.js";
|
|
5
|
+
export const windsurf = {
|
|
6
|
+
id: "windsurf",
|
|
7
|
+
displayName: "Windsurf",
|
|
8
|
+
detect(home) {
|
|
9
|
+
return existsSync(join(home, ".codeium", "windsurf"));
|
|
10
|
+
},
|
|
11
|
+
plan(ctx) {
|
|
12
|
+
const mcpPath = join(ctx.home, ".codeium", "windsurf", "mcp_config.json");
|
|
13
|
+
const rulesPath = ctx.scope === "project"
|
|
14
|
+
? join(ctx.cwd, ".windsurfrules")
|
|
15
|
+
: join(ctx.home, ".codeium", "windsurf", "memories", "global_rules.md");
|
|
16
|
+
return [
|
|
17
|
+
{
|
|
18
|
+
path: mcpPath,
|
|
19
|
+
kind: "json-mcp",
|
|
20
|
+
action: ctx.action,
|
|
21
|
+
entry: ctx.action === "upsert" ? mcpEntry(ctx) : undefined,
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
path: rulesPath,
|
|
25
|
+
kind: "marked-block",
|
|
26
|
+
action: ctx.action,
|
|
27
|
+
content: ctx.action === "upsert" ? DIRECTIVE_L1 : undefined,
|
|
28
|
+
},
|
|
29
|
+
];
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=windsurf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"windsurf.js","sourceRoot":"","sources":["../../../src/install/clients/windsurf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAsB,QAAQ,EAAgB,MAAM,aAAa,CAAC;AAEzE,MAAM,CAAC,MAAM,QAAQ,GAAkB;IACrC,EAAE,EAAE,UAAU;IACd,WAAW,EAAE,UAAU;IACvB,MAAM,CAAC,IAAI;QACT,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,CAAC,GAAY;QACf,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;QAC1E,MAAM,SAAS,GACb,GAAG,CAAC,KAAK,KAAK,SAAS;YACrB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,gBAAgB,CAAC;YACjC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;QAC5E,OAAO;YACL;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,KAAK,EAAE,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;aAC3D;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,OAAO,EAAE,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;aAC5D;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface LaunchCmd {
|
|
2
|
+
command: string;
|
|
3
|
+
args: string[];
|
|
4
|
+
}
|
|
5
|
+
export interface ResolveOpts {
|
|
6
|
+
/** Use the Streamable HTTP transport instead of stdio. */
|
|
7
|
+
http?: boolean;
|
|
8
|
+
/** Injectable PATH lookup for tests. */
|
|
9
|
+
onPath?: (bin: string) => boolean;
|
|
10
|
+
}
|
|
11
|
+
/** Default check: is `bin` an executable on PATH? */
|
|
12
|
+
export declare function isOnPath(bin: string, env?: NodeJS.ProcessEnv): boolean;
|
|
13
|
+
export declare function resolveLaunchCmd(opts?: ResolveOpts): LaunchCmd;
|
|
14
|
+
//# sourceMappingURL=command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/install/command.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,0DAA0D;IAC1D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,wCAAwC;IACxC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;CACnC;AAED,qDAAqD;AACrD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAenF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,WAAgB,GAAG,SAAS,CAOlE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { accessSync, constants } from "node:fs";
|
|
2
|
+
import { delimiter, join } from "node:path";
|
|
3
|
+
// Resolves the command an MCP client should spawn to launch Memoark's stdio
|
|
4
|
+
// (or HTTP) server. Prefers a globally-installed `memoark` binary; otherwise
|
|
5
|
+
// falls back to `npx -y @andre.li/memoark`.
|
|
6
|
+
const PACKAGE = "@andre.li/memoark";
|
|
7
|
+
/** Default check: is `bin` an executable on PATH? */
|
|
8
|
+
export function isOnPath(bin, env = process.env) {
|
|
9
|
+
const path = env.PATH ?? "";
|
|
10
|
+
const exts = process.platform === "win32" ? ["", ".cmd", ".exe", ".bat"] : [""];
|
|
11
|
+
for (const dir of path.split(delimiter)) {
|
|
12
|
+
if (!dir)
|
|
13
|
+
continue;
|
|
14
|
+
for (const ext of exts) {
|
|
15
|
+
try {
|
|
16
|
+
accessSync(join(dir, bin + ext), constants.X_OK);
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
// not here; keep looking
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
export function resolveLaunchCmd(opts = {}) {
|
|
27
|
+
const transport = opts.http ? "--mcp-http" : "--mcp";
|
|
28
|
+
const onPath = opts.onPath ?? isOnPath;
|
|
29
|
+
if (onPath("memoark")) {
|
|
30
|
+
return { command: "memoark", args: ["serve", transport] };
|
|
31
|
+
}
|
|
32
|
+
return { command: "npx", args: ["-y", PACKAGE, "serve", transport] };
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/install/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE5C,4EAA4E;AAC5E,6EAA6E;AAC7E,4CAA4C;AAE5C,MAAM,OAAO,GAAG,mBAAmB,CAAC;AAcpC,qDAAqD;AACrD,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,MAAyB,OAAO,CAAC,GAAG;IACxE,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAChF,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;gBACjD,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,yBAAyB;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAoB,EAAE;IACrD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC;IACvC,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;IAC5D,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;AACvE,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const MEMOARK_BLOCK_START = "<!-- memoark:start -->";
|
|
2
|
+
export declare const MEMOARK_BLOCK_END = "<!-- memoark:end -->";
|
|
3
|
+
/** L1: minimal directive block for rules files (CLAUDE.md / AGENTS.md / …). */
|
|
4
|
+
export declare const DIRECTIVE_L1 = "<!-- memoark:start -->\n## Memoark \u2014 \u4F60\u7684\u4E2A\u4EBA\u8BB0\u5FC6\u5E93\n\u4F60\u63A5\u5165\u4E86 Memoark\uFF1A\u7528\u6237\u5173\u4E8E\u300C\u4EBA / \u9879\u76EE / \u51B3\u7B56 / \u4EFB\u52A1 / \u8FC7\u5F80\u300D\u7684\u672C\u5730\u6301\u4E45\u8BB0\u5FC6\uFF0C\u662F\u8FD9\u4E9B\u4E8B\u7684**\u4E8B\u5B9E\u6765\u6E90**\u3002\n- **\u4F55\u65F6\u67E5**\uFF1A\u95EE\u9898\u6D89\u53CA\u5177\u4F53\u7684\u4EBA\u3001\u9879\u76EE\u8FDB\u5C55\u3001\u8FC7\u53BB\u7684\u51B3\u5B9A\u3001\u5F85\u529E\uFF0C\u6216\u5E26\u300C\u4E0A\u5468 / \u4E4B\u524D / \u6211\u4EEC\u5F53\u65F6\u2026\u300D\u65F6\u2014\u2014\u5148\u67E5 Memoark\uFF0C\u522B\u53EA\u51ED\u4EE3\u7801\u6216\u731C\u6D4B\u3002\n- **\u600E\u4E48\u67E5\uFF08\u4FBF\u5B9C\u4F18\u5148\uFF09**\uFF1A\u5148 `search`\uFF08\u5173\u952E\u8BCD\uFF0C\u96F6\u6210\u672C\uFF09\u2192 \u4E0D\u591F\u518D `query` / `recall`\uFF08\u8BED\u4E49 + \u5F15\u7528\uFF09\uFF1B\u4F1A\u8BDD\u5F00\u59CB\u53EF\u5148 `get_session_context` \u8FDB\u5165\u72B6\u6001\u3002\n- **\u4F55\u65F6\u4E0D\u67E5**\uFF1A\u4E0E\u7528\u6237\u4E2A\u4EBA\u4E16\u754C\u65E0\u5173\u7684\u901A\u7528\u95EE\u9898\uFF08\u7EAF\u8BED\u6CD5 / \u901A\u7528\u7B97\u6CD5\uFF09\uFF0C\u522B\u6253\u6270\u8BB0\u5FC6\u5E93\u3002\n- \u66F4\u591A\u7528\u6CD5\uFF08\u5199\u56DE\u3001\u56FE\u8C31\u3001\u4EBA\u7269\u753B\u50CF\uFF09\u6309\u9700\u53D1\u73B0\uFF1A\u8C03\u7528\u5DE5\u5177\u65F6\u770B\u5176\u8BF4\u660E\uFF0C\u6216 `get_health`\u3002\n<!-- memoark:end -->";
|
|
5
|
+
/** L2: medium directive used as the MCP server `instructions` field. */
|
|
6
|
+
export declare const DIRECTIVE_L2 = "Memoark is the user's local-first personal memory \u2014 the source of truth about the user's people, projects, decisions, tasks, and history.\n\nBrain-first, cheap-first. When a request concerns a specific person, a project's status/history, a past decision, a todo, or contains \"last week / earlier / what did we\u2026\", consult Memoark BEFORE answering from code or assumptions:\n 1) search (keyword, zero-cost)\n 2) query / recall (semantic + cited) \u2014 only if search is thin\n Accept good results; do not over-escalate.\nSession start: call get_session_context for a compact digest of active projects, recent decisions, open tasks, and key people.\nProject-status questions: combine Memoark (decisions/tasks/timeline) WITH repo reality (git/code); do not answer from code alone.\nDo NOT consult Memoark for generic questions unrelated to the user's world (pure syntax, general algorithms).\nWrite-back (conservative): on a clear decision/discovery, or when the user says \"remember this\", persist via put_page / add_timeline_entry; if unsure, ask.\nMore tools (graph traversal, person profile, daily report, troubleshoot) are discoverable via their tool descriptions and get_health.";
|
|
7
|
+
//# sourceMappingURL=directive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directive.d.ts","sourceRoot":"","sources":["../../src/install/directive.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,mBAAmB,2BAA2B,CAAC;AAC5D,eAAO,MAAM,iBAAiB,yBAAyB,CAAC;AAExD,+EAA+E;AAC/E,eAAO,MAAM,YAAY,k8CAOJ,CAAC;AAEtB,wEAAwE;AACxE,eAAO,MAAM,YAAY,orCAU6G,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// Single source of truth for Memoark's agent-facing memory directives.
|
|
2
|
+
//
|
|
3
|
+
// Progressive disclosure (Spec 12):
|
|
4
|
+
// L1 — minimal, written into each client's rules file (always resident).
|
|
5
|
+
// L2 — medium, passed as the MCP server `instructions` field (injected by
|
|
6
|
+
// clients that support it; covers clients without a rules file).
|
|
7
|
+
// L3 — full detail, lives in tool descriptions / the optional skill (on demand).
|
|
8
|
+
export const MEMOARK_BLOCK_START = "<!-- memoark:start -->";
|
|
9
|
+
export const MEMOARK_BLOCK_END = "<!-- memoark:end -->";
|
|
10
|
+
/** L1: minimal directive block for rules files (CLAUDE.md / AGENTS.md / …). */
|
|
11
|
+
export const DIRECTIVE_L1 = `${MEMOARK_BLOCK_START}
|
|
12
|
+
## Memoark — 你的个人记忆库
|
|
13
|
+
你接入了 Memoark:用户关于「人 / 项目 / 决策 / 任务 / 过往」的本地持久记忆,是这些事的**事实来源**。
|
|
14
|
+
- **何时查**:问题涉及具体的人、项目进展、过去的决定、待办,或带「上周 / 之前 / 我们当时…」时——先查 Memoark,别只凭代码或猜测。
|
|
15
|
+
- **怎么查(便宜优先)**:先 \`search\`(关键词,零成本)→ 不够再 \`query\` / \`recall\`(语义 + 引用);会话开始可先 \`get_session_context\` 进入状态。
|
|
16
|
+
- **何时不查**:与用户个人世界无关的通用问题(纯语法 / 通用算法),别打扰记忆库。
|
|
17
|
+
- 更多用法(写回、图谱、人物画像)按需发现:调用工具时看其说明,或 \`get_health\`。
|
|
18
|
+
${MEMOARK_BLOCK_END}`;
|
|
19
|
+
/** L2: medium directive used as the MCP server `instructions` field. */
|
|
20
|
+
export const DIRECTIVE_L2 = `Memoark is the user's local-first personal memory — the source of truth about the user's people, projects, decisions, tasks, and history.
|
|
21
|
+
|
|
22
|
+
Brain-first, cheap-first. When a request concerns a specific person, a project's status/history, a past decision, a todo, or contains "last week / earlier / what did we…", consult Memoark BEFORE answering from code or assumptions:
|
|
23
|
+
1) search (keyword, zero-cost)
|
|
24
|
+
2) query / recall (semantic + cited) — only if search is thin
|
|
25
|
+
Accept good results; do not over-escalate.
|
|
26
|
+
Session start: call get_session_context for a compact digest of active projects, recent decisions, open tasks, and key people.
|
|
27
|
+
Project-status questions: combine Memoark (decisions/tasks/timeline) WITH repo reality (git/code); do not answer from code alone.
|
|
28
|
+
Do NOT consult Memoark for generic questions unrelated to the user's world (pure syntax, general algorithms).
|
|
29
|
+
Write-back (conservative): on a clear decision/discovery, or when the user says "remember this", persist via put_page / add_timeline_entry; if unsure, ask.
|
|
30
|
+
More tools (graph traversal, person profile, daily report, troubleshoot) are discoverable via their tool descriptions and get_health.`;
|
|
31
|
+
//# sourceMappingURL=directive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directive.js","sourceRoot":"","sources":["../../src/install/directive.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,EAAE;AACF,oCAAoC;AACpC,2EAA2E;AAC3E,4EAA4E;AAC5E,wEAAwE;AACxE,mFAAmF;AAEnF,MAAM,CAAC,MAAM,mBAAmB,GAAG,wBAAwB,CAAC;AAC5D,MAAM,CAAC,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;AAExD,+EAA+E;AAC/E,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,mBAAmB;;;;;;;EAOhD,iBAAiB,EAAE,CAAC;AAEtB,wEAAwE;AACxE,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;sIAU0G,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type LaunchCmd } from "./command.js";
|
|
2
|
+
import type { InstallAction, InstallOp, Scope } from "./types.js";
|
|
3
|
+
export interface InstallOptions {
|
|
4
|
+
/** Explicit client ids; empty/undefined → install to all detected. */
|
|
5
|
+
agent?: string[];
|
|
6
|
+
scope?: Scope;
|
|
7
|
+
http?: boolean;
|
|
8
|
+
dryRun?: boolean;
|
|
9
|
+
home?: string;
|
|
10
|
+
cwd?: string;
|
|
11
|
+
platform?: NodeJS.Platform;
|
|
12
|
+
launch?: LaunchCmd;
|
|
13
|
+
}
|
|
14
|
+
export interface PlannedClient {
|
|
15
|
+
id: string;
|
|
16
|
+
displayName: string;
|
|
17
|
+
ops: InstallOp[];
|
|
18
|
+
}
|
|
19
|
+
/** Plan without touching disk (for `--dry-run`). */
|
|
20
|
+
export declare function planInstall(opts: InstallOptions, action: InstallAction): PlannedClient[];
|
|
21
|
+
export declare function runInstall(opts?: InstallOptions): PlannedClient[];
|
|
22
|
+
export declare function runUninstall(opts?: InstallOptions): PlannedClient[];
|
|
23
|
+
/** Ids of clients detected as installed on this machine. */
|
|
24
|
+
export declare function detectInstalledAgents(home?: string, platform?: NodeJS.Platform): string[];
|
|
25
|
+
export { ADAPTERS } from "./clients/index.js";
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/install/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,cAAc,CAAC;AAShE,OAAO,KAAK,EAAiB,aAAa,EAAE,SAAS,EAAW,KAAK,EAAE,MAAM,YAAY,CAAC;AAG1F,MAAM,WAAW,cAAc;IAC7B,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,SAAS,EAAE,CAAC;CAClB;AA8FD,oDAAoD;AACpD,wBAAgB,WAAW,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,GAAG,aAAa,EAAE,CAExF;AAYD,wBAAgB,UAAU,CAAC,IAAI,GAAE,cAAmB,GAAG,aAAa,EAAE,CAErE;AAED,wBAAgB,YAAY,CAAC,IAAI,GAAE,cAAmB,GAAG,aAAa,EAAE,CAEvE;AAED,4DAA4D;AAC5D,wBAAgB,qBAAqB,CAAC,IAAI,SAAY,EAAE,QAAQ,kBAAmB,GAAG,MAAM,EAAE,CAE7F;AAED,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC"}
|