History

fix circlular deps

Rhys Sullivan committed 7 months ago

Commit 2c75d0e1 parent a3cd17b12 files · +64 −58Browse files

Unified · Split

12 files
  1. apps/cloud/package.json +1 −0
  2. apps/cloud/src/routes/index.tsx +12 −1
  3. apps/cloud/src/routes/secrets.tsx +4 −1
  4. apps/cloud/src/routes/sources.add.$pluginKey.tsx +12 −1
  5. apps/local/src/routes/index.tsx +12 −1
  6. apps/local/src/routes/secrets.tsx +4 −1
  7. apps/local/src/routes/sources.add.$pluginKey.tsx +12 −1
  8. bun.lock +1 −5
  9. packages/react/package.json +0 −5
  10. packages/react/src/pages/secrets.tsx +2 −10
  11. packages/react/src/pages/sources-add.tsx +2 −16
  12. packages/react/src/pages/sources.tsx +2 −16
apps/cloud/package.json+1−0
@@ -11,6 +11,7 @@ · 10 unmodified lines
11 "@executor/plugin-google-discovery": "workspace:*",11 "@executor/plugin-google-discovery": "workspace:*",
12 "@executor/plugin-graphql": "workspace:*",12 "@executor/plugin-graphql": "workspace:*",
13 "@executor/plugin-mcp": "workspace:*",13 "@executor/plugin-mcp": "workspace:*",
14 "@executor/plugin-onepassword": "workspace:*",
14 "@executor/plugin-openapi": "workspace:*",15 "@executor/plugin-openapi": "workspace:*",
15 "@executor/react": "workspace:*",16 "@executor/react": "workspace:*",
16 "@executor/sdk": "workspace:*",17 "@executor/sdk": "workspace:*",
apps/cloud/src/routes/index.tsx+12−1
@@ -1,6 +1,17 @@
1import { createFileRoute } from "@tanstack/react-router";1import { createFileRoute } from "@tanstack/react-router";
2import { SourcesPage } from "@executor/react/pages/sources";2import { SourcesPage } from "@executor/react/pages/sources";
3import { openApiSourcePlugin } from "@executor/plugin-openapi/react";
4import { mcpSourcePlugin } from "@executor/plugin-mcp/react";
5import { googleDiscoverySourcePlugin } from "@executor/plugin-google-discovery/react";
6import { graphqlSourcePlugin } from "@executor/plugin-graphql/react";
7
8const sourcePlugins = [
9 openApiSourcePlugin,
10 mcpSourcePlugin,
11 googleDiscoverySourcePlugin,
12 graphqlSourcePlugin,
13];
3 14
4export const Route = createFileRoute("/")({15export const Route = createFileRoute("/")({
5 component: SourcesPage,16 component: () => <SourcesPage sourcePlugins={sourcePlugins} />,
6});17});
apps/cloud/src/routes/secrets.tsx+4−1
@@ -1,6 +1,9 @@
1import { createFileRoute } from "@tanstack/react-router";1import { createFileRoute } from "@tanstack/react-router";
2import { SecretsPage } from "@executor/react/pages/secrets";2import { SecretsPage } from "@executor/react/pages/secrets";
3import { onePasswordSecretProviderPlugin } from "@executor/plugin-onepassword/react";
4
5const secretProviderPlugins = [onePasswordSecretProviderPlugin];
3 6
4export const Route = createFileRoute("/secrets")({7export const Route = createFileRoute("/secrets")({
5 component: SecretsPage,8 component: () => <SecretsPage secretProviderPlugins={secretProviderPlugins} />,
6});9});
apps/cloud/src/routes/sources.add.$pluginKey.tsx+12−1
@@ -1,6 +1,17 @@
1import { Schema } from "effect";1import { Schema } from "effect";
2import { createFileRoute } from "@tanstack/react-router";2import { createFileRoute } from "@tanstack/react-router";
3import { SourcesAddPage } from "@executor/react/pages/sources-add";3import { SourcesAddPage } from "@executor/react/pages/sources-add";
4import { openApiSourcePlugin } from "@executor/plugin-openapi/react";
5import { mcpSourcePlugin } from "@executor/plugin-mcp/react";
6import { googleDiscoverySourcePlugin } from "@executor/plugin-google-discovery/react";
7import { graphqlSourcePlugin } from "@executor/plugin-graphql/react";
8
9const sourcePlugins = [
10 openApiSourcePlugin,
11 mcpSourcePlugin,
12 googleDiscoverySourcePlugin,
13 graphqlSourcePlugin,
14];
4 15
5const SearchParams = Schema.standardSchemaV1(16const SearchParams = Schema.standardSchemaV1(
6 Schema.Struct({17 Schema.Struct({
@@ -14,6 +25,6 @@ export const Route = createFileRoute("/sources/add/$pluginKey")({ · 7 unmodified lines
14 component: () => {25 component: () => {
15 const { pluginKey } = Route.useParams();26 const { pluginKey } = Route.useParams();
16 const { url, preset } = Route.useSearch();27 const { url, preset } = Route.useSearch();
17 return <SourcesAddPage pluginKey={pluginKey} url={url} preset={preset} />;28 return <SourcesAddPage pluginKey={pluginKey} url={url} preset={preset} sourcePlugins={sourcePlugins} />;
18 },29 },
19});30});
apps/local/src/routes/index.tsx+12−1
@@ -1,6 +1,17 @@
1import { createFileRoute } from "@tanstack/react-router";1import { createFileRoute } from "@tanstack/react-router";
2import { SourcesPage } from "@executor/react/pages/sources";2import { SourcesPage } from "@executor/react/pages/sources";
3import { openApiSourcePlugin } from "@executor/plugin-openapi/react";
4import { mcpSourcePlugin } from "@executor/plugin-mcp/react";
5import { googleDiscoverySourcePlugin } from "@executor/plugin-google-discovery/react";
6import { graphqlSourcePlugin } from "@executor/plugin-graphql/react";
7
8const sourcePlugins = [
9 openApiSourcePlugin,
10 mcpSourcePlugin,
11 googleDiscoverySourcePlugin,
12 graphqlSourcePlugin,
13];
3 14
4export const Route = createFileRoute("/")({15export const Route = createFileRoute("/")({
5 component: SourcesPage,16 component: () => <SourcesPage sourcePlugins={sourcePlugins} />,
6});17});
apps/local/src/routes/secrets.tsx+4−1
@@ -1,6 +1,9 @@
1import { createFileRoute } from "@tanstack/react-router";1import { createFileRoute } from "@tanstack/react-router";
2import { SecretsPage } from "@executor/react/pages/secrets";2import { SecretsPage } from "@executor/react/pages/secrets";
3import { onePasswordSecretProviderPlugin } from "@executor/plugin-onepassword/react";
4
5const secretProviderPlugins = [onePasswordSecretProviderPlugin];
3 6
4export const Route = createFileRoute("/secrets")({7export const Route = createFileRoute("/secrets")({
5 component: SecretsPage,8 component: () => <SecretsPage secretProviderPlugins={secretProviderPlugins} />,
6});9});
apps/local/src/routes/sources.add.$pluginKey.tsx+12−1
@@ -1,6 +1,17 @@
1import { Schema } from "effect";1import { Schema } from "effect";
2import { createFileRoute } from "@tanstack/react-router";2import { createFileRoute } from "@tanstack/react-router";
3import { SourcesAddPage } from "@executor/react/pages/sources-add";3import { SourcesAddPage } from "@executor/react/pages/sources-add";
4import { openApiSourcePlugin } from "@executor/plugin-openapi/react";
5import { mcpSourcePlugin } from "@executor/plugin-mcp/react";
6import { googleDiscoverySourcePlugin } from "@executor/plugin-google-discovery/react";
7import { graphqlSourcePlugin } from "@executor/plugin-graphql/react";
8
9const sourcePlugins = [
10 openApiSourcePlugin,
11 mcpSourcePlugin,
12 googleDiscoverySourcePlugin,
13 graphqlSourcePlugin,
14];
4 15
5const SearchParams = Schema.standardSchemaV1(16const SearchParams = Schema.standardSchemaV1(
6 Schema.Struct({17 Schema.Struct({
@@ -14,6 +25,6 @@ export const Route = createFileRoute("/sources/add/$pluginKey")({ · 7 unmodified lines
14 component: () => {25 component: () => {
15 const { pluginKey } = Route.useParams();26 const { pluginKey } = Route.useParams();
16 const { url, preset } = Route.useSearch();27 const { url, preset } = Route.useSearch();
17 return <SourcesAddPage pluginKey={pluginKey} url={url} preset={preset} />;28 return <SourcesAddPage pluginKey={pluginKey} url={url} preset={preset} sourcePlugins={sourcePlugins} />;
18 },29 },
19});30});
bun.lock+1−5
@@ -50,6 +50,7 @@ · 49 unmodified lines
50 "@executor/plugin-google-discovery": "workspace:*",50 "@executor/plugin-google-discovery": "workspace:*",
51 "@executor/plugin-graphql": "workspace:*",51 "@executor/plugin-graphql": "workspace:*",
52 "@executor/plugin-mcp": "workspace:*",52 "@executor/plugin-mcp": "workspace:*",
53 "@executor/plugin-onepassword": "workspace:*",
53 "@executor/plugin-openapi": "workspace:*",54 "@executor/plugin-openapi": "workspace:*",
54 "@executor/react": "workspace:*",55 "@executor/react": "workspace:*",
55 "@executor/sdk": "workspace:*",56 "@executor/sdk": "workspace:*",
@@ -515,11 +516,6 @@ · 459 unmodified lines
515 "@effect-atom/atom-react": "^0.5.0",516 "@effect-atom/atom-react": "^0.5.0",
516 "@effect/platform": "catalog:",517 "@effect/platform": "catalog:",
517 "@executor/api": "workspace:*",518 "@executor/api": "workspace:*",
518 "@executor/plugin-google-discovery": "workspace:*",
519 "@executor/plugin-graphql": "workspace:*",
520 "@executor/plugin-mcp": "workspace:*",
521 "@executor/plugin-onepassword": "workspace:*",
522 "@executor/plugin-openapi": "workspace:*",
523 "@executor/sdk": "workspace:*",519 "@executor/sdk": "workspace:*",
524 "@shikijs/langs": "^4.0.2",520 "@shikijs/langs": "^4.0.2",
525 "@shikijs/themes": "^4.0.2",521 "@shikijs/themes": "^4.0.2",
packages/react/package.json+0−5
@@ -17,11 +17,6 @@ · 16 unmodified lines
17 "@effect/platform": "catalog:",17 "@effect/platform": "catalog:",
18 "@effect-atom/atom-react": "^0.5.0",18 "@effect-atom/atom-react": "^0.5.0",
19 "@executor/api": "workspace:*",19 "@executor/api": "workspace:*",
20 "@executor/plugin-google-discovery": "workspace:*",
21 "@executor/plugin-graphql": "workspace:*",
22 "@executor/plugin-mcp": "workspace:*",
23 "@executor/plugin-onepassword": "workspace:*",
24 "@executor/plugin-openapi": "workspace:*",
25 "@executor/sdk": "workspace:*",20 "@executor/sdk": "workspace:*",
26 "@tanstack/react-router": "catalog:",21 "@tanstack/react-router": "catalog:",
27 "@shikijs/langs": "^4.0.2",22 "@shikijs/langs": "^4.0.2",
packages/react/src/pages/secrets.tsx+2−10
@@ -4,7 +4,6 @@ import { secretsAtom, setSecret, removeSecret } from "../api/atoms"; · 3 unmodified lines
4import type { SecretProviderPlugin } from "../plugins/secret-provider-plugin";4import type { SecretProviderPlugin } from "../plugins/secret-provider-plugin";
5import { SecretId } from "@executor/sdk";5import { SecretId } from "@executor/sdk";
6import { useScope } from "../hooks/use-scope";6import { useScope } from "../hooks/use-scope";
7import { onePasswordSecretProviderPlugin } from "@executor/plugin-onepassword/react";
8import {7import {
9 Dialog,8 Dialog,
10 DialogContent,9 DialogContent,
@@ -256,19 +255,12 @@ function SecretRow(props: { · 245 unmodified lines
256 );255 );
257}256}
258 257
259// ---------------------------------------------------------------------------
260// Secret provider plugins
261// ---------------------------------------------------------------------------
262
263const secretProviderPlugins: SecretProviderPlugin[] = [
264 onePasswordSecretProviderPlugin,
265];
266
267// ---------------------------------------------------------------------------258// ---------------------------------------------------------------------------
268// Page259// Page
269// ---------------------------------------------------------------------------260// ---------------------------------------------------------------------------
270 261
271export function SecretsPage() {262export function SecretsPage(props: { secretProviderPlugins: readonly SecretProviderPlugin[] }) {
263 const { secretProviderPlugins } = props;
272 const [addOpen, setAddOpen] = useState(false);264 const [addOpen, setAddOpen] = useState(false);
273 const scopeId = useScope();265 const scopeId = useScope();
274 const secrets = useAtomValue(secretsAtom(scopeId));266 const secrets = useAtomValue(secretsAtom(scopeId));
packages/react/src/pages/sources-add.tsx+2−16
@@ -4,21 +4,6 @@ import type { SourcePlugin } from "../plugins/source-plugin"; · 3 unmodified lines
4import { useAtomRefresh } from "@effect-atom/atom-react";4import { useAtomRefresh } from "@effect-atom/atom-react";
5import { sourcesAtom } from "../api/atoms";5import { sourcesAtom } from "../api/atoms";
6import { useScope } from "../hooks/use-scope";6import { useScope } from "../hooks/use-scope";
7import { openApiSourcePlugin } from "@executor/plugin-openapi/react";
8import { mcpSourcePlugin } from "@executor/plugin-mcp/react";
9import { googleDiscoverySourcePlugin } from "@executor/plugin-google-discovery/react";
10import { graphqlSourcePlugin } from "@executor/plugin-graphql/react";
11
12// ---------------------------------------------------------------------------
13// Registered source plugins
14// ---------------------------------------------------------------------------
15
16const sourcePlugins: SourcePlugin[] = [
17 openApiSourcePlugin,
18 mcpSourcePlugin,
19 googleDiscoverySourcePlugin,
20 graphqlSourcePlugin,
21];
22 7
23// ---------------------------------------------------------------------------8// ---------------------------------------------------------------------------
24// Page9// Page
@@ -28,8 +13,9 @@ export function SourcesAddPage(props: { · 3 unmodified lines
28 pluginKey: string;13 pluginKey: string;
29 url?: string;14 url?: string;
30 preset?: string;15 preset?: string;
16 sourcePlugins: readonly SourcePlugin[];
31}) {17}) {
32 const { pluginKey, url, preset } = props;18 const { pluginKey, url, preset, sourcePlugins } = props;
33 const scopeId = useScope();19 const scopeId = useScope();
34 const refreshSources = useAtomRefresh(sourcesAtom(scopeId));20 const refreshSources = useAtomRefresh(sourcesAtom(scopeId));
35 const navigate = useNavigate();21 const navigate = useNavigate();
packages/react/src/pages/sources.tsx+2−16
@@ -4,23 +4,8 @@ import { Result, useAtomValue, useAtomSet } from "@effect-atom/atom-react"; · 3 unmodified lines
4import { sourcesAtom, detectSource } from "../api/atoms";4import { sourcesAtom, detectSource } from "../api/atoms";
5import { useScope } from "../hooks/use-scope";5import { useScope } from "../hooks/use-scope";
6import type { SourcePlugin, SourcePreset } from "../plugins/source-plugin";6import type { SourcePlugin, SourcePreset } from "../plugins/source-plugin";
7import { openApiSourcePlugin } from "@executor/plugin-openapi/react";
8import { mcpSourcePlugin } from "@executor/plugin-mcp/react";
9import { googleDiscoverySourcePlugin } from "@executor/plugin-google-discovery/react";
10import { graphqlSourcePlugin } from "@executor/plugin-graphql/react";
11import { McpInstallCard } from "../components/mcp-install-card";7import { McpInstallCard } from "../components/mcp-install-card";
12 8
13// ---------------------------------------------------------------------------
14// Registered source plugins
15// ---------------------------------------------------------------------------
16
17const sourcePlugins: SourcePlugin[] = [
18 openApiSourcePlugin,
19 mcpSourcePlugin,
20 googleDiscoverySourcePlugin,
21 graphqlSourcePlugin,
22];
23
24const KIND_TO_PLUGIN_KEY: Record<string, string> = {9const KIND_TO_PLUGIN_KEY: Record<string, string> = {
25 openapi: "openapi",10 openapi: "openapi",
26 mcp: "mcp",11 mcp: "mcp",
@@ -32,7 +17,8 @@ const KIND_TO_PLUGIN_KEY: Record<string, string> = { · 5 unmodified lines
32// Page17// Page
33// ---------------------------------------------------------------------------18// ---------------------------------------------------------------------------
34 19
35export function SourcesPage() {20export function SourcesPage(props: { sourcePlugins: readonly SourcePlugin[] }) {
21 const { sourcePlugins } = props;
36 const [url, setUrl] = useState("");22 const [url, setUrl] = useState("");
37 const [detecting, setDetecting] = useState(false);23 const [detecting, setDetecting] = useState(false);
38 const [error, setError] = useState<string | null>(null);24 const [error, setError] = useState<string | null>(null);