{"_id":"@pixygon/companion","name":"@pixygon/companion","description":"Pixiel, the companion anima that follows a person across every pearl: the spec, the renderer (Smooth, Pixel, 3D blocks, Soft), the mind, the API client and the React pieces (face, dock, hatch, sculptor, shop).","license":"MIT","homepage":"https://github.com/Pixygon/pixygon-packages#readme","repository":{"type":"git","url":"git+https://github.com/Pixygon/pixygon-packages.git"},"keywords":["pixygon","pixiel","companion","anima"],"author":{"name":"Pixygon"},"bugs":{"url":"https://github.com/Pixygon/pixygon-packages/issues"},"dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@pixygon/companion","version":"0.1.0","description":"Pixiel, the companion anima that follows a person across every pearl: the spec, the renderer (Smooth, Pixel, 3D blocks, Soft), the mind, the API client and the React pieces (face, dock, hatch, sculptor, shop).","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./package.json":"./package.json","./home":{"types":"./dist/home.d.ts","import":"./dist/home.js","require":"./dist/home.cjs"}},"sideEffects":false,"files":["dist","README.md"],"scripts":{"build":"tsup","typecheck":"tsc --noEmit","test":"npm run build && node --test test/*.test.mjs","prepublishOnly":"npm run build"},"peerDependencies":{"react":">=18","react-dom":">=18"},"devDependencies":{"@types/react":"^18.2.0","@types/react-dom":"^18.2.0","react":"^19.0.0","react-dom":"^19.0.0","tsup":"^8.0.0","typescript":"^5.3.0"},"keywords":["pixygon","pixiel","companion","anima"],"author":{"name":"Pixygon"},"license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/Pixygon/pixygon-packages.git"},"dist":{"integrity":"sha512-qpbGh8xDr8cgLmwhixP62UEB1T1h3LmyWc5C0b8kAPXTYXZRDaBAtVD55PlcZTaHUSStPALfIXZJYUIVZKDuqw==","shasum":"96571f90c0bb6566bcb39bd95278ec89c90e43e7","tarball":"https://ppm.pixygon.io/@pixygon/companion/-/companion-0.1.0.tgz"},"readmeFilename":"README.md","gitHead":"8197057c56d0412d1ed5c2dacbc4bcce0828adb6","_id":"@pixygon/companion@0.1.0","bugs":{"url":"https://github.com/Pixygon/pixygon-packages/issues"},"homepage":"https://github.com/Pixygon/pixygon-packages#readme","_nodeVersion":"26.10.0","_npmVersion":"12.1.0"},"0.1.1":{"name":"@pixygon/companion","version":"0.1.1","description":"Pixiel, the companion anima that follows a person across every pearl: the spec, the renderer (Smooth, Pixel, 3D blocks, Soft), the mind, the API client and the React pieces (face, dock, hatch, sculptor, shop).","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./package.json":"./package.json","./home":{"types":"./dist/home.d.ts","import":"./dist/home.js","require":"./dist/home.cjs"}},"sideEffects":false,"files":["dist","README.md"],"scripts":{"build":"tsup","typecheck":"tsc --noEmit","test":"npm run build && node --test test/*.test.mjs","prepublishOnly":"npm run build"},"peerDependencies":{"react":">=18","react-dom":">=18"},"devDependencies":{"@types/react":"^18.2.0","@types/react-dom":"^18.2.0","react":"^19.0.0","react-dom":"^19.0.0","tsup":"^8.0.0","typescript":"^5.3.0"},"keywords":["pixygon","pixiel","companion","anima"],"author":{"name":"Pixygon"},"license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/Pixygon/pixygon-packages.git"},"dist":{"integrity":"sha512-Pn0inzThF410LnfKx11RV3sDahgjJ9nxPjptaXcD0Ee6f9ycJGgoJIW2qN9t8hZ/A4NFEwFiYYQx8oqgo0Dcow==","shasum":"d58a495dbfbf8515337f0c737493dea099b4e513","tarball":"https://ppm.pixygon.io/@pixygon/companion/-/companion-0.1.1.tgz"},"readmeFilename":"README.md","gitHead":"23371f1c9e8889810163b87b1b0ad221734890a8","_id":"@pixygon/companion@0.1.1","bugs":{"url":"https://github.com/Pixygon/pixygon-packages/issues"},"homepage":"https://github.com/Pixygon/pixygon-packages#readme","_nodeVersion":"26.10.0","_npmVersion":"12.1.0"},"0.2.0":{"name":"@pixygon/companion","version":"0.2.0","description":"Pixiel, the companion anima that follows a person across every pearl: the spec, the renderer (Smooth, Pixel, 3D blocks, Soft), the mind, the API client and the React pieces (face, dock, hatch, sculptor, shop).","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js","require":"./dist/react.cjs"},"./package.json":"./package.json","./home":{"types":"./dist/home.d.ts","import":"./dist/home.js","require":"./dist/home.cjs"}},"sideEffects":false,"files":["dist","README.md"],"scripts":{"build":"tsup","typecheck":"tsc --noEmit","test":"npm run build && node --test test/*.test.mjs","prepublishOnly":"npm run build"},"peerDependencies":{"react":">=18","react-dom":">=18"},"devDependencies":{"@types/react":"^18.2.0","@types/react-dom":"^18.2.0","react":"^19.0.0","react-dom":"^19.0.0","tsup":"^8.0.0","typescript":"^5.3.0"},"keywords":["pixygon","pixiel","companion","anima"],"author":{"name":"Pixygon"},"license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/Pixygon/pixygon-packages.git"},"dist":{"integrity":"sha512-4/dal9Zyz4GCQD+ecaAKt4Yb6PPtNtl/SN2WDdMeBENf8OGTwo0xijqRAeAF8f+ADAXKctXWTbYNLtk7mref4Q==","shasum":"0cfe1e23d2a0aabe204ae36c7f6e82e8b6ac1cf7","tarball":"https://ppm.pixygon.io/@pixygon/companion/-/companion-0.2.0.tgz"},"readmeFilename":"README.md","gitHead":"0a7fe58a81972f783004807b011d4ab1ffd4f6aa","_id":"@pixygon/companion@0.2.0","bugs":{"url":"https://github.com/Pixygon/pixygon-packages/issues"},"homepage":"https://github.com/Pixygon/pixygon-packages#readme","_nodeVersion":"26.10.0","_npmVersion":"12.1.0"}},"time":{"0.1.0":"2026-10-02T12:03:00.568Z","modified":"2026-10-02T12:19:42.962Z","created":"2026-10-02T12:03:00.568Z","0.1.1":"2026-10-02T12:11:24.655Z","0.2.0":"2026-10-02T12:19:42.962Z"},"readme":"# @pixygon/companion\n\nPixiel: the companion anima that follows a person across every pearl they are signed in to. Each person hatches one from a spark, sculpts it, dresses it, and talks to it.\nDecision: `Dyson/docs/companion/0001-pixiel-companion.md`. API: `/v1/me/companion` (PixygonAPI `services/companion/`).\n\n| Entry | What | React? |\n|---|---|---|\n| `@pixygon/companion` | the spec (generated from the API), the renderer (Smooth, Pixel, 3D blocks, Soft), the mind, the shared animation loop, the API client | no |\n| `@pixygon/companion/react` | `PixielFace`, `SparkFace`, `CompanionDock` (the corner chat) | yes |\n| `@pixygon/companion/home` | `PixielHome` for pixiel.ai: hatch, sculpt, shop, memories, conversations | yes |\n\nPearls don't import this directly. `@pixygon/site` mounts the dock through `CornerChat`: signed out, the pearl's concierge is unchanged; signed in, it lazy-loads the person's Pixiel.\n\n```tsx\nimport { CompanionDock } from '@pixygon/companion/react';\n<CompanionDock token={() => auth.accessToken} slug=\"splitsheet\" />\n```\n\nRules:\n- **The API decides.** It checks every form, gear and name value, so the client only normalises what it draws. A new option goes in PixygonAPI `services/companion/spec.js`; then run `node scripts/sync-spec.mjs`, and `test/spec.test.mjs` fails until the two match.\n- **Client-only.** Render nothing on the server. The dock loads after first paint and only for a signed-in person.\n- **Reduced motion.** It keeps still and only changes expression.\n","readmeFilename":"README.md"}