- packages/core/api: HttpApi contract with ToolsApi + SecretsApi groups SDK tagged errors pass through directly with status annotations (ToolNotFoundError→404, PolicyDeniedError→403, etc.) - apps/server: API handler implementation via HttpApiBuilder Exports createApiHandler() for reuse (no baked-in server runtime) Handlers are pure pass-through — no manual error catching - apps/web: Vite + React frontend served on same port as API Vite plugin forwards /v1/*, /docs, /openapi.json to Effect handler effect-atom integration: AtomHttpApi.Tag typed client, query/mutation atoms RegistryProvider + useAtomValue with Result pattern matching - Catalog pins @effect/platform, platform-bun, platform-node, cluster - All 9 packages typecheck clean
Showing the changes to packages/core/api/package.json (1 of 26 files). Show all
Unified · Split
| @@ -0,0 +1,22 @@ | ||
| 1 | +{ | |
| 2 | + "name": "@executor/api", | |
| 3 | + "version": "0.0.0", | |
| 4 | + "private": true, | |
| 5 | + "type": "module", | |
| 6 | + "exports": { | |
| 7 | + ".": "./src/index.ts" | |
| 8 | + }, | |
| 9 | + "dependencies": { | |
| 10 | + "@effect/platform": "catalog:", | |
| 11 | + "@executor/sdk": "workspace:*", | |
| 12 | + "effect": "catalog:" | |
| 13 | + }, | |
| 14 | + "devDependencies": { | |
| 15 | + "@types/node": "catalog:", | |
| 16 | + "bun-types": "catalog:", | |
| 17 | + "typescript": "^5.9.3" | |
| 18 | + }, | |
| 19 | + "scripts": { | |
| 20 | + "typecheck": "tsc --noEmit" | |
| 21 | + } | |
| 22 | +} | |