{"_id":"@bradtech/sales-skills","name":"@bradtech/sales-skills","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@bradtech/sales-skills","version":"1.0.0","description":"TypeScript / Bun Sales Agent Skills","license":"AGPL-3.0-only","repository":{"type":"git","url":"git+https://github.com/bradtech/sales-skills.git"},"type":"module","scripts":{"setup-skills":"./bin/activate_skills.sh","local-agent":"bun run bin/lm_studio_agent.ts","publish:package":"bun run bin/publish.ts"},"publishConfig":{"access":"public"},"dependencies":{"@quatrain/log":"^1.2.3","@quatrain/core":"^1.2.16","@quatrain/types":"^1.2.15","@quatrain/api-client":"^1.1.7","@quatrain/skills":"^1.0.1","@quatrain/cli":"^1.1.8","@quatrain/api-xmlrpc":"^1.0.1","commander":"^11.1.0","googleapis":"^129.0.0","xmlrpc":"^1.3.2"},"devDependencies":{"@types/xmlrpc":"^1.3.10","@types/node":"^22.10.1"},"_id":"@bradtech/sales-skills@1.0.0","bugs":{"url":"https://github.com/bradtech/sales-skills/issues"},"homepage":"https://github.com/bradtech/sales-skills#readme","_integrity":"sha512-GRFCUpARD2a9NhBmlPGxmaujK6LahrGEAH8cxxIMTlO3ttymgLzdZSCB/M3Ny16cMapwScKJvzFDZsd7uut1aQ==","_resolved":"/home/runner/work/sales-skills/sales-skills/bradtech-sales-skills-1.0.0.tgz","_from":"file:bradtech-sales-skills-1.0.0.tgz","_nodeVersion":"22.23.0","_npmVersion":"10.9.8","dist":{"integrity":"sha512-GRFCUpARD2a9NhBmlPGxmaujK6LahrGEAH8cxxIMTlO3ttymgLzdZSCB/M3Ny16cMapwScKJvzFDZsd7uut1aQ==","shasum":"6c74aee589d1ea4d184f43ee012c3708e5c39951","tarball":"https://registry.npmjs.org/@bradtech/sales-skills/-/sales-skills-1.0.0.tgz","fileCount":21,"unpackedSize":102259,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bradtech%2fsales-skills@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDscUghjJGlzD6Ho4CEqv6+49jUxa+7NP7EakZv9O3rgAIhAN+7k/AFIAgjZGpoiaYEpCeFinXVhRaVh54vtK6I6NgI"}]},"_npmUser":{"name":"crapougnax","email":"olivier@lepine.fr"},"directories":{},"maintainers":[{"name":"crapougnax","email":"olivier@lepine.fr"},{"name":"elliottlepine","email":"elliott@brad.ag"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sales-skills_1.0.0_1782390309150_0.05325505259895169"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-25T12:25:08.990Z","1.0.0":"2026-06-25T12:25:09.280Z","modified":"2026-06-25T12:25:09.698Z"},"maintainers":[{"name":"crapougnax","email":"olivier@lepine.fr"},{"name":"elliottlepine","email":"elliott@brad.ag"}],"description":"TypeScript / Bun Sales Agent Skills","homepage":"https://github.com/bradtech/sales-skills#readme","repository":{"type":"git","url":"git+https://github.com/bradtech/sales-skills.git"},"bugs":{"url":"https://github.com/bradtech/sales-skills/issues"},"license":"AGPL-3.0-only","readme":"# Brad Sales Skills\n\nA suite of TypeScript/Bun integration tools designed to connect Odoo ERP, Brevo, and Google Calendar into a cohesive automated sales assistant. \n\nThis repository leverages the `@quatrain` ecosystem for unified logging, API clients (both REST and XML-RPC), and interactive prompt helper utilities.\n\n---\n\n## Features\n\n### 1. Atomic Vendor Clients (`skills/vendor/`)\n- **Odoo CRM (`odoo-integration`)**: Search partners, update contacts, create new contacts, and manage calendar events in Odoo using a fast XML-RPC connector (`@quatrain/api-xmlrpc`).\n- **Brevo Email Marketing (`brevo-integration`)**: Query, insert, and update newsletter and CRM contacts via the Brevo REST API client.\n- **Google Calendar (`google-calendar`)**: Access Google Calendars using service account credentials. Supports listing, creating, and deleting events.\n\n### 2. Composite Sync Actions (`skills/actions/`)\n- **Google Calendar to Odoo Meetings Sync (`sync-meetings-to-odoo`)**: An interactive command-line orchestrator that:\n  1. Pulls events from Google Calendar for a target date.\n  2. Resolves attendees' emails against Odoo partners.\n  3. Prompts the user interactively (using inquirer-based helpers) to create missing contacts, update incomplete names, and create Odoo calendar meetings linked to those partners.\n\n---\n\n## Directory Structure\n\n```\n├── .env.dist                   # Template for environment configuration\n├── package.json                # Project dependencies (linked local @quatrain workspaces)\n├── tsconfig.json               # Path mappings for direct Bun execution\n├── service_account.json        # (Optional) Google Service Account key file\n├── skills/                     # Skill Definitions & Implementations\n│   ├── actions/                # Composite orchestrators\n│   │   └── sync-meetings-to-odoo/\n│   │       ├── SKILL.md        # LLM integration triggers for composite sync\n│   │       └── scripts/\n│   │           └── sync_meetings_cli.ts\n│   └── vendor/                 # CLI entry points and definitions for atomic vendors\n│       ├── google/\n│       │   ├── SKILL.md        # LLM integration triggers for Google Calendar\n│       │   ├── calendar.ts     # Google calendar client\n│       │   └── cli.ts          # CLI runner\n│       ├── odoo/\n│       │   ├── SKILL.md        # LLM integration triggers for Odoo\n│       │   └── cli.ts          # Odoo client & CLI runner\n│       └── brevo/\n│           ├── SKILL.md        # LLM integration triggers for Brevo\n│           └── cli.ts          # Brevo client & CLI runner\n\n```\n\n---\n\n## Configuration\n\nDuplicate `.env.dist` as `.env` and fill in the credentials:\n\n```ini\n# Odoo ERP Configuration\nODOO_URL=\"https://your-instance.odoo.com\"\nODOO_DB=\"your_database_name\"\nODOO_USER=\"your_email@company.com\"\nODOO_PASSWORD=\"your_password_or_api_key\"\n\n# Brevo API Configuration\nBREVO_API_KEY=\"your_brevo_v3_api_key\"\n\n# Path to the Google Service Account key file (optional if placed at root as 'service_account.json')\nGOOGLE_APPLICATION_CREDENTIALS=\"service_account.json\"\n```\n\n### Google Service Account\nDownload your Google Cloud Service Account key file and:\n1. Place it at the root of the repository as `service_account.json`, OR\n2. Place it anywhere and set its absolute path in the `GOOGLE_APPLICATION_CREDENTIALS` environment variable inside `.env`.\n\n---\n\n## LLM Activation\n\nThis repository is structured as a **Gemini/Custom Agent Skill Set**. To activate these skills and allow your LLM coding assistant to automatically discover, read, and run these commands, configure customization roots:\n\n### 1. Workspace-Specific Activation (Recommended)\nCreate a directory named `.agents` at the root of your workspace, and create/link the skill definitions:\n```bash\nmkdir -p .agents/skills\nln -s ../../skills/vendor/google .agents/skills/google-calendar\nln -s ../../skills/vendor/odoo .agents/skills/odoo-integration\nln -s ../../skills/vendor/brevo .agents/skills/brevo-integration\nln -s ../../skills/actions/sync-meetings-to-odoo .agents/skills/sync-meetings-to-odoo\n```\n\n### 2. Global Activation\nAlternatively, copy or link these directories into your global configuration directory (usually located at `~/.gemini/config/skills/`):\n```bash\ncp -r skills/vendor/* ~/.gemini/config/skills/\ncp -r skills/actions/* ~/.gemini/config/skills/\n```\n\nOnce linked/copied, the LLM agent will detect the frontmatter name and description in each `SKILL.md` (e.g. `google-calendar`, `odoo-integration`), matching user requests to the respective CLI tools and executing actions autonomously.\n\n","readmeFilename":"README.md","_rev":"1-0cf370cc0b18787f5aced78b80413f06"}