{"_id":"@comet_digital_agency/kanban-teams-sync","name":"@comet_digital_agency/kanban-teams-sync","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@comet_digital_agency/kanban-teams-sync","version":"1.0.0","description":"Auto-sync pi-teams tasks to pi-kanban for Oh My Pi. Mirrors team tasks to a web dashboard in real-time with hot reload via SSE.","main":"src/extension.ts","type":"module","scripts":{"dev":"node --loader tsx src/extension.ts"},"devDependencies":{"typescript":"^5.0.0","tsx":"^4.0.0"},"repository":{"type":"git","url":"git+https://github.com/cometdigitalagency/kanban-teams-sync.git"},"homepage":"https://github.com/cometdigitalagency/kanban-teams-sync","bugs":{"url":"https://github.com/cometdigitalagency/kanban-teams-sync/issues"},"keywords":["omp","oh-my-pi","pi-teams","pi-kanban","sync","kanban","task-management","real-time","dashboard"],"author":{"name":"Comet Digital Agency"},"license":"MIT","publishConfig":{"access":"public"},"gitHead":"a71b1bb036cf853e960187088217efb8e05432a2","_id":"@comet_digital_agency/kanban-teams-sync@1.0.0","_nodeVersion":"26.2.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-z351HoqBe7TiaNSeUr4ezpdxBTkIrlrWjG9UrWu9jfnXG2kB6NRFp51Fgf0NjR/CRXBYmLv80+JlD3sns5DLwQ==","shasum":"28e18ac7339fa7377a7c73ff8f38ae71108c0ee3","tarball":"https://registry.npmjs.org/@comet_digital_agency/kanban-teams-sync/-/kanban-teams-sync-1.0.0.tgz","fileCount":6,"unpackedSize":30046,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIC6KM00V/ZYXlLsLLkbsJNhwHkSX6nZgdU2Bqjkcr5c+AiEA6rZVkytCLeIRs+Ru+n6DY3VQLkLRE0rdzdu269xevrU="}]},"_npmUser":{"name":"comet_dev","email":"dev@comet.la"},"directories":{},"maintainers":[{"name":"comet_dev","email":"dev@comet.la"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/kanban-teams-sync_1.0.0_1781034010010_0.8166659417534208"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-09T19:40:09.861Z","1.0.0":"2026-06-09T19:40:10.211Z","modified":"2026-06-09T19:40:10.423Z"},"maintainers":[{"name":"comet_dev","email":"dev@comet.la"}],"description":"Auto-sync pi-teams tasks to pi-kanban for Oh My Pi. Mirrors team tasks to a web dashboard in real-time with hot reload via SSE.","homepage":"https://github.com/cometdigitalagency/kanban-teams-sync","keywords":["omp","oh-my-pi","pi-teams","pi-kanban","sync","kanban","task-management","real-time","dashboard"],"repository":{"type":"git","url":"git+https://github.com/cometdigitalagency/kanban-teams-sync.git"},"author":{"name":"Comet Digital Agency"},"bugs":{"url":"https://github.com/cometdigitalagency/kanban-teams-sync/issues"},"license":"MIT","readme":"# @cometdigitalagency/kanban-teams-sync\n\nAuto-sync **pi-teams** task board to **pi-kanban** web dashboard for **Oh My Pi (OMP)**.\n\nThis extension automatically mirrors your team's pi-teams tasks to pi-kanban format, enabling real-time visualization in a web UI with hot-reload via Server-Sent Events (SSE). No manual refresh needed—tasks update instantly on the kanban board.\n\n## Features\n\n✅ **Automatic Sync** — Tasks sync every 2 seconds (configurable)  \n✅ **Real-Time Hot Reload** — Changes appear instantly via SSE  \n✅ **Multi-Team Support** — Sync multiple teams simultaneously  \n✅ **Auto-Start** — Runs on OMP session startup  \n✅ **Watch Mode** — Detects new, modified, and deleted tasks  \n✅ **Zero Config** — Works out-of-the-box after installation  \n\n## Quick Start\n\n### 1. Prerequisites\n\n- **OMP** (Oh My Pi) installed and running\n- **pi-kanban** web dashboard running (see setup below)\n- **pi-teams** tasks directory: `~/.pi/tasks/`\n\n### 2. Install Package\n\n```bash\nomp install npm:@cometdigitalagency/kanban-teams-sync\n```\n\n### 3. Configure OMP\n\nEdit `~/.omp/settings.json`:\n\n```json\n{\n  \"packages\": [\n    \"@cometdigitalagency/kanban-teams-sync\"\n  ],\n  \"env\": {\n    \"OMP_TEAMS_SYNC\": \"software\",\n    \"OMP_TEAMS_SYNC_INTERVAL\": \"2000\",\n    \"OMP_TEAMS_SYNC_ENABLED\": \"true\"\n  }\n}\n```\n\n### 4. Reload OMP\n\n```bash\nomp /reload\n```\n\nOn startup, you should see:\n\n```\n[omp-pi-teams-kanban-sync] Initialized with teams: software\n[sync] watching software (interval: 2000ms)\n```\n\n### 5. View in pi-kanban\n\nThe kanban dashboard should auto-detect the session. Look for `pi-teams/software` in the sessions list.\n\n---\n\n## Complete Setup Guide\n\n### Install OMP\n\n```bash\n# Install Oh My Pi globally\nnpm install -g @oh-my-pi/cli\n\n# Start OMP\nomp\n```\n\n### Install pi-kanban\n\npi-kanban is a separate tool that visualizes pi-teams tasks. Install and run it:\n\n```bash\n# Clone or download pi-kanban\ngit clone https://github.com/NikiforovAll/pi-kanban.git\ncd pi-kanban\n\n# Install dependencies\nnpm install\n\n# Start the web server (runs on http://localhost:3460)\nnode server.js\n```\n\nOr use npx:\n\n```bash\nnpx pi-kanban\n```\n\n### Install This Extension\n\nOnce OMP is running, install the kanban-teams-sync extension:\n\n```bash\n# In OMP session\nomp install npm:@cometdigitalagency/kanban-teams-sync\n```\n\nOr manually edit `~/.omp/settings.json`:\n\n```json\n{\n  \"packages\": [\n    \"@cometdigitalagency/kanban-teams-sync\"\n  ],\n  \"env\": {\n    \"OMP_TEAMS_SYNC\": \"software\",\n    \"OMP_TEAMS_SYNC_INTERVAL\": \"2000\",\n    \"OMP_TEAMS_SYNC_ENABLED\": \"true\"\n  }\n}\n```\n\nReload OMP:\n\n```bash\nomp /reload\n```\n\n---\n\n## How It Works\n\n**Architecture:**\n\n```\npi-teams tasks           → kanban-teams-sync → pi-kanban format\n~/.pi/tasks/software/    → (watch mode)       → ~/.pi/agent/kanban/tasks/pi-teams-software/\n   ↓                     ↓                      ↓\nJSON task files      Sync every 2s         Web UI displays tasks\n   (source)          (auto-detect)         (hot reload via SSE)\n```\n\n**Startup Flow:**\n1. OMP starts\n2. Extension initializes\n3. Spawns watch process for each configured team\n4. Creates synthetic JSONL session file for pi-kanban discovery\n5. Watches task directory every 2 seconds for changes\n6. Syncs any changes to kanban format in real-time\n\n**Sync Features:**\n- ✅ New tasks detected automatically\n- ✅ Modified tasks updated instantly\n- ✅ Deleted tasks marked as deleted (not removed)\n- ✅ Task relationships (blockedBy, blocks) preserved\n- ✅ Metadata synced (description, team, priority)\n\n---\n\n## Configuration\n\n### Environment Variables\n\nConfigure in `~/.omp/settings.json`:\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `OMP_TEAMS_SYNC` | `software` | Comma-separated team names to sync (e.g., `software,product,ops`) |\n| `OMP_TEAMS_SYNC_INTERVAL` | `2000` | Sync interval in milliseconds |\n| `OMP_TEAMS_SYNC_ENABLED` | `true` | Enable/disable auto-sync |\n\n### Multiple Teams\n\n```json\n{\n  \"env\": {\n    \"OMP_TEAMS_SYNC\": \"software,product,infrastructure\",\n    \"OMP_TEAMS_SYNC_INTERVAL\": \"3000\"\n  }\n}\n```\n\nThis will sync three teams and check for changes every 3 seconds.\n\n---\n\n## Testing\n\n### 1. Verify Manual Sync\n\n```bash\nnode ~/.pi/scripts/sync-pi-teams-to-kanban.mjs software\n```\n\nExpected output:\n```\n[2026-06-09T...] synced software: 5 tasks\n```\n\n### 2. Test Watch Mode\n\n**Terminal 1: Start watch mode**\n\n```bash\nnode ~/.pi/scripts/sync-pi-teams-to-kanban.mjs software --watch\n```\n\n**Terminal 2: Create a task**\n\n```bash\ncat > ~/.pi/tasks/software/test-task.json << 'EOF'\n{\n  \"id\": \"test-task\",\n  \"subject\": \"🎯 Test Task\",\n  \"description\": \"This is a test task\",\n  \"status\": \"pending\",\n  \"blocks\": [],\n  \"blockedBy\": []\n}\nEOF\n```\n\n**Terminal 1: Should show within 2 seconds**\n\n```\n[2026-06-09T...] synced software: 6 tasks\n```\n\n### 3. Test OMP Auto-Start\n\n```bash\nomp /reload\n```\n\nWatch for log messages:\n```\n[omp-pi-teams-kanban-sync] Initialized with teams: software\n[sync] watching software (interval: 2000ms)\n```\n\n### 4. Verify Kanban Display\n\nOpen pi-kanban: http://localhost:3460\n\nLook for session named `pi-teams/software` with your tasks displayed.\n\n---\n\n## Directories\n\n### Source (pi-teams)\n```\n~/.pi/tasks/software/\n├── task-1.json\n├── task-2.json\n└── ...\n```\n\n### Output (pi-kanban format)\n```\n~/.pi/agent/kanban/tasks/pi-teams-software/\n├── task-1.json (synced)\n├── task-2.json (synced)\n└── ...\n```\n\n### Session Metadata\n```\n~/.pi/agent/sessions/pi-teams/\n└── pi-teams-software.jsonl (pi-kanban discovery)\n```\n\n---\n\n## Troubleshooting\n\n### Tasks Not Syncing\n\n```bash\n# 1. Check if script exists\nls ~/.pi/scripts/sync-pi-teams-to-kanban.mjs\n\n# 2. Run manual sync\nnode ~/.pi/scripts/sync-pi-teams-to-kanban.mjs software\n\n# 3. Check source tasks\nls ~/.pi/tasks/software/\n\n# 4. Check synced output\nls ~/.pi/agent/kanban/tasks/pi-teams-software/\n```\n\n### Extension Not Loading\n\n```bash\n# Verify config\ncat ~/.omp/settings.json | jq .\n\n# Check package is installed\nnpm list @cometdigitalagency/kanban-teams-sync\n\n# Reinstall\nomp install npm:@cometdigitalagency/kanban-teams-sync\n\n# Reload\nomp /reload\n```\n\n### pi-kanban Not Detecting Tasks\n\n```bash\n# Verify session file exists\ncat ~/.pi/agent/sessions/pi-teams/pi-teams-software.jsonl\n\n# Verify kanban task files exist\nls ~/.pi/agent/kanban/tasks/pi-teams-software/\n\n# Restart pi-kanban\n# (It watches for changes automatically)\n```\n\n---\n\n## Publishing Notes\n\nThis package is published to npm as `@cometdigitalagency/kanban-teams-sync`.\n\n**To authenticate and publish (maintainers only):**\n\n```bash\n# Login to npm\nnpm login --scope=@cometdigitalagency\n\n# Publish\nnpm publish --access public\n```\n\n---\n\n## Development\n\n### Run Locally\n\n```bash\ncd ~/Documents/GitHub/omp/kanban-teams-sync\nnpm run dev\n```\n\n### Build\n\nTypeScript source compiles to JavaScript on-the-fly via tsx loader.\n\n---\n\n## Links\n\n- **Repository**: https://github.com/cometdigitalagency/kanban-teams-sync\n- **NPM Package**: https://npmjs.com/package/@cometdigitalagency/kanban-teams-sync\n- **pi-kanban**: https://github.com/NikiforovAll/pi-kanban\n- **Oh My Pi**: https://github.com/oh-my-pi/omp\n\n---\n\n## License\n\nMIT\n\nRestart OMP:\n\n```sh\nomp /reload\n```\n\nOn startup, you'll see:\n\n```\n[omp-pi-teams-kanban-sync] Initialized with teams: software\n[sync] watching software (interval: 2000ms)\n```\n\n## View in pi-kanban\n\n```sh\n/kanban open web\n```\n\nLook for sessions named `pi-teams/software`, `pi-teams/product`, etc.\n\n## How it works\n\n**Startup:**\n- Extension runs on OMP session start\n- Spawns sync script for each team in `OMP_TEAMS_SYNC`\n- Syncs once, then watches for changes every 2 seconds (configurable)\n\n**One-way sync:**\n- Source: `~/.pi/tasks/<team>/*.json` (pi-teams)\n- Output: `~/.pi/agent/kanban/tasks/pi-teams-<team>/` (pi-kanban format)\n- Creates synthetic JSONL session so pi-kanban discovers the team\n- Deletes removed tasks automatically\n\n**Watch mode:**\n- Polls every 2 seconds (default)\n- Detects new, modified, and deleted tasks\n- Mirrors changes to pi-kanban format immediately\n\n## Testing\n\n### 1. Manual sync\n\n```sh\nnode ~/.pi/scripts/sync-pi-teams-to-kanban.mjs software\n```\n\nExpected:\n\n```\n[2026-06-09T...] synced software: 3 tasks\n```\n\nCheck files created:\n\n```sh\nls ~/.pi/agent/kanban/tasks/pi-teams-software/\nls ~/.pi/agent/sessions/pi-teams/pi-teams-software.jsonl\n```\n\n### 2. Watch mode\n\nTerminal 1:\n\n```sh\nnode ~/.pi/scripts/sync-pi-teams-to-kanban.mjs software --watch\n```\n\nTerminal 2 (create a task):\n\n```sh\nomp -p \"Create a task in the software team with subject 'Test task'\"\n```\n\nTerminal 1 should show sync output within 2 seconds:\n\n```\n[2026-06-09T...] synced software: 4 tasks\n```\n\n### 3. OMP auto-start\n\n```sh\nomp /reload\n```\n\nCheck logs:\n\n```\n[omp-pi-teams-kanban-sync] Initialized with teams: software\n[sync] watching software (interval: 2000ms)\n```\n\n### 4. View results\n\n```sh\n/kanban open web\n```\n\nNavigate to `pi-teams/software` session. Tasks should match `~/.pi/tasks/software/`.\n\n## Configuration\n\n| Variable | Default | Purpose |\n|----------|---------|---------|\n| `OMP_TEAMS_SYNC` | `software` | Comma-separated teams to sync |\n| `OMP_TEAMS_SYNC_INTERVAL` | `2000` | Watch interval in milliseconds |\n| `OMP_TEAMS_SYNC_ENABLED` | `true` | Enable/disable auto-sync |\n\nExample: sync multiple teams\n\n```json\n{\n  \"env\": {\n    \"OMP_TEAMS_SYNC\": \"software,product,ops\",\n    \"OMP_TEAMS_SYNC_INTERVAL\": \"3000\"\n  }\n}\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-ced92af9bdcead2dd8159cd52d9e6f80"}