- 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 | "dependencies": { | 14 | "dependencies": { |
| 15 | "@assistant/core": "workspace:*", | 15 | "@assistant/core": "workspace:*", |
| 16 | "@executor/convex": "workspace:*", | ||
| 16 | "convex": "^1.31.7", | 17 | "convex": "^1.31.7", |
| 17 | "elysia": "latest", | 18 | "elysia": "latest", |
| 18 | "@elysiajs/eden": "latest" | 19 | "@elysiajs/eden": "latest" |
| @@ -70,6 +70,7 @@ · 69 unmodified lines | |||
| 70 | "dependencies": { | 70 | "dependencies": { |
| 71 | "@assistant/core": "workspace:*", | 71 | "@assistant/core": "workspace:*", |
| 72 | "@elysiajs/eden": "latest", | 72 | "@elysiajs/eden": "latest", |
| 73 | "@executor/convex": "workspace:*", | ||
| 73 | "convex": "^1.31.7", | 74 | "convex": "^1.31.7", |
| 74 | "elysia": "latest", | 75 | "elysia": "latest", |
| 75 | }, | 76 | }, |
| @@ -117,6 +118,7 @@ · 41 unmodified lines | |||
| 117 | "@types/react-dom": "^19", | 118 | "@types/react-dom": "^19", |
| 118 | "eslint": "^9", | 119 | "eslint": "^9", |
| 119 | "eslint-config-next": "16.1.6", | 120 | "eslint-config-next": "16.1.6", |
| 121 | "postcss": "^8.5.6", | ||
| 120 | "shadcn": "^3.8.4", | 122 | "shadcn": "^3.8.4", |
| 121 | "tailwindcss": "^4", | 123 | "tailwindcss": "^4", |
| 122 | "tw-animate-css": "^1.4.0", | 124 | "tw-animate-css": "^1.4.0", |
| @@ -144,6 +146,10 @@ · 21 unmodified lines | |||
| 144 | "executor/packages/core": { | 146 | "executor/packages/core": { |
| 145 | "name": "@executor/core", | 147 | "name": "@executor/core", |
| 146 | "version": "0.1.0", | 148 | "version": "0.1.0", |
| 149 | "dependencies": { | ||
| 150 | "better-result": "^2.7.0", | ||
| 151 | "graphql": "^16.12.0", | ||
| 152 | }, | ||
| 147 | "devDependencies": { | 153 | "devDependencies": { |
| 148 | "typescript": "^5.9.3", | 154 | "typescript": "^5.9.3", |
| 149 | }, | 155 | }, |
| @@ -43,6 +43,7 @@ · 42 unmodified lines | |||
| 43 | "@types/react-dom": "^19", | 43 | "@types/react-dom": "^19", |
| 44 | "eslint": "^9", | 44 | "eslint": "^9", |
| 45 | "eslint-config-next": "16.1.6", | 45 | "eslint-config-next": "16.1.6", |
| 46 | "postcss": "^8.5.6", | ||
| 46 | "shadcn": "^3.8.4", | 47 | "shadcn": "^3.8.4", |
| 47 | "tailwindcss": "^4", | 48 | "tailwindcss": "^4", |
| 48 | "tw-animate-css": "^1.4.0", | 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 | return {}; | 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 | import { resolveCredentialPayload } from "../../core/src/credential-providers"; | 5 | import { resolveCredentialPayload } from "../../core/src/credential-providers"; |
| 6 | import { APPROVAL_DENIED_PREFIX } from "../../core/src/execution-constants"; | 6 | import { APPROVAL_DENIED_PREFIX } from "../../core/src/execution-constants"; |
| 7 | import type { CredentialScope, ResolvedToolCredential, TaskRecord, ToolCallRecord, ToolCredentialSpec } from "../../core/src/types"; | 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 | export async function resolveCredentialHeaders( | 10 | export async function resolveCredentialHeaders( |
| 11 | ctx: ActionCtx, | 11 | ctx: ActionCtx, |
| @@ -12,7 +12,8 @@ import type { · 11 unmodified lines | |||
| 12 | ToolCallRequest, | 12 | ToolCallRequest, |
| 13 | ToolRunContext, | 13 | ToolRunContext, |
| 14 | } from "../../core/src/types"; | 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 | import { getToolDecision, isToolAllowedForTask } from "./policy"; | 17 | import { getToolDecision, isToolAllowedForTask } from "./policy"; |
| 17 | import { baseTools } from "./workspace_tools"; | 18 | import { baseTools } from "./workspace_tools"; |
| 18 | import { publishTaskEvent } from "./events"; | 19 | import { publishTaskEvent } from "./events"; |
| @@ -9,6 +9,10 @@ · 8 unmodified lines | |||
| 9 | "scripts": { | 9 | "scripts": { |
| 10 | "typecheck": "tsc --noEmit" | 10 | "typecheck": "tsc --noEmit" |
| 11 | }, | 11 | }, |
| 12 | "dependencies": { | ||
| 13 | "better-result": "^2.7.0", | ||
| 14 | "graphql": "^16.12.0" | ||
| 15 | }, | ||
| 12 | "devDependencies": { | 16 | "devDependencies": { |
| 13 | "typescript": "^5.9.3" | 17 | "typescript": "^5.9.3" |
| 14 | } | 18 | } |
| @@ -9,18 +9,6 @@ export function asRecord(value: unknown): Record<string, unknown> { · 8 unmodified lines | |||
| 9 | return {}; | 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 | * Extract a human-readable message from an unknown thrown value. | 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 | "typecheck": "bun run typecheck:executor && bun run typecheck:assistant", | 29 | "typecheck": "bun run typecheck:executor && bun run typecheck:assistant", |
| 30 | "typecheck:executor": "bunx tsc --noEmit -p executor/tsconfig.json", | 30 | "typecheck:executor": "bunx tsc --noEmit -p executor/tsconfig.json", |
| 31 | "typecheck:assistant": "bunx tsc --noEmit -p assistant/packages/server/tsconfig.json && bunx tsc --noEmit -p assistant/packages/bot/tsconfig.json", | 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 | "db:clear:executor": "bun with-env bun run executor/scripts/dev/wipe-convex-db.ts", | 33 | "db:clear:executor": "bun with-env bun run executor/scripts/dev/wipe-convex-db.ts", |
| 33 | "convex:codegen": "bunx --cwd executor convex codegen" | 34 | "convex:codegen": "bunx --cwd executor convex codegen" |
| 34 | }, | 35 | }, |