{"slug":"developers/WIRING_INTEGRATION_MAP","title":"IntegrateWise — Wiring & Integration Map","section":"developers","sectionLabel":"Developers","status":"unclassified","type":"document","path":"developers/WIRING_INTEGRATION_MAP.mdx","bytes":31286,"description":null,"updated":null,"source":"integratewise/Integratewise-docs-wiki","content":"\n> **Purpose.** The codebase is ~99% built but the parts are wired together\n> inconsistently, so many components exist as _islands_: real code that is\n> never reached at runtime. This document is derived **only from the code**\n> (`package.json`, `wrangler.toml`, `tsconfig.json`, and source imports — no\n> prose/docs were used) and lists, per wiring plane, exactly what is connected,\n> what is an island, and the precise change needed to connect it for live\n> release.\n>\n> Generated by static analysis of the repository on branch\n> `claude/codebase-wiring-integration-tmih1t`.\n\n---\n\n## 0. Topology at a glance\n\n| Layer            | Count                                                    | Stack                           | How they wire together                                                                                               |\n| ---------------- | -------------------------------------------------------- | ------------------------------- | -------------------------------------------------------------------------------------------------------------------- |\n| Apps             | 5 (`web`, `marketing`, `mobile`, `desktop`, `portfolio`) | Vite + React Router SPA (`web`) | HTTP → gateway                                                                                                       |\n| Shared packages  | ~35 (`packages/*`)                                       | TS libraries                    | `package.json` deps + `@integratewise/*` imports                                                                     |\n| Backend services | 36 (`services/*`)                                        | Cloudflare Workers              | **Cloudflare service bindings** (`[[services]]` in `wrangler.toml`)                                                  |\n| Deploy target    | Cloudflare only                                          | `wrangler`                      | Netlify + Vercel are **disabled** (`netlify.toml` → `ignore = \"exit 0\"`, `vercel.json` → `deploymentEnabled: false`) |\n\n**71 workspaces** are resolved by `pnpm-workspace.yaml`. The frontend build\ninjects `VITE_API_BASE_URL` (the gateway URL) at build time; every backend\nworker reaches its peers through named service bindings.\n\nThere are **five wiring planes**, and there is at least one break in four of them:\n\n1. **Service mesh** (Worker → Worker via Cloudflare bindings) — **10 broken targets + 1 name collision** ← _primary release blocker_\n2. **Gateway routing** (frontend API contract → downstream bindings) — code is correct but rides on 3 broken bindings\n3. **Frontend → backend** (SPA → gateway) — no central client; 21 files each invent their own base URL\n4. **Shared package graph** (apps/services → `packages/*`) — 8 library packages are built but imported nowhere\n5. **Frontend-internal** (routes, module map, marketing) — duplicated marketing surface + 103 `_deprecated` files still in the tree\n\n---\n\n## 1. Wiring Plane 1 — Service mesh (Cloudflare service bindings) 🚨 **P0**\n\nCloudflare service bindings connect Workers by **name**: a `[[services]]`\nblock's `service = \"<worker-name>\"` must equal the _actual_ top-level `name`\nof the target Worker, or `wrangler deploy` fails / the binding resolves to\nnothing at runtime. There are **75 bindings** across the mesh; **10 distinct\ntargets reference a Worker name that no Worker actually declares.**\n\n### 1.1 The naming split (root cause)\n\nWorker names are inconsistent. Some services use a bare name, others an\n`integratewise-` prefix:\n\n| Bare-named workers                                                                                                                                 | `integratewise-`-prefixed workers                                                                    |\n| -------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |\n| `connector`, `continuity`, `gateway`, `intelligence`, `knowledge`, `l2`, `workflow`, `iw-agent-runtime`, `twin-orchestrator`, `hub-controller-api` | everything else (`integratewise-pipeline`, `integratewise-mcp-connector`, `integratewise-hermes`, …) |\n\nCallers guessed the _wrong_ side of the split. The bindings assume a uniform\n`integratewise-*` scheme (or a uniform bare scheme) that the deploy targets do\nnot follow.\n\n### 1.2 Broken binding targets (verified — none of these names is declared by any Worker, in any environment)\n\n| Referenced target (`service = …`)               | Actual deployed Worker                                                                                 | Callers (`worker(BINDING_VAR)`)                                                                                                                                                                                                                                                                                     |\n| ----------------------------------------------- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `integratewise-intelligence`                    | **`intelligence`**                                                                                     | `gateway(INTELLIGENCE)`, `integratewise-act(GOVERN)`, `integratewise-hermes(THINK)`, `integratewise-hermes(ACT)`, `knowledge(THINK)`, `integratewise-mcp-connector(INTELLIGENCE)`, `integratewise-pipeline(INTELLIGENCE)`, `integratewise-think(ACT)`, `integratewise-think(GOVERN)`, `integratewise-think(AGENTS)` |\n| `integratewise-knowledge`                       | **`knowledge`**                                                                                        | `gateway(KNOWLEDGE)`, `continuity(KNOWLEDGE)`, `integratewise-hermes(KNOWLEDGE)`, `intelligence(KNOWLEDGE)`, `iw-agent-runtime(KNOWLEDGE)`, `knowledge(IQ_HUB)`, `integratewise-mcp-connector(KNOWLEDGE)`, `integratewise-pipeline(KNOWLEDGE)`, `twin-orchestrator(KNOWLEDGE)`                                      |\n| `integratewise-connector`                       | **`connector`**                                                                                        | `integratewise-act(CONNECTOR)`, `integratewise-connector-sync(CONNECTOR)`, `intelligence(CONNECTOR)`, `iw-agent-runtime(CONNECTOR)`, `integratewise-webhook-ingress(CONNECTOR)`                                                                                                                                     |\n| `integratewise-continuity`                      | **`continuity`**                                                                                       | `integratewise-hermes(CONTINUITY)`                                                                                                                                                                                                                                                                                  |\n| `integratewise-l2`                              | **`l2`**                                                                                               | `gateway(L2)`                                                                                                                                                                                                                                                                                                       |\n| `integratewise-workflow`                        | **`workflow`**                                                                                         | `intelligence(WORKFLOW)`                                                                                                                                                                                                                                                                                            |\n| `integratewise-bff`                             | **`workflow`** (workflow _is_ the BFF)                                                                 | `integratewise-hermes(WORKFLOW)`, `integratewise-normalizer(BFF)`, `integratewise-webhook-ingress(BFF)`                                                                                                                                                                                                             |\n| `pipeline`                                      | **`integratewise-pipeline`**                                                                           | `workflow(SPINE)`                                                                                                                                                                                                                                                                                                   |\n| `mcp-connector`                                 | **`integratewise-mcp-connector`**                                                                      | `connector(MCP)`                                                                                                                                                                                                                                                                                                    |\n| `integratewise-integration-management-mcp-prod` | **`integratewise-integration-management-mcp`** (stale `-prod` suffix; no such env-named worker exists) | `integratewise-mcp-pool(INTEGRATION_MANAGEMENT)` × 3 blocks                                                                                                                                                                                                                                                         |\n\n**Impact:** the _core cognitive + knowledge + connector chains are severed._\n`intelligence`, `knowledge`, `continuity`, `connector`, `l2`, and `workflow`\nare the busiest hubs in the mesh, and they are exactly the ones addressed by\nthe wrong name. Anything that calls Think/Act/Govern, Knowledge search, or the\nconnector plane through a binding is calling a dead reference.\n\n### 1.3 Worker-name collision (verified)\n\nTwo different directories declare the **same** Worker name — they will\noverwrite each other on deploy:\n\n| Directory                                   | `name`                        | `main`           |\n| ------------------------------------------- | ----------------------------- | ---------------- |\n| `services/mcp-connector`                    | `integratewise-mcp-connector` | `src/index.ts`   |\n| `packages/integratewise-mcp-tool-connector` | `integratewise-mcp-connector` | `dist/worker.js` |\n\nWhichever deploys last wins the name `integratewise-mcp-connector`; the other's\ncode silently disappears from the URL every binding points at.\n\n### 1.4 Fix (lowest-risk path)\n\nRenaming a live Worker changes its URL and route bindings, so the safe move for\na release is to **fix the `service =` targets to match the already-deployed\nnames**, and pick one canonical name for the mcp-connector collision:\n\n- `integratewise-intelligence` → `intelligence`\n- `integratewise-knowledge` → `knowledge`\n- `integratewise-connector` → `connector`\n- `integratewise-continuity` → `continuity`\n- `integratewise-l2` → `l2`\n- `integratewise-workflow` **and** `integratewise-bff` → `workflow`\n- `pipeline` → `integratewise-pipeline`\n- `mcp-connector` → `integratewise-mcp-connector`\n- `integratewise-integration-management-mcp-prod` → `integratewise-integration-management-mcp`\n- Give `packages/integratewise-mcp-tool-connector` a distinct name (e.g. `integratewise-mcp-tool-connector`) or remove it if superseded by `services/mcp-connector`.\n\nThen adopt a single naming convention repo-wide (recommend `integratewise-*`\neverywhere, executed as a coordinated rename + binding update) so this class of\nbug cannot recur. A lint/CI check that asserts _\"every `service =` target\nexists as a declared `name`\"_ would have caught all 10.\n\n---\n\n## 2. Wiring Plane 2 — Gateway routing (frontend API contract)\n\n`services/gateway/src/index.ts` (2,618 lines) is the single front door. It owns\na `ROUTES` table (`const ROUTES: [string, RouteTarget][]`) mapping URL prefixes\nto binding names, e.g.:\n\n| Prefix                                                                                    | Binding        | Downstream worker                                       |\n| ----------------------------------------------------------------------------------------- | -------------- | ------------------------------------------------------- |\n| `/api/v1/connector`, `/connectors`, `/loader`, `/continuity-bridge`                       | `CONNECTOR`    | `integratewise-mcp-connector`                           |\n| `/api/v1/pipeline`, `/entity360`, `/identity`, `/cognitive/spine`                         | `PIPELINE`     | `integratewise-pipeline` ✅                             |\n| `/api/v1/intelligence`, `/agents`, `/cognitive/{think,act,govern,signals}`, `/brainstorm` | `INTELLIGENCE` | **`integratewise-intelligence` ❌ (broken — see §1.2)** |\n| `/api/v1/knowledge`, `/cognitive/memories`                                                | `KNOWLEDGE`    | **`integratewise-knowledge` ❌ (broken)**               |\n| `/api/v1/workspace`, `/analytics`, `/cognitive/{evidence,hitl}`                           | `BFF`          | `workflow` ✅                                           |\n| (L2 surface)                                                                              | `L2`           | **`integratewise-l2` ❌ (broken)**                      |\n\n**The routing logic is correct; the bindings under it are not.** The gateway\ndoes the right thing for every request, then hands three of its most important\ntargets (Intelligence, Knowledge, L2) to bindings that resolve to nothing.\nFixing Plane 1 lights up Plane 2 with no code change to the router itself.\n\n---\n\n## 3. Wiring Plane 3 — Frontend → backend (SPA → gateway)\n\nThe web app is a **Vite + React Router SPA** (`apps/web`, entry\n`src/main.tsx` → `src/App.tsx`, router in `src/routes.tsx`). It reaches the\nbackend over HTTP using `VITE_API_BASE_URL`.\n\n### 3.1 No centralized API client\n\n`VITE_API_BASE_URL` is read in **21 separate files**, each re-declaring its own\n`API_BASE` with an **inconsistent fallback**:\n\n| Fallback used                                          | Occurrences | Effect when `VITE_API_BASE_URL` is unset                      |\n| ------------------------------------------------------ | ----------- | ------------------------------------------------------------- |\n| `\\|\\| \"\"` (same-origin)                                | 6           | calls `/(path)` on the static-asset origin — no backend there |\n| `\\|\\| \"http://localhost:8786\"`                         | 5           | hardcoded to a local dev worker — dead in prod                |\n| `\\|\\| \"/api/v1\"`                                       | 1           | same-origin relative                                          |\n| `\\|\\| \"https://gateway.integratewise.ai\"`              | 2           | the only prod-correct fallback                                |\n| bare `import.meta.env.VITE_API_BASE_URL` (no fallback) | several     | `undefined` → `undefined/path`                                |\n\nA canonical helper exists (`apps/web/src/lib/api.ts`,\n`const API_BASE = import.meta.env.VITE_API_BASE_URL; // Gateway worker URL`) but\nis **not** the single source most components use. Examples of the drift:\n\n- `src/api/workspace-api.ts:112` → `|| \"/api/v1\"`\n- `src/components/core/auth/auth-provider.tsx:69,198` → `|| \"\"` then `API_BASE || \"https://gateway.integratewise.ai\"`\n- `src/hooks/use-twin-chat.ts:23` and `src/components/l1/twin/twin-workbench.tsx:79` → `|| \"http://localhost:8786\"`\n- `src/hooks/useSchemaDashboard.ts:83` → bare `${VITE_API_BASE_URL}/bff/v1/dashboard` (breaks if unset)\n\nThere are **115 `fetch()` call sites** in the web app; because each resolves its\nbase independently, a single missing/incorrect build var yields _partial_\nbreakage (some views hit prod, some hit localhost, some hit the asset origin) —\nthe hardest failure mode to diagnose.\n\n### 3.2 Fix\n\nRoute **all** frontend calls through one module (`src/lib/api.ts`) that resolves\nthe base once, fails loudly if `VITE_API_BASE_URL` is missing in a production\nbuild, and drops every hardcoded `http://localhost:8786` / `\"\"` fallback.\n`.env.example` already documents `VITE_API_BASE_URL=http://localhost:8786`\n(line 48) — the wiring gap is enforcement, not documentation.\n\n---\n\n## 4. Wiring Plane 4 — Shared package graph (island libraries)\n\nInternal dependency edges were extracted from every workspace `package.json`\n(`@integratewise/*` / `@iw/*`) **and** confirmed against actual source imports.\n`@integratewise/types` is healthy (imported by 30 workspaces); the connector/\nlib core (`connector-utils`, `connectors`, `connector-contracts`, `lib`) is\nwired. But several **whole library packages are imported by zero source files\nanywhere outside their own directory** — they are complete islands:\n\n| Package                              | Source importers (excl. self) | Note                                                                                                                           |\n| ------------------------------------ | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |\n| `@integratewise/ui`                  | **0**                         | A full UI library. The web app instead ships **548 components** under `src/components/**` and consumes `@radix-ui/*` directly. |\n| `@integratewise/design-system`       | **0**                         | Design tokens/system unused; web app uses `src/figma-theme-merged.css` + local tokens.                                         |\n| `@integratewise/db`                  | **0**                         | DB package referenced by nothing.                                                                                              |\n| `@integratewise/analytics`           | **0**                         | (web app uses `src/clients/analytics/*` instead)                                                                               |\n| `@integratewise/hermes-spine-memory` | **0**                         |                                                                                                                                |\n| `@integratewise/knowledge-bank-ui`   | **0**                         |                                                                                                                                |\n| `@integratewise/handoff-adapters`    | **0**                         |                                                                                                                                |\n| `@integratewise/coda-pack`           | **0**                         |                                                                                                                                |\n| `@integratewise/auth`                | **1**                         | barely wired; web app uses `@descope/web-js-sdk` + local `src/components/core/auth/*`                                          |\n\nFor each island, decide **connect or delete**: either route real usage through\nthe package (e.g. make `apps/web` consume `@integratewise/ui` /\n`design-system` instead of its private component tree) or remove the package so\nthe graph reflects reality. Note the web app declares only 5 internal deps\n(`config`, `core`, `rbac`, `types`, `workbench-config`) — it is deliberately\ndecoupled from the shared UI/auth/db packages today.\n\n---\n\n## 5. Wiring Plane 5 — Frontend-internal wiring\n\n- **Route table** (`src/routes.tsx`, `createAppRouter()`): top-level routes are\n  slug-driven off `src/lib/router-config.ts` (`MODULE_ROUTES`, 13 modules:\n  dashboard, accounts, contacts, meetings, tasks, calendar, docs, knowledge,\n  pipeline, deals, analytics, settings, home). `/app/:module` → `AppShell`,\n  marketing slugs → `MarketingShell`, `/marketplace`, `/onboarding`,\n  `/auth/callback`, `/oauth/callback/:provider`. This layer is coherent.\n- **Duplicated marketing surface:** marketing lives in **two** places —\n  `apps/web/src/pages/marketing/*` (14 pages, wired into the SPA router) **and**\n  a separate `apps/marketing` app. Pick one as canonical to avoid drift.\n- **Dead code in the tree:** **103 files** under `apps/web/src/**/_deprecated/`\n  (`components/_deprecated`, `hooks/_deprecated`), plus files explicitly\n  `exclude`d in `apps/web/tsconfig.json` (e.g.\n  `components/workbench/views/department-data-grid.tsx`,\n  `pages/work/accounts/account-detail.tsx`). These inflate the surface and hide\n  which components are actually reachable — delete or quarantine before release.\n- **Root config oddities to confirm:** root `wrangler.jsonc` names the project\n  `integratewise-live` with `assets.directory` pointing at\n  `services/connector-sync` (a service source dir, not a built asset dir) — verify\n  this is intentional. `next.config.mjs` exists at root although the web app is\n  Vite, not Next — a leftover that can mislead tooling.\n\n---\n\n## 6. Prioritized path to live release\n\n| Priority | Action                                                                                                                                                       | Plane | Why                                                                                                  |\n| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----- | ---------------------------------------------------------------------------------------------------- |\n| **P0**   | Fix the **10 broken service-binding targets** (§1.2) and resolve the **`integratewise-mcp-connector` name collision** (§1.3).                                | 1     | Core cognitive/knowledge/connector chains are dead until this lands. Unblocks Plane 2 automatically. |\n| **P0**   | Add a CI check: every `wrangler.toml` `service =` target must exist as a declared Worker `name`.                                                             | 1     | Prevents regression of the whole class of bug.                                                       |\n| **P1**   | Consolidate frontend API access into `src/lib/api.ts`; require `VITE_API_BASE_URL`; remove `localhost`/`\"\"` fallbacks (§3).                                  | 3     | Eliminates partial-breakage-by-view in production.                                                   |\n| **P1**   | Standardize Worker naming on one convention (recommend `integratewise-*`) via a coordinated rename + binding update.                                         | 1     | Makes the mesh self-consistent and legible.                                                          |\n| **P2**   | For each island package (§4), decide connect-or-delete.                                                                                                      | 4     | Removes dead weight / recovers intended reuse (esp. `ui`, `design-system`).                          |\n| **P2**   | De-duplicate the marketing surface; delete the 103 `_deprecated` files; verify root `wrangler.jsonc` assets dir and remove the stray root `next.config.mjs`. | 5     | Shrinks the reachable surface for a clean launch.                                                    |\n\n---\n\n## Appendix A — Full service-binding matrix (as coded today)\n\n```\nconnector             MCP→mcp-connector✗  KNOWLEDGE→knowledge✅  LOADER→integratewise-loader✅\n                      MCP→integratewise-mcp-connector✅ (dup var)  STORE→integratewise-store✅\ncontinuity            KNOWLEDGE→integratewise-knowledge✗  PIPELINE→integratewise-pipeline✅\ngateway               PIPELINE→integratewise-pipeline✅  AGENT_RUNTIME→iw-agent-runtime✅\n                      INTELLIGENCE→integratewise-intelligence✗  CONNECTOR→integratewise-mcp-connector✅\n                      CONNECTOR_SYNC→integratewise-connector-sync✅  KNOWLEDGE→integratewise-knowledge✗\n                      BFF→workflow✅  L2→integratewise-l2✗  WEBHOOK_INGRESS→integratewise-webhook-ingress✅\n                      HUB_CONTROLLER→hub-controller-api✅  ADMIN→integratewise-admin✅\n                      BILLING→integratewise-billing✅  TENANTS→integratewise-tenants✅\nintegratewise-act     CONNECTOR→integratewise-connector✗  GOVERN→integratewise-intelligence✗  PIPELINE→integratewise-pipeline✅\nintegratewise-agent-registry   PIPELINE→integratewise-pipeline✅\nintegratewise-connector-sync   CONNECTOR→integratewise-connector✗\nintegratewise-hermes  SPINE→integratewise-pipeline✅  KNOWLEDGE→integratewise-knowledge✗  THINK→integratewise-intelligence✗\n                      ACT→integratewise-intelligence✗  CONTINUITY→integratewise-continuity✗  WORKFLOW→integratewise-bff✗\nintegratewise-loader  MCP→integratewise-mcp-connector✅\nintegratewise-mcp-connector  KNOWLEDGE→integratewise-knowledge✗  CONTINUITY→continuity✅  PIPELINE→integratewise-pipeline✅\n                      INTELLIGENCE→integratewise-intelligence✗  AGENT_RUNTIME→iw-agent-runtime✅\nintegratewise-mcp-pool  INTEGRATION_MANAGEMENT→integratewise-integration-management-mcp-prod✗  SPINE→integratewise-spine✅\nintegratewise-normalizer  SPINE→integratewise-pipeline✅  BFF→integratewise-bff✗\nintegratewise-pipeline  KNOWLEDGE→integratewise-knowledge✗  MCP→integratewise-mcp-connector✅  INTELLIGENCE→integratewise-intelligence✗\nintegratewise-task-management  TASK_MANAGEMENT→integratewise-task-management✅  MCP_POOL→integratewise-mcp-pool✅\nintegratewise-tenants  CONNECTOR_SYNC→integratewise-connector-sync✅\nintegratewise-think   ACT→integratewise-intelligence✗  GOVERN→integratewise-intelligence✗  AGENTS→integratewise-intelligence✗\nintegratewise-webhook-ingress  MCP→integratewise-mcp-connector✅  BFF→integratewise-bff✗  CONNECTOR→integratewise-connector✗\nintelligence          CONNECTOR→integratewise-connector✗  WORKFLOW→integratewise-workflow✗  KNOWLEDGE→integratewise-knowledge✗  PIPELINE→integratewise-pipeline✅\niw-agent-runtime      INTELLIGENCE→intelligence✅  PIPELINE→integratewise-pipeline✅  CONTINUITY→continuity✅  CONNECTOR→integratewise-connector✗  KNOWLEDGE→integratewise-knowledge✗\nknowledge             PIPELINE→integratewise-pipeline✅  THINK→integratewise-intelligence✗  IQ_HUB→integratewise-knowledge✗\ntwin-orchestrator     MCP_CONNECTOR→integratewise-mcp-connector✅  INTELLIGENCE→intelligence✅  PIPELINE→integratewise-pipeline✅  KNOWLEDGE→integratewise-knowledge✗  CONTINUITY→continuity✅\nworkflow              SPINE→pipeline✗  CONNECTOR→connector✅  KNOWLEDGE→knowledge✅  THINK→intelligence✅  ACT→intelligence✅\n```\n\n`✅` = target name exists · `✗` = target name matches no declared Worker (broken)\n\n## Appendix B — Directory → canonical Worker name\n\n| Directory                        | Worker `name`                           | Directory                                 | Worker `name`                              |\n| -------------------------------- | --------------------------------------- | ----------------------------------------- | ------------------------------------------ |\n| services/connector               | `connector`                             | services/intelligence                     | `intelligence`                             |\n| services/continuity              | `continuity`                            | services/knowledge                        | `knowledge`                                |\n| services/gateway                 | `gateway`                               | services/l2                               | `l2`                                       |\n| services/workflow                | `workflow`                              | services/pipeline                         | `integratewise-pipeline`                   |\n| services/iw-agent-runtime        | `iw-agent-runtime`                      | services/twin-orchestrator                | `twin-orchestrator`                        |\n| services/mcp-connector           | `integratewise-mcp-connector`           | packages/integratewise-mcp-tool-connector | `integratewise-mcp-connector` ⚠️ collision |\n| services/hermes                  | `integratewise-hermes`                  | services/normalizer                       | `integratewise-normalizer`                 |\n| services/spine                   | `integratewise-spine`                   | services/store                            | `integratewise-store`                      |\n| services/loader                  | `integratewise-loader`                  | services/act                              | `integratewise-act`                        |\n| services/think                   | `integratewise-think`                   | services/govern                           | `integratewise-govern`                     |\n| services/admin                   | `integratewise-admin`                   | services/billing                          | `integratewise-billing`                    |\n| services/tenants                 | `integratewise-tenants`                 | services/connector-sync                   | `integratewise-connector-sync`             |\n| services/webhook-ingress         | `integratewise-webhook-ingress`         | services/mcp-pool                         | `integratewise-mcp-pool`                   |\n| services/task-management         | `integratewise-task-management`         | services/agent-registry                   | `integratewise-agent-registry`             |\n| services/telemetry               | `integratewise-telemetry`               | services/signals                          | `integratewise-signals`                    |\n| services/schema-ai               | `integratewise-schema-ai`               | services/folder-watcher                   | `integratewise-folder-watcher`             |\n| services/vercel-mcp              | `integratewise-vercel-mcp`              | services/integration-management-mcp       | `integratewise-integration-management-mcp` |\n| services/provider-management-mcp | `integratewise-provider-management-mcp` | packages/api                              | `hub-controller-api`                       |\n| packages/webhooks                | `integratewise-webhooks`                |                                           |                                            |\n"}