{"slug":"strategy/business-strategy/PIN_DISCOVERY_AND_WIRING_MAP","title":"IntegrateWise: Pin Discovery & Wiring Map","section":"strategy","sectionLabel":"Strategy","status":"unclassified","type":"document","path":"strategy/business-strategy/PIN_DISCOVERY_AND_WIRING_MAP.mdx","bytes":15442,"description":null,"updated":null,"source":"integratewise/Integratewise-docs-wiki","content":"\n> **Tier C — Historical.** This document is a point-in-time snapshot preserved for reference. For current architecture, see [CANONICAL_PLATFORM_ARCHITECTURE.md](../architecture/CANONICAL_PLATFORM_ARCHITECTURE.md).\n\n## The Situation: 1000+ Commits, All Pins Exist\n\nEvery pin already exists in the codebase. The 12 frameworks are implemented across 1000+ commits across services, packages, and apps.\n\n**What's Missing**: A visible, working **Customer Zero** that proves everything is wired and discoverable.\n\n---\n\n## Pin Inventory (What Exists)\n\n### Layer 1: Entry Points (Ingress Frameworks)\n\n**Gateway Service** (`services/gateway/src/`)\n\n- ✅ JWT validation (`lib/jwt.ts`)\n- ✅ Tenant resolution\n- ✅ Customer Zero provisioning (`customer-zero.ts`)\n- ✅ CORS + Rate limiting\n- ✅ Routing table to all downstream services\n- **Pin**: Gateway.handle(request) → routes to all frameworks\n- **Already wired to**: 7 downstream services (Connector, Pipeline, Intelligence, Knowledge, BFF, L2, Agent Runtime)\n\n**Auth Framework** (`services/gateway/src/auth.ts`)\n\n- ✅ OAuth flow\n- ✅ JWT signing/verification\n- ✅ Session management via KV\n- **Pin**: Auth.authenticate(credentials) → returns JWT + tenant context\n\n---\n\n### Layer 2: Capabilities Frameworks\n\n**Capability Framework (ADK)** (`packages/adk/`)\n\n- ✅ Tool registry\n- ✅ Skill registry\n- ✅ Capability execution runtime\n- **Pin**: ADK.execute(capabilityId, context) → executes capability\n\n**Connector Service** (`services/connector/src/`)\n\n- ✅ 80+ integrations (Salesforce, HubSpot, GitHub, etc.)\n- ✅ OAuth handling\n- ✅ MCP connector bridge\n- **Pin**: Connector.invoke(integration, method, params) → executes on external system\n\n**MCP Connector** (`services/mcp-connector/`)\n\n- ✅ Model Context Protocol server\n- ✅ Tool discovery\n- ✅ MCP transport (SSE)\n- **Pin**: MCP.listTools() → returns available tools\n\n**Pipeline Service** (`services/pipeline/src/`)\n\n- ✅ Workflow execution\n- ✅ Approval chains\n- ✅ State management\n- **Pin**: Pipeline.execute(workflow) → executes workflow with approvals\n\n---\n\n### Layer 3: Continuity & Context Frameworks (The Moat)\n\n**Continuity Service** (`services/continuity/src/`)\n\n- ✅ Continuity assembler (normalizes data from sources)\n- ✅ Supabase integration (data sync)\n- ✅ Event store\n- **Pin**: Continuity.assemble(workspace) → returns normalized org view\n- **Feeds**: Memory, Context, Entity Graph\n\n**Memory Framework** (`packages/hermes-spine-memory/`)\n\n- ✅ Personal memory\n- ✅ Org memory\n- ✅ AI memory lifecycle\n- **Pin**: Memory.record(interaction) → records to continuity\n- **Pin**: Memory.retrieve(query) → retrieves user/org context\n\n**Context Framework**\n\n- ✅ Entity360 (full entity context)\n- ✅ Timeline (interaction history)\n- ✅ Awareness profiles\n- **Pin**: Context.assemble(entity) → returns rich context for decision-making\n\n**Knowledge Service** (`services/knowledge/src/`)\n\n- ✅ Doc ingestion + search\n- ✅ Embedding generation\n- ✅ Schema AI (proposes entity mappings)\n- **Pin**: Knowledge.search(query) → returns relevant docs\n- **Pin**: Knowledge.proposeSchema(entity) → suggests entity structure\n\n---\n\n### Layer 4: Intelligence Frameworks\n\n**Intelligence Service** (`services/intelligence/src/`)\n\n- ✅ LLM orchestration (multiple models)\n- ✅ Agent orchestration\n- ✅ Reasoning loops\n- **Pin**: Intelligence.reason(context) → returns decision/plan\n- **Pin**: Intelligence.executeAgent(agent, task) → runs agent with tools\n\n**Twin Service** (`services/twin-orchestrator/`)\n\n- ✅ User twins (digital representation)\n- ✅ Org twins\n- ✅ Agent twins\n- ✅ Durable Objects for state\n- **Pin**: Twin.handoff(request, context) → delegates to user's twin\n- **Pin**: Twin.sync(userData) → keeps twin in sync\n\n**Action Loop** (`services/intelligence/src/action-loop.ts`)\n\n- ✅ OODA implementation\n- ✅ Tool calling\n- ✅ Feedback integration\n- **Pin**: ActionLoop.observe(data) → captures observation\n- **Pin**: ActionLoop.act(decision) → executes action + records outcome\n\n**Think Service** (`services/think/`)\n\n- ✅ Planning\n- ✅ Reasoning chains\n- ✅ Multi-step orchestration\n- **Pin**: Think.plan(goal) → creates multi-step plan\n\n**Govern Service** (`services/govern/`)\n\n- ✅ Policy evaluation\n- ✅ RBAC enforcement\n- ✅ Approval workflows\n- **Pin**: Govern.canAccess(user, resource) → returns access decision\n- **Pin**: Govern.requestApproval(request) → starts approval chain\n\n---\n\n### Layer 5: Networking & Collaboration Framework\n\n**Signals Service** (`services/signals/`)\n\n- ✅ Event sourcing\n- ✅ Signal broadcasting\n- ✅ Learning feedback loops\n- **Pin**: Signals.record(event) → records to event stream\n- **Pin**: Signals.broadcast(event) → publishes to subscribers\n\n**Webhook Ingress** (`services/webhook-ingress/`)\n\n- ✅ Webhook verification\n- ✅ Real-time routing\n- ✅ Event broadcasting\n- **Pin**: WebhookIngress.handleWebhook(source, payload) → publishes event\n\n**Store Service** (`services/store/`)\n\n- ✅ Workspace state management\n- ✅ Shared storage for all services\n- **Pin**: Store.get(key) → retrieves workspace state\n- **Pin**: Store.set(key, value) → updates workspace state\n\n---\n\n### Layer 6: Data Access & Governance\n\n**RBAC Package** (`packages/rbac/`)\n\n- ✅ Role-based access control\n- ✅ Resource-level permissions\n- ✅ Team-level authorization\n- **Pin**: RBAC.hasPermission(user, action, resource) → returns bool\n\n**Tenancy Package** (`packages/tenancy/`)\n\n- ✅ Multi-tenant data isolation\n- ✅ Tenant context resolution\n- ✅ Database schema per tenant\n- **Pin**: Tenancy.resolveContext(request) → returns tenant context\n\n**Tenants Service** (`services/tenants/`)\n\n- ✅ Tenant provisioning\n- ✅ Workspace creation\n- ✅ Billing integration\n- **Pin**: Tenants.provision(orgData) → creates new workspace\n\n---\n\n### Layer 7: SDK (API Contracts)\n\n**@integratewise/sdk** (`packages/sdk/`)\n\n- ✅ Accounts client\n- ✅ Capability client\n- ✅ Contracts\n- ✅ Memory client\n- ✅ Proposals client\n- **Exports**:\n  - `SDK.authenticate()`\n  - `SDK.executeCapability()`\n  - `SDK.recordMemory()`\n  - `SDK.getContext()`\n  - `SDK.propose()`\n\n**@integratewise/types** (`packages/types/`)\n\n- ✅ TypeScript contracts\n- ✅ Domain models\n- ✅ API schemas\n\n**@integratewise/adk** (`packages/adk/`)\n\n- ✅ Accelerator Development Kit\n- ✅ Tool building framework\n\n---\n\n### Layer 8: Apps (Consumption)\n\n**Web App** (`apps/web/`)\n\n- ✅ Main UI\n- ✅ Routes connected to gateway\n- ✅ Component library\n- **Entry**: `apps/web/src/main.tsx`\n- **Uses**: SDK for all platform capabilities\n\n**Mobile App** (`apps/mobile/`)\n\n- ✅ React Native\n- ✅ Same SDK as web\n\n**Desktop App** (`apps/desktop/`)\n\n- ✅ Electron\n- ✅ Same SDK as web\n\n**Local Monitor** (`apps/local-monitor/`)\n\n- ✅ Development monitoring\n- ✅ Service health checks\n\n---\n\n## The Wiring (How Pins Connect)\n\n### Request Flow (Customer Zero)\n\n```\nUser Browser (Web App)\n  ↓\nWeb App calls SDK.authenticate(credentials)\n  ↓\nSDK.authenticate() calls Gateway.handleAuth()\n  ↓\nGateway.handleAuth()\n  ├─ Validates credentials\n  ├─ Checks Customer Zero email\n  ├─ Calls ensureCustomerZeroMembership()\n  └─ Returns JWT + tenant context\n  ↓\nWeb App receives JWT + tenant ID\n  ↓\nWeb App calls SDK.executeCapability(capabilityId, context)\n  ↓\nSDK.executeCapability() calls Gateway.route(request)\n  ↓\nGateway.route(request)\n  ├─ Validates JWT\n  ├─ Injects x-tenant-id header\n  ├─ Routes to correct service:\n  │  ├─ /connector/* → Connector service\n  │  ├─ /pipeline/* → Pipeline service\n  │  ├─ /intelligence/* → Intelligence service\n  │  ├─ /knowledge/* → Knowledge service\n  │  ├─ /twin/* → Twin service\n  │  └─ /govern/* → Govern service\n  └─ Returns result to web app\n  ↓\nWeb App receives result\n```\n\n### Continuity Flow (The Moat)\n\n```\nAny app action (chat, docs, approval)\n  ↓\nSignals.record(event)\n  ├─ Event type: \"user_approved_proposal\"\n  ├─ Entities: [\"proposal_123\", \"user_456\"]\n  ├─ Context: { approvedAmount: \"$100K\", timing: \"fast\" }\n  └─ Tenant: \"tenant_cz\"\n  ↓\nSignals publishes to subscribers:\n  ├─ Memory service (stores to continuity)\n  ├─ Context service (updates entity graph)\n  ├─ Intelligence service (trains on patterns)\n  └─ Twin service (updates user twin)\n  ↓\nOn next action:\n  SDK.getContext() retrieves:\n  ├─ User's approval patterns\n  ├─ Previous decisions\n  ├─ Team members who participated\n  ├─ Entity relationships\n  └─ Timing preferences\n  ↓\nIntelligence service uses enriched context\n  to predict next action / suggest workflow\n```\n\n### Multi-Tenant Isolation\n\n```\nRequest arrives at Gateway\n  ↓\nGateway.verifyJWT(token)\n  └─ Extracts tenant_id from JWT\n  ↓\nGateway.injectTenantHeader()\n  ├─ Sets x-tenant-id = tenant_id\n  ├─ Sets x-user-id = user_id\n  └─ All downstream services see tenant context\n  ↓\nDatabase queries automatically filtered by tenant:\n  SELECT * FROM proposals\n  WHERE tenant_id = x-tenant-id\n  ↓\nContinuity service respects tenant boundary:\n  SELECT * FROM continuity_events\n  WHERE tenant_id = x-tenant-id\n  ↓\nResult: Complete isolation between tenants\n```\n\n---\n\n## What's \"Customer Zero\"?\n\nCustomer Zero = The **visible, working proof** that all pins are wired.\n\nCurrently exists in code:\n\n- ✅ `services/gateway/src/customer-zero.ts` - Provisioning logic\n- ✅ `services/gateway/src/index.ts` - Wiring to gateway\n- ✅ Types in `packages/types/` - Contracts\n\n**What's Missing**:\n\n- A **public endpoint** that demonstrates the end-to-end flow\n- A **test suite** that proves continuity works\n- A **documented journey** through all pins\n\n---\n\n## Surfacing All Pins: Action Plan\n\n### Phase 1: Customer Zero Endpoint (Week 1)\n\nCreate a public endpoint that proves everything works:\n\n```\nGET /api/customer-zero/status\n  ↓ Gateway routes to Intelligence\n  ↓ Intelligence assembles Customer Zero context\n  ↓ Returns visible proof of all pins\n\nResponse:\n{\n  \"status\": \"operational\",\n  \"pins\": {\n    \"identity\": \"✓ JWT verified\",\n    \"ingress\": \"✓ Customer Zero provisioned\",\n    \"continuity\": \"✓ 14 events recorded\",\n    \"memory\": \"✓ Context retrieved\",\n    \"context\": \"✓ Entity360 assembled\",\n    \"intelligence\": \"✓ Agent reasoning active\",\n    \"governance\": \"✓ Policies enforced\",\n    \"networking\": \"✓ 3 subscribers active\"\n  },\n  \"moat_strength\": {\n    \"memory_events\": 14,\n    \"entity_mappings\": 7,\n    \"workflow_patterns\": 3,\n    \"confidence\": 0.89\n  }\n}\n```\n\n### Phase 2: Test Suite (Week 1)\n\nCreate tests that exercise all pins:\n\n```\ntest(\"Customer Zero: End-to-end flow\")\n  ├─ Authenticate Customer Zero user\n  ├─ Execute a capability (propose something)\n  ├─ Record to memory/signals\n  ├─ Retrieve context\n  ├─ Check entity graph\n  ├─ Verify continuity\n  └─ Assert all pins fired\n\ntest(\"Customer Zero: Multi-tenant isolation\")\n  ├─ Create two Customer Zero instances\n  ├─ Each has their own tenant_id\n  ├─ Data doesn't leak between\n  └─ Assert strict isolation\n\ntest(\"Customer Zero: Continuity moat\")\n  ├─ Record 100 interactions\n  ├─ Detect workflow patterns\n  ├─ Verify entity graph growth\n  └─ Assert moat strength > 0.8\n```\n\n### Phase 3: Visual Dashboard (Week 2)\n\nCreate a Customer Zero dashboard visible in web app:\n\n```\nDashboard shows:\n├─ Live authentication status\n├─ Tenant context\n├─ Memory events recorded (timeline)\n├─ Entity graph (visual graph)\n├─ Detected workflow patterns\n├─ Last 10 interactions\n├─ Current context state\n├─ Twin status\n├─ Approval chain status\n└─ System health (all pins)\n```\n\n---\n\n## The 27 Services Mapping to 12 Frameworks\n\n### Identity Framework\n\n- `gateway` - Auth + JWT\n- `tenants` - Workspace provisioning\n- `auth` - OAuth flows\n\n### Ingress Framework\n\n- `gateway` - HTTP routing\n- `webhook-ingress` - Real-time webhooks\n\n### Capability Framework\n\n- `connector` - External capabilities (80+ integrations)\n- `mcp-connector` - MCP tool framework\n- `pipeline` - Workflow capabilities\n- `think` - Planning capabilities\n\n### Continuity Framework\n\n- `continuity` - Data normalization + assembly\n- `signals` - Event sourcing\n- `store` - Workspace state\n\n### Memory Framework\n\n- `hermes` - Memory service\n- `hermes-spine-memory` - Memory lifecycle\n\n### Context Framework\n\n- `knowledge` - Doc/entity retrieval\n- `normalizer` - Data normalization\n\n### Intelligence Framework\n\n- `intelligence` - LLM orchestration\n- `iw-agent-runtime` - Agent runtime\n- `think` - Planning + reasoning\n- `l2` - Layer 2 API\n\n### Governance Framework\n\n- `govern` - Policies + RBAC\n- `admin` - Admin controls\n- `tenants` - Tenant governance\n\n### Networking Framework\n\n- `signals` - Event broadcasting\n- `webhook-ingress` - Real-time ingress\n\n### Twin Framework\n\n- `twin-orchestrator` - User/org/agent twins\n- `iw-agent-runtime` - Twin agents\n\n### Billing Framework\n\n- `billing` - Billing + usage\n\n### Monitoring Framework\n\n- `telemetry` - Metrics + tracing\n- `analytics` - Usage analytics\n\n---\n\n## How to Surface a Pin (Example)\n\nLet's surface the Memory Framework pin:\n\n**Step 1: Find the implementation**\n\n```\nLocation: packages/hermes-spine-memory/src/\nImplements: Memory.record(), Memory.retrieve()\n```\n\n**Step 2: Wire to SDK**\n\n```\nLocation: packages/sdk/src/memory.ts\nExports: SDK.recordMemory(interaction), SDK.getContext()\n```\n\n**Step 3: Wire to App**\n\n```\nLocation: apps/web/src/hooks/useMemory.ts\nCalls: SDK.getContext() on page load\nDisplays: \"3 related decisions\", \"2 relevant docs\"\n```\n\n**Step 4: Add to Customer Zero**\n\n```\nLocation: services/gateway/src/customer-zero.ts\nOn auth: Record \"customer_zero_authenticated\" event\nOn action: Record \"customer_zero_executed_capability\"\nVerify: Memory retrieves these events\n```\n\n**Step 5: Test**\n\n```\nLocation: services/gateway/src/customer-zero.test.ts\nAssert: Memory events recorded\nAssert: Context retrieved successfully\nAssert: Moat strength increases\n```\n\n---\n\n## What \"Wire Everything\" Means\n\nFor each of the 27 services:\n\n1. **Identify** where it lives in codebase\n2. **Map** to one of 12 frameworks\n3. **Surface** via SDK or public endpoint\n4. **Wire** to web app or another service\n5. **Test** via Customer Zero scenario\n6. **Document** in dashboard or API docs\n\nAfter all 27 are surfaced + wired + tested = **Complete Platform** visible and working.\n\n---\n\n## Success Criteria\n\nCustomer Zero is \"working\" when:\n\n- [ ] Can authenticate as Customer Zero user (pin #1: identity)\n- [ ] Can execute a capability (pin #2: capability)\n- [ ] Can record to memory (pin #3: continuity)\n- [ ] Can retrieve context (pin #4: context)\n- [ ] Can see entity graph (pin #5: intelligence)\n- [ ] Can enforce policy (pin #6: governance)\n- [ ] Can see audit trail (pin #7: security)\n- [ ] All 27 services report \"ready\" (pin #27: monitoring)\n\nWhen all pass: **Platform is visible, discoverable, and fully operational**.\n\n---\n\n## Next Steps\n\n1. **Read** this document completely\n2. **Map** each of 27 services to one of 12 frameworks\n3. **Create** `/api/customer-zero/status` endpoint\n4. **Run** Customer Zero test suite\n5. **View** Customer Zero dashboard in web app\n6. **Verify** all 27 pins firing\n\nAfter: All ecosystem apps (chat, docs, blog) can consume proven pins via SDK.\n"}