History

rename

Rhys Sullivan committed 9 months ago

Commit d407eb71 parent af4f361107 files · +497 −176Browse files

Unified · Split

107 files
  1. executor/README.md +5 −1
  2. executor/apps/web/src/components/approvals/approvals-view.tsx +0 −0
  3. executor/apps/web/src/components/dashboard/pending-approvals-card.tsx +0 −0
  4. executor/apps/web/src/components/dashboard/recent-tasks-card.tsx +0 −0
  5. executor/apps/web/src/components/dashboard/setup-card.tsx +0 −0
  6. executor/apps/web/src/components/dashboard/stat-card.tsx +0 −0
  7. executor/apps/web/src/components/dashboard/tools-summary-card.tsx +1 −1
  8. executor/apps/web/src/components/dashboard/view-helpers.ts +0 −0
  9. executor/apps/web/src/components/dashboard/view.tsx +6 −6
  10. executor/apps/web/src/components/organization/billing-view.tsx +0 −0
  11. executor/apps/web/src/components/organization/members-view.tsx +0 −0
  12. executor/apps/web/src/components/organization/onboarding-view.tsx +0 −0
  13. executor/apps/web/src/components/organization/organization-settings-view.tsx +2 −2
  14. executor/apps/web/src/components/tasks/code-editor-monaco.ts +0 −0
  15. executor/apps/web/src/components/tasks/code-editor-types.ts +0 −0
  16. executor/apps/web/src/components/tasks/code-editor.tsx +0 −0
  17. executor/apps/web/src/components/tasks/task-composer.tsx +1 −1
  18. executor/apps/web/src/components/tasks/task-detail.tsx +0 −0
  19. executor/apps/web/src/components/tasks/task-list-item.tsx +0 −0
  20. executor/apps/web/src/components/tasks/tasks-view.tsx +3 −3
  21. executor/apps/web/src/components/tools-view-sources.tsx +0 −2
  22. executor/apps/web/src/components/tools/add-source-dialog-helpers.ts +0 −0
  23. executor/apps/web/src/components/tools/add-source-dialog-sections.tsx +1 −1
  24. executor/apps/web/src/components/tools/add-source-dialog.tsx +2 −2
  25. executor/apps/web/src/components/tools/connection-auth-fields.tsx +1 −1
  26. executor/apps/web/src/components/tools/connection-form-dialog-form.ts +1 −1
  27. executor/apps/web/src/components/tools/connection-form-dialog-state.ts +0 −0
  28. executor/apps/web/src/components/tools/connection-form-dialog.tsx +4 −4
  29. executor/apps/web/src/components/tools/connection-form-save.ts +0 −0
  30. executor/apps/web/src/components/tools/credentials.tsx +1 −1
  31. executor/apps/web/src/components/tools/explorer-copy-button.tsx +0 −0
  32. executor/apps/web/src/components/tools/explorer-derived.ts +1 −1
  33. executor/apps/web/src/components/tools/explorer-groups.tsx +1 −1
  34. executor/apps/web/src/components/tools/explorer-helpers.ts +0 −0
  35. executor/apps/web/src/components/tools/explorer-loading.tsx +0 −0
  36. executor/apps/web/src/components/tools/explorer-rows.tsx +2 −2
  37. executor/apps/web/src/components/tools/explorer-tool-detail.tsx +1 −1
  38. executor/apps/web/src/components/tools/explorer-toolbar.tsx +0 −0
  39. executor/apps/web/src/components/tools/explorer-type-signature.tsx +0 −0
  40. executor/apps/web/src/components/tools/explorer.tsx +6 −6
  41. executor/apps/web/src/components/tools/install-configs.ts +0 −0
  42. executor/apps/web/src/components/tools/setup-card.tsx +1 −1
  43. executor/apps/web/src/components/tools/source-auth-dialog.tsx +0 −0
  44. executor/apps/web/src/components/tools/source-card.tsx +2 −2
  45. executor/apps/web/src/components/tools/source-quality-details.tsx +0 −0
  46. executor/apps/web/src/components/tools/sources.tsx +2 −0
  47. executor/apps/web/src/components/tools/view.tsx +4 −4
  48. executor/apps/web/src/frontend/app.tsx +6 −6
  49. executor/package.json +5 −5
  50. executor/packages/convex/_generated/api.d.ts +314 −0
  51. executor/packages/convex/auth.ts +2 −2
  52. executor/packages/convex/auth/accounts.ts +2 −2
  53. executor/packages/convex/auth/bootstrap.ts +7 −7
  54. executor/packages/convex/auth/db_queries.ts +2 −2
  55. executor/packages/convex/auth/event_handlers.ts +6 −6
  56. executor/packages/convex/auth/identity.ts +2 −2
  57. executor/packages/convex/auth/memberships.ts +2 −2
  58. executor/packages/convex/auth/naming.ts +3 −3
  59. executor/packages/convex/auth/personal_workspace.ts +4 −4
  60. executor/packages/convex/auth/types.ts +2 −2
  61. executor/packages/convex/database.ts +9 −9
  62. executor/packages/convex/database/anonymous.ts +4 −4
  63. executor/packages/convex/database/anonymous_session.ts +3 −3
  64. executor/packages/convex/database/approvals.ts +5 −5
  65. executor/packages/convex/database/credentials.ts +5 −5
  66. executor/packages/convex/database/mappers.ts +3 −3
  67. executor/packages/convex/database/oauth.ts +1 −1
  68. executor/packages/convex/database/policies.ts +3 −3
  69. executor/packages/convex/database/readers.ts +4 −4
  70. executor/packages/convex/database/task_events.ts +3 −3
  71. executor/packages/convex/database/tasks.ts +7 −7
  72. executor/packages/convex/database/tool_calls.ts +4 −4
  73. executor/packages/convex/database/tool_sources.ts +4 −4
  74. executor/packages/convex/database/validators.ts +0 −0
  75. executor/packages/convex/executor.ts +4 −4
  76. executor/packages/convex/executorNode.ts +4 −4
  77. executor/packages/convex/invites.ts +1 −1
  78. executor/packages/convex/invites/workos.ts +0 −0
  79. executor/packages/convex/runtime/actor_auth.ts +0 −0
  80. executor/packages/convex/runtime/events.ts +1 −1
  81. executor/packages/convex/runtime/external_tool_call.ts +0 −0
  82. executor/packages/convex/runtime/policy.ts +0 −0
  83. executor/packages/convex/runtime/task_runner.ts +2 −2
  84. executor/packages/convex/runtime/tool_call_credentials.ts +2 −0
  85. executor/packages/convex/runtime/tool_call_lifecycle.ts +0 −0
  86. executor/packages/convex/runtime/tool_call_resolution.ts +2 −0
  87. executor/packages/convex/runtime/tool_descriptors.ts +0 −0
  88. executor/packages/convex/runtime/tool_invocation.ts +0 −0
  89. executor/packages/convex/runtime/tool_paths.test.ts +0 −0
  90. executor/packages/convex/runtime/tool_paths.ts +0 −0
  91. executor/packages/convex/runtime/tool_source_loading.ts +0 −0
  92. executor/packages/convex/runtime/workspace_tools.ts +0 −0
  93. executor/packages/convex/task/constants.ts +0 −0
  94. executor/packages/convex/task/events.ts +1 −1
  95. executor/packages/convex/task/finish.ts +3 −3
  96. executor/packages/convex/task/status.ts +1 −1
  97. executor/scripts/dev/vscode-elicitation-server.ts +0 −0
  98. executor/scripts/dev/wipe-convex-db.ts +0 −0
  99. executor/scripts/prod/deploy-prod.test.ts +0 −0
  100. executor/scripts/prod/deploy-prod.ts +9 −9
  101. executor/scripts/prod/doctor-prod.test.ts +0 −0
  102. executor/scripts/prod/doctor-prod.ts +1 −1
  103. executor/scripts/prod/setup-prod-cloudflare.ts +2 −2
  104. executor/scripts/prod/setup-prod-env.ts +1 −1
  105. executor/scripts/release/build-release.ts +1 −1
  106. executor/tsconfig.json +1 −2
  107. package.json +1 −1
executor/README.md+5−1
@@ -183,10 +183,14 @@ bun run typecheck:executor · 182 unmodified lines
183```text183```text
184executor/184executor/
185|- apps/web/ # Next.js operator UI185|- apps/web/ # Next.js operator UI
186| `- src/components/{approvals,dashboard,organization,tasks,tools,ui}
186|- packages/convex/ # Convex functions, schema, auth, HTTP routes187|- packages/convex/ # Convex functions, schema, auth, HTTP routes
188| `- runtime/ # task execution/runtime internals
187|- packages/runner-sandbox-host/ # Cloudflare worker sandbox runtime189|- packages/runner-sandbox-host/ # Cloudflare worker sandbox runtime
188|- packages/core/src/ # shared executor runtime/tooling core package code190|- packages/core/src/ # shared executor runtime/tooling core package code
189|- scripts/build-release.ts # release artifact builder191|- scripts/dev/ # local/dev-only helpers
192|- scripts/prod/ # production setup and deploy scripts
193|- scripts/release/ # release artifact builder
190|- executor.ts # CLI entrypoint (compiled into binary)194|- executor.ts # CLI entrypoint (compiled into binary)
191|- install # curl install script195|- install # curl install script
192`- uninstall # uninstall script196`- uninstall # uninstall script
executor/apps/web/src/components/approvals/approvals-view.tsxrenamed from executor/apps/web/src/components/approvals-view.tsx+0−0

File renamed without changes.

executor/apps/web/src/components/dashboard/pending-approvals-card.tsxrenamed from executor/apps/web/src/components/dashboard-pending-approvals-card.tsx+0−0

File renamed without changes.

executor/apps/web/src/components/dashboard/recent-tasks-card.tsxrenamed from executor/apps/web/src/components/dashboard-recent-tasks-card.tsx+0−0

File renamed without changes.

executor/apps/web/src/components/dashboard/setup-card.tsxrenamed from executor/apps/web/src/components/dashboard-setup-card.tsx+0−0

File renamed without changes.

executor/apps/web/src/components/dashboard/stat-card.tsxrenamed from executor/apps/web/src/components/dashboard-stat-card.tsx+0−0

File renamed without changes.

