{"_id":"@bernierllc/chat-agent-persona-manager","_rev":"7-a697b57c681f185cf77a8958cbead93b","name":"@bernierllc/chat-agent-persona-manager","dist-tags":{"latest":"1.4.0"},"versions":{"1.0.0":{"name":"@bernierllc/chat-agent-persona-manager","version":"1.0.0","keywords":["persona","chat-agent","configuration","management","baseline-personas","custom-personas"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/chat-agent-persona-manager@1.0.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"0736e1ed88698d44b53428e9cb743f1002bfe90d","tarball":"https://registry.npmjs.org/@bernierllc/chat-agent-persona-manager/-/chat-agent-persona-manager-1.0.0.tgz","fileCount":30,"integrity":"sha512-SLBkMay5T2pnESmUTVgNkLjQZocR2YsXMDF5+VXB/MPXxmLhCfn0d7mdxMn5ay5wbSwJdC2Mux8elml8jf4KUg==","signatures":[{"sig":"MEQCIEo7AUqUVWV3FJIYU9kr/1C4arEbkMpp4tNidAiHfo21AiA5GeKGr2pjeOxKSXrRPlSh0KI51SvfqHyV+mRf+jNiMw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61921},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"6160b674f30356072946a7f3240012b851e5cb5e","scripts":{"lint":"eslint src/**/*.ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest --watchAll=false","test:coverage":"jest --coverage --watchAll=false"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"bernierllc":{"category":"core","integration":{"logger":"optional","neverhub":"optional"}},"_npmVersion":"11.6.2","description":"Persona configuration and management for chat agents with baseline personas and custom persona support","directories":{},"_nodeVersion":"25.1.0","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.56.0","ts-jest":"^29.1.1","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.0","@typescript-eslint/parser":"^6.19.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"@bernierllc/logger":"^1.0.0","@bernierllc/neverhub-adapter":"^1.0.0"},"peerDependenciesMeta":{"@bernierllc/logger":{"optional":true},"@bernierllc/neverhub-adapter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chat-agent-persona-manager_1.0.0_1762468283237_0.8379692872234226","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@bernierllc/chat-agent-persona-manager","version":"1.0.2","keywords":["persona","chat-agent","configuration","management","baseline-personas","custom-personas"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/chat-agent-persona-manager@1.0.2","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"16367e1db741f212de4c64f9ccff1ef5f69fd3be","tarball":"https://registry.npmjs.org/@bernierllc/chat-agent-persona-manager/-/chat-agent-persona-manager-1.0.2.tgz","fileCount":30,"integrity":"sha512-eKC07LMU2brk+g6k7F2/z6Kb1pNA7cmGS8zTyvpVu0kWEnSPs/254KtF4ncyVV4+qqsjmbhdY2T8Fy1rz8lX+g==","signatures":[{"sig":"MEQCIHAfrfP2f8JKuXqQWmajNbHeDAYZvxu87chP++0XsiuBAiAPsv31Z40yBF3GBPZEFlz5yf6BW72JT01WbFatVhRlSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62052},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"af7e74b3715d56d3a193e1bb6743b337c2b0df6d","scripts":{"lint":"eslint src/**/*.ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest --watchAll=false","test:coverage":"jest --coverage --watchAll=false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7071e66d-aef3-4923-8f86-29a0232ef750"}},"bernierllc":{"category":"core","integration":{"logger":"optional","neverhub":"optional"}},"_npmVersion":"lerna/9.0.3/node@v20.19.6+x64 (linux)","description":"Persona configuration and management for chat agents with baseline personas and custom persona support","directories":{},"_nodeVersion":"20.19.6","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.56.0","ts-jest":"^29.1.1","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.0","@typescript-eslint/parser":"^6.19.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"@bernierllc/logger":"^1.0.0","@bernierllc/neverhub-adapter":"^0.1.1"},"peerDependenciesMeta":{"@bernierllc/logger":{"optional":true},"@bernierllc/neverhub-adapter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chat-agent-persona-manager_1.0.2_1767642285407_0.08266269462144438","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@bernierllc/chat-agent-persona-manager","version":"1.0.3","keywords":["persona","chat-agent","configuration","management","baseline-personas","custom-personas"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/chat-agent-persona-manager@1.0.3","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"d9f556aff72652875d9e98d6ed133f259c2448a7","tarball":"https://registry.npmjs.org/@bernierllc/chat-agent-persona-manager/-/chat-agent-persona-manager-1.0.3.tgz","fileCount":30,"integrity":"sha512-d8I5OtOClw4z9Dlj7H5amCn2miJerjGjOlE0UgmVtPUauLVBD2M18pYbKCNmsynMUxfcs3yXDDIpMUnw+0Wsgg==","signatures":[{"sig":"MEUCIQCMEWWnQMPTS7jWG/HVY2V24HfrRAI0C5HY3P1VOKLc4gIgCunE0OiWSmnCcTX++oJqhIyLKw3Vh+a9uRwsErh2w4o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61994},"main":"dist/index.js","_from":"file:bernierllc-chat-agent-persona-manager-1.0.3.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src/**/*.ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest --watchAll=false","test:coverage":"jest --coverage --watchAll=false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7071e66d-aef3-4923-8f86-29a0232ef750"}},"_resolved":"/tmp/42494bb12afaf25af8724f55c3d99b78/bernierllc-chat-agent-persona-manager-1.0.3.tgz","_integrity":"sha512-d8I5OtOClw4z9Dlj7H5amCn2miJerjGjOlE0UgmVtPUauLVBD2M18pYbKCNmsynMUxfcs3yXDDIpMUnw+0Wsgg==","bernierllc":{"category":"core","integration":{"logger":"optional","neverhub":"optional"}},"_npmVersion":"11.11.0","description":"Persona configuration and management for chat agents with baseline personas and custom persona support","directories":{},"_nodeVersion":"20.20.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.56.0","ts-jest":"^29.1.1","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.0","@typescript-eslint/parser":"^6.19.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"@bernierllc/logger":"^1.0.0","@bernierllc/neverhub-adapter":"^0.1.1"},"peerDependenciesMeta":{"@bernierllc/logger":{"optional":true},"@bernierllc/neverhub-adapter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chat-agent-persona-manager_1.0.3_1773078357323_0.2731639354403024","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@bernierllc/chat-agent-persona-manager","version":"1.0.4","keywords":["persona","chat-agent","configuration","management","baseline-personas","custom-personas"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/chat-agent-persona-manager@1.0.4","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"c0a83e7d02a837e36fcce0354ad5356e1c142c80","tarball":"https://registry.npmjs.org/@bernierllc/chat-agent-persona-manager/-/chat-agent-persona-manager-1.0.4.tgz","fileCount":30,"integrity":"sha512-74BWmlMFu6EmYpkgTPiKowN6WmXGhOwGuuaPhvQ+/87zWKWddm49Hybmz4ccw+QGeYfAwhizq/DUs9ZWM45HRQ==","signatures":[{"sig":"MEUCIQCBbfkCoO9yg9m4YYI8HRFx5HhRmju7jwlWk1dNotQVRwIgfW8edTuwWaytWft8OoZ+JHeFHWpGY9Zuby+KkL7LvEw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61994},"main":"dist/index.js","_from":"file:bernierllc-chat-agent-persona-manager-1.0.4.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src/**/*.ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest --watchAll=false","test:coverage":"jest --coverage --watchAll=false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7071e66d-aef3-4923-8f86-29a0232ef750"}},"_resolved":"/home/runner/work/tools/tools/packages/core/chat-agent-persona-manager/bernierllc-chat-agent-persona-manager-1.0.4.tgz","_integrity":"sha512-74BWmlMFu6EmYpkgTPiKowN6WmXGhOwGuuaPhvQ+/87zWKWddm49Hybmz4ccw+QGeYfAwhizq/DUs9ZWM45HRQ==","bernierllc":{"category":"core","integration":{"logger":"optional","neverhub":"optional"}},"_npmVersion":"11.11.0","description":"Persona configuration and management for chat agents with baseline personas and custom persona support","directories":{},"_nodeVersion":"20.20.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.56.0","ts-jest":"^29.1.1","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.0","@typescript-eslint/parser":"^6.19.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"@bernierllc/logger":"^1.0.0","@bernierllc/neverhub-adapter":"^0.1.1"},"peerDependenciesMeta":{"@bernierllc/logger":{"optional":true},"@bernierllc/neverhub-adapter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chat-agent-persona-manager_1.0.4_1773163026463_0.7160254719909236","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@bernierllc/chat-agent-persona-manager","version":"1.2.0","keywords":["persona","chat-agent","configuration","management","baseline-personas","custom-personas"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/chat-agent-persona-manager@1.2.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"b08e0a59d818723d82ae486dcee6af691d09f48c","tarball":"https://registry.npmjs.org/@bernierllc/chat-agent-persona-manager/-/chat-agent-persona-manager-1.2.0.tgz","fileCount":32,"integrity":"sha512-MT6z6Q5LKSzsLRTQWhpIZ1KkQW96DG3lG1+BaMi29AtqQ4g+IG9c9qLHxCj0XV4NrXyJYccIADxpocJcHpU1vw==","signatures":[{"sig":"MEYCIQCU5i4dswg17I8FEkKHzv87WhXHjOTGcPULDjknmyPBowIhAJ876ns/LqdDgg6qcYfCW+qfdySktysZiOZICIVjHK8j","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64296},"main":"dist/index.js","_from":"file:bernierllc-chat-agent-persona-manager-1.2.0.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src/**/*.ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest --watchAll=false","test:coverage":"jest --coverage --watchAll=false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7071e66d-aef3-4923-8f86-29a0232ef750"}},"_resolved":"/home/runner/work/tools/tools/packages/core/chat-agent-persona-manager/bernierllc-chat-agent-persona-manager-1.2.0.tgz","_integrity":"sha512-MT6z6Q5LKSzsLRTQWhpIZ1KkQW96DG3lG1+BaMi29AtqQ4g+IG9c9qLHxCj0XV4NrXyJYccIADxpocJcHpU1vw==","bernierllc":{"category":"core","integration":{"logger":"optional","neverhub":"optional"}},"_npmVersion":"11.14.1","description":"Persona configuration and management for chat agents with baseline personas and custom persona support","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.56.0","ts-jest":"^29.1.1","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.0","@typescript-eslint/parser":"^6.19.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"@bernierllc/logger":"^1.0.0","@bernierllc/neverhub-adapter":"^0.1.1"},"peerDependenciesMeta":{"@bernierllc/logger":{"optional":true},"@bernierllc/neverhub-adapter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chat-agent-persona-manager_1.2.0_1779233826060_0.5141288553105485","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@bernierllc/chat-agent-persona-manager","version":"1.3.0","keywords":["persona","chat-agent","configuration","management","baseline-personas","custom-personas"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/chat-agent-persona-manager@1.3.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"4045a3d500f66dddbfe1efca39a1cf456e192da7","tarball":"https://registry.npmjs.org/@bernierllc/chat-agent-persona-manager/-/chat-agent-persona-manager-1.3.0.tgz","fileCount":32,"integrity":"sha512-6jdJDxafs/3CXd9aQOWdgjb1X/WmzFEX0kZ+T7f2Zdeosour5Uyx0hXcpCszhtkygEA3s7xJl55lof8XwFMLFg==","signatures":[{"sig":"MEUCIBT9kh+GLo+u0hW8Dw31zg+BUVvl5XDC5xYktawQhDPiAiEA/TzIyijGdELJ0oXV7TnG3bWiM3K0aenxO8ysWAAeynE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64296},"main":"dist/index.js","_from":"file:bernierllc-chat-agent-persona-manager-1.3.0.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src/**/*.ts","test":"jest --watch","build":"tsc","clean":"rm -rf dist","test:run":"jest --watchAll=false","test:coverage":"jest --coverage --watchAll=false"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7071e66d-aef3-4923-8f86-29a0232ef750"}},"_resolved":"/home/runner/work/tools/tools/packages/core/chat-agent-persona-manager/bernierllc-chat-agent-persona-manager-1.3.0.tgz","_integrity":"sha512-6jdJDxafs/3CXd9aQOWdgjb1X/WmzFEX0kZ+T7f2Zdeosour5Uyx0hXcpCszhtkygEA3s7xJl55lof8XwFMLFg==","bernierllc":{"category":"core","integration":{"logger":"optional","neverhub":"optional"}},"_npmVersion":"11.14.1","description":"Persona configuration and management for chat agents with baseline personas and custom persona support","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.56.0","ts-jest":"^29.1.1","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.0","@typescript-eslint/parser":"^6.19.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"peerDependencies":{"@bernierllc/logger":"^1.0.0","@bernierllc/neverhub-adapter":"^0.1.1"},"peerDependenciesMeta":{"@bernierllc/logger":{"optional":true},"@bernierllc/neverhub-adapter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/chat-agent-persona-manager_1.3.0_1779240935411_0.5866815519872703","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@bernierllc/chat-agent-persona-manager","version":"1.4.0","description":"Persona configuration and management for chat agents with baseline personas and custom persona support","main":"dist/index.js","types":"dist/index.d.ts","keywords":["persona","chat-agent","configuration","management","baseline-personas","custom-personas"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","peerDependencies":{"@bernierllc/logger":"^1.0.0","@bernierllc/neverhub-adapter":"^0.1.1"},"peerDependenciesMeta":{"@bernierllc/logger":{"optional":true},"@bernierllc/neverhub-adapter":{"optional":true}},"devDependencies":{"@types/jest":"^29.5.12","@types/node":"^20.11.0","@typescript-eslint/eslint-plugin":"^6.19.0","@typescript-eslint/parser":"^6.19.0","eslint":"^8.56.0","jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.3.3"},"bernierllc":{"category":"core","integration":{"neverhub":"optional","logger":"optional"}},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"scripts":{"build":"tsc","test":"jest --watch","test:run":"jest --watchAll=false","test:coverage":"jest --coverage --watchAll=false","lint":"eslint src/**/*.ts","clean":"rm -rf dist"},"_id":"@bernierllc/chat-agent-persona-manager@1.4.0","_integrity":"sha512-vFogBehbqyW9tIaBIszTXvzc9VLbQhf9/dr06OwMidD/E8gabieniS8eZ3cNJK+huj4PlEtXSyVrA0vt4kBgpg==","_resolved":"/home/runner/work/tools/tools/packages/core/chat-agent-persona-manager/bernierllc-chat-agent-persona-manager-1.4.0.tgz","_from":"file:bernierllc-chat-agent-persona-manager-1.4.0.tgz","_nodeVersion":"20.20.2","_npmVersion":"11.14.1","dist":{"integrity":"sha512-vFogBehbqyW9tIaBIszTXvzc9VLbQhf9/dr06OwMidD/E8gabieniS8eZ3cNJK+huj4PlEtXSyVrA0vt4kBgpg==","shasum":"db104ad508a22a67cb19d763e9fd01cd98bb7cc4","tarball":"https://registry.npmjs.org/@bernierllc/chat-agent-persona-manager/-/chat-agent-persona-manager-1.4.0.tgz","fileCount":32,"unpackedSize":64296,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGe4Rz26QkDkh32zuuKbxGMpKICxOwe9YzG/hz43iHOQAiEA4GsDDMFudX2RJ1X7ub55N/+L+fFC65XixE4Y4ALY6B8="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7071e66d-aef3-4923-8f86-29a0232ef750"}},"directories":{},"maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/chat-agent-persona-manager_1.4.0_1779249669002_0.8928199466748894"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-06T22:31:23.076Z","modified":"2026-05-20T04:01:09.348Z","1.0.0":"2025-11-06T22:31:23.458Z","1.0.2":"2026-01-05T19:44:45.538Z","1.0.3":"2026-03-09T17:45:57.502Z","1.0.4":"2026-03-10T17:17:06.598Z","1.2.0":"2026-05-19T23:37:06.211Z","1.3.0":"2026-05-20T01:35:35.567Z","1.4.0":"2026-05-20T04:01:09.178Z"},"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","keywords":["persona","chat-agent","configuration","management","baseline-personas","custom-personas"],"description":"Persona configuration and management for chat agents with baseline personas and custom persona support","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"readme":"# @bernierllc/chat-agent-persona-manager\n\nPersona configuration and management for chat agents with baseline personas and custom persona support.\n\n## Installation\n\n```bash\nnpm install @bernierllc/chat-agent-persona-manager\n```\n\n## Features\n\n- **Baseline Personas** - Pre-configured personas (customer-support, internal-help, developer-support)\n- **Custom Personas** - Define personas via markdown files or API endpoints\n- **Persona Resolution** - Hierarchy-based resolution (location → persona → global → default)\n- **Inheritance Tracking** - Shows which level provided the persona\n- **Full CRUD Operations** - Create, read, update, delete personas\n- **Validation** - Built-in persona configuration validation\n\n## Usage\n\n### Basic Setup\n\n```typescript\nimport { PersonaManager } from '@bernierllc/chat-agent-persona-manager';\n\nconst manager = new PersonaManager();\nawait manager.initialize();\n\n// List baseline personas\nconst baselines = manager.listBaselinePersonas();\nconsole.log(baselines); // [{ id: 'customer-support', ... }, ...]\n```\n\n### Persona Resolution\n\nThe manager resolves personas using a hierarchy: **location → user → global → default**\n\n```typescript\n// Resolve persona for a specific context\nconst resolved = await manager.resolvePersona({\n  locationId: 'store-123',     // Most specific\n  userId: 'user-456',          // User-specific\n  globalPersona: 'global-id'   // Global fallback\n});\n\nconsole.log(resolved.persona);      // The resolved persona config\nconsole.log(resolved.source);       // 'location' | 'persona' | 'global' | 'default'\nconsole.log(resolved.inheritedFrom); // \"Location: store-123\"\n```\n\n### Custom Personas\n\n#### From Markdown Files\n\n```typescript\n// Load persona from markdown file\nconst persona = await manager.loadPersonaFromFile('./personas/custom-support.md');\n\n// Register it\nawait manager.registerCustomPersona(persona);\n```\n\n**Markdown File Format:**\n\n```markdown\n---\nname: Custom Support Agent\ndescription: Specialized support persona\nid: custom-support\n---\n\n# Custom Support Agent\n\nYou are a specialized support agent...\n```\n\n#### From API Endpoints\n\n```typescript\n// Load persona from API\nconst persona = await manager.loadPersonaFromApi(\n  'https://api.example.com/personas/custom'\n);\n\n// Register it\nawait manager.registerCustomPersona(persona);\n```\n\n**API Response Format:**\n\n```json\n{\n  \"id\": \"custom-support\",\n  \"name\": \"Custom Support Agent\",\n  \"description\": \"Specialized support persona\",\n  \"promptApi\": \"https://api.example.com/personas/custom/prompt\",\n  \"metadata\": {\n    \"version\": \"1.0\",\n    \"tags\": [\"support\", \"specialized\"]\n  }\n}\n```\n\n### CRUD Operations\n\n```typescript\n// Get persona by ID\nconst persona = await manager.getPersona('customer-support');\n\n// List all personas (baseline + custom)\nconst allPersonas = await manager.listPersonas();\n\n// List only custom personas\nconst customPersonas = await manager.listCustomPersonas();\n\n// Update persona\nconst updated = await manager.updatePersona('custom-support', {\n  name: 'Updated Name',\n  description: 'New description'\n});\n\n// Delete custom persona (baseline personas cannot be deleted)\nawait manager.deletePersona('custom-support');\n```\n\n### Validation\n\n```typescript\nconst result = manager.validatePersona({\n  id: 'test-persona',\n  name: 'Test Persona',\n  prompt: './personas/test.md'\n});\n\nif (!result.valid) {\n  console.error('Validation errors:', result.errors);\n}\n```\n\n## API Reference\n\n### PersonaManager\n\n#### Constructor\n\n```typescript\nnew PersonaManager(config?: PersonaManagerConfig)\n```\n\n**Config Options:**\n- `baselinePersonas?: Record<string, PersonaConfig>` - Override default baseline personas\n- `customPersonasPath?: string` - Path to custom personas directory\n- `enableNeverHub?: boolean` - Enable NeverHub integration (optional)\n- `logger?: Logger` - Optional logger instance\n\n#### Methods\n\n- `initialize(): Promise<void>` - Initialize the manager\n- `registerBaselinePersona(persona: PersonaConfig): void` - Register baseline persona\n- `registerCustomPersona(persona: PersonaConfig): Promise<void>` - Register custom persona\n- `loadPersonaFromFile(filePath: string): Promise<PersonaConfig>` - Load from markdown file\n- `loadPersonaFromApi(apiUrl: string): Promise<PersonaConfig>` - Load from API endpoint\n- `resolvePersona(context: PersonaResolutionContext): Promise<ResolvedPersona>` - Resolve persona\n- `getPersona(personaId: string): Promise<PersonaConfig | null>` - Get persona by ID\n- `listPersonas(): Promise<PersonaConfig[]>` - List all personas\n- `listBaselinePersonas(): PersonaConfig[]` - List baseline personas\n- `listCustomPersonas(): Promise<PersonaConfig[]>` - List custom personas\n- `updatePersona(personaId: string, updates: Partial<PersonaConfig>): Promise<PersonaConfig>` - Update persona\n- `deletePersona(personaId: string): Promise<void>` - Delete custom persona\n- `validatePersona(persona: PersonaConfig): ValidationResult` - Validate persona config\n\n### Types\n\n#### PersonaConfig\n\n```typescript\ninterface PersonaConfig {\n  id: string;\n  name: string;\n  description?: string;\n  prompt?: string;         // Path to markdown file\n  promptApi?: string;      // API endpoint URL\n  metadata?: Record<string, any>;\n  createdAt?: Date;\n  updatedAt?: Date;\n}\n```\n\n#### PersonaResolutionContext\n\n```typescript\ninterface PersonaResolutionContext {\n  locationId?: string;     // Most specific (store, region, etc.)\n  userId?: string;         // User-specific persona\n  globalPersona?: string;  // Global fallback\n}\n```\n\n#### ResolvedPersona\n\n```typescript\ninterface ResolvedPersona {\n  persona: PersonaConfig;\n  source: 'location' | 'persona' | 'global' | 'default';\n  locationId?: string;\n  inheritedFrom?: string;\n}\n```\n\n## Baseline Personas\n\nThe package includes three pre-configured baseline personas:\n\n### 1. Customer Support (`customer-support`)\n- **Purpose**: External customer support\n- **Tone**: Friendly, empathetic, professional\n- **Use Case**: Customer service chatbots, help desk\n\n### 2. Internal Help Desk (`internal-help`)\n- **Purpose**: Internal employee support\n- **Tone**: Technical, efficient, direct\n- **Use Case**: IT help desk, employee support\n\n### 3. Developer Support (`developer-support`)\n- **Purpose**: Technical developer assistance\n- **Tone**: Precise, detailed, educational\n- **Use Case**: API documentation, SDK support\n\n## Advanced Usage\n\n### With Logger Integration\n\n```typescript\nimport { PersonaManager } from '@bernierllc/chat-agent-persona-manager';\n\nconst logger = {\n  info: (msg: string) => console.log('[INFO]', msg),\n  warn: (msg: string) => console.warn('[WARN]', msg),\n  error: (msg: string) => console.error('[ERROR]', msg),\n  debug: (msg: string) => console.log('[DEBUG]', msg)\n};\n\nconst manager = new PersonaManager({ logger });\nawait manager.initialize();\n```\n\n### Custom Baseline Personas\n\n```typescript\nconst manager = new PersonaManager({\n  baselinePersonas: {\n    'my-custom-baseline': {\n      id: 'my-custom-baseline',\n      name: 'My Custom Baseline',\n      description: 'Custom baseline persona',\n      prompt: './personas/my-custom.md'\n    }\n  }\n});\n\nawait manager.initialize();\n```\n\n## Integration Status\n\n- **Logger**: Optional - Supports `@bernierllc/logger` for operation logging\n- **Docs-Suite**: Ready - Complete API documentation with examples\n- **NeverHub**: Optional - Can integrate for service discovery (config: `enableNeverHub: true`)\n\n## Error Handling\n\nAll async methods throw descriptive errors:\n\n```typescript\ntry {\n  const persona = await manager.loadPersonaFromFile('./nonexistent.md');\n} catch (error) {\n  console.error(error.message);\n  // \"Persona file not found: ./nonexistent.md\"\n}\n\ntry {\n  await manager.deletePersona('customer-support');\n} catch (error) {\n  console.error(error.message);\n  // \"Cannot delete baseline persona: customer-support\"\n}\n```\n\n## Testing\n\n```bash\n# Run tests\nnpm test\n\n# Run tests with coverage\nnpm run test:coverage\n\n# Run tests once (no watch)\nnpm run test:run\n```\n\n## Building\n\n```bash\n# Build TypeScript\nnpm run build\n\n# Clean build artifacts\nnpm run clean\n```\n\n## License\n\nCopyright (c) 2025 Bernier LLC. All rights reserved.\n\nThis file is licensed to the client under a limited-use license.\nThe client may use and modify this code *only within the scope of the project it was delivered for*.\nRedistribution or use in other products or commercial offerings is not permitted without written consent from Bernier LLC.\n\n## See Also\n\n- [@bernierllc/chat-agent-orchestrator](../chat-agent-orchestrator) - Uses this package for persona resolution\n- [@bernierllc/logger](../../logger) - Optional logging integration\n- [@bernierllc/neverhub-adapter](../../neverhub-adapter) - Optional service discovery\n","readmeFilename":"README.md"}