- Added `@executor/convex` as a dependency in multiple package configurations. - Introduced `postcss` dependency in the web app package. - Added `asPayload` utility function to handle non-object values in tool call payloads. - Refactored imports to utilize the new `asPayload` function in relevant files. - Updated `core` package dependencies with `better-result` and `graphql`.
Unified · Split
| @@ -13,6 +13,7 @@ · 12 unmodified lines | ||
| 13 | 13 | }, |
| 14 | 14 | "dependencies": { |
| 15 | 15 | "@assistant/core": "workspace:*", |
| 16 | + "@executor/convex": "workspace:*", | |
| 16 | 17 | "convex": "^1.31.7", |
| 17 | 18 | "elysia": "latest", |
| 18 | 19 | "@elysiajs/eden": "latest" |
| @@ -70,6 +70,7 @@ · 69 unmodified lines | ||
| 70 | 70 | "dependencies": { |
| 71 | 71 | "@assistant/core": "workspace:*", |
| 72 | 72 | "@elysiajs/eden": "latest", |
| 73 | + "@executor/convex": "workspace:*", | |
| 73 | 74 | "convex": "^1.31.7", |
| 74 | 75 | "elysia": "latest", |
| 75 | 76 | }, |
| @@ -117,6 +118,7 @@ · 41 unmodified lines | ||
| 117 | 118 | "@types/react-dom": "^19", |
| 118 | 119 | "eslint": "^9", |
| 119 | 120 | "eslint-config-next": "16.1.6", |
| 121 | + "postcss": "^8.5.6", | |
| 120 | 122 | "shadcn": "^3.8.4", |
| 121 | 123 | "tailwindcss": "^4", |
| 122 | 124 | "tw-animate-css": "^1.4.0", |
| @@ -144,6 +146,10 @@ · 21 unmodified lines | ||
| 144 | 146 | "executor/packages/core": { |
| 145 | 147 | "name": "@executor/core", |
| 146 | 148 | "version": "0.1.0", |
| 149 | + "dependencies": { | |
| 150 | + "better-result": "^2.7.0", | |
| 151 | + "graphql": "^16.12.0", | |
| 152 | + }, | |
| 147 | 153 | "devDependencies": { |
| 148 | 154 | "typescript": "^5.9.3", |
| 149 | 155 | }, |
| @@ -43,6 +43,7 @@ · 42 unmodified lines | ||
| 43 | 43 | "@types/react-dom": "^19", |
| 44 | 44 | "eslint": "^9", |
| 45 | 45 | "eslint-config-next": "16.1.6", |
| 46 | + "postcss": "^8.5.6", | |
| 46 | 47 | "shadcn": "^3.8.4", |
| 47 | 48 | "tailwindcss": "^4", |
| 48 | 49 | "tw-animate-css": "^1.4.0", |
| @@ -4,3 +4,10 @@ export function asRecord(value: unknown): Record<string, unknown> { · 3 unmodified lines | ||
| 4 | 4 | } |
| 5 | 5 | return {}; |
| 6 | 6 | } |
| 7 | + | |
| 8 | +export function asPayload(value: unknown): Record<string, unknown> { | |
| 9 | + if (value && typeof value === "object") { | |
| 10 | + return value as Record<string, unknown>; | |
| 11 | + } | |
| 12 | + return { value }; | |
| 13 | +} | |
| @@ -5,7 +5,7 @@ import { internal } from "../_generated/api"; · 4 unmodified lines | ||
| 5 | 5 | import { resolveCredentialPayload } from "../../core/src/credential-providers"; |
| 6 | 6 | import { APPROVAL_DENIED_PREFIX } from "../../core/src/execution-constants"; |
| 7 | 7 | import type { CredentialScope, ResolvedToolCredential, TaskRecord, ToolCallRecord, ToolCredentialSpec } from "../../core/src/types"; |
| 8 | −import { asPayload } from "../../core/src/utils"; | |
| 8 | +import { asPayload } from "../lib/object"; | |
| 9 | 9 | |
| 10 | 10 | export async function resolveCredentialHeaders( |
| 11 | 11 | ctx: ActionCtx, |
| @@ -12,7 +12,8 @@ import type { · 11 unmodified lines | ||
| 12 | 12 | ToolCallRequest, |
| 13 | 13 | ToolRunContext, |
| 14 | 14 | } from "../../core/src/types"; |
| 15 | −import { asPayload, describeError } from "../../core/src/utils"; | |
| 15 | +import { describeError } from "../../core/src/utils"; | |
| 16 | +import { asPayload } from "../lib/object"; | |
| 16 | 17 | import { getToolDecision, isToolAllowedForTask } from "./policy"; |
| 17 | 18 | import { baseTools } from "./workspace_tools"; |
| 18 | 19 | import { publishTaskEvent } from "./events"; |
| @@ -9,6 +9,10 @@ · 8 unmodified lines | ||
| 9 | 9 | "scripts": { |
| 10 | 10 | "typecheck": "tsc --noEmit" |
| 11 | 11 | }, |
| 12 | + "dependencies": { | |
| 13 | + "better-result": "^2.7.0", | |
| 14 | + "graphql": "^16.12.0" | |
| 15 | + }, | |
| 12 | 16 | "devDependencies": { |
| 13 | 17 | "typescript": "^5.9.3" |
| 14 | 18 | } |
| @@ -9,18 +9,6 @@ export function asRecord(value: unknown): Record<string, unknown> { · 8 unmodified lines | ||
| 9 | 9 | return {}; |
| 10 | 10 | } |
| 11 | 11 | |
| 12 | −/** | |
| 13 | − * Like `asRecord`, but for tool call payloads: wraps non-object values | |
| 14 | − * in `{ value }` instead of returning an empty object. Use this when | |
| 15 | − * the caller may have passed a bare primitive as input. | |
| 16 | − */ | |
| 17 | −export function asPayload(value: unknown): Record<string, unknown> { | |
| 18 | − if (value && typeof value === "object") { | |
| 19 | − return value as Record<string, unknown>; | |
| 20 | − } | |
| 21 | − return { value }; | |
| 22 | −} | |
| 23 | − | |
| 24 | 12 | /** |
| 25 | 13 | * Extract a human-readable message from an unknown thrown value. |
| 26 | 14 | */ |
| @@ -0,0 +1,31 @@ | ||
| 1 | +{ | |
| 2 | + "$schema": "https://unpkg.com/knip@latest/schema.json", | |
| 3 | + "ignoreIssues": { | |
| 4 | + "executor/packages/core/src/**/*.ts": [ | |
| 5 | + "types" | |
| 6 | + ] | |
| 7 | + }, | |
| 8 | + "workspaces": { | |
| 9 | + "executor/packages/convex": { | |
| 10 | + "entry": [ | |
| 11 | + "*.ts" | |
| 12 | + ], | |
| 13 | + "ignore": [ | |
| 14 | + "_generated/server.d.ts" | |
| 15 | + ] | |
| 16 | + }, | |
| 17 | + "executor/packages/core": { | |
| 18 | + "entry": [ | |
| 19 | + "src/function-builders.ts", | |
| 20 | + "src/identity.ts", | |
| 21 | + "src/mcp-server.ts", | |
| 22 | + "src/tool-discovery.ts", | |
| 23 | + "src/tool-sources.ts", | |
| 24 | + "src/managed-runtime.ts", | |
| 25 | + "src/slug.ts", | |
| 26 | + "../convex/**/*.ts", | |
| 27 | + "../../executor.ts" | |
| 28 | + ] | |
| 29 | + } | |
| 30 | + } | |
| 31 | +} | |
| @@ -29,6 +29,7 @@ · 28 unmodified lines | ||
| 29 | 29 | "typecheck": "bun run typecheck:executor && bun run typecheck:assistant", |
| 30 | 30 | "typecheck:executor": "bunx tsc --noEmit -p executor/tsconfig.json", |
| 31 | 31 | "typecheck:assistant": "bunx tsc --noEmit -p assistant/packages/server/tsconfig.json && bunx tsc --noEmit -p assistant/packages/bot/tsconfig.json", |
| 32 | + "knip": "bunx knip --config knip.json", | |
| 32 | 33 | "db:clear:executor": "bun with-env bun run executor/scripts/dev/wipe-convex-db.ts", |
| 33 | 34 | "convex:codegen": "bunx --cwd executor convex codegen" |
| 34 | 35 | }, |