{"_id":"@anby/contracts","_rev":"8-863c137de02fd82c3b3d8139a675f65d","name":"@anby/contracts","dist-tags":{"latest":"1.4.1"},"versions":{"0.1.0":{"name":"@anby/contracts","version":"0.1.0","keywords":["anby","anby-platform","contracts","types","sdk"],"author":{"name":"ANBY"},"license":"MIT","_id":"@anby/contracts@0.1.0","maintainers":[{"name":"anby-platform","email":"aie@bravebits.vn"}],"homepage":"https://github.com/bravebits-labs/anby-platform#readme","bugs":{"url":"https://github.com/bravebits-labs/anby-platform/issues"},"dist":{"shasum":"397a39129b6050a3b1d7b3ed5bd14da013f2e2d2","tarball":"https://registry.npmjs.org/@anby/contracts/-/contracts-0.1.0.tgz","fileCount":101,"integrity":"sha512-2PDszrfEKC3w4w4qPyxWGYRVUS3bZbaI8nKdud1EahZaLyQ9Ed5IUO9Gk6zdp4rNvasH2etRzbNd63eVvtMUhg==","signatures":[{"sig":"MEUCIDECtOhkrKPzmMcQYuDDatRmZJbUT3K+/8FOHs8UXGsVAiEApQQ3uF7v/HsSdbLunBFaVjkzLZ5zUVGHplmQPmJ866Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20813},"main":"dist/cjs/index.js","types":"dist/cjs/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/cjs/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"e6ca56750efd239f2bbf39cb92c3701cc45f91e9","scripts":{"build":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"anby-platform","email":"aie@bravebits.vn"},"repository":{"url":"git+https://github.com/bravebits-labs/anby-platform.git","type":"git","directory":"packages/contracts"},"_npmVersion":"11.0.0","description":"Canonical TypeScript contracts (entities, events, notifications, search) for the Anby Platform","directories":{},"_nodeVersion":"20.18.2","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/contracts_0.1.0_1775537859309_0.2245396614190649","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@anby/contracts","version":"0.1.1","keywords":["anby","anby-platform","contracts","types","sdk"],"author":{"name":"ANBY"},"license":"MIT","_id":"@anby/contracts@0.1.1","maintainers":[{"name":"anby-platform","email":"aie@bravebits.vn"}],"homepage":"https://github.com/bravebits-labs/anby-platform-packages#readme","bugs":{"url":"https://github.com/bravebits-labs/anby-platform-packages/issues"},"dist":{"shasum":"ece264a400206e94ea23b3a3fba13ad8c5b23f67","tarball":"https://registry.npmjs.org/@anby/contracts/-/contracts-0.1.1.tgz","fileCount":103,"integrity":"sha512-nuw/RgHkOBK0LZhIvy2/h1WbT+CDOrlA712XhcytYb8zHiDtCL1T6qB5+nTA7zU3gPfbP/b8mv5AtG4RC3gYfg==","signatures":[{"sig":"MEUCIQCDgBK7faa+r2mOLe0TMxA0AMSqOmy/jSEjv7b4sNuViQIgWpm5Q736ifWHRlD6v77YUaaG1rafrJ+L3Vy6zQqfFiw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anby%2fcontracts@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20904},"main":"dist/cjs/index.js","types":"dist/cjs/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/cjs/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"1daaeadcdc2f7094199804c46f1f0dbf1d845ab1","scripts":{"build":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && node ../fixup-dual.mjs","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"anby-platform","email":"aie@bravebits.vn"},"repository":{"url":"git+https://github.com/bravebits-labs/anby-platform-packages.git","type":"git","directory":"packages/contracts"},"_npmVersion":"10.8.2","description":"Canonical TypeScript contracts (entities, events, notifications, search) for the Anby Platform","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/contracts_0.1.1_1775540795181_0.2757353491605352","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@anby/contracts","version":"1.0.0","keywords":["anby","anby-platform","contracts","types","sdk"],"author":{"name":"ANBY"},"license":"MIT","_id":"@anby/contracts@1.0.0","maintainers":[{"name":"anby-platform","email":"aie@bravebits.vn"}],"homepage":"https://github.com/bravebits-labs/anby-platform-packages#readme","bugs":{"url":"https://github.com/bravebits-labs/anby-platform-packages/issues"},"dist":{"shasum":"ab7d4a6cc66f6d4888723315adf4080946f75ccd","tarball":"https://registry.npmjs.org/@anby/contracts/-/contracts-1.0.0.tgz","fileCount":103,"integrity":"sha512-HyEkSvcYKNt9PfMGcmhbQVSYVLXtK9GyCSZ/PdmukJNmAeyn4UV9WtLkGKZbosGZIFeQOuV94KsGA7CTPfB6ng==","signatures":[{"sig":"MEQCIB/Bgp0rtoXo8kfGdGV0+Vln11DCI2Sr2naSBDJtutC4AiBEzgQEfcLFKrL5fVc+a8S1M5XGE9KUm80CH4XnrXf1Lg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anby%2fcontracts@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20904},"main":"dist/cjs/index.js","types":"dist/cjs/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/cjs/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"2959600e6962694f27bb176910c1e30b139f5dde","scripts":{"build":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && node ../fixup-dual.mjs","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"anby-platform","email":"aie@bravebits.vn"},"repository":{"url":"git+https://github.com/bravebits-labs/anby-platform-packages.git","type":"git","directory":"packages/contracts"},"_npmVersion":"10.8.2","description":"Canonical TypeScript contracts (entities, events, notifications, search) for the Anby Platform","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/contracts_1.0.0_1776353716376_0.869972002787549","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@anby/contracts","version":"1.1.0","keywords":["anby","anby-platform","contracts","types","sdk"],"author":{"name":"ANBY"},"license":"MIT","_id":"@anby/contracts@1.1.0","maintainers":[{"name":"anby-platform","email":"aie@bravebits.vn"}],"homepage":"https://github.com/bravebits-labs/anby-platform-packages#readme","bugs":{"url":"https://github.com/bravebits-labs/anby-platform-packages/issues"},"dist":{"shasum":"d02a713905366d86a90cc249c0331cce00ef302e","tarball":"https://registry.npmjs.org/@anby/contracts/-/contracts-1.1.0.tgz","fileCount":103,"integrity":"sha512-pndxv6vHMJ4oGKe3AYAu0RpUVo5riOkTBZBim8UoGm+bWinSI8xqNEdg0Ti0Gep9k3ZdrBJi6UXHVdXoZ1Ymwg==","signatures":[{"sig":"MEUCICPJfRiXYzT4vRhpe69kOPAKYn3eqULy1knojDnbLptJAiEAxiORtKaoYcRr2G9udOK9xK2+jRaZypNn8gslYgNdPSU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anby%2fcontracts@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20904},"main":"dist/cjs/index.js","types":"dist/cjs/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/cjs/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"bf828c612523599958179bf97de9c4d2fbf2b5ff","scripts":{"build":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && node ../fixup-dual.mjs","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"anby-platform","email":"aie@bravebits.vn"},"repository":{"url":"git+https://github.com/bravebits-labs/anby-platform-packages.git","type":"git","directory":"packages/contracts"},"_npmVersion":"10.8.2","description":"Canonical TypeScript contracts (entities, events, notifications, search) for the Anby Platform","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/contracts_1.1.0_1776939894962_0.037238638564440985","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@anby/contracts","version":"1.2.0","keywords":["anby","anby-platform","contracts","types","sdk"],"author":{"name":"ANBY"},"license":"MIT","_id":"@anby/contracts@1.2.0","maintainers":[{"name":"anby-platform","email":"aie@bravebits.vn"}],"homepage":"https://github.com/bravebits-labs/anby-platform-packages#readme","bugs":{"url":"https://github.com/bravebits-labs/anby-platform-packages/issues"},"dist":{"shasum":"27869ca19f907d9686ab430d1e8ea2e4ea1a3a98","tarball":"https://registry.npmjs.org/@anby/contracts/-/contracts-1.2.0.tgz","fileCount":103,"integrity":"sha512-bWl13xnjR3wmG1Fi7mwfa07ft5TkxiL8u/knh5EUTFGzc6aHHWd7D7cSV8mdwEtInfMiQJJFI9RXpsY9DJe0UQ==","signatures":[{"sig":"MEQCIB3poRfjgbxI/NLBZTL+LQaf6piloT4yXn9hotyTROwnAiABu7PVb6O56J57hHEfp/1LzSiI5nLRMj+V5dHkDi6IOw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anby%2fcontracts@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20904},"main":"dist/cjs/index.js","types":"dist/cjs/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/cjs/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"74bfea0cc764955a123697715e227bd9635316c4","scripts":{"build":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && node ../fixup-dual.mjs","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"anby-platform","email":"aie@bravebits.vn"},"repository":{"url":"git+https://github.com/bravebits-labs/anby-platform-packages.git","type":"git","directory":"packages/contracts"},"_npmVersion":"10.8.2","description":"Canonical TypeScript contracts (entities, events, notifications, search) for the Anby Platform","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/contracts_1.2.0_1777261024742_0.262114648393998","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@anby/contracts","version":"1.3.0","keywords":["anby","anby-platform","contracts","types","sdk"],"author":{"name":"ANBY"},"license":"MIT","_id":"@anby/contracts@1.3.0","maintainers":[{"name":"anby-platform","email":"aie@bravebits.vn"}],"homepage":"https://github.com/bravebits-labs/anby-platform-packages#readme","bugs":{"url":"https://github.com/bravebits-labs/anby-platform-packages/issues"},"dist":{"shasum":"9c11aad81697ac50497b4663c8ef43320d7ec98d","tarball":"https://registry.npmjs.org/@anby/contracts/-/contracts-1.3.0.tgz","fileCount":103,"integrity":"sha512-1F3eeIj4lazqpvpm8SrTWwdOpaBiMUyVo9hr8hv7IsBruunASsxH9BOcCtr8iCdb1GJL3PqkSDAMKiahlXP1lQ==","signatures":[{"sig":"MEUCIQC7w/5jMLygndhNfsgdyds4eB8AW8AqCorDjFoUMEVMNQIgeFGtPdPQOapIdgNbzyPQev3T9KWVvUeYY6ze3Ta2zfw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anby%2fcontracts@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20904},"main":"dist/cjs/index.js","types":"dist/cjs/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/cjs/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"1d523a68d84dc123c68fe8b3ba733e2d4a634914","scripts":{"build":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && node ../fixup-dual.mjs","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"anby-platform","email":"aie@bravebits.vn"},"repository":{"url":"git+https://github.com/bravebits-labs/anby-platform-packages.git","type":"git","directory":"packages/contracts"},"_npmVersion":"10.8.2","description":"Canonical TypeScript contracts (entities, events, notifications, search) for the Anby Platform","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/contracts_1.3.0_1777306786297_0.8027576164233976","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@anby/contracts","version":"1.4.0","keywords":["anby","anby-platform","contracts","types","sdk"],"author":{"name":"ANBY"},"license":"MIT","_id":"@anby/contracts@1.4.0","maintainers":[{"name":"anby-platform","email":"aie@bravebits.vn"}],"homepage":"https://github.com/bravebits-labs/anby-platform-packages#readme","bugs":{"url":"https://github.com/bravebits-labs/anby-platform-packages/issues"},"dist":{"shasum":"1d0a1dde73c286a3c074bf19d3b632473f0d45fa","tarball":"https://registry.npmjs.org/@anby/contracts/-/contracts-1.4.0.tgz","fileCount":110,"integrity":"sha512-izn2H9iiKkqCQQuWShHIFluyGdlGPC9syn6WgPsxJM7VfhXySNAQAcZ0qOgjFmmwDPX8CVBalR3giGTOR1Mqng==","signatures":[{"sig":"MEQCIAx+ntaYuMYaQ7EXufF1IV7dJV4FpD0AbNvsGR4Q0gl3AiB71Kh2ek7h73x0tPvwlAfbph3MNkFK3pm2w3TFAuHCtg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anby%2fcontracts@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28823},"main":"dist/cjs/index.js","types":"dist/cjs/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/cjs/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"d629153f5e557ee4cf863ead295e4d0218c2139d","scripts":{"build":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && node ../fixup-dual.mjs","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"anby-platform","email":"aie@bravebits.vn"},"repository":{"url":"git+https://github.com/bravebits-labs/anby-platform-packages.git","type":"git","directory":"packages/contracts"},"_npmVersion":"10.8.2","description":"Canonical TypeScript contracts (entities, events, notifications, search) for the Anby Platform","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/contracts_1.4.0_1778860207382_0.3404821125234938","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@anby/contracts","version":"1.4.1","description":"Canonical TypeScript contracts (entities, events, notifications, search) for the Anby Platform","keywords":["anby","anby-platform","contracts","types","sdk"],"license":"MIT","author":{"name":"ANBY"},"homepage":"https://github.com/bravebits-labs/anby-platform-packages#readme","bugs":{"url":"https://github.com/bravebits-labs/anby-platform-packages/issues"},"repository":{"type":"git","url":"git+https://github.com/bravebits-labs/anby-platform-packages.git","directory":"packages/contracts"},"main":"dist/cjs/index.js","module":"dist/esm/index.js","types":"dist/cjs/index.d.ts","exports":{".":{"types":"./dist/cjs/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"publishConfig":{"access":"public","provenance":true},"scripts":{"build":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && node ../fixup-dual.mjs","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"devDependencies":{"typescript":"^5.5.0"},"_id":"@anby/contracts@1.4.1","gitHead":"27339f757535f76442a91ab7b38ce33d97471475","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-f3fZX/0hiiV8bp0BbYuqkwDwa998LSLSGcx4YxzULU2mFhk07CFuHfmQ+a8D9ZmYFAKPUYu7diUxZG5ClRiRlQ==","shasum":"0adca841e08ad13983dc7b25336e622f0d581bc8","tarball":"https://registry.npmjs.org/@anby/contracts/-/contracts-1.4.1.tgz","fileCount":110,"unpackedSize":28823,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anby%2fcontracts@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCAkiShrxvEIf0t2dXH2L62AGWazEue0kYteDJ3/jLGWgIhAJFsVStxmoqLtPsAfuAzbblEcL4FaCzPA2s0v8Hz8ebR"}]},"_npmUser":{"name":"anby-platform","email":"aie@bravebits.vn"},"directories":{},"maintainers":[{"name":"anby-platform","email":"aie@bravebits.vn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/contracts_1.4.1_1778864975941_0.85220260496636"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-07T04:57:39.229Z","modified":"2026-05-15T17:09:36.445Z","0.1.0":"2026-04-07T04:57:39.445Z","0.1.1":"2026-04-07T05:46:35.344Z","1.0.0":"2026-04-16T15:35:16.522Z","1.1.0":"2026-04-23T10:24:55.124Z","1.2.0":"2026-04-27T03:37:04.861Z","1.3.0":"2026-04-27T16:19:46.444Z","1.4.0":"2026-05-15T15:50:07.596Z","1.4.1":"2026-05-15T17:09:36.118Z"},"bugs":{"url":"https://github.com/bravebits-labs/anby-platform-packages/issues"},"author":{"name":"ANBY"},"license":"MIT","homepage":"https://github.com/bravebits-labs/anby-platform-packages#readme","keywords":["anby","anby-platform","contracts","types","sdk"],"repository":{"type":"git","url":"git+https://github.com/bravebits-labs/anby-platform-packages.git","directory":"packages/contracts"},"description":"Canonical TypeScript contracts (entities, events, notifications, search) for the Anby Platform","maintainers":[{"name":"anby-platform","email":"aie@bravebits.vn"}],"readme":"# @anby/contracts\n\nTập hợp các type contract TypeScript chuẩn cho Anby Platform. Package này là **nguồn chân lý duy nhất** (single source of truth) cho shape của entities, events, notifications và search results được trao đổi giữa các service Anby (auth, tenant, org-chart, event-router, app-registry, ai-employee và các app bên thứ ba).\n\nMọi service khi tạo ra hoặc tiêu thụ dữ liệu platform đều phải import type từ đây thay vì tự khai báo lại, để khi có breaking change thì lỗi sẽ xuất hiện ngay lúc compile.\n\n## Cài đặt\n\nĐược dùng qua workspace link:\n\n```json\n{\n  \"dependencies\": {\n    \"@anby/contracts\": \"file:../../packages/contracts\"\n  }\n}\n```\n\n## Cách dùng\n\n```ts\nimport type { AnbyUser, AnbyEvent, Notification, SearchResult } from '@anby/contracts';\n\nfunction handle(evt: AnbyEvent<{ userId: string }>) {\n  // ...\n}\n```\n\n## Cấu trúc\n\n```\nsrc/\n├── entities/         # Các domain object cốt lõi\n│   ├── user.ts         AnbyUser\n│   ├── org-node.ts     Node trong sơ đồ tổ chức\n│   ├── task.ts         Task / đầu việc\n│   ├── objective.ts    Objective kiểu OKR\n│   ├── meeting.ts      Bản ghi cuộc họp\n│   └── kudos.ts        Ghi nhận / khen thưởng đồng nghiệp\n├── events/           # Envelope sự kiện (tenantId, actor, correlationId, ...)\n│   └── envelope.ts     AnbyEvent<T>\n├── notifications/    # Payload thông báo\n└── search/           # Shape kết quả search dùng chung giữa các service\n```\n\n## Quy ước\n\n- **Chỉ chứa type.** Không có runtime code, không dependency. Package build ra type và ship thẳng file `.ts` (`main: src/index.ts`).\n- **Envelope có version.** Tất cả event dùng `AnbyEvent<T>` với field `version` — khi có breaking change thì bump version thay vì sửa shape cũ.\n- **Ưu tiên thay đổi kiểu additive.** Thêm field optional thay vì đổi tên; mọi service đều import package này, nên một thao tác rename có thể lan ra toàn hệ thống.\n\n## Scripts\n\n```bash\nnpm run typecheck    # tsc --noEmit\nnpm run build        # tsc\n```\n","readmeFilename":"README.md"}