@xopcai/xopc 0.0.100 → 0.0.102
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/browser-ext/manifest.json +1 -1
- package/dist/extensions/feishu/src/outbound/media-load.js +1 -1
- package/dist/extensions/feishu/src/workflow-progress.js +1 -1
- package/dist/extensions/telegram/src/adapters/streaming-adapter.js +1 -1
- package/dist/extensions/telegram/src/inbound-processor.js +1 -1
- package/dist/extensions/telegram/src/plugin.js +1 -1
- package/dist/extensions/telegram/src/routing-integration.js +2 -2
- package/dist/extensions/telegram/src/update-offset-store.js +1 -1
- package/dist/extensions/telegram/src/workflow-progress.js +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/extensions/weixin/src/api/api.js +7 -5
- package/dist/extensions/weixin/src/api/api.js.map +1 -1
- package/dist/extensions/weixin/src/auth/accounts.js +1 -1
- package/dist/extensions/weixin/src/cdn/upload.js +1 -1
- package/dist/extensions/weixin/src/media/data-url.js +1 -1
- package/dist/extensions/weixin/src/messaging/debug-mode.js +1 -1
- package/dist/extensions/weixin/src/messaging/inbound.js +1 -1
- package/dist/extensions/weixin/src/messaging/process-message.js +1 -1
- package/dist/extensions/weixin/src/plugin.js +1 -1
- package/dist/extensions/weixin/src/storage/sync-buf.js +1 -1
- package/dist/extensions/weixin/src/workflow-progress.js +1 -1
- package/dist/gateway/static/root/assets/{agents-C5jtBK-H.js → agents-DQ0mQxIA.js} +2 -2
- package/dist/gateway/static/root/assets/{apps-page-smJl-qf_.js → apps-page-Uv4kOmDE.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-preview-renderer-DBAxQXb-.js → attachment-preview-renderer-CybMSIoS.js} +2 -2
- package/dist/gateway/static/root/assets/{attachment-process-heavy-Csq3TrrP.js → attachment-process-heavy-RnGYy9bC.js} +2 -2
- package/dist/gateway/static/root/assets/{channels-settings-CH6KgFK6.js → channels-settings-BEtP53V6.js} +1 -1
- package/dist/gateway/static/root/assets/{channels-status-swr-CV70xvY7.js → channels-status-swr-CxTtS1hI.js} +1 -1
- package/dist/gateway/static/root/assets/{cron-api-CgBO8B7I.js → cron-api-CznlPIZT.js} +1 -1
- package/dist/gateway/static/root/assets/{cron-page-Be0cW1cR.js → cron-page-Dx6dE3eD.js} +1 -1
- package/dist/gateway/static/root/assets/{dist-P8HRGUuh.js → dist-DH4IuRV0.js} +1 -1
- package/dist/gateway/static/root/assets/{docx-preview-Dxj1EkCO.js → docx-preview-CajIk2FR.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-BowuycYu.js → extension-debug-page-BNkhvRQW.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-27-Zpv8O.js → extension-page-CcIGQah2.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-DDFa_rIq.js → extension-settings-page-DuDCSb3J.js} +1 -1
- package/dist/gateway/static/root/assets/{field-primitives-BWLssxEb.js → field-primitives-BUwUiDf5.js} +1 -1
- package/dist/gateway/static/root/assets/{heartbeat-config-api-BVuYNYT_.js → heartbeat-config-api-BjFW1cl-.js} +1 -1
- package/dist/gateway/static/root/assets/{index-CRDAmr3W.js → index-DKgHC1Ta.js} +9 -9
- package/dist/gateway/static/root/assets/{logs-page-BDX8IrDQ.js → logs-page-CiG0m81R.js} +1 -1
- package/dist/gateway/static/root/assets/{note-detail-page-BmQ9KeiA.js → note-detail-page-DG3DVFTf.js} +2 -2
- package/dist/gateway/static/root/assets/{note-time-14I9Sgqh.js → note-time-DjlllCF3.js} +1 -1
- package/dist/gateway/static/root/assets/{notes-page-BMfP0FFf.js → notes-page-D40ZpS0Y.js} +1 -1
- package/dist/gateway/static/root/assets/{sessions-page-C3scyChq.js → sessions-page-BvtdbmW8.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-advanced-gate-2ODuCjHP.js → settings-advanced-gate-BQamRjkV.js} +2 -2
- package/dist/gateway/static/root/assets/{settings-form-section-DUoGKAiW.js → settings-form-section-C3_sEFfD.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-CttAfOWV.js → settings-page-D972_jaS.js} +2 -2
- package/dist/gateway/static/root/assets/{share-preview-page-B77xqiiI.js → share-preview-page-CKCTMo0_.js} +2 -2
- package/dist/gateway/static/root/assets/{skills-page-B_bAZGzB.js → skills-page-QwFCB4yV.js} +1 -1
- package/dist/gateway/static/root/assets/{theme-store-BgCPrmxU.js → theme-store-B6KXPHgK.js} +1 -1
- package/dist/gateway/static/root/assets/{utils-CCGejlcX.js → utils-DCm11_KW.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-api-key-field-DZzzihcY.js → voice-api-key-field-CywiB7Dw.js} +1 -1
- package/dist/gateway/static/root/assets/{workflow-page.utils-D5RMAmT4.js → workflow-page.utils-g57BRfEd.js} +1 -1
- package/dist/gateway/static/root/assets/{workflows-page-DEYpC6Bv.js → workflows-page-Be7l_SWw.js} +1 -1
- package/dist/gateway/static/root/index.html +2 -2
- package/dist/package.js +1 -1
- package/dist/src/agent/agent-manager.js +23 -7
- package/dist/src/agent/agent-manager.js.map +1 -1
- package/dist/src/agent/agent-scope.js +1 -1
- package/dist/src/agent/bootstrap/load-bootstrap-files.js +1 -1
- package/dist/src/agent/context/workspace-seed.js +2 -2
- package/dist/src/agent/context/workspace-state.js +1 -1
- package/dist/src/agent/embedded/run-for-session.js +1 -0
- package/dist/src/agent/embedded/run-for-session.js.map +1 -1
- package/dist/src/agent/goals/goal-run-store.js +4 -4
- package/dist/src/agent/goals/persistent-goal-service.js +1 -1
- package/dist/src/agent/goals/post-turn.js +2 -2
- package/dist/src/agent/image/load-image-media.js +2 -2
- package/dist/src/agent/ipc/bus.js +1 -1
- package/dist/src/agent/ipc/inbox.js +2 -2
- package/dist/src/agent/ipc/socket.js +1 -1
- package/dist/src/agent/mcp/bundle-mcp-materialize.js +1 -1
- package/dist/src/agent/mcp/bundle-mcp-runtime.js +1 -1
- package/dist/src/agent/mcp/mcp-transport-config.js +1 -1
- package/dist/src/agent/mcp/mcp-transport.js +1 -1
- package/dist/src/agent/memory/builtin-memory-store.js +1 -1
- package/dist/src/agent/memory/dreaming/deep-promotion.js +1 -1
- package/dist/src/agent/memory/dreaming/events.js +1 -1
- package/dist/src/agent/memory/dreaming/last-run.js +1 -1
- package/dist/src/agent/memory/dreaming/light-sweep.js +1 -1
- package/dist/src/agent/memory/dreaming/preview.js +1 -1
- package/dist/src/agent/memory/dreaming/rem-patterns.js +1 -1
- package/dist/src/agent/memory/dreaming/short-term-store.js +1 -1
- package/dist/src/agent/memory/dreaming/utils.js +1 -1
- package/dist/src/agent/memory/memory-flush.js +1 -1
- package/dist/src/agent/memory/plugin-discovery.js +1 -1
- package/dist/src/agent/models/manager.js +1 -1
- package/dist/src/agent/prompt/service-prompt-builder.js +2 -2
- package/dist/src/agent/reply/post-compaction-context.js +1 -1
- package/dist/src/agent/reply/workspace-boundary-read.js +1 -1
- package/dist/src/agent/sandbox/path-policy.js +2 -2
- package/dist/src/agent/service.js +4 -4
- package/dist/src/agent/session/session-inspector.js +1 -1
- package/dist/src/agent/skills/config.js +1 -1
- package/dist/src/agent/skills/hub-hash.js +2 -2
- package/dist/src/agent/skills/hub-lock.js +1 -1
- package/dist/src/agent/skills/hub-pull.js +2 -2
- package/dist/src/agent/skills/index.js +1 -1
- package/dist/src/agent/skills/managed-store.js +1 -1
- package/dist/src/agent/skills/scanner.js +1 -1
- package/dist/src/agent/skills/skill-manage-ops.js +1 -1
- package/dist/src/agent/skills/skill-manager.js +1 -1
- package/dist/src/agent/tools/dreaming-tool.js +1 -1
- package/dist/src/agent/tools/factory.js +1 -1
- package/dist/src/agent/tools/image-generate-tool.js +1 -1
- package/dist/src/agent/tools/send-media.js +1 -1
- package/dist/src/agent/tools/skill-manage-tool.js +1 -1
- package/dist/src/agent/tools/workflow-tool.js +1 -1
- package/dist/src/agent/tools/write.js +1 -1
- package/dist/src/agent/workflow/catalog.js +1 -1
- package/dist/src/auth/credentials.js +3 -4
- package/dist/src/auth/credentials.js.map +1 -1
- package/dist/src/auth/profiles/store.js +1 -1
- package/dist/src/auth/sync-provider-auth.js +1 -1
- package/dist/src/browser/cache-dir-policy.js +1 -1
- package/dist/src/browser/cdp-local-launcher.js +2 -2
- package/dist/src/browser/providers/browser-ext-install.js +3 -3
- package/dist/src/browser/providers/cloakbrowser.js +4 -4
- package/dist/src/browser/providers/playwright-doctor.js +1 -1
- package/dist/src/browser/stealth.js +1 -1
- package/dist/src/channels/outbound/persist-store.js +1 -1
- package/dist/src/channels/pairing/allow-from-file.js +1 -1
- package/dist/src/channels/pairing/pairing-store.js +2 -2
- package/dist/src/chat-commands/agent-edit.js +2 -2
- package/dist/src/chat-commands/builtins/config.js +2 -2
- package/dist/src/chat-commands/context.js +1 -1
- package/dist/src/cli/bin.d.ts +1 -0
- package/dist/src/cli/bin.js +1 -0
- package/dist/src/cli/bin.js.map +1 -1
- package/dist/src/cli/commands/config.js +1 -1
- package/dist/src/cli/commands/doctor/checks/config-health.js +1 -1
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/doctor/checks/provider-auth.js +1 -1
- package/dist/src/cli/commands/doctor/checks/state-integrity.js +1 -1
- package/dist/src/cli/commands/doctor/checks/workspace-status.js +1 -1
- package/dist/src/cli/commands/extension-dev.js +1 -1
- package/dist/src/cli/commands/extension-marketplace.js +1 -1
- package/dist/src/cli/commands/extension-pack.js +1 -1
- package/dist/src/cli/commands/gateway/logs.js +1 -1
- package/dist/src/cli/commands/image.js +1 -1
- package/dist/src/cli/commands/init.js +3 -3
- package/dist/src/cli/utils/init-workspace-core.js +2 -2
- package/dist/src/commands/agents.config.js +1 -1
- package/dist/src/config/agent-profile.js +1 -1
- package/dist/src/config/gateway-bind.js +1 -1
- package/dist/src/config/index.js +5 -5
- package/dist/src/config/loader.js +2 -2
- package/dist/src/config/models-json.js +2 -2
- package/dist/src/config/paths-state.js +1 -1
- package/dist/src/config/profile.js +2 -2
- package/dist/src/config/workspace-path.js +1 -1
- package/dist/src/cron/executor.js +2 -2
- package/dist/src/cron/persistence.js +1 -1
- package/dist/src/daemon/constants.js +1 -1
- package/dist/src/daemon/install-plan.js +2 -2
- package/dist/src/daemon/launchd.js +2 -2
- package/dist/src/daemon/schtasks.js +2 -2
- package/dist/src/daemon/systemd.js +2 -2
- package/dist/src/extensions/bundle-mcp.js +1 -1
- package/dist/src/extensions/discover-extensions.js +1 -1
- package/dist/src/extensions/health.js +1 -1
- package/dist/src/extensions/loader.js +1 -1
- package/dist/src/extensions/lockfile.js +2 -2
- package/dist/src/extensions/update.js +1 -1
- package/dist/src/gateway/agents-admin.js +3 -3
- package/dist/src/gateway/file-path-classifier.js +2 -2
- package/dist/src/gateway/hono/lib/config-payload.js +1 -1
- package/dist/src/gateway/hono/lib/extension-store.js +2 -2
- package/dist/src/gateway/hono/lib/static-ui.js +2 -2
- package/dist/src/gateway/hono/oauth-async.js +36 -3
- package/dist/src/gateway/hono/oauth-async.js.map +1 -1
- package/dist/src/gateway/hono/oauth.js +1 -1
- package/dist/src/gateway/hono/routes/agents.js +1 -1
- package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
- package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -1
- package/dist/src/gateway/hono/routes/dreaming.js +1 -1
- package/dist/src/gateway/hono/routes/host-fs.js +2 -2
- package/dist/src/gateway/hono/routes/models.js +1 -1
- package/dist/src/gateway/hono/routes/notes.js +9 -22
- package/dist/src/gateway/hono/routes/notes.js.map +1 -1
- package/dist/src/gateway/hono/routes/shares.js +1 -1
- package/dist/src/gateway/hono/routes/workspace.js +2 -2
- package/dist/src/gateway/lock.js +3 -3
- package/dist/src/gateway/ports.js +1 -1
- package/dist/src/gateway/service/agent-runner.js +2 -2
- package/dist/src/gateway/service/marketplace-service.js +2 -2
- package/dist/src/gateway/service.js +1 -1
- package/dist/src/gateway/workspace-fs-file-list.js +1 -1
- package/dist/src/infra/brew.js +1 -1
- package/dist/src/infra/http-proxy-env.d.ts +4 -0
- package/dist/src/infra/http-proxy-env.js +23 -0
- package/dist/src/infra/http-proxy-env.js.map +1 -0
- package/dist/src/infra/package-json.js +1 -1
- package/dist/src/infra/package-update-steps.js +1 -1
- package/dist/src/infra/path-env.js +2 -2
- package/dist/src/infra/restart.js +2 -2
- package/dist/src/infra/stable-node-path.js +1 -1
- package/dist/src/infra/update-check.js +1 -1
- package/dist/src/infra/update-global.js +1 -1
- package/dist/src/infra/update-lock.js +3 -3
- package/dist/src/infra/update-runner.js +1 -1
- package/dist/src/infra/update-startup.js +2 -2
- package/dist/src/infra/write-file-atomic.js +2 -2
- package/dist/src/media/store.js +1 -1
- package/dist/src/notes/note-attachment-sync.d.ts +2 -3
- package/dist/src/notes/note-attachment-sync.js +2 -27
- package/dist/src/notes/note-attachment-sync.js.map +1 -1
- package/dist/src/notes/note-index-meta.d.ts +6 -2
- package/dist/src/notes/note-index-meta.js +11 -16
- package/dist/src/notes/note-index-meta.js.map +1 -1
- package/dist/src/notes/note-markdown.d.ts +61 -0
- package/dist/src/notes/note-markdown.js +177 -0
- package/dist/src/notes/note-markdown.js.map +1 -0
- package/dist/src/notes/service.d.ts +9 -7
- package/dist/src/notes/service.js +163 -312
- package/dist/src/notes/service.js.map +1 -1
- package/dist/src/notes/store.js +4 -5
- package/dist/src/notes/store.js.map +1 -1
- package/dist/src/notes/types.d.ts +29 -58
- package/dist/src/providers/auth-runtime/auth-profile-store.js +1 -1
- package/dist/src/providers/index.js +2 -2
- package/dist/src/providers/model-registry.js +1 -1
- package/dist/src/session/init-session-turn.js +2 -2
- package/dist/src/session/resolve-session.js +3 -3
- package/dist/src/session/session-title.js +2 -2
- package/dist/src/session/store.js +2 -2
- package/dist/src/share/share-auto.js +2 -2
- package/dist/src/share/share-store.js +3 -3
- package/dist/src/share/share-thumbnail.js +2 -2
- package/dist/src/share/share-zip.js +1 -1
- package/dist/src/share/site-share-store.js +3 -3
- package/dist/src/share/site-static-serve.js +1 -1
- package/dist/src/storage/sqlite/connection.js +2 -2
- package/dist/src/storage/sqlite/memory-index-repository.js +2 -2
- package/dist/src/storage/sqlite/migrations/003_add_note_markdown_meta.sql +4 -0
- package/dist/src/storage/sqlite/migrations/discover.js +1 -1
- package/dist/src/storage/sqlite/migrations/runner.d.ts +2 -2
- package/dist/src/storage/sqlite/migrations/runner.js +5 -5
- package/dist/src/storage/sqlite/migrations/runner.js.map +1 -1
- package/dist/src/storage/sqlite/migrations/runner.ts +2 -2
- package/dist/src/storage/sqlite/notes-repository.js +18 -6
- package/dist/src/storage/sqlite/notes-repository.js.map +1 -1
- package/dist/src/storage/sqlite/schema.js +4 -4
- package/dist/src/storage/sqlite/schema.sql +5 -1
- package/dist/src/tui/clipboard-image.js +3 -3
- package/dist/src/tui/theme-manager.js +1 -1
- package/dist/src/tui/tui-keybindings-file.js +1 -1
- package/dist/src/tui/tui-scoped-models.js +2 -2
- package/dist/src/tui/tui-settings.js +1 -1
- package/dist/src/tui/tui.js +3 -3
- package/dist/src/tunnel/frpc-binary.js +3 -3
- package/dist/src/tunnel/frpc-config.js +1 -1
- package/dist/src/tunnel/frpc-extract.js +1 -1
- package/dist/src/tunnel/tunnel-state.js +1 -1
- package/dist/src/utils/logger/audit.js +1 -1
- package/dist/src/utils/logger/log-store.js +1 -1
- package/dist/src/utils/logger/rotation.js +1 -1
- package/dist/src/voice/tts/audio.js +1 -1
- package/dist/src/voice/tts/providers/edge-speech.js +2 -2
- package/dist/src/workflows/store/event-store.js +1 -1
- package/dist/src/workflows/store/run-store.js +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"note-markdown.js","names":[],"sources":["../../../src/notes/note-markdown.ts"],"sourcesContent":["import { attachmentIdFromTarget } from './attachment-ref.js';\n\nexport interface NoteHeading {\n id: string;\n depth: 1 | 2 | 3 | 4 | 5 | 6;\n title: string;\n start: number;\n end: number;\n path: string[];\n}\n\nexport interface NoteSection {\n id: string;\n heading?: NoteHeading;\n start: number;\n end: number;\n markdown: string;\n plainText: string;\n}\n\nexport interface NoteTaskItem {\n id: string;\n text: string;\n checked: boolean;\n start: number;\n end: number;\n line: number;\n}\n\nexport interface NoteWikiLink {\n raw: string;\n target: string;\n alias?: string;\n heading?: string;\n start: number;\n end: number;\n}\n\nexport interface NoteAttachmentRef {\n attachmentId: string;\n start: number;\n end: number;\n}\n\nexport interface NoteCallout {\n type: string;\n title?: string;\n start: number;\n end: number;\n}\n\nexport interface ParsedNoteMarkdown {\n plainText: string;\n headings: NoteHeading[];\n sections: NoteSection[];\n tasks: NoteTaskItem[];\n tags: string[];\n wikilinks: NoteWikiLink[];\n attachments: NoteAttachmentRef[];\n callouts: NoteCallout[];\n codeBlocks: Array<{ lang?: string; start: number; end: number; code: string }>;\n}\n\nconst WIKILINK = /!??\\[\\[([^\\]]+)\\]\\]/g;\nconst TAG = /(^|\\s)#([\\p{L}\\p{N}_/-]+)/gu;\nconst MARKDOWN_IMAGE = /!\\[([^\\]]*)\\]\\(([^)]+)\\)/g;\nconst MARKDOWN_LINK = /(?<!!)\\[([^\\]]*)\\]\\(([^)]+)\\)/g;\nconst BARE_ATTACHMENT_REF = /xopc-attachment:\\/\\/notes\\/([^/]+)\\/([^/?#\"'\\s)]+)/gi;\n\nfunction stripMarkdown(markdown: string): string {\n return markdown\n .replace(/^---[\\s\\S]*?\\n---\\s*/m, '')\n .replace(/```[\\s\\S]*?```/g, ' ')\n .replace(MARKDOWN_IMAGE, ' ')\n .replace(MARKDOWN_LINK, '$1')\n .replace(WIKILINK, '$1')\n .replace(/^\\s{0,3}>\\s?/gm, '')\n .replace(/^\\s{0,3}#{1,6}\\s+/gm, '')\n .replace(/^\\s*[-*+]\\s+\\[[ xX]\\]\\s+/gm, '')\n .replace(/^\\s*[-*+]\\s+/gm, '')\n .replace(/^\\s*\\d+\\.\\s+/gm, '')\n .replace(/[*_`~]/g, '')\n .replace(/\\s+/g, ' ')\n .trim();\n}\n\nfunction lineOffsets(markdown: string): Array<{ line: string; start: number; end: number }> {\n const lines: Array<{ line: string; start: number; end: number }> = [];\n let start = 0;\n for (const part of markdown.split(/\\n/)) {\n const end = start + part.length;\n lines.push({ line: part, start, end });\n start = end + 1;\n }\n return lines;\n}\n\nexport function parseNoteMarkdown(markdown = '', noteId?: string): ParsedNoteMarkdown {\n const headings: NoteHeading[] = [];\n const tasks: NoteTaskItem[] = [];\n const callouts: NoteCallout[] = [];\n const codeBlocks: ParsedNoteMarkdown['codeBlocks'] = [];\n const stack: string[] = [];\n let inCode: { start: number; lang?: string; lines: string[] } | null = null;\n\n lineOffsets(markdown).forEach(({ line, start, end }, index) => {\n const fence = /^```\\s*([^`]*)$/.exec(line.trim());\n if (fence) {\n if (inCode) {\n codeBlocks.push({ start: inCode.start, end, lang: inCode.lang, code: inCode.lines.join('\\n') });\n inCode = null;\n } else {\n inCode = { start, lang: fence[1]?.trim() || undefined, lines: [] };\n }\n return;\n }\n if (inCode) {\n inCode.lines.push(line);\n return;\n }\n\n const heading = /^(#{1,6})\\s+(.+?)\\s*$/.exec(line);\n if (heading) {\n const depth = heading[1].length as 1 | 2 | 3 | 4 | 5 | 6;\n stack.length = depth - 1;\n stack[depth - 1] = heading[2].trim();\n headings.push({\n id: `heading-${headings.length + 1}`,\n depth,\n title: heading[2].trim(),\n start,\n end,\n path: stack.slice(0, depth),\n });\n }\n\n const task = /^\\s*[-*+]\\s+\\[([ xX])\\]\\s+(.+)$/.exec(line);\n if (task) {\n tasks.push({\n id: `task-${tasks.length + 1}`,\n text: task[2].trim(),\n checked: task[1].toLowerCase() === 'x',\n start,\n end,\n line: index + 1,\n });\n }\n\n const callout = /^\\s*>\\s*\\[!([A-Za-z0-9_-]+)\\]\\s*(.*)$/.exec(line);\n if (callout) {\n callouts.push({ type: callout[1].toLowerCase(), title: callout[2]?.trim() || undefined, start, end });\n }\n });\n\n if (inCode) {\n codeBlocks.push({ start: inCode.start, end: markdown.length, lang: inCode.lang, code: inCode.lines.join('\\n') });\n }\n\n const sections: NoteSection[] = [];\n if (headings.length === 0) {\n sections.push({ id: 'section-1', start: 0, end: markdown.length, markdown, plainText: stripMarkdown(markdown) });\n } else {\n for (let i = 0; i < headings.length; i += 1) {\n const heading = headings[i];\n const next = headings.slice(i + 1).find((item) => item.depth <= heading.depth);\n const end = next?.start ?? markdown.length;\n const slice = markdown.slice(heading.start, end).trimEnd();\n sections.push({ id: `section-${i + 1}`, heading, start: heading.start, end, markdown: slice, plainText: stripMarkdown(slice) });\n }\n }\n\n const wikilinks: NoteWikiLink[] = [];\n for (const match of markdown.matchAll(WIKILINK)) {\n const rawInner = match[1];\n const [targetPart, alias] = rawInner.split('|');\n const [target, heading] = targetPart.split('#');\n wikilinks.push({ raw: match[0], target: target.trim(), heading: heading?.trim() || undefined, alias: alias?.trim() || undefined, start: match.index ?? 0, end: (match.index ?? 0) + match[0].length });\n }\n\n const tags = new Set<string>();\n for (const match of markdown.matchAll(TAG)) tags.add(match[2]);\n\n const attachments = new Map<string, NoteAttachmentRef>();\n const addAttachment = (target: string, start: number, end: number) => {\n const attachmentId = attachmentIdFromTarget(target, noteId ?? '');\n if (attachmentId) attachments.set(`${attachmentId}:${start}`, { attachmentId, start, end });\n };\n for (const match of markdown.matchAll(MARKDOWN_IMAGE)) addAttachment(match[2], match.index ?? 0, (match.index ?? 0) + match[0].length);\n for (const match of markdown.matchAll(MARKDOWN_LINK)) addAttachment(match[2], match.index ?? 0, (match.index ?? 0) + match[0].length);\n for (const match of markdown.matchAll(BARE_ATTACHMENT_REF)) {\n const start = match.index ?? 0;\n const matchedNoteId = decodeURIComponent(match[1]);\n if (!noteId || matchedNoteId === noteId) attachments.set(`${decodeURIComponent(match[2])}:${start}`, { attachmentId: decodeURIComponent(match[2]), start, end: start + match[0].length });\n }\n\n return {\n plainText: stripMarkdown(markdown),\n headings,\n sections,\n tasks,\n tags: [...tags],\n wikilinks,\n attachments: [...attachments.values()],\n callouts,\n codeBlocks,\n };\n}\n\nexport function applyNotePatch(markdown: string, operations: import('./types.js').NotePatchOperation[], parsed = parseNoteMarkdown(markdown)): string {\n let next = markdown;\n const rangeOps = operations.filter((op) => op.type === 'replaceRange' || op.type === 'insertAt') as Array<Extract<import('./types.js').NotePatchOperation, { type: 'replaceRange' | 'insertAt' }>>;\n for (const op of [...rangeOps].sort((a, b) => (b.type === 'insertAt' ? b.offset : b.from) - (a.type === 'insertAt' ? a.offset : a.from))) {\n if (op.type === 'insertAt') next = `${next.slice(0, op.offset)}${op.markdown}${next.slice(op.offset)}`;\n else next = `${next.slice(0, op.from)}${op.markdown}${next.slice(op.to)}`;\n }\n for (const op of operations) {\n if (op.type === 'appendSection') next = `${next.trimEnd()}\\n\\n## ${op.heading}\\n\\n${op.markdown.trim()}\\n`;\n if (op.type === 'prependSection') next = `## ${op.heading}\\n\\n${op.markdown.trim()}\\n\\n${next.trimStart()}`;\n if (op.type === 'replaceSection') {\n const section = parsed.sections.find((item) => item.id === op.sectionId);\n if (section) next = `${next.slice(0, section.start)}${op.markdown}${next.slice(section.end)}`;\n }\n }\n return next;\n}\n"],"mappings":";;AA+DA,MAAM,WAAW;AACjB,MAAM,MAAM;AACZ,MAAM,iBAAiB;AACvB,MAAM,gBAAgB;AACtB,MAAM,sBAAsB;AAE5B,SAAS,cAAc,UAA0B;AAC/C,QAAO,SACJ,QAAQ,yBAAyB,GAAG,CACpC,QAAQ,mBAAmB,IAAI,CAC/B,QAAQ,gBAAgB,IAAI,CAC5B,QAAQ,eAAe,KAAK,CAC5B,QAAQ,UAAU,KAAK,CACvB,QAAQ,kBAAkB,GAAG,CAC7B,QAAQ,uBAAuB,GAAG,CAClC,QAAQ,8BAA8B,GAAG,CACzC,QAAQ,kBAAkB,GAAG,CAC7B,QAAQ,kBAAkB,GAAG,CAC7B,QAAQ,WAAW,GAAG,CACtB,QAAQ,QAAQ,IAAI,CACpB,MAAM;;AAGX,SAAS,YAAY,UAAuE;CAC1F,MAAM,QAA6D,EAAE;CACrE,IAAI,QAAQ;AACZ,MAAK,MAAM,QAAQ,SAAS,MAAM,KAAK,EAAE;EACvC,MAAM,MAAM,QAAQ,KAAK;AACzB,QAAM,KAAK;GAAE,MAAM;GAAM;GAAO;GAAK,CAAC;AACtC,UAAQ,MAAM;;AAEhB,QAAO;;AAGT,SAAgB,kBAAkB,WAAW,IAAI,QAAqC;CACpF,MAAM,WAA0B,EAAE;CAClC,MAAM,QAAwB,EAAE;CAChC,MAAM,WAA0B,EAAE;CAClC,MAAM,aAA+C,EAAE;CACvD,MAAM,QAAkB,EAAE;CAC1B,IAAI,SAAmE;AAEvE,aAAY,SAAS,CAAC,SAAS,EAAE,MAAM,OAAO,OAAO,UAAU;EAC7D,MAAM,QAAQ,kBAAkB,KAAK,KAAK,MAAM,CAAC;AACjD,MAAI,OAAO;AACT,OAAI,QAAQ;AACV,eAAW,KAAK;KAAE,OAAO,OAAO;KAAO;KAAK,MAAM,OAAO;KAAM,MAAM,OAAO,MAAM,KAAK,KAAK;KAAE,CAAC;AAC/F,aAAS;SAET,UAAS;IAAE;IAAO,MAAM,MAAM,IAAI,MAAM,IAAI,KAAA;IAAW,OAAO,EAAE;IAAE;AAEpE;;AAEF,MAAI,QAAQ;AACV,UAAO,MAAM,KAAK,KAAK;AACvB;;EAGF,MAAM,UAAU,wBAAwB,KAAK,KAAK;AAClD,MAAI,SAAS;GACX,MAAM,QAAQ,QAAQ,GAAG;AACzB,SAAM,SAAS,QAAQ;AACvB,SAAM,QAAQ,KAAK,QAAQ,GAAG,MAAM;AACpC,YAAS,KAAK;IACZ,IAAI,WAAW,SAAS,SAAS;IACjC;IACA,OAAO,QAAQ,GAAG,MAAM;IACxB;IACA;IACA,MAAM,MAAM,MAAM,GAAG,MAAM;IAC5B,CAAC;;EAGJ,MAAM,OAAO,kCAAkC,KAAK,KAAK;AACzD,MAAI,KACF,OAAM,KAAK;GACT,IAAI,QAAQ,MAAM,SAAS;GAC3B,MAAM,KAAK,GAAG,MAAM;GACpB,SAAS,KAAK,GAAG,aAAa,KAAK;GACnC;GACA;GACA,MAAM,QAAQ;GACf,CAAC;EAGJ,MAAM,UAAU,wCAAwC,KAAK,KAAK;AAClE,MAAI,QACF,UAAS,KAAK;GAAE,MAAM,QAAQ,GAAG,aAAa;GAAE,OAAO,QAAQ,IAAI,MAAM,IAAI,KAAA;GAAW;GAAO;GAAK,CAAC;GAEvG;AAEF,KAAI,OACF,YAAW,KAAK;EAAE,OAAO,OAAO;EAAO,KAAK,SAAS;EAAQ,MAAM,OAAO;EAAM,MAAM,OAAO,MAAM,KAAK,KAAK;EAAE,CAAC;CAGlH,MAAM,WAA0B,EAAE;AAClC,KAAI,SAAS,WAAW,EACtB,UAAS,KAAK;EAAE,IAAI;EAAa,OAAO;EAAG,KAAK,SAAS;EAAQ;EAAU,WAAW,cAAc,SAAS;EAAE,CAAC;KAEhH,MAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK,GAAG;EAC3C,MAAM,UAAU,SAAS;EAEzB,MAAM,MADO,SAAS,MAAM,IAAI,EAAE,CAAC,MAAM,SAAS,KAAK,SAAS,QAAQ,MACxD,EAAE,SAAS,SAAS;EACpC,MAAM,QAAQ,SAAS,MAAM,QAAQ,OAAO,IAAI,CAAC,SAAS;AAC1D,WAAS,KAAK;GAAE,IAAI,WAAW,IAAI;GAAK;GAAS,OAAO,QAAQ;GAAO;GAAK,UAAU;GAAO,WAAW,cAAc,MAAM;GAAE,CAAC;;CAInI,MAAM,YAA4B,EAAE;AACpC,MAAK,MAAM,SAAS,SAAS,SAAS,SAAS,EAAE;EAE/C,MAAM,CAAC,YAAY,SADF,MAAM,GACc,MAAM,IAAI;EAC/C,MAAM,CAAC,QAAQ,WAAW,WAAW,MAAM,IAAI;AAC/C,YAAU,KAAK;GAAE,KAAK,MAAM;GAAI,QAAQ,OAAO,MAAM;GAAE,SAAS,SAAS,MAAM,IAAI,KAAA;GAAW,OAAO,OAAO,MAAM,IAAI,KAAA;GAAW,OAAO,MAAM,SAAS;GAAG,MAAM,MAAM,SAAS,KAAK,MAAM,GAAG;GAAQ,CAAC;;CAGxM,MAAM,uBAAO,IAAI,KAAa;AAC9B,MAAK,MAAM,SAAS,SAAS,SAAS,IAAI,CAAE,MAAK,IAAI,MAAM,GAAG;CAE9D,MAAM,8BAAc,IAAI,KAAgC;CACxD,MAAM,iBAAiB,QAAgB,OAAe,QAAgB;EACpE,MAAM,eAAe,uBAAuB,QAAQ,UAAU,GAAG;AACjE,MAAI,aAAc,aAAY,IAAI,GAAG,aAAa,GAAG,SAAS;GAAE;GAAc;GAAO;GAAK,CAAC;;AAE7F,MAAK,MAAM,SAAS,SAAS,SAAS,eAAe,CAAE,eAAc,MAAM,IAAI,MAAM,SAAS,IAAI,MAAM,SAAS,KAAK,MAAM,GAAG,OAAO;AACtI,MAAK,MAAM,SAAS,SAAS,SAAS,cAAc,CAAE,eAAc,MAAM,IAAI,MAAM,SAAS,IAAI,MAAM,SAAS,KAAK,MAAM,GAAG,OAAO;AACrI,MAAK,MAAM,SAAS,SAAS,SAAS,oBAAoB,EAAE;EAC1D,MAAM,QAAQ,MAAM,SAAS;EAC7B,MAAM,gBAAgB,mBAAmB,MAAM,GAAG;AAClD,MAAI,CAAC,UAAU,kBAAkB,OAAQ,aAAY,IAAI,GAAG,mBAAmB,MAAM,GAAG,CAAC,GAAG,SAAS;GAAE,cAAc,mBAAmB,MAAM,GAAG;GAAE;GAAO,KAAK,QAAQ,MAAM,GAAG;GAAQ,CAAC;;AAG3L,QAAO;EACL,WAAW,cAAc,SAAS;EAClC;EACA;EACA;EACA,MAAM,CAAC,GAAG,KAAK;EACf;EACA,aAAa,CAAC,GAAG,YAAY,QAAQ,CAAC;EACtC;EACA;EACD;;AAGH,SAAgB,eAAe,UAAkB,YAAuD,SAAS,kBAAkB,SAAS,EAAU;CACpJ,IAAI,OAAO;CACX,MAAM,WAAW,WAAW,QAAQ,OAAO,GAAG,SAAS,kBAAkB,GAAG,SAAS,WAAW;AAChG,MAAK,MAAM,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,OAAO,EAAE,SAAS,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,aAAa,EAAE,SAAS,EAAE,MAAM,CACtI,KAAI,GAAG,SAAS,WAAY,QAAO,GAAG,KAAK,MAAM,GAAG,GAAG,OAAO,GAAG,GAAG,WAAW,KAAK,MAAM,GAAG,OAAO;KAC/F,QAAO,GAAG,KAAK,MAAM,GAAG,GAAG,KAAK,GAAG,GAAG,WAAW,KAAK,MAAM,GAAG,GAAG;AAEzE,MAAK,MAAM,MAAM,YAAY;AAC3B,MAAI,GAAG,SAAS,gBAAiB,QAAO,GAAG,KAAK,SAAS,CAAC,SAAS,GAAG,QAAQ,MAAM,GAAG,SAAS,MAAM,CAAC;AACvG,MAAI,GAAG,SAAS,iBAAkB,QAAO,MAAM,GAAG,QAAQ,MAAM,GAAG,SAAS,MAAM,CAAC,MAAM,KAAK,WAAW;AACzG,MAAI,GAAG,SAAS,kBAAkB;GAChC,MAAM,UAAU,OAAO,SAAS,MAAM,SAAS,KAAK,OAAO,GAAG,UAAU;AACxE,OAAI,QAAS,QAAO,GAAG,KAAK,MAAM,GAAG,QAAQ,MAAM,GAAG,GAAG,WAAW,KAAK,MAAM,QAAQ,IAAI;;;AAG/F,QAAO"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import type { Config } from '../config/schema.js';
|
|
2
|
+
import { buildNoteAttachmentRef } from './attachment-ref.js';
|
|
2
3
|
import { NotesStore } from './store.js';
|
|
3
|
-
import type { CaptureSource, CreateNoteParams, Note, NoteAiPatch, NoteAttachment,
|
|
4
|
+
import type { CaptureSource, CreateNoteParams, Note, NoteAiPatch, NoteAttachment, NoteCatalysisReport, NoteIndexEntry, NoteSnapshot, NoteSnapshotEntry, NotesListQuery, SnapshotTrigger } from './types.js';
|
|
4
5
|
export declare class NotesService {
|
|
5
|
-
private store;
|
|
6
|
+
private readonly store;
|
|
6
7
|
private lastSnapshotAt;
|
|
7
|
-
constructor(store
|
|
8
|
+
constructor(store?: NotesStore);
|
|
8
9
|
initialize(): Promise<void>;
|
|
9
|
-
quickCapture(
|
|
10
|
+
quickCapture(markdown: string, source: CaptureSource): Promise<Note>;
|
|
10
11
|
createNote(params: CreateNoteParams): Promise<Note>;
|
|
11
12
|
getNote(id: string): Promise<Note | null>;
|
|
12
13
|
updateNote(id: string, patch: Partial<Note>, trigger?: SnapshotTrigger): Promise<Note | null>;
|
|
@@ -15,7 +16,7 @@ export declare class NotesService {
|
|
|
15
16
|
note: Note | null;
|
|
16
17
|
conflict: boolean;
|
|
17
18
|
}>;
|
|
18
|
-
createAiEditPatch(id: string, instruction: string,
|
|
19
|
+
createAiEditPatch(id: string, instruction: string, markdownOverride?: string): Promise<{
|
|
19
20
|
message: string;
|
|
20
21
|
patch: NoteAiPatch;
|
|
21
22
|
} | null>;
|
|
@@ -23,7 +24,7 @@ export declare class NotesService {
|
|
|
23
24
|
note: Note;
|
|
24
25
|
report: NoteCatalysisReport;
|
|
25
26
|
} | null>;
|
|
26
|
-
recordCatalysisFeedback(id: string, feedback:
|
|
27
|
+
recordCatalysisFeedback(id: string, feedback: 'helpful' | 'not_helpful' | 'neutral'): Promise<Note | null>;
|
|
27
28
|
linkNoteThread(id: string, sessionKey: string): Promise<Note | null>;
|
|
28
29
|
listNoteThreads(id: string): Promise<string[] | null>;
|
|
29
30
|
appendTextToNote(id: string, content: string, heading?: string): Promise<Note | null>;
|
|
@@ -51,7 +52,7 @@ export declare class NotesService {
|
|
|
51
52
|
restoreNoteSnapshot(noteId: string, timestamp: number): Promise<Note | null>;
|
|
52
53
|
flush(): Promise<void>;
|
|
53
54
|
moveToGroup(noteId: string, groupId: string | null): Promise<Note | null>;
|
|
54
|
-
createTask(title: string, source: CaptureSource,
|
|
55
|
+
createTask(title: string, source: CaptureSource, opts?: {
|
|
55
56
|
dueAt?: number;
|
|
56
57
|
priority?: 'high' | 'medium' | 'low';
|
|
57
58
|
sourceSessionKey?: string;
|
|
@@ -63,3 +64,4 @@ export declare class NotesService {
|
|
|
63
64
|
recordOpen(noteId: string): Promise<Note | null>;
|
|
64
65
|
private maybeSaveSnapshot;
|
|
65
66
|
}
|
|
67
|
+
export { buildNoteAttachmentRef };
|