{"_id":"@airalogy/aimd-recorder","_rev":"20-75709c09ba525dab0249a40faaf55157","name":"@airalogy/aimd-recorder","dist-tags":{"latest":"1.25.1"},"versions":{"1.14.1":{"name":"@airalogy/aimd-recorder","version":"1.14.1","keywords":["aimd","markdown","editor","vue","components"],"license":"Apache-2.0","_id":"@airalogy/aimd-recorder@1.14.1","maintainers":[{"name":"yangzijie","email":"yangzijie@westlake.edu.cn"}],"homepage":"https://github.com/airalogy/aimd/tree/main/packages/aimd-recorder#readme","bugs":{"url":"https://github.com/airalogy/aimd/issues"},"dist":{"shasum":"b74e19dbb77ff140a6c6ced8b57afc0c65fd1fac","tarball":"https://registry.npmjs.org/@airalogy/aimd-recorder/-/aimd-recorder-1.14.1.tgz","fileCount":178,"integrity":"sha512-a0EMQfpNhlawSLQR/83VSfBQ669uYp1SfTCdkf21HNQAskBZMteaTQ/eDpwRj75K7lpY4ZTrREQiVr5kwlcQSQ==","signatures":[{"sig":"MEYCIQDonowk9Fec13I8HPr2mDpdmRv7jPF70/0baNtuf/AIjwIhAPZPu/XsgonVo/jwUOEt3yza7lbR8/N9SI0Kveb3skH3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17940661},"main":"./src/index.ts","type":"module","types":"./src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"},"./styles":{"import":"./src/styles/aimd.css","default":"./src/styles/aimd.css"},"./components":{"types":"./src/components/index.ts","import":"./src/components/index.ts"},"./composables":{"types":"./src/composables/index.ts","import":"./src/composables/index.ts"}},"gitHead":"5bfa7b114beaceeb43f0f056132b1f90e6b6e79a","scripts":{"dev":"vite build --watch","test":"vitest run --config vitest.config.ts","build":"vite build","type-check":"vue-tsc --noEmit"},"_npmUser":{"name":"yangzijie","email":"yangzijie@westlake.edu.cn"},"repository":{"url":"git+https://github.com/airalogy/aimd.git","type":"git","directory":"packages/aimd-recorder"},"_npmVersion":"10.8.2","description":"AIMD editor Vue components and UI","directories":{},"_nodeVersion":"20.19.6","dependencies":{"react":"^19.2.4","seqviz":"^3.10.18","react-dom":"^19.2.4","@milkdown/kit":"^7.18.0","monaco-editor":"^0.52.2","@airalogy/aimd-core":"workspace:^","@airalogy/aimd-editor":"workspace:^","@airalogy/aimd-renderer":"workspace:^"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.17","sass":"^1.90.0","vite":"^7.1.3","unocss":"^0.58.3","vue-tsc":"^3.0.6","naive-ui":"2.41.0","typescript":"5.8.3","@types/node":"^24.3.0","@types/react":"^19.2.14","@vueuse/core":"^13.5.0","@types/react-dom":"^19.2.3","@vitejs/plugin-vue":"^6.0.1","vite-tsconfig-paths":"^5.1.4","unplugin-auto-import":"^0.17.3","unplugin-vue-components":"^0.27.4"},"peerDependencies":{"vue":"^3.5.17","naive-ui":"2.41.0","@vueuse/core":"^13.5.0"},"_npmOperationalInternal":{"tmp":"tmp/aimd-recorder_1.14.1_1776738570004_0.8305510870182218","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"@airalogy/aimd-recorder","version":"1.15.0","keywords":["aimd","markdown","editor","vue","components"],"license":"Apache-2.0","_id":"@airalogy/aimd-recorder@1.15.0","maintainers":[{"name":"yangzijie","email":"yangzijie@westlake.edu.cn"}],"homepage":"https://github.com/airalogy/aimd/tree/main/packages/aimd-recorder#readme","bugs":{"url":"https://github.com/airalogy/aimd/issues"},"dist":{"shasum":"cd3e203c5e2257c541c8bad85d3fae4e5306cce2","tarball":"https://registry.npmjs.org/@airalogy/aimd-recorder/-/aimd-recorder-1.15.0.tgz","fileCount":180,"integrity":"sha512-8uBu0Ew+0DsZEW+kvHyv+6ofaM3xrDlX95gwa9JeH2k6ttjHtEuxLAXzXjVs6+CBTONZis3ryKYJ2jQSv6R3HQ==","signatures":[{"sig":"MEYCIQDRzr06Igk3tlm80i3phszJQyXlNf6y9HGJ0STXsTFQLgIhAMwwp7XHWv5SWJLE8Gma6VgSK4xD8r2J9tjrln8EF/1u","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@airalogy%2faimd-recorder@1.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18007541},"main":"./src/index.ts","type":"module","_from":"file:airalogy-aimd-recorder-1.15.0.tgz","types":"./src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"},"./styles":{"import":"./src/styles/aimd.css","default":"./src/styles/aimd.css"},"./components":{"types":"./src/components/index.ts","import":"./src/components/index.ts"},"./composables":{"types":"./src/composables/index.ts","import":"./src/composables/index.ts"}},"scripts":{"dev":"vite build --watch","test":"vitest run --config vitest.config.ts","build":"vite build","type-check":"vue-tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ea8565c3-9949-4d29-a140-f1502b9b7463"}},"_resolved":"/tmp/86aa20601110b45af4ebfc2e44d8a412/airalogy-aimd-recorder-1.15.0.tgz","_integrity":"sha512-8uBu0Ew+0DsZEW+kvHyv+6ofaM3xrDlX95gwa9JeH2k6ttjHtEuxLAXzXjVs6+CBTONZis3ryKYJ2jQSv6R3HQ==","repository":{"url":"git+https://github.com/airalogy/aimd.git","type":"git","directory":"packages/aimd-recorder"},"_npmVersion":"11.11.0","description":"AIMD (Airalogy Markdown) recorder Vue components and UI","directories":{},"_nodeVersion":"24.14.1","dependencies":{"react":"^19.2.4","seqviz":"^3.10.18","react-dom":"^19.2.4","@milkdown/kit":"^7.18.0","monaco-editor":"^0.52.2","@airalogy/aimd-core":"^2.6.0","@airalogy/aimd-editor":"^1.8.0","@airalogy/aimd-renderer":"^2.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.17","sass":"^1.90.0","vite":"^7.1.3","unocss":"^0.58.3","vue-tsc":"^3.0.6","naive-ui":"2.41.0","typescript":"5.8.3","@types/node":"^24.3.0","@types/react":"^19.2.14","@vueuse/core":"^13.5.0","@types/react-dom":"^19.2.3","@vitejs/plugin-vue":"^6.0.1","vite-tsconfig-paths":"^5.1.4","unplugin-auto-import":"^0.17.3","unplugin-vue-components":"^0.27.4"},"peerDependencies":{"vue":"^3.5.17","naive-ui":"2.41.0","@vueuse/core":"^13.5.0"},"_npmOperationalInternal":{"tmp":"tmp/aimd-recorder_1.15.0_1776928317643_0.9394616867307015","host":"s3://npm-registry-packages-npm-production"}},"1.16.0":{"name":"@airalogy/aimd-recorder","version":"1.16.0","keywords":["aimd","markdown","editor","vue","components"],"license":"Apache-2.0","_id":"@airalogy/aimd-recorder@1.16.0","maintainers":[{"name":"yangzijie","email":"yangzijie@westlake.edu.cn"}],"homepage":"https://github.com/airalogy/aimd/tree/main/packages/aimd-recorder#readme","bugs":{"url":"https://github.com/airalogy/aimd/issues"},"dist":{"shasum":"268c9fa7e7f92a39539d2782fac5e23ee3b68e5e","tarball":"https://registry.npmjs.org/@airalogy/aimd-recorder/-/aimd-recorder-1.16.0.tgz","fileCount":180,"integrity":"sha512-A0LdDOYNMHMbN8VjBsZnYv5NvGp5oAw7W+COkTtvHy3yS6V+oW3Ny7wXlMxz+BgfpGbUCWHvWq101LsOCy4Yjw==","signatures":[{"sig":"MEQCIHFk/aa67Ny8ewI3C60mlU2zT4drv9auzMJ1eJlzAi9PAiAzrPD8QKp3LVffxpGqgo36+SqAREACbv1uOuzD0O8/eQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@airalogy%2faimd-recorder@1.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18009020},"main":"./src/index.ts","type":"module","_from":"file:airalogy-aimd-recorder-1.16.0.tgz","types":"./src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"},"./styles":{"import":"./src/styles/aimd.css","default":"./src/styles/aimd.css"},"./components":{"types":"./src/components/index.ts","import":"./src/components/index.ts"},"./composables":{"types":"./src/composables/index.ts","import":"./src/composables/index.ts"}},"scripts":{"dev":"vite build --watch","test":"vitest run --config vitest.config.ts","build":"vite build","type-check":"vue-tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ea8565c3-9949-4d29-a140-f1502b9b7463"}},"_resolved":"/tmp/b0302aa7d2dd7452367c4fce216d643f/airalogy-aimd-recorder-1.16.0.tgz","_integrity":"sha512-A0LdDOYNMHMbN8VjBsZnYv5NvGp5oAw7W+COkTtvHy3yS6V+oW3Ny7wXlMxz+BgfpGbUCWHvWq101LsOCy4Yjw==","repository":{"url":"git+https://github.com/airalogy/aimd.git","type":"git","directory":"packages/aimd-recorder"},"_npmVersion":"11.12.1","description":"AIMD (Airalogy Markdown) recorder Vue components and UI","directories":{},"_nodeVersion":"24.15.0","dependencies":{"react":"^19.2.4","seqviz":"^3.10.18","react-dom":"^19.2.4","@milkdown/kit":"^7.18.0","monaco-editor":"^0.52.2","@airalogy/aimd-core":"^2.6.0","@airalogy/aimd-editor":"^1.9.0","@airalogy/aimd-renderer":"^2.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.17","sass":"^1.90.0","vite":"^7.1.3","unocss":"^0.58.3","vue-tsc":"^3.0.6","naive-ui":"2.41.0","typescript":"5.8.3","@types/node":"^24.3.0","@types/react":"^19.2.14","@vueuse/core":"^13.5.0","@types/react-dom":"^19.2.3","@vitejs/plugin-vue":"^6.0.1","vite-tsconfig-paths":"^5.1.4","unplugin-auto-import":"^0.17.3","unplugin-vue-components":"^0.27.4"},"peerDependencies":{"vue":"^3.5.17","naive-ui":"2.41.0","@vueuse/core":"^13.5.0"},"_npmOperationalInternal":{"tmp":"tmp/aimd-recorder_1.16.0_1776965357371_0.2407801878372513","host":"s3://npm-registry-packages-npm-production"}},"1.17.0":{"name":"@airalogy/aimd-recorder","version":"1.17.0","keywords":["aimd","markdown","editor","vue","components"],"license":"Apache-2.0","_id":"@airalogy/aimd-recorder@1.17.0","maintainers":[{"name":"yangzijie","email":"yangzijie@westlake.edu.cn"}],"homepage":"https://github.com/airalogy/aimd/tree/main/packages/aimd-recorder#readme","bugs":{"url":"https://github.com/airalogy/aimd/issues"},"dist":{"shasum":"840f15066a111a61a4a3a41de2f2d5439d0d508a","tarball":"https://registry.npmjs.org/@airalogy/aimd-recorder/-/aimd-recorder-1.17.0.tgz","fileCount":182,"integrity":"sha512-qDKq/5uNbBxh7finMtCQXxNgbuYO2/GR43cAJ6X9vxaFShaH08pwhf9hvgSNf4JqJR+qnO382jIvUBjnhRq9DQ==","signatures":[{"sig":"MEYCIQDuZVG3o+pVxMJkIVK4Ua6VIQqG6arqkJiko3iKzURZLwIhAOx4eJyOaGqriTJU7+ndIeIvNNfpxPu8wiFHqiP1gueT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@airalogy%2faimd-recorder@1.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18028105},"main":"./src/index.ts","type":"module","_from":"file:airalogy-aimd-recorder-1.17.0.tgz","types":"./src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"},"./styles":{"import":"./src/styles/aimd.css","default":"./src/styles/aimd.css"},"./components":{"types":"./src/components/index.ts","import":"./src/components/index.ts"},"./composables":{"types":"./src/composables/index.ts","import":"./src/composables/index.ts"}},"scripts":{"dev":"vite build --watch","test":"vitest run --config vitest.config.ts","build":"vite build","type-check":"vue-tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ea8565c3-9949-4d29-a140-f1502b9b7463"}},"_resolved":"/tmp/9966a45e806d6667dc2689b7ba942d22/airalogy-aimd-recorder-1.17.0.tgz","_integrity":"sha512-qDKq/5uNbBxh7finMtCQXxNgbuYO2/GR43cAJ6X9vxaFShaH08pwhf9hvgSNf4JqJR+qnO382jIvUBjnhRq9DQ==","repository":{"url":"git+https://github.com/airalogy/aimd.git","type":"git","directory":"packages/aimd-recorder"},"_npmVersion":"11.12.1","description":"AIMD (Airalogy Markdown) recorder Vue components and UI","directories":{},"_nodeVersion":"24.15.0","dependencies":{"react":"^19.2.4","seqviz":"^3.10.18","react-dom":"^19.2.4","@milkdown/kit":"^7.18.0","monaco-editor":"^0.52.2","@airalogy/aimd-core":"^2.7.0","@airalogy/aimd-editor":"^1.9.0","@airalogy/aimd-renderer":"^2.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.17","sass":"^1.90.0","vite":"^7.1.3","unocss":"^0.58.3","vue-tsc":"^3.0.6","naive-ui":"2.41.0","typescript":"5.8.3","@types/node":"^24.3.0","@types/react":"^19.2.14","@vueuse/core":"^13.5.0","@types/react-dom":"^19.2.3","@vitejs/plugin-vue":"^6.0.1","vite-tsconfig-paths":"^5.1.4","unplugin-auto-import":"^0.17.3","unplugin-vue-components":"^0.27.4"},"peerDependencies":{"vue":"^3.5.17","naive-ui":"2.41.0","@vueuse/core":"^13.5.0"},"_npmOperationalInternal":{"tmp":"tmp/aimd-recorder_1.17.0_1779413359114_0.8941217213176746","host":"s3://npm-registry-packages-npm-production"}},"1.18.0":{"name":"@airalogy/aimd-recorder","version":"1.18.0","keywords":["aimd","markdown","editor","vue","components"],"license":"Apache-2.0","_id":"@airalogy/aimd-recorder@1.18.0","maintainers":[{"name":"yangzijie","email":"yangzijie@westlake.edu.cn"}],"homepage":"https://github.com/airalogy/airalogy/tree/main/packages/npm/aimd-recorder#readme","bugs":{"url":"https://github.com/airalogy/airalogy/issues"},"dist":{"shasum":"2edfac8a765e992f726b9ce6aa076a126e24f00f","tarball":"https://registry.npmjs.org/@airalogy/aimd-recorder/-/aimd-recorder-1.18.0.tgz","fileCount":243,"integrity":"sha512-UakQT5HRdBqGLyjOuQV5FzY9m39gguvbMUDgBNU+Q9axbWEMJWRZ/t1ZJ0ORkh/XVTkFLQCuzZDC0DLb3WE+6g==","signatures":[{"sig":"MEYCIQD3vu84PvUNn3V4N9NVOLQAfHylNG0c4kJ9bZvBAfpSoAIhALdrqKdHh6JOe3u0pxZrmj26P6Soipqi5cwwwrG0tcHP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@airalogy%2faimd-recorder@1.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22755188},"main":"./src/index.ts","type":"module","_from":"file:airalogy-aimd-recorder-1.18.0.tgz","types":"./src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"},"./styles":{"import":"./src/styles/aimd.css","default":"./src/styles/aimd.css"},"./components":{"types":"./src/components/index.ts","import":"./src/components/index.ts"},"./composables":{"types":"./src/composables/index.ts","import":"./src/composables/index.ts"}},"scripts":{"dev":"vite build --watch","test":"vitest run --config vitest.config.ts","build":"vite build","type-check":"vue-tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef7f14e1-9d3a-458d-bd7c-4c95c967c0f6"}},"_resolved":"/tmp/ce3cff55213d07765a9ff8f7f5d7edbc/airalogy-aimd-recorder-1.18.0.tgz","_integrity":"sha512-UakQT5HRdBqGLyjOuQV5FzY9m39gguvbMUDgBNU+Q9axbWEMJWRZ/t1ZJ0ORkh/XVTkFLQCuzZDC0DLb3WE+6g==","repository":{"url":"git+https://github.com/airalogy/airalogy.git","type":"git","directory":"packages/npm/aimd-recorder"},"_npmVersion":"11.13.0","description":"AIMD (Airalogy Markdown) recorder Vue components and UI","directories":{},"_nodeVersion":"24.16.0","dependencies":{"react":"^19.2.4","seqviz":"^3.10.18","mermaid":"^11.15.0","react-dom":"^19.2.4","@milkdown/kit":"^7.18.0","monaco-editor":"^0.52.2","@airalogy/aimd-core":"^2.8.0","@airalogy/aimd-editor":"^1.9.0","@airalogy/aimd-renderer":"^2.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.17","sass":"^1.90.0","vite":"^7.1.3","unocss":"^0.58.3","vue-tsc":"^3.0.6","naive-ui":"2.41.0","typescript":"5.8.3","@types/node":"^24.3.0","@types/react":"^19.2.14","@vueuse/core":"^13.5.0","@types/react-dom":"^19.2.3","@vitejs/plugin-vue":"^6.0.1","vite-tsconfig-paths":"^5.1.4","unplugin-auto-import":"^0.17.3","unplugin-vue-components":"^0.27.4"},"peerDependencies":{"vue":"^3.5.17","naive-ui":"2.41.0","@vueuse/core":"^13.5.0"},"_npmOperationalInternal":{"tmp":"tmp/aimd-recorder_1.18.0_1780064988260_0.3708703695542015","host":"s3://npm-registry-packages-npm-production"}},"1.19.0":{"name":"@airalogy/aimd-recorder","version":"1.19.0","keywords":["aimd","markdown","editor","vue","components"],"license":"Apache-2.0","_id":"@airalogy/aimd-recorder@1.19.0","maintainers":[{"name":"yangzijie","email":"yangzijie@westlake.edu.cn"}],"homepage":"https://github.com/airalogy/airalogy/tree/main/packages/npm/aimd-recorder#readme","bugs":{"url":"https://github.com/airalogy/airalogy/issues"},"dist":{"shasum":"e72f6710bfadebdc8ce857a15df624041f9ac2ff","tarball":"https://registry.npmjs.org/@airalogy/aimd-recorder/-/aimd-recorder-1.19.0.tgz","fileCount":247,"integrity":"sha512-Q+o4t77zfxwQJ7YkOv44GOAJuaLMJYzhpqrLZXTRvvM1xo61Dgr8MU+1RBSmyBYi6CNlvzcEfur1qtck2wQNLQ==","signatures":[{"sig":"MEYCIQC63Oxn/DCbsUURAe9uf++UKymx+untAFK3QLJYjLw7GAIhAKRXgH3UJ4MP7Oh8bleGVYQQyZKCIw4+idwQB6c2/KKx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@airalogy%2faimd-recorder@1.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22829835},"main":"./src/index.ts","type":"module","_from":"file:airalogy-aimd-recorder-1.19.0.tgz","types":"./src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"},"./record":{"types":"./src/record/index.ts","import":"./src/record/index.ts"},"./styles":{"import":"./src/styles/aimd.css","default":"./src/styles/aimd.css"},"./components":{"types":"./src/components/index.ts","import":"./src/components/index.ts"},"./composables":{"types":"./src/composables/index.ts","import":"./src/composables/index.ts"}},"scripts":{"dev":"vite build --watch","test":"vitest run --config vitest.config.ts","build":"vite build","type-check":"vue-tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef7f14e1-9d3a-458d-bd7c-4c95c967c0f6"}},"_resolved":"/tmp/283424e2425e41302d3f87141e578791/airalogy-aimd-recorder-1.19.0.tgz","_integrity":"sha512-Q+o4t77zfxwQJ7YkOv44GOAJuaLMJYzhpqrLZXTRvvM1xo61Dgr8MU+1RBSmyBYi6CNlvzcEfur1qtck2wQNLQ==","repository":{"url":"git+https://github.com/airalogy/airalogy.git","type":"git","directory":"packages/npm/aimd-recorder"},"_npmVersion":"11.13.0","description":"AIMD (Airalogy Markdown) recorder Vue components and UI","directories":{},"_nodeVersion":"24.16.0","dependencies":{"react":"^19.2.4","seqviz":"^3.10.18","mermaid":"^11.15.0","react-dom":"^19.2.4","@milkdown/kit":"^7.18.0","monaco-editor":"^0.52.2","@airalogy/aimd-core":"^2.9.0","@airalogy/aimd-editor":"^1.9.0","@airalogy/aimd-renderer":"^2.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.17","sass":"^1.90.0","vite":"^7.1.3","unocss":"^0.58.3","vue-tsc":"^3.0.6","naive-ui":"2.41.0","typescript":"5.8.3","@types/node":"^24.3.0","@types/react":"^19.2.14","@vueuse/core":"^13.5.0","@types/react-dom":"^19.2.3","@vitejs/plugin-vue":"^6.0.1","vite-tsconfig-paths":"^5.1.4","unplugin-auto-import":"^0.17.3","unplugin-vue-components":"^0.27.4"},"peerDependencies":{"vue":"^3.5.17","naive-ui":"2.41.0","@vueuse/core":"^13.5.0"},"_npmOperationalInternal":{"tmp":"tmp/aimd-recorder_1.19.0_1781404396982_0.29582374308393056","host":"s3://npm-registry-packages-npm-production"}},"1.19.1":{"name":"@airalogy/aimd-recorder","version":"1.19.1","keywords":["aimd","markdown","editor","vue","components"],"license":"Apache-2.0","_id":"@airalogy/aimd-recorder@1.19.1","maintainers":[{"name":"yangzijie","email":"yangzijie@westlake.edu.cn"}],"homepage":"https://github.com/airalogy/airalogy/tree/main/packages/npm/aimd-recorder#readme","bugs":{"url":"https://github.com/airalogy/airalogy/issues"},"dist":{"shasum":"4a8ff0a32bf243cde86dc3736a628822220a9412","tarball":"https://registry.npmjs.org/@airalogy/aimd-recorder/-/aimd-recorder-1.19.1.tgz","fileCount":247,"integrity":"sha512-UCY0eskc0KYZMlhyPJc7QJl7zXnEVch4qkYMrseEInQ1acHZRZdVw3hCOqCHZhbIEHalVKpb0hcsEZJH6mFgiA==","signatures":[{"sig":"MEQCICHSGTU8P7aFRQUVHwtJaSZypvyOEs55zmHGE0UFIqjTAiBh5krVPoFVe7kawRxUs5nk3BdW4hIemGIZM8Sdh0nSRg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@airalogy%2faimd-recorder@1.19.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22849746},"main":"./src/index.ts","type":"module","_from":"file:airalogy-aimd-recorder-1.19.1.tgz","types":"./src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"},"./record":{"types":"./src/record/index.ts","import":"./src/record/index.ts"},"./styles":{"import":"./src/styles/aimd.css","default":"./src/styles/aimd.css"},"./components":{"types":"./src/components/index.ts","import":"./src/components/index.ts"},"./composables":{"types":"./src/composables/index.ts","import":"./src/composables/index.ts"}},"scripts":{"dev":"vite build --watch","test":"vitest run --config vitest.config.ts","build":"vite build","type-check":"vue-tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef7f14e1-9d3a-458d-bd7c-4c95c967c0f6"}},"_resolved":"/tmp/a6a0cb565991133aa8c9619a972ae868/airalogy-aimd-recorder-1.19.1.tgz","_integrity":"sha512-UCY0eskc0KYZMlhyPJc7QJl7zXnEVch4qkYMrseEInQ1acHZRZdVw3hCOqCHZhbIEHalVKpb0hcsEZJH6mFgiA==","repository":{"url":"git+https://github.com/airalogy/airalogy.git","type":"git","directory":"packages/npm/aimd-recorder"},"_npmVersion":"11.13.0","description":"AIMD (Airalogy Markdown) recorder Vue components and UI","directories":{},"_nodeVersion":"24.16.0","dependencies":{"react":"^19.2.4","seqviz":"^3.10.18","mermaid":"^11.15.0","react-dom":"^19.2.4","@milkdown/kit":"^7.18.0","monaco-editor":"^0.52.2","@airalogy/aimd-core":"^2.10.0","@airalogy/aimd-editor":"^1.9.0","@airalogy/aimd-renderer":"^2.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.17","sass":"^1.90.0","vite":"^7.1.3","unocss":"^0.58.3","vue-tsc":"^3.0.6","naive-ui":"2.41.0","typescript":"5.8.3","@types/node":"^24.3.0","@types/react":"^19.2.14","@vueuse/core":"^13.5.0","@types/react-dom":"^19.2.3","@vitejs/plugin-vue":"^6.0.1","vite-tsconfig-paths":"^5.1.4","unplugin-auto-import":"^0.17.3","unplugin-vue-components":"^0.27.4"},"peerDependencies":{"vue":"^3.5.17","naive-ui":"2.41.0","@vueuse/core":"^13.5.0"},"_npmOperationalInternal":{"tmp":"tmp/aimd-recorder_1.19.1_1781703968775_0.016949160051072054","host":"s3://npm-registry-packages-npm-production"}},"1.19.2":{"name":"@airalogy/aimd-recorder","version":"1.19.2","keywords":["aimd","markdown","editor","vue","components"],"license":"Apache-2.0","_id":"@airalogy/aimd-recorder@1.19.2","maintainers":[{"name":"yangzijie","email":"yangzijie@westlake.edu.cn"}],"homepage":"https://github.com/airalogy/airalogy/tree/main/packages/npm/aimd-recorder#readme","bugs":{"url":"https://github.com/airalogy/airalogy/issues"},"dist":{"shasum":"3d6d31bc6117a56b78b65e0a8c271bb7596962df","tarball":"https://registry.npmjs.org/@airalogy/aimd-recorder/-/aimd-recorder-1.19.2.tgz","fileCount":247,"integrity":"sha512-88rHszY9z3+J5OF83Lr7p3r0bbzw3m1ngUVgFqXLds7e/d2O4v7e1vyBHjg4vpY4NfHpZ0o2hokty+/qRiyVvw==","signatures":[{"sig":"MEUCIQCmzqw+u6zTm73txCSWDITvGo1epuns6NqBnjSVri5vqAIgAKW2vqy1C4VZHOD0MKohr75qMNGM8KSJwowl4Zcl/j0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@airalogy%2faimd-recorder@1.19.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24306086},"main":"./src/index.ts","type":"module","_from":"file:airalogy-aimd-recorder-1.19.2.tgz","types":"./src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"},"./record":{"types":"./src/record/index.ts","import":"./src/record/index.ts"},"./styles":{"import":"./src/styles/recorder.css","default":"./src/styles/recorder.css"},"./components":{"types":"./src/components/index.ts","import":"./src/components/index.ts"},"./composables":{"types":"./src/composables/index.ts","import":"./src/composables/index.ts"}},"scripts":{"dev":"vite build --watch","test":"vitest run --config vitest.config.ts","build":"vite build","type-check":"vue-tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef7f14e1-9d3a-458d-bd7c-4c95c967c0f6"}},"_resolved":"/tmp/165d5f61ffe1b176c0a462da82b1975f/airalogy-aimd-recorder-1.19.2.tgz","_integrity":"sha512-88rHszY9z3+J5OF83Lr7p3r0bbzw3m1ngUVgFqXLds7e/d2O4v7e1vyBHjg4vpY4NfHpZ0o2hokty+/qRiyVvw==","repository":{"url":"git+https://github.com/airalogy/airalogy.git","type":"git","directory":"packages/npm/aimd-recorder"},"_npmVersion":"11.13.0","description":"AIMD (Airalogy Markdown) recorder Vue components and UI","directories":{},"_nodeVersion":"24.16.0","dependencies":{"react":"^19.2.4","seqviz":"^3.10.18","mermaid":"^11.15.0","react-dom":"^19.2.4","@milkdown/kit":"^7.18.0","monaco-editor":"^0.52.2","@airalogy/aimd-core":"^2.11.0","@airalogy/aimd-editor":"^1.10.0","@airalogy/aimd-renderer":"^2.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.17","sass":"^1.90.0","vite":"^7.1.3","unocss":"^0.58.3","vue-tsc":"^3.0.6","naive-ui":"2.41.0","typescript":"5.8.3","@types/node":"^24.3.0","@types/react":"^19.2.14","@vueuse/core":"^13.5.0","@types/react-dom":"^19.2.3","@vitejs/plugin-vue":"^6.0.1","vite-tsconfig-paths":"^5.1.4","unplugin-auto-import":"^0.17.3","unplugin-vue-components":"^0.27.4"},"peerDependencies":{"vue":"^3.5.17","naive-ui":"2.41.0","@vueuse/core":"^13.5.0"},"_npmOperationalInternal":{"tmp":"tmp/aimd-recorder_1.19.2_1782354267377_0.7884330241674773","host":"s3://npm-registry-packages-npm-production"}},"1.20.0":{"name":"@airalogy/aimd-recorder","version":"1.20.0","keywords":["aimd","markdown","editor","vue","components"],"license":"Apache-2.0","_id":"@airalogy/aimd-recorder@1.20.0","maintainers":[{"name":"yangzijie","email":"yangzijie@westlake.edu.cn"}],"homepage":"https://github.com/airalogy/airalogy/tree/main/packages/npm/aimd-recorder#readme","bugs":{"url":"https://github.com/airalogy/airalogy/issues"},"dist":{"shasum":"5bdc66f545f69e4bebd62a66cabc72e4718e4f4f","tarball":"https://registry.npmjs.org/@airalogy/aimd-recorder/-/aimd-recorder-1.20.0.tgz","fileCount":248,"integrity":"sha512-sPm7M+E+OeoyD9JN2dzKY1yAODwPxDjPrzGCb4qfvo6bcXRzJsMJPX7XY5I1MJIfMX1VBMESvKjgOzmSFJu8FQ==","signatures":[{"sig":"MEUCIQC9Wikq+3pT3RuL8rgrDF6si61XCADeUX5KfNj7pv/sDgIgeo3HMZH33wDVixdffH6dbWjYB73RAJvjmHhmCMtdUnw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@airalogy%2faimd-recorder@1.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24324741},"main":"./src/index.ts","type":"module","_from":"file:airalogy-aimd-recorder-1.20.0.tgz","types":"./src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"},"./record":{"types":"./src/record/index.ts","import":"./src/record/index.ts"},"./styles":{"import":"./src/styles/recorder.css","default":"./src/styles/recorder.css"},"./components":{"types":"./src/components/index.ts","import":"./src/components/index.ts"},"./composables":{"types":"./src/composables/index.ts","import":"./src/composables/index.ts"}},"scripts":{"dev":"vite build --watch","test":"vitest run --config vitest.config.ts","build":"vite build","type-check":"vue-tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef7f14e1-9d3a-458d-bd7c-4c95c967c0f6"}},"_resolved":"/tmp/55780cd8f684f0329e4ca33f3b2df3bb/airalogy-aimd-recorder-1.20.0.tgz","_integrity":"sha512-sPm7M+E+OeoyD9JN2dzKY1yAODwPxDjPrzGCb4qfvo6bcXRzJsMJPX7XY5I1MJIfMX1VBMESvKjgOzmSFJu8FQ==","repository":{"url":"git+https://github.com/airalogy/airalogy.git","type":"git","directory":"packages/npm/aimd-recorder"},"_npmVersion":"11.13.0","description":"AIMD (Airalogy Markdown) recorder Vue components and UI","directories":{},"_nodeVersion":"24.17.0","dependencies":{"react":"^19.2.4","seqviz":"^3.10.18","mermaid":"^11.15.0","react-dom":"^19.2.4","@milkdown/kit":"^7.18.0","monaco-editor":"^0.52.2","@airalogy/aimd-core":"^2.12.0","@airalogy/aimd-editor":"^1.10.0","@airalogy/aimd-renderer":"^2.9.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.17","sass":"^1.90.0","vite":"^7.1.3","unocss":"^0.58.3","vue-tsc":"^3.0.6","naive-ui":"2.41.0","typescript":"5.8.3","@types/node":"^24.3.0","@types/react":"^19.2.14","@vueuse/core":"^13.5.0","@types/react-dom":"^19.2.3","@vitejs/plugin-vue":"^6.0.1","vite-tsconfig-paths":"^5.1.4","unplugin-auto-import":"^0.17.3","unplugin-vue-components":"^0.27.4"},"peerDependencies":{"vue":"^3.5.17","naive-ui":"2.41.0","@vueuse/core":"^13.5.0"},"_npmOperationalInternal":{"tmp":"tmp/aimd-recorder_1.20.0_1782911089279_0.5797069429236343","host":"s3://npm-registry-packages-npm-production"}},"1.21.0":{"name":"@airalogy/aimd-recorder","version":"1.21.0","keywords":["aimd","markdown","editor","vue","components"],"license":"Apache-2.0","_id":"@airalogy/aimd-recorder@1.21.0","maintainers":[{"name":"yangzijie","email":"yangzijie@westlake.edu.cn"}],"homepage":"https://github.com/airalogy/airalogy/tree/main/packages/npm/aimd-recorder#readme","bugs":{"url":"https://github.com/airalogy/airalogy/issues"},"dist":{"shasum":"829a82a0442c687b5f5a6a78b59d859307852ffa","tarball":"https://registry.npmjs.org/@airalogy/aimd-recorder/-/aimd-recorder-1.21.0.tgz","fileCount":248,"integrity":"sha512-3cK/IuRyeS9W6ptj/EooYbh8cGHScWiLqEf093UvUp//J1z+947cnaT9XwbvsT8iNHETis8Y5K424ImHGNunVQ==","signatures":[{"sig":"MEUCIQDWl8fKYdeyuT5j5TLbLWxBJqHJYmbgenC1G5dSwTzsrQIgahRlO1f1LVyBwfpgwOSkX3avoWyOtDxSGp1nRPs1ldA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@airalogy%2faimd-recorder@1.21.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24438104},"main":"./src/index.ts","type":"module","_from":"file:airalogy-aimd-recorder-1.21.0.tgz","types":"./src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"},"./record":{"types":"./src/record/index.ts","import":"./src/record/index.ts"},"./styles":{"import":"./src/styles/recorder.css","default":"./src/styles/recorder.css"},"./components":{"types":"./src/components/index.ts","import":"./src/components/index.ts"},"./composables":{"types":"./src/composables/index.ts","import":"./src/composables/index.ts"}},"scripts":{"dev":"vite build --watch","test":"vitest run --config vitest.config.ts","build":"vite build","type-check":"vue-tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef7f14e1-9d3a-458d-bd7c-4c95c967c0f6"}},"_resolved":"/tmp/03c72cca4ff6783e0154b122f462ceae/airalogy-aimd-recorder-1.21.0.tgz","_integrity":"sha512-3cK/IuRyeS9W6ptj/EooYbh8cGHScWiLqEf093UvUp//J1z+947cnaT9XwbvsT8iNHETis8Y5K424ImHGNunVQ==","repository":{"url":"git+https://github.com/airalogy/airalogy.git","type":"git","directory":"packages/npm/aimd-recorder"},"_npmVersion":"11.16.0","description":"AIMD (Airalogy Markdown) recorder Vue components and UI","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.4","seqviz":"^3.10.18","mermaid":"^11.15.0","react-dom":"^19.2.4","@milkdown/kit":"^7.18.0","monaco-editor":"^0.52.2","@airalogy/aimd-core":"^2.12.0","@airalogy/aimd-editor":"^1.10.0","@airalogy/aimd-renderer":"^2.9.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.17","sass":"^1.90.0","vite":"^7.1.3","unocss":"^0.58.3","vue-tsc":"^3.0.6","naive-ui":"2.41.0","typescript":"5.8.3","@types/node":"^24.3.0","@types/react":"^19.2.14","@vueuse/core":"^13.5.0","@types/react-dom":"^19.2.3","@vitejs/plugin-vue":"^6.0.1","vite-tsconfig-paths":"^5.1.4","unplugin-auto-import":"^0.17.3","unplugin-vue-components":"^0.27.4"},"peerDependencies":{"vue":"^3.5.17","naive-ui":"2.41.0","@vueuse/core":"^13.5.0"},"_npmOperationalInternal":{"tmp":"tmp/aimd-recorder_1.21.0_1783560776395_0.13521691393017687","host":"s3://npm-registry-packages-npm-production"}},"1.22.0":{"name":"@airalogy/aimd-recorder","version":"1.22.0","keywords":["aimd","markdown","editor","vue","components"],"license":"Apache-2.0","_id":"@airalogy/aimd-recorder@1.22.0","maintainers":[{"name":"yangzijie","email":"yangzijie@westlake.edu.cn"}],"homepage":"https://github.com/airalogy/airalogy/tree/main/packages/npm/aimd-recorder#readme","bugs":{"url":"https://github.com/airalogy/airalogy/issues"},"dist":{"shasum":"532ed8c5cba84f1ccedaa5532c3921ac92886307","tarball":"https://registry.npmjs.org/@airalogy/aimd-recorder/-/aimd-recorder-1.22.0.tgz","fileCount":252,"integrity":"sha512-U27qhQyScgOavVpdxb2PF86qzM+kCARUqwycXad42WORx024qjOzMamORr4mAZeaTHAIyztQuCyVVxEkB5xFsg==","signatures":[{"sig":"MEYCIQCnWlwO8jjNq8Clg8u8SufjqFTCdHe1xviEiHeK/cVXmQIhALS4D2Gjl49U7hUExfCt+IBWh80qG5jVh4ltNh58z//T","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@airalogy%2faimd-recorder@1.22.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24477317},"main":"./src/index.ts","type":"module","_from":"file:airalogy-aimd-recorder-1.22.0.tgz","types":"./src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"},"./record":{"types":"./src/record/index.ts","import":"./src/record/index.ts"},"./styles":{"import":"./src/styles/recorder.css","default":"./src/styles/recorder.css"},"./components":{"types":"./src/components/index.ts","import":"./src/components/index.ts"},"./composables":{"types":"./src/composables/index.ts","import":"./src/composables/index.ts"}},"scripts":{"dev":"vite build --watch","test":"vitest run --config vitest.config.ts","build":"vite build","type-check":"vue-tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef7f14e1-9d3a-458d-bd7c-4c95c967c0f6"}},"_resolved":"/tmp/71861ec3ddc34fd7244d0150e25ddc3a/airalogy-aimd-recorder-1.22.0.tgz","_integrity":"sha512-U27qhQyScgOavVpdxb2PF86qzM+kCARUqwycXad42WORx024qjOzMamORr4mAZeaTHAIyztQuCyVVxEkB5xFsg==","repository":{"url":"git+https://github.com/airalogy/airalogy.git","type":"git","directory":"packages/npm/aimd-recorder"},"_npmVersion":"11.16.0","description":"AIMD (Airalogy Markdown) recorder Vue components and UI","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.4","seqviz":"^3.10.18","mermaid":"^11.15.0","react-dom":"^19.2.4","@milkdown/kit":"^7.18.0","monaco-editor":"^0.52.2","@airalogy/aimd-core":"^2.13.0","@airalogy/aimd-editor":"^1.10.0","@airalogy/aimd-renderer":"^2.10.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.17","sass":"^1.90.0","vite":"^7.1.3","unocss":"^0.58.3","vue-tsc":"^3.0.6","naive-ui":"2.41.0","typescript":"5.8.3","@types/node":"^24.3.0","@types/react":"^19.2.14","@vueuse/core":"^13.5.0","@types/react-dom":"^19.2.3","@vitejs/plugin-vue":"^6.0.1","vite-tsconfig-paths":"^5.1.4","unplugin-auto-import":"^0.17.3","unplugin-vue-components":"^0.27.4"},"peerDependencies":{"vue":"^3.5.17","naive-ui":"2.41.0","@vueuse/core":"^13.5.0"},"_npmOperationalInternal":{"tmp":"tmp/aimd-recorder_1.22.0_1783730678916_0.3222295334116474","host":"s3://npm-registry-packages-npm-production"}},"1.23.0":{"name":"@airalogy/aimd-recorder","version":"1.23.0","keywords":["aimd","markdown","editor","vue","components"],"license":"Apache-2.0","_id":"@airalogy/aimd-recorder@1.23.0","maintainers":[{"name":"yangzijie","email":"yangzijie@westlake.edu.cn"}],"homepage":"https://github.com/airalogy/airalogy/tree/main/packages/npm/aimd-recorder#readme","bugs":{"url":"https://github.com/airalogy/airalogy/issues"},"dist":{"shasum":"c35da0db825869c84504ef87fd966ae67ca198eb","tarball":"https://registry.npmjs.org/@airalogy/aimd-recorder/-/aimd-recorder-1.23.0.tgz","fileCount":258,"integrity":"sha512-7R27j+8o7AS1rljTbvZ7CIx+WwiBuV0cj4wxSF37hStwIjKCpq8XV6yQ4QqdZCcxy85fQtcm/VVjO/Alcf1/Kg==","signatures":[{"sig":"MEYCIQCkpnPr5UFcnWaMqBIta7uqctNXA5Hd7bBIivRmIHpp9gIhAMEZMg8gfL9iVjPRPMY0ekmL2ZcYtTbgvniQRZPU/kt4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@airalogy%2faimd-recorder@1.23.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24608417},"main":"./src/index.ts","type":"module","_from":"file:airalogy-aimd-recorder-1.23.0.tgz","types":"./src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"},"./record":{"types":"./src/record/index.ts","import":"./src/record/index.ts"},"./styles":{"import":"./src/styles/recorder.css","default":"./src/styles/recorder.css"},"./components":{"types":"./src/components/index.ts","import":"./src/components/index.ts"},"./composables":{"types":"./src/composables/index.ts","import":"./src/composables/index.ts"}},"scripts":{"dev":"vite build --watch","test":"vitest run --config vitest.config.ts","build":"vite build","type-check":"vue-tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef7f14e1-9d3a-458d-bd7c-4c95c967c0f6"}},"_resolved":"/tmp/d300ee2bd3849090867ccda12815e4e5/airalogy-aimd-recorder-1.23.0.tgz","_integrity":"sha512-7R27j+8o7AS1rljTbvZ7CIx+WwiBuV0cj4wxSF37hStwIjKCpq8XV6yQ4QqdZCcxy85fQtcm/VVjO/Alcf1/Kg==","repository":{"url":"git+https://github.com/airalogy/airalogy.git","type":"git","directory":"packages/npm/aimd-recorder"},"_npmVersion":"11.16.0","description":"AIMD (Airalogy Markdown) recorder Vue components and UI","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.4","seqviz":"^3.10.18","mermaid":"^11.15.0","react-dom":"^19.2.4","@milkdown/kit":"^7.18.0","monaco-editor":"^0.52.2","@airalogy/aimd-core":"^2.14.0","@airalogy/aimd-editor":"^1.11.0","@airalogy/aimd-renderer":"^2.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.17","sass":"^1.90.0","vite":"^7.1.3","unocss":"^0.58.3","vue-tsc":"^3.0.6","naive-ui":"2.41.0","typescript":"5.8.3","@types/node":"^24.3.0","@types/react":"^19.2.14","@vueuse/core":"^13.5.0","@types/react-dom":"^19.2.3","@vitejs/plugin-vue":"^6.0.1","vite-tsconfig-paths":"^5.1.4","unplugin-auto-import":"^0.17.3","unplugin-vue-components":"^0.27.4"},"peerDependencies":{"vue":"^3.5.17","naive-ui":"2.41.0","@vueuse/core":"^13.5.0"},"_npmOperationalInternal":{"tmp":"tmp/aimd-recorder_1.23.0_1784600834212_0.3308450467795214","host":"s3://npm-registry-packages-npm-production"}},"1.24.0":{"name":"@airalogy/aimd-recorder","version":"1.24.0","keywords":["aimd","markdown","editor","vue","components"],"license":"Apache-2.0","_id":"@airalogy/aimd-recorder@1.24.0","maintainers":[{"name":"yangzijie","email":"yangzijie@westlake.edu.cn"}],"homepage":"https://github.com/airalogy/airalogy/tree/main/packages/npm/aimd-recorder#readme","bugs":{"url":"https://github.com/airalogy/airalogy/issues"},"dist":{"shasum":"9c8780dc811fa6130ace594d3e4d2f7bb08f800d","tarball":"https://registry.npmjs.org/@airalogy/aimd-recorder/-/aimd-recorder-1.24.0.tgz","fileCount":263,"integrity":"sha512-WYG3AeLaS2Q0NNLipaj02QfoY/3ENd7fBqUUz1BwR7f7Ae0lJGpBQv1cYp9URYcScRwsj+o6BUkr/0TsAwoHFg==","signatures":[{"sig":"MEUCIDWnoonf+NPAaERD/4anS0AesA06sjFPhCY0E8mCcxRDAiEArmVNYg2MCbd4SHUG+o38UgAXasCSk1weFm+nAV9vO4k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@airalogy%2faimd-recorder@1.24.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24898636},"main":"./src/index.ts","type":"module","_from":"file:airalogy-aimd-recorder-1.24.0.tgz","types":"./src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"},"./record":{"types":"./src/record/index.ts","import":"./src/record/index.ts"},"./styles":{"import":"./src/styles/recorder.css","default":"./src/styles/recorder.css"},"./components":{"types":"./src/components/index.ts","import":"./src/components/index.ts"},"./composables":{"types":"./src/composables/index.ts","import":"./src/composables/index.ts"}},"scripts":{"dev":"vite build --watch","test":"vitest run --config vitest.config.ts","build":"vite build","type-check":"vue-tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef7f14e1-9d3a-458d-bd7c-4c95c967c0f6"}},"_resolved":"/tmp/64b55d71496377b7eb010039e80e3ec0/airalogy-aimd-recorder-1.24.0.tgz","_integrity":"sha512-WYG3AeLaS2Q0NNLipaj02QfoY/3ENd7fBqUUz1BwR7f7Ae0lJGpBQv1cYp9URYcScRwsj+o6BUkr/0TsAwoHFg==","repository":{"url":"git+https://github.com/airalogy/airalogy.git","type":"git","directory":"packages/npm/aimd-recorder"},"_npmVersion":"11.16.0","description":"AIMD (Airalogy Markdown) recorder Vue components and UI","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ajv":"^8.12.0","react":"^19.2.4","seqviz":"^3.10.18","mermaid":"^11.15.0","react-dom":"^19.2.4","ajv-formats":"^2.1.1","@milkdown/kit":"^7.18.0","monaco-editor":"^0.52.2","@airalogy/aimd-core":"^2.14.0","@airalogy/aimd-editor":"^1.11.0","@airalogy/aimd-renderer":"^2.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.17","sass":"^1.90.0","vite":"^7.1.3","unocss":"^0.58.3","vue-tsc":"^3.0.6","naive-ui":"2.41.0","typescript":"5.8.3","@types/node":"^24.3.0","@types/react":"^19.2.14","@vueuse/core":"^13.5.0","@types/react-dom":"^19.2.3","@vitejs/plugin-vue":"^6.0.1","vite-tsconfig-paths":"^5.1.4","unplugin-auto-import":"^0.17.3","unplugin-vue-components":"^0.27.4"},"peerDependencies":{"vue":"^3.5.17","naive-ui":"2.41.0","@vueuse/core":"^13.5.0"},"_npmOperationalInternal":{"tmp":"tmp/aimd-recorder_1.24.0_1784631099988_0.002597751601281173","host":"s3://npm-registry-packages-npm-production"}},"1.24.1":{"name":"@airalogy/aimd-recorder","version":"1.24.1","keywords":["aimd","markdown","editor","vue","components"],"license":"Apache-2.0","_id":"@airalogy/aimd-recorder@1.24.1","maintainers":[{"name":"yangzijie","email":"yangzijie@westlake.edu.cn"}],"homepage":"https://github.com/airalogy/airalogy/tree/main/packages/npm/aimd-recorder#readme","bugs":{"url":"https://github.com/airalogy/airalogy/issues"},"dist":{"shasum":"f07f2dc1863d7e218e04324e60a623f632635835","tarball":"https://registry.npmjs.org/@airalogy/aimd-recorder/-/aimd-recorder-1.24.1.tgz","fileCount":263,"integrity":"sha512-p3aA0uJNCDuTxz5yuORELAe5dfDMC19XUErxoa8vsDQq9FroGi6jYHxD6LjPPQiKyxun/vYgjpmh4xo69KVmvQ==","signatures":[{"sig":"MEYCIQCW33TE86sMLy0hHRIoqP79j1iJ87pkxSY8R6YK6JeZAQIhAPDvDgLOoYWDvdC+WGquIoPQG5Ce9NYWsO1eYxHSUU3U","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@airalogy%2faimd-recorder@1.24.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24898636},"main":"./src/index.ts","type":"module","_from":"file:airalogy-aimd-recorder-1.24.1.tgz","types":"./src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"},"./record":{"types":"./src/record/index.ts","import":"./src/record/index.ts"},"./styles":{"import":"./src/styles/recorder.css","default":"./src/styles/recorder.css"},"./components":{"types":"./src/components/index.ts","import":"./src/components/index.ts"},"./composables":{"types":"./src/composables/index.ts","import":"./src/composables/index.ts"}},"scripts":{"dev":"vite build --watch","test":"vitest run --config vitest.config.ts","build":"vite build","type-check":"vue-tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef7f14e1-9d3a-458d-bd7c-4c95c967c0f6"}},"_resolved":"/tmp/58e8cc7ba3a431e615bddceced6013c4/airalogy-aimd-recorder-1.24.1.tgz","_integrity":"sha512-p3aA0uJNCDuTxz5yuORELAe5dfDMC19XUErxoa8vsDQq9FroGi6jYHxD6LjPPQiKyxun/vYgjpmh4xo69KVmvQ==","repository":{"url":"git+https://github.com/airalogy/airalogy.git","type":"git","directory":"packages/npm/aimd-recorder"},"_npmVersion":"11.16.0","description":"AIMD (Airalogy Markdown) recorder Vue components and UI","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ajv":"^8.12.0","react":"^19.2.4","seqviz":"^3.10.18","mermaid":"^11.15.0","react-dom":"^19.2.4","ajv-formats":"^2.1.1","@types/react":"^19.2.14","@milkdown/kit":"^7.18.0","monaco-editor":"^0.52.2","@types/react-dom":"^19.2.3","@airalogy/aimd-core":"^2.14.0","@airalogy/aimd-editor":"^1.11.0","@airalogy/aimd-renderer":"^2.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.17","sass":"^1.90.0","vite":"^7.1.3","unocss":"^0.58.3","vue-tsc":"^3.0.6","naive-ui":"2.41.0","typescript":"5.8.3","@types/node":"^24.3.0","@vueuse/core":"^13.5.0","@vitejs/plugin-vue":"^6.0.1","vite-tsconfig-paths":"^5.1.4","unplugin-auto-import":"^0.17.3","unplugin-vue-components":"^0.27.4"},"peerDependencies":{"vue":"^3.5.17","naive-ui":"2.41.0","@vueuse/core":"^13.5.0"},"_npmOperationalInternal":{"tmp":"tmp/aimd-recorder_1.24.1_1784632229135_0.5383904372815436","host":"s3://npm-registry-packages-npm-production"}},"1.24.2":{"name":"@airalogy/aimd-recorder","version":"1.24.2","keywords":["aimd","markdown","editor","vue","components"],"license":"Apache-2.0","_id":"@airalogy/aimd-recorder@1.24.2","maintainers":[{"name":"yangzijie","email":"yangzijie@westlake.edu.cn"}],"homepage":"https://github.com/airalogy/airalogy/tree/main/packages/npm/aimd-recorder#readme","bugs":{"url":"https://github.com/airalogy/airalogy/issues"},"dist":{"shasum":"e88da90465d630ebba9cc347c6489819fb1bf0a7","tarball":"https://registry.npmjs.org/@airalogy/aimd-recorder/-/aimd-recorder-1.24.2.tgz","fileCount":263,"integrity":"sha512-jdsIt8qYLJSS+a3xvfrm3V+5fBf0XicN/8gWN9B3qymwl+zs6NLrKT64srETKIk+/wTho77nojGjFlH4Ae+UfQ==","signatures":[{"sig":"MEUCIQDxUxpVzmAnlALVAmz91n3CRmafeYhUuuHQCYELw4u5gQIgbq3KlmmHcIcVI4cNigK+zT4OlTDzNnq+hUvaQ7y9jDs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@airalogy%2faimd-recorder@1.24.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24899571},"main":"./src/index.ts","type":"module","_from":"file:airalogy-aimd-recorder-1.24.2.tgz","types":"./src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"},"./record":{"types":"./src/record/index.ts","import":"./src/record/index.ts"},"./styles":{"import":"./src/styles/recorder.css","default":"./src/styles/recorder.css"},"./components":{"types":"./src/components/index.ts","import":"./src/components/index.ts"},"./composables":{"types":"./src/composables/index.ts","import":"./src/composables/index.ts"}},"scripts":{"dev":"vite build --watch","test":"vitest run --config vitest.config.ts","build":"vite build","type-check":"vue-tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef7f14e1-9d3a-458d-bd7c-4c95c967c0f6"}},"_resolved":"/tmp/d232966f0f4b0e4f7adcf265d5ce80ea/airalogy-aimd-recorder-1.24.2.tgz","_integrity":"sha512-jdsIt8qYLJSS+a3xvfrm3V+5fBf0XicN/8gWN9B3qymwl+zs6NLrKT64srETKIk+/wTho77nojGjFlH4Ae+UfQ==","repository":{"url":"git+https://github.com/airalogy/airalogy.git","type":"git","directory":"packages/npm/aimd-recorder"},"_npmVersion":"11.16.0","description":"AIMD (Airalogy Markdown) recorder Vue components and UI","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ajv":"^8.12.0","react":"^19.2.4","seqviz":"^3.10.18","mermaid":"^11.15.0","react-dom":"^19.2.4","ajv-formats":"^2.1.1","@types/react":"^19.2.14","@milkdown/kit":"^7.18.0","monaco-editor":"^0.52.2","@types/react-dom":"^19.2.3","@airalogy/aimd-core":"^2.14.0","@airalogy/aimd-editor":"^1.11.0","@airalogy/aimd-renderer":"^2.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.17","sass":"^1.90.0","vite":"^7.1.3","unocss":"^0.58.3","vue-tsc":"^3.0.6","naive-ui":"2.41.0","typescript":"5.8.3","@types/node":"^24.3.0","@vueuse/core":"^13.5.0","@vitejs/plugin-vue":"^6.0.1","vite-tsconfig-paths":"^5.1.4","unplugin-auto-import":"^0.17.3","unplugin-vue-components":"^0.27.4"},"peerDependencies":{"vue":"^3.5.17","naive-ui":"2.41.0","@vueuse/core":"^13.5.0"},"_npmOperationalInternal":{"tmp":"tmp/aimd-recorder_1.24.2_1784632679504_0.47724881100555017","host":"s3://npm-registry-packages-npm-production"}},"1.24.3":{"name":"@airalogy/aimd-recorder","version":"1.24.3","keywords":["aimd","markdown","editor","vue","components"],"license":"Apache-2.0","_id":"@airalogy/aimd-recorder@1.24.3","maintainers":[{"name":"yangzijie","email":"yangzijie@westlake.edu.cn"}],"homepage":"https://github.com/airalogy/airalogy/tree/main/packages/npm/aimd-recorder#readme","bugs":{"url":"https://github.com/airalogy/airalogy/issues"},"dist":{"shasum":"b7a124a3d3499fb608d873384e58505605af3a3c","tarball":"https://registry.npmjs.org/@airalogy/aimd-recorder/-/aimd-recorder-1.24.3.tgz","fileCount":264,"integrity":"sha512-EEl8IALCcDS5DvE0FHMvK73XvEqoGq4R6qlb0ybX9/y2g33VPBO1g1RpiZJ21NlI7Bs973Xy8igGmb82bW+J4A==","signatures":[{"sig":"MEUCIDYdYx4IQehowMEVr8hX0s9YxpeFsPcMLEkxDALzX2/mAiEAt2V0+7BssMdpZ1+WGK3oRZKlG6nMx5gHejop1Cl6lzo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@airalogy%2faimd-recorder@1.24.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24911961},"main":"./dist/index.js","type":"module","_from":"file:airalogy-aimd-recorder-1.24.3.tgz","types":"./src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./dist/index.js"},"./record":{"types":"./src/record/index.ts","import":"./dist/record.js"},"./styles":{"import":"./src/styles/recorder.css","default":"./src/styles/recorder.css"},"./components":{"types":"./src/components/index.ts","import":"./dist/components.js"},"./composables":{"types":"./src/composables/index.ts","import":"./dist/composables.js"}},"scripts":{"dev":"vite build --watch","test":"vitest run --config vitest.config.ts","build":"vite build","type-check":"vue-tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef7f14e1-9d3a-458d-bd7c-4c95c967c0f6"}},"_resolved":"/tmp/d13186a0674bf713f4da81de0b0dbc6c/airalogy-aimd-recorder-1.24.3.tgz","_integrity":"sha512-EEl8IALCcDS5DvE0FHMvK73XvEqoGq4R6qlb0ybX9/y2g33VPBO1g1RpiZJ21NlI7Bs973Xy8igGmb82bW+J4A==","repository":{"url":"git+https://github.com/airalogy/airalogy.git","type":"git","directory":"packages/npm/aimd-recorder"},"_npmVersion":"11.16.0","description":"AIMD (Airalogy Markdown) recorder Vue components and UI","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ajv":"^8.12.0","react":"^19.2.4","seqviz":"^3.10.18","mermaid":"^11.15.0","react-dom":"^19.2.4","ajv-formats":"^2.1.1","@types/react":"^19.2.14","@milkdown/kit":"^7.18.0","monaco-editor":"^0.52.2","@types/react-dom":"^19.2.3","@airalogy/aimd-core":"^2.14.0","@airalogy/aimd-editor":"^1.11.0","@airalogy/aimd-renderer":"^2.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.17","sass":"^1.90.0","vite":"^7.1.3","unocss":"^0.58.3","vue-tsc":"^3.0.6","naive-ui":"2.41.0","typescript":"5.8.3","@types/node":"^24.3.0","@vueuse/core":"^13.5.0","@vitejs/plugin-vue":"^6.0.1","vite-tsconfig-paths":"^5.1.4","unplugin-auto-import":"^0.17.3","unplugin-vue-components":"^0.27.4"},"peerDependencies":{"vue":"^3.5.17","naive-ui":"2.41.0","@vueuse/core":"^13.5.0"},"_npmOperationalInternal":{"tmp":"tmp/aimd-recorder_1.24.3_1784682678145_0.7113465119724509","host":"s3://npm-registry-packages-npm-production"}},"1.24.4":{"name":"@airalogy/aimd-recorder","version":"1.24.4","keywords":["aimd","markdown","editor","vue","components"],"license":"Apache-2.0","_id":"@airalogy/aimd-recorder@1.24.4","maintainers":[{"name":"yangzijie","email":"yangzijie@westlake.edu.cn"}],"homepage":"https://github.com/airalogy/airalogy/tree/main/packages/npm/aimd-recorder#readme","bugs":{"url":"https://github.com/airalogy/airalogy/issues"},"dist":{"shasum":"977c30143f968190fcd65d1650a5f278f9417fd7","tarball":"https://registry.npmjs.org/@airalogy/aimd-recorder/-/aimd-recorder-1.24.4.tgz","fileCount":265,"integrity":"sha512-EkCHg0O9V1mja3H3LSBpGqGt2ML237EqTuFUD/nUmNDjlJEtkXk1GRwJAiCxqIPjQ7f3iMMbZFpvQpVdqHauIQ==","signatures":[{"sig":"MEUCIQDfo8/OCk5hmINjDDMkaPHrAUkPT/pcBONTf63UeNUFAwIgaMhhTnC+z53S4ypfNKcVCeaOxFCPiXr8vlEHP4G04Xk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@airalogy%2faimd-recorder@1.24.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24913141},"main":"./dist/index.js","type":"module","_from":"file:airalogy-aimd-recorder-1.24.4.tgz","types":"./src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./dist/index.js"},"./record":{"types":"./src/record/index.ts","import":"./dist/record.js"},"./styles":{"import":"./src/styles/recorder.css","default":"./src/styles/recorder.css"},"./components":{"types":"./src/components/index.ts","import":"./dist/components.js"},"./composables":{"types":"./src/composables/index.ts","import":"./dist/composables.js"}},"scripts":{"dev":"vite build --watch","test":"vitest run --config vitest.config.ts","build":"vite build","type-check":"vue-tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef7f14e1-9d3a-458d-bd7c-4c95c967c0f6"}},"_resolved":"/tmp/a6a1d7ce0e94795a4a3f630d0d3799b3/airalogy-aimd-recorder-1.24.4.tgz","_integrity":"sha512-EkCHg0O9V1mja3H3LSBpGqGt2ML237EqTuFUD/nUmNDjlJEtkXk1GRwJAiCxqIPjQ7f3iMMbZFpvQpVdqHauIQ==","repository":{"url":"git+https://github.com/airalogy/airalogy.git","type":"git","directory":"packages/npm/aimd-recorder"},"_npmVersion":"11.16.0","description":"AIMD (Airalogy Markdown) recorder Vue components and UI","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ajv":"^8.12.0","react":"^19.2.4","seqviz":"^3.10.18","mermaid":"^11.15.0","react-dom":"^19.2.4","ajv-formats":"^2.1.1","@types/react":"^19.2.14","@milkdown/kit":"^7.18.0","monaco-editor":"^0.52.2","@types/react-dom":"^19.2.3","@airalogy/aimd-core":"^2.14.0","@airalogy/aimd-editor":"^1.11.0","@airalogy/aimd-renderer":"^2.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.17","sass":"^1.90.0","vite":"^7.1.3","unocss":"^0.58.3","vue-tsc":"^3.0.6","naive-ui":"2.41.0","typescript":"5.8.3","@types/node":"^24.3.0","@vueuse/core":"^13.5.0","@vitejs/plugin-vue":"^6.0.1","vite-tsconfig-paths":"^5.1.4","unplugin-auto-import":"^0.17.3","unplugin-vue-components":"^0.27.4"},"peerDependencies":{"vue":"^3.5.17","naive-ui":"2.41.0","@vueuse/core":"^13.5.0"},"_npmOperationalInternal":{"tmp":"tmp/aimd-recorder_1.24.4_1784683993042_0.3970562317929305","host":"s3://npm-registry-packages-npm-production"}},"1.24.5":{"name":"@airalogy/aimd-recorder","version":"1.24.5","keywords":["aimd","markdown","editor","vue","components"],"license":"Apache-2.0","_id":"@airalogy/aimd-recorder@1.24.5","maintainers":[{"name":"yangzijie","email":"yangzijie2026@gmail.com"}],"homepage":"https://github.com/airalogy/airalogy/tree/main/packages/npm/aimd-recorder#readme","bugs":{"url":"https://github.com/airalogy/airalogy/issues"},"dist":{"shasum":"c8bcd4b8c96363bca4ec0365f241a6146dd5ab57","tarball":"https://registry.npmjs.org/@airalogy/aimd-recorder/-/aimd-recorder-1.24.5.tgz","fileCount":265,"integrity":"sha512-urYGL/FB3uBCXLKf7YNhrSp+d2IspTsgfc2XliEnJga+sqtxFOo+mcn+RQKL4hmOEqhlfivmdH9bJk2GJtelNA==","signatures":[{"sig":"MEUCIQCdX0BKXYJr3TN30eEYBtOeweCqtgEyIyEPI8g4x0MOlQIgcWYurFS8Pj0pWdtRqsELAbXP07yO1akr+cu7plnpEPU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@airalogy%2faimd-recorder@1.24.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24917665},"main":"./dist/index.js","type":"module","_from":"file:airalogy-aimd-recorder-1.24.5.tgz","types":"./src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./dist/index.js"},"./record":{"types":"./src/record/index.ts","import":"./dist/record.js"},"./styles":{"import":"./src/styles/recorder.css","default":"./src/styles/recorder.css"},"./components":{"types":"./src/components/index.ts","import":"./dist/components.js"},"./composables":{"types":"./src/composables/index.ts","import":"./dist/composables.js"}},"scripts":{"dev":"vite build --watch","test":"vitest run --config vitest.config.ts","build":"vite build","type-check":"vue-tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef7f14e1-9d3a-458d-bd7c-4c95c967c0f6"}},"_resolved":"/tmp/f55bd6e9b9897c62aaac4c0a20f7ce93/airalogy-aimd-recorder-1.24.5.tgz","_integrity":"sha512-urYGL/FB3uBCXLKf7YNhrSp+d2IspTsgfc2XliEnJga+sqtxFOo+mcn+RQKL4hmOEqhlfivmdH9bJk2GJtelNA==","repository":{"url":"git+https://github.com/airalogy/airalogy.git","type":"git","directory":"packages/npm/aimd-recorder"},"_npmVersion":"11.16.0","description":"AIMD (Airalogy Markdown) recorder Vue components and UI","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ajv":"^8.12.0","react":"^19.2.4","seqviz":"^3.10.18","mermaid":"^11.15.0","react-dom":"^19.2.4","ajv-formats":"^2.1.1","@types/react":"^19.2.14","@milkdown/kit":"^7.18.0","monaco-editor":"^0.52.2","@types/react-dom":"^19.2.3","@airalogy/aimd-core":"^2.14.0","@airalogy/aimd-editor":"^1.11.0","@airalogy/aimd-renderer":"^2.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.17","sass":"^1.90.0","vite":"^7.1.3","unocss":"^0.58.3","vue-tsc":"^3.0.6","naive-ui":"2.41.0","typescript":"5.8.3","@types/node":"^24.3.0","@vueuse/core":"^13.5.0","@vitejs/plugin-vue":"^6.0.1","vite-tsconfig-paths":"^5.1.4","unplugin-auto-import":"^0.17.3","unplugin-vue-components":"^0.27.4"},"peerDependencies":{"vue":"^3.5.17","naive-ui":"2.41.0","@vueuse/core":"^13.5.0"},"_npmOperationalInternal":{"tmp":"tmp/aimd-recorder_1.24.5_1784687999770_0.49633643158516016","host":"s3://npm-registry-packages-npm-production"}},"1.25.0":{"name":"@airalogy/aimd-recorder","version":"1.25.0","keywords":["aimd","markdown","editor","vue","components"],"license":"Apache-2.0","_id":"@airalogy/aimd-recorder@1.25.0","maintainers":[{"name":"yangzijie","email":"yangzijie2026@gmail.com"}],"homepage":"https://github.com/airalogy/airalogy/tree/main/packages/npm/aimd-recorder#readme","bugs":{"url":"https://github.com/airalogy/airalogy/issues"},"dist":{"shasum":"de6b4c8b75cf75e432521fe075fe8c88a0a0cc2c","tarball":"https://registry.npmjs.org/@airalogy/aimd-recorder/-/aimd-recorder-1.25.0.tgz","fileCount":271,"integrity":"sha512-CjMB2LomszFLEM+I9fji5txpkDioKzMl3LOw7GcnFqd2NcFJViqqYakjobgG7K6auQZNemk5QT5QgjJsiYLXIg==","signatures":[{"sig":"MEYCIQCBq2aoxExkGQsLjyaTYBpvMZC1r+gEqGv9RYLAj3IIQgIhALJAgVxsxTOsfhVGUZSg72CEvGLXhtWyyOHOhdZvt3Xa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@airalogy%2faimd-recorder@1.25.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24986262},"main":"./dist/index.js","type":"module","_from":"file:airalogy-aimd-recorder-1.25.0.tgz","types":"./src/index.ts","exports":{".":{"types":"./src/index.ts","import":"./dist/index.js"},"./record":{"types":"./src/record/index.ts","import":"./dist/record.js"},"./styles":{"import":"./src/styles/recorder.css","default":"./src/styles/recorder.css"},"./components":{"types":"./src/components/index.ts","import":"./dist/components.js"},"./composables":{"types":"./src/composables/index.ts","import":"./dist/composables.js"}},"scripts":{"dev":"vite build --watch","test":"vitest run --config vitest.config.ts","build":"vite build","type-check":"vue-tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef7f14e1-9d3a-458d-bd7c-4c95c967c0f6"}},"_resolved":"/tmp/f01629e17fd0d8a2b35381e9d1d9cb57/airalogy-aimd-recorder-1.25.0.tgz","_integrity":"sha512-CjMB2LomszFLEM+I9fji5txpkDioKzMl3LOw7GcnFqd2NcFJViqqYakjobgG7K6auQZNemk5QT5QgjJsiYLXIg==","repository":{"url":"git+https://github.com/airalogy/airalogy.git","type":"git","directory":"packages/npm/aimd-recorder"},"_npmVersion":"11.16.0","description":"AIMD (Airalogy Markdown) recorder Vue components and UI","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ajv":"^8.12.0","react":"^19.2.4","seqviz":"^3.10.18","mermaid":"^11.15.0","react-dom":"^19.2.4","ajv-formats":"^2.1.1","@types/react":"^19.2.14","@milkdown/kit":"^7.18.0","monaco-editor":"^0.52.2","@types/react-dom":"^19.2.3","@airalogy/aimd-core":"^2.15.0","@airalogy/aimd-editor":"^1.11.0","@airalogy/aimd-renderer":"^2.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.17","sass":"^1.90.0","vite":"^7.1.3","unocss":"^0.58.3","vue-tsc":"^3.0.6","naive-ui":"2.41.0","typescript":"5.8.3","@types/node":"^24.3.0","@vueuse/core":"^13.5.0","@vitejs/plugin-vue":"^6.0.1","vite-tsconfig-paths":"^5.1.4","unplugin-auto-import":"^0.17.3","unplugin-vue-components":"^0.27.4"},"peerDependencies":{"vue":"^3.5.17","naive-ui":"2.41.0","@vueuse/core":"^13.5.0"},"_npmOperationalInternal":{"tmp":"tmp/aimd-recorder_1.25.0_1784797218044_0.9771581281973949","host":"s3://npm-registry-packages-npm-production"}},"1.25.1":{"name":"@airalogy/aimd-recorder","type":"module","version":"1.25.1","description":"AIMD (Airalogy Markdown) recorder Vue components and UI","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/airalogy/airalogy.git","directory":"packages/npm/aimd-recorder"},"bugs":{"url":"https://github.com/airalogy/airalogy/issues"},"homepage":"https://github.com/airalogy/airalogy/tree/main/packages/npm/aimd-recorder#readme","keywords":["aimd","markdown","editor","vue","components"],"exports":{".":{"types":"./src/index.ts","import":"./dist/index.js"},"./components":{"types":"./src/components/index.ts","import":"./dist/components.js"},"./composables":{"types":"./src/composables/index.ts","import":"./dist/composables.js"},"./record":{"types":"./src/record/index.ts","import":"./dist/record.js"},"./styles":{"import":"./src/styles/recorder.css","default":"./src/styles/recorder.css"}},"main":"./dist/index.js","types":"./src/index.ts","publishConfig":{"access":"public"},"peerDependencies":{"@vueuse/core":"^13.5.0","naive-ui":"2.41.0","vue":"^3.5.17"},"dependencies":{"@milkdown/kit":"^7.18.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","ajv":"^8.12.0","ajv-formats":"^2.1.1","mermaid":"^11.15.0","monaco-editor":"^0.52.2","react":"^19.2.4","react-dom":"^19.2.4","seqviz":"^3.10.18","@airalogy/aimd-editor":"^1.11.0","@airalogy/aimd-renderer":"^2.12.0","@airalogy/aimd-core":"^2.15.0"},"devDependencies":{"@types/node":"^24.3.0","@vitejs/plugin-vue":"^6.0.1","@vueuse/core":"^13.5.0","naive-ui":"2.41.0","sass":"^1.90.0","typescript":"5.8.3","unocss":"^0.58.3","unplugin-auto-import":"^0.17.3","unplugin-vue-components":"^0.27.4","vite":"^7.1.3","vite-tsconfig-paths":"^5.1.4","vue":"^3.5.17","vue-tsc":"^3.0.6"},"scripts":{"type-check":"vue-tsc --noEmit","build":"vite build","dev":"vite build --watch","test":"vitest run --config vitest.config.ts"},"_id":"@airalogy/aimd-recorder@1.25.1","_integrity":"sha512-pPA/0HyrPdqdQ6oFng3la0oyc6otWEM6pQ3xmZ5gMvmnBSX22y7cWJe2IqYLAQMMIpnf2/bj27N6AFQaOIK/aQ==","_resolved":"/tmp/44aecc9e1803105f010c7306ff75f835/airalogy-aimd-recorder-1.25.1.tgz","_from":"file:airalogy-aimd-recorder-1.25.1.tgz","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-pPA/0HyrPdqdQ6oFng3la0oyc6otWEM6pQ3xmZ5gMvmnBSX22y7cWJe2IqYLAQMMIpnf2/bj27N6AFQaOIK/aQ==","shasum":"4ae0080376ba7bf7a10882bf2604c62982085e61","tarball":"https://registry.npmjs.org/@airalogy/aimd-recorder/-/aimd-recorder-1.25.1.tgz","fileCount":271,"unpackedSize":24986531,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@airalogy%2faimd-recorder@1.25.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFoEbN3LQPTwGSBovaysGEfjGhiaV9hEW9D+ycurOJS5AiB1N0aixpVvpW9yTi4otsnfitQ2rxgjQ1zK+QdELoNZ2A=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ef7f14e1-9d3a-458d-bd7c-4c95c967c0f6"}},"directories":{},"maintainers":[{"name":"yangzijie","email":"yangzijie2026@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/aimd-recorder_1.25.1_1784800149536_0.37643272191881905"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-21T02:29:29.915Z","modified":"2026-07-23T09:49:10.124Z","1.14.1":"2026-04-21T02:29:30.310Z","1.15.0":"2026-04-23T07:11:58.090Z","1.16.0":"2026-04-23T17:29:17.654Z","1.17.0":"2026-05-22T01:29:19.367Z","1.18.0":"2026-05-29T14:29:48.528Z","1.19.0":"2026-06-14T02:33:17.293Z","1.19.1":"2026-06-17T13:46:09.067Z","1.19.2":"2026-06-25T02:24:27.613Z","1.20.0":"2026-07-01T13:04:49.560Z","1.21.0":"2026-07-09T01:32:56.662Z","1.22.0":"2026-07-11T00:44:39.226Z","1.23.0":"2026-07-21T02:27:14.466Z","1.24.0":"2026-07-21T10:51:40.250Z","1.24.1":"2026-07-21T11:10:29.390Z","1.24.2":"2026-07-21T11:17:59.772Z","1.24.3":"2026-07-22T01:11:18.407Z","1.24.4":"2026-07-22T01:33:13.272Z","1.24.5":"2026-07-22T02:40:00.013Z","1.25.0":"2026-07-23T09:00:18.324Z","1.25.1":"2026-07-23T09:49:09.819Z"},"bugs":{"url":"https://github.com/airalogy/airalogy/issues"},"license":"Apache-2.0","homepage":"https://github.com/airalogy/airalogy/tree/main/packages/npm/aimd-recorder#readme","keywords":["aimd","markdown","editor","vue","components"],"repository":{"type":"git","url":"git+https://github.com/airalogy/airalogy.git","directory":"packages/npm/aimd-recorder"},"description":"AIMD (Airalogy Markdown) recorder Vue components and UI","maintainers":[{"name":"yangzijie","email":"yangzijie2026@gmail.com"}],"readme":"# @airalogy/aimd-recorder\n\n[![npm version](https://img.shields.io/npm/v/%40airalogy%2Faimd-recorder?logo=npm&color=cb3837)](https://www.npmjs.com/package/@airalogy/aimd-recorder)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/airalogy/airalogy/blob/main/LICENSE)\n\nAIMD（Airalogy Markdown）记录 UI 组件与样式集合，包含协议内联录入组件、组合式 `AimdRecorderEditor` 与可复用题目作答控件。\n\n内置变量控件支持 `CurrentTime`、`UserName`、`AiralogyMarkdown` 和 `DNASequence`。\n`BloodType` 这类官方命名枚举类型会使用从 Python `airalogy.types` 注册表生成的元数据渲染为下拉输入。\n和 `None` 组合的下拉型字段，例如 `bool | None`、`Literal[...] | None`、`BloodType | None`，会显示本地化的 `未填写` 选项，并把该选项保存为 `null`；必填下拉字段不会显示这个空值选项。\n`list[str]`、`list[int]`、`list[float]` 这类标量列表变量会渲染为整行字段，支持可重复添加、可拖拽排序的逐项输入，并额外支持 JSON 数组模式，最终保存为干净的标量数组。\n`EntityRef` 和 `list[EntityRef]` 变量在宿主传入 `entityResolvers` 后会渲染为实体引用控件，让 recorder 用户可以搜索和选择外部数据库或其他 Protocol 中已有的实体，而不需要把每一种实体类型都写死进 AIMD。\nCollector 绑定的 `Observation[T]` 和 `list[Observation[T]]` 变量在宿主传入 `collectorProviders` 后会渲染为数据采集控件，支持单次读取、手动启停轮询、授权钩子、来源归一化、取消和显式手工回退。\n`AimdRecorder` 内建默认折叠的 protocol-aware 当前 Record 搜索控件，可以搜索全部字段或某个指定字段；展开后会 sticky 保持在 recorder 顶部，高亮匹配字段，在匹配字段控件之间跳转，并在原生文本输入控件中尽量选中命中的文本片段。\n`AiralogyMarkdown` 现在会在 recorder 中以横铺内嵌 AIMD/Markdown 字段呈现，可在渲染预览和源码编辑之间切换；源码编辑保留完整顶部工具栏，并继续支持切换到 `所见即所得`，而不是普通 textarea。\n在 recorder/edit 模式下，`ref_var` 如果已经有记录值，会优先以只读内联内容显示该值。\n`var` 和 `var_table` 标签会显示 AIMD 的 `title`，保留规范 id，并且只在 hover 或键盘 focus 时展示 `description` 与 `example`/`examples` 详情；宿主也可以通过 `fieldMeta` 在运行时覆盖这些显示字段。\n前端受限的 `assigner runtime=client` 代码块会在 recorder 中本地执行，用于纯 `var` 计算。\n如果需要一边改 Protocol 结构、一边继续填写字段数据，可以使用 `AimdRecorderEditor`，它会把源码编辑器和 recorder 绑定到同一份 `content` 与 `record`，并在字段 id 从当前 protocol 里消失后单独展示旧数据。\n\n> 协议级 AIMD 语法、assigner 语义与校验规则以 Airalogy 文档为准；`@airalogy/aimd-*` 文档只描述前端 parser、renderer、recorder 如何实现这些规范。\n\n## 安装\n\n```bash\npnpm add @airalogy/aimd-recorder @airalogy/aimd-core\n```\n\n## 快速开始\n\n```vue\n<script setup lang=\"ts\">\nimport { ref } from \"vue\"\nimport {\n  AimdRecorder,\n  createEmptyProtocolRecordData,\n  type AimdProtocolRecordData,\n} from \"@airalogy/aimd-recorder\"\nimport \"@airalogy/aimd-recorder/styles\"\n\nconst content = ref(`# Protocol\n\n样本名：{{var|sample_name: str, title=\"样本名\", description=\"样本的人类可读标签\", examples=[\"S-001\"]}}\n记录者：{{var|operator: UserName}}\n记录时间：{{var|current_time: CurrentTime}}\n血型：{{var|blood_type: BloodType | None}}\n标签：{{var|sample_tags: list[str]}}\n重复数：{{var|replicate_counts: list[int]}}\n温度设置：{{var|temperature: float = 25.0, title=\"温度 (C)\", description=\"环境温度，单位为摄氏度\", examples=[25.0, 37.0]}}\n实验摘要：{{var|summary: AiralogyMarkdown}}\n质粒：{{var|plasmid: DNASequence}}`)\nconst record = ref<AimdProtocolRecordData>(createEmptyProtocolRecordData())\n</script>\n\n<template>\n  <AimdRecorder\n    v-model=\"record\"\n    :content=\"content\"\n    locale=\"zh-CN\"\n    current-user-name=\"张三\"\n  />\n</template>\n```\n\n`AiralogyMarkdown` 字段会渲染一个横铺内嵌的 AIMD/Markdown 区域，可在 `预览` 和 `源码` 之间切换；预览会通过 AIMD renderer 输出 Markdown，并渲染 Mermaid 代码块。源码编辑保留完整顶部工具栏，同时支持切换到 `所见即所得`。即使它写在一行文字中间，recorder 也会把这个字段提升成下一行的块级编辑区，而不是继续当成段内小控件。\n\n`EntityRef` 字段会使用 `entity=\"plasmid\"`、`source=\"lab_plasmid_registry\"` 这类 Protocol metadata 来选择 resolver。resolver map 的 key 可以是 connector id，也可以是 entity namespace。如果 Protocol 声明了 fenced `connectors` 代码块，宿主可以用 `@airalogy/aimd-core/utils` 的 `createAimdEntityResolversFromConnectors()` 生成这个 resolver map；也可以手动提供 resolver：\n\n```vue\n<script setup lang=\"ts\">\nconst content = '来源质粒：{{var|parent_plasmid: EntityRef | None, entity=\"plasmid\", source=\"lab_plasmid_registry\"}}'\n\nconst entityResolvers = {\n  lab_plasmid_registry: {\n    async search(query) {\n      return [\n        {\n          entity: \"plasmid\",\n          source: \"lab_plasmid_registry\",\n          id: \"pUC19\",\n          label: \"pUC19 cloning vector\",\n        },\n      ].filter(item => item.id.toLowerCase().includes(query.toLowerCase()) || item.label.toLowerCase().includes(query.toLowerCase()))\n    },\n  },\n}\n</script>\n\n<template>\n  <AimdRecorder\n    v-model=\"record\"\n    :content=\"content\"\n    :entity-resolvers=\"entityResolvers\"\n  />\n</template>\n```\n\n选择结果会保存为 `{ entity, source, id, label? }` 这样的对象；`list[EntityRef]` 会保存为这些对象组成的数组。`id` 是稳定关联键，`label` 是可选显示缓存，缺失时 recorder 会回退显示 `id`。recorder 不会自己去拉取 AIMD `connectors` descriptor，因此即使使用 `aimd-core` connector helper，网络访问和认证仍由宿主应用控制。\n\n`ResourceRef[T]` 使用独立的宿主 `resourceResolvers` 契约。除了 search/resolve，resolver 还可用 `getAvailability()` 提供批次、容器、余额与设备时段，并用 `prepareOutput()` 准备带客户端稳定 ID 的产出资源载荷。控件本身不会修改库存：\n\n```vue\n<AimdRecorder\n  v-model=\"record\"\n  :content=\"'输入：{{var|source: ResourceRef[\\\"plasmid\\\"], resource_role=\\\"input\\\", container_required=True}}'\"\n  :resource-resolvers=\"resourceResolvers\"\n/>\n```\n\n选择值可以包含 `lot_id`、`container_id`、`quantity`、`unit`、`reservation_id` 和 `booking_id`。必选容器/预约 metadata 会参与正常的 change、blur 与 submit 校验。宿主仍需重新校验资源引用，并原子化保存 Record 与库存事件。\n\nCollector provider 使用同样的宿主绑定边界。Protocol 声明 `kind: data_source` connector、`collectors` 代码块和 `Observation[T]` 字段，宿主按 connector id 注入 provider：\n\n```ts\nconst collectorProviders = {\n  lab_sensor_gateway: {\n    async read({ collector, signal }) {\n      const response = await fetch(`/api/sensors/${collector.channel}`, { signal })\n      return response.json()\n    },\n  },\n}\n```\n\n```vue\n<AimdRecorder\n  v-model=\"record\"\n  :content=\"content\"\n  :collector-providers=\"collectorProviders\"\n  :request-collector-permission=\"requestCollectorPermission\"\n  :collector-record-key=\"recordId\"\n  collector-actor-id=\"user-123\"\n/>\n```\n\nProvider 可以返回裸值，也可以返回 `{ value, observed_at?, unit?, quality?, sequence?, metadata?, device_id? }`。Recorder 会补全 `received_at` 和可信 `source` metadata，再写入归一化的 `Observation`。授权钩子可返回 `false`、`true`/`\"once\"` 或 `\"record\"`；当 `collectorRecordKey` 或 Protocol 内容改变时，当前 Record 授权会被清除。当前运行时支持 `snapshot` 和手动启停的 `polling`；`stream`、自动生命周期和文件化序列属于后续阶段。\n\n数值 `var` 输入会识别 `gt`、`ge`、`lt`、`le`、`multiple_of` 这类 Pydantic 风格约束；这些约束只对 `int`、`integer`、`float`、`number` 类型生效。\nclient assigner 也会用这些约束判断依赖是否就绪，因此依赖的数值字段违反声明边界时，assigner 不会执行。\n\n`DNASequence` 字段会渲染一个专用 DNA 编辑器，支持：\n\n- 默认以 `交互式` 模式进行可视化编辑\n- 单独提供 `原始结构` 模式处理序列原文和结构化精修\n- 可选的顶层序列名称字段，可用于质粒或构建体命名\n- 共享工具栏可导入 FASTA / GenBank 序列文件，并将当前值导出为 GenBank `.gbk` 文件\n- 交互式空状态下可直接粘贴 DNA 文本\n- IUPAC DNA 序列输入\n- 拓扑切换（`linear` / `circular`）\n- GenBank 对齐子集风格的特征编辑\n- 多段位置片段（segments）与每段的 partial 标记\n- `gene`、`product`、`label`、`note` 等限定词行编辑\n\n通过 `locale` 可以切换 recorder 内建标签（`en-US` / `zh-CN`）。\n`AimdProtocolRecorder` 仍保留为已废弃的兼容别名，但新的代码建议直接使用 `AimdRecorder`。\n\n## Record 校验\n\n把 Protocol 解析返回的 Pydantic JSON Schema 传给 Recorder，即可让 Python 模型成为唯一的校验契约：\n\n```vue\n<AimdRecorder\n  ref=\"recorderRef\"\n  v-model=\"record\"\n  :content=\"content\"\n  :validation-schema=\"parseResult.data?.json_schema\"\n/>\n```\n\nSchema 契约同时支持 engine 的 `vars` / `steps` / `checks` 键和兼容用的 `research_variable` / `research_step` / `research_check` 别名，覆盖必填、类型、格式、pattern、枚举、数值边界、数组、对象及内建类型约束。对 Schema 标记为 required 且不可为空的 Recorder 输入，即使内存 Record 中已有该属性，空字符串和空数组仍会判为未填；可为空的属性接受 `null`，也不显示必填标记。Recorder 会先归一化上传文件等结构化值，再执行 Schema 校验。没有传 Schema 时，Recorder 回退到 AIMD 声明：没有默认值的字段视为必填，但类型包含 `None` 或使用 `Optional[...]` 的字段除外；AIMD 或 `fieldMeta` 中显式的 `required` 设置仍会生效。\n\n默认在当前字段 `change` 和 `blur` 时即时校验，修正某个字段不会清除其他错误；可通过 `validationTriggers` 调整。`var_table` 错误使用 `var_table:samples:0:concentration` 这样的精确行列 key，错误展示和聚焦也会落到对应单元格。\n\n`AimdRecorder` 和 `AimdRecorderEditor` 都会通过组件 ref 暴露 `validate()`、`validateField(fieldKey)`、`clearValidation(fieldKey?)` 和 `focusFirstInvalidField()`。提交前使用 `validate()` 作为前端拦截，它返回 `{ valid, issues, fieldState }`；通过后仍应执行服务端 Pydantic 校验。服务端错误可通过现有 `fieldState` 属性合并回填。\n\n## Assigner 拓扑图\n\n使用 `AimdAssignerGraph` 可以直接渲染协议中的 `assigner_graph` 数据，不需要绑定宿主应用自己的 store 或 UI 框架。\n\n```vue\n<script setup lang=\"ts\">\nimport { AimdAssignerGraph } from \"@airalogy/aimd-recorder\"\nimport \"@airalogy/aimd-recorder/styles\"\n\nconst assignerGraph = {\n  nodes: [\n    { name: \"seconds\", type: \"dependent_field\" },\n    { name: \"calculate_duration\", type: \"assigner\" },\n    { name: \"duration\", type: \"assigned_field\" },\n  ],\n  edges: [\n    [\"seconds\", \"calculate_duration\"],\n    [\"calculate_duration\", \"duration\"],\n  ],\n}\n</script>\n\n<template>\n  <AimdAssignerGraph\n    :assigner-graph=\"assignerGraph\"\n    :node-schema-map=\"{ duration: { title: '时长' } }\"\n    height=\"520px\"\n  />\n</template>\n```\n\n## Recorder Editor\n\n当用户需要在同一个界面里同时修改 AIMD Protocol 结构并继续填写 recorder 数据时，使用 `AimdRecorderEditor`。\n\n```vue\n<script setup lang=\"ts\">\nimport { ref } from \"vue\"\nimport {\n  AimdRecorderEditor,\n  createEmptyProtocolRecordData,\n  type AimdProtocolRecordData,\n} from \"@airalogy/aimd-recorder\"\nimport \"@airalogy/aimd-recorder/styles\"\n\nconst content = ref(`# Protocol\n\n样本名：{{var|sample_name: str}}\n温度：{{var|temperature: float}}\n`)\nconst record = ref<AimdProtocolRecordData>(createEmptyProtocolRecordData())\n</script>\n\n<template>\n  <AimdRecorderEditor\n    v-model=\"record\"\n    v-model:content=\"content\"\n    locale=\"zh-CN\"\n    :show-record-data=\"true\"\n    :allow-raw-field-source-editing=\"false\"\n  />\n</template>\n```\n\n这个 editor 会在 AIMD 源码变化时继续保留 recorder 状态，并把 `Recorder`、`Record Data`、`脱离当前 Protocol 的旧数据` 收到右侧同一组 tab 里，避免 AIMD 很长时这些面板被挤到页面底部。默认情况下，左右两列会根据 editor 在当前页面里的位置和浏览器可用高度自动伸展，尽量撑满视口，并在各自面板内部滚动，避免左右两列高度失衡；这个同高滚动行为也会覆盖 recorder 侧的可视化编辑模式。如果宿主仍然希望保留独立的 `Field 结构编辑` 辅助面板，可以显式传 `:show-field-structure=\"true\"`。同时用户可以直接：\n\n- 切换 field kind\n- 修改 field id\n- 修改内联 `var` 的值类型\n- 新增或删除 field\n- 通过拖拽调整 field 源码片段顺序\n\n如果字段被改名或删除，脱离当前 protocol 的旧值会在右侧 `脱离当前 Protocol 的旧数据` tab 里单独显示出来，用户可以再把它们搬到新建 field 里，而不是只能去翻外部 JSON。\n\n对于不理解源码的用户，这个 editor 现在还提供了一个 recorder-aware 的 WYSIWYG 编辑模式。打开 recorder 面板标题栏里的切换后，右侧会直接切到一个可落光标的 AIMD 编辑器，其中 `var`、`var_table`、`step`、`check`、`quiz` 会直接显示成真实的 recorder widget，而不是普通小 chip。用户可以一边继续写标题、列表和普通 Markdown，一边拖动这些渲染后的 field 到任意可落光标的位置；拖动过程中还会出现明确的落点提示，方便更精确地放置。也可以直接通过贴在 field 本体上的 hover / focus 工具条完成编辑、删除和拖动，不需要跳出当前 widget。如果宿主不希望用户在 recorder 侧继续改 raw AIMD，可以设置 `:allow-raw-field-source-editing=\"false\"`，这样字段弹窗里只保留结构化控件。关闭切换后再回到正常 recorder 录入，已有 record 数据会继续保留。\n\n如果宿主不希望跟随浏览器高度自动伸展，可以显式关闭：\n\n```vue\n<AimdRecorderEditor\n  :fit-viewport=\"false\"\n  :editor-min-height=\"640\"\n  :recorder-min-height=\"640\"\n/>\n```\n\n如果宿主应用本身已经控制了可用高度，比如路由级 flex 工作区或左右分栏页面，可以把组件放进一个有界父容器，并同时设置 `:fill-parent=\"true\"` 和 `:fit-viewport=\"false\"`。这种模式下 `AimdRecorderEditor` 会填满父容器，而不是重新测量浏览器视口；源码编辑器和 recorder 侧都会在自己的面板内部滚动。\n\n```vue\n<section class=\"workspace-pane\">\n  <AimdRecorderEditor\n    v-model=\"record\"\n    v-model:content=\"content\"\n    :fill-parent=\"true\"\n    :fit-viewport=\"false\"\n  />\n</section>\n```\n\n`record` 数据结构：\n\n```json\n{\n  \"var\": {},\n  \"step\": {},\n  \"check\": {},\n  \"quiz\": {}\n}\n```\n\nclient assigner 示例：\n\n````aimd\nWater: {{var|water_volume_ml: float}}\nLemon: {{var|lemon_juice_ml: float}}\nTotal: {{var|total_liquid_ml: float}}\n\n```assigner runtime=client\nassigner(\n  {\n    mode: \"auto\",\n    dependent_fields: [\"water_volume_ml\", \"lemon_juice_ml\"],\n    assigned_fields: [\"total_liquid_ml\"],\n  },\n  function calculate_total_liquid_ml({ water_volume_ml, lemon_juice_ml }) {\n    return {\n      total_liquid_ml: Math.round((water_volume_ml + lemon_juice_ml) * 100) / 100,\n    };\n  }\n);\n```\n````\n\n如果使用 `mode: \"manual\"`，组件会通过 Vue ref 暴露显式触发方法：\n\n```ts\nrecorderRef.value?.runClientAssigner(\"calculate_total_liquid_ml\")\nrecorderRef.value?.runManualClientAssigners()\n```\n\n## 宿主字段适配器\n\n```ts\nimport { h } from \"vue\"\n\nconst fieldAdapters = {\n  step: ({ node, defaultVNode }) =>\n    h(\"step-card\", {\n      \"step-id\": node.id,\n      \"step-number\": node.step,\n      title: node.title || node.id,\n      level: String(node.level),\n    }, () => [defaultVNode]),\n}\n```\n\n当宿主应用需要替换或包裹内建字段 UI，但仍希望继续复用 AIMD 解析和 recorder record-state 管理时，可以把 `fieldAdapters` 传给 `AimdRecorder`。\n\n如果宿主应用需要的是某个具体类型的行为扩展，而不是整体替换某类字段 UI，则应该使用 `typePlugins`。type plugin 可以为单个 AIMD 类型定义初始值、归一化、显示/解析钩子，甚至完整的专用 widget。\n\n内建的 `AiralogyMarkdown` 字段也是沿用这条扩展路径实现的，因此宿主应用如果需要不同的预览/源码工作流，仍然可以覆盖它。\n\n参见：\n\n- `docs/aimd/zh/packages/type-plugins.md`\n\n### 仅题目控件\n\n```vue\n<script setup lang=\"ts\">\nimport { ref } from \"vue\"\nimport { AimdQuizRecorder } from \"@airalogy/aimd-recorder\"\nimport \"@airalogy/aimd-recorder/styles\"\n\nconst answer = ref(\"\")\nconst quiz = {\n  id: \"quiz_single_1\",\n  type: \"choice\",\n  mode: \"single\",\n  stem: \"请选择一个选项\",\n  options: [\n    { key: \"A\", text: \"选项 A\" },\n    { key: \"B\", text: \"选项 B\" },\n  ],\n}\n</script>\n\n<template>\n  <AimdQuizRecorder v-model=\"answer\" :quiz=\"quiz\" locale=\"zh-CN\" />\n</template>\n```\n\n如果某个 choice 选项定义了 `followups`，recorder 会在该选项被选中后显示这些补充输入。对于这类题目，`v-model` 使用 `{ selected, followups }`；没有 followups 的 choice 题仍保持原来的字符串或字符串数组答案格式。\n\n`AimdQuizRecorder` 也支持 `scale` 量表题。对于可确定性自动评分的量表，既可以继续传外部 `grade`，也可以通过 `scaleGradeDisplayMode=\"completed\"` 或 `scaleGradeDisplayMode=\"submitted\"` 控制本地总分和分组结果何时显示。\n\n## 文档\n\n- EN: <https://airalogy.github.io/airalogy/aimd/en/packages/aimd-recorder>\n- 中文: <https://airalogy.github.io/airalogy/aimd/zh/packages/aimd-recorder>\n- 文档源码：`docs/aimd/en/packages/aimd-recorder.md`、`docs/aimd/zh/packages/aimd-recorder.md`\n","readmeFilename":"README.zh-CN.md"}