History

Normalize hyphenated filenames into nested folders

This migrates tracked files away from multi-hyphen basenames and updates imports and script paths so references stay consistent after renames.

Rhys Sullivan committed 9 months ago

Commit ab185fe1 parent a5df1d8153 files · +277 −251Browse files

Unified · Split

153 files
  1. executor/apps/web/src/app/[[...dashboard]]/page.tsx +1 −1
  2. executor/apps/web/src/app/mcp/oauth/callback/route.ts +3 −3
  3. executor/apps/web/src/app/mcp/oauth/detect/route.ts +1 −1
  4. executor/apps/web/src/app/mcp/oauth/result/route.ts +1 −1
  5. executor/apps/web/src/app/mcp/oauth/start/route.ts +3 −3
  6. executor/apps/web/src/components/app-shell.tsx +1 −1
  7. executor/apps/web/src/components/approval-notifier.tsx +1 −1
  8. executor/apps/web/src/components/approvals/approvals-view.tsx +3 −3
  9. executor/apps/web/src/components/dashboard/pending/approvals-card.tsx +0 −0
  10. executor/apps/web/src/components/dashboard/view.tsx +2 −2
  11. executor/apps/web/src/components/formatted/code-block.tsx +0 −0
  12. executor/apps/web/src/components/menubar/mvp-view.tsx +1 −1
  13. executor/apps/web/src/components/no/organization-modal.tsx +0 −0
  14. executor/apps/web/src/components/organization/organization/settings-view.tsx +0 −0
  15. executor/apps/web/src/components/static/app-shell.tsx +0 −0
  16. executor/apps/web/src/components/tasks/code-editor.tsx +2 −2
  17. executor/apps/web/src/components/tasks/code/editor-monaco.ts +0 −0
  18. executor/apps/web/src/components/tasks/code/editor-types.ts +1 −1
  19. executor/apps/web/src/components/tasks/task-composer.tsx +1 −1
  20. executor/apps/web/src/components/tasks/task-detail.tsx +2 −2
  21. executor/apps/web/src/components/tasks/task/list-item.tsx +0 −0
  22. executor/apps/web/src/components/tasks/tasks-view.tsx +2 −2
  23. executor/apps/web/src/components/tools/add/source-dialog.tsx +6 −6
  24. executor/apps/web/src/components/tools/add/source-submit.ts +3 −3
  25. executor/apps/web/src/components/tools/add/source/auth-panel.tsx +2 −2
  26. executor/apps/web/src/components/tools/add/source/dialog-helpers.ts +0 −0
  27. executor/apps/web/src/components/tools/add/source/dialog-sections.tsx +1 −1
  28. executor/apps/web/src/components/tools/add/source/form-utils.ts +3 −3
  29. executor/apps/web/src/components/tools/connection/auth-fields.tsx +1 −1
  30. executor/apps/web/src/components/tools/connection/form-dialog.tsx +6 −6
  31. executor/apps/web/src/components/tools/connection/form-save.ts +0 −0
  32. executor/apps/web/src/components/tools/connection/form/dialog-form.ts +2 −2
  33. executor/apps/web/src/components/tools/connection/form/dialog-state.ts +2 −2
  34. executor/apps/web/src/components/tools/credentials.tsx +2 −2
  35. executor/apps/web/src/components/tools/explorer-derived.ts +2 −2
  36. executor/apps/web/src/components/tools/explorer-groups.tsx +32 −1
  37. executor/apps/web/src/components/tools/explorer-helpers.ts +1 −1
  38. executor/apps/web/src/components/tools/explorer-rows.tsx +2 −2
  39. executor/apps/web/src/components/tools/explorer.tsx +2 −2
  40. executor/apps/web/src/components/tools/explorer/copy-button.tsx +0 −0
  41. executor/apps/web/src/components/tools/explorer/tool-detail.tsx +1 −1
  42. executor/apps/web/src/components/tools/explorer/type-signature.tsx +0 −0
  43. executor/apps/web/src/components/tools/source-card.tsx +4 −4
  44. executor/apps/web/src/components/tools/source/quality-details.tsx +1 −1
  45. executor/apps/web/src/components/tools/sources.tsx +1 −1
  46. executor/apps/web/src/components/tools/use/add/source/form-state.ts +6 −6
  47. executor/apps/web/src/components/tools/view.tsx +7 −12
  48. executor/apps/web/src/frontend/app.tsx +1 −1
  49. executor/apps/web/src/hooks/use/workspace-tools.ts +0 −0
  50. executor/apps/web/src/lib/approval/input-format.ts +0 −0
  51. executor/apps/web/src/lib/credentials/source-helpers.ts +2 −2
  52. executor/apps/web/src/lib/mcp/oauth-popup.ts +0 −0
  53. executor/apps/web/src/lib/mcp/oauth-provider.ts +0 −0
  54. executor/apps/web/src/lib/mcp/oauth-request.ts +0 −0
  55. executor/apps/web/src/lib/mcp/oauth-url.ts +0 −0
  56. executor/apps/web/src/lib/openapi/spec-inspector.ts +0 −0
  57. executor/apps/web/src/lib/session-context.tsx +1 −1
  58. executor/apps/web/src/lib/session/context-derivation.ts +0 −0
  59. executor/apps/web/src/lib/tool/explorer-grouping.ts +1 −1
  60. executor/apps/web/src/lib/tool/source-utils.ts +0 −0
  61. executor/apps/web/src/lib/tools/source-helpers.ts +0 −0
  62. executor/apps/web/src/lib/workspace/query-args.ts +0 −0
  63. executor/executor.ts +1 −1
  64. executor/package.json +2 −2
  65. executor/packages/convex/access-controls.test.ts +1 −1
  66. executor/packages/convex/accounts.ts +1 −1
  67. executor/packages/convex/auth.ts +1 −1
  68. executor/packages/convex/auth/event_handlers.ts +1 −1
  69. executor/packages/convex/auth/memberships.ts +1 −1
  70. executor/packages/convex/auth/personal_workspace.ts +1 −1
  71. executor/packages/convex/auth/types.ts +1 −1
  72. executor/packages/convex/billing.ts +1 −1
  73. executor/packages/convex/billingInternal.ts +1 −1
  74. executor/packages/convex/database.test.ts +1 −1
  75. executor/packages/convex/database/anonymous.ts +1 −1
  76. executor/packages/convex/database/mappers.ts +1 −1
  77. executor/packages/convex/database/readers.ts +1 −1
  78. executor/packages/convex/executor-mcp.e2e.test.ts +1 −1
  79. executor/packages/convex/executor.ts +1 −1
  80. executor/packages/convex/http/mcp_auth.ts +1 −1
  81. executor/packages/convex/http/mcp_service.ts +1 −1
  82. executor/packages/convex/mcp/run/code-oom.e2e.test.ts +11 −11
  83. executor/packages/convex/migrations.ts +2 −2
  84. executor/packages/convex/organizations.ts +1 −1
  85. executor/packages/convex/runtime/actor_auth.ts +1 −1
  86. executor/packages/convex/runtime/task_runner.ts +2 −2
  87. executor/packages/convex/runtime/tool_call_resolution.ts +1 −1
  88. executor/packages/convex/runtime/tool_source_loading.ts +3 −3
  89. executor/packages/convex/runtime/workspace_tools.ts +2 −2
  90. executor/packages/convex/workspaces.ts +1 −1
  91. executor/packages/core/package.json +1 −1
  92. executor/packages/core/src/adapters/in/process/execution-adapter.test.ts +2 −2
  93. executor/packages/core/src/adapters/in/process/execution-adapter.ts +3 −3
  94. executor/packages/core/src/graphql/field-tools.ts +1 −1
  95. executor/packages/core/src/graphql/operation-paths.ts +1 −1
  96. executor/packages/core/src/identity.ts +1 −1
  97. executor/packages/core/src/managed-runtime.ts +4 −4
  98. executor/packages/core/src/managed/runtime-archives.ts +1 −1
  99. executor/packages/core/src/managed/runtime-bootstrap.ts +4 −4
  100. executor/packages/core/src/managed/runtime-info.ts +1 −1
  101. executor/packages/core/src/managed/runtime-installation.ts +4 −4
  102. executor/packages/core/src/managed/runtime-process.ts +0 −0
  103. executor/packages/core/src/mcp-server.test.ts +1 −1
  104. executor/packages/core/src/mcp-server.ts +5 −5
  105. executor/packages/core/src/mcp/server-approval.ts +4 −4
  106. executor/packages/core/src/mcp/server-contracts.ts +3 −3
  107. executor/packages/core/src/mcp/server-formatting.ts +2 −2
  108. executor/packages/core/src/mcp/server-utils.ts +0 −0
  109. executor/packages/core/src/openapi-auth.ts +1 −1
  110. executor/packages/core/src/openapi-compaction.ts +1 −1
  111. executor/packages/core/src/openapi-prepare.ts +2 −2
  112. executor/packages/core/src/openapi/helper-types.ts +0 −0
  113. executor/packages/core/src/openapi/real-specs.test.ts +1 −1
  114. executor/packages/core/src/openapi/schema-hints.ts +1 −1
  115. executor/packages/core/src/openapi/tool-builder.ts +9 −9
  116. executor/packages/core/src/openapi/tool-path.ts +1 −1
  117. executor/packages/core/src/postman-runtime.ts +1 −1
  118. executor/packages/core/src/postman/collection-utils.ts +2 −2
  119. executor/packages/core/src/runtimes/cloudflare/worker/loader-runtime.test.ts +6 −6
  120. executor/packages/core/src/runtimes/cloudflare/worker/loader-runtime.ts +3 −3
  121. executor/packages/core/src/runtimes/runtime-core.test.ts +1 −1
  122. executor/packages/core/src/tool-discovery.test.ts +1 −1
  123. executor/packages/core/src/tool-source-loaders/graphql-loader.ts +5 −5
  124. executor/packages/core/src/tool-source-loaders/mcp-loader.ts +6 −6
  125. executor/packages/core/src/tool-source-loaders/openapi-loader.ts +5 −5
  126. executor/packages/core/src/tool-sources.test.ts +1 −1
  127. executor/packages/core/src/tool-sources.ts +7 −7
  128. executor/packages/core/src/tool/path-utils.ts +0 −0
  129. executor/packages/core/src/tool/source-auth.ts +2 −2
  130. executor/packages/core/src/tool/source-execution.ts +1 −1
  131. executor/packages/core/src/tool/source-serialization.ts +6 −6
  132. executor/packages/core/src/tool/source-types.ts +1 −1
  133. executor/packages/core/src/types.ts +1 −1
  134. executor/packages/core/src/workspace/tool-cache.test.ts +7 −7
  135. executor/packages/runner-sandbox-host/src/isolate/text-modules.d.ts +0 −0
  136. executor/scripts/dev/vscode/elicitation-server.ts +0 −0
  137. executor/scripts/dev/wipe/convex-db.ts +0 −0
  138. executor/scripts/prod/deploy-prod.ts +2 −2
  139. executor/scripts/prod/setup/prod-cloudflare.ts +2 −2
  140. executor/scripts/prod/setup/prod-env.ts +1 −1
  141. package.json +1 −1
  142. sources/data/openapi/github-discovery.csv +0 −0
  143. sources/data/openapi/github-discovery.json +0 −0
  144. sources/data/openapi/github/discovery-all.csv +0 −0
  145. sources/data/openapi/github/discovery-all.json +0 −0
  146. sources/data/openapi/github/discovery-huge.csv +0 −0
  147. sources/data/openapi/github/discovery-huge.json +0 −0
  148. sources/data/openapi/github/discovery/huge-enriched.csv +0 −0
  149. sources/data/openapi/github/discovery/huge-enriched.json +0 −0
  150. sources/data/openapi/github/discovery/huge/enriched-min10.csv +0 −0
  151. sources/data/openapi/github/discovery/huge/enriched-min10.json +0 −0
  152. sources/data/openapi/github/discovery/huge/enriched-min50.csv +0 −0
  153. sources/data/openapi/github/discovery/huge/enriched-min50.json +0 −0