executor/apps/web/src/components/dashboard/tools-summary-card.tsxrenamed from executor/apps/web/src/components/dashboard-tools-summary-card.tsx+1−1
@@ -4,7 +4,7 @@ import { ArrowRight, ChevronRight, Globe, Server, Wrench } from "lucide-react"; · 3 unmodified lines
4import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";4import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
5import { Button } from "@/components/ui/button";5import { Button } from "@/components/ui/button";
6import type { ToolDescriptor } from "@/lib/types";6import type { ToolDescriptor } from "@/lib/types";
7import { groupToolsBySource } from "@/components/dashboard-view-helpers";7import { groupToolsBySource } from "@/components/dashboard/view-helpers";
8 8
9export function DashboardToolsSummaryCard({ tools }: { tools: ToolDescriptor[] }) {9export function DashboardToolsSummaryCard({ tools }: { tools: ToolDescriptor[] }) {
10 const navigate = useNavigate();10 const navigate = useNavigate();
executor/apps/web/src/components/dashboard/view-helpers.tsrenamed from executor/apps/web/src/components/dashboard-view-helpers.ts+0−0

File renamed without changes.

executor/apps/web/src/components/dashboard/view.tsxrenamed from executor/apps/web/src/components/dashboard-view.tsx+6−6
@@ -3,11 +3,11 @@ · 2 unmodified lines
3import { CheckCircle2, Play, ShieldCheck, XCircle } from "lucide-react";3import { CheckCircle2, Play, ShieldCheck, XCircle } from "lucide-react";
4import { Skeleton } from "@/components/ui/skeleton";4import { Skeleton } from "@/components/ui/skeleton";
5import { PageHeader } from "@/components/page-header";5import { PageHeader } from "@/components/page-header";
6import { DashboardSetupCard } from "@/components/dashboard-setup-card";6import { DashboardSetupCard } from "@/components/dashboard/setup-card";
7import { DashboardStatCard } from "@/components/dashboard-stat-card";7import { DashboardStatCard } from "@/components/dashboard/stat-card";
8import { DashboardPendingApprovalsCard } from "@/components/dashboard-pending-approvals-card";8import { DashboardPendingApprovalsCard } from "@/components/dashboard/pending-approvals-card";
9import { DashboardRecentTasksCard } from "@/components/dashboard-recent-tasks-card";9import { DashboardRecentTasksCard } from "@/components/dashboard/recent-tasks-card";
10import { DashboardToolsSummaryCard } from "@/components/dashboard-tools-summary-card";10import { DashboardToolsSummaryCard } from "@/components/dashboard/tools-summary-card";
11import { useSession } from "@/lib/session-context";11import { useSession } from "@/lib/session-context";
12import { useWorkspaceTools } from "@/hooks/use-workspace-tools";12import { useWorkspaceTools } from "@/hooks/use-workspace-tools";
13import { useQuery } from "convex/react";13import { useQuery } from "convex/react";
@@ -17,7 +17,7 @@ import { · 3 unmodified lines
17 getRecentTasks,17 getRecentTasks,
18 getSetupSteps,18 getSetupSteps,
19 getTaskStats,19 getTaskStats,
20} from "@/components/dashboard-view-helpers";20} from "@/components/dashboard/view-helpers";
21import { workspaceQueryArgs } from "@/lib/workspace-query-args";21import { workspaceQueryArgs } from "@/lib/workspace-query-args";
22 22
23export function DashboardView() {23export function DashboardView() {
executor/apps/web/src/components/organization/billing-view.tsxrenamed from executor/apps/web/src/components/billing-view.tsx+0−0

File renamed without changes.

executor/apps/web/src/components/organization/members-view.tsxrenamed from executor/apps/web/src/components/members-view.tsx+0−0

File renamed without changes.

executor/apps/web/src/components/organization/onboarding-view.tsxrenamed from executor/apps/web/src/components/onboarding-view.tsx+0−0

File renamed without changes.

executor/apps/web/src/components/organization/organization-settings-view.tsxrenamed from executor/apps/web/src/components/organization-settings-view.tsx+2−2
@@ -3,8 +3,8 @@ · 2 unmodified lines
3import { useMemo } from "react";3import { useMemo } from "react";
4import { useLocation, useNavigate, useSearchParams } from "react-router";4import { useLocation, useNavigate, useSearchParams } from "react-router";
5import { CreditCard, Users } from "lucide-react";5import { CreditCard, Users } from "lucide-react";
6import { BillingView } from "@/components/billing-view";6import { BillingView } from "@/components/organization/billing-view";
7import { MembersView } from "@/components/members-view";7import { MembersView } from "@/components/organization/members-view";
8import { PageHeader } from "@/components/page-header";8import { PageHeader } from "@/components/page-header";
9import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";9import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
10 10
executor/apps/web/src/components/tasks/code-editor-monaco.tsrenamed from executor/apps/web/src/components/code-editor-monaco.ts+0−0

File renamed without changes.

executor/apps/web/src/components/tasks/code-editor-types.tsrenamed from executor/apps/web/src/components/code-editor-types.ts+0−0

File renamed without changes.

executor/apps/web/src/components/tasks/code-editor.tsxrenamed from executor/apps/web/src/components/code-editor.tsx+0−0

File renamed without changes.

executor/apps/web/src/components/tasks/task-composer.tsxrenamed from executor/apps/web/src/components/task-composer.tsx+1−1
@@ -15,7 +15,7 @@ import { · 14 unmodified lines
15 SelectTrigger,15 SelectTrigger,
16 SelectValue,16 SelectValue,
17} from "@/components/ui/select";17} from "@/components/ui/select";
18import { CodeEditor } from "@/components/code-editor";18import { CodeEditor } from "@/components/tasks/code-editor";
19import { convexApi } from "@/lib/convex-api";19import { convexApi } from "@/lib/convex-api";
20import { useSession } from "@/lib/session-context";20import { useSession } from "@/lib/session-context";
21import type { RuntimeTargetDescriptor } from "@/lib/types";21import type { RuntimeTargetDescriptor } from "@/lib/types";
executor/apps/web/src/components/tasks/task-detail.tsxrenamed from executor/apps/web/src/components/task-detail.tsx+0−0

File renamed without changes.

executor/apps/web/src/components/tasks/task-list-item.tsxrenamed from executor/apps/web/src/components/task-list-item.tsx+0−0

File renamed without changes.

executor/apps/web/src/components/tasks/tasks-view.tsxrenamed from executor/apps/web/src/components/tasks-view.tsx+3−3
@@ -8,9 +8,9 @@ import { Button } from "@/components/ui/button"; · 7 unmodified lines
8import { Skeleton } from "@/components/ui/skeleton";8import { Skeleton } from "@/components/ui/skeleton";
9import { PageHeader } from "@/components/page-header";9import { PageHeader } from "@/components/page-header";
10import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";10import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
11import { TaskDetail } from "@/components/task-detail";11import { TaskDetail } from "@/components/tasks/task-detail";
12import { TaskComposer } from "@/components/task-composer";12import { TaskComposer } from "@/components/tasks/task-composer";
13import { TaskListItem } from "@/components/task-list-item";13import { TaskListItem } from "@/components/tasks/task-list-item";
14import { useSession } from "@/lib/session-context";14import { useSession } from "@/lib/session-context";
15import { useQuery } from "convex/react";15import { useQuery } from "convex/react";
16import { convexApi } from "@/lib/convex-api";16import { convexApi } from "@/lib/convex-api";
executor/apps/web/src/components/tools-view-sources.tsx+0−2
@@ -1,2 +0,0 @@
1export { AddSourceDialog } from "./tools-view-add-source-dialog";
2export { SourceCard } from "./tools-view-source-card";
executor/apps/web/src/components/tools/add-source-dialog-helpers.tsrenamed from executor/apps/web/src/components/tools-view-add-source-dialog-helpers.ts+0−0

File renamed without changes.

executor/apps/web/src/components/tools/add-source-dialog-sections.tsxrenamed from executor/apps/web/src/components/tools-view-add-source-dialog-sections.tsx+1−1
@@ -18,7 +18,7 @@ import { · 17 unmodified lines
18 endpointPlaceholderForType,18 endpointPlaceholderForType,
19 type SourceCatalogSort,19 type SourceCatalogSort,
20 type SourceType,20 type SourceType,
21} from "./tools-view-add-source-dialog-helpers";21} from "./add-source-dialog-helpers";
22 22
23export function CatalogViewSection({23export function CatalogViewSection({
24 catalogQuery,24 catalogQuery,
executor/apps/web/src/components/tools/add-source-dialog.tsxrenamed from executor/apps/web/src/components/tools-view-add-source-dialog.tsx+2−2
@@ -29,11 +29,11 @@ import { · 28 unmodified lines
29 getVisibleCatalogItems,29 getVisibleCatalogItems,
30 type SourceCatalogSort,30 type SourceCatalogSort,
31 type SourceType,31 type SourceType,
32} from "./tools-view-add-source-dialog-helpers";32} from "./add-source-dialog-helpers";
33import {33import {
34 CatalogViewSection,34 CatalogViewSection,
35 CustomViewSection,35 CustomViewSection,
36} from "./tools-view-add-source-dialog-sections";36} from "./add-source-dialog-sections";
37 37
38export function AddSourceDialog({38export function AddSourceDialog({
39 existingSourceNames,39 existingSourceNames,
executor/apps/web/src/components/tools/connection-auth-fields.tsxrenamed from executor/apps/web/src/components/tools-view-connection-auth-fields.tsx+1−1
@@ -3,7 +3,7 @@ · 2 unmodified lines
3import { Input } from "@/components/ui/input";3import { Input } from "@/components/ui/input";
4import { Label } from "@/components/ui/label";4import { Label } from "@/components/ui/label";
5import type { SourceAuthType } from "@/lib/types";5import type { SourceAuthType } from "@/lib/types";
6import type { ConnectionMode } from "./tools-view-connection-form-dialog-state";6import type { ConnectionMode } from "./connection-form-dialog-state";
7 7
8type SelectedAuth = {8type SelectedAuth = {
9 type: SourceAuthType;9 type: SourceAuthType;
executor/apps/web/src/components/tools/connection-form-dialog-form.tsrenamed from executor/apps/web/src/components/tools-view-connection-form-dialog-form.ts+1−1
@@ -15,7 +15,7 @@ import { · 14 unmodified lines
15 compatibleConnections,15 compatibleConnections,
16 selectedAuthBadge,16 selectedAuthBadge,
17 type ConnectionMode,17 type ConnectionMode,
18} from "./tools-view-connection-form-dialog-state";18} from "./connection-form-dialog-state";
19 19
20type UseConnectionFormDialogFormParams = {20type UseConnectionFormDialogFormParams = {
21 open: boolean;21 open: boolean;
executor/apps/web/src/components/tools/connection-form-dialog-state.tsrenamed from executor/apps/web/src/components/tools-view-connection-form-dialog-state.ts+0−0

File renamed without changes.

executor/apps/web/src/components/tools/connection-form-dialog.tsxrenamed from executor/apps/web/src/components/tools-view-connection-form-dialog.tsx+4−4
@@ -33,14 +33,14 @@ import { · 32 unmodified lines
33 connectionDisplayName,33 connectionDisplayName,
34 parseHeaderOverrides,34 parseHeaderOverrides,
35} from "@/lib/credentials-source-helpers";35} from "@/lib/credentials-source-helpers";
36import { ConnectionAuthFields } from "./tools-view-connection-auth-fields";36import { ConnectionAuthFields } from "./connection-auth-fields";
37import { type ConnectionMode } from "./tools-view-connection-form-dialog-state";37import { type ConnectionMode } from "./connection-form-dialog-state";
38import { useConnectionFormDialogForm } from "./tools-view-connection-form-dialog-form";38import { useConnectionFormDialogForm } from "./connection-form-dialog-form";
39import {39import {
40 buildSecretJson,40 buildSecretJson,
41 connectionSubmitCopy,41 connectionSubmitCopy,
42 connectionSuccessCopy,42 connectionSuccessCopy,
43} from "./tools-view-connection-form-save";43} from "./connection-form-save";
44 44
45export function ConnectionFormDialog({45export function ConnectionFormDialog({
46 open,46 open,
executor/apps/web/src/components/tools/connection-form-save.tsrenamed from executor/apps/web/src/components/tools-view-connection-form-save.ts+0−0

File renamed without changes.

executor/apps/web/src/components/tools/credentials.tsxrenamed from executor/apps/web/src/components/tools-view-credentials.tsx+1−1
@@ -22,7 +22,7 @@ import { · 21 unmodified lines
22 getSourceFavicon,22 getSourceFavicon,
23 sourceForCredentialKey,23 sourceForCredentialKey,
24} from "@/lib/tools-source-helpers";24} from "@/lib/tools-source-helpers";
25import { ConnectionFormDialog } from "@/components/tools-view-connection-form-dialog";25import { ConnectionFormDialog } from "@/components/tools/connection-form-dialog";
26 26
27export function CredentialsPanel({27export function CredentialsPanel({
28 sources,28 sources,
executor/apps/web/src/components/tools/explorer-copy-button.tsxrenamed from executor/apps/web/src/components/tool-explorer-copy-button.tsx+0−0

File renamed without changes.

executor/apps/web/src/components/tools/explorer-derived.tsrenamed from executor/apps/web/src/components/tool-explorer-derived.ts+1−1
@@ -7,7 +7,7 @@ import { · 6 unmodified lines
7} from "@/lib/tool-explorer-grouping";7} from "@/lib/tool-explorer-grouping";
8import { sourceLabel } from "@/lib/tool-source-utils";8import { sourceLabel } from "@/lib/tool-source-utils";
9import type { ToolDescriptor } from "@/lib/types";9import type { ToolDescriptor } from "@/lib/types";
10import type { GroupBy, ViewMode } from "./tool-explorer-toolbar";10import type { GroupBy, ViewMode } from "./explorer-toolbar";
11 11
12export type FilterApproval = "all" | "required" | "auto";12export type FilterApproval = "all" | "required" | "auto";
13 13
executor/apps/web/src/components/tools/explorer-groups.tsxrenamed from executor/apps/web/src/components/tool-explorer-groups.tsx+1−1
@@ -19,7 +19,7 @@ import { cn } from "@/lib/utils"; · 18 unmodified lines
19import { sourceLabel, sourceType } from "@/lib/tool-source-utils";19import { sourceLabel, sourceType } from "@/lib/tool-source-utils";
20import { toolOperation, type ToolGroup } from "@/lib/tool-explorer-grouping";20import { toolOperation, type ToolGroup } from "@/lib/tool-explorer-grouping";
21import type { ToolDescriptor } from "@/lib/types";21import type { ToolDescriptor } from "@/lib/types";
22import { SelectableToolRow } from "./tool-explorer-rows";22import { SelectableToolRow } from "./explorer-rows";
23 23
24export function GroupNode({24export function GroupNode({
25 group,25 group,
executor/apps/web/src/components/tools/explorer-helpers.tsrenamed from executor/apps/web/src/components/tool-explorer-helpers.ts+0−0

File renamed without changes.

executor/apps/web/src/components/tools/explorer-loading.tsxrenamed from executor/apps/web/src/components/tool-explorer-loading.tsx+0−0

File renamed without changes.

executor/apps/web/src/components/tools/explorer-rows.tsxrenamed from executor/apps/web/src/components/tool-explorer-rows.tsx+2−2
@@ -12,8 +12,8 @@ import { · 11 unmodified lines
12import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@/components/ui/collapsible";12import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@/components/ui/collapsible";
13import { cn } from "@/lib/utils";13import { cn } from "@/lib/utils";
14import type { ToolDescriptor } from "@/lib/types";14import type { ToolDescriptor } from "@/lib/types";
15import { CopyButton } from "./tool-explorer-copy-button";15import { CopyButton } from "./explorer-copy-button";
16import { ToolDetail } from "./tool-explorer-tool-detail";16import { ToolDetail } from "./explorer-tool-detail";
17 17
18const ToolRow = memo(function ToolRow({18const ToolRow = memo(function ToolRow({
19 tool,19 tool,
executor/apps/web/src/components/tools/explorer-tool-detail.tsxrenamed from executor/apps/web/src/components/tool-explorer-tool-detail.tsx+1−1
@@ -3,7 +3,7 @@ · 2 unmodified lines
3import { Streamdown } from "streamdown";3import { Streamdown } from "streamdown";
4import { createCodePlugin } from "@streamdown/code";4import { createCodePlugin } from "@streamdown/code";
5import type { ToolDescriptor } from "@/lib/types";5import type { ToolDescriptor } from "@/lib/types";
6import { TypeSignature } from "./tool-explorer-type-signature";6import { TypeSignature } from "./explorer-type-signature";
7 7
8const codePlugin = createCodePlugin({8const codePlugin = createCodePlugin({
9 themes: ["github-light", "github-dark"],9 themes: ["github-light", "github-dark"],
executor/apps/web/src/components/tools/explorer-toolbar.tsxrenamed from executor/apps/web/src/components/tool-explorer-toolbar.tsx+0−0

File renamed without changes.

executor/apps/web/src/components/tools/explorer-type-signature.tsxrenamed from executor/apps/web/src/components/tool-explorer-type-signature.tsx+0−0

File renamed without changes.

executor/apps/web/src/components/tools/explorer.tsxrenamed from executor/apps/web/src/components/tool-explorer.tsx+6−6
@@ -6,7 +6,7 @@ import { · 5 unmodified lines
6 collectGroupKeys,6 collectGroupKeys,
7} from "@/lib/tool-explorer-grouping";7} from "@/lib/tool-explorer-grouping";
8import type { ToolDescriptor, ToolSourceRecord } from "@/lib/types";8import type { ToolDescriptor, ToolSourceRecord } from "@/lib/types";
9import { findToolsInGroupByKey } from "./tool-explorer-helpers";9import { findToolsInGroupByKey } from "./explorer-helpers";
10import {10import {
11 autoExpandedKeysForSearch,11 autoExpandedKeysForSearch,
12 countSelectedTools,12 countSelectedTools,
@@ -17,18 +17,18 @@ import { · 4 unmodified lines
17 sourceOptionsFromTools,17 sourceOptionsFromTools,
18 treeGroupsForView,18 treeGroupsForView,
19 type FilterApproval,19 type FilterApproval,
20} from "./tool-explorer-derived";20} from "./explorer-derived";
21import { ToolExplorerLoading } from "./tool-explorer-loading";21import { ToolExplorerLoading } from "./explorer-loading";
22import {22import {
23 EmptyState,23 EmptyState,
24 VirtualFlatList,24 VirtualFlatList,
25} from "./tool-explorer-rows";25} from "./explorer-rows";
26import { GroupNode, SourceSidebar } from "./tool-explorer-groups";26import { GroupNode, SourceSidebar } from "./explorer-groups";
27import {27import {
28 ToolExplorerToolbar,28 ToolExplorerToolbar,
29 type GroupBy,29 type GroupBy,
30 type ViewMode,30 type ViewMode,
31} from "./tool-explorer-toolbar";31} from "./explorer-toolbar";
32 32
33// ── Main Explorer ──33// ── Main Explorer ──
34 34
executor/apps/web/src/components/tools/install-configs.tsrenamed from executor/apps/web/src/components/mcp-install-configs.ts+0−0

File renamed without changes.

executor/apps/web/src/components/tools/setup-card.tsxrenamed from executor/apps/web/src/components/mcp-setup-card.tsx+1−1
@@ -13,7 +13,7 @@ import { · 12 unmodified lines
13 SelectTrigger,13 SelectTrigger,
14 SelectValue,14 SelectValue,
15} from "@/components/ui/select";15} from "@/components/ui/select";
16import { MCP_PROVIDERS } from "@/components/mcp-install-configs";16import { MCP_PROVIDERS } from "@/components/tools/install-configs";
17 17
18function inferServerName(workspaceId?: string): string {18function inferServerName(workspaceId?: string): string {
19 if (!workspaceId) return "executor";19 if (!workspaceId) return "executor";
executor/apps/web/src/components/tools/source-auth-dialog.tsxrenamed from executor/apps/web/src/components/tools-view-source-auth-dialog.tsx+0−0

File renamed without changes.

executor/apps/web/src/components/tools/source-card.tsxrenamed from executor/apps/web/src/components/tools-view-source-card.tsx+2−2
@@ -24,11 +24,11 @@ import { · 23 unmodified lines
24 sourceEndpointLabel,24 sourceEndpointLabel,
25 sourceKeyForSource,25 sourceKeyForSource,
26} from "@/lib/tools-source-helpers";26} from "@/lib/tools-source-helpers";
27import { ConfigureSourceAuthDialog } from "./tools-view-source-auth-dialog";27import { ConfigureSourceAuthDialog } from "./source-auth-dialog";
28import {28import {
29 OpenApiQualityDetails,29 OpenApiQualityDetails,
30 SourceQualitySummary,30 SourceQualitySummary,
31} from "./tools-view-source-quality-details";31} from "./source-quality-details";
32 32
33export function SourceCard({33export function SourceCard({
34 source,34 source,
executor/apps/web/src/components/tools/source-quality-details.tsxrenamed from executor/apps/web/src/components/tools-view-source-quality-details.tsx+0−0

File renamed without changes.

executor/apps/web/src/components/tools/sources.tsx+2−0
@@ -0,0 +1,2 @@
1export { AddSourceDialog } from "./add-source-dialog";
2export { SourceCard } from "./source-card";
executor/apps/web/src/components/tools/view.tsxrenamed from executor/apps/web/src/components/tools-view.tsx+4−4
@@ -10,10 +10,10 @@ import { Button } from "@/components/ui/button"; · 9 unmodified lines
10import { Skeleton } from "@/components/ui/skeleton";10import { Skeleton } from "@/components/ui/skeleton";
11import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";11import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
12import { PageHeader } from "@/components/page-header";12import { PageHeader } from "@/components/page-header";
13import { McpSetupCard } from "@/components/mcp-setup-card";13import { McpSetupCard } from "@/components/tools/setup-card";
14import { ToolExplorer } from "@/components/tool-explorer";14import { ToolExplorer } from "@/components/tools/explorer";
15import { AddSourceDialog, SourceCard } from "@/components/tools-view-sources";15import { AddSourceDialog, SourceCard } from "@/components/tools/sources";
16import { CredentialsPanel } from "@/components/tools-view-credentials";16import { CredentialsPanel } from "@/components/tools/credentials";
17import { useSession } from "@/lib/session-context";17import { useSession } from "@/lib/session-context";
18import { useWorkspaceTools } from "@/hooks/use-workspace-tools";18import { useWorkspaceTools } from "@/hooks/use-workspace-tools";
19import { useQuery } from "convex/react";19import { useQuery } from "convex/react";
executor/apps/web/src/frontend/app.tsx+6−6
@@ -2,12 +2,12 @@ · 1 unmodified line
2 2
3import { Navigate, Outlet, Route, Routes, BrowserRouter, useSearchParams } from "react-router";3import { Navigate, Outlet, Route, Routes, BrowserRouter, useSearchParams } from "react-router";
4import { AppShell } from "@/components/app-shell";4import { AppShell } from "@/components/app-shell";
5import { ApprovalsView } from "@/components/approvals-view";5import { ApprovalsView } from "@/components/approvals/approvals-view";
6import { DashboardView } from "@/components/dashboard-view";6import { DashboardView } from "@/components/dashboard/view";
7import { OnboardingView } from "@/components/onboarding-view";7import { OnboardingView } from "@/components/organization/onboarding-view";
8import { OrganizationSettingsView } from "@/components/organization-settings-view";8import { OrganizationSettingsView } from "@/components/organization/organization-settings-view";
9import { TasksView } from "@/components/tasks-view";9import { TasksView } from "@/components/tasks/tasks-view";
10import { ToolsView } from "@/components/tools-view";10import { ToolsView } from "@/components/tools/view";
11 11
12function ToolsRoute() {12function ToolsRoute() {
13 const [searchParams] = useSearchParams();13 const [searchParams] = useSearchParams();
executor/package.json+5−5
@@ -9,10 +9,10 @@ · 8 unmodified lines
9 "private": true,9 "private": true,
10 "scripts": {10 "scripts": {
11 "doctor": "bun run executor.ts doctor",11 "doctor": "bun run executor.ts doctor",
12 "doctor:prod": "bun run scripts/doctor-prod.ts",12 "doctor:prod": "bun run scripts/prod/doctor-prod.ts",
13 "deploy:prod": "bun run scripts/deploy-prod.ts",13 "deploy:prod": "bun run scripts/prod/deploy-prod.ts",
14 "setup:prod:env": "bun run scripts/setup-prod-env.ts --from-env",14 "setup:prod:env": "bun run scripts/prod/setup-prod-env.ts --from-env",
15 "setup:prod:cloudflare": "bun run scripts/setup-prod-cloudflare.ts",15 "setup:prod:cloudflare": "bun run scripts/prod/setup-prod-cloudflare.ts",
16 "setup:prod:all": "bun run setup:prod:cloudflare --deploy && bun run setup:prod:env && bun run doctor:prod",16 "setup:prod:all": "bun run setup:prod:cloudflare --deploy && bun run setup:prod:env && bun run doctor:prod",
17 "iac:install": "bun install --cwd infra",17 "iac:install": "bun install --cwd infra",
18 "iac:deploy": "bun run --cwd infra deploy",18 "iac:deploy": "bun run --cwd infra deploy",
@@ -25,7 +25,7 @@ · 6 unmodified lines
25 "deploy": "bunx convex deploy",25 "deploy": "bunx convex deploy",
26 "codegen": "bunx convex codegen",26 "codegen": "bunx convex codegen",
27 "build:binary": "bun build executor.ts --compile --outfile dist/executor",27 "build:binary": "bun build executor.ts --compile --outfile dist/executor",
28 "build:release": "bun run scripts/build-release.ts"28 "build:release": "bun run scripts/release/build-release.ts"
29 },29 },
30 "type": "module"30 "type": "module"
31}31}
executor/packages/convex/_generated/api.d.ts+314−0
@@ -854,6 +854,320 @@ export declare const internal: { · 853 unmodified lines
854 any854 any
855 >;855 >;
856 };856 };
857 database_anonymous_session: {
858 bootstrapAnonymousSession: FunctionReference<
859 "mutation",
860 "internal",
861 { sessionId?: string },
862 any
863 >;
864 };
865 database_approvals: {
866 createApproval: FunctionReference<
867 "mutation",
868 "internal",
869 { id: string; input?: any; taskId: string; toolPath: string },
870 any
871 >;
872 getApproval: FunctionReference<
873 "query",
874 "internal",
875 { approvalId: string },
876 any
877 >;
878 getApprovalInWorkspace: FunctionReference<
879 "query",
880 "internal",
881 { approvalId: string; workspaceId: Id<"workspaces"> },
882 any
883 >;
884 listApprovals: FunctionReference<
885 "query",
886 "internal",
887 {
888 status?: "pending" | "approved" | "denied";
889 workspaceId: Id<"workspaces">;
890 },
891 any
892 >;
893 listPendingApprovals: FunctionReference<
894 "query",
895 "internal",
896 { workspaceId: Id<"workspaces"> },
897 any
898 >;
899 resolveApproval: FunctionReference<
900 "mutation",
901 "internal",
902 {
903 approvalId: string;
904 decision: "approved" | "denied";
905 reason?: string;
906 reviewerId?: string;
907 },
908 any
909 >;
910 };
911 database_credentials: {
912 listCredentialProviders: FunctionReference<"query", "internal", {}, any>;
913 listCredentials: FunctionReference<
914 "query",
915 "internal",
916 { workspaceId: Id<"workspaces"> },
917 any
918 >;
919 resolveCredential: FunctionReference<
920 "query",
921 "internal",
922 {
923 actorId?: string;
924 scope: "workspace" | "actor";
925 sourceKey: string;
926 workspaceId: Id<"workspaces">;
927 },
928 any
929 >;
930 upsertCredential: FunctionReference<
931 "mutation",
932 "internal",
933 {
934 actorId?: string;
935 id?: string;
936 overridesJson?: any;
937 provider?: "local-convex" | "workos-vault";
938 scope: "workspace" | "actor";
939 secretJson: any;
940 sourceKey: string;
941 workspaceId: Id<"workspaces">;
942 },
943 any
944 >;
945 };
946 database_oauth: {
947 consumeAnonymousOauthAuthorizationCode: FunctionReference<
948 "mutation",
949 "internal",
950 { code: string },
951 any
952 >;
953 countAnonymousOauthAuthorizationCodes: FunctionReference<
954 "query",
955 "internal",
956 {},
957 any
958 >;
959 getActiveAnonymousOauthSigningKey: FunctionReference<
960 "query",
961 "internal",
962 {},
963 any
964 >;
965 getAnonymousOauthClient: FunctionReference<
966 "query",
967 "internal",
968 { clientId: string },
969 any
970 >;
971 purgeExpiredAnonymousOauthAuthorizationCodes: FunctionReference<
972 "mutation",
973 "internal",
974 { now: number },
975 any
976 >;
977 registerAnonymousOauthClient: FunctionReference<
978 "mutation",
979 "internal",
980 { clientId: string; clientName?: string; redirectUris: Array<string> },
981 any
982 >;
983 storeAnonymousOauthAuthorizationCode: FunctionReference<
984 "mutation",
985 "internal",
986 {
987 actorId: string;
988 clientId: string;
989 code: string;
990 codeChallenge: string;
991 codeChallengeMethod: string;
992 createdAt: number;
993 expiresAt: number;
994 redirectUri: string;
995 tokenClaims?: any;
996 },
997 any
998 >;
999 storeAnonymousOauthSigningKey: FunctionReference<
1000 "mutation",
1001 "internal",
1002 {
1003 algorithm: string;
1004 keyId: string;
1005 privateKeyJwk: any;
1006 publicKeyJwk: any;
1007 },
1008 any
1009 >;
1010 };
1011 database_policies: {
1012 listAccessPolicies: FunctionReference<
1013 "query",
1014 "internal",
1015 { workspaceId: Id<"workspaces"> },
1016 any
1017 >;
1018 listRuntimeTargets: FunctionReference<"query", "internal", {}, any>;
1019 upsertAccessPolicy: FunctionReference<
1020 "mutation",
1021 "internal",
1022 {
1023 actorId?: string;
1024 clientId?: string;
1025 decision: "allow" | "require_approval" | "deny";
1026 id?: string;
1027 priority?: number;
1028 toolPathPattern: string;
1029 workspaceId: Id<"workspaces">;
1030 },
1031 any
1032 >;
1033 };
1034 database_task_events: {
1035 createTaskEvent: FunctionReference<
1036 "mutation",
1037 "internal",
1038 { eventName: string; payload: any; taskId: string; type: string },
1039 any
1040 >;
1041 listTaskEvents: FunctionReference<
1042 "query",
1043 "internal",
1044 { taskId: string },
1045 any
1046 >;
1047 };
1048 database_tasks: {
1049 createTask: FunctionReference<
1050 "mutation",
1051 "internal",
1052 {
1053 actorId: string;
1054 clientId?: string;
1055 code: string;
1056 id: string;
1057 metadata?: any;
1058 runtimeId: string;
1059 timeoutMs?: number;
1060 workspaceId: Id<"workspaces">;
1061 },
1062 any
1063 >;
1064 getTask: FunctionReference<"query", "internal", { taskId: string }, any>;
1065 getTaskInWorkspace: FunctionReference<
1066 "query",
1067 "internal",
1068 { taskId: string; workspaceId: Id<"workspaces"> },
1069 any
1070 >;
1071 listQueuedTaskIds: FunctionReference<
1072 "query",
1073 "internal",
1074 { limit?: number },
1075 any
1076 >;
1077 listTasks: FunctionReference<
1078 "query",
1079 "internal",
1080 { workspaceId: Id<"workspaces"> },
1081 any
1082 >;
1083 markTaskFinished: FunctionReference<
1084 "mutation",
1085 "internal",
1086 {
1087 error?: string;
1088 exitCode?: number;
1089 result?: any;
1090 status: "completed" | "failed" | "timed_out" | "denied";
1091 taskId: string;
1092 },
1093 any
1094 >;
1095 markTaskRunning: FunctionReference<
1096 "mutation",
1097 "internal",
1098 { taskId: string },
1099 any
1100 >;
1101 };
1102 database_tool_calls: {
1103 finishToolCall: FunctionReference<
1104 "mutation",
1105 "internal",
1106 {
1107 callId: string;
1108 error?: string;
1109 status: "completed" | "failed" | "denied";
1110 taskId: string;
1111 },
1112 any
1113 >;
1114 getToolCall: FunctionReference<
1115 "query",
1116 "internal",
1117 { callId: string; taskId: string },
1118 any
1119 >;
1120 listToolCalls: FunctionReference<
1121 "query",
1122 "internal",
1123 { taskId: string },
1124 any
1125 >;
1126 setToolCallPendingApproval: FunctionReference<
1127 "mutation",
1128 "internal",
1129 { approvalId: string; callId: string; taskId: string },
1130 any
1131 >;
1132 upsertToolCallRequested: FunctionReference<
1133 "mutation",
1134 "internal",
1135 {
1136 callId: string;
1137 taskId: string;
1138 toolPath: string;
1139 workspaceId: Id<"workspaces">;
1140 },
1141 any
1142 >;
1143 };
1144 database_tool_sources: {
1145 deleteToolSource: FunctionReference<
1146 "mutation",
1147 "internal",
1148 { sourceId: string; workspaceId: Id<"workspaces"> },
1149 any
1150 >;
1151 listToolSources: FunctionReference<
1152 "query",
1153 "internal",
1154 { workspaceId: Id<"workspaces"> },
1155 any
1156 >;
1157 upsertToolSource: FunctionReference<
1158 "mutation",
1159 "internal",
1160 {
1161 config: any;
1162 enabled?: boolean;
1163 id?: string;
1164 name: string;
1165 type: "mcp" | "openapi" | "graphql";
1166 workspaceId: Id<"workspaces">;
1167 },
1168 any
1169 >;
1170 };
857 executor: {1171 executor: {
858 completeRuntimeRun: FunctionReference<1172 completeRuntimeRun: FunctionReference<
859 "mutation",1173 "mutation",
executor/packages/convex/auth.ts+2−2
@@ -2,8 +2,8 @@ import { AuthKit, type AuthFunctions } from "@convex-dev/workos-authkit"; · 1 unmodified line
2import { components, internal } from "./_generated/api";2import { components, internal } from "./_generated/api";
3import type { DataModel } from "./_generated/dataModel";3import type { DataModel } from "./_generated/dataModel";
4import { internalMutation, mutation } from "./_generated/server";4import { internalMutation, mutation } from "./_generated/server";
5import { bootstrapCurrentWorkosAccountImpl } from "./auth-bootstrap";5import { bootstrapCurrentWorkosAccountImpl } from "./auth/bootstrap";
6import { workosEventHandlers } from "./auth-event-handlers";6import { workosEventHandlers } from "./auth/event_handlers";
7 7
8const workosEnabled = Boolean(8const workosEnabled = Boolean(
9 process.env.WORKOS_CLIENT_ID && process.env.WORKOS_API_KEY && process.env.WORKOS_WEBHOOK_SECRET,9 process.env.WORKOS_CLIENT_ID && process.env.WORKOS_API_KEY && process.env.WORKOS_WEBHOOK_SECRET,
executor/packages/convex/auth/accounts.tsrenamed from executor/packages/convex/auth-accounts.ts+2−2
@@ -1,5 +1,5 @@
1import { getAccountByWorkosId } from "./auth-db-queries";1import { getAccountByWorkosId } from "./db_queries";
2import type { DbCtx } from "./auth-types";2import type { DbCtx } from "./types";
3 3
4type UpsertWorkosAccountArgs = {4type UpsertWorkosAccountArgs = {
5 workosUserId: string;5 workosUserId: string;
executor/packages/convex/auth/bootstrap.tsrenamed from executor/packages/convex/auth-bootstrap.ts+7−7
@@ -1,15 +1,15 @@
1import type { MutationCtx } from "./_generated/server";1import type { MutationCtx } from "../_generated/server";
2import { upsertWorkosAccount } from "./auth-accounts";2import { upsertWorkosAccount } from "./accounts";
3import { getOrganizationByWorkosOrgId } from "./auth-db-queries";3import { getOrganizationByWorkosOrgId } from "./db_queries";
4import { getAuthKitUserProfile, resolveIdentityProfile } from "./auth-identity";4import { getAuthKitUserProfile, resolveIdentityProfile } from "./identity";
5import {5import {
6 ensureWorkspaceMembership,6 ensureWorkspaceMembership,
7 mapOrganizationRoleToWorkspaceRole,7 mapOrganizationRoleToWorkspaceRole,
8 markPendingInvitesAcceptedByEmail,8 markPendingInvitesAcceptedByEmail,
9 upsertOrganizationMembership,9 upsertOrganizationMembership,
10} from "./auth-memberships";10} from "./memberships";
11import { ensurePersonalWorkspace, refreshGeneratedPersonalWorkspaceNames } from "./auth-personal-workspace";11import { ensurePersonalWorkspace, refreshGeneratedPersonalWorkspaceNames } from "./personal_workspace";
12import type { AccountId } from "./auth-types";12import type { AccountId } from "./types";
13 13
14async function seedHintedOrganizationMembership(14async function seedHintedOrganizationMembership(
15 ctx: MutationCtx,15 ctx: MutationCtx,
executor/packages/convex/auth/db_queries.tsrenamed from executor/packages/convex/auth-db-queries.ts+2−2
@@ -1,5 +1,5 @@
1import type { Doc } from "./_generated/dataModel";1import type { Doc } from "../_generated/dataModel";
2import type { AccountId, DbCtx, OrganizationId } from "./auth-types";2import type { AccountId, DbCtx, OrganizationId } from "./types";
3 3
4export async function getAccountByWorkosId(ctx: DbCtx, workosUserId: string) {4export async function getAccountByWorkosId(ctx: DbCtx, workosUserId: string) {
5 return await ctx.db5 return await ctx.db
executor/packages/convex/auth/event_handlers.tsrenamed from executor/packages/convex/auth-event-handlers.ts+6−6
@@ -1,20 +1,20 @@
1import { type AuthKit } from "@convex-dev/workos-authkit";1import { type AuthKit } from "@convex-dev/workos-authkit";
2import type { DataModel, Doc } from "./_generated/dataModel";2import type { DataModel, Doc } from "../_generated/dataModel";
3import type { MutationCtx } from "./_generated/server";3import type { MutationCtx } from "../_generated/server";
4import { upsertWorkosAccount } from "./auth-accounts";4import { upsertWorkosAccount } from "./accounts";
5import {5import {
6 getAccountByWorkosId,6 getAccountByWorkosId,
7 getFirstWorkspaceByOrganizationId,7 getFirstWorkspaceByOrganizationId,
8 getOrganizationByWorkosOrgId,8 getOrganizationByWorkosOrgId,
9 getWorkspaceByWorkosOrgId,9 getWorkspaceByWorkosOrgId,
10} from "./auth-db-queries";10} from "./db_queries";
11import {11import {
12 deriveOrganizationMembershipState,12 deriveOrganizationMembershipState,
13 deriveWorkspaceMembershipRole,13 deriveWorkspaceMembershipRole,
14 markPendingInvitesAcceptedByEmail,14 markPendingInvitesAcceptedByEmail,
15 upsertOrganizationMembership,15 upsertOrganizationMembership,
16} from "./auth-memberships";16} from "./memberships";
17import { ensureUniqueOrganizationSlug } from "./auth-naming";17import { ensureUniqueOrganizationSlug } from "./naming";
18 18
19type WorkosMembershipEventData = {19type WorkosMembershipEventData = {
20 id: string;20 id: string;
executor/packages/convex/auth/identity.tsrenamed from executor/packages/convex/auth-identity.ts+2−2
@@ -1,5 +1,5 @@
1import { components } from "./_generated/api";1import { components } from "../_generated/api";
2import type { RunQueryCtx } from "./auth-types";2import type { RunQueryCtx } from "./types";
3 3
4type WorkosProfile = {4type WorkosProfile = {
5 email?: string;5 email?: string;
executor/packages/convex/auth/memberships.tsrenamed from executor/packages/convex/auth-memberships.ts+2−2
@@ -1,4 +1,4 @@
1import type { Doc } from "./_generated/dataModel";1import type { Doc } from "../_generated/dataModel";
2import type {2import type {
3 AccountId,3 AccountId,
4 DbCtx,4 DbCtx,
@@ -7,7 +7,7 @@ import type { · 2 unmodified lines
7 OrganizationRole,7 OrganizationRole,
8 WorkspaceId,8 WorkspaceId,
9 WorkspaceMemberRole,9 WorkspaceMemberRole,
10} from "./auth-types";10} from "./types";
11 11
12export function mapOrganizationRoleToWorkspaceRole(role: OrganizationRole): WorkspaceMemberRole {12export function mapOrganizationRoleToWorkspaceRole(role: OrganizationRole): WorkspaceMemberRole {
13 if (role === "owner") {13 if (role === "owner") {
executor/packages/convex/auth/naming.tsrenamed from executor/packages/convex/auth-naming.ts+3−3
@@ -1,6 +1,6 @@
1import { slugify } from "../core/src/identity";1import { slugify } from "../../core/src/identity";
2import { ensureUniqueSlug } from "../core/src/slug";2import { ensureUniqueSlug } from "../../core/src/slug";
3import type { DbCtx } from "./auth-types";3import type { DbCtx } from "./types";
4 4
5function titleCaseWords(input: string): string {5function titleCaseWords(input: string): string {
6 return input6 return input
executor/packages/convex/auth/personal_workspace.tsrenamed from executor/packages/convex/auth-personal-workspace.ts+4−4
@@ -1,13 +1,13 @@
1import type { Id } from "./_generated/dataModel";1import type { Id } from "../_generated/dataModel";
2import { upsertOrganizationMembership } from "./auth-memberships";2import { upsertOrganizationMembership } from "./memberships";
3import {3import {
4 buildPersonalWorkspaceSlugSeed,4 buildPersonalWorkspaceSlugSeed,
5 derivePersonalNames,5 derivePersonalNames,
6 ensureUniqueOrganizationSlug,6 ensureUniqueOrganizationSlug,
7 isGeneratedPersonalOrganizationName,7 isGeneratedPersonalOrganizationName,
8 isGeneratedPersonalWorkspaceName,8 isGeneratedPersonalWorkspaceName,
9} from "./auth-naming";9} from "./naming";
10import type { AccountId, DbCtx } from "./auth-types";10import type { AccountId, DbCtx } from "./types";
11 11
12type PersonalWorkspaceOptions = {12type PersonalWorkspaceOptions = {
13 email: string;13 email: string;
executor/packages/convex/auth/types.tsrenamed from executor/packages/convex/auth-types.ts+2−2
@@ -1,5 +1,5 @@
1import type { Doc, Id } from "./_generated/dataModel";1import type { Doc, Id } from "../_generated/dataModel";
2import type { MutationCtx } from "./_generated/server";2import type { MutationCtx } from "../_generated/server";
3 3
4export type DbCtx = Pick<MutationCtx, "db">;4export type DbCtx = Pick<MutationCtx, "db">;
5export type RunQueryCtx = Pick<MutationCtx, "runQuery">;5export type RunQueryCtx = Pick<MutationCtx, "runQuery">;
executor/packages/convex/database.ts+9−9
@@ -6,7 +6,7 @@ export { · 5 unmodified lines
6 getTaskInWorkspace,6 getTaskInWorkspace,
7 markTaskRunning,7 markTaskRunning,
8 markTaskFinished,8 markTaskFinished,
9} from "./database-tasks";9} from "./database/tasks";
10export {10export {
11 createApproval,11 createApproval,
12 getApproval,12 getApproval,
@@ -14,32 +14,32 @@ export { · 1 unmodified line
14 listPendingApprovals,14 listPendingApprovals,
15 resolveApproval,15 resolveApproval,
16 getApprovalInWorkspace,16 getApprovalInWorkspace,
17} from "./database-approvals";17} from "./database/approvals";
18export {18export {
19 upsertToolCallRequested,19 upsertToolCallRequested,
20 getToolCall,20 getToolCall,
21 setToolCallPendingApproval,21 setToolCallPendingApproval,
22 finishToolCall,22 finishToolCall,
23 listToolCalls,23 listToolCalls,
24} from "./database-tool-calls";24} from "./database/tool_calls";
25export { bootstrapAnonymousSession } from "./database-anonymous-session";25export { bootstrapAnonymousSession } from "./database/anonymous_session";
26export {26export {
27 listRuntimeTargets,27 listRuntimeTargets,
28 upsertAccessPolicy,28 upsertAccessPolicy,
29 listAccessPolicies,29 listAccessPolicies,
30} from "./database-policies";30} from "./database/policies";
31export {31export {
32 upsertCredential,32 upsertCredential,
33 listCredentials,33 listCredentials,
34 listCredentialProviders,34 listCredentialProviders,
35 resolveCredential,35 resolveCredential,
36} from "./database-credentials";36} from "./database/credentials";
37export {37export {
38 upsertToolSource,38 upsertToolSource,
39 listToolSources,39 listToolSources,
40 deleteToolSource,40 deleteToolSource,
41} from "./database-tool-sources";41} from "./database/tool_sources";
42export { createTaskEvent, listTaskEvents } from "./database-task-events";42export { createTaskEvent, listTaskEvents } from "./database/task_events";
43export {43export {
44 getActiveAnonymousOauthSigningKey,44 getActiveAnonymousOauthSigningKey,
45 storeAnonymousOauthSigningKey,45 storeAnonymousOauthSigningKey,
@@ -49,4 +49,4 @@ export { · 3 unmodified lines
49 consumeAnonymousOauthAuthorizationCode,49 consumeAnonymousOauthAuthorizationCode,
50 purgeExpiredAnonymousOauthAuthorizationCodes,50 purgeExpiredAnonymousOauthAuthorizationCodes,
51 countAnonymousOauthAuthorizationCodes,51 countAnonymousOauthAuthorizationCodes,
52} from "./database-oauth";52} from "./database/oauth";
executor/packages/convex/database/anonymous.tsrenamed from executor/packages/convex/database-anonymous.ts+4−4
@@ -1,7 +1,7 @@
1import type { Doc } from "./_generated/dataModel";1import type { Doc } from "../_generated/dataModel";
2import type { MutationCtx } from "./_generated/server";2import type { MutationCtx } from "../_generated/server";
3import { slugify } from "../core/src/identity";3import { slugify } from "../../core/src/identity";
4import { ensureUniqueSlug } from "../core/src/slug";4import { ensureUniqueSlug } from "../../core/src/slug";
5 5
6type OrganizationRole = "owner" | "admin" | "member" | "billing_admin";6type OrganizationRole = "owner" | "admin" | "member" | "billing_admin";
7type OrganizationMemberStatus = "active" | "pending" | "removed";7type OrganizationMemberStatus = "active" | "pending" | "removed";
executor/packages/convex/database/anonymous_session.tsrenamed from executor/packages/convex/database-anonymous-session.ts+3−3
@@ -1,7 +1,7 @@
1import { v } from "convex/values";1import { v } from "convex/values";
2import { internalMutation } from "./_generated/server";2import { internalMutation } from "../_generated/server";
3import { ensureAnonymousIdentity } from "./database-anonymous";3import { ensureAnonymousIdentity } from "./anonymous";
4import { mapAnonymousContext } from "./database-readers";4import { mapAnonymousContext } from "./readers";
5 5
6export const bootstrapAnonymousSession = internalMutation({6export const bootstrapAnonymousSession = internalMutation({
7 args: { sessionId: v.optional(v.string()) },7 args: { sessionId: v.optional(v.string()) },
executor/packages/convex/database/approvals.tsrenamed from executor/packages/convex/database-approvals.ts+5−5
@@ -1,9 +1,9 @@
1import { v } from "convex/values";1import { v } from "convex/values";
2import { internalMutation, internalQuery } from "./_generated/server";2import { internalMutation, internalQuery } from "../_generated/server";
3import { mapApproval } from "./database-mappers";3import { mapApproval } from "./mappers";
4import { getApprovalDoc, getTaskDoc } from "./database-readers";4import { getApprovalDoc, getTaskDoc } from "./readers";
5import { approvalStatusValidator } from "./database-validators";5import { approvalStatusValidator } from "./validators";
6import type { TaskStatus } from "../core/src/types";6import type { TaskStatus } from "../../core/src/types";
7 7
8export const createApproval = internalMutation({8export const createApproval = internalMutation({
9 args: {9 args: {
executor/packages/convex/database/credentials.tsrenamed from executor/packages/convex/database-credentials.ts+5−5
@@ -1,12 +1,12 @@
1import { v } from "convex/values";1import { v } from "convex/values";
2import { internalMutation, internalQuery } from "./_generated/server";2import { internalMutation, internalQuery } from "../_generated/server";
3import { mapCredential } from "./database-mappers";3import { mapCredential } from "./mappers";
4import { computeBoundAuthFingerprint } from "./database-readers";4import { computeBoundAuthFingerprint } from "./readers";
5import {5import {
6 credentialProviderValidator,6 credentialProviderValidator,
7 credentialScopeValidator,7 credentialScopeValidator,
8} from "./database-validators";8} from "./validators";
9import { asRecord } from "./lib/object";9import { asRecord } from "../lib/object";
10 10
11export const upsertCredential = internalMutation({11export const upsertCredential = internalMutation({
12 args: {12 args: {
executor/packages/convex/database/mappers.tsrenamed from executor/packages/convex/database-mappers.ts+3−3
@@ -1,6 +1,6 @@
1import type { Doc } from "./_generated/dataModel";1import type { Doc } from "../_generated/dataModel";
2import { asRecord } from "./lib/object";2import { asRecord } from "../lib/object";
3import { DEFAULT_TASK_TIMEOUT_MS } from "./task-constants";3import { DEFAULT_TASK_TIMEOUT_MS } from "../task/constants";
4 4
5export function stableStringify(value: unknown): string {5export function stableStringify(value: unknown): string {
6 if (Array.isArray(value)) {6 if (Array.isArray(value)) {
executor/packages/convex/database/oauth.tsrenamed from executor/packages/convex/database-oauth.ts+1−1
@@ -1,5 +1,5 @@
1import { v } from "convex/values";1import { v } from "convex/values";
2import { internalMutation, internalQuery } from "./_generated/server";2import { internalMutation, internalQuery } from "../_generated/server";
3 3
4export const getActiveAnonymousOauthSigningKey = internalQuery({4export const getActiveAnonymousOauthSigningKey = internalQuery({
5 args: {},5 args: {},
executor/packages/convex/database/policies.tsrenamed from executor/packages/convex/database-policies.ts+3−3
@@ -1,7 +1,7 @@
1import { v } from "convex/values";1import { v } from "convex/values";
2import { internalMutation, internalQuery } from "./_generated/server";2import { internalMutation, internalQuery } from "../_generated/server";
3import { mapPolicy } from "./database-mappers";3import { mapPolicy } from "./mappers";
4import { policyDecisionValidator } from "./database-validators";4import { policyDecisionValidator } from "./validators";
5 5
6export const listRuntimeTargets = internalQuery({6export const listRuntimeTargets = internalQuery({
7 args: {},7 args: {},
executor/packages/convex/database/readers.tsrenamed from executor/packages/convex/database-readers.ts+4−4
@@ -1,7 +1,7 @@
1import type { Doc } from "./_generated/dataModel";1import type { Doc } from "../_generated/dataModel";
2import type { QueryCtx } from "./_generated/server";2import type { QueryCtx } from "../_generated/server";
3import { normalizeSourceAuthFingerprint } from "./database-mappers";3import { normalizeSourceAuthFingerprint } from "./mappers";
4import { asRecord } from "./lib/object";4import { asRecord } from "../lib/object";
5 5
6export function mapAnonymousContext(doc: Doc<"anonymousSessions">) {6export function mapAnonymousContext(doc: Doc<"anonymousSessions">) {
7 return {7 return {
executor/packages/convex/database/task_events.tsrenamed from executor/packages/convex/database-task-events.ts+3−3
@@ -1,7 +1,7 @@
1import { v } from "convex/values";1import { v } from "convex/values";
2import { internalMutation, internalQuery } from "./_generated/server";2import { internalMutation, internalQuery } from "../_generated/server";
3import { getTaskDoc, mapTaskEvent } from "./database-readers";3import { getTaskDoc, mapTaskEvent } from "./readers";
4import { asRecord } from "./lib/object";4import { asRecord } from "../lib/object";
5 5
6export const createTaskEvent = internalMutation({6export const createTaskEvent = internalMutation({
7 args: {7 args: {
executor/packages/convex/database/tasks.tsrenamed from executor/packages/convex/database-tasks.ts+7−7
@@ -1,11 +1,11 @@
1import { v } from "convex/values";1import { v } from "convex/values";
2import { internalMutation, internalQuery } from "./_generated/server";2import { internalMutation, internalQuery } from "../_generated/server";
3import { mapTask } from "./database-mappers";3import { mapTask } from "./mappers";
4import { getTaskDoc } from "./database-readers";4import { getTaskDoc } from "./readers";
5import { completedTaskStatusValidator } from "./database-validators";5import { completedTaskStatusValidator } from "./validators";
6import { asRecord } from "./lib/object";6import { asRecord } from "../lib/object";
7import { DEFAULT_TASK_TIMEOUT_MS } from "./task-constants";7import { DEFAULT_TASK_TIMEOUT_MS } from "../task/constants";
8import { isTerminalTaskStatus } from "./task-status";8import { isTerminalTaskStatus } from "../task/status";
9 9
10export const createTask = internalMutation({10export const createTask = internalMutation({
11 args: {11 args: {
executor/packages/convex/database/tool_calls.tsrenamed from executor/packages/convex/database-tool-calls.ts+4−4
@@ -1,8 +1,8 @@
1import { v } from "convex/values";1import { v } from "convex/values";
2import { internalMutation, internalQuery } from "./_generated/server";2import { internalMutation, internalQuery } from "../_generated/server";
3import { mapToolCall } from "./database-mappers";3import { mapToolCall } from "./mappers";
4import { getToolCallDoc } from "./database-readers";4import { getToolCallDoc } from "./readers";
5import { terminalToolCallStatusValidator } from "./database-validators";5import { terminalToolCallStatusValidator } from "./validators";
6 6
7export const upsertToolCallRequested = internalMutation({7export const upsertToolCallRequested = internalMutation({
8 args: {8 args: {
executor/packages/convex/database/tool_sources.tsrenamed from executor/packages/convex/database-tool-sources.ts+4−4
@@ -1,12 +1,12 @@
1import { v } from "convex/values";1import { v } from "convex/values";
2import { internalMutation, internalQuery } from "./_generated/server";2import { internalMutation, internalQuery } from "../_generated/server";
3import {3import {
4 computeSourceSpecHash,4 computeSourceSpecHash,
5 mapSource,5 mapSource,
6 normalizeSourceAuthFingerprint,6 normalizeSourceAuthFingerprint,
7} from "./database-mappers";7} from "./mappers";
8import { toolSourceTypeValidator } from "./database-validators";8import { toolSourceTypeValidator } from "./validators";
9import { asRecord } from "./lib/object";9import { asRecord } from "../lib/object";
10 10
11export const upsertToolSource = internalMutation({11export const upsertToolSource = internalMutation({
12 args: {12 args: {
executor/packages/convex/database/validators.tsrenamed from executor/packages/convex/database-validators.ts+0−0

File renamed without changes.

executor/packages/convex/executor.ts+4−4
@@ -7,10 +7,10 @@ import { workspaceMutation } from "../core/src/function-builders"; · 6 unmodified lines
7import { actorIdForAccount } from "../core/src/identity";7import { actorIdForAccount } from "../core/src/identity";
8import { isKnownRuntimeId } from "../core/src/runtimes/runtime-catalog";8import { isKnownRuntimeId } from "../core/src/runtimes/runtime-catalog";
9import type { ApprovalRecord, TaskRecord } from "../core/src/types";9import type { ApprovalRecord, TaskRecord } from "../core/src/types";
10import { isTerminalTaskStatus, taskTerminalEventType } from "./task-status";10import { isTerminalTaskStatus, taskTerminalEventType } from "./task/status";
11import { DEFAULT_TASK_TIMEOUT_MS } from "./task-constants";11import { DEFAULT_TASK_TIMEOUT_MS } from "./task/constants";
12import { createTaskEvent } from "./task-events";12import { createTaskEvent } from "./task/events";
13import { markTaskFinished } from "./task-finish";13import { markTaskFinished } from "./task/finish";
14 14
15async function createTaskRecord(15async function createTaskRecord(
16 ctx: MutationCtx,16 ctx: MutationCtx,
executor/packages/convex/executorNode.ts+4−4
@@ -8,15 +8,15 @@ import type { · 7 unmodified lines
8 OpenApiSourceQuality,8 OpenApiSourceQuality,
9 SourceAuthProfile,9 SourceAuthProfile,
10} from "../core/src/types";10} from "../core/src/types";
11import { requireCanonicalActor } from "./executor_node/actor_auth";11import { requireCanonicalActor } from "./runtime/actor_auth";
12import {12import {
13 listToolsForContext,13 listToolsForContext,
14 listToolsWithWarningsForContext,14 listToolsWithWarningsForContext,
15 loadDtsUrls,15 loadDtsUrls,
16 loadWorkspaceDtsStorageIds,16 loadWorkspaceDtsStorageIds,
17} from "./executor_node/workspace_tools";17} from "./runtime/workspace_tools";
18import { runQueuedTask } from "./executor_node/task_runner";18import { runQueuedTask } from "./runtime/task_runner";
19import { handleExternalToolCallRequest } from "./executor_node/external_tool_call";19import { handleExternalToolCallRequest } from "./runtime/external_tool_call";
20 20
21export const listToolsWithWarnings = action({21export const listToolsWithWarnings = action({
22 args: {22 args: {
executor/packages/convex/invites.ts+1−1
@@ -10,7 +10,7 @@ import { · 9 unmodified lines
10 sendWorkosInvitation,10 sendWorkosInvitation,
11 updateWorkosOrganizationName,11 updateWorkosOrganizationName,
12 workosEnabled,12 workosEnabled,
13} from "./invites-workos";13} from "./invites/workos";
14 14
15const organizationRoleValidator = v.union(15const organizationRoleValidator = v.union(
16 v.literal("owner"),16 v.literal("owner"),
executor/packages/convex/invites/workos.tsrenamed from executor/packages/convex/invites-workos.ts+0−0

File renamed without changes.

executor/packages/convex/runtime/actor_auth.tsrenamed from executor/packages/convex/executor_node/actor_auth.ts+0−0

File renamed without changes.

executor/packages/convex/runtime/events.tsrenamed from executor/packages/convex/executor_node/events.ts+1−1
@@ -1,7 +1,7 @@
1"use node";1"use node";
2 2
3import type { ActionCtx } from "../_generated/server";3import type { ActionCtx } from "../_generated/server";
4import { createTaskEvent, type TaskEventName } from "../task-events";4import { createTaskEvent, type TaskEventName } from "../task/events";
5 5
6export async function publishTaskEvent(6export async function publishTaskEvent(
7 ctx: ActionCtx,7 ctx: ActionCtx,
executor/packages/convex/runtime/external_tool_call.tsrenamed from executor/packages/convex/executor_node/external_tool_call.ts+0−0

File renamed without changes.

executor/packages/convex/runtime/policy.tsrenamed from executor/packages/convex/executor_node/policy.ts+0−0

File renamed without changes.

executor/packages/convex/runtime/task_runner.tsrenamed from executor/packages/convex/executor_node/task_runner.ts+2−2
@@ -14,8 +14,8 @@ import { runCodeWithAdapter } from "../../core/src/runtimes/runtime-core"; · 13 unmodified lines
14import type { TaskRecord } from "../../core/src/types";14import type { TaskRecord } from "../../core/src/types";
15import { describeError } from "../../core/src/utils";15import { describeError } from "../../core/src/utils";
16import { publishTaskEvent } from "./events";16import { publishTaskEvent } from "./events";
17import { taskTerminalEventType } from "../task-status";17import { taskTerminalEventType } from "../task/status";
18import { markTaskFinished } from "../task-finish";18import { markTaskFinished } from "../task/finish";
19import { invokeTool } from "./tool_invocation";19import { invokeTool } from "./tool_invocation";
20 20
21async function markTaskFailedAndPublish(21async function markTaskFailedAndPublish(
executor/packages/convex/runtime/tool_call_credentials.tsrenamed from executor/packages/convex/executor_node/tool_call_credentials.ts+2−0
@@ -1,3 +1,5 @@
1"use node";
2
1import type { ActionCtx } from "../_generated/server";3import type { ActionCtx } from "../_generated/server";
2import { internal } from "../_generated/api";4import { internal } from "../_generated/api";
3import { resolveCredentialPayload } from "../../core/src/credential-providers";5import { resolveCredentialPayload } from "../../core/src/credential-providers";
executor/packages/convex/runtime/tool_call_lifecycle.tsrenamed from executor/packages/convex/executor_node/tool_call_lifecycle.ts+0−0

File renamed without changes.

executor/packages/convex/runtime/tool_call_resolution.tsrenamed from executor/packages/convex/executor_node/tool_call_resolution.ts+2−0
@@ -1,3 +1,5 @@
1"use node";
2
1import type { ActionCtx } from "../_generated/server";3import type { ActionCtx } from "../_generated/server";
2import { parseGraphqlOperationPaths } from "../../core/src/graphql-operation-paths";4import { parseGraphqlOperationPaths } from "../../core/src/graphql-operation-paths";
3import type { AccessPolicyRecord, PolicyDecision, TaskRecord, ToolDefinition } from "../../core/src/types";5import type { AccessPolicyRecord, PolicyDecision, TaskRecord, ToolDefinition } from "../../core/src/types";
executor/packages/convex/runtime/tool_descriptors.tsrenamed from executor/packages/convex/executor_node/tool_descriptors.ts+0−0

File renamed without changes.

executor/packages/convex/runtime/tool_invocation.tsrenamed from executor/packages/convex/executor_node/tool_invocation.ts+0−0

File renamed without changes.

executor/packages/convex/runtime/tool_paths.test.tsrenamed from executor/packages/convex/executor_node/tool_paths.test.ts+0−0

File renamed without changes.

executor/packages/convex/runtime/tool_paths.tsrenamed from executor/packages/convex/executor_node/tool_paths.ts+0−0

File renamed without changes.

executor/packages/convex/runtime/tool_source_loading.tsrenamed from executor/packages/convex/executor_node/tool_source_loading.ts+0−0

File renamed without changes.

executor/packages/convex/runtime/workspace_tools.tsrenamed from executor/packages/convex/executor_node/workspace_tools.ts+0−0

File renamed without changes.

executor/packages/convex/task/constants.tsrenamed from executor/packages/convex/task-constants.ts+0−0

File renamed without changes.

executor/packages/convex/task/events.tsrenamed from executor/packages/convex/task-events.ts+1−1
@@ -1,4 +1,4 @@
1import { internal } from "./_generated/api";1import { internal } from "../_generated/api";
2 2
3export type TaskEventName = "task" | "approval";3export type TaskEventName = "task" | "approval";
4 4
executor/packages/convex/task/finish.tsrenamed from executor/packages/convex/task-finish.ts+3−3
@@ -1,6 +1,6 @@
1import { internal } from "./_generated/api";1import { internal } from "../_generated/api";
2import type { ActionCtx, MutationCtx } from "./_generated/server";2import type { ActionCtx, MutationCtx } from "../_generated/server";
3import type { TaskRecord, TaskStatus } from "../core/src/types";3import type { TaskRecord, TaskStatus } from "../../core/src/types";
4 4
5type TerminalTaskStatus = Extract<TaskStatus, "completed" | "failed" | "timed_out" | "denied">;5type TerminalTaskStatus = Extract<TaskStatus, "completed" | "failed" | "timed_out" | "denied">;
6type TaskFinishContext = Pick<ActionCtx, "runMutation"> | Pick<MutationCtx, "runMutation">;6type TaskFinishContext = Pick<ActionCtx, "runMutation"> | Pick<MutationCtx, "runMutation">;
executor/packages/convex/task/status.tsrenamed from executor/packages/convex/task-status.ts+1−1
@@ -1,4 +1,4 @@
1import type { TaskStatus } from "../core/src/types";1import type { TaskStatus } from "../../core/src/types";
2 2
3export type TerminalTaskStatus = Extract<TaskStatus, "completed" | "failed" | "timed_out" | "denied">;3export type TerminalTaskStatus = Extract<TaskStatus, "completed" | "failed" | "timed_out" | "denied">;
4 4
executor/scripts/dev/vscode-elicitation-server.tsrenamed from executor/vscode-elicitation-server.ts+0−0

File renamed without changes.

executor/scripts/dev/wipe-convex-db.tsrenamed from executor/wipe-convex-db.ts+0−0

File renamed without changes.

executor/scripts/prod/deploy-prod.test.tsrenamed from executor/scripts/deploy-prod.test.ts+0−0

File renamed without changes.

executor/scripts/prod/deploy-prod.tsrenamed from executor/scripts/deploy-prod.ts+9−9
@@ -33,7 +33,7 @@ interface DeployStep { · 32 unmodified lines
33 cwd?: string;33 cwd?: string;
34}34}
35 35
36const EXECUTOR_ROOT = path.resolve(import.meta.dir, "..");36const EXECUTOR_ROOT = path.resolve(import.meta.dir, "..", "..");
37const RUNNER_HOST_DIR = path.join(EXECUTOR_ROOT, "packages", "runner-sandbox-host");37const RUNNER_HOST_DIR = path.join(EXECUTOR_ROOT, "packages", "runner-sandbox-host");
38 38
39const ALL_STEPS: StepId[] = ["cloudflare", "env", "convex", "doctor"];39const ALL_STEPS: StepId[] = ["cloudflare", "env", "convex", "doctor"];
@@ -52,7 +52,7 @@ function printHelp(): void { · 12 unmodified lines
52 console.log(`Guided production deploy for executor52 console.log(`Guided production deploy for executor
53 53
54Usage:54Usage:
55 bun run scripts/deploy-prod.ts [options]55 bun run scripts/prod/deploy-prod.ts [options]
56 56
57Options:57Options:
58 --apply Execute steps (default is plan only)58 --apply Execute steps (default is plan only)
@@ -69,10 +69,10 @@ Steps: · 10 unmodified lines
69 doctor Verify prod setup and print remediation69 doctor Verify prod setup and print remediation
70 70
71Examples:71Examples:
72 bun run scripts/deploy-prod.ts72 bun run scripts/prod/deploy-prod.ts
73 bun run scripts/deploy-prod.ts --apply73 bun run scripts/prod/deploy-prod.ts --apply
74 bun run scripts/deploy-prod.ts --apply --only cloudflare,doctor74 bun run scripts/prod/deploy-prod.ts --apply --only cloudflare,doctor
75 bun run scripts/deploy-prod.ts --apply --skip convex --yes75 bun run scripts/prod/deploy-prod.ts --apply --skip convex --yes
76`);76`);
77}77}
78 78
@@ -174,13 +174,13 @@ function buildSteps(selected: StepId[]): DeployStep[] { · 95 unmodified lines
174 cloudflare: {174 cloudflare: {
175 id: "cloudflare",175 id: "cloudflare",
176 name: "Cloudflare Runtime",176 name: "Cloudflare Runtime",
177 command: ["bun", "run", "scripts/setup-prod-cloudflare.ts", "--deploy", "--no-doctor"],177 command: ["bun", "run", "scripts/prod/setup-prod-cloudflare.ts", "--deploy", "--no-doctor"],
178 cwd: EXECUTOR_ROOT,178 cwd: EXECUTOR_ROOT,
179 },179 },
180 env: {180 env: {
181 id: "env",181 id: "env",
182 name: "Convex Env Sync",182 name: "Convex Env Sync",
183 command: ["bun", "run", "scripts/setup-prod-env.ts", "--from-env", "--strict"],183 command: ["bun", "run", "scripts/prod/setup-prod-env.ts", "--from-env", "--strict"],
184 cwd: EXECUTOR_ROOT,184 cwd: EXECUTOR_ROOT,
185 },185 },
186 convex: {186 convex: {
@@ -192,7 +192,7 @@ function buildSteps(selected: StepId[]): DeployStep[] { · 5 unmodified lines
192 doctor: {192 doctor: {
193 id: "doctor",193 id: "doctor",
194 name: "Production Doctor",194 name: "Production Doctor",
195 command: ["bun", "run", "scripts/doctor-prod.ts"],195 command: ["bun", "run", "scripts/prod/doctor-prod.ts"],
196 cwd: EXECUTOR_ROOT,196 cwd: EXECUTOR_ROOT,
197 },197 },
198 };198 };
executor/scripts/prod/doctor-prod.test.tsrenamed from executor/scripts/doctor-prod.test.ts+0−0

File renamed without changes.

executor/scripts/prod/doctor-prod.tsrenamed from executor/scripts/doctor-prod.ts+1−1
@@ -49,7 +49,7 @@ const AUTH_SERVER_ENV_KEYS = [ · 48 unmodified lines
49 "WORKOS_AUTHKIT_DOMAIN",49 "WORKOS_AUTHKIT_DOMAIN",
50] as const;50] as const;
51 51
52const EXECUTOR_ROOT = path.resolve(import.meta.dir, "..");52const EXECUTOR_ROOT = path.resolve(import.meta.dir, "..", "..");
53 53
54function addCheck(report: ProductionDoctorReport, name: string, ok: boolean, detail: string): void {54function addCheck(report: ProductionDoctorReport, name: string, ok: boolean, detail: string): void {
55 report.checks.push({ name, ok, detail });55 report.checks.push({ name, ok, detail });
executor/scripts/prod/setup-prod-cloudflare.tsrenamed from executor/scripts/setup-prod-cloudflare.ts+2−2
@@ -18,14 +18,14 @@ interface CommandResult { · 17 unmodified lines
18 stderr: string;18 stderr: string;
19}19}
20 20
21const EXECUTOR_ROOT = path.resolve(import.meta.dir, "..");21const EXECUTOR_ROOT = path.resolve(import.meta.dir, "..", "..");
22const SANDBOX_HOST_DIR = path.join(EXECUTOR_ROOT, "packages", "runner-sandbox-host");22const SANDBOX_HOST_DIR = path.join(EXECUTOR_ROOT, "packages", "runner-sandbox-host");
23 23
24function printHelp(): void {24function printHelp(): void {
25 console.log(`Setup Cloudflare runtime for production25 console.log(`Setup Cloudflare runtime for production
26 26
27Usage:27Usage:
28 bun run scripts/setup-prod-cloudflare.ts [options]28 bun run scripts/prod/setup-prod-cloudflare.ts [options]
29 29
30Options:30Options:
31 --run-url <url> Explicit sandbox run URL (e.g. https://.../v1/runs)31 --run-url <url> Explicit sandbox run URL (e.g. https://.../v1/runs)
executor/scripts/prod/setup-prod-env.tsrenamed from executor/scripts/setup-prod-env.ts+1−1
@@ -30,7 +30,7 @@ function printHelp(): void { · 29 unmodified lines
30 console.log(`Setup production Convex app env vars30 console.log(`Setup production Convex app env vars
31 31
32Usage:32Usage:
33 bun run scripts/setup-prod-env.ts --from-env [--strict]33 bun run scripts/prod/setup-prod-env.ts --from-env [--strict]
34 34
35Options:35Options:
36 --from-env Read values from current shell env and push to Convex prod36 --from-env Read values from current shell env and push to Convex prod
executor/scripts/release/build-release.tsrenamed from executor/scripts/build-release.ts+1−1
@@ -115,7 +115,7 @@ async function buildWebArtifact(rootDir: string, releaseDir: string, checksums: · 114 unmodified lines
115}115}
116 116
117async function main(): Promise<void> {117async function main(): Promise<void> {
118 const rootDir = path.resolve(import.meta.dir, "..");118 const rootDir = path.resolve(import.meta.dir, "..", "..");
119 const releaseDir = path.join(rootDir, "dist", "release");119 const releaseDir = path.join(rootDir, "dist", "release");
120 120
121 await fs.rm(releaseDir, { recursive: true, force: true });121 await fs.rm(releaseDir, { recursive: true, force: true });
executor/tsconfig.json+1−2
@@ -20,7 +20,6 @@ · 19 unmodified lines
20 "packages/runner-node/**/*.ts",20 "packages/runner-node/**/*.ts",
21 "packages/core/src/**/*.ts",21 "packages/core/src/**/*.ts",
22 "scripts/**/*.ts",22 "scripts/**/*.ts",
23 "executor.ts",23 "executor.ts"
24 "vscode-elicitation-server.ts"
25 ]24 ]
26}25}
package.json+1−1
@@ -28,7 +28,7 @@ · 27 unmodified lines
28 "typecheck": "bun run typecheck:executor && bun run typecheck:assistant",28 "typecheck": "bun run typecheck:executor && bun run typecheck:assistant",
29 "typecheck:executor": "bunx tsc --noEmit -p executor/tsconfig.json",29 "typecheck:executor": "bunx tsc --noEmit -p executor/tsconfig.json",
30 "typecheck:assistant": "bunx tsc --noEmit -p assistant/packages/server/tsconfig.json && bunx tsc --noEmit -p assistant/packages/bot/tsconfig.json",30 "typecheck:assistant": "bunx tsc --noEmit -p assistant/packages/server/tsconfig.json && bunx tsc --noEmit -p assistant/packages/bot/tsconfig.json",
31 "db:clear:executor": "bun with-env bun run executor/wipe-convex-db.ts",31 "db:clear:executor": "bun with-env bun run executor/scripts/dev/wipe-convex-db.ts",
32 "convex:codegen": "bunx --cwd executor convex codegen"32 "convex:codegen": "bunx --cwd executor convex codegen"
33 },33 },
34 "dependencies": {34 "dependencies": {