{"_id":"@apd1034/schemashift","_rev":"7-543defae544f1efc774605b89f704ee6","name":"@apd1034/schemashift","dist-tags":{"latest":"1.0.6"},"versions":{"1.0.0":{"name":"@apd1034/schemashift","version":"1.0.0","_id":"@apd1034/schemashift@1.0.0","maintainers":[{"name":"apd1034","email":"APD1034@GMAIL.COM"}],"bin":{"schemashift":"dist/installer/index.js","schemashift-agentify":"dist/agentify/cli.js"},"dist":{"shasum":"6823526794c8c6c6e67ec9c744958205d1c623fd","tarball":"https://registry.npmjs.org/@apd1034/schemashift/-/schemashift-1.0.0.tgz","fileCount":83,"integrity":"sha512-vQGcE7mfsJMAL+145DTR2rvoXIRqFLO4wlfdCDNtpS5GNB0US8bIdVynkvQMg2wXXWJo667RQkZ+kWHaur6DKA==","signatures":[{"sig":"MEYCIQDnt323N5AYWqLNYtOiRYojLTsys1evlVmVpXZS0C6z0AIhAOPNVry0FmpZqWVk8ARZkUEr3nrOXVhxADTrgp9ar8cV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":632822},"main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"build":"tsc -p tsconfig.json"},"_npmUser":{"name":"apd1034","email":"APD1034@GMAIL.COM"},"_npmVersion":"11.12.1","description":"Framework-Agnostic SchemaShift: Dynamic Code-Drift & Autonomous Self-Healing Plugin System","directories":{},"_nodeVersion":"26.0.0","dependencies":{"zod":"^3.22.4","glob":"^10.3.10","chalk":"^4.1.2","mongodb":"^6.15.0","fs-extra":"^11.2.0","commander":"^11.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/schemashift_1.0.0_1779318869660_0.26098444045109304","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@apd1034/schemashift","version":"1.0.1","_id":"@apd1034/schemashift@1.0.1","maintainers":[{"name":"apd1034","email":"APD1034@GMAIL.COM"}],"bin":{"schemashift":"dist/installer/index.js","schemashift-agentify":"dist/agentify/cli.js"},"dist":{"shasum":"336c24a9b274d48a856dc4f22b47f75505c7fdb0","tarball":"https://registry.npmjs.org/@apd1034/schemashift/-/schemashift-1.0.1.tgz","fileCount":81,"integrity":"sha512-rE/UvgDQHVHtgr0w2QcHMLSHUCuvl1Z3sqYHuVfZ97m0FREsBW1D/ii8Kyi8bp95/B3IcPMVM2PuPV3vSRYCyA==","signatures":[{"sig":"MEQCIBD+I4u6hDZYv4P3vRxrtiDOTSi51aiNbwVoJVrVGFZAAiBGsTqyiM1NZs5aKlW8uSFK4AtJnq/O3gbqrWnl+cxj8w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":363630},"main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"build":"tsc -p tsconfig.json"},"_npmUser":{"name":"apd1034","email":"APD1034@GMAIL.COM"},"_npmVersion":"11.12.1","description":"Framework-Agnostic SchemaShift: Dynamic Code-Drift & Autonomous Self-Healing Plugin System","directories":{},"_nodeVersion":"26.0.0","dependencies":{"zod":"^3.22.4","glob":"^10.3.10","chalk":"^4.1.2","mongodb":"^6.15.0","fs-extra":"^11.2.0","commander":"^11.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/schemashift_1.0.1_1779318932860_0.541276906883261","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@apd1034/schemashift","version":"1.0.2","_id":"@apd1034/schemashift@1.0.2","maintainers":[{"name":"apd1034","email":"APD1034@GMAIL.COM"}],"bin":{"schemashift":"dist/installer/index.js","schemashift-agentify":"dist/agentify/cli.js"},"dist":{"shasum":"d12d0ab80219fc7ccfd37ad0fb6d4eb202ca5535","tarball":"https://registry.npmjs.org/@apd1034/schemashift/-/schemashift-1.0.2.tgz","fileCount":81,"integrity":"sha512-Ne3/Jqme4jcfWciCEZpvKz01xWm0PTa0PJcLnmTwVNCSn5YqpFBd/kMdDcpuiBN1dfmExIk4+M+Og+7CNh8h6A==","signatures":[{"sig":"MEUCIQDU+XMiAndFyHtwY22tg6dAePRZkp31TAkQLqACBtoTTAIgIw+DdKad9vlpiGNIs7JIxwwx+99YME00tnjtgTwD4W4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":363630},"main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"build":"tsc -p tsconfig.json"},"_npmUser":{"name":"apd1034","email":"APD1034@GMAIL.COM"},"_npmVersion":"11.12.1","description":"Framework-Agnostic SchemaShift: Dynamic Code-Drift & Autonomous Self-Healing Plugin System","directories":{},"_nodeVersion":"26.0.0","dependencies":{"zod":"^3.22.4","glob":"^10.3.10","chalk":"^4.1.2","mongodb":"^6.15.0","fs-extra":"^11.2.0","commander":"^11.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/schemashift_1.0.2_1779318980992_0.7385242251011395","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@apd1034/schemashift","version":"1.0.3","_id":"@apd1034/schemashift@1.0.3","maintainers":[{"name":"apd1034","email":"APD1034@GMAIL.COM"}],"bin":{"schemashift":"dist/installer/index.js","schemashift-agentify":"dist/agentify/cli.js"},"dist":{"shasum":"8a82a51a5d6f7b6ce1a83a66d1b3dbde6bc17664","tarball":"https://registry.npmjs.org/@apd1034/schemashift/-/schemashift-1.0.3.tgz","fileCount":81,"integrity":"sha512-T4fych8x/1SpvG6lQwPIBn4GXI+lbNTCxCICVGu3zGfcTa6pDOgm5mi99Zn/Nuv07UI/YjcVZTLj79kdW4iczw==","signatures":[{"sig":"MEUCIBHPY5360Vv0JujnwatCp4UBMl684xdYVRgAgvYKEkwKAiEA8dYHp7Qh226ZuwVWd/41p+GzM8NNpLnctCYJUk5graA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":363626},"main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"build":"tsc -p tsconfig.json"},"_npmUser":{"name":"apd1034","email":"APD1034@GMAIL.COM"},"_npmVersion":"11.12.1","description":"Framework-Agnostic SchemaShift: Dynamic Code-Drift & Autonomous Self-Healing Plugin System","directories":{},"_nodeVersion":"26.0.0","dependencies":{"zod":"^3.22.4","glob":"^10.3.10","chalk":"^4.1.2","mongodb":"^6.15.0","fs-extra":"^11.2.0","commander":"^11.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/schemashift_1.0.3_1779319046831_0.9851284083701732","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@apd1034/schemashift","version":"1.0.4","_id":"@apd1034/schemashift@1.0.4","maintainers":[{"name":"apd1034","email":"APD1034@GMAIL.COM"}],"bin":{"schemashift":"dist/installer/index.js","schemashift-agentify":"dist/agentify/cli.js"},"dist":{"shasum":"56a803cb233cd97f2c5d4041640efda04cf0f179","tarball":"https://registry.npmjs.org/@apd1034/schemashift/-/schemashift-1.0.4.tgz","fileCount":83,"integrity":"sha512-DH89vwqgkPUNZRzNKJ9Z8hlgXsycJcW9n3Za3SL1S6NVU40IQL5pVinls9J3UpjJT+FuusX9BEyYrXqUN5TLbg==","signatures":[{"sig":"MEUCIBRewhRsSvWxoz57rNvTODJER1E4MU2JgYDilHVns6nrAiEAqvS+8aw7f4HkX34aOb4P86UxQCgCvx9vDOZK604xfDs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":632887},"main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"build":"tsc -p tsconfig.json"},"_npmUser":{"name":"apd1034","email":"APD1034@GMAIL.COM"},"_npmVersion":"11.12.1","description":"Framework-Agnostic SchemaShift: Dynamic Code-Drift & Autonomous Self-Healing Plugin System","directories":{},"_nodeVersion":"26.0.0","dependencies":{"zod":"^3.22.4","glob":"^10.3.10","chalk":"^4.1.2","mongodb":"^6.15.0","fs-extra":"^11.2.0","commander":"^11.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/schemashift_1.0.4_1779323332519_0.9237371743553506","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@apd1034/schemashift","version":"1.0.5","_id":"@apd1034/schemashift@1.0.5","maintainers":[{"name":"apd1034","email":"APD1034@GMAIL.COM"}],"bin":{"schemashift":"dist/installer/index.js","schemashift-agentify":"dist/agentify/cli.js"},"dist":{"shasum":"f1e8fc111f9dab1017cf8d59f0b4fa746921bab9","tarball":"https://registry.npmjs.org/@apd1034/schemashift/-/schemashift-1.0.5.tgz","fileCount":84,"integrity":"sha512-5Kfwnt/dIRG58j0/x9RhZlazt21sn3kCWLkysIdod8NZlhAH8PYsf2wmR+GPJlztSXpYOzymCoNZ86jjhgTHzQ==","signatures":[{"sig":"MEQCIAP5X74sZ1hKvS3N8zysiaapEumXmZmQ9Kny8bJWc5QYAiAnIohS0cUOc8CtuSqDPRdWrqY/GfvOCqRSsv9vepKCsA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":674531},"main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"build":"tsc -p tsconfig.json","postinstall":"node scripts/schemashift-onboard.js"},"_npmUser":{"name":"apd1034","email":"APD1034@GMAIL.COM"},"_npmVersion":"11.12.1","description":"Framework-Agnostic SchemaShift: Dynamic Code-Drift & Autonomous Self-Healing Plugin System","directories":{},"_nodeVersion":"26.0.0","dependencies":{"zod":"^3.22.4","glob":"^10.3.10","chalk":"^4.1.2","mongodb":"^6.15.0","fs-extra":"^11.2.0","commander":"^11.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0","@types/fs-extra":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/schemashift_1.0.5_1779324439019_0.7473485143158207","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@apd1034/schemashift","version":"1.0.6","description":"Framework-Agnostic SchemaShift: Dynamic Code-Drift & Autonomous Self-Healing Plugin System","main":"./dist/index.js","types":"./dist/index.d.ts","bin":{"schemashift":"dist/installer/index.js","schemashift-agentify":"dist/agentify/cli.js"},"dependencies":{"mongodb":"^6.15.0","zod":"^3.22.4","commander":"^11.1.0","fs-extra":"^11.2.0","chalk":"^4.1.2","glob":"^10.3.10"},"devDependencies":{"@types/node":"^20.0.0","@types/fs-extra":"^11.0.4","typescript":"^5.0.0"},"scripts":{"build":"tsc -p tsconfig.json","postinstall":"node scripts/schemashift-onboard.js"},"_id":"@apd1034/schemashift@1.0.6","_nodeVersion":"26.0.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-ud5jER6JtUr7Br29mp9menlm3pYttH0SUP2utn+p0lEoGT/DSddIGi4X8srdhAJhnxxU3o8yTtQ0Xln4O/7/IA==","shasum":"62655313bf23e844b9430e035e15eab5c7d47b92","tarball":"https://registry.npmjs.org/@apd1034/schemashift/-/schemashift-1.0.6.tgz","fileCount":84,"unpackedSize":509191,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDfqP9QvzqgXZum/btHdMMmB92kWTUY79/FY7xVjlCXFwIhALH8iAd8GBuYRPh5p9kmYtULmMf/bCtXLJZR0OJokDPr"}]},"_npmUser":{"name":"apd1034","email":"APD1034@GMAIL.COM"},"directories":{},"maintainers":[{"name":"apd1034","email":"APD1034@GMAIL.COM"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/schemashift_1.0.6_1779379774148_0.4051541874099083"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-20T23:14:29.521Z","modified":"2026-05-21T16:09:34.461Z","1.0.0":"2026-05-20T23:14:29.901Z","1.0.1":"2026-05-20T23:15:33.001Z","1.0.2":"2026-05-20T23:16:21.159Z","1.0.3":"2026-05-20T23:17:26.967Z","1.0.4":"2026-05-21T00:28:52.752Z","1.0.5":"2026-05-21T00:47:19.231Z","1.0.6":"2026-05-21T16:09:34.360Z"},"description":"Framework-Agnostic SchemaShift: Dynamic Code-Drift & Autonomous Self-Healing Plugin System","maintainers":[{"name":"apd1034","email":"APD1034@GMAIL.COM"}],"readme":"# 🚀 SchemaShift: Dynamic Code-Drift & Autonomous Self-Healing Plugin System\n\nSchemaShift is a state-of-the-art, framework-agnostic plugin framework designed to protect third-party application platforms against payload drift, environment fragmentation, and code integrity degradation. \n\nBy utilizing a **Hybrid Agency Architecture**, SchemaShift combines local, deterministic symbolic agents (for sub-second diagnostics and safe filesystem recovery) with generative connectionist models (for explaining schema anomalies and synthesizing database migrations).\n\n---\n\n## 🏗️ Core Architecture & Design Philosophy\n\nTraditional plugins assume a single host environment (e.g. tightly coupling to Vite, React, or specific server architectures). This makes them brittle and impossible to scale across modern microservice environments. \n\nSchemaShift breaks this dependency with a strict **Core vs. Adapter Strategy**:\n\n```mermaid\ngraph TD\n    subgraph Core Layer [SchemaShift Core]\n        A[\"schemashift-core (Agnostic JS/TS Engine)\"]\n        B[\"schema-engine (AST, diffing, patch math)\"]\n    end\n\n    subgraph Adapter Layer [SchemaShift Adapters]\n        C[\"schemashift-activepieces-adapter (Microservice sandbox integrations)\"]\n        D[\"Next.js / Serverless Adapter\"]\n        E[\"Express / Node.js Middleware Adapter\"]\n        F[\"Vite / Pure Client Adapter\"]\n        G[\"CLI / Sidecar Adapter\"]\n    end\n\n    CoreLayer --> B\n    B --> AdapterLayer\n    C -.-> AP[\"Activepieces Host (Bun/PGLite)\"]\n    D -.-> NEXT[\"Next.js Backend (Vercel)\"]\n    E -.-> EXP[\"Express API (Node.js)\"]\n    F -.-> VIT[\"Browser SPA (Vite Client)\"]\n    G -.-> SHELL[\"Terminal Shell\"]\n```\n\n### Key Pillars:\n1. **Zero Host Assumptions:** The core calculation engines have no dependencies on Vite, React, or browser-specific objects (`window`, `document`).\n2. **Compile-Once, Adapt-Anywhere:** The core processes the logical drifts and git hunks, while adapters translate those outputs into the specific host's UI components, storage layers, and security frameworks.\n3. **Decoupled Telemetry:** Installation and environment health checks execute on independent diagnostic backplanes.\n\n---\n\n## 📁 Monorepo Workspace Directory Layout\n\nSchemaShift is organized as a high-velocity `pnpm` monorepo. Below is a map of the internal package ecosystem:\n\n| Package / Folder | Tier | Core Responsibility |\n| :--- | :--- | :--- |\n| `packages/schemashift-core` | Core | Framework-agnostic calculus of schema mismatches, diff generation, and code-drift calculations. |\n| `packages/schema-engine` | Core | Low-level AST parsing, diff hunk tracking, and logical execution math. |\n| `packages/schemashift-activepieces-adapter` | Adapter | Integrates the core engine with Activepieces. Maps flows, registers actions, and controls local telemetry. |\n| `packages/schemashift-installer` | Tooling | A developer-focused CLI utility used to inspect environments and trigger force uploads to remote API hosts. |\n| `packages/schemashift-agent` | AI | The cognitive agent layer housing prompts, prompt injection sanitizers, and LLM orchestration schemas. |\n| `packages/schemashift-agentify` | AI | An automated decorator utility that adds agentic introspection to existing third-party JavaScript plugins. |\n| `packages/design-system` | Core UI | Shared design tokens, Tailwind configurations, and primitive HSL variables for glassmorphism panels. |\n\n---\n\n## 🧠 The Hybrid Agency Engine (Symbolic vs. Generative)\n\nSchemaShift separates **Agency** into two distinct tiers to ensure high security, offline capability, and zero latency during mission-critical tasks:\n\n```mermaid\nflowchart LR\n    A[Perception: Error Log Stream] --> B{Heuristic Match?}\n    B -- YES (Cache/File Anomaly) --> C[Local Symbolic Agent]\n    B -- NO (Text Analysis Request) --> D[Generative AI Agent]\n    \n    C --> E[Execute fs.rm & Re-Link]\n    D --> F[Ask for connection credentials]\n    F --> G[Secure Direct API request to LLM]\n```\n\n### Tier 1: The Local Symbolic Agent (Deterministic & Safe)\nDuring **installation, local diagnostics, and self-healing**, SchemaShift deliberately **avoids LLM API calls**. \n* **Why?** Avoids the paradox of needing an LLM connection to install the LLM piece, maintains zero execution latency, guarantees 100% path accuracy, and eliminates cost/hallucination risk.\n* **Mechanism:** RegEx patterns analyze stdout/stderr strings dynamically on the client, mapping matching conflicts to localized recovery steps. System repairs are carried out securely using targeted filesystem functions.\n\n### Tier 2: The Generative AI Agent (Cognitive & Adaptive)\nOnce successfully installed, SchemaShift leverages generative AI models to handle cognitive, high-context tasks:\n* **Capabilities:** Explaining complex schema changes in human-readable terms, predicting drifted payloads, and generating database migration scripts on the fly.\n* **LLM Strategy:** The adapter uses the host's native credentials model to secure requests:\n\n| Host Runtime | LLM Credentials Strategy | Security Isolation |\n| :--- | :--- | :--- |\n| **Activepieces** | **Decrypted DB Connections:** Decrypts connections (`Property.CustomAuth`) in-memory and injects them into the sandboxed worker `context.auth`. | Sandboxed runner isolation |\n| **Next.js** | **Server Environment Variables:** Uses secure Next.js server route handlers to query `process.env.OPENAI_API_KEY`. | API keys never hit the browser |\n| **Express** | **System Environment:** Reads keys from system variables or local config files directly in the Express Node process. | Protected by host operating environment |\n| **Vite SPA** | **Dev Proxy / Local Session:** Uses Vite proxies during development, and temporary in-memory browser `sessionStorage` in production. | Cleaned up when browser tab is closed |\n\n---\n\n## 🧹 Stale Cache & Hoisting Resolution (The Self-Healing Wizard)\n\nOne of SchemaShift's most advanced autonomous capabilities is **Self-Healing Installation Diagnostics**, which resolves the common monorepo hoisting and caching conflicts:\n\n### 🔍 The Root Cause of Stale Installs\nWhen a user uninstalls a piece in Activepieces:\n1. The **database metadata** is deleted, making the platform believe the piece is gone.\n2. However, the **filesystem cache directories** (`activepieces/cache/v11/common/pieces/...`) and the `ready` check files are left behind.\n3. When the user attempts to re-install, Activepieces' `piece-installer.ts` detects the old folder/files, assumes the piece is already fully installed, and **skips the fresh download and linking phase (`bun install`)**.\n4. The system is left in a \"split-brain\" state, throwing `PieceNotFoundError` or `ENGINE_OPERATION_FAILURE` when running flows.\n\n### 🛡️ The Self-Healing Diagnostic Overlay\nSchemaShift resolves this cleanly inside `InstallPieceDialog.tsx`:\n\n1. **Telemetry Intercept:** When installation fails, the dialog parses logs for indicators like `\"PieceNotFoundError\"`, `\"ENGINE_OPERATION_FAILURE\"`, or `\"cache/v11/common\"`.\n2. **Glassmorphic Diagnostics Overlay:** Instead of showing raw error blocks, it mounts a premium, Rocket Orange (`#ff6b35`) accented **SchemaShift Autonomous Diagnostics** overlay:\n\n> [!IMPORTANT]\n> **State Mismatch Detected**\n> The platform database indicates this piece is not installed, but stale caches exist under the worker path, which blocks standard dependency linking.\n\n3. **Auto-Heal & Clean Install:** Clicking **\"Auto-Heal Cache & Retry Clean Install\"** triggers the installer with the `replaceExisting: true` parameter:\n   * It resets the telemetry feed, reporting its autonomous cleanup operations.\n   * On the backend, `pieceInstallService.ts` intercepts `replaceExisting` to execute `fs.rm` recursively on the stale disk directories (`cache/v11/common/pieces/` and `cache/v11/custom_pieces/...`).\n   * It then forces a completely clean dependency-linking sequence, successfully compiling the package.\n\n---\n\n## 🚀 Quickstart & Developer Runbook\n\n### Prerequisites\n* [Bun Runtime](https://bun.sh) (v1.0 or higher)\n* [pnpm](https://pnpm.io) (v8.0 or higher)\n* Node.js (v18 or higher)\n\n### Installation\nClone the workspace and initialize monorepo dependencies:\n```bash\n# In project root\npnpm install\n```\n\n### Developing the Activepieces Adapter\nTo launch the complete dev stack (backend API, worker process, and frontend Vite server):\n```bash\ncd activepieces\nnpm run dev\n```\n\n### Verifying Type-Safety (Zero TypeScript Errors Policy)\nAll developers must ensure the codebase compiles cleanly with **zero TypeScript errors**. Run the following check before submitting commits:\n\n```bash\n# In activepieces subdirectory\nnpx tsc --noEmit -p packages/web/tsconfig.json\n```\n\n### Running Smoke Tests\nRun end-to-end integration tests using the pre-configured Playwright suite:\n```bash\ncd activepieces\nAP_HOST_URL=http://localhost:4200 AP_EMAIL=admin@local AP_PASSWORD=adminpw npx playwright test tests/smoke/schemashift-ui-install.playwright.spec.ts\n```\n\n### 💻 Running the CLI Tools\nSchemaShift provides two developer-facing CLI packages for repository auditing, self-healing installation planning, and dependency wrapping.\n\n#### 🛠️ Option 1: Workspace pnpm Scripts (Recommended)\nThe easiest way is to run the pre-configured TypeScript execution scripts from the repository root:\n\n* **SchemaShift Installer (`@schemashift/installer`):**\n  * **Scan Environment:**\n    ```bash\n    pnpm schemashift:scan [-r <root_dir>] [-o <output_json>]\n    ```\n  * **Build Integration Plan:**\n    ```bash\n    pnpm schemashift:plan [-r <root_dir>] [-d <output_dir>]\n    ```\n  * **Perform Self-Healing Install:**\n    ```bash\n    pnpm schemashift:install --host-url <url> --token <token> [--enable-plugin-support]\n    ```\n  * **Verify Host Status:**\n    ```bash\n    pnpm schemashift:verify --host-url <url> --token <token>\n    ```\n\n* **SchemaShift Agentify Wrapper Tool (`@schemashift/agentify`):**\n  * **Scan Workspace Dependencies:**\n    ```bash\n    pnpm agentify:scan\n    ```\n  * **Inspect Specific Package:**\n    ```bash\n    pnpm agentify:inspect <package_name>\n    ```\n  * **Generate Safe Agent Wrappers:**\n    ```bash\n    pnpm agentify:generate <package_name>\n    ```\n  * **Validate Generated Wrapper:**\n    ```bash\n    pnpm agentify:validate <package_name>\n    ```\n\n#### 📦 Option 2: Compiling and Running Compiled Binaries\nAlternatively, compile the monorepo first and execute the build distribution files or global command lines:\n\n```bash\n# 1. Compile TS workspace files\npnpm build\n\n# 2. Invoke installer or agentify tools directly\nnode packages/schemashift-installer/dist/index.js --help\nnode packages/schemashift-agentify/dist/cli.js --help\n```\n\n---\n\n## 🔒 System Integrity Principles\n\n1. **User Gating:** Self-healing recovery runs autonomously but requires explicit user consent via the UI before executing destructive cache purges.\n2. **Visual Consistency:** Diagnostic cards must feature a uniform border design (no left-border color accents) and adhere to the **Rocket Orange theme** (`#ff6b35`).\n3. **No Placeholders:** Telemetry logs and error indicators must display live system statistics, avoiding mock descriptions or simulated values.\n","readmeFilename":"README.md"}