executor/apps/web/src/app/[[...dashboard]]/page.tsx+1−1
@@ -1,4 +1,4 @@
1import { StaticAppShell } from "@/components/static-app-shell";1import { StaticAppShell } from "@/components/static/app-shell";
2 2
3export default function DashboardRoutesPage() {3export default function DashboardRoutesPage() {
4 return <StaticAppShell />;4 return <StaticAppShell />;
executor/apps/web/src/app/mcp/oauth/callback/route.ts+3−3
@@ -2,8 +2,8 @@ import type { NextRequest } from "next/server"; · 1 unmodified line
2import { NextResponse } from "next/server";2import { NextResponse } from "next/server";
3import { Result } from "better-result";3import { Result } from "better-result";
4import { auth } from "@modelcontextprotocol/sdk/client/auth.js";4import { auth } from "@modelcontextprotocol/sdk/client/auth.js";
5import { getExternalOrigin, isExternalHttps } from "@/lib/mcp-oauth-request";5import { getExternalOrigin, isExternalHttps } from "@/lib/mcp/oauth-request";
6import { parseMcpSourceUrl } from "@/lib/mcp-oauth-url";6import { parseMcpSourceUrl } from "@/lib/mcp/oauth-url";
7import {7import {
8 buildPendingCookieName,8 buildPendingCookieName,
9 decodePendingCookieValue,9 decodePendingCookieValue,
@@ -11,7 +11,7 @@ import { · 1 unmodified line
11 MCP_OAUTH_RESULT_COOKIE,11 MCP_OAUTH_RESULT_COOKIE,
12 McpPopupOAuthProvider,12 McpPopupOAuthProvider,
13 type McpOAuthPopupResult,13 type McpOAuthPopupResult,
14} from "@/lib/mcp-oauth-provider";14} from "@/lib/mcp/oauth-provider";
15 15
16function popupResultRedirect(16function popupResultRedirect(
17 request: NextRequest,17 request: NextRequest,
executor/apps/web/src/app/mcp/oauth/detect/route.ts+1−1
@@ -2,7 +2,7 @@ import type { NextRequest } from "next/server"; · 1 unmodified line
2import { NextResponse } from "next/server";2import { NextResponse } from "next/server";
3import { Result } from "better-result";3import { Result } from "better-result";
4import { discoverOAuthProtectedResourceMetadata } from "@modelcontextprotocol/sdk/client/auth.js";4import { discoverOAuthProtectedResourceMetadata } from "@modelcontextprotocol/sdk/client/auth.js";
5import { parseMcpSourceUrl } from "@/lib/mcp-oauth-url";5import { parseMcpSourceUrl } from "@/lib/mcp/oauth-url";
6 6
7type DetectResponse = {7type DetectResponse = {
8 oauth: boolean;8 oauth: boolean;
executor/apps/web/src/app/mcp/oauth/result/route.ts+1−1
@@ -4,7 +4,7 @@ import { · 3 unmodified lines
4 decodePopupResultCookieValue,4 decodePopupResultCookieValue,
5 MCP_OAUTH_RESULT_COOKIE,5 MCP_OAUTH_RESULT_COOKIE,
6 type McpOAuthPopupResult,6 type McpOAuthPopupResult,
7} from "@/lib/mcp-oauth-provider";7} from "@/lib/mcp/oauth-provider";
8 8
9type PopupMessage =9type PopupMessage =
10 | {10 | {
executor/apps/web/src/app/mcp/oauth/start/route.ts+3−3
@@ -2,8 +2,8 @@ import type { NextRequest } from "next/server"; · 1 unmodified line
2import { NextResponse } from "next/server";2import { NextResponse } from "next/server";
3import { Result } from "better-result";3import { Result } from "better-result";
4import { auth } from "@modelcontextprotocol/sdk/client/auth.js";4import { auth } from "@modelcontextprotocol/sdk/client/auth.js";
5import { getExternalOrigin, isExternalHttps } from "@/lib/mcp-oauth-request";5import { getExternalOrigin, isExternalHttps } from "@/lib/mcp/oauth-request";
6import { parseMcpSourceUrl } from "@/lib/mcp-oauth-url";6import { parseMcpSourceUrl } from "@/lib/mcp/oauth-url";
7import {7import {
8 buildPendingCookieName,8 buildPendingCookieName,
9 createOAuthState,9 createOAuthState,
@@ -12,7 +12,7 @@ import { · 2 unmodified lines
12 MCP_OAUTH_RESULT_COOKIE,12 MCP_OAUTH_RESULT_COOKIE,
13 McpPopupOAuthProvider,13 McpPopupOAuthProvider,
14 type McpOAuthPopupResult,14 type McpOAuthPopupResult,
15} from "@/lib/mcp-oauth-provider";15} from "@/lib/mcp/oauth-provider";
16 16
17function popupResultRedirect(request: NextRequest, payload: McpOAuthPopupResult): NextResponse {17function popupResultRedirect(request: NextRequest, payload: McpOAuthPopupResult): NextResponse {
18 const externalOrigin = getExternalOrigin(request);18 const externalOrigin = getExternalOrigin(request);
executor/apps/web/src/components/app-shell.tsx+1−1
@@ -10,7 +10,7 @@ import { ApprovalNotifier } from "@/components/approval-notifier"; · 9 unmodified lines
10import { ThemeSwitcher } from "@/components/theme-switcher";10import { ThemeSwitcher } from "@/components/theme-switcher";
11import { WorkspaceSelector } from "@/components/workspace-selector";11import { WorkspaceSelector } from "@/components/workspace-selector";
12import { SessionInfo } from "@/components/session-info";12import { SessionInfo } from "@/components/session-info";
13import { NoOrganizationModal } from "@/components/no-organization-modal";13import { NoOrganizationModal } from "@/components/no/organization-modal";
14import { cn } from "@/lib/utils";14import { cn } from "@/lib/utils";
15 15
16const NAV_ITEMS = [16const NAV_ITEMS = [
executor/apps/web/src/components/approval-notifier.tsx+1−1
@@ -7,7 +7,7 @@ import { toast } from "sonner"; · 6 unmodified lines
7import { useSession } from "@/lib/session-context";7import { useSession } from "@/lib/session-context";
8import { convexApi } from "@/lib/convex-api";8import { convexApi } from "@/lib/convex-api";
9import type { PendingApprovalRecord } from "@/lib/types";9import type { PendingApprovalRecord } from "@/lib/types";
10import { workspaceQueryArgs } from "@/lib/workspace-query-args";10import { workspaceQueryArgs } from "@/lib/workspace/query-args";
11 11
12export function ApprovalNotifier() {12export function ApprovalNotifier() {
13 const navigate = useNavigate();13 const navigate = useNavigate();
executor/apps/web/src/components/approvals/approvals-view.tsx+3−3
@@ -20,9 +20,9 @@ import { useMutation, useQuery } from "convex/react"; · 19 unmodified lines
20import type { PendingApprovalRecord } from "@/lib/types";20import type { PendingApprovalRecord } from "@/lib/types";
21import { toast } from "sonner";21import { toast } from "sonner";
22import { formatTimeAgo } from "@/lib/format";22import { formatTimeAgo } from "@/lib/format";
23import { FormattedCodeBlock } from "@/components/formatted-code-block";23import { FormattedCodeBlock } from "@/components/formatted/code-block";
24import { formatApprovalInput } from "@/lib/approval-input-format";24import { formatApprovalInput } from "@/lib/approval/input-format";
25import { workspaceQueryArgs } from "@/lib/workspace-query-args";25import { workspaceQueryArgs } from "@/lib/workspace/query-args";
26 26
27function ApprovalCard({27function ApprovalCard({
28 approval,28 approval,
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/view.tsx+2−2
@@ -5,11 +5,11 @@ import { useQuery } from "convex/react"; · 4 unmodified lines
5import { Skeleton } from "@/components/ui/skeleton";5import { Skeleton } from "@/components/ui/skeleton";
6import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";6import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
7import { PageHeader } from "@/components/page-header";7import { PageHeader } from "@/components/page-header";
8import { DashboardPendingApprovalsCard } from "@/components/dashboard/pending-approvals-card";8import { DashboardPendingApprovalsCard } from "@/components/dashboard/pending/approvals-card";
9import { McpSetupCard } from "@/components/tools/setup-card";9import { McpSetupCard } from "@/components/tools/setup-card";
10import { useSession } from "@/lib/session-context";10import { useSession } from "@/lib/session-context";
11import { convexApi } from "@/lib/convex-api";11import { convexApi } from "@/lib/convex-api";
12import { workspaceQueryArgs } from "@/lib/workspace-query-args";12import { workspaceQueryArgs } from "@/lib/workspace/query-args";
13 13
14export function DashboardView() {14export function DashboardView() {
15 const { context, loading: sessionLoading } = useSession();15 const { context, loading: sessionLoading } = useSession();
executor/apps/web/src/components/formatted/code-block.tsxrenamed from executor/apps/web/src/components/formatted-code-block.tsx+0−0

File renamed without changes.

executor/apps/web/src/components/menubar/mvp-view.tsx+1−1
@@ -9,7 +9,7 @@ import { Button } from "@/components/ui/button"; · 8 unmodified lines
9import { convexApi } from "@/lib/convex-api";9import { convexApi } from "@/lib/convex-api";
10import { useSession } from "@/lib/session-context";10import { useSession } from "@/lib/session-context";
11import type { TaskRecord } from "@/lib/types";11import type { TaskRecord } from "@/lib/types";
12import { workspaceQueryArgs } from "@/lib/workspace-query-args";12import { workspaceQueryArgs } from "@/lib/workspace/query-args";
13import { getTaskRuntimeLabel } from "@/lib/runtime-display";13import { getTaskRuntimeLabel } from "@/lib/runtime-display";
14 14
15export function MenubarMvpView() {15export function MenubarMvpView() {
executor/apps/web/src/components/no/organization-modal.tsxrenamed from executor/apps/web/src/components/no-organization-modal.tsx+0−0

File renamed without changes.

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

File renamed without changes.

executor/apps/web/src/components/static/app-shell.tsxrenamed from executor/apps/web/src/components/static-app-shell.tsx+0−0

File renamed without changes.

executor/apps/web/src/components/tasks/code-editor.tsx+2−2
@@ -10,13 +10,13 @@ import { · 9 unmodified lines
10 BASE_ENVIRONMENT_DTS,10 BASE_ENVIRONMENT_DTS,
11 OPENAPI_HELPER_TYPES,11 OPENAPI_HELPER_TYPES,
12 generateToolsDts,12 generateToolsDts,
13} from "./code-editor-types";13} from "./code/editor-types";
14import {14import {
15 CODE_EDITOR_OPTIONS,15 CODE_EDITOR_OPTIONS,
16 configureJavascriptDefaults,16 configureJavascriptDefaults,
17 defineExecutorThemes,17 defineExecutorThemes,
18 setDiagnosticsOptions,18 setDiagnosticsOptions,
19} from "./code-editor-monaco";19} from "./code/editor-monaco";
20 20
21interface CodeEditorProps {21interface CodeEditorProps {
22 value: string;22 value: string;
executor/apps/web/src/components/tasks/code/editor-monaco.tsrenamed from executor/apps/web/src/components/tasks/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/tasks/code-editor-types.ts+1−1
@@ -1,5 +1,5 @@
1import type { ToolDescriptor } from "@/lib/types";1import type { ToolDescriptor } from "@/lib/types";
2export { OPENAPI_HELPER_TYPES } from "@executor/core/openapi-helper-types";2export { OPENAPI_HELPER_TYPES } from "@executor/core/openapi/helper-types";
3 3
4interface NamespaceNode {4interface NamespaceNode {
5 children: Map<string, NamespaceNode>;5 children: Map<string, NamespaceNode>;
executor/apps/web/src/components/tasks/task-composer.tsx+1−1
@@ -19,7 +19,7 @@ import { CodeEditor } from "@/components/tasks/code-editor"; · 18 unmodified lines
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";
22import { useWorkspaceTools } from "@/hooks/use-workspace-tools";22import { useWorkspaceTools } from "@/hooks/use/workspace-tools";
23 23
24const DEFAULT_CODE = `// Example: discover tools and return matching tool names24const DEFAULT_CODE = `// Example: discover tools and return matching tool names
25const found = await tools.discover({25const found = await tools.discover({
executor/apps/web/src/components/tasks/task-detail.tsx+2−2
@@ -9,9 +9,9 @@ import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; · 8 unmodified lines
9import { Button } from "@/components/ui/button";9import { Button } from "@/components/ui/button";
10import { Separator } from "@/components/ui/separator";10import { Separator } from "@/components/ui/separator";
11import { TaskStatusBadge } from "@/components/status-badge";11import { TaskStatusBadge } from "@/components/status-badge";
12import { FormattedCodeBlock } from "@/components/formatted-code-block";12import { FormattedCodeBlock } from "@/components/formatted/code-block";
13import { convexApi } from "@/lib/convex-api";13import { convexApi } from "@/lib/convex-api";
14import { formatApprovalInput } from "@/lib/approval-input-format";14import { formatApprovalInput } from "@/lib/approval/input-format";
15import { cn } from "@/lib/utils";15import { cn } from "@/lib/utils";
16import type { TaskRecord, PendingApprovalRecord } from "@/lib/types";16import type { TaskRecord, PendingApprovalRecord } from "@/lib/types";
17 17
executor/apps/web/src/components/tasks/task/list-item.tsxrenamed from executor/apps/web/src/components/tasks/task-list-item.tsx+0−0

File renamed without changes.

executor/apps/web/src/components/tasks/tasks-view.tsx+2−2
@@ -10,11 +10,11 @@ import { PageHeader } from "@/components/page-header"; · 9 unmodified lines
10import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";10import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
11import { TaskDetail } from "@/components/tasks/task-detail";11import { TaskDetail } from "@/components/tasks/task-detail";
12import { TaskComposer } from "@/components/tasks/task-composer";12import { TaskComposer } from "@/components/tasks/task-composer";
13import { TaskListItem } from "@/components/tasks/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";
17import { workspaceQueryArgs } from "@/lib/workspace-query-args";17import { workspaceQueryArgs } from "@/lib/workspace/query-args";
18import type {18import type {
19 TaskRecord,19 TaskRecord,
20 PendingApprovalRecord,20 PendingApprovalRecord,
executor/apps/web/src/components/tools/add/source-dialog.tsxrenamed from executor/apps/web/src/components/tools/add-source-dialog.tsx+6−6
@@ -16,18 +16,18 @@ import { · 15 unmodified lines
16import { useSession } from "@/lib/session-context";16import { useSession } from "@/lib/session-context";
17import { convexApi } from "@/lib/convex-api";17import { convexApi } from "@/lib/convex-api";
18import type { CredentialRecord, ToolSourceRecord } from "@/lib/types";18import type { CredentialRecord, ToolSourceRecord } from "@/lib/types";
19import { workspaceQueryArgs } from "@/lib/workspace-query-args";19import { workspaceQueryArgs } from "@/lib/workspace/query-args";
20import type { CatalogCollectionItem } from "@/lib/catalog-collections";20import type { CatalogCollectionItem } from "@/lib/catalog-collections";
21import { startMcpOAuthPopup } from "@/lib/mcp-oauth-popup";21import { startMcpOAuthPopup } from "@/lib/mcp/oauth-popup";
22import {22import {
23 CatalogViewSection,23 CatalogViewSection,
24 CustomViewSection,24 CustomViewSection,
25} from "./add-source-dialog-sections";25} from "./source/dialog-sections";
26import { SourceAuthPanel } from "./add-source-auth-panel";26import { SourceAuthPanel } from "./source/auth-panel";
27import {27import {
28 useAddSourceFormState,28 useAddSourceFormState,
29} from "./use-add-source-form-state";29} from "../use/add/source/form-state";
30import { saveSourceWithCredentials } from "./add-source-submit";30import { saveSourceWithCredentials } from "./source-submit";
31 31
32function resultErrorMessage(error: unknown, fallback: string): string {32function resultErrorMessage(error: unknown, fallback: string): string {
33 const cause = typeof error === "object" && error && "cause" in error33 const cause = typeof error === "object" && error && "cause" in error
executor/apps/web/src/components/tools/add/source-submit.tsrenamed from executor/apps/web/src/components/tools/add-source-submit.ts+3−3
@@ -1,4 +1,4 @@
1import { sourceKeyForSource } from "@/lib/tools-source-helpers";1import { sourceKeyForSource } from "@/lib/tools/source-helpers";
2import type {2import type {
3 AnonymousContext,3 AnonymousContext,
4 CredentialRecord,4 CredentialRecord,
@@ -6,8 +6,8 @@ import type { · 1 unmodified line
6 SourceAuthType,6 SourceAuthType,
7 ToolSourceRecord,7 ToolSourceRecord,
8} from "@/lib/types";8} from "@/lib/types";
9import { createCustomSourceConfig, type SourceType } from "./add-source-dialog-helpers";9import { createCustomSourceConfig, type SourceType } from "./source/dialog-helpers";
10import { existingCredentialMatchesAuthType } from "./add-source-form-utils";10import { existingCredentialMatchesAuthType } from "./source/form-utils";
11 11
12type UpsertToolSourceFn = (args: {12type UpsertToolSourceFn = (args: {
13 id?: ToolSourceRecord["id"];13 id?: ToolSourceRecord["id"];
executor/apps/web/src/components/tools/add/source/auth-panel.tsxrenamed from executor/apps/web/src/components/tools/add-source-auth-panel.tsx+2−2
@@ -10,9 +10,9 @@ import { · 9 unmodified lines
10 SelectTrigger,10 SelectTrigger,
11 SelectValue,11 SelectValue,
12} from "@/components/ui/select";12} from "@/components/ui/select";
13import type { InferredSpecAuth } from "@/lib/openapi-spec-inspector";13import type { InferredSpecAuth } from "@/lib/openapi/spec-inspector";
14import type { CredentialScope, SourceAuthType } from "@/lib/types";14import type { CredentialScope, SourceAuthType } from "@/lib/types";
15import type { SourceType } from "./add-source-dialog-helpers";15import type { SourceType } from "./dialog-helpers";
16 16
17export type SourceAuthPanelEditableField =17export type SourceAuthPanelEditableField =
18 | "apiKeyHeader"18 | "apiKeyHeader"
executor/apps/web/src/components/tools/add/source/dialog-helpers.tsrenamed from executor/apps/web/src/components/tools/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/add-source-dialog-sections.tsx+1−1
@@ -19,7 +19,7 @@ import { · 18 unmodified lines
19 endpointPlaceholderForType,19 endpointPlaceholderForType,
20 type SourceCatalogSort,20 type SourceCatalogSort,
21 type SourceType,21 type SourceType,
22} from "./add-source-dialog-helpers";22} from "./dialog-helpers";
23 23
24export function CatalogViewSection({24export function CatalogViewSection({
25 catalogQuery,25 catalogQuery,
executor/apps/web/src/components/tools/add/source/form-utils.tsrenamed from executor/apps/web/src/components/tools/add-source-form-utils.ts+3−3
@@ -1,7 +1,7 @@
1import type { InferredSpecAuth } from "@/lib/openapi-spec-inspector";1import type { InferredSpecAuth } from "@/lib/openapi/spec-inspector";
2import { readSourceAuth } from "@/lib/tools-source-helpers";2import { readSourceAuth } from "@/lib/tools/source-helpers";
3import type { CredentialRecord, CredentialScope, SourceAuthType, ToolSourceRecord } from "@/lib/types";3import type { CredentialRecord, CredentialScope, SourceAuthType, ToolSourceRecord } from "@/lib/types";
4import type { SourceCatalogSort, SourceType } from "./add-source-dialog-helpers";4import type { SourceCatalogSort, SourceType } from "./dialog-helpers";
5 5
6export type SourceDialogView = "catalog" | "custom";6export type SourceDialogView = "catalog" | "custom";
7 7
executor/apps/web/src/components/tools/connection/auth-fields.tsxrenamed from executor/apps/web/src/components/tools/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 "./connection-form-dialog-state";6import type { ConnectionMode } from "./form/dialog-state";
7 7
8type SelectedAuth = {8type SelectedAuth = {
9 type: SourceAuthType;9 type: SourceAuthType;
executor/apps/web/src/components/tools/connection/form-dialog.tsxrenamed from executor/apps/web/src/components/tools/connection-form-dialog.tsx+6−6
@@ -32,16 +32,16 @@ import type { · 31 unmodified lines
32import {32import {
33 connectionDisplayName,33 connectionDisplayName,
34 parseHeaderOverrides,34 parseHeaderOverrides,
35} from "@/lib/credentials-source-helpers";35} from "@/lib/credentials/source-helpers";
36import { sourceForCredentialKey } from "@/lib/tools-source-helpers";36import { sourceForCredentialKey } from "@/lib/tools/source-helpers";
37import { ConnectionAuthFields } from "./connection-auth-fields";37import { ConnectionAuthFields } from "./auth-fields";
38import { type ConnectionMode } from "./connection-form-dialog-state";38import { type ConnectionMode } from "./form/dialog-state";
39import { useConnectionFormDialogForm } from "./connection-form-dialog-form";39import { useConnectionFormDialogForm } from "./form/dialog-form";
40import {40import {
41 buildSecretJson,41 buildSecretJson,
42 connectionSubmitCopy,42 connectionSubmitCopy,
43 connectionSuccessCopy,43 connectionSuccessCopy,
44} from "./connection-form-save";44} from "./form-save";
45 45
46export function ConnectionFormDialog({46export function ConnectionFormDialog({
47 open,47 open,
executor/apps/web/src/components/tools/connection/form-save.tsrenamed from executor/apps/web/src/components/tools/connection-form-save.ts+0−0

File renamed without changes.

executor/apps/web/src/components/tools/connection/form/dialog-form.tsrenamed from executor/apps/web/src/components/tools/connection-form-dialog-form.ts+2−2
@@ -8,14 +8,14 @@ import type { · 7 unmodified lines
8import {8import {
9 formatHeaderOverrides,9 formatHeaderOverrides,
10 sourceAuthForKey,10 sourceAuthForKey,
11} from "@/lib/credentials-source-helpers";11} from "@/lib/credentials/source-helpers";
12import {12import {
13 buildConnectionOptions,13 buildConnectionOptions,
14 buildSourceOptions,14 buildSourceOptions,
15 compatibleConnections,15 compatibleConnections,
16 selectedAuthBadge,16 selectedAuthBadge,
17 type ConnectionMode,17 type ConnectionMode,
18} from "./connection-form-dialog-state";18} from "./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/connection-form-dialog-state.ts+2−2
@@ -7,8 +7,8 @@ import type { · 6 unmodified lines
7import {7import {
8 sourceOptionLabel,8 sourceOptionLabel,
9 type SourceOption,9 type SourceOption,
10} from "@/lib/credentials-source-helpers";10} from "@/lib/credentials/source-helpers";
11import { sourceKeyForSource } from "@/lib/tools-source-helpers";11import { sourceKeyForSource } from "@/lib/tools/source-helpers";
12 12
13export type ConnectionMode = "new" | "existing";13export type ConnectionMode = "new" | "existing";
14 14
executor/apps/web/src/components/tools/credentials.tsx+2−2
@@ -16,11 +16,11 @@ import type { · 15 unmodified lines
16import {16import {
17 connectionDisplayName,17 connectionDisplayName,
18 providerLabel,18 providerLabel,
19} from "@/lib/credentials-source-helpers";19} from "@/lib/credentials/source-helpers";
20import {20import {
21 getSourceFavicon,21 getSourceFavicon,
22 sourceForCredentialKey,22 sourceForCredentialKey,
23} from "@/lib/tools-source-helpers";23} from "@/lib/tools/source-helpers";
24 24
25export function CredentialsPanel({25export function CredentialsPanel({
26 sources,26 sources,
executor/apps/web/src/components/tools/explorer-derived.ts+2−2
@@ -4,8 +4,8 @@ import { · 3 unmodified lines
4 buildSourceTree,4 buildSourceTree,
5 toolNamespace,5 toolNamespace,
6 type ToolGroup,6 type ToolGroup,
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 { ToolSourceRecord } from "@/lib/types";10import type { ToolSourceRecord } from "@/lib/types";
11import type { GroupBy, ViewMode } from "./explorer-toolbar";11import type { GroupBy, ViewMode } from "./explorer-toolbar";
executor/apps/web/src/components/tools/explorer-groups.tsx+32−1
@@ -19,7 +19,7 @@ import { · 18 unmodified lines
19} from "@/components/ui/collapsible";19} from "@/components/ui/collapsible";
20import { Skeleton } from "@/components/ui/skeleton";20import { Skeleton } from "@/components/ui/skeleton";
21import { cn } from "@/lib/utils";21import { cn } from "@/lib/utils";
22import { toolOperation, type ToolGroup } from "@/lib/tool-explorer-grouping";22import { toolOperation, type ToolGroup } from "@/lib/tool/explorer-grouping";
23import type { ToolDescriptor, ToolSourceRecord } from "@/lib/types";23import type { ToolDescriptor, ToolSourceRecord } from "@/lib/types";
24import { SelectableToolRow, ToolLoadingRows } from "./explorer-rows";24import { SelectableToolRow, ToolLoadingRows } from "./explorer-rows";
25 25
@@ -224,10 +224,26 @@ export function SourceSidebar({ · 198 unmodified lines
224 }224 }
225 return counts;225 return counts;
226 }, [warnings]);226 }, [warnings]);
227 const warningMessagesBySource = useMemo(() => {
228 const messages: Record<string, string[]> = {};
229 for (const warning of warnings) {
230 const source = warning.match(/source '([^']+)'/i)?.[1];
231 if (!source) {
232 continue;
233 }
234 messages[source] ??= [];
235 messages[source].push(warning);
236 }
237 return messages;
238 }, [warnings]);
227 const totalSourceWarningCount = useMemo(239 const totalSourceWarningCount = useMemo(
228 () => Object.values(warningCountsBySource).reduce((sum, count) => sum + count, 0),240 () => Object.values(warningCountsBySource).reduce((sum, count) => sum + count, 0),
229 [warningCountsBySource],241 [warningCountsBySource],
230 );242 );
243 const activeSourceWarnings = useMemo(
244 () => (activeSource ? warningMessagesBySource[activeSource] ?? [] : []),
245 [activeSource, warningMessagesBySource],
246 );
231 247
232 const groups = useMemo(() => {248 const groups = useMemo(() => {
233 const map = new Map<249 const map = new Map<
@@ -336,6 +352,21 @@ export function SourceSidebar({ · 102 unmodified lines
336 </button>352 </button>
337 );353 );
338 })}354 })}
355
356 {activeSource && activeSourceWarnings.length > 0 ? (
357 <div className="mt-2 rounded-md border border-terminal-amber/30 bg-terminal-amber/5 px-2 py-2">
358 <p className="text-[10px] font-mono text-terminal-amber/90">
359 {activeSourceWarnings.length} warning{activeSourceWarnings.length !== 1 ? "s" : ""}
360 </p>
361 <div className="mt-1.5 space-y-1">
362 {activeSourceWarnings.map((warning, index) => (
363 <p key={`${activeSource}-${index}`} className="text-[10px] leading-4 text-muted-foreground">
364 {warning}
365 </p>
366 ))}
367 </div>
368 </div>
369 ) : null}
339 </div>370 </div>
340 </div>371 </div>
341 );372 );
executor/apps/web/src/components/tools/explorer-helpers.ts+1−1
@@ -1,5 +1,5 @@
1import type { ToolDescriptor } from "@/lib/types";1import type { ToolDescriptor } from "@/lib/types";
2import type { ToolGroup } from "@/lib/tool-explorer-grouping";2import type { ToolGroup } from "@/lib/tool/explorer-grouping";
3 3
4export function findToolsInGroupByKey(4export function findToolsInGroupByKey(
5 groups: ToolGroup[],5 groups: ToolGroup[],
executor/apps/web/src/components/tools/explorer-rows.tsx+2−2
@@ -13,8 +13,8 @@ import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@/component · 12 unmodified lines
13import { Skeleton } from "@/components/ui/skeleton";13import { Skeleton } from "@/components/ui/skeleton";
14import { cn } from "@/lib/utils";14import { cn } from "@/lib/utils";
15import type { ToolDescriptor } from "@/lib/types";15import type { ToolDescriptor } from "@/lib/types";
16import { CopyButton } from "./explorer-copy-button";16import { CopyButton } from "./explorer/copy-button";
17import { ToolDetail } from "./explorer-tool-detail";17import { ToolDetail } from "./explorer/tool-detail";
18 18
19const ToolRow = memo(function ToolRow({19const ToolRow = memo(function ToolRow({
20 tool,20 tool,
executor/apps/web/src/components/tools/explorer.tsx+2−2
@@ -4,7 +4,7 @@ import { useState, useMemo, useCallback, useRef, useDeferredValue, useEffect } f · 3 unmodified lines
4import { cn } from "@/lib/utils";4import { cn } from "@/lib/utils";
5import {5import {
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 "./explorer-helpers";9import { findToolsInGroupByKey } from "./explorer-helpers";
10import {10import {
@@ -18,7 +18,7 @@ import { · 7 unmodified lines
18 treeGroupsForView,18 treeGroupsForView,
19 type FilterApproval,19 type FilterApproval,
20} from "./explorer-derived";20} from "./explorer-derived";
21import { sourceLabel } from "@/lib/tool-source-utils";21import { sourceLabel } from "@/lib/tool/source-utils";
22import {22import {
23 EmptyState,23 EmptyState,
24 LoadingState,24 LoadingState,
executor/apps/web/src/components/tools/explorer/copy-button.tsxrenamed from executor/apps/web/src/components/tools/explorer-copy-button.tsx+0−0

File renamed without changes.

executor/apps/web/src/components/tools/explorer/tool-detail.tsxrenamed from executor/apps/web/src/components/tools/explorer-tool-detail.tsx+1−1
@@ -4,7 +4,7 @@ import { Streamdown } from "streamdown"; · 3 unmodified lines
4import { createCodePlugin } from "@streamdown/code";4import { createCodePlugin } from "@streamdown/code";
5import type { ToolDescriptor } from "@/lib/types";5import type { ToolDescriptor } from "@/lib/types";
6import { Skeleton } from "@/components/ui/skeleton";6import { Skeleton } from "@/components/ui/skeleton";
7import { TypeSignature } from "./explorer-type-signature";7import { TypeSignature } from "./type-signature";
8 8
9const codePlugin = createCodePlugin({9const codePlugin = createCodePlugin({
10 themes: ["github-light", "github-dark"],10 themes: ["github-light", "github-dark"],
executor/apps/web/src/components/tools/explorer/type-signature.tsxrenamed from executor/apps/web/src/components/tools/explorer-type-signature.tsx+0−0

File renamed without changes.

executor/apps/web/src/components/tools/source-card.tsx+4−4
@@ -15,7 +15,7 @@ import type { · 14 unmodified lines
15 ToolSourceRecord,15 ToolSourceRecord,
16} from "@/lib/types";16} from "@/lib/types";
17import { cn } from "@/lib/utils";17import { cn } from "@/lib/utils";
18import { displaySourceName } from "@/lib/tool-source-utils";18import { displaySourceName } from "@/lib/tool/source-utils";
19import {19import {
20 compactEndpointLabel,20 compactEndpointLabel,
21 formatSourceAuthBadge,21 formatSourceAuthBadge,
@@ -23,12 +23,12 @@ import { · 1 unmodified line
23 readSourceAuth,23 readSourceAuth,
24 sourceAuthProfileForSource,24 sourceAuthProfileForSource,
25 sourceEndpointLabel,25 sourceEndpointLabel,
26} from "@/lib/tools-source-helpers";26} from "@/lib/tools/source-helpers";
27import { AddSourceDialog } from "./add-source-dialog";27import { AddSourceDialog } from "./add/source-dialog";
28import {28import {
29 OpenApiQualityDetails,29 OpenApiQualityDetails,
30 SourceQualitySummary,30 SourceQualitySummary,
31} from "./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/source-quality-details.tsx+1−1
@@ -15,7 +15,7 @@ import { · 14 unmodified lines
15 formatQualityPercent,15 formatQualityPercent,
16 qualitySummaryLabel,16 qualitySummaryLabel,
17 qualityToneClass,17 qualityToneClass,
18} from "@/lib/tools-source-helpers";18} from "@/lib/tools/source-helpers";
19 19
20export function SourceQualitySummary({20export function SourceQualitySummary({
21 quality,21 quality,
executor/apps/web/src/components/tools/sources.tsx+1−1
@@ -1,2 +1,2 @@
1export { AddSourceDialog } from "./add-source-dialog";1export { AddSourceDialog } from "./add/source-dialog";
2export { SourceCard } from "./source-card";2export { SourceCard } from "./source-card";
executor/apps/web/src/components/tools/use/add/source/form-state.tsrenamed from executor/apps/web/src/components/tools/use-add-source-form-state.ts+6−6
@@ -1,12 +1,12 @@
1import { useDeferredValue, useEffect, useMemo, useState, type Dispatch, type SetStateAction } from "react";1import { useDeferredValue, useEffect, useMemo, useState, type Dispatch, type SetStateAction } from "react";
2import { useQuery as useTanstackQuery } from "@tanstack/react-query";2import { useQuery as useTanstackQuery } from "@tanstack/react-query";
3import { useForm, useWatch } from "react-hook-form";3import { useForm, useWatch } from "react-hook-form";
4import { fetchAndInspectOpenApiSpec, type InferredSpecAuth } from "@/lib/openapi-spec-inspector";4import { fetchAndInspectOpenApiSpec, type InferredSpecAuth } from "@/lib/openapi/spec-inspector";
5import type { CatalogCollectionItem } from "@/lib/catalog-collections";5import type { CatalogCollectionItem } from "@/lib/catalog-collections";
6import { catalogSourceName, inferNameFromUrl, sourceKeyForSource, withUniqueSourceName } from "@/lib/tools-source-helpers";6import { catalogSourceName, inferNameFromUrl, sourceKeyForSource, withUniqueSourceName } from "@/lib/tools/source-helpers";
7import type { CredentialRecord, CredentialScope, SourceAuthType, ToolSourceRecord } from "@/lib/types";7import type { CredentialRecord, CredentialScope, SourceAuthType, ToolSourceRecord } from "@/lib/types";
8import { getVisibleCatalogItems, type SourceCatalogSort, type SourceType } from "./add-source-dialog-helpers";8import { getVisibleCatalogItems, type SourceCatalogSort, type SourceType } from "../../../add/source/dialog-helpers";
9import type { SourceAuthPanelEditableField } from "./add-source-auth-panel";9import type { SourceAuthPanelEditableField } from "../../../add/source/auth-panel";
10import {10import {
11 buildAuthConfig,11 buildAuthConfig,
12 buildSecretJson,12 buildSecretJson,
@@ -24,9 +24,9 @@ import { · 11 unmodified lines
24 type AddSourceUiState,24 type AddSourceUiState,
25 type SourceDialogView,25 type SourceDialogView,
26 type SourceFormValues,26 type SourceFormValues,
27} from "./add-source-form-utils";27} from "../../../add/source/form-utils";
28 28
29export { existingCredentialMatchesAuthType } from "./add-source-form-utils";29export { existingCredentialMatchesAuthType } from "../../../add/source/form-utils";
30 30
31function normalizeEndpointForOAuth(value: string): string {31function normalizeEndpointForOAuth(value: string): string {
32 const trimmed = value.trim();32 const trimmed = value.trim();
executor/apps/web/src/components/tools/view.tsx+7−12
@@ -13,9 +13,9 @@ import { ToolExplorer } from "@/components/tools/explorer"; · 12 unmodified lines
13import { TaskComposer } from "@/components/tasks/task-composer";13import { TaskComposer } from "@/components/tasks/task-composer";
14import { AddSourceDialog, SourceCard } from "@/components/tools/sources";14import { AddSourceDialog, SourceCard } from "@/components/tools/sources";
15import { CredentialsPanel } from "@/components/tools/credentials";15import { CredentialsPanel } from "@/components/tools/credentials";
16import { ConnectionFormDialog } from "@/components/tools/connection-form-dialog";16import { ConnectionFormDialog } from "@/components/tools/connection/form-dialog";
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";
20import { convexApi } from "@/lib/convex-api";20import { convexApi } from "@/lib/convex-api";
21import type {21import type {
@@ -25,9 +25,9 @@ import type { · 3 unmodified lines
25import {25import {
26 credentialStatsForSource,26 credentialStatsForSource,
27 toolSourceLabelForSource,27 toolSourceLabelForSource,
28} from "@/lib/tools-source-helpers";28} from "@/lib/tools/source-helpers";
29import { sourceLabel } from "@/lib/tool-source-utils";29import { sourceLabel } from "@/lib/tool/source-utils";
30import { workspaceQueryArgs } from "@/lib/workspace-query-args";30import { workspaceQueryArgs } from "@/lib/workspace/query-args";
31 31
32type ToolsTab = "catalog" | "credentials" | "editor";32type ToolsTab = "catalog" | "credentials" | "editor";
33 33
@@ -123,7 +123,7 @@ export function ToolsView({ · 89 unmodified lines
123 }123 }
124 124
125 return (125 return (
126 <div className="flex h-full min-h-0 flex-col gap-6">126 <div className="flex h-full min-h-0 flex-col">
127 <PageHeader127 <PageHeader
128 title="Tools"128 title="Tools"
129 description="Run tasks, manage sources, auth, connections, and available tools"129 description="Run tasks, manage sources, auth, connections, and available tools"
@@ -164,7 +164,7 @@ export function ToolsView({ · 34 unmodified lines
164 <div className="flex items-center justify-between gap-3">164 <div className="flex items-center justify-between gap-3">
165 <CardTitle className="text-sm font-medium flex items-center gap-2">165 <CardTitle className="text-sm font-medium flex items-center gap-2">
166 <Globe className="h-4 w-4 text-muted-foreground" />166 <Globe className="h-4 w-4 text-muted-foreground" />
167 Tools + Sources167 Tools
168 <span className="text-[10px] font-mono bg-muted text-muted-foreground px-1.5 py-0.5 rounded">168 <span className="text-[10px] font-mono bg-muted text-muted-foreground px-1.5 py-0.5 rounded">
169 {loadingTools ? "..." : tools.length}169 {loadingTools ? "..." : tools.length}
170 </span>170 </span>
@@ -180,11 +180,6 @@ export function ToolsView({ · 9 unmodified lines
180 />180 />
181 </div>181 </div>
182 </div>182 </div>
183 <p className="text-[11px] text-muted-foreground">
184 {activeSource
185 ? `Filtering and managing ${activeSource}.`
186 : "Source management and tool inventory are unified here."}
187 </p>
188 </CardHeader>183 </CardHeader>
189 <CardContent className="pt-0 min-h-0 flex-1 flex flex-col gap-3">184 <CardContent className="pt-0 min-h-0 flex-1 flex flex-col gap-3">
190 {sourcesLoading ? (185 {sourcesLoading ? (
executor/apps/web/src/frontend/app.tsx+1−1
@@ -6,7 +6,7 @@ import { ApprovalsView } from "@/components/approvals/approvals-view"; · 5 unmodified lines
6import { DashboardView } from "@/components/dashboard/view";6import { DashboardView } from "@/components/dashboard/view";
7import { MenubarMvpView } from "@/components/menubar/mvp-view";7import { MenubarMvpView } from "@/components/menubar/mvp-view";
8import { OnboardingView } from "@/components/organization/onboarding-view";8import { OnboardingView } from "@/components/organization/onboarding-view";
9import { OrganizationSettingsView } from "@/components/organization/organization-settings-view";9import { OrganizationSettingsView } from "@/components/organization/organization/settings-view";
10import { TasksView } from "@/components/tasks/tasks-view";10import { TasksView } from "@/components/tasks/tasks-view";
11import { ToolsView } from "@/components/tools/view";11import { ToolsView } from "@/components/tools/view";
12 12
executor/apps/web/src/hooks/use/workspace-tools.tsrenamed from executor/apps/web/src/hooks/use-workspace-tools.ts+0−0

File renamed without changes.

executor/apps/web/src/lib/approval/input-format.tsrenamed from executor/apps/web/src/lib/approval-input-format.ts+0−0

File renamed without changes.

executor/apps/web/src/lib/credentials/source-helpers.tsrenamed from executor/apps/web/src/lib/credentials-source-helpers.ts+2−2
@@ -1,11 +1,11 @@
1import { displaySourceName } from "@/lib/tool-source-utils";1import { displaySourceName } from "@/lib/tool/source-utils";
2import {2import {
3 readSourceAuth,3 readSourceAuth,
4 sourceForCredentialKey,4 sourceForCredentialKey,
5 toolSourceLabelForSource,5 toolSourceLabelForSource,
6 type SourceAuthMode,6 type SourceAuthMode,
7 type SourceAuthType,7 type SourceAuthType,
8} from "@/lib/tools-source-helpers";8} from "@/lib/tools/source-helpers";
9import type { CredentialScope, SourceAuthProfile, ToolSourceRecord } from "@/lib/types";9import type { CredentialScope, SourceAuthProfile, ToolSourceRecord } from "@/lib/types";
10 10
11export type SourceOption = { source: ToolSourceRecord; key: string; label: string };11export type SourceOption = { source: ToolSourceRecord; key: string; label: string };
executor/apps/web/src/lib/mcp/oauth-popup.tsrenamed from executor/apps/web/src/lib/mcp-oauth-popup.ts+0−0

File renamed without changes.

executor/apps/web/src/lib/mcp/oauth-provider.tsrenamed from executor/apps/web/src/lib/mcp-oauth-provider.ts+0−0

File renamed without changes.

executor/apps/web/src/lib/mcp/oauth-request.tsrenamed from executor/apps/web/src/lib/mcp-oauth-request.ts+0−0

File renamed without changes.

executor/apps/web/src/lib/mcp/oauth-url.tsrenamed from executor/apps/web/src/lib/mcp-oauth-url.ts+0−0

File renamed without changes.

executor/apps/web/src/lib/openapi/spec-inspector.tsrenamed from executor/apps/web/src/lib/openapi-spec-inspector.ts+0−0

File renamed without changes.

executor/apps/web/src/lib/session-context.tsx+1−1
@@ -20,7 +20,7 @@ import { · 19 unmodified lines
20 resolveActiveWorkspaceId,20 resolveActiveWorkspaceId,
21 type WorkosAccount,21 type WorkosAccount,
22 type WorkspaceListItem,22 type WorkspaceListItem,
23} from "@/lib/session-context-derivation";23} from "@/lib/session/context-derivation";
24import {24import {
25 clearSessionStorage,25 clearSessionStorage,
26 persistActiveWorkspaceId,26 persistActiveWorkspaceId,
executor/apps/web/src/lib/session/context-derivation.tsrenamed from executor/apps/web/src/lib/session-context-derivation.ts+0−0

File renamed without changes.

executor/apps/web/src/lib/tool/explorer-grouping.tsrenamed from executor/apps/web/src/lib/tool-explorer-grouping.ts+1−1
@@ -1,4 +1,4 @@
1import { sourceLabel, sourceType } from "@/lib/tool-source-utils";1import { sourceLabel, sourceType } from "@/lib/tool/source-utils";
2import type { ToolDescriptor } from "@/lib/types";2import type { ToolDescriptor } from "@/lib/types";
3 3
4export interface ToolGroup {4export interface ToolGroup {
executor/apps/web/src/lib/tool/source-utils.tsrenamed from executor/apps/web/src/lib/tool-source-utils.ts+0−0

File renamed without changes.

executor/apps/web/src/lib/tools/source-helpers.tsrenamed from executor/apps/web/src/lib/tools-source-helpers.ts+0−0

File renamed without changes.

executor/apps/web/src/lib/workspace/query-args.tsrenamed from executor/apps/web/src/lib/workspace-query-args.ts+0−0

File renamed without changes.

executor/executor.ts+1−1
@@ -3,7 +3,7 @@ · 2 unmodified lines
3import fs from "node:fs/promises";3import fs from "node:fs/promises";
4import os from "node:os";4import os from "node:os";
5import path from "node:path";5import path from "node:path";
6import { checkBootstrapHealth } from "./packages/core/src/managed-runtime-bootstrap";6import { checkBootstrapHealth } from "./packages/core/src/managed/runtime-bootstrap";
7import { managedRuntimeDiagnostics, runManagedBackend, runManagedWeb } from "./packages/core/src/managed-runtime";7import { managedRuntimeDiagnostics, runManagedBackend, runManagedWeb } from "./packages/core/src/managed-runtime";
8 8
9interface InstallPaths {9interface InstallPaths {
executor/package.json+2−2
@@ -11,8 +11,8 @@ · 10 unmodified lines
11 "doctor": "bun run executor.ts doctor",11 "doctor": "bun run executor.ts doctor",
12 "doctor:prod": "bun run scripts/prod/doctor-prod.ts",12 "doctor:prod": "bun run scripts/prod/doctor-prod.ts",
13 "deploy:prod": "bun run scripts/prod/deploy-prod.ts",13 "deploy:prod": "bun run scripts/prod/deploy-prod.ts",
14 "setup:prod:env": "bun run scripts/prod/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/prod/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",
executor/packages/convex/access-controls.test.ts+1−1
@@ -1,7 +1,7 @@
1import { describe, expect, test } from "bun:test";1import { describe, expect, test } from "bun:test";
2import { convexTest } from "convex-test";2import { convexTest } from "convex-test";
3import { api } from "./_generated/api";3import { api } from "./_generated/api";
4import type { Id } from "./_generated/dataModel";4import type { Id } from "./_generated/dataModel.d.ts";
5import schema from "./schema";5import schema from "./schema";
6 6
7// ---------------------------------------------------------------------------7// ---------------------------------------------------------------------------
executor/packages/convex/accounts.ts+1−1
@@ -1,4 +1,4 @@
1import type { Id } from "./_generated/dataModel";1import type { Id } from "./_generated/dataModel.d.ts";
2import type { MutationCtx } from "./_generated/server";2import type { MutationCtx } from "./_generated/server";
3import { authedMutation } from "../core/src/function-builders";3import { authedMutation } from "../core/src/function-builders";
4 4
executor/packages/convex/auth.ts+1−1
@@ -1,6 +1,6 @@
1import { AuthKit, type AuthFunctions } from "@convex-dev/workos-authkit";1import { AuthKit, type AuthFunctions } from "@convex-dev/workos-authkit";
2import { components, internal } from "./_generated/api";2import { components, internal } from "./_generated/api";
3import type { DataModel } from "./_generated/dataModel";3import type { DataModel } from "./_generated/dataModel.d.ts";
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";
executor/packages/convex/auth/event_handlers.ts+1−1
@@ -1,5 +1,5 @@
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.d.ts";
3import type { MutationCtx } from "../_generated/server";3import type { MutationCtx } from "../_generated/server";
4import { upsertWorkosAccount } from "./accounts";4import { upsertWorkosAccount } from "./accounts";
5import {5import {
executor/packages/convex/auth/memberships.ts+1−1
@@ -1,4 +1,4 @@
1import type { Doc } from "../_generated/dataModel";1import type { Doc } from "../_generated/dataModel.d.ts";
2import type {2import type {
3 AccountId,3 AccountId,
4 DbCtx,4 DbCtx,
executor/packages/convex/auth/personal_workspace.ts+1−1
@@ -1,4 +1,4 @@
1import type { Id } from "../_generated/dataModel";1import type { Id } from "../_generated/dataModel.d.ts";
2import { upsertOrganizationMembership } from "./memberships";2import { upsertOrganizationMembership } from "./memberships";
3import {3import {
4 buildPersonalWorkspaceSlugSeed,4 buildPersonalWorkspaceSlugSeed,
executor/packages/convex/auth/types.ts+1−1
@@ -1,4 +1,4 @@
1import type { Doc, Id } from "../_generated/dataModel";1import type { Doc, Id } from "../_generated/dataModel.d.ts";
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">;
executor/packages/convex/billing.ts+1−1
@@ -1,6 +1,6 @@
1import { StripeSubscriptions } from "@convex-dev/stripe";1import { StripeSubscriptions } from "@convex-dev/stripe";
2import { v } from "convex/values";2import { v } from "convex/values";
3import type { Id } from "./_generated/dataModel";3import type { Id } from "./_generated/dataModel.d.ts";
4import { components, internal } from "./_generated/api";4import { components, internal } from "./_generated/api";
5import type { MutationCtx, QueryCtx } from "./_generated/server";5import type { MutationCtx, QueryCtx } from "./_generated/server";
6import { action } from "./_generated/server";6import { action } from "./_generated/server";
executor/packages/convex/billingInternal.ts+1−1
@@ -1,5 +1,5 @@
1import { v } from "convex/values";1import { v } from "convex/values";
2import type { Doc, Id } from "./_generated/dataModel";2import type { Doc, Id } from "./_generated/dataModel.d.ts";
3import type { MutationCtx, QueryCtx } from "./_generated/server";3import type { MutationCtx, QueryCtx } from "./_generated/server";
4import { internalMutation, internalQuery } from "./_generated/server";4import { internalMutation, internalQuery } from "./_generated/server";
5import { internalOrganizationQuery } from "../core/src/function-builders";5import { internalOrganizationQuery } from "../core/src/function-builders";
executor/packages/convex/database.test.ts+1−1
@@ -1,7 +1,7 @@
1import { expect, test } from "bun:test";1import { expect, test } from "bun:test";
2import { convexTest } from "convex-test";2import { convexTest } from "convex-test";
3import { internal } from "./_generated/api";3import { internal } from "./_generated/api";
4import type { Id } from "./_generated/dataModel";4import type { Id } from "./_generated/dataModel.d.ts";
5import schema from "./schema";5import schema from "./schema";
6 6
7function setup() {7function setup() {
executor/packages/convex/database/anonymous.ts+1−1
@@ -1,4 +1,4 @@
1import type { Doc } from "../_generated/dataModel";1import type { Doc } from "../_generated/dataModel.d.ts";
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";
executor/packages/convex/database/mappers.ts+1−1
@@ -1,4 +1,4 @@
1import type { Doc } from "../_generated/dataModel";1import type { Doc } from "../_generated/dataModel.d.ts";
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
executor/packages/convex/database/readers.ts+1−1
@@ -1,4 +1,4 @@
1import type { Doc } from "../_generated/dataModel";1import type { Doc } from "../_generated/dataModel.d.ts";
2import type { QueryCtx } from "../_generated/server";2import type { QueryCtx } from "../_generated/server";
3import { normalizeSourceAuthFingerprint } from "./mappers";3import { normalizeSourceAuthFingerprint } from "./mappers";
4import { asRecord } from "../lib/object";4import { asRecord } from "../lib/object";
executor/packages/convex/executor-mcp.e2e.test.ts+1−1
@@ -4,7 +4,7 @@ import { Client } from "@modelcontextprotocol/sdk/client/index.js"; · 3 unmodified lines
4import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";4import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
5import { ElicitRequestSchema } from "@modelcontextprotocol/sdk/types.js";5import { ElicitRequestSchema } from "@modelcontextprotocol/sdk/types.js";
6import { internal } from "./_generated/api";6import { internal } from "./_generated/api";
7import type { Id } from "./_generated/dataModel";7import type { Id } from "./_generated/dataModel.d.ts";
8import schema from "./schema";8import schema from "./schema";
9 9
10function setup() {10function setup() {
executor/packages/convex/executor.ts+1−1
@@ -1,6 +1,6 @@
1import { v } from "convex/values";1import { v } from "convex/values";
2import { internal } from "./_generated/api";2import { internal } from "./_generated/api";
3import type { Id } from "./_generated/dataModel";3import type { Id } from "./_generated/dataModel.d.ts";
4import type { MutationCtx } from "./_generated/server";4import type { MutationCtx } from "./_generated/server";
5import { internalMutation } from "./_generated/server";5import { internalMutation } from "./_generated/server";
6import { workspaceMutation } from "../core/src/function-builders";6import { workspaceMutation } from "../core/src/function-builders";
executor/packages/convex/http/mcp_auth.ts+1−1
@@ -1,5 +1,5 @@
1import { createRemoteJWKSet, jwtVerify } from "jose";1import { createRemoteJWKSet, jwtVerify } from "jose";
2import type { Id } from "../_generated/dataModel";2import type { Id } from "../_generated/dataModel.d.ts";
3import type { ActionCtx } from "../_generated/server";3import type { ActionCtx } from "../_generated/server";
4 4
5export const MCP_PATH = "/mcp";5export const MCP_PATH = "/mcp";
executor/packages/convex/http/mcp_service.ts+1−1
@@ -1,6 +1,6 @@
1import type { ActionCtx } from "../_generated/server";1import type { ActionCtx } from "../_generated/server";
2import { internal } from "../_generated/api";2import { internal } from "../_generated/api";
3import type { Id } from "../_generated/dataModel";3import type { Id } from "../_generated/dataModel.d.ts";
4import type {4import type {
5 AnonymousContext,5 AnonymousContext,
6 PendingApprovalRecord,6 PendingApprovalRecord,
executor/packages/convex/mcp/run/code-oom.e2e.test.tsrenamed from executor/packages/convex/mcp-run-code-oom.e2e.test.ts+11−11
@@ -2,22 +2,22 @@ import { expect, test } from "bun:test"; · 1 unmodified line
2import { convexTest } from "convex-test";2import { convexTest } from "convex-test";
3import { Client } from "@modelcontextprotocol/sdk/client/index.js";3import { Client } from "@modelcontextprotocol/sdk/client/index.js";
4import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";4import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
5import { internal } from "./_generated/api";5import { internal } from "../../_generated/api";
6import schema from "./schema";6import schema from "../../schema";
7 7
8const OOM_MESSAGE = "JavaScript execution ran out of memory (maximum memory usage: 64 MB): request stream size was 0 bytes";8const OOM_MESSAGE = "JavaScript execution ran out of memory (maximum memory usage: 64 MB): request stream size was 0 bytes";
9 9
10function setup() {10function setup() {
11 return convexTest(schema, {11 return convexTest(schema, {
12 "./database.ts": () => import("./database"),12 "../../database.ts": () => import("../../database"),
13 "./executor.ts": () => import("./executor"),13 "../../executor.ts": () => import("../../executor"),
14 "./executorNode.ts": () => import("./test-fixtures/executorNode.oomFixture"),14 "../../executorNode.ts": () => import("../../test-fixtures/executorNode.oomFixture"),
15 "./http.ts": () => import("./http"),15 "../../http.ts": () => import("../../http"),
16 "./auth.ts": () => import("./auth"),16 "../../auth.ts": () => import("../../auth"),
17 "./workspaceAuthInternal.ts": () => import("./workspaceAuthInternal"),17 "../../workspaceAuthInternal.ts": () => import("../../workspaceAuthInternal"),
18 "./workspaceToolCache.ts": () => import("./workspaceToolCache"),18 "../../workspaceToolCache.ts": () => import("../../workspaceToolCache"),
19 "./openApiSpecCache.ts": () => import("./openApiSpecCache"),19 "../../openApiSpecCache.ts": () => import("../../openApiSpecCache"),
20 "./_generated/api.js": () => import("./_generated/api.js"),20 "../../_generated/api.js": () => import("../../_generated/api.js"),
21 });21 });
22}22}
23 23
executor/packages/convex/migrations.ts+2−2
@@ -1,6 +1,6 @@
1import { Migrations } from "@convex-dev/migrations";1import { Migrations } from "@convex-dev/migrations";
2import type { Id } from "./_generated/dataModel";2import type { Id } from "./_generated/dataModel.d.ts";
3import type { DataModel } from "./_generated/dataModel";3import type { DataModel } from "./_generated/dataModel.d.ts";
4import { components } from "./_generated/api";4import { components } from "./_generated/api";
5 5
6const migrations = new Migrations<DataModel>(components.migrations);6const migrations = new Migrations<DataModel>(components.migrations);
executor/packages/convex/organizations.ts+1−1
@@ -1,5 +1,5 @@
1import { v } from "convex/values";1import { v } from "convex/values";
2import type { Doc, Id } from "./_generated/dataModel";2import type { Doc, Id } from "./_generated/dataModel.d.ts";
3import type { MutationCtx, QueryCtx } from "./_generated/server";3import type { MutationCtx, QueryCtx } from "./_generated/server";
4import { optionalAccountQuery, authedMutation } from "../core/src/function-builders";4import { optionalAccountQuery, authedMutation } from "../core/src/function-builders";
5import { getOrganizationMembership, slugify } from "../core/src/identity";5import { getOrganizationMembership, slugify } from "../core/src/identity";
executor/packages/convex/runtime/actor_auth.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 type { Id } from "../_generated/dataModel";4import type { Id } from "../_generated/dataModel.d.ts";
5import { internal } from "../_generated/api";5import { internal } from "../_generated/api";
6import { actorIdForAccount } from "../../core/src/identity";6import { actorIdForAccount } from "../../core/src/identity";
7 7
executor/packages/convex/runtime/task_runner.ts+2−2
@@ -2,9 +2,9 @@ · 1 unmodified line
2 2
3import type { ActionCtx } from "../_generated/server";3import type { ActionCtx } from "../_generated/server";
4import { internal } from "../_generated/api";4import { internal } from "../_generated/api";
5import { InProcessExecutionAdapter } from "../../core/src/adapters/in-process-execution-adapter";5import { InProcessExecutionAdapter } from "../../core/src/adapters/in/process/execution-adapter";
6import { APPROVAL_DENIED_PREFIX } from "../../core/src/execution-constants";6import { APPROVAL_DENIED_PREFIX } from "../../core/src/execution-constants";
7import { dispatchCodeWithCloudflareWorkerLoader } from "../../core/src/runtimes/cloudflare-worker-loader-runtime";7import { dispatchCodeWithCloudflareWorkerLoader } from "../../core/src/runtimes/cloudflare/worker/loader-runtime";
8import {8import {
9 CLOUDFLARE_WORKER_LOADER_RUNTIME_ID,9 CLOUDFLARE_WORKER_LOADER_RUNTIME_ID,
10 isCloudflareWorkerLoaderConfigured,10 isCloudflareWorkerLoaderConfigured,
executor/packages/convex/runtime/tool_call_resolution.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 { parseGraphqlOperationPaths } from "../../core/src/graphql-operation-paths";4import { parseGraphqlOperationPaths } from "../../core/src/graphql/operation-paths";
5import type { AccessPolicyRecord, PolicyDecision, TaskRecord, ToolDefinition } from "../../core/src/types";5import type { AccessPolicyRecord, PolicyDecision, TaskRecord, ToolDefinition } from "../../core/src/types";
6import { getDecisionForContext, getToolDecision } from "./policy";6import { getDecisionForContext, getToolDecision } from "./policy";
7import { resolveAliasedToolPath, resolveClosestToolPath, suggestToolPaths, toPreferredToolPath } from "./tool_paths";7import { resolveAliasedToolPath, resolveClosestToolPath, suggestToolPaths, toPreferredToolPath } from "./tool_paths";
executor/packages/convex/runtime/tool_source_loading.ts+3−3
@@ -2,7 +2,7 @@ · 1 unmodified line
2 2
3import type { ActionCtx } from "../_generated/server";3import type { ActionCtx } from "../_generated/server";
4import { internal } from "../_generated/api";4import { internal } from "../_generated/api";
5import type { Id } from "../_generated/dataModel";5import type { Id } from "../_generated/dataModel.d.ts";
6import {6import {
7 compileExternalToolSource,7 compileExternalToolSource,
8 compileOpenApiToolSourceFromPrepared,8 compileOpenApiToolSourceFromPrepared,
@@ -10,7 +10,7 @@ import { · 1 unmodified line
10 type CompiledToolSourceArtifact,10 type CompiledToolSourceArtifact,
11} from "../../core/src/tool-sources";11} from "../../core/src/tool-sources";
12import { resolveCredentialPayload } from "../../core/src/credential-providers";12import { resolveCredentialPayload } from "../../core/src/credential-providers";
13import { buildStaticAuthHeaders } from "../../core/src/tool-source-auth";13import { buildStaticAuthHeaders } from "../../core/src/tool/source-auth";
14import type {14import type {
15 ExternalToolSourceConfig,15 ExternalToolSourceConfig,
16 GraphqlToolSourceConfig,16 GraphqlToolSourceConfig,
@@ -18,7 +18,7 @@ import type { · 1 unmodified line
18 OpenApiAuth,18 OpenApiAuth,
19 OpenApiToolSourceConfig,19 OpenApiToolSourceConfig,
20 PreparedOpenApiSpec,20 PreparedOpenApiSpec,
21} from "../../core/src/tool-source-types";21} from "../../core/src/tool/source-types";
22import type { ToolSourceRecord } from "../../core/src/types";22import type { ToolSourceRecord } from "../../core/src/types";
23import { asPayload } from "../lib/object";23import { asPayload } from "../lib/object";
24 24
executor/packages/convex/runtime/workspace_tools.ts+2−2
@@ -2,7 +2,7 @@ · 1 unmodified line
2 2
3import type { ActionCtx } from "../_generated/server";3import type { ActionCtx } from "../_generated/server";
4import { internal } from "../_generated/api";4import { internal } from "../_generated/api";
5import type { Id } from "../_generated/dataModel";5import type { Id } from "../_generated/dataModel.d.ts";
6import { createCatalogTools, createDiscoverTool } from "../../core/src/tool-discovery";6import { createCatalogTools, createDiscoverTool } from "../../core/src/tool-discovery";
7import {7import {
8 materializeCompiledToolSource,8 materializeCompiledToolSource,
@@ -10,7 +10,7 @@ import { · 1 unmodified line
10 type CompiledToolSourceArtifact,10 type CompiledToolSourceArtifact,
11 type WorkspaceToolSnapshot,11 type WorkspaceToolSnapshot,
12} from "../../core/src/tool-sources";12} from "../../core/src/tool-sources";
13import type { ExternalToolSourceConfig } from "../../core/src/tool-source-types";13import type { ExternalToolSourceConfig } from "../../core/src/tool/source-types";
14import type {14import type {
15 AccessPolicyRecord,15 AccessPolicyRecord,
16 OpenApiSourceQuality,16 OpenApiSourceQuality,
executor/packages/convex/workspaces.ts+1−1
@@ -1,5 +1,5 @@
1import { v } from "convex/values";1import { v } from "convex/values";
2import type { Doc, Id } from "./_generated/dataModel";2import type { Doc, Id } from "./_generated/dataModel.d.ts";
3import type { MutationCtx, QueryCtx } from "./_generated/server";3import type { MutationCtx, QueryCtx } from "./_generated/server";
4import { optionalAccountQuery, authedMutation } from "../core/src/function-builders";4import { optionalAccountQuery, authedMutation } from "../core/src/function-builders";
5import { getOrganizationMembership, slugify } from "../core/src/identity";5import { getOrganizationMembership, slugify } from "../core/src/identity";
executor/packages/core/package.json+1−1
@@ -4,7 +4,7 @@ · 3 unmodified lines
4 "private": true,4 "private": true,
5 "type": "module",5 "type": "module",
6 "exports": {6 "exports": {
7 "./openapi-helper-types": "./src/openapi-helper-types.ts"7 "./openapi-helper-types": "./src/openapi/helper-types.ts"
8 },8 },
9 "scripts": {9 "scripts": {
10 "typecheck": "tsc --noEmit"10 "typecheck": "tsc --noEmit"
executor/packages/core/src/adapters/in/process/execution-adapter.test.tsrenamed from executor/packages/core/src/adapters/in-process-execution-adapter.test.ts+2−2
@@ -1,6 +1,6 @@
1import { expect, test } from "bun:test";1import { expect, test } from "bun:test";
2import { APPROVAL_DENIED_PREFIX } from "../execution-constants";2import { APPROVAL_DENIED_PREFIX } from "../../../execution-constants";
3import { InProcessExecutionAdapter } from "./in-process-execution-adapter";3import { InProcessExecutionAdapter } from "./execution-adapter";
4 4
5test("returns run mismatch without invoking tool", async () => {5test("returns run mismatch without invoking tool", async () => {
6 let called = 0;6 let called = 0;
executor/packages/core/src/adapters/in/process/execution-adapter.tsrenamed from executor/packages/core/src/adapters/in-process-execution-adapter.ts+3−3
@@ -1,10 +1,10 @@
1import { APPROVAL_DENIED_PREFIX, APPROVAL_PENDING_PREFIX } from "../execution-constants";1import { APPROVAL_DENIED_PREFIX, APPROVAL_PENDING_PREFIX } from "../../../execution-constants";
2import type {2import type {
3 ExecutionAdapter,3 ExecutionAdapter,
4 ToolCallRequest,4 ToolCallRequest,
5 ToolCallResult,5 ToolCallResult,
6} from "../types";6} from "../../../types";
7import { describeError } from "../utils";7import { describeError } from "../../../utils";
8 8
9interface InProcessExecutionAdapterOptions {9interface InProcessExecutionAdapterOptions {
10 runId: string;10 runId: string;
executor/packages/core/src/graphql/field-tools.tsrenamed from executor/packages/core/src/graphql-field-tools.ts+1−1
@@ -1,4 +1,4 @@
1import type { GraphqlExecutionEnvelope } from "./tool-source-execution";1import type { GraphqlExecutionEnvelope } from "../tool/source-execution";
2 2
3interface GqlTypeRef {3interface GqlTypeRef {
4 kind: string;4 kind: string;
executor/packages/core/src/graphql/operation-paths.tsrenamed from executor/packages/core/src/graphql-operation-paths.ts+1−1
@@ -1,5 +1,5 @@
1import { Kind, parse, type FragmentDefinitionNode, type SelectionSetNode } from "graphql";1import { Kind, parse, type FragmentDefinitionNode, type SelectionSetNode } from "graphql";
2import { sanitizeSegment } from "./tool-path-utils";2import { sanitizeSegment } from "../tool/path-utils";
3 3
4/**4/**
5 * Parse a GraphQL query string to extract the operation type and root field names.5 * Parse a GraphQL query string to extract the operation type and root field names.
executor/packages/core/src/identity.ts+1−1
@@ -1,4 +1,4 @@
1import type { Doc, Id } from "../../convex/_generated/dataModel";1import type { Doc, Id } from "../../convex/_generated/dataModel.d.ts";
2import type { MutationCtx, QueryCtx } from "../../convex/_generated/server";2import type { MutationCtx, QueryCtx } from "../../convex/_generated/server";
3 3
4type IdentityCtx = Pick<QueryCtx, "auth" | "db"> | Pick<MutationCtx, "auth" | "db">;4type IdentityCtx = Pick<QueryCtx, "auth" | "db"> | Pick<MutationCtx, "auth" | "db">;
executor/packages/core/src/managed-runtime.ts+4−4
@@ -1,10 +1,10 @@
1import fs from "node:fs/promises";1import fs from "node:fs/promises";
2import path from "node:path";2import path from "node:path";
3 3
4import { ensureProjectBootstrapped, waitForBackendReady } from "./managed-runtime-bootstrap";4import { ensureProjectBootstrapped, waitForBackendReady } from "./managed/runtime-bootstrap";
5import { backendArgs, ensureConfig, runtimeInfo } from "./managed-runtime-info";5import { backendArgs, ensureConfig, runtimeInfo } from "./managed/runtime-info";
6import { ensureBackendBinary, ensureNodeRuntime, ensureWebBundle } from "./managed-runtime-installation";6import { ensureBackendBinary, ensureNodeRuntime, ensureWebBundle } from "./managed/runtime-installation";
7import { runProcess } from "./managed-runtime-process";7import { runProcess } from "./managed/runtime-process";
8 8
9export interface ManagedRuntimeConfig {9export interface ManagedRuntimeConfig {
10 instanceName: string;10 instanceName: string;
executor/packages/core/src/managed/runtime-archives.tsrenamed from executor/packages/core/src/managed-runtime-archives.ts+1−1
@@ -1,6 +1,6 @@
1import fs from "node:fs/promises";1import fs from "node:fs/promises";
2 2
3import { runProcess } from "./managed-runtime-process";3import { runProcess } from "./runtime-process";
4 4
5async function downloadWithFetch(url: string, destinationPath: string): Promise<void> {5async function downloadWithFetch(url: string, destinationPath: string): Promise<void> {
6 const response = await fetch(url);6 const response = await fetch(url);
executor/packages/core/src/managed/runtime-bootstrap.tsrenamed from executor/packages/core/src/managed-runtime-bootstrap.ts+4−4
@@ -2,10 +2,10 @@ import fs from "node:fs/promises"; · 1 unmodified line
2import os from "node:os";2import os from "node:os";
3import path from "node:path";3import path from "node:path";
4 4
5import type { ManagedRuntimeInfo } from "./managed-runtime";5import type { ManagedRuntimeInfo } from "../managed-runtime";
6import { managedRuntimeVersions, pathExists } from "./managed-runtime-info";6import { managedRuntimeVersions, pathExists } from "./runtime-info";
7import { ensureConvexCliRuntime } from "./managed-runtime-installation";7import { ensureConvexCliRuntime } from "./runtime-installation";
8import { runProcess } from "./managed-runtime-process";8import { runProcess } from "./runtime-process";
9 9
10const BOOTSTRAP_REQUIRED_DEPENDENCIES = [10const BOOTSTRAP_REQUIRED_DEPENDENCIES = [
11 "convex",11 "convex",
executor/packages/core/src/managed/runtime-info.tsrenamed from executor/packages/core/src/managed-runtime-info.ts+1−1
@@ -2,7 +2,7 @@ import fs from "node:fs/promises"; · 1 unmodified line
2import os from "node:os";2import os from "node:os";
3import path from "node:path";3import path from "node:path";
4 4
5import type { ManagedRuntimeConfig, ManagedRuntimeInfo } from "./managed-runtime";5import type { ManagedRuntimeConfig, ManagedRuntimeInfo } from "../managed-runtime";
6 6
7const CONVEX_BACKEND_REPO = "get-convex/convex-backend";7const CONVEX_BACKEND_REPO = "get-convex/convex-backend";
8const EXECUTOR_RELEASE_REPO = Bun.env.EXECUTOR_REPO ?? "RhysSullivan/executor";8const EXECUTOR_RELEASE_REPO = Bun.env.EXECUTOR_REPO ?? "RhysSullivan/executor";
executor/packages/core/src/managed/runtime-installation.tsrenamed from executor/packages/core/src/managed-runtime-installation.ts+4−4
@@ -2,10 +2,10 @@ import fs from "node:fs/promises"; · 1 unmodified line
2import os from "node:os";2import os from "node:os";
3import path from "node:path";3import path from "node:path";
4 4
5import type { ManagedRuntimeInfo } from "./managed-runtime";5import type { ManagedRuntimeInfo } from "../managed-runtime";
6import { downloadArchive, extractTarArchive, extractZipArchive } from "./managed-runtime-archives";6import { downloadArchive, extractTarArchive, extractZipArchive } from "./runtime-archives";
7import { managedRuntimeVersions, nodeArchiveName, pathExists } from "./managed-runtime-info";7import { managedRuntimeVersions, nodeArchiveName, pathExists } from "./runtime-info";
8import { runProcess } from "./managed-runtime-process";8import { runProcess } from "./runtime-process";
9 9
10export async function ensureBackendBinary(info: ManagedRuntimeInfo): Promise<void> {10export async function ensureBackendBinary(info: ManagedRuntimeInfo): Promise<void> {
11 if (await pathExists(info.backendBinary)) {11 if (await pathExists(info.backendBinary)) {
executor/packages/core/src/managed/runtime-process.tsrenamed from executor/packages/core/src/managed-runtime-process.ts+0−0

File renamed without changes.

executor/packages/core/src/mcp-server.test.ts+1−1
@@ -3,7 +3,7 @@ import { Client } from "@modelcontextprotocol/sdk/client/index.js"; · 2 unmodified lines
3import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";3import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
4import { handleMcpRequest } from "./mcp-server";4import { handleMcpRequest } from "./mcp-server";
5import type { LiveTaskEvent } from "./events";5import type { LiveTaskEvent } from "./events";
6import type { Id } from "../../convex/_generated/dataModel";6import type { Id } from "../../convex/_generated/dataModel.d.ts";
7import type { AnonymousContext, CreateTaskInput, TaskRecord, ToolDescriptor } from "./types";7import type { AnonymousContext, CreateTaskInput, TaskRecord, ToolDescriptor } from "./types";
8 8
9class FakeMcpService {9class FakeMcpService {
executor/packages/core/src/mcp-server.ts+5−5
@@ -2,11 +2,11 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; · 1 unmodified line
2import { WebStandardStreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js";2import { WebStandardStreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js";
3import type { AnySchema } from "@modelcontextprotocol/sdk/server/zod-compat.js";3import type { AnySchema } from "@modelcontextprotocol/sdk/server/zod-compat.js";
4import { z } from "zod";4import { z } from "zod";
5import type { McpExecutorService, ApprovalPrompt } from "./mcp-server-contracts";5import type { McpExecutorService, ApprovalPrompt } from "./mcp/server-contracts";
6import type { Id } from "../../convex/_generated/dataModel";6import type { Id } from "../../convex/_generated/dataModel.d.ts";
7import { waitForTerminalTask, createMcpApprovalPrompt } from "./mcp-server-approval";7import { waitForTerminalTask, createMcpApprovalPrompt } from "./mcp/server-approval";
8import { buildRunCodeDescription, summarizeTask } from "./mcp-server-formatting";8import { buildRunCodeDescription, summarizeTask } from "./mcp/server-formatting";
9import { getTaskTerminalState, textContent } from "./mcp-server-utils";9import { getTaskTerminalState, textContent } from "./mcp/server-utils";
10 10
11// ---------------------------------------------------------------------------11// ---------------------------------------------------------------------------
12// Workspace context (optional, from query params)12// Workspace context (optional, from query params)
executor/packages/core/src/mcp/server-approval.tsrenamed from executor/packages/core/src/mcp-server-approval.ts+4−4
@@ -1,13 +1,13 @@
1import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";1import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2import type { PendingApprovalRecord, TaskRecord } from "./types";2import type { PendingApprovalRecord, TaskRecord } from "../types";
3import type { Id } from "../../convex/_generated/dataModel";3import type { Id } from "../../../convex/_generated/dataModel";
4import type {4import type {
5 ApprovalPrompt,5 ApprovalPrompt,
6 ApprovalPromptContext,6 ApprovalPromptContext,
7 ApprovalPromptDecision,7 ApprovalPromptDecision,
8 McpExecutorService,8 McpExecutorService,
9} from "./mcp-server-contracts";9} from "./server-contracts";
10import { getTaskTerminalState } from "./mcp-server-utils";10import { getTaskTerminalState } from "./server-utils";
11 11
12function formatApprovalInput(input: unknown, maxLength = 2000): string {12function formatApprovalInput(input: unknown, maxLength = 2000): string {
13 let serialized: string;13 let serialized: string;
executor/packages/core/src/mcp/server-contracts.tsrenamed from executor/packages/core/src/mcp-server-contracts.ts+3−3
@@ -1,4 +1,4 @@
1import type { LiveTaskEvent } from "./events";1import type { LiveTaskEvent } from "../events";
2import type {2import type {
3 AnonymousContext,3 AnonymousContext,
4 CreateTaskInput,4 CreateTaskInput,
@@ -6,8 +6,8 @@ import type { · 1 unmodified line
6 TaskExecutionOutcome,6 TaskExecutionOutcome,
7 TaskRecord,7 TaskRecord,
8 ToolDescriptor,8 ToolDescriptor,
9} from "./types";9} from "../types";
10import type { Id } from "../../convex/_generated/dataModel";10import type { Id } from "../../../convex/_generated/dataModel";
11 11
12export interface McpExecutorService {12export interface McpExecutorService {
13 createTask(input: CreateTaskInput): Promise<{ task: TaskRecord }>;13 createTask(input: CreateTaskInput): Promise<{ task: TaskRecord }>;
executor/packages/core/src/mcp/server-formatting.tsrenamed from executor/packages/core/src/mcp-server-formatting.ts+2−2
@@ -1,6 +1,6 @@
1import { Result } from "better-result";1import { Result } from "better-result";
2import { generateToolInventory } from "./declaration-generation";2import { generateToolInventory } from "../declaration-generation";
3import type { TaskRecord, ToolDescriptor } from "./types";3import type { TaskRecord, ToolDescriptor } from "../types";
4 4
5function asCodeBlock(language: string, value: string): string {5function asCodeBlock(language: string, value: string): string {
6 return `\n\n\`\`\`${language}\n${value}\n\`\`\``;6 return `\n\n\`\`\`${language}\n${value}\n\`\`\``;
executor/packages/core/src/mcp/server-utils.tsrenamed from executor/packages/core/src/mcp-server-utils.ts+0−0

File renamed without changes.

executor/packages/core/src/openapi-auth.ts+1−1
@@ -1,4 +1,4 @@
1import type { OpenApiAuth } from "./tool-source-types";1import type { OpenApiAuth } from "./tool/source-types";
2import { asRecord } from "./utils";2import { asRecord } from "./utils";
3 3
4export function inferOpenApiAuth(spec: Record<string, unknown>): OpenApiAuth | undefined {4export function inferOpenApiAuth(spec: Record<string, unknown>): OpenApiAuth | undefined {
executor/packages/core/src/openapi-compaction.ts+1−1
@@ -10,7 +10,7 @@ import { · 9 unmodified lines
10 resolveSchemaRef,10 resolveSchemaRef,
11 responseTypeHintFromSchema,11 responseTypeHintFromSchema,
12 type OpenApiParameterHint,12 type OpenApiParameterHint,
13} from "./openapi-schema-hints";13} from "./openapi/schema-hints";
14import { asRecord } from "./utils";14import { asRecord } from "./utils";
15 15
16export interface CompactOpenApiPathsOptions {16export interface CompactOpenApiPathsOptions {
executor/packages/core/src/openapi-prepare.ts+2−2
@@ -2,8 +2,8 @@ import SwaggerParser from "@apidevtools/swagger-parser"; · 1 unmodified line
2import openapiTS, { astToString } from "openapi-typescript";2import openapiTS, { astToString } from "openapi-typescript";
3import { inferOpenApiAuth } from "./openapi-auth";3import { inferOpenApiAuth } from "./openapi-auth";
4import { compactOpenApiPaths } from "./openapi-compaction";4import { compactOpenApiPaths } from "./openapi-compaction";
5import { extractOperationIdsFromDts } from "./openapi-schema-hints";5import { extractOperationIdsFromDts } from "./openapi/schema-hints";
6import type { PreparedOpenApiSpec } from "./tool-source-types";6import type { PreparedOpenApiSpec } from "./tool/source-types";
7import { asRecord } from "./utils";7import { asRecord } from "./utils";
8 8
9interface SwaggerParserAdapter {9interface SwaggerParserAdapter {
executor/packages/core/src/openapi/helper-types.tsrenamed from executor/packages/core/src/openapi-helper-types.ts+0−0

File renamed without changes.

executor/packages/core/src/openapi/real-specs.test.tsrenamed from executor/packages/core/src/openapi-real-specs.test.ts+1−1
@@ -7,7 +7,7 @@ · 6 unmodified lines
7 * Specs are fetched live so these tests require network access and are slower (~5-60s each).7 * Specs are fetched live so these tests require network access and are slower (~5-60s each).
8 */8 */
9import { test, expect, describe } from "bun:test";9import { test, expect, describe } from "bun:test";
10import { prepareOpenApiSpec, buildOpenApiToolsFromPrepared } from "./tool-sources";10import { prepareOpenApiSpec, buildOpenApiToolsFromPrepared } from "../tool-sources";
11 11
12interface SpecFixture {12interface SpecFixture {
13 name: string;13 name: string;
executor/packages/core/src/openapi/schema-hints.tsrenamed from executor/packages/core/src/openapi-schema-hints.ts+1−1
@@ -1,4 +1,4 @@
1import { asRecord } from "./utils";1import { asRecord } from "../utils";
2 2
3type JsonSchema = Record<string, unknown>;3type JsonSchema = Record<string, unknown>;
4const COMPONENT_REF_INLINE_DEPTH = 2;4const COMPONENT_REF_INLINE_DEPTH = 2;
executor/packages/core/src/openapi/tool-builder.tsrenamed from executor/packages/core/src/openapi-tool-builder.ts+9−9
@@ -5,15 +5,15 @@ import { · 4 unmodified lines
5 getPreferredResponseSchema,5 getPreferredResponseSchema,
6 jsonSchemaTypeHintFallback,6 jsonSchemaTypeHintFallback,
7 responseTypeHintFromSchema,7 responseTypeHintFromSchema,
8} from "./openapi-schema-hints";8} from "./schema-hints";
9import { buildOpenApiToolPath } from "./openapi-tool-path";9import { buildOpenApiToolPath } from "./tool-path";
10import { buildCredentialSpec, buildStaticAuthHeaders, getCredentialSourceKey } from "./tool-source-auth";10import { buildCredentialSpec, buildStaticAuthHeaders, getCredentialSourceKey } from "../tool/source-auth";
11import { executeOpenApiRequest } from "./tool-source-execution";11import { executeOpenApiRequest } from "../tool/source-execution";
12import { compactArgDisplayHint, compactReturnTypeHint } from "./type-hints";12import { compactArgDisplayHint, compactReturnTypeHint } from "../type-hints";
13import type { OpenApiToolSourceConfig, PreparedOpenApiSpec } from "./tool-source-types";13import type { OpenApiToolSourceConfig, PreparedOpenApiSpec } from "../tool/source-types";
14import type { ToolDefinition } from "./types";14import type { ToolDefinition } from "../types";
15import { asRecord } from "./utils";15import { asRecord } from "../utils";
16import type { SerializedTool } from "./tool-source-serialization";16import type { SerializedTool } from "../tool/source-serialization";
17 17
18type OpenApiOperationParameter = {18type OpenApiOperationParameter = {
19 name: string;19 name: string;
executor/packages/core/src/openapi/tool-path.tsrenamed from executor/packages/core/src/openapi-tool-path.ts+1−1
@@ -1,4 +1,4 @@
1import { sanitizeSegment, sanitizeSnakeSegment } from "./tool-path-utils";1import { sanitizeSegment, sanitizeSnakeSegment } from "../tool/path-utils";
2 2
3function normalizeOpenApiTag(tagRaw: string): string {3function normalizeOpenApiTag(tagRaw: string): string {
4 let tag = sanitizeSnakeSegment(tagRaw);4 let tag = sanitizeSnakeSegment(tagRaw);
executor/packages/core/src/postman-runtime.ts+1−1
@@ -1,6 +1,6 @@
1import { asStringRecord, detectJsonContentType, findUnresolvedPostmanTemplateKeys, interpolatePostmanTemplate, stringifyTemplateValue } from "./postman-utils";1import { asStringRecord, detectJsonContentType, findUnresolvedPostmanTemplateKeys, interpolatePostmanTemplate, stringifyTemplateValue } from "./postman-utils";
2import { asRecord } from "./utils";2import { asRecord } from "./utils";
3import type { PostmanRequestBody } from "./postman-collection-utils";3import type { PostmanRequestBody } from "./postman/collection-utils";
4 4
5export interface PostmanSerializedRunSpec {5export interface PostmanSerializedRunSpec {
6 kind: "postman";6 kind: "postman";
executor/packages/core/src/postman/collection-utils.tsrenamed from executor/packages/core/src/postman-collection-utils.ts+2−2
@@ -1,5 +1,5 @@
1import { sanitizeSegment, sanitizeSnakeSegment } from "./tool-path-utils";1import { sanitizeSegment, sanitizeSnakeSegment } from "../tool/path-utils";
2import { stringifyTemplateValue } from "./postman-utils";2import { stringifyTemplateValue } from "../postman-utils";
3 3
4export type PostmanRequestBody =4export type PostmanRequestBody =
5 | { kind: "urlencoded"; entries: Array<{ key: string; value: string }> }5 | { kind: "urlencoded"; entries: Array<{ key: string; value: string }> }
executor/packages/core/src/runtimes/cloudflare/worker/loader-runtime.test.tsrenamed from executor/packages/core/src/runtimes/cloudflare-worker-loader-runtime.test.ts+6−6
@@ -1,5 +1,5 @@
1import { afterAll, beforeAll, describe, expect, test } from "bun:test";1import { afterAll, beforeAll, describe, expect, test } from "bun:test";
2import { dispatchCodeWithCloudflareWorkerLoader } from "./cloudflare-worker-loader-runtime";2import { dispatchCodeWithCloudflareWorkerLoader } from "./loader-runtime";
3 3
4let fakeHostServer: ReturnType<typeof Bun.serve>;4let fakeHostServer: ReturnType<typeof Bun.serve>;
5let fakeCallbackServer: ReturnType<typeof Bun.serve>;5let fakeCallbackServer: ReturnType<typeof Bun.serve>;
@@ -141,7 +141,7 @@ describe("runtime catalog", () => { · 135 unmodified lines
141 isKnownRuntimeId,141 isKnownRuntimeId,
142 LOCAL_BUN_RUNTIME_ID,142 LOCAL_BUN_RUNTIME_ID,
143 CLOUDFLARE_WORKER_LOADER_RUNTIME_ID,143 CLOUDFLARE_WORKER_LOADER_RUNTIME_ID,
144 } = await import("./runtime-catalog");144 } = await import("../../runtime-catalog");
145 145
146 expect(isKnownRuntimeId(LOCAL_BUN_RUNTIME_ID)).toBe(true);146 expect(isKnownRuntimeId(LOCAL_BUN_RUNTIME_ID)).toBe(true);
147 expect(isKnownRuntimeId(CLOUDFLARE_WORKER_LOADER_RUNTIME_ID)).toBe(true);147 expect(isKnownRuntimeId(CLOUDFLARE_WORKER_LOADER_RUNTIME_ID)).toBe(true);
@@ -149,7 +149,7 @@ describe("runtime catalog", () => { · 1 unmodified line
149 });149 });
150 150
151 test("isCloudflareWorkerLoaderConfigured checks env vars", async () => {151 test("isCloudflareWorkerLoaderConfigured checks env vars", async () => {
152 const { isCloudflareWorkerLoaderConfigured } = await import("./runtime-catalog");152 const { isCloudflareWorkerLoaderConfigured } = await import("../../runtime-catalog");
153 expect(isCloudflareWorkerLoaderConfigured()).toBe(true);153 expect(isCloudflareWorkerLoaderConfigured()).toBe(true);
154 });154 });
155 155
@@ -161,7 +161,7 @@ describe("runtime catalog", () => { · 5 unmodified lines
161 defaultRuntimeId,161 defaultRuntimeId,
162 isRuntimeEnabled,162 isRuntimeEnabled,
163 listRuntimeTargets,163 listRuntimeTargets,
164 } = await import("./runtime-catalog");164 } = await import("../../runtime-catalog");
165 165
166 const previous = process.env[CLOUDFLARE_DYNAMIC_WORKER_ONLY_ENV_KEY];166 const previous = process.env[CLOUDFLARE_DYNAMIC_WORKER_ONLY_ENV_KEY];
167 try {167 try {
@@ -183,7 +183,7 @@ describe("runtime catalog", () => { · 15 unmodified lines
183 });183 });
184 184
185 test("getCloudflareWorkerLoaderConfig reads env vars", async () => {185 test("getCloudflareWorkerLoaderConfig reads env vars", async () => {
186 const { getCloudflareWorkerLoaderConfig } = await import("./runtime-catalog");186 const { getCloudflareWorkerLoaderConfig } = await import("../../runtime-catalog");
187 const config = getCloudflareWorkerLoaderConfig();187 const config = getCloudflareWorkerLoaderConfig();
188 188
189 expect(config.runUrl).toContain("/v1/runs");189 expect(config.runUrl).toContain("/v1/runs");
@@ -194,7 +194,7 @@ describe("runtime catalog", () => { · 4 unmodified lines
194 });194 });
195 195
196 test("prefers CONVEX_URL over CONVEX_SITE_URL for callback RPC", async () => {196 test("prefers CONVEX_URL over CONVEX_SITE_URL for callback RPC", async () => {
197 const { getCloudflareWorkerLoaderConfig } = await import("./runtime-catalog");197 const { getCloudflareWorkerLoaderConfig } = await import("../../runtime-catalog");
198 const previousConvexUrl = process.env.CONVEX_URL;198 const previousConvexUrl = process.env.CONVEX_URL;
199 const previousSiteUrl = process.env.CONVEX_SITE_URL;199 const previousSiteUrl = process.env.CONVEX_SITE_URL;
200 try {200 try {
executor/packages/core/src/runtimes/cloudflare/worker/loader-runtime.tsrenamed from executor/packages/core/src/runtimes/cloudflare-worker-loader-runtime.ts+3−3
@@ -1,9 +1,9 @@
1"use node";1"use node";
2 2
3import { Result } from "better-result";3import { Result } from "better-result";
4import type { SandboxExecutionRequest } from "../types";4import type { SandboxExecutionRequest } from "../../../types";
5import { getCloudflareWorkerLoaderConfig } from "./runtime-catalog";5import { getCloudflareWorkerLoaderConfig } from "../../runtime-catalog";
6import { transpileForRuntime } from "./transpile";6import { transpileForRuntime } from "../../transpile";
7 7
8/**8/**
9 * Run agent-generated code via a Cloudflare Worker that uses the Dynamic9 * Run agent-generated code via a Cloudflare Worker that uses the Dynamic
executor/packages/core/src/runtimes/runtime-core.test.ts+1−1
@@ -1,7 +1,7 @@
1import { expect, test } from "bun:test";1import { expect, test } from "bun:test";
2import { runCodeWithAdapter } from "./runtime-core";2import { runCodeWithAdapter } from "./runtime-core";
3import { loadExternalTools } from "../tool-sources";3import { loadExternalTools } from "../tool-sources";
4import type { Id } from "../../../convex/_generated/dataModel";4import type { Id } from "../../../convex/_generated/dataModel.d.ts";
5import type {5import type {
6 ExecutionAdapter,6 ExecutionAdapter,
7 SandboxExecutionRequest,7 SandboxExecutionRequest,
executor/packages/core/src/tool-discovery.test.ts+1−1
@@ -1,5 +1,5 @@
1import { expect, test } from "bun:test";1import { expect, test } from "bun:test";
2import type { Id } from "../../convex/_generated/dataModel";2import type { Id } from "../../convex/_generated/dataModel.d.ts";
3import { createCatalogTools, createDiscoverTool } from "./tool-discovery";3import { createCatalogTools, createDiscoverTool } from "./tool-discovery";
4import type { ToolDefinition } from "./types";4import type { ToolDefinition } from "./types";
5 5
executor/packages/core/src/tool-source-loaders/graphql-loader.ts+5−5
@@ -8,14 +8,14 @@ import { · 7 unmodified lines
8 selectGraphqlFieldEnvelope,8 selectGraphqlFieldEnvelope,
9 type GqlSchema,9 type GqlSchema,
10 type GqlType,10 type GqlType,
11} from "../graphql-field-tools";11} from "../graphql/field-tools";
12import {12import {
13 executeGraphqlRequest,13 executeGraphqlRequest,
14 type GraphqlExecutionEnvelope,14 type GraphqlExecutionEnvelope,
15} from "../tool-source-execution";15} from "../tool/source-execution";
16import { buildCredentialSpec, buildStaticAuthHeaders, getCredentialSourceKey } from "../tool-source-auth";16import { buildCredentialSpec, buildStaticAuthHeaders, getCredentialSourceKey } from "../tool/source-auth";
17import { sanitizeSegment } from "../tool-path-utils";17import { sanitizeSegment } from "../tool/path-utils";
18import type { GraphqlToolSourceConfig } from "../tool-source-types";18import type { GraphqlToolSourceConfig } from "../tool/source-types";
19import { compactArgTypeHint } from "../type-hints";19import { compactArgTypeHint } from "../type-hints";
20import type { ToolDefinition } from "../types";20import type { ToolDefinition } from "../types";
21import { asRecord } from "../utils";21import { asRecord } from "../utils";
executor/packages/core/src/tool-source-loaders/mcp-loader.ts+6−6
@@ -1,15 +1,15 @@
1"use node";1"use node";
2 2
3import { connectMcp, extractMcpResult } from "../mcp-runtime";3import { connectMcp, extractMcpResult } from "../mcp-runtime";
4import { jsonSchemaTypeHintFallback } from "../openapi-schema-hints";4import { jsonSchemaTypeHintFallback } from "../openapi/schema-hints";
5import { buildCredentialSpec, buildStaticAuthHeaders, getCredentialSourceKey } from "../tool-source-auth";5import { buildCredentialSpec, buildStaticAuthHeaders, getCredentialSourceKey } from "../tool/source-auth";
6import { callMcpToolWithReconnect } from "../tool-source-execution";6import { callMcpToolWithReconnect } from "../tool/source-execution";
7import { sanitizeSegment } from "../tool-path-utils";7import { sanitizeSegment } from "../tool/path-utils";
8import type { McpToolSourceConfig } from "../tool-source-types";8import type { McpToolSourceConfig } from "../tool/source-types";
9import { compactArgTypeHint, compactReturnTypeHint } from "../type-hints";9import { compactArgTypeHint, compactReturnTypeHint } from "../type-hints";
10import type { ToolDefinition } from "../types";10import type { ToolDefinition } from "../types";
11import { asRecord } from "../utils";11import { asRecord } from "../utils";
12import type { SerializedTool } from "../tool-source-serialization";12import type { SerializedTool } from "../tool/source-serialization";
13 13
14export async function loadMcpTools(config: McpToolSourceConfig): Promise<ToolDefinition[]> {14export async function loadMcpTools(config: McpToolSourceConfig): Promise<ToolDefinition[]> {
15 const queryParams = config.queryParams15 const queryParams = config.queryParams
executor/packages/core/src/tool-source-loaders/openapi-loader.ts+5−5
@@ -1,7 +1,7 @@
1"use node";1"use node";
2 2
3import { buildOpenApiToolsFromPrepared } from "../openapi-tool-builder";3import { buildOpenApiToolsFromPrepared } from "../openapi/tool-builder";
4import { buildCredentialSpec, buildStaticAuthHeaders, getCredentialSourceKey } from "../tool-source-auth";4import { buildCredentialSpec, buildStaticAuthHeaders, getCredentialSourceKey } from "../tool/source-auth";
5import {5import {
6 buildPostmanToolPath,6 buildPostmanToolPath,
7 extractPostmanBody,7 extractPostmanBody,
@@ -9,14 +9,14 @@ import { · 1 unmodified line
9 extractPostmanQueryEntries,9 extractPostmanQueryEntries,
10 extractPostmanVariableMap,10 extractPostmanVariableMap,
11 resolvePostmanFolderPath,11 resolvePostmanFolderPath,
12} from "../postman-collection-utils";12} from "../postman/collection-utils";
13import { executePostmanRequest, type PostmanSerializedRunSpec } from "../postman-runtime";13import { executePostmanRequest, type PostmanSerializedRunSpec } from "../postman-runtime";
14import { prepareOpenApiSpec } from "../openapi-prepare";14import { prepareOpenApiSpec } from "../openapi-prepare";
15import type { OpenApiToolSourceConfig } from "../tool-source-types";15import type { OpenApiToolSourceConfig } from "../tool/source-types";
16import { compactArgTypeHint, compactReturnTypeHint } from "../type-hints";16import { compactArgTypeHint, compactReturnTypeHint } from "../type-hints";
17import type { ToolDefinition } from "../types";17import type { ToolDefinition } from "../types";
18import { asRecord } from "../utils";18import { asRecord } from "../utils";
19import type { SerializedTool } from "../tool-source-serialization";19import type { SerializedTool } from "../tool/source-serialization";
20 20
21const POSTMAN_SPEC_PREFIX = "postman:";21const POSTMAN_SPEC_PREFIX = "postman:";
22const DEFAULT_POSTMAN_PROXY_URL = "https://www.postman.com/_api/ws/proxy";22const DEFAULT_POSTMAN_PROXY_URL = "https://www.postman.com/_api/ws/proxy";
executor/packages/core/src/tool-sources.test.ts+1−1
@@ -1,5 +1,5 @@
1import { expect, test } from "bun:test";1import { expect, test } from "bun:test";
2import type { Id } from "../../convex/_generated/dataModel";2import type { Id } from "../../convex/_generated/dataModel.d.ts";
3import {3import {
4 compileExternalToolSource,4 compileExternalToolSource,
5 loadExternalTools,5 loadExternalTools,
executor/packages/core/src/tool-sources.ts+7−7
@@ -3,13 +3,13 @@ · 2 unmodified lines
3import { loadGraphqlTools } from "./tool-source-loaders/graphql-loader";3import { loadGraphqlTools } from "./tool-source-loaders/graphql-loader";
4import { loadMcpTools } from "./tool-source-loaders/mcp-loader";4import { loadMcpTools } from "./tool-source-loaders/mcp-loader";
5import { loadOpenApiTools } from "./tool-source-loaders/openapi-loader";5import { loadOpenApiTools } from "./tool-source-loaders/openapi-loader";
6import { buildOpenApiToolsFromPrepared } from "./openapi-tool-builder";6import { buildOpenApiToolsFromPrepared } from "./openapi/tool-builder";
7import { rehydrateTools, serializeTools, type SerializedTool } from "./tool-source-serialization";7import { rehydrateTools, serializeTools, type SerializedTool } from "./tool/source-serialization";
8import type {8import type {
9 ExternalToolSourceConfig,9 ExternalToolSourceConfig,
10 OpenApiToolSourceConfig,10 OpenApiToolSourceConfig,
11 PreparedOpenApiSpec,11 PreparedOpenApiSpec,
12} from "./tool-source-types";12} from "./tool/source-types";
13import type { ToolDefinition } from "./types";13import type { ToolDefinition } from "./types";
14 14
15export type {15export type {
@@ -19,11 +19,11 @@ export type { · 3 unmodified lines
19 OpenApiAuth,19 OpenApiAuth,
20 OpenApiToolSourceConfig,20 OpenApiToolSourceConfig,
21 PreparedOpenApiSpec,21 PreparedOpenApiSpec,
22} from "./tool-source-types";22} from "./tool/source-types";
23export { prepareOpenApiSpec } from "./openapi-prepare";23export { prepareOpenApiSpec } from "./openapi-prepare";
24export { parseGraphqlOperationPaths } from "./graphql-operation-paths";24export { parseGraphqlOperationPaths } from "./graphql/operation-paths";
25export { rehydrateTools, serializeTools, type SerializedTool } from "./tool-source-serialization";25export { rehydrateTools, serializeTools, type SerializedTool } from "./tool/source-serialization";
26export { buildOpenApiToolsFromPrepared } from "./openapi-tool-builder";26export { buildOpenApiToolsFromPrepared } from "./openapi/tool-builder";
27 27
28export interface CompiledToolSourceArtifact {28export interface CompiledToolSourceArtifact {
29 version: "v1";29 version: "v1";
executor/packages/core/src/tool/path-utils.tsrenamed from executor/packages/core/src/tool-path-utils.ts+0−0

File renamed without changes.

executor/packages/core/src/tool/source-auth.tsrenamed from executor/packages/core/src/tool-source-auth.ts+2−2
@@ -1,5 +1,5 @@
1import type { OpenApiAuth } from "./tool-source-types";1import type { OpenApiAuth } from "./source-types";
2import type { ToolCredentialSpec } from "./types";2import type { ToolCredentialSpec } from "../types";
3 3
4export function buildStaticAuthHeaders(auth?: OpenApiAuth): Record<string, string> {4export function buildStaticAuthHeaders(auth?: OpenApiAuth): Record<string, string> {
5 if (!auth || auth.type === "none") return {};5 if (!auth || auth.type === "none") return {};
executor/packages/core/src/tool/source-execution.tsrenamed from executor/packages/core/src/tool-source-execution.ts+1−1
@@ -1,4 +1,4 @@
1import { asRecord } from "./utils";1import { asRecord } from "../utils";
2 2
3export interface OpenApiRequestRunSpec {3export interface OpenApiRequestRunSpec {
4 baseUrl: string;4 baseUrl: string;
executor/packages/core/src/tool/source-serialization.tsrenamed from executor/packages/core/src/tool-source-serialization.ts+6−6
@@ -1,9 +1,9 @@
1import { connectMcp, extractMcpResult } from "./mcp-runtime";1import { connectMcp, extractMcpResult } from "../mcp-runtime";
2import { executePostmanRequest, type PostmanSerializedRunSpec } from "./postman-runtime";2import { executePostmanRequest, type PostmanSerializedRunSpec } from "../postman-runtime";
3import { normalizeGraphqlFieldVariables, selectGraphqlFieldEnvelope } from "./graphql-field-tools";3import { normalizeGraphqlFieldVariables, selectGraphqlFieldEnvelope } from "../graphql/field-tools";
4import { callMcpToolWithReconnect, executeGraphqlRequest, executeOpenApiRequest } from "./tool-source-execution";4import { callMcpToolWithReconnect, executeGraphqlRequest, executeOpenApiRequest } from "./source-execution";
5import type { ToolApprovalMode, ToolCredentialSpec, ToolDefinition, ToolTypeMetadata } from "./types";5import type { ToolApprovalMode, ToolCredentialSpec, ToolDefinition, ToolTypeMetadata } from "../types";
6import { asRecord } from "./utils";6import { asRecord } from "../utils";
7 7
8export interface SerializedTool {8export interface SerializedTool {
9 path: string;9 path: string;
executor/packages/core/src/tool/source-types.tsrenamed from executor/packages/core/src/tool-source-types.ts+1−1
@@ -1,4 +1,4 @@
1import type { ToolApprovalMode } from "./types";1import type { ToolApprovalMode } from "../types";
2 2
3export interface McpToolSourceConfig {3export interface McpToolSourceConfig {
4 type: "mcp";4 type: "mcp";
executor/packages/core/src/types.ts+1−1
@@ -1,6 +1,6 @@
1// ── Shared types (inlined from @executor/contracts) ──────────────────────────1// ── Shared types (inlined from @executor/contracts) ──────────────────────────
2 2
3import type { Id } from "../../convex/_generated/dataModel";3import type { Id } from "../../convex/_generated/dataModel.d.ts";
4 4
5export type TaskStatus = "queued" | "running" | "completed" | "failed" | "timed_out" | "denied";5export type TaskStatus = "queued" | "running" | "completed" | "failed" | "timed_out" | "denied";
6export type ApprovalStatus = "pending" | "approved" | "denied";6export type ApprovalStatus = "pending" | "approved" | "denied";
executor/packages/core/src/workspace/tool-cache.test.tsrenamed from executor/packages/core/src/workspace-tool-cache.test.ts+7−7
@@ -5,7 +5,7 @@ · 4 unmodified lines
5 * round-trip with functional `run` methods.5 * round-trip with functional `run` methods.
6 */6 */
7import { test, expect, describe } from "bun:test";7import { test, expect, describe } from "bun:test";
8import type { Id } from "../../convex/_generated/dataModel";8import type { Id } from "../../../convex/_generated/dataModel";
9import {9import {
10 prepareOpenApiSpec,10 prepareOpenApiSpec,
11 buildOpenApiToolsFromPrepared,11 buildOpenApiToolsFromPrepared,
@@ -15,8 +15,8 @@ import { · 3 unmodified lines
15 type CompiledToolSourceArtifact,15 type CompiledToolSourceArtifact,
16 type SerializedTool,16 type SerializedTool,
17 type WorkspaceToolSnapshot,17 type WorkspaceToolSnapshot,
18} from "./tool-sources";18} from "../tool-sources";
19import type { ToolDefinition } from "./types";19import type { ToolDefinition } from "../types";
20 20
21const TEST_WORKSPACE_ID = "w" as Id<"workspaces">;21const TEST_WORKSPACE_ID = "w" as Id<"workspaces">;
22 22
@@ -479,12 +479,12 @@ describe("serializeTools + rehydrateTools round-trip", () => { · 456 unmodified lines
479describe("workspace tool cache table", () => {479describe("workspace tool cache table", () => {
480 async function setupCacheTest() {480 async function setupCacheTest() {
481 const { convexTest } = await import("convex-test");481 const { convexTest } = await import("convex-test");
482 const { internal } = await import("../../convex/_generated/api");482 const { internal } = await import("../../../convex/_generated/api");
483 const schema = (await import("../../convex/schema")).default;483 const schema = (await import("../../../convex/schema")).default;
484 484
485 const t = convexTest(schema, {485 const t = convexTest(schema, {
486 "./workspaceToolCache.ts": () => import("../../convex/workspaceToolCache"),486 "./workspaceToolCache.ts": () => import("../../../convex/workspaceToolCache"),
487 "./_generated/api.js": () => import("../../convex/_generated/api.js"),487 "./_generated/api.js": () => import("../../../convex/_generated/api.js"),
488 });488 });
489 489
490 const wsId = await t.run(async (ctx) => {490 const wsId = await t.run(async (ctx) => {
executor/packages/runner-sandbox-host/src/isolate/text-modules.d.tsrenamed from executor/packages/runner-sandbox-host/src/isolate-text-modules.d.ts+0−0

File renamed without changes.

executor/scripts/dev/vscode/elicitation-server.tsrenamed from executor/scripts/dev/vscode-elicitation-server.ts+0−0

File renamed without changes.

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

File renamed without changes.

executor/scripts/prod/deploy-prod.ts+2−2
@@ -174,13 +174,13 @@ function buildSteps(selected: StepId[]): DeployStep[] { · 173 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/prod/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/prod/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: {
executor/scripts/prod/setup/prod-cloudflare.tsrenamed from executor/scripts/prod/setup-prod-cloudflare.ts+2−2
@@ -1,7 +1,7 @@
1import crypto from "node:crypto";1import crypto from "node:crypto";
2import fs from "node:fs/promises";2import fs from "node:fs/promises";
3import path from "node:path";3import path from "node:path";
4import { parseConvexEnvList } from "./doctor-prod";4import { parseConvexEnvList } from "../doctor-prod";
5 5
6interface Options {6interface Options {
7 runUrl?: string;7 runUrl?: string;
@@ -25,7 +25,7 @@ function printHelp(): void { · 17 unmodified lines
25 console.log(`Setup Cloudflare runtime for production25 console.log(`Setup Cloudflare runtime for production
26 26
27Usage:27Usage:
28 bun run scripts/prod/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/prod/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/prod/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
package.json+1−1
@@ -30,7 +30,7 @@ · 29 unmodified lines
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 "knip": "bunx knip --config knip.json",
33 "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",
34 "convex:codegen": "bunx --cwd executor convex codegen"34 "convex:codegen": "bunx --cwd executor convex codegen"
35 },35 },
36 "dependencies": {36 "dependencies": {
sources/data/openapi/github-discovery.csvrenamed from sources/data/openapi-github-discovery.csv+0−0

File renamed without changes.

sources/data/openapi/github-discovery.jsonrenamed from sources/data/openapi-github-discovery.json+0−0

File renamed without changes.

sources/data/openapi/github/discovery-all.csvrenamed from sources/data/openapi-github-discovery-all.csv+0−0

File renamed without changes.

sources/data/openapi/github/discovery-all.jsonrenamed from sources/data/openapi-github-discovery-all.json+0−0

File renamed without changes.

sources/data/openapi/github/discovery-huge.csvrenamed from sources/data/openapi-github-discovery-huge.csv+0−0

File renamed without changes.

sources/data/openapi/github/discovery-huge.jsonrenamed from sources/data/openapi-github-discovery-huge.json+0−0

File renamed without changes.

sources/data/openapi/github/discovery/huge-enriched.csvrenamed from sources/data/openapi-github-discovery-huge-enriched.csv+0−0

File renamed without changes.

sources/data/openapi/github/discovery/huge-enriched.jsonrenamed from sources/data/openapi-github-discovery-huge-enriched.json+0−0

File renamed without changes.

sources/data/openapi/github/discovery/huge/enriched-min10.csvrenamed from sources/data/openapi-github-discovery-huge-enriched-min10.csv+0−0

File renamed without changes.

sources/data/openapi/github/discovery/huge/enriched-min10.jsonrenamed from sources/data/openapi-github-discovery-huge-enriched-min10.json+0−0

File renamed without changes.

sources/data/openapi/github/discovery/huge/enriched-min50.csvrenamed from sources/data/openapi-github-discovery-huge-enriched-min50.csv+0−0

File renamed without changes.

sources/data/openapi/github/discovery/huge/enriched-min50.jsonrenamed from sources/data/openapi-github-discovery-huge-enriched-min50.json+0−0

File renamed without changes.