{"_id":"@duke-dsh-plugins/dsh-archive-manager","_rev":"8-e9a9e00d45aec2f099147112771b851b","name":"@duke-dsh-plugins/dsh-archive-manager","dist-tags":{"latest":"1.5.0"},"versions":{"1.3.1":{"name":"@duke-dsh-plugins/dsh-archive-manager","version":"1.3.1","keywords":["dsh","deepseek-harness","plugin","session","archive"],"license":"MIT","_id":"@duke-dsh-plugins/dsh-archive-manager@1.3.1","maintainers":[{"name":"dukebywwh","email":"wwhbygx@sina.com"}],"homepage":"https://github.com/MoonlitDropOfBlood/dsh-archive-manager","bugs":{"url":"https://github.com/MoonlitDropOfBlood/dsh-archive-manager/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"platform":"web"}},"dist":{"shasum":"9b5ea15c5ca3597d03037c6e30810ffdad539a9a","tarball":"https://registry.npmjs.org/@duke-dsh-plugins/dsh-archive-manager/-/dsh-archive-manager-1.3.1.tgz","fileCount":7,"integrity":"sha512-CYH6fHJC+ssdAj9SQjiFRSvHw9EibWeKUl+RSMxIYpW6w1JOLxcB5FJCkrbMhism1OhrNyl+8Bm/vKzTd1EDDQ==","signatures":[{"sig":"MEYCIQDW7DEFqiOied4hEL7c51pM4+bECQWk0w47MOAoYixcEAIhAPm3j9tFhGglzFzIo2JxXXQFu2x+GZzcpBUZCRd2MzRT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53822},"main":"index.js","type":"module","exports":{".":"./index.js","./client":"./client.js","./typert":"./typert.host.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"fcfe9b9abb0fc74cc3cebad19b911db03ae8c2fb","scripts":{"check":"node --check index.js && node --check client.js && node --check typert.host.js"},"_npmUser":{"name":"dukebywwh","email":"wwhbygx@sina.com"},"repository":{"url":"git+https://github.com/MoonlitDropOfBlood/dsh-archive-manager.git","type":"git"},"_npmVersion":"11.17.0","description":"Archive manager for DeepSeek Harness: group archived sessions by project, newest-first, with search, restore and delete.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^4.4.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-storage-domain":"^0.1.0-rc.6","@deepseek-ai/dsh-typert-protocol":"^0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-archive-manager_1.3.1_1787440119174_0.6633514972259626","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@duke-dsh-plugins/dsh-archive-manager","version":"1.3.2","keywords":["dsh","deepseek-harness","plugin","session","archive"],"license":"MIT","_id":"@duke-dsh-plugins/dsh-archive-manager@1.3.2","maintainers":[{"name":"dukebywwh","email":"wwhbygx@sina.com"}],"homepage":"https://github.com/MoonlitDropOfBlood/dsh-archive-manager","bugs":{"url":"https://github.com/MoonlitDropOfBlood/dsh-archive-manager/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"platform":"web"}},"dist":{"shasum":"290190df55ac50d9bccf167112c287071f962a01","tarball":"https://registry.npmjs.org/@duke-dsh-plugins/dsh-archive-manager/-/dsh-archive-manager-1.3.2.tgz","fileCount":7,"integrity":"sha512-vR/BoL69GakQt6eU/JmsYoKI+SbPDfQZ7Saccv1XxzoIGMOSnNAAy+igqPznuPo6YvXQArUpHvpWInIyrcHQ4A==","signatures":[{"sig":"MEUCIGTSVtlAzbyj1+8K20O179mG8hpl3NMkC/hFd4wZ2/XmAiEAzFMnNuJF+mSrnvuXNNrTipuY7Tw13K5gVPRe7vYSicY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@duke-dsh-plugins%2fdsh-archive-manager@1.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53564},"main":"index.js","type":"module","exports":{".":"./index.js","./client":"./client.js","./typert":"./typert.host.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"d93810ebaffa56f00f2b64714baeee006a4bbd34","scripts":{"check":"node --check index.js && node --check client.js && node --check typert.host.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6a8a77ac-34fd-4eaa-8f89-e589a957680f"}},"repository":{"url":"git+https://github.com/MoonlitDropOfBlood/dsh-archive-manager.git","type":"git"},"_npmVersion":"11.17.0","description":"Archive manager for DeepSeek Harness: group archived sessions by project, newest-first, with search, restore and delete.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-storage-domain":"^0.1.0-rc.6","@deepseek-ai/dsh-typert-protocol":"^0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-archive-manager_1.3.2_1787442824472_0.04069101074310777","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"@duke-dsh-plugins/dsh-archive-manager","version":"1.3.3","keywords":["dsh","deepseek-harness","plugin","session","archive"],"license":"MIT","_id":"@duke-dsh-plugins/dsh-archive-manager@1.3.3","maintainers":[{"name":"dukebywwh","email":"wwhbygx@sina.com"}],"homepage":"https://github.com/MoonlitDropOfBlood/dsh-archive-manager","bugs":{"url":"https://github.com/MoonlitDropOfBlood/dsh-archive-manager/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"platform":"web"}},"dist":{"shasum":"9ab8a74c8b76d4f62e23c9a325e1c28e69e6db1c","tarball":"https://registry.npmjs.org/@duke-dsh-plugins/dsh-archive-manager/-/dsh-archive-manager-1.3.3.tgz","fileCount":7,"integrity":"sha512-l2Qj5jixdgWcKtmgjM26UQfzWs4JRYKSE/7uQDyrl8W6BErAe08g8oFZL+wMWYBZ7wupfhp9q5rjzht/cbKoyg==","signatures":[{"sig":"MEYCIQCPVFyWMqtMpuoW2JsaT9nd09cDovUZ3Eed30AANJKrBAIhAL7z10BVGZmYdS9AO7+UL0f7I7sf7TonFmWkFEv9Mi63","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@duke-dsh-plugins%2fdsh-archive-manager@1.3.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53582},"main":"index.js","type":"module","exports":{".":"./index.js","./client":"./client.js","./typert":"./typert.host.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"cf427f5da24773a9596a204b04bd82849175a881","scripts":{"check":"node --check index.js && node --check client.js && node --check typert.host.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6a8a77ac-34fd-4eaa-8f89-e589a957680f"}},"repository":{"url":"git+https://github.com/MoonlitDropOfBlood/dsh-archive-manager.git","type":"git"},"_npmVersion":"11.17.0","description":"Archive manager for DeepSeek Harness: group archived sessions by project, newest-first, with search, restore and delete.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-storage-domain":"^0.1.0-rc.6","@deepseek-ai/dsh-typert-protocol":"^0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-archive-manager_1.3.3_1787444001024_0.4085235564660983","host":"s3://npm-registry-packages-npm-production"}},"1.3.4":{"name":"@duke-dsh-plugins/dsh-archive-manager","version":"1.3.4","keywords":["dsh","deepseek-harness","plugin","session","archive"],"license":"MIT","_id":"@duke-dsh-plugins/dsh-archive-manager@1.3.4","maintainers":[{"name":"dukebywwh","email":"wwhbygx@sina.com"}],"homepage":"https://github.com/MoonlitDropOfBlood/dsh-archive-manager","bugs":{"url":"https://github.com/MoonlitDropOfBlood/dsh-archive-manager/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"platform":"web"}},"dist":{"shasum":"146b31f04ea5eb715641e801094438f7202abc71","tarball":"https://registry.npmjs.org/@duke-dsh-plugins/dsh-archive-manager/-/dsh-archive-manager-1.3.4.tgz","fileCount":7,"integrity":"sha512-4mBAlpgskPztuuIuUTBVudbpyTaT4HiE7RccW70XeYjKPrukxswGJuUlfcJ/Q2s7hsgxtde6VXu6h1n1+ZRBJw==","signatures":[{"sig":"MEUCIESzmgfAirA1n1cjoqgDakity0sJ2OwWpQ+8Pn4VEMR/AiEA91bPon0oSzedOYAnzqHHzlgk/wzEJQcA5fxURGICsGc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@duke-dsh-plugins%2fdsh-archive-manager@1.3.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53600},"main":"index.js","type":"module","exports":{".":"./index.js","./client":"./client.js","./typert":"./typert.host.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"891d2b78c1cca04d00b91edc57bb9d689d7afe54","scripts":{"check":"node --check index.js && node --check client.js && node --check typert.host.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6a8a77ac-34fd-4eaa-8f89-e589a957680f"}},"repository":{"url":"git+https://github.com/MoonlitDropOfBlood/dsh-archive-manager.git","type":"git"},"_npmVersion":"11.17.0","description":"Archive manager for DeepSeek Harness: group archived sessions by project, newest-first, with search, restore and delete.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-storage-domain":"^0.1.0-rc.6","@deepseek-ai/dsh-typert-protocol":"^0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-archive-manager_1.3.4_1787444310677_0.7663538644313193","host":"s3://npm-registry-packages-npm-production"}},"1.3.5":{"name":"@duke-dsh-plugins/dsh-archive-manager","version":"1.3.5","keywords":["dsh","deepseek-harness","plugin","session","archive"],"license":"MIT","_id":"@duke-dsh-plugins/dsh-archive-manager@1.3.5","maintainers":[{"name":"dukebywwh","email":"wwhbygx@sina.com"}],"homepage":"https://github.com/MoonlitDropOfBlood/dsh-archive-manager","bugs":{"url":"https://github.com/MoonlitDropOfBlood/dsh-archive-manager/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"platform":"web"}},"dist":{"shasum":"7bc31673a02ae67645fab6fd93dbc3a372891d2b","tarball":"https://registry.npmjs.org/@duke-dsh-plugins/dsh-archive-manager/-/dsh-archive-manager-1.3.5.tgz","fileCount":7,"integrity":"sha512-KENVECAeTmxn2stVqjLiXCIrNunGeb6Hz13bq6webLjlxGjnx/JasYwowGceJtOQhQRApqc5gZ6Sbe14hikJng==","signatures":[{"sig":"MEUCIQCPQgkb5EbA/El5ALTNHQDRPUbRIfJ6UFfXePmV7zEG+QIgPLEdOf1X/rKYkuQvQadUyhTvDKZk9/oXBOGQZnjNXe8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56002},"main":"index.js","type":"module","exports":{".":"./index.js","./client":"./client.js","./typert":"./typert.host.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"2c8a63c20e1389e9174543de881741962f6ca885","scripts":{"check":"node --check index.js && node --check client.js && node --check typert.host.js"},"_npmUser":{"name":"dukebywwh","email":"wwhbygx@sina.com"},"repository":{"url":"git+https://github.com/MoonlitDropOfBlood/dsh-archive-manager.git","type":"git"},"_npmVersion":"11.17.0","description":"Archive manager for DeepSeek Harness: group archived sessions by project, newest-first, with search, restore and delete.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^4.4.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-storage-domain":"^0.1.0-rc.6","@deepseek-ai/dsh-typert-protocol":"^0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-archive-manager_1.3.5_1787759932604_0.7444183654823804","host":"s3://npm-registry-packages-npm-production"}},"1.3.6":{"name":"@duke-dsh-plugins/dsh-archive-manager","version":"1.3.6","keywords":["dsh","deepseek-harness","plugin","session","archive"],"license":"MIT","_id":"@duke-dsh-plugins/dsh-archive-manager@1.3.6","maintainers":[{"name":"dukebywwh","email":"wwhbygx@sina.com"}],"homepage":"https://github.com/MoonlitDropOfBlood/dsh-archive-manager","bugs":{"url":"https://github.com/MoonlitDropOfBlood/dsh-archive-manager/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"platform":"web"}},"dist":{"shasum":"78466c6f5243054c4a3eadfcf225e9b9fe9bf358","tarball":"https://registry.npmjs.org/@duke-dsh-plugins/dsh-archive-manager/-/dsh-archive-manager-1.3.6.tgz","fileCount":7,"integrity":"sha512-fjQ3x+2S1H+6Jrf9/y0JN7E232qmkAs0ERmk8weWjdPhuS4EOMEjlNmXa58kiepD6XKPgIOW8AWn2C2JBBHaYA==","signatures":[{"sig":"MEQCIELDAwTXpHxZcyrJt8SJl7X0cA6Ia0fEltjyqALvmxz+AiAxgEuguV23HftGXGel/T80CKp5ng+WSS1E79fTQq+hKg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@duke-dsh-plugins%2fdsh-archive-manager@1.3.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55689},"main":"index.js","type":"module","exports":{".":"./index.js","./client":"./client.js","./typert":"./typert.host.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"409f90633d22a28bd92e91563f123b42a32bdc76","scripts":{"check":"node --check index.js && node --check client.js && node --check typert.host.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6a8a77ac-34fd-4eaa-8f89-e589a957680f"}},"repository":{"url":"git+https://github.com/MoonlitDropOfBlood/dsh-archive-manager.git","type":"git"},"_npmVersion":"11.17.0","description":"Archive manager for DeepSeek Harness: group archived sessions by project, newest-first, with search, restore and delete.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-storage-domain":"^0.1.0-rc.6","@deepseek-ai/dsh-typert-protocol":"^0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-archive-manager_1.3.6_1788013791960_0.5556629500082984","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@duke-dsh-plugins/dsh-archive-manager","version":"1.4.0","keywords":["dsh","deepseek-harness","plugin","session","archive"],"license":"MIT","_id":"@duke-dsh-plugins/dsh-archive-manager@1.4.0","maintainers":[{"name":"dukebywwh","email":"wwhbygx@sina.com"}],"homepage":"https://github.com/MoonlitDropOfBlood/dsh-archive-manager","bugs":{"url":"https://github.com/MoonlitDropOfBlood/dsh-archive-manager/issues"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"platform":"web"}},"dist":{"shasum":"78eecaa507b213a739b98381e96466233fee6639","tarball":"https://registry.npmjs.org/@duke-dsh-plugins/dsh-archive-manager/-/dsh-archive-manager-1.4.0.tgz","fileCount":7,"integrity":"sha512-jsYrDMMTRX0Ay4KKKuumCX41LsOgWkTer79s91PvF7OD8LFeCwcbmh1nEn3cybuFPzFVChbVcWtcKOSStImdOQ==","signatures":[{"sig":"MEQCIBohwyPAGUSTz1oIbw0NTWqNOFvNv86r7tvvzcyLyA7uAiBx252gOCTgrmEOzX9kue0kM48b3p0MqgkdnURRcvoPvA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCrENWBP0OueltVj9tQymPSrV+rMnil5rDKgpD8HAy53wIhAPIZdk7QeJln5rc1cOJo8xkUXJmN/jRZdh9xmV7T5PxI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@duke-dsh-plugins%2fdsh-archive-manager@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":78881},"main":"index.js","type":"module","exports":{".":"./index.js","./client":"./client.js","./typert":"./typert.host.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"ca217c3944e3056d0bc4d06c7e0f6f91c1ec164f","scripts":{"check":"node --check index.js && node --check client.js && node --check typert.host.js","verify":"node verify-constructor.mjs && node verify-typert-compat.mjs && node verify-client-apply.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6a8a77ac-34fd-4eaa-8f89-e589a957680f"}},"repository":{"url":"git+https://github.com/MoonlitDropOfBlood/dsh-archive-manager.git","type":"git"},"_npmVersion":"11.19.0","description":"Archive manager for DeepSeek Harness: DSH < 0.1.7 gets the grouped search/restore/delete panel; DSH >= 0.1.7 adds the delete action missing from the built-in archive management.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"zod":"^4.4.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-storage-domain":"^0.1.0-rc.6","@deepseek-ai/dsh-typert-protocol":"^0.1.0-rc.6"},"_npmOperationalInternal":{"tmp":"tmp/dsh-archive-manager_1.4.0_1790309209725_0.8774588156972836","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"_id":"@duke-dsh-plugins/dsh-archive-manager@1.5.0","dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"platform":"web"}},"bugs":{"url":"https://github.com/MoonlitDropOfBlood/dsh-archive-manager/issues"},"dist":{"shasum":"f5ad347003521d227e70291d471d93241ec9f16f","tarball":"https://registry.npmjs.org/@duke-dsh-plugins/dsh-archive-manager/-/dsh-archive-manager-1.5.0.tgz","fileCount":7,"integrity":"sha512-4UPQD8Bm2tzFLnSwV9SmbOncTcZYjfwT7lNUAIrIr+ulXHAht2CRfTn4l8ge2iOnfN88DFLxvZfhRXZe701X9A==","signatures":[{"sig":"MEQCIB8MGgk1smj+axOUnUIIgePGTuwx5AVs7yiCN5UgH9WuAiBHOAVBo9u4zAZU/udPCT1gnrBRXjqgh/nDy/D75Kg8QA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCUA7+U6/0NZWHB1U5A5Lh4JqaGzHz0+Jzs8fp0oLwGCwIgf8ZsqeFApEI3uFGXEkLoju8vEivPbICpCVHZMUM4dSA="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@duke-dsh-plugins%2fdsh-archive-manager@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":82564},"main":"index.js","name":"@duke-dsh-plugins/dsh-archive-manager","type":"module","exports":{".":"./index.js","./client":"./client.js","./typert":"./typert.host.js","./package.json":"./package.json","./cordis.patch.yml":"./cordis.patch.yml"},"gitHead":"d50d2ce91a3cd2ef934b68c1db120c0818e0e1ee","license":"MIT","scripts":{"check":"node --check index.js && node --check client.js && node --check typert.host.js","verify":"node verify-constructor.mjs && node verify-typert-compat.mjs && node verify-client-apply.mjs && node verify-real-install.mjs"},"version":"1.5.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6a8a77ac-34fd-4eaa-8f89-e589a957680f"}},"homepage":"https://github.com/MoonlitDropOfBlood/dsh-archive-manager","keywords":["dsh","deepseek-harness","plugin","session","archive"],"repository":{"url":"git+https://github.com/MoonlitDropOfBlood/dsh-archive-manager.git","type":"git"},"_npmVersion":"11.19.0","description":"Archive manager for DeepSeek Harness: DSH < 0.1.7 gets the grouped search/restore/delete panel; DSH >= 0.1.7 adds the delete action missing from the built-in archive management.","directories":{},"maintainers":[{"name":"dukebywwh","email":"wwhbygx@sina.com"}],"_nodeVersion":"24.21.0","dependencies":{"zod":"^4.4.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-storage-domain":"^0.1.0-rc.6 || ^0.2.0-rc.1","@deepseek-ai/dsh-typert-protocol":"^0.1.0-rc.6 || ^0.2.0-rc.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-archive-manager_1.5.0_1790614960270_0.324069556762969"}}},"time":{"created":"2026-08-22T23:08:38.963Z","modified":"2026-09-28T17:02:40.728Z","1.3.1":"2026-08-22T23:08:39.313Z","1.3.2":"2026-08-22T23:53:44.619Z","1.3.3":"2026-08-23T00:13:21.165Z","1.3.4":"2026-08-23T00:18:30.846Z","1.3.5":"2026-08-26T15:58:52.748Z","1.3.6":"2026-08-29T14:29:52.112Z","1.4.0":"2026-09-25T04:06:49.813Z","1.5.0":"2026-09-28T17:02:40.368Z"},"bugs":{"url":"https://github.com/MoonlitDropOfBlood/dsh-archive-manager/issues"},"license":"MIT","homepage":"https://github.com/MoonlitDropOfBlood/dsh-archive-manager","keywords":["dsh","deepseek-harness","plugin","session","archive"],"repository":{"url":"git+https://github.com/MoonlitDropOfBlood/dsh-archive-manager.git","type":"git"},"description":"Archive manager for DeepSeek Harness: DSH < 0.1.7 gets the grouped search/restore/delete panel; DSH >= 0.1.7 adds the delete action missing from the built-in archive management.","maintainers":[{"name":"dukebywwh","email":"wwhbygx@sina.com"}],"readme":"<p align=\"center\">\n  <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"120\" height=\"120\" viewBox=\"0 0 14 14\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.1\" stroke-linecap=\"round\" stroke-linejoin=\"round\" color=\"#4D6BFE\"><rect x=\"1.5\" y=\"2\" width=\"11\" height=\"3.5\" rx=\"0.8\"/><path d=\"M2.5 5.5v5a1 1 0 0 0 1 1h7a1 1 0 0 0 1-1v-5\"/><path d=\"M5.5 8h3\"/></svg>\n</p>\n\n<h3 align=\"center\">DeepSeek Harness 归档管理插件</h3>\n\n<p align=\"center\">\n  <img src=\"https://img.shields.io/badge/DSH-Plugin-4D6BFE?style=flat\" alt=\"DSH plugin\">\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/badge/license-MIT-2EA44F?style=flat\" alt=\"MIT License\"></a>\n  <img src=\"https://img.shields.io/badge/Web%20UI-Yes-22C55E?style=flat\" alt=\"Web UI\">\n</p>\n\n<p align=\"center\"><sub>中文</sub></p>\n\n---\n\n为 [DeepSeek Harness（DSH）](https://github.com/deepseek-ai/deepseek-harness) Web UI 打造的**归档管理**插件：把已归档的会话重新变得可见、可管理。\n\n归档后消失在侧栏的会话，在这里统一呈现——**按项目分组、按更新时间倒序、支持搜索**，并且每个归档都能**一键还原**或**永久删除**。\n\n> **版本适配（自动切换，无需配置）**\n> - **DSH < 0.1.7**：完整归档管理面板（侧栏底部\"归档\"按钮 → 分组列表 / 搜索 / 还原 / 删除）。\n> - **DSH ≥ 0.1.7**：DSH 自带归档管理（侧栏筛选\"仅显示已归档\"、行内取消归档），本插件**只补上它缺少的删除功能**——归档会话的 \"…\" 菜单里多一行\"删除会话…\"、行尾悬停多一个 🗑 按钮，点击弹出永久删除二次确认框；不再显示本插件自己的面板按钮。\n> - 识别方式是**特性检测**（0.1.7 新增的两个行操作槽位是否声明），不是版本号，因此任何中间版本都会落到正确的一侧。\n> - **支持 DSH 0.1.x 与 0.2.x**。0.2.0 起 DSH 会校验插件声明的 `@deepseek-ai/dsh*` peer 版本范围，不匹配就**整个 bundle 静默跳过**（插件直接消失，控制台只多一行 `skipping profile bundle ...`）；v1.5.0 已放行 0.2.x 并同时保留 0.1.x。\n\n## 功能\n\n| 功能 | 说明 |\n|---|---|\n| 📂 按项目分组 | 归档会话按工作区（项目）分组，含\"未分组\"桶 |\n| ⏱ 更新时间倒序 | 每个项目组内按最新更新时间从新到旧 |\n| 🔍 搜索 | 按会话标题 / 项目名实时过滤 |\n| ♻️ 还原 | 从归档集合移除，会话回到侧栏项目原位 |\n| 🗑️ 删除 | 永久删除会话日志 + 移除归档记录；二次确认；运行中的智能体会拦截 |\n| 🧹 无效记录清理 | \"日志已不存在\"的残留归档记录单独分组，可一键清理 |\n| 👻 已删会话提示 | 已删除但仍驻留内存的会话自动隐藏，提示重启后彻底清除 |\n| 🌗 主题适配 | 全部使用 DSH 设计 token，明暗主题自动跟随 |\n| 🖥 跨平台 | Host 半只用 Node.js `fs` API，Windows / macOS / Linux 均可运行 |\n\n## 安装\n\n### 标准安装（推荐）\n\n本插件是**标准 DSH bundle**：`package.json` 声明 `dsh.bundle.patch`，包内自带 `cordis.patch.yml`，用官方 `dsh plugin` 命令安装：\n\n```bash\n# 本地开发：pnpm 软链到本仓库，改代码即生效（无需重新复制）\ndsh plugin --profile web add /path/to/dsh-archive-manager\n\n# 正式发布：从 GitHub Release tarball 安装\ndsh plugin --profile web add https://github.com/MoonlitDropOfBlood/dsh-archive-manager/releases/download/v1.3.0/dsh-archive-manager-1.3.0.tgz\n```\n\n重启 DSH 后生效：**DSH < 0.1.7** 会在侧栏底部（Cordis Plugin 下方、设置上方）出现\"归档\"按钮；**DSH ≥ 0.1.7** 则在归档会话行上出现删除入口（见\"使用\"）。\n\n> `dsh plugin add` 把插件装成 profile 的 npm 依赖并追加到 `dsh.profile.bundles`，启动时 DSH 自动应用包内的 `cordis.patch.yml` 挂载插件。卸载：`dsh plugin --profile web remove dsh-archive-manager`。\n\n## 使用\n\n**DSH < 0.1.7：**\n\n1. 点侧栏底部的 **🗂 归档** 按钮（带归档数量）。\n2. 面板按项目列出所有归档会话：\n   - **还原**：会话回到侧栏对应项目下。\n   - **删除**：点一下变\"确认删除?\"，再点一次才真正删除（永久，不可恢复）。\n   - **无效的归档记录**：日志已不存在的残留，点删除清理记录。\n3. 顶部搜索框可实时过滤。\n\n**DSH ≥ 0.1.7（自带归档管理，本插件只加删除）：**\n\n1. 侧栏工作区筛选 **仅显示已归档**（DSH 自带功能）。\n2. 归档会话行上任选其一发起删除：\n   - 行尾悬停的 **🗑 按钮**；\n   - \"…\" 菜单里的 **删除会话…**（危险红行，位于取消归档之后）。\n3. 弹出确认框后点 **永久删除**；运行中的智能体会被拦截，失败原因显示在框内；已删除但驻留内存的会话会提示重启后清除。\n\n## 工作原理\n\n```\nDSH Web UI\n  └─ client.js (window.__ModuleLoader__.load bundle)\n       └─ ctx.remote.archiveManager.{restore|delete|state}   ← Remote 调用\n            └─ index.js (ArchiveManagerService, TypertRemoteService)\n                 ├─ restore: workspaceRegistry.setState(移除归档) → 侧栏复原\n                 ├─ delete : 拒绝 running agent → fs.rm 删日志（跨平台）→ 移除归档\n                 └─ state  : 检测\"live 但日志已删\"的 ghost 会话\n```\n\n## 目录结构\n\n```\ndsh-archive-manager/\n├── index.js            # Host 半：ArchiveManagerService（Remote 服务）\n├── client.js           # Client 半：归档管理 UI bundle\n├── typert.host.js      # Typert Host manifest（Remote 方法描述）\n├── cordis.patch.yml    # dsh bundle patch（挂载行）\n├── verify-*.mjs        # 四个验证脚本（构造 / typert 线上契约 / client apply / 真实安装）\n├── scripts/            # check-profile-bundle.mjs：DSH 会不会跳过本插件的自检\n├── .github/workflows/  # GitHub Actions 发布\n├── AGENTS.md           # 面向 AI agent 的开发指南（含踩坑）\n└── LICENSE             # MIT\n```\n\n## 开发\n\n```bash\nnpm run check                    # node --check index.js client.js typert.host.js\nnpm run verify                   # 四个验证脚本：构造 / 双版本 typert 线上契约 / client apply 冒烟 / 真实 DSH 安装\nnode scripts/check-profile-bundle.mjs --sandbox   # 用真实 dsh-app-boot 确认本插件不会被跳过\ndsh plugin --profile web add /path/to/dsh-archive-manager   # 安装/重装到本机 DSH profile\n```\n\n`verify-typert-compat.mjs` 会用**真实 DSH 安装**里的 `validateTypertManifest` 与 `TypertRegistry` 校验本插件的线格式（同时覆盖 0.1.5 与 0.1.7 两套规则）：默认探测本机 DSH 安装与 `.tmppkg/v017/`（npm 拉取的 0.1.7 包），也可用 `DSH_INSTALL_015` / `DSH_INSTALL_017` 环境变量指定。\n\n`verify-real-install.mjs` 补的是另一个洞——前三个脚本跑在仓库自带的旧版依赖上，在\"根本不加载插件\"的 DSH 上也会全绿。它直接拿本机 DSH 安装的 `dsh-app-boot.evaluatePluginCompatibility` 跑 0.2.0 的 peer 闸门、断言 0.1.5/0.1.7/当前运行时三条版本线都满足、把 `index.js` 重新绑定到该安装的 cordis/typert-protocol 上构造服务，并在 0.1.x 与 0.2.x 两种磁盘布局上各真删一次会话。\n\n`scripts/check-profile-bundle.mjs --sandbox` 会建一个临时 profile、用软链把**本工作树**挂进去，再调用真实 dsh-app-boot 的 profile 加载器，直接回答\"dsh 会不会跳过我\"。它不碰任何 DSH home，所以随时可跑。\n\n详见 [AGENTS.md](AGENTS.md)——记录了 DSH 正式插件（Host/Client/Typert 三件套）的完整机制和踩坑。\n\n## License\n\n本项目遵循 [MIT License](LICENSE)。\n\n> 本项目是基于 DeepSeek Harness 构建的社区插件，并非 DeepSeek 官方产品。\n","readmeFilename":"README.md"}