{"_id":"@8xlabsai/hekaya-playbook-schema","_rev":"2-b0e8039524d4116a46fa358868bfc646","name":"@8xlabsai/hekaya-playbook-schema","dist-tags":{"latest":"0.2.1"},"versions":{"0.2.0":{"name":"@8xlabsai/hekaya-playbook-schema","version":"0.2.0","license":"MIT","_id":"@8xlabsai/hekaya-playbook-schema@0.2.0","maintainers":[{"name":"batout","email":"amr.z.abdo@gmail.com"}],"homepage":"https://github.com/8xlabs-ai/hekaya.ai#readme","bugs":{"url":"https://github.com/8xlabs-ai/hekaya.ai/issues"},"dist":{"shasum":"48739833f940cdeadbc9cde0307488d1a5b8d74a","tarball":"https://registry.npmjs.org/@8xlabsai/hekaya-playbook-schema/-/hekaya-playbook-schema-0.2.0.tgz","fileCount":3,"integrity":"sha512-WwVusmWcXQzI1QokdVk9n71YGgiuYPoyYsElVLIvkZVSbD5L0BiZQye24ln2Pr8u/JonH5dvHE2eNiGpyZ0SsA==","signatures":[{"sig":"MEUCIH2FPYLlsBD030m2FTvVN/ahzCIGYRq/qGYFIvot083uAiEAvzRc/0kh+cuGtkRSpMS8OGMo4F2TcQdP6SGHUnTR/bs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8180},"main":"./src/index.ts","type":"module","_from":"file:8xlabsai-hekaya-playbook-schema-0.2.0.tgz","types":"./src/index.ts","exports":{".":"./src/index.ts"},"scripts":{"typecheck":"tsc --noEmit"},"_npmUser":{"name":"batout","email":"amr.z.abdo@gmail.com"},"_resolved":"/tmp/4fc516cb7844ae5d5a64afefb5460d49/8xlabsai-hekaya-playbook-schema-0.2.0.tgz","_integrity":"sha512-WwVusmWcXQzI1QokdVk9n71YGgiuYPoyYsElVLIvkZVSbD5L0BiZQye24ln2Pr8u/JonH5dvHE2eNiGpyZ0SsA==","repository":{"url":"git+https://github.com/8xlabs-ai/hekaya.ai.git","type":"git","directory":"packages/playbook-schema"},"_npmVersion":"10.8.2","description":"Zod schema for Hekaya playbooks (live demo step types) + universal default playbook.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.23.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.3","@hekaya/config-tsconfig":"0.0.0"},"_npmOperationalInternal":{"tmp":"tmp/hekaya-playbook-schema_0.2.0_1778374199658_0.3997910129057318","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@8xlabsai/hekaya-playbook-schema","version":"0.2.1","description":"Zod schema for Hekaya playbooks (live demo step types) + universal default playbook.","license":"MIT","type":"module","main":"./src/index.ts","types":"./src/index.ts","exports":{".":"./src/index.ts"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/8xlabs-ai/hekaya.ai.git","directory":"packages/playbook-schema"},"dependencies":{"zod":"^3.23.8"},"devDependencies":{"typescript":"^5.6.3","@hekaya/config-tsconfig":"0.0.0"},"scripts":{"typecheck":"tsc --noEmit"},"_id":"@8xlabsai/hekaya-playbook-schema@0.2.1","bugs":{"url":"https://github.com/8xlabs-ai/hekaya.ai/issues"},"homepage":"https://github.com/8xlabs-ai/hekaya.ai#readme","_integrity":"sha512-WnSn/JxkQAAByoauPV72mXpHtlBeRzxWOAJYIwyKSqlhA49IsEUAAPkdWUhYdaBLI4GpDqfMcmXNJ+EW4LApXw==","_resolved":"/tmp/7993b5c8cd84704e176f3eefa63fdc9d/8xlabsai-hekaya-playbook-schema-0.2.1.tgz","_from":"file:8xlabsai-hekaya-playbook-schema-0.2.1.tgz","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-WnSn/JxkQAAByoauPV72mXpHtlBeRzxWOAJYIwyKSqlhA49IsEUAAPkdWUhYdaBLI4GpDqfMcmXNJ+EW4LApXw==","shasum":"9028ae171b91deb3361ac751af28d556364c2925","tarball":"https://registry.npmjs.org/@8xlabsai/hekaya-playbook-schema/-/hekaya-playbook-schema-0.2.1.tgz","fileCount":4,"unpackedSize":10836,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFN/3OALs60zUwSMP/ge5WQEPDuIkWsaVzgnzX05rlkJAiEAlbrg0YhUGipZG2hwiBdFhukwwJVYJqi/HV/Z5pFP5xA="}]},"_npmUser":{"name":"batout","email":"amr.z.abdo@gmail.com"},"directories":{},"maintainers":[{"name":"batout","email":"amr.z.abdo@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/hekaya-playbook-schema_0.2.1_1778374815683_0.15270660926619062"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-10T00:49:59.562Z","modified":"2026-05-10T01:00:15.973Z","0.2.0":"2026-05-10T00:49:59.807Z","0.2.1":"2026-05-10T01:00:15.839Z"},"bugs":{"url":"https://github.com/8xlabs-ai/hekaya.ai/issues"},"license":"MIT","homepage":"https://github.com/8xlabs-ai/hekaya.ai#readme","repository":{"type":"git","url":"git+https://github.com/8xlabs-ai/hekaya.ai.git","directory":"packages/playbook-schema"},"description":"Zod schema for Hekaya playbooks (live demo step types) + universal default playbook.","maintainers":[{"name":"batout","email":"amr.z.abdo@gmail.com"}],"readme":"# @8xlabsai/hekaya-playbook-schema\n\n[![npm version](https://img.shields.io/npm/v/@8xlabsai/hekaya-playbook-schema.svg)](https://www.npmjs.com/package/@8xlabsai/hekaya-playbook-schema)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n\n[Zod](https://zod.dev) schema for [Hekaya](https://github.com/8xlabs-ai/hekaya.ai) live-demo playbooks. Defines the canonical step format (`navigate`, `highlight`, `click`, `fill`, `branch`, `cta`) shared by the SDK runtime, Chrome extension recorder, and orchestrator post-processor. Ships with a universal default playbook (8 steps, bilingual ar+en Khaleeji narration) so every tenant has a working live demo from day 1.\n\n## Install\n\n```bash\npnpm add @8xlabsai/hekaya-playbook-schema\n```\n\n## Quickstart\n\nValidate a playbook before serving it to the SDK:\n\n```ts\nimport {\n  PlaybookSchema,\n  loadDefaultPlaybook,\n  type Playbook,\n} from '@8xlabsai/hekaya-playbook-schema';\n\n// Load the universal default (parsed + validated):\nconst defaultPlaybook = loadDefaultPlaybook();\nconsole.log(defaultPlaybook.playbook_id, 'v' + defaultPlaybook.version);\n// → \"hekaya-default-explore v1\"\n\n// Validate a tenant-authored playbook:\nconst tenantJson = await fetch('/api/playbooks/face-id-demo').then((r) => r.json());\nconst result = PlaybookSchema.safeParse(tenantJson);\nif (!result.success) {\n  console.error('Invalid playbook:', result.error.flatten());\n  process.exit(1);\n}\nconst playbook: Playbook = result.data;\n\n// Walk the steps:\nfor (const step of playbook.steps) {\n  console.log(step.step_id, step.type);\n  if ('selectors' in step) console.log(' ', step.selectors.primary);\n  if ('narration' in step) console.log(' ', step.narration.en);\n}\n```\n\n## What's exported\n\n- **`PlaybookSchema`** — top-level zod object: `playbook_id`, `version`, `scenario` (intent + tags + trigger_examples + threshold), `mode` (guide / drive), `voice` (style + WPM + pause), `steps[]`.\n- **`StepSchema`** — discriminated union over six kinds: `navigate`, `highlight`, `click`, `fill`, `branch` (conditions + jump_to), `cta` (offer_meeting / capture_email / human_handoff).\n- **`SelectorTupleSchema`** — primary → secondary → fallback. Selector kinds: `aria_role_text`, `data_attr`, `text`, `css`, `xpath`.\n- **`NarrationSchema`** — `{ ar, en, audio_cache_key? }`.\n- **`loadDefaultPlaybook()`** — returns the parsed universal default.\n- **TypeScript types** — `Playbook`, `PlaybookStep`, `Narration`, `SelectorTuple`, `Selector`.\n\n## Source\n\nMonorepo: [github.com/8xlabs-ai/hekaya.ai](https://github.com/8xlabs-ai/hekaya.ai) → `packages/playbook-schema/`.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}