Unified · Split
| @@ -14,11 +14,13 @@ import { Route as LoginRouteImport } from './routes/bare/login' · 13 unmodified lines | |||
| 14 | import { Route as CreateOrgRouteImport } from './routes/bare/create-org' | 14 | import { Route as CreateOrgRouteImport } from './routes/bare/create-org' |
| 15 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRouteImport } from './../../../packages/react/src/routes/index' | 15 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRouteImport } from './../../../packages/react/src/routes/index' |
| 16 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRouteImport } from './../../../packages/react/src/routes/tools' | 16 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRouteImport } from './../../../packages/react/src/routes/tools' |
| 17 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteImport } from './../../../packages/react/src/routes/toolkits' | ||
| 17 | import { Route as SecretsRouteImport } from './routes/app/secrets' | 18 | import { Route as SecretsRouteImport } from './routes/app/secrets' |
| 18 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRouteImport } from './../../../packages/react/src/routes/policies' | 19 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRouteImport } from './../../../packages/react/src/routes/policies' |
| 19 | import { Route as OrgRouteImport } from './routes/app/org' | 20 | import { Route as OrgRouteImport } from './routes/app/org' |
| 20 | import { Route as BillingRouteImport } from './routes/app/billing' | 21 | import { Route as BillingRouteImport } from './routes/app/billing' |
| 21 | import { Route as ApiKeysRouteImport } from './routes/app/api-keys' | 22 | import { Route as ApiKeysRouteImport } from './routes/app/api-keys' |
| 23 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRouteImport } from './../../../packages/react/src/routes/toolkits.$toolkitSlug' | ||
| 22 | import { Route as ResumeDotexecutionIdRouteImport } from './routes/app/resume.$executionId' | 24 | import { Route as ResumeDotexecutionIdRouteImport } from './routes/app/resume.$executionId' |
| 23 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRouteImport } from './../../../packages/react/src/routes/integrations.$namespace' | 25 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRouteImport } from './../../../packages/react/src/routes/integrations.$namespace' |
| 24 | import { Route as Billing_DotplansRouteImport } from './routes/app/billing_.plans' | 26 | import { Route as Billing_DotplansRouteImport } from './routes/app/billing_.plans' |
| @@ -51,6 +53,12 @@ const DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute = · 26 unmodified lines | |||
| 51 | path: '/{-$orgSlug}/tools', | 53 | path: '/{-$orgSlug}/tools', |
| 52 | getParentRoute: () => rootRouteImport, | 54 | getParentRoute: () => rootRouteImport, |
| 53 | } as any) | 55 | } as any) |
| 56 | const DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRoute = | ||
| 57 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteImport.update({ | ||
| 58 | id: '/{-$orgSlug}/toolkits', | ||
| 59 | path: '/{-$orgSlug}/toolkits', | ||
| 60 | getParentRoute: () => rootRouteImport, | ||
| 61 | } as any) | ||
| 54 | const SecretsRoute = SecretsRouteImport.update({ | 62 | const SecretsRoute = SecretsRouteImport.update({ |
| 55 | id: '/{-$orgSlug}/secrets', | 63 | id: '/{-$orgSlug}/secrets', |
| 56 | path: '/{-$orgSlug}/secrets', | 64 | path: '/{-$orgSlug}/secrets', |
| @@ -77,6 +85,15 @@ const ApiKeysRoute = ApiKeysRouteImport.update({ · 20 unmodified lines | |||
| 77 | path: '/{-$orgSlug}/api-keys', | 85 | path: '/{-$orgSlug}/api-keys', |
| 78 | getParentRoute: () => rootRouteImport, | 86 | getParentRoute: () => rootRouteImport, |
| 79 | } as any) | 87 | } as any) |
| 88 | const DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRoute = | ||
| 89 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRouteImport.update( | ||
| 90 | { | ||
| 91 | id: '/$toolkitSlug', | ||
| 92 | path: '/$toolkitSlug', | ||
| 93 | getParentRoute: () => | ||
| 94 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRoute, | ||
| 95 | } as any, | ||
| 96 | ) | ||
| 80 | const ResumeDotexecutionIdRoute = ResumeDotexecutionIdRouteImport.update({ | 97 | const ResumeDotexecutionIdRoute = ResumeDotexecutionIdRouteImport.update({ |
| 81 | id: '/{-$orgSlug}/resume/$executionId', | 98 | id: '/{-$orgSlug}/resume/$executionId', |
| 82 | path: '/{-$orgSlug}/resume/$executionId', | 99 | path: '/{-$orgSlug}/resume/$executionId', |
| @@ -113,11 +130,13 @@ export interface FileRoutesByFullPath { · 30 unmodified lines | |||
| 113 | '/{-$orgSlug}/org': typeof OrgRoute | 130 | '/{-$orgSlug}/org': typeof OrgRoute |
| 114 | '/{-$orgSlug}/policies': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute | 131 | '/{-$orgSlug}/policies': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute |
| 115 | '/{-$orgSlug}/secrets': typeof SecretsRoute | 132 | '/{-$orgSlug}/secrets': typeof SecretsRoute |
| 133 | '/{-$orgSlug}/toolkits': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteWithChildren | ||
| 116 | '/{-$orgSlug}/tools': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute | 134 | '/{-$orgSlug}/tools': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute |
| 117 | '/{-$orgSlug}/': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute | 135 | '/{-$orgSlug}/': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute |
| 118 | '/{-$orgSlug}/billing/plans': typeof Billing_DotplansRoute | 136 | '/{-$orgSlug}/billing/plans': typeof Billing_DotplansRoute |
| 119 | '/{-$orgSlug}/integrations/$namespace': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRoute | 137 | '/{-$orgSlug}/integrations/$namespace': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRoute |
| 120 | '/{-$orgSlug}/resume/$executionId': typeof ResumeDotexecutionIdRoute | 138 | '/{-$orgSlug}/resume/$executionId': typeof ResumeDotexecutionIdRoute |
| 139 | '/{-$orgSlug}/toolkits/$toolkitSlug': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRoute | ||
| 121 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotaddDotpluginKeyRoute | 140 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotaddDotpluginKeyRoute |
| 122 | } | 141 | } |
| 123 | export interface FileRoutesByTo { | 142 | export interface FileRoutesByTo { |
| @@ -129,11 +148,13 @@ export interface FileRoutesByTo { · 5 unmodified lines | |||
| 129 | '/{-$orgSlug}/org': typeof OrgRoute | 148 | '/{-$orgSlug}/org': typeof OrgRoute |
| 130 | '/{-$orgSlug}/policies': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute | 149 | '/{-$orgSlug}/policies': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute |
| 131 | '/{-$orgSlug}/secrets': typeof SecretsRoute | 150 | '/{-$orgSlug}/secrets': typeof SecretsRoute |
| 151 | '/{-$orgSlug}/toolkits': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteWithChildren | ||
| 132 | '/{-$orgSlug}/tools': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute | 152 | '/{-$orgSlug}/tools': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute |
| 133 | '/{-$orgSlug}': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute | 153 | '/{-$orgSlug}': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute |
| 134 | '/{-$orgSlug}/billing/plans': typeof Billing_DotplansRoute | 154 | '/{-$orgSlug}/billing/plans': typeof Billing_DotplansRoute |
| 135 | '/{-$orgSlug}/integrations/$namespace': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRoute | 155 | '/{-$orgSlug}/integrations/$namespace': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRoute |
| 136 | '/{-$orgSlug}/resume/$executionId': typeof ResumeDotexecutionIdRoute | 156 | '/{-$orgSlug}/resume/$executionId': typeof ResumeDotexecutionIdRoute |
| 157 | '/{-$orgSlug}/toolkits/$toolkitSlug': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRoute | ||
| 137 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotaddDotpluginKeyRoute | 158 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotaddDotpluginKeyRoute |
| 138 | } | 159 | } |
| 139 | export interface FileRoutesById { | 160 | export interface FileRoutesById { |
| @@ -146,11 +167,13 @@ export interface FileRoutesById { · 6 unmodified lines | |||
| 146 | '/{-$orgSlug}/org': typeof OrgRoute | 167 | '/{-$orgSlug}/org': typeof OrgRoute |
| 147 | '/{-$orgSlug}/policies': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute | 168 | '/{-$orgSlug}/policies': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute |
| 148 | '/{-$orgSlug}/secrets': typeof SecretsRoute | 169 | '/{-$orgSlug}/secrets': typeof SecretsRoute |
| 170 | '/{-$orgSlug}/toolkits': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteWithChildren | ||
| 149 | '/{-$orgSlug}/tools': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute | 171 | '/{-$orgSlug}/tools': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute |
| 150 | '/{-$orgSlug}/': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute | 172 | '/{-$orgSlug}/': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute |
| 151 | '/{-$orgSlug}/billing_/plans': typeof Billing_DotplansRoute | 173 | '/{-$orgSlug}/billing_/plans': typeof Billing_DotplansRoute |
| 152 | '/{-$orgSlug}/integrations/$namespace': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRoute | 174 | '/{-$orgSlug}/integrations/$namespace': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRoute |
| 153 | '/{-$orgSlug}/resume/$executionId': typeof ResumeDotexecutionIdRoute | 175 | '/{-$orgSlug}/resume/$executionId': typeof ResumeDotexecutionIdRoute |
| 176 | '/{-$orgSlug}/toolkits/$toolkitSlug': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRoute | ||
| 154 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotaddDotpluginKeyRoute | 177 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotaddDotpluginKeyRoute |
| 155 | } | 178 | } |
| 156 | export interface FileRouteTypes { | 179 | export interface FileRouteTypes { |
| @@ -164,11 +187,13 @@ export interface FileRouteTypes { · 7 unmodified lines | |||
| 164 | | '/{-$orgSlug}/org' | 187 | | '/{-$orgSlug}/org' |
| 165 | | '/{-$orgSlug}/policies' | 188 | | '/{-$orgSlug}/policies' |
| 166 | | '/{-$orgSlug}/secrets' | 189 | | '/{-$orgSlug}/secrets' |
| 190 | | '/{-$orgSlug}/toolkits' | ||
| 167 | | '/{-$orgSlug}/tools' | 191 | | '/{-$orgSlug}/tools' |
| 168 | | '/{-$orgSlug}/' | 192 | | '/{-$orgSlug}/' |
| 169 | | '/{-$orgSlug}/billing/plans' | 193 | | '/{-$orgSlug}/billing/plans' |
| 170 | | '/{-$orgSlug}/integrations/$namespace' | 194 | | '/{-$orgSlug}/integrations/$namespace' |
| 171 | | '/{-$orgSlug}/resume/$executionId' | 195 | | '/{-$orgSlug}/resume/$executionId' |
| 196 | | '/{-$orgSlug}/toolkits/$toolkitSlug' | ||
| 172 | | '/{-$orgSlug}/integrations/add/$pluginKey' | 197 | | '/{-$orgSlug}/integrations/add/$pluginKey' |
| 173 | fileRoutesByTo: FileRoutesByTo | 198 | fileRoutesByTo: FileRoutesByTo |
| 174 | to: | 199 | to: |
| @@ -180,11 +205,13 @@ export interface FileRouteTypes { · 5 unmodified lines | |||
| 180 | | '/{-$orgSlug}/org' | 205 | | '/{-$orgSlug}/org' |
| 181 | | '/{-$orgSlug}/policies' | 206 | | '/{-$orgSlug}/policies' |
| 182 | | '/{-$orgSlug}/secrets' | 207 | | '/{-$orgSlug}/secrets' |
| 208 | | '/{-$orgSlug}/toolkits' | ||
| 183 | | '/{-$orgSlug}/tools' | 209 | | '/{-$orgSlug}/tools' |
| 184 | | '/{-$orgSlug}' | 210 | | '/{-$orgSlug}' |
| 185 | | '/{-$orgSlug}/billing/plans' | 211 | | '/{-$orgSlug}/billing/plans' |
| 186 | | '/{-$orgSlug}/integrations/$namespace' | 212 | | '/{-$orgSlug}/integrations/$namespace' |
| 187 | | '/{-$orgSlug}/resume/$executionId' | 213 | | '/{-$orgSlug}/resume/$executionId' |
| 214 | | '/{-$orgSlug}/toolkits/$toolkitSlug' | ||
| 188 | | '/{-$orgSlug}/integrations/add/$pluginKey' | 215 | | '/{-$orgSlug}/integrations/add/$pluginKey' |
| 189 | id: | 216 | id: |
| 190 | | '__root__' | 217 | | '__root__' |
| @@ -196,11 +223,13 @@ export interface FileRouteTypes { · 5 unmodified lines | |||
| 196 | | '/{-$orgSlug}/org' | 223 | | '/{-$orgSlug}/org' |
| 197 | | '/{-$orgSlug}/policies' | 224 | | '/{-$orgSlug}/policies' |
| 198 | | '/{-$orgSlug}/secrets' | 225 | | '/{-$orgSlug}/secrets' |
| 226 | | '/{-$orgSlug}/toolkits' | ||
| 199 | | '/{-$orgSlug}/tools' | 227 | | '/{-$orgSlug}/tools' |
| 200 | | '/{-$orgSlug}/' | 228 | | '/{-$orgSlug}/' |
| 201 | | '/{-$orgSlug}/billing_/plans' | 229 | | '/{-$orgSlug}/billing_/plans' |
| 202 | | '/{-$orgSlug}/integrations/$namespace' | 230 | | '/{-$orgSlug}/integrations/$namespace' |
| 203 | | '/{-$orgSlug}/resume/$executionId' | 231 | | '/{-$orgSlug}/resume/$executionId' |
| 232 | | '/{-$orgSlug}/toolkits/$toolkitSlug' | ||
| 204 | | '/{-$orgSlug}/integrations/add/$pluginKey' | 233 | | '/{-$orgSlug}/integrations/add/$pluginKey' |
| 205 | fileRoutesById: FileRoutesById | 234 | fileRoutesById: FileRoutesById |
| 206 | } | 235 | } |
| @@ -213,6 +242,7 @@ export interface RootRouteChildren { · 6 unmodified lines | |||
| 213 | OrgRoute: typeof OrgRoute | 242 | OrgRoute: typeof OrgRoute |
| 214 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute | 243 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute |
| 215 | SecretsRoute: typeof SecretsRoute | 244 | SecretsRoute: typeof SecretsRoute |
| 245 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteWithChildren | ||
| 216 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute | 246 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute |
| 217 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute | 247 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute |
| 218 | Billing_DotplansRoute: typeof Billing_DotplansRoute | 248 | Billing_DotplansRoute: typeof Billing_DotplansRoute |
| @@ -258,6 +288,13 @@ declare module '@tanstack/react-router' { · 39 unmodified lines | |||
| 258 | preLoaderRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRouteImport | 288 | preLoaderRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRouteImport |
| 259 | parentRoute: typeof rootRouteImport | 289 | parentRoute: typeof rootRouteImport |
| 260 | } | 290 | } |
| 291 | '/{-$orgSlug}/toolkits': { | ||
| 292 | id: '/{-$orgSlug}/toolkits' | ||
| 293 | path: '/{-$orgSlug}/toolkits' | ||
| 294 | fullPath: '/{-$orgSlug}/toolkits' | ||
| 295 | preLoaderRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteImport | ||
| 296 | parentRoute: typeof rootRouteImport | ||
| 297 | } | ||
| 261 | '/{-$orgSlug}/secrets': { | 298 | '/{-$orgSlug}/secrets': { |
| 262 | id: '/{-$orgSlug}/secrets' | 299 | id: '/{-$orgSlug}/secrets' |
| 263 | path: '/{-$orgSlug}/secrets' | 300 | path: '/{-$orgSlug}/secrets' |
| @@ -293,6 +330,13 @@ declare module '@tanstack/react-router' { · 29 unmodified lines | |||
| 293 | preLoaderRoute: typeof ApiKeysRouteImport | 330 | preLoaderRoute: typeof ApiKeysRouteImport |
| 294 | parentRoute: typeof rootRouteImport | 331 | parentRoute: typeof rootRouteImport |
| 295 | } | 332 | } |
| 333 | '/{-$orgSlug}/toolkits/$toolkitSlug': { | ||
| 334 | id: '/{-$orgSlug}/toolkits/$toolkitSlug' | ||
| 335 | path: '/$toolkitSlug' | ||
| 336 | fullPath: '/{-$orgSlug}/toolkits/$toolkitSlug' | ||
| 337 | preLoaderRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRouteImport | ||
| 338 | parentRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRoute | ||
| 339 | } | ||
| 296 | '/{-$orgSlug}/resume/$executionId': { | 340 | '/{-$orgSlug}/resume/$executionId': { |
| 297 | id: '/{-$orgSlug}/resume/$executionId' | 341 | id: '/{-$orgSlug}/resume/$executionId' |
| 298 | path: '/{-$orgSlug}/resume/$executionId' | 342 | path: '/{-$orgSlug}/resume/$executionId' |
| @@ -324,6 +368,21 @@ declare module '@tanstack/react-router' { · 25 unmodified lines | |||
| 324 | } | 368 | } |
| 325 | } | 369 | } |
| 326 | 370 | ||
| 371 | interface DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteChildren { | ||
| 372 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRoute | ||
| 373 | } | ||
| 374 | |||
| 375 | const DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteChildren: DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteChildren = | ||
| 376 | { | ||
| 377 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRoute: | ||
| 378 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRoute, | ||
| 379 | } | ||
| 380 | |||
| 381 | const DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteWithChildren = | ||
| 382 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRoute._addFileChildren( | ||
| 383 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteChildren, | ||
| 384 | ) | ||
| 385 | |||
| 327 | const rootRouteChildren: RootRouteChildren = { | 386 | const rootRouteChildren: RootRouteChildren = { |
| 328 | CreateOrgRoute: CreateOrgRoute, | 387 | CreateOrgRoute: CreateOrgRoute, |
| 329 | LoginRoute: LoginRoute, | 388 | LoginRoute: LoginRoute, |
| @@ -334,6 +393,8 @@ const rootRouteChildren: RootRouteChildren = { · 4 unmodified lines | |||
| 334 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute: | 393 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute: |
| 335 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute, | 394 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute, |
| 336 | SecretsRoute: SecretsRoute, | 395 | SecretsRoute: SecretsRoute, |
| 396 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRoute: | ||
| 397 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteWithChildren, | ||
| 337 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute: | 398 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute: |
| 338 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute, | 399 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute, |
| 339 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute: | 400 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute: |
| @@ -350,11 +411,15 @@ export const routeTree = rootRouteImport · 10 unmodified lines | |||
| 350 | ._addFileTypes<FileRouteTypes>() | 411 | ._addFileTypes<FileRouteTypes>() |
| 351 | 412 | ||
| 352 | import type { getRouter } from './router.tsx' | 413 | import type { getRouter } from './router.tsx' |
| 414 | |||
| 353 | import type { startInstance } from './start.ts' | 415 | import type { startInstance } from './start.ts' |
| 416 | |||
| 354 | declare module '@tanstack/react-start' { | 417 | declare module '@tanstack/react-start' { |
| 355 | interface Register { | 418 | interface Register { |
| 356 | ssr: true | 419 | ssr: true |
| 420 | |||
| 357 | router: Awaited<ReturnType<typeof getRouter>> | 421 | router: Awaited<ReturnType<typeof getRouter>> |
| 422 | |||
| 358 | config: Awaited<ReturnType<typeof startInstance.getOptions>> | 423 | config: Awaited<ReturnType<typeof startInstance.getOptions>> |
| 359 | } | 424 | } |
| 360 | } | 425 | } |
| @@ -11,8 +11,10 @@ · 10 unmodified lines | |||
| 11 | import { Route as rootRouteImport } from './routes/__root' | 11 | import { Route as rootRouteImport } from './routes/__root' |
| 12 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRouteImport } from './../../../packages/react/src/routes/index' | 12 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRouteImport } from './../../../packages/react/src/routes/index' |
| 13 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRouteImport } from './../../../packages/react/src/routes/tools' | 13 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRouteImport } from './../../../packages/react/src/routes/tools' |
| 14 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteImport } from './../../../packages/react/src/routes/toolkits' | ||
| 14 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRouteImport } from './../../../packages/react/src/routes/secrets' | 15 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRouteImport } from './../../../packages/react/src/routes/secrets' |
| 15 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRouteImport } from './../../../packages/react/src/routes/policies' | 16 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRouteImport } from './../../../packages/react/src/routes/policies' |
| 17 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRouteImport } from './../../../packages/react/src/routes/toolkits.$toolkitSlug' | ||
| 16 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesResumeDotexecutionIdRouteImport } from './../../../packages/react/src/routes/resume.$executionId' | 18 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesResumeDotexecutionIdRouteImport } from './../../../packages/react/src/routes/resume.$executionId' |
| 17 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRouteImport } from './../../../packages/react/src/routes/integrations.$namespace' | 19 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRouteImport } from './../../../packages/react/src/routes/integrations.$namespace' |
| 18 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPluginsDotpluginIdDotsplatRouteImport } from './../../../packages/react/src/routes/plugins.$pluginId.$' | 20 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPluginsDotpluginIdDotsplatRouteImport } from './../../../packages/react/src/routes/plugins.$pluginId.$' |
| @@ -30,6 +32,12 @@ const DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute = · 11 unmodified lines | |||
| 30 | path: '/{-$orgSlug}/tools', | 32 | path: '/{-$orgSlug}/tools', |
| 31 | getParentRoute: () => rootRouteImport, | 33 | getParentRoute: () => rootRouteImport, |
| 32 | } as any) | 34 | } as any) |
| 35 | const DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRoute = | ||
| 36 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteImport.update({ | ||
| 37 | id: '/{-$orgSlug}/toolkits', | ||
| 38 | path: '/{-$orgSlug}/toolkits', | ||
| 39 | getParentRoute: () => rootRouteImport, | ||
| 40 | } as any) | ||
| 33 | const DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute = | 41 | const DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute = |
| 34 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRouteImport.update({ | 42 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRouteImport.update({ |
| 35 | id: '/{-$orgSlug}/secrets', | 43 | id: '/{-$orgSlug}/secrets', |
| @@ -42,6 +50,15 @@ const DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute = · 6 unmodified lines | |||
| 42 | path: '/{-$orgSlug}/policies', | 50 | path: '/{-$orgSlug}/policies', |
| 43 | getParentRoute: () => rootRouteImport, | 51 | getParentRoute: () => rootRouteImport, |
| 44 | } as any) | 52 | } as any) |
| 53 | const DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRoute = | ||
| 54 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRouteImport.update( | ||
| 55 | { | ||
| 56 | id: '/$toolkitSlug', | ||
| 57 | path: '/$toolkitSlug', | ||
| 58 | getParentRoute: () => | ||
| 59 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRoute, | ||
| 60 | } as any, | ||
| 61 | ) | ||
| 45 | const DotDotDotDotDotDotDotDotPackagesReactSrcRoutesResumeDotexecutionIdRoute = | 62 | const DotDotDotDotDotDotDotDotPackagesReactSrcRoutesResumeDotexecutionIdRoute = |
| 46 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesResumeDotexecutionIdRouteImport.update( | 63 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesResumeDotexecutionIdRouteImport.update( |
| 47 | { | 64 | { |
| @@ -78,20 +95,24 @@ const DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotaddDotpluginK · 30 unmodified lines | |||
| 78 | export interface FileRoutesByFullPath { | 95 | export interface FileRoutesByFullPath { |
| 79 | '/{-$orgSlug}/policies': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute | 96 | '/{-$orgSlug}/policies': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute |
| 80 | '/{-$orgSlug}/secrets': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute | 97 | '/{-$orgSlug}/secrets': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute |
| 98 | '/{-$orgSlug}/toolkits': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteWithChildren | ||
| 81 | '/{-$orgSlug}/tools': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute | 99 | '/{-$orgSlug}/tools': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute |
| 82 | '/{-$orgSlug}/': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute | 100 | '/{-$orgSlug}/': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute |
| 83 | '/{-$orgSlug}/integrations/$namespace': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRoute | 101 | '/{-$orgSlug}/integrations/$namespace': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRoute |
| 84 | '/{-$orgSlug}/resume/$executionId': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesResumeDotexecutionIdRoute | 102 | '/{-$orgSlug}/resume/$executionId': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesResumeDotexecutionIdRoute |
| 103 | '/{-$orgSlug}/toolkits/$toolkitSlug': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRoute | ||
| 85 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotaddDotpluginKeyRoute | 104 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotaddDotpluginKeyRoute |
| 86 | '/{-$orgSlug}/plugins/$pluginId/$': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPluginsDotpluginIdDotsplatRoute | 105 | '/{-$orgSlug}/plugins/$pluginId/$': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPluginsDotpluginIdDotsplatRoute |
| 87 | } | 106 | } |
| 88 | export interface FileRoutesByTo { | 107 | export interface FileRoutesByTo { |
| 89 | '/{-$orgSlug}/policies': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute | 108 | '/{-$orgSlug}/policies': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute |
| 90 | '/{-$orgSlug}/secrets': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute | 109 | '/{-$orgSlug}/secrets': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute |
| 110 | '/{-$orgSlug}/toolkits': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteWithChildren | ||
| 91 | '/{-$orgSlug}/tools': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute | 111 | '/{-$orgSlug}/tools': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute |
| 92 | '/{-$orgSlug}': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute | 112 | '/{-$orgSlug}': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute |
| 93 | '/{-$orgSlug}/integrations/$namespace': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRoute | 113 | '/{-$orgSlug}/integrations/$namespace': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRoute |
| 94 | '/{-$orgSlug}/resume/$executionId': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesResumeDotexecutionIdRoute | 114 | '/{-$orgSlug}/resume/$executionId': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesResumeDotexecutionIdRoute |
| 115 | '/{-$orgSlug}/toolkits/$toolkitSlug': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRoute | ||
| 95 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotaddDotpluginKeyRoute | 116 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotaddDotpluginKeyRoute |
| 96 | '/{-$orgSlug}/plugins/$pluginId/$': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPluginsDotpluginIdDotsplatRoute | 117 | '/{-$orgSlug}/plugins/$pluginId/$': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPluginsDotpluginIdDotsplatRoute |
| 97 | } | 118 | } |
| @@ -99,10 +120,12 @@ export interface FileRoutesById { · 1 unmodified line | |||
| 99 | __root__: typeof rootRouteImport | 120 | __root__: typeof rootRouteImport |
| 100 | '/{-$orgSlug}/policies': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute | 121 | '/{-$orgSlug}/policies': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute |
| 101 | '/{-$orgSlug}/secrets': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute | 122 | '/{-$orgSlug}/secrets': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute |
| 123 | '/{-$orgSlug}/toolkits': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteWithChildren | ||
| 102 | '/{-$orgSlug}/tools': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute | 124 | '/{-$orgSlug}/tools': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute |
| 103 | '/{-$orgSlug}/': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute | 125 | '/{-$orgSlug}/': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute |
| 104 | '/{-$orgSlug}/integrations/$namespace': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRoute | 126 | '/{-$orgSlug}/integrations/$namespace': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRoute |
| 105 | '/{-$orgSlug}/resume/$executionId': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesResumeDotexecutionIdRoute | 127 | '/{-$orgSlug}/resume/$executionId': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesResumeDotexecutionIdRoute |
| 128 | '/{-$orgSlug}/toolkits/$toolkitSlug': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRoute | ||
| 106 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotaddDotpluginKeyRoute | 129 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotaddDotpluginKeyRoute |
| 107 | '/{-$orgSlug}/plugins/$pluginId/$': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPluginsDotpluginIdDotsplatRoute | 130 | '/{-$orgSlug}/plugins/$pluginId/$': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPluginsDotpluginIdDotsplatRoute |
| 108 | } | 131 | } |
| @@ -111,30 +134,36 @@ export interface FileRouteTypes { · 2 unmodified lines | |||
| 111 | fullPaths: | 134 | fullPaths: |
| 112 | | '/{-$orgSlug}/policies' | 135 | | '/{-$orgSlug}/policies' |
| 113 | | '/{-$orgSlug}/secrets' | 136 | | '/{-$orgSlug}/secrets' |
| 137 | | '/{-$orgSlug}/toolkits' | ||
| 114 | | '/{-$orgSlug}/tools' | 138 | | '/{-$orgSlug}/tools' |
| 115 | | '/{-$orgSlug}/' | 139 | | '/{-$orgSlug}/' |
| 116 | | '/{-$orgSlug}/integrations/$namespace' | 140 | | '/{-$orgSlug}/integrations/$namespace' |
| 117 | | '/{-$orgSlug}/resume/$executionId' | 141 | | '/{-$orgSlug}/resume/$executionId' |
| 142 | | '/{-$orgSlug}/toolkits/$toolkitSlug' | ||
| 118 | | '/{-$orgSlug}/integrations/add/$pluginKey' | 143 | | '/{-$orgSlug}/integrations/add/$pluginKey' |
| 119 | | '/{-$orgSlug}/plugins/$pluginId/$' | 144 | | '/{-$orgSlug}/plugins/$pluginId/$' |
| 120 | fileRoutesByTo: FileRoutesByTo | 145 | fileRoutesByTo: FileRoutesByTo |
| 121 | to: | 146 | to: |
| 122 | | '/{-$orgSlug}/policies' | 147 | | '/{-$orgSlug}/policies' |
| 123 | | '/{-$orgSlug}/secrets' | 148 | | '/{-$orgSlug}/secrets' |
| 149 | | '/{-$orgSlug}/toolkits' | ||
| 124 | | '/{-$orgSlug}/tools' | 150 | | '/{-$orgSlug}/tools' |
| 125 | | '/{-$orgSlug}' | 151 | | '/{-$orgSlug}' |
| 126 | | '/{-$orgSlug}/integrations/$namespace' | 152 | | '/{-$orgSlug}/integrations/$namespace' |
| 127 | | '/{-$orgSlug}/resume/$executionId' | 153 | | '/{-$orgSlug}/resume/$executionId' |
| 154 | | '/{-$orgSlug}/toolkits/$toolkitSlug' | ||
| 128 | | '/{-$orgSlug}/integrations/add/$pluginKey' | 155 | | '/{-$orgSlug}/integrations/add/$pluginKey' |
| 129 | | '/{-$orgSlug}/plugins/$pluginId/$' | 156 | | '/{-$orgSlug}/plugins/$pluginId/$' |
| 130 | id: | 157 | id: |
| 131 | | '__root__' | 158 | | '__root__' |
| 132 | | '/{-$orgSlug}/policies' | 159 | | '/{-$orgSlug}/policies' |
| 133 | | '/{-$orgSlug}/secrets' | 160 | | '/{-$orgSlug}/secrets' |
| 161 | | '/{-$orgSlug}/toolkits' | ||
| 134 | | '/{-$orgSlug}/tools' | 162 | | '/{-$orgSlug}/tools' |
| 135 | | '/{-$orgSlug}/' | 163 | | '/{-$orgSlug}/' |
| 136 | | '/{-$orgSlug}/integrations/$namespace' | 164 | | '/{-$orgSlug}/integrations/$namespace' |
| 137 | | '/{-$orgSlug}/resume/$executionId' | 165 | | '/{-$orgSlug}/resume/$executionId' |
| 166 | | '/{-$orgSlug}/toolkits/$toolkitSlug' | ||
| 138 | | '/{-$orgSlug}/integrations/add/$pluginKey' | 167 | | '/{-$orgSlug}/integrations/add/$pluginKey' |
| 139 | | '/{-$orgSlug}/plugins/$pluginId/$' | 168 | | '/{-$orgSlug}/plugins/$pluginId/$' |
| 140 | fileRoutesById: FileRoutesById | 169 | fileRoutesById: FileRoutesById |
| @@ -142,6 +171,7 @@ export interface FileRouteTypes { · 1 unmodified line | |||
| 142 | export interface RootRouteChildren { | 171 | export interface RootRouteChildren { |
| 143 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute | 172 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute |
| 144 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute | 173 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute |
| 174 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteWithChildren | ||
| 145 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute | 175 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute |
| 146 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute | 176 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute |
| 147 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRoute | 177 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRoute |
| @@ -166,6 +196,13 @@ declare module '@tanstack/react-router' { · 18 unmodified lines | |||
| 166 | preLoaderRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRouteImport | 196 | preLoaderRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRouteImport |
| 167 | parentRoute: typeof rootRouteImport | 197 | parentRoute: typeof rootRouteImport |
| 168 | } | 198 | } |
| 199 | '/{-$orgSlug}/toolkits': { | ||
| 200 | id: '/{-$orgSlug}/toolkits' | ||
| 201 | path: '/{-$orgSlug}/toolkits' | ||
| 202 | fullPath: '/{-$orgSlug}/toolkits' | ||
| 203 | preLoaderRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteImport | ||
| 204 | parentRoute: typeof rootRouteImport | ||
| 205 | } | ||
| 169 | '/{-$orgSlug}/secrets': { | 206 | '/{-$orgSlug}/secrets': { |
| 170 | id: '/{-$orgSlug}/secrets' | 207 | id: '/{-$orgSlug}/secrets' |
| 171 | path: '/{-$orgSlug}/secrets' | 208 | path: '/{-$orgSlug}/secrets' |
| @@ -180,6 +217,13 @@ declare module '@tanstack/react-router' { · 8 unmodified lines | |||
| 180 | preLoaderRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRouteImport | 217 | preLoaderRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRouteImport |
| 181 | parentRoute: typeof rootRouteImport | 218 | parentRoute: typeof rootRouteImport |
| 182 | } | 219 | } |
| 220 | '/{-$orgSlug}/toolkits/$toolkitSlug': { | ||
| 221 | id: '/{-$orgSlug}/toolkits/$toolkitSlug' | ||
| 222 | path: '/$toolkitSlug' | ||
| 223 | fullPath: '/{-$orgSlug}/toolkits/$toolkitSlug' | ||
| 224 | preLoaderRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRouteImport | ||
| 225 | parentRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRoute | ||
| 226 | } | ||
| 183 | '/{-$orgSlug}/resume/$executionId': { | 227 | '/{-$orgSlug}/resume/$executionId': { |
| 184 | id: '/{-$orgSlug}/resume/$executionId' | 228 | id: '/{-$orgSlug}/resume/$executionId' |
| 185 | path: '/{-$orgSlug}/resume/$executionId' | 229 | path: '/{-$orgSlug}/resume/$executionId' |
| @@ -211,11 +255,28 @@ declare module '@tanstack/react-router' { · 25 unmodified lines | |||
| 211 | } | 255 | } |
| 212 | } | 256 | } |
| 213 | 257 | ||
| 258 | interface DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteChildren { | ||
| 259 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRoute | ||
| 260 | } | ||
| 261 | |||
| 262 | const DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteChildren: DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteChildren = | ||
| 263 | { | ||
| 264 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRoute: | ||
| 265 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRoute, | ||
| 266 | } | ||
| 267 | |||
| 268 | const DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteWithChildren = | ||
| 269 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRoute._addFileChildren( | ||
| 270 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteChildren, | ||
| 271 | ) | ||
| 272 | |||
| 214 | const rootRouteChildren: RootRouteChildren = { | 273 | const rootRouteChildren: RootRouteChildren = { |
| 215 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute: | 274 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute: |
| 216 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute, | 275 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute, |
| 217 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute: | 276 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute: |
| 218 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute, | 277 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute, |
| 278 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRoute: | ||
| 279 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteWithChildren, | ||
| 219 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute: | 280 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute: |
| 220 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute, | 281 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute, |
| 221 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute: | 282 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute: |
| @@ -11,11 +11,13 @@ · 10 unmodified lines | |||
| 11 | import { Route as rootRouteImport } from './routes/__root' | 11 | import { Route as rootRouteImport } from './routes/__root' |
| 12 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRouteImport } from './../../../packages/react/src/routes/index' | 12 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRouteImport } from './../../../packages/react/src/routes/index' |
| 13 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRouteImport } from './../../../packages/react/src/routes/tools' | 13 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRouteImport } from './../../../packages/react/src/routes/tools' |
| 14 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteImport } from './../../../packages/react/src/routes/toolkits' | ||
| 14 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRouteImport } from './../../../packages/react/src/routes/secrets' | 15 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRouteImport } from './../../../packages/react/src/routes/secrets' |
| 15 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRouteImport } from './../../../packages/react/src/routes/policies' | 16 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRouteImport } from './../../../packages/react/src/routes/policies' |
| 16 | import { Route as ApiKeysRouteImport } from './routes/app/api-keys' | 17 | import { Route as ApiKeysRouteImport } from './routes/app/api-keys' |
| 17 | import { Route as AdminRouteImport } from './routes/app/admin' | 18 | import { Route as AdminRouteImport } from './routes/app/admin' |
| 18 | import { Route as JoinDotcodeRouteImport } from './routes/public/join.$code' | 19 | import { Route as JoinDotcodeRouteImport } from './routes/public/join.$code' |
| 20 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRouteImport } from './../../../packages/react/src/routes/toolkits.$toolkitSlug' | ||
| 19 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesResumeDotexecutionIdRouteImport } from './../../../packages/react/src/routes/resume.$executionId' | 21 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesResumeDotexecutionIdRouteImport } from './../../../packages/react/src/routes/resume.$executionId' |
| 20 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRouteImport } from './../../../packages/react/src/routes/integrations.$namespace' | 22 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRouteImport } from './../../../packages/react/src/routes/integrations.$namespace' |
| 21 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPluginsDotpluginIdDotsplatRouteImport } from './../../../packages/react/src/routes/plugins.$pluginId.$' | 23 | import { Route as DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPluginsDotpluginIdDotsplatRouteImport } from './../../../packages/react/src/routes/plugins.$pluginId.$' |
| @@ -33,6 +35,12 @@ const DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute = · 11 unmodified lines | |||
| 33 | path: '/{-$orgSlug}/tools', | 35 | path: '/{-$orgSlug}/tools', |
| 34 | getParentRoute: () => rootRouteImport, | 36 | getParentRoute: () => rootRouteImport, |
| 35 | } as any) | 37 | } as any) |
| 38 | const DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRoute = | ||
| 39 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteImport.update({ | ||
| 40 | id: '/{-$orgSlug}/toolkits', | ||
| 41 | path: '/{-$orgSlug}/toolkits', | ||
| 42 | getParentRoute: () => rootRouteImport, | ||
| 43 | } as any) | ||
| 36 | const DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute = | 44 | const DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute = |
| 37 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRouteImport.update({ | 45 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRouteImport.update({ |
| 38 | id: '/{-$orgSlug}/secrets', | 46 | id: '/{-$orgSlug}/secrets', |
| @@ -60,6 +68,15 @@ const JoinDotcodeRoute = JoinDotcodeRouteImport.update({ · 21 unmodified lines | |||
| 60 | path: '/join/$code', | 68 | path: '/join/$code', |
| 61 | getParentRoute: () => rootRouteImport, | 69 | getParentRoute: () => rootRouteImport, |
| 62 | } as any) | 70 | } as any) |
| 71 | const DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRoute = | ||
| 72 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRouteImport.update( | ||
| 73 | { | ||
| 74 | id: '/$toolkitSlug', | ||
| 75 | path: '/$toolkitSlug', | ||
| 76 | getParentRoute: () => | ||
| 77 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRoute, | ||
| 78 | } as any, | ||
| 79 | ) | ||
| 63 | const DotDotDotDotDotDotDotDotPackagesReactSrcRoutesResumeDotexecutionIdRoute = | 80 | const DotDotDotDotDotDotDotDotPackagesReactSrcRoutesResumeDotexecutionIdRoute = |
| 64 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesResumeDotexecutionIdRouteImport.update( | 81 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesResumeDotexecutionIdRouteImport.update( |
| 65 | { | 82 | { |
| @@ -99,10 +116,12 @@ export interface FileRoutesByFullPath { · 33 unmodified lines | |||
| 99 | '/{-$orgSlug}/api-keys': typeof ApiKeysRoute | 116 | '/{-$orgSlug}/api-keys': typeof ApiKeysRoute |
| 100 | '/{-$orgSlug}/policies': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute | 117 | '/{-$orgSlug}/policies': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute |
| 101 | '/{-$orgSlug}/secrets': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute | 118 | '/{-$orgSlug}/secrets': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute |
| 119 | '/{-$orgSlug}/toolkits': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteWithChildren | ||
| 102 | '/{-$orgSlug}/tools': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute | 120 | '/{-$orgSlug}/tools': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute |
| 103 | '/{-$orgSlug}/': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute | 121 | '/{-$orgSlug}/': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute |
| 104 | '/{-$orgSlug}/integrations/$namespace': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRoute | 122 | '/{-$orgSlug}/integrations/$namespace': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRoute |
| 105 | '/{-$orgSlug}/resume/$executionId': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesResumeDotexecutionIdRoute | 123 | '/{-$orgSlug}/resume/$executionId': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesResumeDotexecutionIdRoute |
| 124 | '/{-$orgSlug}/toolkits/$toolkitSlug': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRoute | ||
| 106 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotaddDotpluginKeyRoute | 125 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotaddDotpluginKeyRoute |
| 107 | '/{-$orgSlug}/plugins/$pluginId/$': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPluginsDotpluginIdDotsplatRoute | 126 | '/{-$orgSlug}/plugins/$pluginId/$': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPluginsDotpluginIdDotsplatRoute |
| 108 | } | 127 | } |
| @@ -112,10 +131,12 @@ export interface FileRoutesByTo { · 3 unmodified lines | |||
| 112 | '/{-$orgSlug}/api-keys': typeof ApiKeysRoute | 131 | '/{-$orgSlug}/api-keys': typeof ApiKeysRoute |
| 113 | '/{-$orgSlug}/policies': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute | 132 | '/{-$orgSlug}/policies': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute |
| 114 | '/{-$orgSlug}/secrets': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute | 133 | '/{-$orgSlug}/secrets': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute |
| 134 | '/{-$orgSlug}/toolkits': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteWithChildren | ||
| 115 | '/{-$orgSlug}/tools': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute | 135 | '/{-$orgSlug}/tools': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute |
| 116 | '/{-$orgSlug}': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute | 136 | '/{-$orgSlug}': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute |
| 117 | '/{-$orgSlug}/integrations/$namespace': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRoute | 137 | '/{-$orgSlug}/integrations/$namespace': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRoute |
| 118 | '/{-$orgSlug}/resume/$executionId': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesResumeDotexecutionIdRoute | 138 | '/{-$orgSlug}/resume/$executionId': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesResumeDotexecutionIdRoute |
| 139 | '/{-$orgSlug}/toolkits/$toolkitSlug': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRoute | ||
| 119 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotaddDotpluginKeyRoute | 140 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotaddDotpluginKeyRoute |
| 120 | '/{-$orgSlug}/plugins/$pluginId/$': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPluginsDotpluginIdDotsplatRoute | 141 | '/{-$orgSlug}/plugins/$pluginId/$': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPluginsDotpluginIdDotsplatRoute |
| 121 | } | 142 | } |
| @@ -126,10 +147,12 @@ export interface FileRoutesById { · 4 unmodified lines | |||
| 126 | '/{-$orgSlug}/api-keys': typeof ApiKeysRoute | 147 | '/{-$orgSlug}/api-keys': typeof ApiKeysRoute |
| 127 | '/{-$orgSlug}/policies': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute | 148 | '/{-$orgSlug}/policies': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute |
| 128 | '/{-$orgSlug}/secrets': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute | 149 | '/{-$orgSlug}/secrets': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute |
| 150 | '/{-$orgSlug}/toolkits': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteWithChildren | ||
| 129 | '/{-$orgSlug}/tools': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute | 151 | '/{-$orgSlug}/tools': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute |
| 130 | '/{-$orgSlug}/': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute | 152 | '/{-$orgSlug}/': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute |
| 131 | '/{-$orgSlug}/integrations/$namespace': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRoute | 153 | '/{-$orgSlug}/integrations/$namespace': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRoute |
| 132 | '/{-$orgSlug}/resume/$executionId': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesResumeDotexecutionIdRoute | 154 | '/{-$orgSlug}/resume/$executionId': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesResumeDotexecutionIdRoute |
| 155 | '/{-$orgSlug}/toolkits/$toolkitSlug': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRoute | ||
| 133 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotaddDotpluginKeyRoute | 156 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotaddDotpluginKeyRoute |
| 134 | '/{-$orgSlug}/plugins/$pluginId/$': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPluginsDotpluginIdDotsplatRoute | 157 | '/{-$orgSlug}/plugins/$pluginId/$': typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPluginsDotpluginIdDotsplatRoute |
| 135 | } | 158 | } |
| @@ -141,10 +164,12 @@ export interface FileRouteTypes { · 5 unmodified lines | |||
| 141 | | '/{-$orgSlug}/api-keys' | 164 | | '/{-$orgSlug}/api-keys' |
| 142 | | '/{-$orgSlug}/policies' | 165 | | '/{-$orgSlug}/policies' |
| 143 | | '/{-$orgSlug}/secrets' | 166 | | '/{-$orgSlug}/secrets' |
| 167 | | '/{-$orgSlug}/toolkits' | ||
| 144 | | '/{-$orgSlug}/tools' | 168 | | '/{-$orgSlug}/tools' |
| 145 | | '/{-$orgSlug}/' | 169 | | '/{-$orgSlug}/' |
| 146 | | '/{-$orgSlug}/integrations/$namespace' | 170 | | '/{-$orgSlug}/integrations/$namespace' |
| 147 | | '/{-$orgSlug}/resume/$executionId' | 171 | | '/{-$orgSlug}/resume/$executionId' |
| 172 | | '/{-$orgSlug}/toolkits/$toolkitSlug' | ||
| 148 | | '/{-$orgSlug}/integrations/add/$pluginKey' | 173 | | '/{-$orgSlug}/integrations/add/$pluginKey' |
| 149 | | '/{-$orgSlug}/plugins/$pluginId/$' | 174 | | '/{-$orgSlug}/plugins/$pluginId/$' |
| 150 | fileRoutesByTo: FileRoutesByTo | 175 | fileRoutesByTo: FileRoutesByTo |
| @@ -154,10 +179,12 @@ export interface FileRouteTypes { · 3 unmodified lines | |||
| 154 | | '/{-$orgSlug}/api-keys' | 179 | | '/{-$orgSlug}/api-keys' |
| 155 | | '/{-$orgSlug}/policies' | 180 | | '/{-$orgSlug}/policies' |
| 156 | | '/{-$orgSlug}/secrets' | 181 | | '/{-$orgSlug}/secrets' |
| 182 | | '/{-$orgSlug}/toolkits' | ||
| 157 | | '/{-$orgSlug}/tools' | 183 | | '/{-$orgSlug}/tools' |
| 158 | | '/{-$orgSlug}' | 184 | | '/{-$orgSlug}' |
| 159 | | '/{-$orgSlug}/integrations/$namespace' | 185 | | '/{-$orgSlug}/integrations/$namespace' |
| 160 | | '/{-$orgSlug}/resume/$executionId' | 186 | | '/{-$orgSlug}/resume/$executionId' |
| 187 | | '/{-$orgSlug}/toolkits/$toolkitSlug' | ||
| 161 | | '/{-$orgSlug}/integrations/add/$pluginKey' | 188 | | '/{-$orgSlug}/integrations/add/$pluginKey' |
| 162 | | '/{-$orgSlug}/plugins/$pluginId/$' | 189 | | '/{-$orgSlug}/plugins/$pluginId/$' |
| 163 | id: | 190 | id: |
| @@ -167,10 +194,12 @@ export interface FileRouteTypes { · 3 unmodified lines | |||
| 167 | | '/{-$orgSlug}/api-keys' | 194 | | '/{-$orgSlug}/api-keys' |
| 168 | | '/{-$orgSlug}/policies' | 195 | | '/{-$orgSlug}/policies' |
| 169 | | '/{-$orgSlug}/secrets' | 196 | | '/{-$orgSlug}/secrets' |
| 197 | | '/{-$orgSlug}/toolkits' | ||
| 170 | | '/{-$orgSlug}/tools' | 198 | | '/{-$orgSlug}/tools' |
| 171 | | '/{-$orgSlug}/' | 199 | | '/{-$orgSlug}/' |
| 172 | | '/{-$orgSlug}/integrations/$namespace' | 200 | | '/{-$orgSlug}/integrations/$namespace' |
| 173 | | '/{-$orgSlug}/resume/$executionId' | 201 | | '/{-$orgSlug}/resume/$executionId' |
| 202 | | '/{-$orgSlug}/toolkits/$toolkitSlug' | ||
| 174 | | '/{-$orgSlug}/integrations/add/$pluginKey' | 203 | | '/{-$orgSlug}/integrations/add/$pluginKey' |
| 175 | | '/{-$orgSlug}/plugins/$pluginId/$' | 204 | | '/{-$orgSlug}/plugins/$pluginId/$' |
| 176 | fileRoutesById: FileRoutesById | 205 | fileRoutesById: FileRoutesById |
| @@ -181,6 +210,7 @@ export interface RootRouteChildren { · 4 unmodified lines | |||
| 181 | ApiKeysRoute: typeof ApiKeysRoute | 210 | ApiKeysRoute: typeof ApiKeysRoute |
| 182 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute | 211 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute |
| 183 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute | 212 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute |
| 213 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteWithChildren | ||
| 184 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute | 214 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute |
| 185 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute | 215 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute |
| 186 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRoute | 216 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIntegrationsDotnamespaceRoute |
| @@ -205,6 +235,13 @@ declare module '@tanstack/react-router' { · 18 unmodified lines | |||
| 205 | preLoaderRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRouteImport | 235 | preLoaderRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRouteImport |
| 206 | parentRoute: typeof rootRouteImport | 236 | parentRoute: typeof rootRouteImport |
| 207 | } | 237 | } |
| 238 | '/{-$orgSlug}/toolkits': { | ||
| 239 | id: '/{-$orgSlug}/toolkits' | ||
| 240 | path: '/{-$orgSlug}/toolkits' | ||
| 241 | fullPath: '/{-$orgSlug}/toolkits' | ||
| 242 | preLoaderRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteImport | ||
| 243 | parentRoute: typeof rootRouteImport | ||
| 244 | } | ||
| 208 | '/{-$orgSlug}/secrets': { | 245 | '/{-$orgSlug}/secrets': { |
| 209 | id: '/{-$orgSlug}/secrets' | 246 | id: '/{-$orgSlug}/secrets' |
| 210 | path: '/{-$orgSlug}/secrets' | 247 | path: '/{-$orgSlug}/secrets' |
| @@ -240,6 +277,13 @@ declare module '@tanstack/react-router' { · 29 unmodified lines | |||
| 240 | preLoaderRoute: typeof JoinDotcodeRouteImport | 277 | preLoaderRoute: typeof JoinDotcodeRouteImport |
| 241 | parentRoute: typeof rootRouteImport | 278 | parentRoute: typeof rootRouteImport |
| 242 | } | 279 | } |
| 280 | '/{-$orgSlug}/toolkits/$toolkitSlug': { | ||
| 281 | id: '/{-$orgSlug}/toolkits/$toolkitSlug' | ||
| 282 | path: '/$toolkitSlug' | ||
| 283 | fullPath: '/{-$orgSlug}/toolkits/$toolkitSlug' | ||
| 284 | preLoaderRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRouteImport | ||
| 285 | parentRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRoute | ||
| 286 | } | ||
| 243 | '/{-$orgSlug}/resume/$executionId': { | 287 | '/{-$orgSlug}/resume/$executionId': { |
| 244 | id: '/{-$orgSlug}/resume/$executionId' | 288 | id: '/{-$orgSlug}/resume/$executionId' |
| 245 | path: '/{-$orgSlug}/resume/$executionId' | 289 | path: '/{-$orgSlug}/resume/$executionId' |
| @@ -271,6 +315,21 @@ declare module '@tanstack/react-router' { · 25 unmodified lines | |||
| 271 | } | 315 | } |
| 272 | } | 316 | } |
| 273 | 317 | ||
| 318 | interface DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteChildren { | ||
| 319 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRoute: typeof DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRoute | ||
| 320 | } | ||
| 321 | |||
| 322 | const DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteChildren: DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteChildren = | ||
| 323 | { | ||
| 324 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRoute: | ||
| 325 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsDottoolkitSlugRoute, | ||
| 326 | } | ||
| 327 | |||
| 328 | const DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteWithChildren = | ||
| 329 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRoute._addFileChildren( | ||
| 330 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteChildren, | ||
| 331 | ) | ||
| 332 | |||
| 274 | const rootRouteChildren: RootRouteChildren = { | 333 | const rootRouteChildren: RootRouteChildren = { |
| 275 | JoinDotcodeRoute: JoinDotcodeRoute, | 334 | JoinDotcodeRoute: JoinDotcodeRoute, |
| 276 | AdminRoute: AdminRoute, | 335 | AdminRoute: AdminRoute, |
| @@ -279,6 +338,8 @@ const rootRouteChildren: RootRouteChildren = { · 2 unmodified lines | |||
| 279 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute, | 338 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesPoliciesRoute, |
| 280 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute: | 339 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute: |
| 281 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute, | 340 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesSecretsRoute, |
| 341 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRoute: | ||
| 342 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolkitsRouteWithChildren, | ||
| 282 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute: | 343 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute: |
| 283 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute, | 344 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesToolsRoute, |
| 284 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute: | 345 | DotDotDotDotDotDotDotDotPackagesReactSrcRoutesIndexRoute: |
| @@ -52,12 +52,13 @@ scenario( · 51 unmodified lines | |||
| 52 | 52 | ||
| 53 | yield* browser.session(identity, async ({ page, step }) => { | 53 | yield* browser.session(identity, async ({ page, step }) => { |
| 54 | await step("Open the Toolkits plugin page", async () => { | 54 | await step("Open the Toolkits plugin page", async () => { |
| 55 | await page.goto("/plugins/toolkits/", { waitUntil: "networkidle" }); | 55 | await page.goto("/default/toolkits/", { waitUntil: "domcontentloaded" }); |
| 56 | await page.getByRole("heading", { name: "Toolkits" }).waitFor(); | 56 | await page.getByRole("heading", { name: "Toolkits" }).waitFor(); |
| 57 | await page.getByRole("heading", { name: "Workspace" }).waitFor(); | 57 | await page.getByRole("heading", { name: "Workspace" }).waitFor(); |
| 58 | await page.getByRole("heading", { name: "Personal" }).waitFor(); | 58 | await page.getByRole("heading", { name: "Personal" }).waitFor(); |
| 59 | await page.getByRole("button", { name: "Add workspace toolkit" }).waitFor(); | 59 | await page.getByRole("button", { name: "Add workspace toolkit" }).waitFor(); |
| 60 | await page.getByRole("button", { name: "Add personal toolkit" }).waitFor(); | 60 | await page.getByRole("button", { name: "Add personal toolkit" }).waitFor(); |
| 61 | await page.locator('main [data-slot="skeleton"]').first().waitFor({ state: "detached" }); | ||
| 61 | expect(await page.locator('main [data-slot="skeleton"]').count()).toBe(0); | 62 | expect(await page.locator('main [data-slot="skeleton"]').count()).toBe(0); |
| 62 | const seededCard = page.getByRole("link", { | 63 | const seededCard = page.getByRole("link", { |
| 63 | name: `Open toolkit ${prefix}-workspace-a`, | 64 | name: `Open toolkit ${prefix}-workspace-a`, |
| @@ -104,8 +105,8 @@ scenario( · 40 unmodified lines | |||
| 104 | 105 | ||
| 105 | await step("Open the created toolkit from the grid", async () => { | 106 | await step("Open the created toolkit from the grid", async () => { |
| 106 | await page.getByRole("link", { name: `Open toolkit ${name}` }).click(); | 107 | await page.getByRole("link", { name: `Open toolkit ${name}` }).click(); |
| 107 | await page.waitForURL(new RegExp(`/plugins/toolkits/${slug}$`)); | 108 | await page.waitForURL(new RegExp(`/toolkits/${slug}$`)); |
| 108 | expect(page.url()).toMatch(new RegExp(`/plugins/toolkits/${slug}$`)); | 109 | expect(page.url()).toMatch(new RegExp(`/toolkits/${slug}$`)); |
| 109 | await page | 110 | await page |
| 110 | .locator("code") | 111 | .locator("code") |
| 111 | .filter({ hasText: `/mcp/toolkits/${slug}` }) | 112 | .filter({ hasText: `/mcp/toolkits/${slug}` }) |
| @@ -116,15 +117,15 @@ scenario( · 4 unmodified lines | |||
| 116 | 117 | ||
| 117 | await step("Return to the toolkit grid with browser-visible routing", async () => { | 118 | await step("Return to the toolkit grid with browser-visible routing", async () => { |
| 118 | await page.getByRole("button", { name: "Toolkits" }).click(); | 119 | await page.getByRole("button", { name: "Toolkits" }).click(); |
| 119 | await page.waitForURL(/\/plugins\/toolkits\/?$/); | 120 | await page.waitForURL(/\/toolkits\/?$/); |
| 120 | expect(page.url()).toMatch(/\/plugins\/toolkits\/?$/); | 121 | expect(page.url()).toMatch(/\/toolkits\/?$/); |
| 121 | await page.getByRole("heading", { name: "Workspace" }).waitFor(); | 122 | await page.getByRole("heading", { name: "Workspace" }).waitFor(); |
| 122 | await page.getByRole("link", { name: `Open toolkit ${name}` }).waitFor(); | 123 | await page.getByRole("link", { name: `Open toolkit ${name}` }).waitFor(); |
| 123 | }); | 124 | }); |
| 124 | 125 | ||
| 125 | await step("Open the created toolkit from a direct URL", async () => { | 126 | await step("Open the created toolkit from a direct URL", async () => { |
| 126 | await page.goto(`/plugins/toolkits/${slug}`, { waitUntil: "networkidle" }); | 127 | await page.goto(`/default/toolkits/${slug}`, { waitUntil: "domcontentloaded" }); |
| 127 | expect(page.url()).toMatch(new RegExp(`/plugins/toolkits/${slug}$`)); | 128 | expect(page.url()).toMatch(new RegExp(`/toolkits/${slug}$`)); |
| 128 | await page | 129 | await page |
| 129 | .locator("code") | 130 | .locator("code") |
| 130 | .filter({ hasText: `/mcp/toolkits/${slug}` }) | 131 | .filter({ hasText: `/mcp/toolkits/${slug}` }) |
| @@ -133,9 +134,18 @@ scenario( · 2 unmodified lines | |||
| 133 | expect(await page.getByLabel("New toolkit").count()).toBe(0); | 134 | expect(await page.getByLabel("New toolkit").count()).toBe(0); |
| 134 | }); | 135 | }); |
| 135 | 136 | ||
| 137 | await step("Cancel toolkit deletion from the confirmation modal", async () => { | ||
| 138 | await page.getByRole("button", { name: "Delete toolkit" }).click(); | ||
| 139 | const dialog = page.getByRole("alertdialog", { name: `Delete ${name}?` }); | ||
| 140 | await dialog.waitFor(); | ||
| 141 | await dialog.getByRole("button", { name: "Cancel" }).click(); | ||
| 142 | await dialog.waitFor({ state: "detached" }); | ||
| 143 | await page.getByRole("heading", { name }).waitFor(); | ||
| 144 | }); | ||
| 145 | |||
| 136 | await step("Add a connection to the toolkit", async () => { | 146 | await step("Add a connection to the toolkit", async () => { |
| 137 | await page.getByRole("button", { name: "Add connection to toolkit" }).click(); | 147 | await page.getByRole("button", { name: "Manage toolkit connections" }).click(); |
| 138 | const dialog = page.getByRole("dialog", { name: "Add connection" }); | 148 | const dialog = page.getByRole("dialog", { name: "Manage connections" }); |
| 139 | await dialog.waitFor(); | 149 | await dialog.waitFor(); |
| 140 | await dialog.getByLabel("Search connections and tools").fill("policies.list"); | 150 | await dialog.getByLabel("Search connections and tools").fill("policies.list"); |
| 141 | expect(await dialog.getByRole("button", { name: /^Add tool/ }).count()).toBe(0); | 151 | expect(await dialog.getByRole("button", { name: /^Add tool/ }).count()).toBe(0); |
| @@ -145,6 +155,8 @@ scenario( · 3 unmodified lines | |||
| 145 | .getByRole("button", { name: /^Add connection / }) | 155 | .getByRole("button", { name: /^Add connection / }) |
| 146 | .first() | 156 | .first() |
| 147 | .click(); | 157 | .click(); |
| 158 | await dialog.getByRole("button", { name: /^Remove connection / }).waitFor(); | ||
| 159 | await page.keyboard.press("Escape"); | ||
| 148 | await dialog.waitFor({ state: "hidden" }); | 160 | await dialog.waitFor({ state: "hidden" }); |
| 149 | const toolkitTools = page.getByRole("region", { name: "Toolkit tools" }); | 161 | const toolkitTools = page.getByRole("region", { name: "Toolkit tools" }); |
| 150 | await toolkitTools.waitFor(); | 162 | await toolkitTools.waitFor(); |
| @@ -154,30 +166,39 @@ scenario( · 3 unmodified lines | |||
| 154 | }); | 166 | }); |
| 155 | 167 | ||
| 156 | await step("The add connection list reflects the saved toolkit connection", async () => { | 168 | await step("The add connection list reflects the saved toolkit connection", async () => { |
| 157 | await page.getByRole("button", { name: "Add connection to toolkit" }).click(); | 169 | await page.getByRole("button", { name: "Manage toolkit connections" }).click(); |
| 158 | const dialog = page.getByRole("dialog", { name: "Add connection" }); | 170 | const dialog = page.getByRole("dialog", { name: "Manage connections" }); |
| 159 | await dialog.waitFor(); | 171 | await dialog.waitFor(); |
| 160 | await dialog.getByLabel("Search connections and tools").fill("policies.list"); | 172 | await dialog.getByLabel("Search connections and tools").fill("policies.list"); |
| 161 | await dialog.getByRole("button", { name: /^Connection added / }).waitFor(); | 173 | await dialog.getByRole("button", { name: /^Remove connection / }).waitFor(); |
| 162 | expect(await dialog.getByRole("button", { name: /^Add connection / }).count()).toBe(0); | 174 | expect(await dialog.getByRole("button", { name: /^Add connection / }).count()).toBe(0); |
| 163 | await page.keyboard.press("Escape"); | 175 | await page.keyboard.press("Escape"); |
| 164 | await dialog.waitFor({ state: "hidden" }); | 176 | await dialog.waitFor({ state: "hidden" }); |
| 165 | }); | 177 | }); |
| 166 | 178 | ||
| 167 | await step("Remove the connection from the toolkit tools list", async () => { | 179 | await step("Remove the connection from the manage modal", async () => { |
| 168 | await page | 180 | await page.getByRole("button", { name: "Manage toolkit connections" }).click(); |
| 181 | const removeDialog = page.getByRole("dialog", { name: "Manage connections" }); | ||
| 182 | await removeDialog.waitFor(); | ||
| 183 | await removeDialog.getByLabel("Search connections and tools").fill("policies.list"); | ||
| 184 | await removeDialog | ||
| 169 | .getByRole("button", { name: /^Remove connection / }) | 185 | .getByRole("button", { name: /^Remove connection / }) |
| 170 | .first() | 186 | .first() |
| 171 | .click(); | 187 | .click(); |
| 188 | await removeDialog.getByRole("button", { name: /^Add connection / }).waitFor(); | ||
| 189 | await page.keyboard.press("Escape"); | ||
| 190 | await removeDialog.waitFor({ state: "hidden" }); | ||
| 172 | await page.getByText("No connections added").waitFor(); | 191 | await page.getByText("No connections added").waitFor(); |
| 173 | await page.getByRole("button", { name: "Add connection to toolkit" }).click(); | 192 | await page.getByRole("button", { name: "Manage toolkit connections" }).click(); |
| 174 | const dialog = page.getByRole("dialog", { name: "Add connection" }); | 193 | const dialog = page.getByRole("dialog", { name: "Manage connections" }); |
| 175 | await dialog.waitFor(); | 194 | await dialog.waitFor(); |
| 176 | await dialog.getByLabel("Search connections and tools").fill("policies.list"); | 195 | await dialog.getByLabel("Search connections and tools").fill("policies.list"); |
| 177 | await dialog | 196 | await dialog |
| 178 | .getByRole("button", { name: /^Add connection / }) | 197 | .getByRole("button", { name: /^Add connection / }) |
| 179 | .first() | 198 | .first() |
| 180 | .click(); | 199 | .click(); |
| 200 | await dialog.getByRole("button", { name: /^Remove connection / }).waitFor(); | ||
| 201 | await page.keyboard.press("Escape"); | ||
| 181 | await dialog.waitFor({ state: "hidden" }); | 202 | await dialog.waitFor({ state: "hidden" }); |
| 182 | const toolkitTools = page.getByRole("region", { name: "Toolkit tools" }); | 203 | const toolkitTools = page.getByRole("region", { name: "Toolkit tools" }); |
| 183 | await toolkitTools.getByLabel("Filter tools").fill("policies.list"); | 204 | await toolkitTools.getByLabel("Filter tools").fill("policies.list"); |
| @@ -11,8 +11,10 @@ · 10 unmodified lines | |||
| 11 | import { Route as rootRouteImport } from './routes/__root' | 11 | import { Route as rootRouteImport } from './routes/__root' |
| 12 | import { Route as DotDotDotDotDotDotReactSrcRoutesIndexRouteImport } from './../../react/src/routes/index' | 12 | import { Route as DotDotDotDotDotDotReactSrcRoutesIndexRouteImport } from './../../react/src/routes/index' |
| 13 | import { Route as DotDotDotDotDotDotReactSrcRoutesToolsRouteImport } from './../../react/src/routes/tools' | 13 | import { Route as DotDotDotDotDotDotReactSrcRoutesToolsRouteImport } from './../../react/src/routes/tools' |
| 14 | import { Route as DotDotDotDotDotDotReactSrcRoutesToolkitsRouteImport } from './../../react/src/routes/toolkits' | ||
| 14 | import { Route as SecretsRouteImport } from './routes/app/secrets' | 15 | import { Route as SecretsRouteImport } from './routes/app/secrets' |
| 15 | import { Route as DotDotDotDotDotDotReactSrcRoutesPoliciesRouteImport } from './../../react/src/routes/policies' | 16 | import { Route as DotDotDotDotDotDotReactSrcRoutesPoliciesRouteImport } from './../../react/src/routes/policies' |
| 17 | import { Route as DotDotDotDotDotDotReactSrcRoutesToolkitsDottoolkitSlugRouteImport } from './../../react/src/routes/toolkits.$toolkitSlug' | ||
| 16 | import { Route as DotDotDotDotDotDotReactSrcRoutesResumeDotexecutionIdRouteImport } from './../../react/src/routes/resume.$executionId' | 18 | import { Route as DotDotDotDotDotDotReactSrcRoutesResumeDotexecutionIdRouteImport } from './../../react/src/routes/resume.$executionId' |
| 17 | import { Route as DotDotDotDotDotDotReactSrcRoutesIntegrationsDotnamespaceRouteImport } from './../../react/src/routes/integrations.$namespace' | 19 | import { Route as DotDotDotDotDotDotReactSrcRoutesIntegrationsDotnamespaceRouteImport } from './../../react/src/routes/integrations.$namespace' |
| 18 | import { Route as DotDotDotDotDotDotReactSrcRoutesPluginsDotpluginIdDotsplatRouteImport } from './../../react/src/routes/plugins.$pluginId.$' | 20 | import { Route as DotDotDotDotDotDotReactSrcRoutesPluginsDotpluginIdDotsplatRouteImport } from './../../react/src/routes/plugins.$pluginId.$' |
| @@ -30,6 +32,12 @@ const DotDotDotDotDotDotReactSrcRoutesToolsRoute = · 11 unmodified lines | |||
| 30 | path: '/{-$orgSlug}/tools', | 32 | path: '/{-$orgSlug}/tools', |
| 31 | getParentRoute: () => rootRouteImport, | 33 | getParentRoute: () => rootRouteImport, |
| 32 | } as any) | 34 | } as any) |
| 35 | const DotDotDotDotDotDotReactSrcRoutesToolkitsRoute = | ||
| 36 | DotDotDotDotDotDotReactSrcRoutesToolkitsRouteImport.update({ | ||
| 37 | id: '/{-$orgSlug}/toolkits', | ||
| 38 | path: '/{-$orgSlug}/toolkits', | ||
| 39 | getParentRoute: () => rootRouteImport, | ||
| 40 | } as any) | ||
| 33 | const SecretsRoute = SecretsRouteImport.update({ | 41 | const SecretsRoute = SecretsRouteImport.update({ |
| 34 | id: '/{-$orgSlug}/secrets', | 42 | id: '/{-$orgSlug}/secrets', |
| 35 | path: '/{-$orgSlug}/secrets', | 43 | path: '/{-$orgSlug}/secrets', |
| @@ -41,6 +49,12 @@ const DotDotDotDotDotDotReactSrcRoutesPoliciesRoute = · 5 unmodified lines | |||
| 41 | path: '/{-$orgSlug}/policies', | 49 | path: '/{-$orgSlug}/policies', |
| 42 | getParentRoute: () => rootRouteImport, | 50 | getParentRoute: () => rootRouteImport, |
| 43 | } as any) | 51 | } as any) |
| 52 | const DotDotDotDotDotDotReactSrcRoutesToolkitsDottoolkitSlugRoute = | ||
| 53 | DotDotDotDotDotDotReactSrcRoutesToolkitsDottoolkitSlugRouteImport.update({ | ||
| 54 | id: '/$toolkitSlug', | ||
| 55 | path: '/$toolkitSlug', | ||
| 56 | getParentRoute: () => DotDotDotDotDotDotReactSrcRoutesToolkitsRoute, | ||
| 57 | } as any) | ||
| 44 | const DotDotDotDotDotDotReactSrcRoutesResumeDotexecutionIdRoute = | 58 | const DotDotDotDotDotDotReactSrcRoutesResumeDotexecutionIdRoute = |
| 45 | DotDotDotDotDotDotReactSrcRoutesResumeDotexecutionIdRouteImport.update({ | 59 | DotDotDotDotDotDotReactSrcRoutesResumeDotexecutionIdRouteImport.update({ |
| 46 | id: '/{-$orgSlug}/resume/$executionId', | 60 | id: '/{-$orgSlug}/resume/$executionId', |
| @@ -71,20 +85,24 @@ const DotDotDotDotDotDotReactSrcRoutesIntegrationsDotaddDotpluginKeyRoute = · 24 unmodified lines | |||
| 71 | export interface FileRoutesByFullPath { | 85 | export interface FileRoutesByFullPath { |
| 72 | '/{-$orgSlug}/policies': typeof DotDotDotDotDotDotReactSrcRoutesPoliciesRoute | 86 | '/{-$orgSlug}/policies': typeof DotDotDotDotDotDotReactSrcRoutesPoliciesRoute |
| 73 | '/{-$orgSlug}/secrets': typeof SecretsRoute | 87 | '/{-$orgSlug}/secrets': typeof SecretsRoute |
| 88 | '/{-$orgSlug}/toolkits': typeof DotDotDotDotDotDotReactSrcRoutesToolkitsRouteWithChildren | ||
| 74 | '/{-$orgSlug}/tools': typeof DotDotDotDotDotDotReactSrcRoutesToolsRoute | 89 | '/{-$orgSlug}/tools': typeof DotDotDotDotDotDotReactSrcRoutesToolsRoute |
| 75 | '/{-$orgSlug}/': typeof DotDotDotDotDotDotReactSrcRoutesIndexRoute | 90 | '/{-$orgSlug}/': typeof DotDotDotDotDotDotReactSrcRoutesIndexRoute |
| 76 | '/{-$orgSlug}/integrations/$namespace': typeof DotDotDotDotDotDotReactSrcRoutesIntegrationsDotnamespaceRoute | 91 | '/{-$orgSlug}/integrations/$namespace': typeof DotDotDotDotDotDotReactSrcRoutesIntegrationsDotnamespaceRoute |
| 77 | '/{-$orgSlug}/resume/$executionId': typeof DotDotDotDotDotDotReactSrcRoutesResumeDotexecutionIdRoute | 92 | '/{-$orgSlug}/resume/$executionId': typeof DotDotDotDotDotDotReactSrcRoutesResumeDotexecutionIdRoute |
| 93 | '/{-$orgSlug}/toolkits/$toolkitSlug': typeof DotDotDotDotDotDotReactSrcRoutesToolkitsDottoolkitSlugRoute | ||
| 78 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotDotDotDotDotDotReactSrcRoutesIntegrationsDotaddDotpluginKeyRoute | 94 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotDotDotDotDotDotReactSrcRoutesIntegrationsDotaddDotpluginKeyRoute |
| 79 | '/{-$orgSlug}/plugins/$pluginId/$': typeof DotDotDotDotDotDotReactSrcRoutesPluginsDotpluginIdDotsplatRoute | 95 | '/{-$orgSlug}/plugins/$pluginId/$': typeof DotDotDotDotDotDotReactSrcRoutesPluginsDotpluginIdDotsplatRoute |
| 80 | } | 96 | } |
| 81 | export interface FileRoutesByTo { | 97 | export interface FileRoutesByTo { |
| 82 | '/{-$orgSlug}/policies': typeof DotDotDotDotDotDotReactSrcRoutesPoliciesRoute | 98 | '/{-$orgSlug}/policies': typeof DotDotDotDotDotDotReactSrcRoutesPoliciesRoute |
| 83 | '/{-$orgSlug}/secrets': typeof SecretsRoute | 99 | '/{-$orgSlug}/secrets': typeof SecretsRoute |
| 100 | '/{-$orgSlug}/toolkits': typeof DotDotDotDotDotDotReactSrcRoutesToolkitsRouteWithChildren | ||
| 84 | '/{-$orgSlug}/tools': typeof DotDotDotDotDotDotReactSrcRoutesToolsRoute | 101 | '/{-$orgSlug}/tools': typeof DotDotDotDotDotDotReactSrcRoutesToolsRoute |
| 85 | '/{-$orgSlug}': typeof DotDotDotDotDotDotReactSrcRoutesIndexRoute | 102 | '/{-$orgSlug}': typeof DotDotDotDotDotDotReactSrcRoutesIndexRoute |
| 86 | '/{-$orgSlug}/integrations/$namespace': typeof DotDotDotDotDotDotReactSrcRoutesIntegrationsDotnamespaceRoute | 103 | '/{-$orgSlug}/integrations/$namespace': typeof DotDotDotDotDotDotReactSrcRoutesIntegrationsDotnamespaceRoute |
| 87 | '/{-$orgSlug}/resume/$executionId': typeof DotDotDotDotDotDotReactSrcRoutesResumeDotexecutionIdRoute | 104 | '/{-$orgSlug}/resume/$executionId': typeof DotDotDotDotDotDotReactSrcRoutesResumeDotexecutionIdRoute |
| 105 | '/{-$orgSlug}/toolkits/$toolkitSlug': typeof DotDotDotDotDotDotReactSrcRoutesToolkitsDottoolkitSlugRoute | ||
| 88 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotDotDotDotDotDotReactSrcRoutesIntegrationsDotaddDotpluginKeyRoute | 106 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotDotDotDotDotDotReactSrcRoutesIntegrationsDotaddDotpluginKeyRoute |
| 89 | '/{-$orgSlug}/plugins/$pluginId/$': typeof DotDotDotDotDotDotReactSrcRoutesPluginsDotpluginIdDotsplatRoute | 107 | '/{-$orgSlug}/plugins/$pluginId/$': typeof DotDotDotDotDotDotReactSrcRoutesPluginsDotpluginIdDotsplatRoute |
| 90 | } | 108 | } |
| @@ -92,10 +110,12 @@ export interface FileRoutesById { · 1 unmodified line | |||
| 92 | __root__: typeof rootRouteImport | 110 | __root__: typeof rootRouteImport |
| 93 | '/{-$orgSlug}/policies': typeof DotDotDotDotDotDotReactSrcRoutesPoliciesRoute | 111 | '/{-$orgSlug}/policies': typeof DotDotDotDotDotDotReactSrcRoutesPoliciesRoute |
| 94 | '/{-$orgSlug}/secrets': typeof SecretsRoute | 112 | '/{-$orgSlug}/secrets': typeof SecretsRoute |
| 113 | '/{-$orgSlug}/toolkits': typeof DotDotDotDotDotDotReactSrcRoutesToolkitsRouteWithChildren | ||
| 95 | '/{-$orgSlug}/tools': typeof DotDotDotDotDotDotReactSrcRoutesToolsRoute | 114 | '/{-$orgSlug}/tools': typeof DotDotDotDotDotDotReactSrcRoutesToolsRoute |
| 96 | '/{-$orgSlug}/': typeof DotDotDotDotDotDotReactSrcRoutesIndexRoute | 115 | '/{-$orgSlug}/': typeof DotDotDotDotDotDotReactSrcRoutesIndexRoute |
| 97 | '/{-$orgSlug}/integrations/$namespace': typeof DotDotDotDotDotDotReactSrcRoutesIntegrationsDotnamespaceRoute | 116 | '/{-$orgSlug}/integrations/$namespace': typeof DotDotDotDotDotDotReactSrcRoutesIntegrationsDotnamespaceRoute |
| 98 | '/{-$orgSlug}/resume/$executionId': typeof DotDotDotDotDotDotReactSrcRoutesResumeDotexecutionIdRoute | 117 | '/{-$orgSlug}/resume/$executionId': typeof DotDotDotDotDotDotReactSrcRoutesResumeDotexecutionIdRoute |
| 118 | '/{-$orgSlug}/toolkits/$toolkitSlug': typeof DotDotDotDotDotDotReactSrcRoutesToolkitsDottoolkitSlugRoute | ||
| 99 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotDotDotDotDotDotReactSrcRoutesIntegrationsDotaddDotpluginKeyRoute | 119 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotDotDotDotDotDotReactSrcRoutesIntegrationsDotaddDotpluginKeyRoute |
| 100 | '/{-$orgSlug}/plugins/$pluginId/$': typeof DotDotDotDotDotDotReactSrcRoutesPluginsDotpluginIdDotsplatRoute | 120 | '/{-$orgSlug}/plugins/$pluginId/$': typeof DotDotDotDotDotDotReactSrcRoutesPluginsDotpluginIdDotsplatRoute |
| 101 | } | 121 | } |
| @@ -104,30 +124,36 @@ export interface FileRouteTypes { · 2 unmodified lines | |||
| 104 | fullPaths: | 124 | fullPaths: |
| 105 | | '/{-$orgSlug}/policies' | 125 | | '/{-$orgSlug}/policies' |
| 106 | | '/{-$orgSlug}/secrets' | 126 | | '/{-$orgSlug}/secrets' |
| 127 | | '/{-$orgSlug}/toolkits' | ||
| 107 | | '/{-$orgSlug}/tools' | 128 | | '/{-$orgSlug}/tools' |
| 108 | | '/{-$orgSlug}/' | 129 | | '/{-$orgSlug}/' |
| 109 | | '/{-$orgSlug}/integrations/$namespace' | 130 | | '/{-$orgSlug}/integrations/$namespace' |
| 110 | | '/{-$orgSlug}/resume/$executionId' | 131 | | '/{-$orgSlug}/resume/$executionId' |
| 132 | | '/{-$orgSlug}/toolkits/$toolkitSlug' | ||
| 111 | | '/{-$orgSlug}/integrations/add/$pluginKey' | 133 | | '/{-$orgSlug}/integrations/add/$pluginKey' |
| 112 | | '/{-$orgSlug}/plugins/$pluginId/$' | 134 | | '/{-$orgSlug}/plugins/$pluginId/$' |
| 113 | fileRoutesByTo: FileRoutesByTo | 135 | fileRoutesByTo: FileRoutesByTo |
| 114 | to: | 136 | to: |
| 115 | | '/{-$orgSlug}/policies' | 137 | | '/{-$orgSlug}/policies' |
| 116 | | '/{-$orgSlug}/secrets' | 138 | | '/{-$orgSlug}/secrets' |
| 139 | | '/{-$orgSlug}/toolkits' | ||
| 117 | | '/{-$orgSlug}/tools' | 140 | | '/{-$orgSlug}/tools' |
| 118 | | '/{-$orgSlug}' | 141 | | '/{-$orgSlug}' |
| 119 | | '/{-$orgSlug}/integrations/$namespace' | 142 | | '/{-$orgSlug}/integrations/$namespace' |
| 120 | | '/{-$orgSlug}/resume/$executionId' | 143 | | '/{-$orgSlug}/resume/$executionId' |
| 144 | | '/{-$orgSlug}/toolkits/$toolkitSlug' | ||
| 121 | | '/{-$orgSlug}/integrations/add/$pluginKey' | 145 | | '/{-$orgSlug}/integrations/add/$pluginKey' |
| 122 | | '/{-$orgSlug}/plugins/$pluginId/$' | 146 | | '/{-$orgSlug}/plugins/$pluginId/$' |
| 123 | id: | 147 | id: |
| 124 | | '__root__' | 148 | | '__root__' |
| 125 | | '/{-$orgSlug}/policies' | 149 | | '/{-$orgSlug}/policies' |
| 126 | | '/{-$orgSlug}/secrets' | 150 | | '/{-$orgSlug}/secrets' |
| 151 | | '/{-$orgSlug}/toolkits' | ||
| 127 | | '/{-$orgSlug}/tools' | 152 | | '/{-$orgSlug}/tools' |
| 128 | | '/{-$orgSlug}/' | 153 | | '/{-$orgSlug}/' |
| 129 | | '/{-$orgSlug}/integrations/$namespace' | 154 | | '/{-$orgSlug}/integrations/$namespace' |
| 130 | | '/{-$orgSlug}/resume/$executionId' | 155 | | '/{-$orgSlug}/resume/$executionId' |
| 156 | | '/{-$orgSlug}/toolkits/$toolkitSlug' | ||
| 131 | | '/{-$orgSlug}/integrations/add/$pluginKey' | 157 | | '/{-$orgSlug}/integrations/add/$pluginKey' |
| 132 | | '/{-$orgSlug}/plugins/$pluginId/$' | 158 | | '/{-$orgSlug}/plugins/$pluginId/$' |
| 133 | fileRoutesById: FileRoutesById | 159 | fileRoutesById: FileRoutesById |
| @@ -135,6 +161,7 @@ export interface FileRouteTypes { · 1 unmodified line | |||
| 135 | export interface RootRouteChildren { | 161 | export interface RootRouteChildren { |
| 136 | DotDotDotDotDotDotReactSrcRoutesPoliciesRoute: typeof DotDotDotDotDotDotReactSrcRoutesPoliciesRoute | 162 | DotDotDotDotDotDotReactSrcRoutesPoliciesRoute: typeof DotDotDotDotDotDotReactSrcRoutesPoliciesRoute |
| 137 | SecretsRoute: typeof SecretsRoute | 163 | SecretsRoute: typeof SecretsRoute |
| 164 | DotDotDotDotDotDotReactSrcRoutesToolkitsRoute: typeof DotDotDotDotDotDotReactSrcRoutesToolkitsRouteWithChildren | ||
| 138 | DotDotDotDotDotDotReactSrcRoutesToolsRoute: typeof DotDotDotDotDotDotReactSrcRoutesToolsRoute | 165 | DotDotDotDotDotDotReactSrcRoutesToolsRoute: typeof DotDotDotDotDotDotReactSrcRoutesToolsRoute |
| 139 | DotDotDotDotDotDotReactSrcRoutesIndexRoute: typeof DotDotDotDotDotDotReactSrcRoutesIndexRoute | 166 | DotDotDotDotDotDotReactSrcRoutesIndexRoute: typeof DotDotDotDotDotDotReactSrcRoutesIndexRoute |
| 140 | DotDotDotDotDotDotReactSrcRoutesIntegrationsDotnamespaceRoute: typeof DotDotDotDotDotDotReactSrcRoutesIntegrationsDotnamespaceRoute | 167 | DotDotDotDotDotDotReactSrcRoutesIntegrationsDotnamespaceRoute: typeof DotDotDotDotDotDotReactSrcRoutesIntegrationsDotnamespaceRoute |
| @@ -159,6 +186,13 @@ declare module '@tanstack/react-router' { · 18 unmodified lines | |||
| 159 | preLoaderRoute: typeof DotDotDotDotDotDotReactSrcRoutesToolsRouteImport | 186 | preLoaderRoute: typeof DotDotDotDotDotDotReactSrcRoutesToolsRouteImport |
| 160 | parentRoute: typeof rootRouteImport | 187 | parentRoute: typeof rootRouteImport |
| 161 | } | 188 | } |
| 189 | '/{-$orgSlug}/toolkits': { | ||
| 190 | id: '/{-$orgSlug}/toolkits' | ||
| 191 | path: '/{-$orgSlug}/toolkits' | ||
| 192 | fullPath: '/{-$orgSlug}/toolkits' | ||
| 193 | preLoaderRoute: typeof DotDotDotDotDotDotReactSrcRoutesToolkitsRouteImport | ||
| 194 | parentRoute: typeof rootRouteImport | ||
| 195 | } | ||
| 162 | '/{-$orgSlug}/secrets': { | 196 | '/{-$orgSlug}/secrets': { |
| 163 | id: '/{-$orgSlug}/secrets' | 197 | id: '/{-$orgSlug}/secrets' |
| 164 | path: '/{-$orgSlug}/secrets' | 198 | path: '/{-$orgSlug}/secrets' |
| @@ -173,6 +207,13 @@ declare module '@tanstack/react-router' { · 8 unmodified lines | |||
| 173 | preLoaderRoute: typeof DotDotDotDotDotDotReactSrcRoutesPoliciesRouteImport | 207 | preLoaderRoute: typeof DotDotDotDotDotDotReactSrcRoutesPoliciesRouteImport |
| 174 | parentRoute: typeof rootRouteImport | 208 | parentRoute: typeof rootRouteImport |
| 175 | } | 209 | } |
| 210 | '/{-$orgSlug}/toolkits/$toolkitSlug': { | ||
| 211 | id: '/{-$orgSlug}/toolkits/$toolkitSlug' | ||
| 212 | path: '/$toolkitSlug' | ||
| 213 | fullPath: '/{-$orgSlug}/toolkits/$toolkitSlug' | ||
| 214 | preLoaderRoute: typeof DotDotDotDotDotDotReactSrcRoutesToolkitsDottoolkitSlugRouteImport | ||
| 215 | parentRoute: typeof DotDotDotDotDotDotReactSrcRoutesToolkitsRoute | ||
| 216 | } | ||
| 176 | '/{-$orgSlug}/resume/$executionId': { | 217 | '/{-$orgSlug}/resume/$executionId': { |
| 177 | id: '/{-$orgSlug}/resume/$executionId' | 218 | id: '/{-$orgSlug}/resume/$executionId' |
| 178 | path: '/{-$orgSlug}/resume/$executionId' | 219 | path: '/{-$orgSlug}/resume/$executionId' |
| @@ -204,10 +245,27 @@ declare module '@tanstack/react-router' { · 25 unmodified lines | |||
| 204 | } | 245 | } |
| 205 | } | 246 | } |
| 206 | 247 | ||
| 248 | interface DotDotDotDotDotDotReactSrcRoutesToolkitsRouteChildren { | ||
| 249 | DotDotDotDotDotDotReactSrcRoutesToolkitsDottoolkitSlugRoute: typeof DotDotDotDotDotDotReactSrcRoutesToolkitsDottoolkitSlugRoute | ||
| 250 | } | ||
| 251 | |||
| 252 | const DotDotDotDotDotDotReactSrcRoutesToolkitsRouteChildren: DotDotDotDotDotDotReactSrcRoutesToolkitsRouteChildren = | ||
| 253 | { | ||
| 254 | DotDotDotDotDotDotReactSrcRoutesToolkitsDottoolkitSlugRoute: | ||
| 255 | DotDotDotDotDotDotReactSrcRoutesToolkitsDottoolkitSlugRoute, | ||
| 256 | } | ||
| 257 | |||
| 258 | const DotDotDotDotDotDotReactSrcRoutesToolkitsRouteWithChildren = | ||
| 259 | DotDotDotDotDotDotReactSrcRoutesToolkitsRoute._addFileChildren( | ||
| 260 | DotDotDotDotDotDotReactSrcRoutesToolkitsRouteChildren, | ||
| 261 | ) | ||
| 262 | |||
| 207 | const rootRouteChildren: RootRouteChildren = { | 263 | const rootRouteChildren: RootRouteChildren = { |
| 208 | DotDotDotDotDotDotReactSrcRoutesPoliciesRoute: | 264 | DotDotDotDotDotDotReactSrcRoutesPoliciesRoute: |
| 209 | DotDotDotDotDotDotReactSrcRoutesPoliciesRoute, | 265 | DotDotDotDotDotDotReactSrcRoutesPoliciesRoute, |
| 210 | SecretsRoute: SecretsRoute, | 266 | SecretsRoute: SecretsRoute, |
| 267 | DotDotDotDotDotDotReactSrcRoutesToolkitsRoute: | ||
| 268 | DotDotDotDotDotDotReactSrcRoutesToolkitsRouteWithChildren, | ||
| 211 | DotDotDotDotDotDotReactSrcRoutesToolsRoute: | 269 | DotDotDotDotDotDotReactSrcRoutesToolsRoute: |
| 212 | DotDotDotDotDotDotReactSrcRoutesToolsRoute, | 270 | DotDotDotDotDotDotReactSrcRoutesToolsRoute, |
| 213 | DotDotDotDotDotDotReactSrcRoutesIndexRoute: | 271 | DotDotDotDotDotDotReactSrcRoutesIndexRoute: |
| @@ -342,6 +342,7 @@ function SidebarContent(props: { · 341 unmodified lines | |||
| 342 | const isHome = props.pathname === "/"; | 342 | const isHome = props.pathname === "/"; |
| 343 | const isSecrets = props.pathname === "/secrets"; | 343 | const isSecrets = props.pathname === "/secrets"; |
| 344 | const isPolicies = props.pathname === "/policies"; | 344 | const isPolicies = props.pathname === "/policies"; |
| 345 | const isToolkits = props.pathname === "/toolkits" || props.pathname.startsWith("/toolkits/"); | ||
| 345 | 346 | ||
| 346 | return ( | 347 | return ( |
| 347 | <> | 348 | <> |
| @@ -381,6 +382,12 @@ function SidebarContent(props: { · 33 unmodified lines | |||
| 381 | active={isPolicies} | 382 | active={isPolicies} |
| 382 | onNavigate={props.onNavigate} | 383 | onNavigate={props.onNavigate} |
| 383 | /> | 384 | /> |
| 385 | <NavItem | ||
| 386 | to="/{-$orgSlug}/toolkits" | ||
| 387 | label="Toolkits" | ||
| 388 | active={isToolkits} | ||
| 389 | onNavigate={props.onNavigate} | ||
| 390 | /> | ||
| 384 | 391 | ||
| 385 | <PluginNav pathname={props.pathname} onNavigate={props.onNavigate} /> | 392 | <PluginNav pathname={props.pathname} onNavigate={props.onNavigate} /> |
| 386 | 393 | ||
| @@ -8,7 +8,6 @@ export default defineClientPlugin({ · 7 unmodified lines | |||
| 8 | { | 8 | { |
| 9 | path: "/", | 9 | path: "/", |
| 10 | component: ToolkitsPage, | 10 | component: ToolkitsPage, |
| 11 | nav: { label: "Toolkits" }, | ||
| 12 | }, | 11 | }, |
| 13 | { | 12 | { |
| 14 | path: "/$toolkitSlug", | 13 | path: "/$toolkitSlug", |
| @@ -1,17 +1,9 @@ | |||
| 1 | import { useId, useMemo, useState } from "react"; | 1 | import { useId, useMemo, useState } from "react"; |
| 2 | import { Link, useNavigate, useParams } from "@tanstack/react-router"; | 2 | import { Link, useNavigate } from "@tanstack/react-router"; |
| 3 | import { useAtomSet, useAtomValue } from "@effect/atom-react"; | 3 | import { useAtomSet, useAtomValue } from "@effect/atom-react"; |
| 4 | import * as Atom from "effect/unstable/reactivity/Atom"; | 4 | import * as Atom from "effect/unstable/reactivity/Atom"; |
| 5 | import * as AsyncResult from "effect/unstable/reactivity/AsyncResult"; | 5 | import * as AsyncResult from "effect/unstable/reactivity/AsyncResult"; |
| 6 | import { | 6 | import { ArrowLeftIcon, BoxIcon, PlugIcon, PlusIcon, SearchIcon, Trash2Icon } from "lucide-react"; |
| 7 | ArrowLeftIcon, | ||
| 8 | BoxIcon, | ||
| 9 | CheckIcon, | ||
| 10 | PlugIcon, | ||
| 11 | PlusIcon, | ||
| 12 | SearchIcon, | ||
| 13 | Trash2Icon, | ||
| 14 | } from "lucide-react"; | ||
| 15 | import { | 7 | import { |
| 16 | createPluginAtomClient, | 8 | createPluginAtomClient, |
| 17 | useIntegrationPlugins, | 9 | useIntegrationPlugins, |
| @@ -28,15 +20,27 @@ import { · 10 unmodified lines | |||
| 28 | } from "@executor-js/sdk/shared"; | 20 | } from "@executor-js/sdk/shared"; |
| 29 | import { integrationsOptimisticAtom, toolsAllAtom } from "@executor-js/react/api/atoms"; | 21 | import { integrationsOptimisticAtom, toolsAllAtom } from "@executor-js/react/api/atoms"; |
| 30 | import { ReactivityKey } from "@executor-js/react/api/reactivity-keys"; | 22 | import { ReactivityKey } from "@executor-js/react/api/reactivity-keys"; |
| 23 | import { useOrganizationSlug } from "@executor-js/react/api/organization-context"; | ||
| 31 | import { | 24 | import { |
| 32 | getExecutorApiBaseUrl, | 25 | getExecutorApiBaseUrl, |
| 33 | getExecutorOrganizationHeaders, | 26 | getExecutorOrganizationHeaders, |
| 34 | getExecutorServerAuthorizationHeader, | 27 | getExecutorServerAuthorizationHeader, |
| 35 | } from "@executor-js/react/api/server-connection"; | 28 | } from "@executor-js/react/api/server-connection"; |
| 36 | import { ownerLabel } from "@executor-js/react/api/owner-display"; | 29 | import { ownerLabel, useOwnerDisplay } from "@executor-js/react/api/owner-display"; |
| 37 | import { Badge } from "@executor-js/react/components/badge"; | 30 | import { Badge } from "@executor-js/react/components/badge"; |
| 38 | import { Button } from "@executor-js/react/components/button"; | 31 | import { Button } from "@executor-js/react/components/button"; |
| 39 | import { CopyButton } from "@executor-js/react/components/copy-button"; | 32 | import { CopyButton } from "@executor-js/react/components/copy-button"; |
| 33 | import { | ||
| 34 | AlertDialog, | ||
| 35 | AlertDialogAction, | ||
| 36 | AlertDialogCancel, | ||
| 37 | AlertDialogContent, | ||
| 38 | AlertDialogDescription, | ||
| 39 | AlertDialogFooter, | ||
| 40 | AlertDialogHeader, | ||
| 41 | AlertDialogTitle, | ||
| 42 | AlertDialogTrigger, | ||
| 43 | } from "@executor-js/react/components/alert-dialog"; | ||
| 40 | import { | 44 | import { |
| 41 | IntegrationFavicon, | 45 | IntegrationFavicon, |
| 42 | integrationPresetIconUrl, | 46 | integrationPresetIconUrl, |
| @@ -294,6 +298,9 @@ const compareTools = (a: ToolRow, b: ToolRow): number => · 251 unmodified lines | |||
| 294 | const connectionTitle = (group: ToolkitConnectionGroup): string => | 298 | const connectionTitle = (group: ToolkitConnectionGroup): string => |
| 295 | `${ownerLabel(group.owner)} ${group.integration} / ${group.connection}`; | 299 | `${ownerLabel(group.owner)} ${group.integration} / ${group.connection}`; |
| 296 | 300 | ||
| 301 | const connectionTitleForHost = (group: ToolkitConnectionGroup, showOwnerLabels: boolean): string => | ||
| 302 | showOwnerLabels ? connectionTitle(group) : `${group.integration} / ${group.connection}`; | ||
| 303 | |||
| 297 | const connectionDisplayTitle = (group: ToolkitConnectionGroup, meta: IntegrationMeta): string => | 304 | const connectionDisplayTitle = (group: ToolkitConnectionGroup, meta: IntegrationMeta): string => |
| 298 | group.connection === "built-in" || group.connection === "default" ? meta.name : group.connection; | 305 | group.connection === "built-in" || group.connection === "default" ? meta.name : group.connection; |
| 299 | 306 | ||
| @@ -302,6 +309,15 @@ const connectionDisplaySubtitle = (group: ToolkitConnectionGroup, meta: Integrat · 2 unmodified lines | |||
| 302 | ? `${group.tools.length} ${group.tools.length === 1 ? "tool" : "tools"}` | 309 | ? `${group.tools.length} ${group.tools.length === 1 ? "tool" : "tools"}` |
| 303 | : `${meta.name} · ${group.tools.length} ${group.tools.length === 1 ? "tool" : "tools"}`; | 310 | : `${meta.name} · ${group.tools.length} ${group.tools.length === 1 ? "tool" : "tools"}`; |
| 304 | 311 | ||
| 312 | const connectionDisplaySubtitleForHost = ( | ||
| 313 | group: ToolkitConnectionGroup, | ||
| 314 | meta: IntegrationMeta, | ||
| 315 | showOwnerLabels: boolean, | ||
| 316 | ): string => { | ||
| 317 | const subtitle = connectionDisplaySubtitle(group, meta); | ||
| 318 | return showOwnerLabels ? `${ownerLabel(group.owner)} · ${subtitle}` : subtitle; | ||
| 319 | }; | ||
| 320 | |||
| 305 | const integrationMetaFor = ( | 321 | const integrationMetaFor = ( |
| 306 | group: ToolkitConnectionGroup, | 322 | group: ToolkitConnectionGroup, |
| 307 | integrations: readonly Integration[], | 323 | integrations: readonly Integration[], |
| @@ -340,6 +356,7 @@ const configuredConnectionViews = ( · 32 unmodified lines | |||
| 340 | connectionGroups: readonly ToolkitConnectionGroup[], | 356 | connectionGroups: readonly ToolkitConnectionGroup[], |
| 341 | integrations: readonly Integration[], | 357 | integrations: readonly Integration[], |
| 342 | integrationPlugins: readonly IntegrationPlugin[], | 358 | integrationPlugins: readonly IntegrationPlugin[], |
| 359 | showOwnerLabels: boolean, | ||
| 343 | ): readonly ConfiguredConnectionView[] => | 360 | ): readonly ConfiguredConnectionView[] => |
| 344 | connections.map((connection) => { | 361 | connections.map((connection) => { |
| 345 | const group = connectionGroups.find((candidate) => | 362 | const group = connectionGroups.find((candidate) => |
| @@ -358,7 +375,7 @@ const configuredConnectionViews = ( · 12 unmodified lines | |||
| 358 | return { | 375 | return { |
| 359 | id: connection.id, | 376 | id: connection.id, |
| 360 | title: connectionDisplayTitle(group, meta), | 377 | title: connectionDisplayTitle(group, meta), |
| 361 | subtitle: `${ownerLabel(group.owner)} · ${connectionDisplaySubtitle(group, meta)}`, | 378 | subtitle: connectionDisplaySubtitleForHost(group, meta, showOwnerLabels), |
| 362 | pattern: connection.pattern, | 379 | pattern: connection.pattern, |
| 363 | sourceId: meta.sourceId, | 380 | sourceId: meta.sourceId, |
| 364 | icon: meta.icon, | 381 | icon: meta.icon, |
| @@ -434,7 +451,7 @@ function ToolkitConnectionIconStack(props: { connections: readonly ConfiguredCon · 69 unmodified lines | |||
| 434 | const connectionCountLabel = (count: number): string => | 451 | const connectionCountLabel = (count: number): string => |
| 435 | count === 0 ? "No connections" : `${count} ${count === 1 ? "connection" : "connections"}`; | 452 | count === 0 ? "No connections" : `${count} ${count === 1 ? "connection" : "connections"}`; |
| 436 | 453 | ||
| 437 | function ToolkitTile(props: { pluginId: string; toolkit: ToolkitResponse }) { | 454 | function ToolkitTile(props: { showOwnerLabels: boolean; toolkit: ToolkitResponse }) { |
| 438 | const toolkit = props.toolkit; | 455 | const toolkit = props.toolkit; |
| 439 | const tools = useAtomValue(toolsAllAtom); | 456 | const tools = useAtomValue(toolsAllAtom); |
| 440 | const integrations = useAtomValue(integrationsOptimisticAtom); | 457 | const integrations = useAtomValue(integrationsOptimisticAtom); |
| @@ -464,12 +481,13 @@ function ToolkitTile(props: { pluginId: string; toolkit: ToolkitResponse }) { · 23 unmodified lines | |||
| 464 | connectionGroups, | 481 | connectionGroups, |
| 465 | integrationRows, | 482 | integrationRows, |
| 466 | integrationPlugins, | 483 | integrationPlugins, |
| 484 | props.showOwnerLabels, | ||
| 467 | ) | 485 | ) |
| 468 | : []; | 486 | : []; |
| 469 | return ( | 487 | return ( |
| 470 | <Link | 488 | <Link |
| 471 | to="/{-$orgSlug}/plugins/$pluginId/$" | 489 | to="/{-$orgSlug}/toolkits/$toolkitSlug" |
| 472 | params={{ pluginId: props.pluginId, _splat: toolkit.slug }} | 490 | params={{ toolkitSlug: toolkit.slug }} |
| 473 | aria-label={`Open toolkit ${toolkit.name}`} | 491 | aria-label={`Open toolkit ${toolkit.name}`} |
| 474 | className="group flex min-h-36 min-w-0 self-start flex-col justify-between rounded-md border border-border/70 bg-card p-3.5 text-left text-card-foreground shadow-xs transition-[border-color,background-color,box-shadow] hover:border-foreground/25 hover:bg-muted/20 hover:shadow-sm focus-visible:ring-[3px] focus-visible:ring-ring/30 focus-visible:outline-none" | 492 | className="group flex min-h-36 min-w-0 self-start flex-col justify-between rounded-md border border-border/70 bg-card p-3.5 text-left text-card-foreground shadow-xs transition-[border-color,background-color,box-shadow] hover:border-foreground/25 hover:bg-muted/20 hover:shadow-sm focus-visible:ring-[3px] focus-visible:ring-ring/30 focus-visible:outline-none" |
| 475 | style={toolkitCardStyle} | 493 | style={toolkitCardStyle} |
| @@ -491,12 +509,18 @@ function ToolkitTile(props: { pluginId: string; toolkit: ToolkitResponse }) { · 15 unmodified lines | |||
| 491 | ); | 509 | ); |
| 492 | } | 510 | } |
| 493 | 511 | ||
| 494 | const addToolkitScopeLabel = (owner: Owner): string => (owner === "org" ? "workspace" : "personal"); | 512 | const addToolkitScopeLabel = (owner: Owner, showOwnerLabels: boolean): string => |
| 495 | const addToolkitTitle = (owner: Owner): string => | 513 | showOwnerLabels ? (owner === "org" ? "workspace" : "personal") : ""; |
| 496 | owner === "org" ? "New workspace toolkit" : "New personal toolkit"; | 514 | const addToolkitTitle = (owner: Owner, showOwnerLabels: boolean): string => |
| 515 | showOwnerLabels | ||
| 516 | ? owner === "org" | ||
| 517 | ? "New workspace toolkit" | ||
| 518 | : "New personal toolkit" | ||
| 519 | : "New toolkit"; | ||
| 497 | 520 | ||
| 498 | function CreateToolkitDialog(props: { | 521 | function CreateToolkitDialog(props: { |
| 499 | owner: Owner; | 522 | owner: Owner; |
| 523 | showOwnerLabels: boolean; | ||
| 500 | open: boolean; | 524 | open: boolean; |
| 501 | onOpenChange: (open: boolean) => void; | 525 | onOpenChange: (open: boolean) => void; |
| 502 | onCreate: (input: { owner: Owner; name: string }) => Promise<void>; | 526 | onCreate: (input: { owner: Owner; name: string }) => Promise<void>; |
| @@ -504,7 +528,7 @@ function CreateToolkitDialog(props: { · 1 unmodified line | |||
| 504 | const inputId = useId(); | 528 | const inputId = useId(); |
| 505 | const [name, setName] = useState(""); | 529 | const [name, setName] = useState(""); |
| 506 | const trimmed = name.trim(); | 530 | const trimmed = name.trim(); |
| 507 | const title = addToolkitTitle(props.owner); | 531 | const title = addToolkitTitle(props.owner, props.showOwnerLabels); |
| 508 | 532 | ||
| 509 | const submit = async () => { | 533 | const submit = async () => { |
| 510 | if (!trimmed) return; | 534 | if (!trimmed) return; |
| @@ -568,14 +592,14 @@ function CreateToolkitDialog(props: { · 57 unmodified lines | |||
| 568 | ); | 592 | ); |
| 569 | } | 593 | } |
| 570 | 594 | ||
| 571 | function AddToolkitCard(props: { owner: Owner; onClick: () => void }) { | 595 | function AddToolkitCard(props: { owner: Owner; showOwnerLabels: boolean; onClick: () => void }) { |
| 572 | const scopeLabel = addToolkitScopeLabel(props.owner); | 596 | const scopeLabel = addToolkitScopeLabel(props.owner, props.showOwnerLabels); |
| 573 | return ( | 597 | return ( |
| 574 | <Button | 598 | <Button |
| 575 | type="button" | 599 | type="button" |
| 576 | variant="ghost" | 600 | variant="ghost" |
| 577 | onClick={props.onClick} | 601 | onClick={props.onClick} |
| 578 | aria-label={`Add ${scopeLabel} toolkit`} | 602 | aria-label={scopeLabel ? `Add ${scopeLabel} toolkit` : "Add toolkit"} |
| 579 | className="group flex h-auto min-h-36 min-w-0 self-start items-center justify-center rounded-md border border-dashed border-border/75 bg-card/40 p-0 text-muted-foreground transition-[border-color,background-color,box-shadow,color] hover:border-foreground/25 hover:bg-muted/20 hover:text-foreground hover:shadow-sm focus-visible:ring-[3px] focus-visible:ring-ring/30 focus-visible:outline-none" | 603 | className="group flex h-auto min-h-36 min-w-0 self-start items-center justify-center rounded-md border border-dashed border-border/75 bg-card/40 p-0 text-muted-foreground transition-[border-color,background-color,box-shadow,color] hover:border-foreground/25 hover:bg-muted/20 hover:text-foreground hover:shadow-sm focus-visible:ring-[3px] focus-visible:ring-ring/30 focus-visible:outline-none" |
| 580 | style={toolkitCardStyle} | 604 | style={toolkitCardStyle} |
| 581 | > | 605 | > |
| @@ -593,9 +617,9 @@ function AddToolkitCard(props: { owner: Owner; onClick: () => void }) { · 11 unmodified lines | |||
| 593 | } | 617 | } |
| 594 | 618 | ||
| 595 | function ToolkitSection(props: { | 619 | function ToolkitSection(props: { |
| 596 | pluginId: string; | ||
| 597 | owner: Owner; | 620 | owner: Owner; |
| 598 | title: string; | 621 | title?: string; |
| 622 | showOwnerLabels: boolean; | ||
| 599 | toolkits: readonly ToolkitResponse[]; | 623 | toolkits: readonly ToolkitResponse[]; |
| 600 | onCreate: (input: { owner: Owner; name: string }) => Promise<void>; | 624 | onCreate: (input: { owner: Owner; name: string }) => Promise<void>; |
| 601 | }) { | 625 | }) { |
| @@ -604,24 +628,31 @@ function ToolkitSection(props: { · 2 unmodified lines | |||
| 604 | const openCreate = () => setCreateOpen(true); | 628 | const openCreate = () => setCreateOpen(true); |
| 605 | return ( | 629 | return ( |
| 606 | <section className="space-y-3"> | 630 | <section className="space-y-3"> |
| 607 | <div className="border-b border-border/60 pb-2"> | 631 | {props.title ? ( |
| 608 | <h2 className="text-xs font-semibold uppercase tracking-widest text-muted-foreground"> | 632 | <div className="border-b border-border/60 pb-2"> |
| 609 | {props.title} | 633 | <h2 className="text-xs font-semibold uppercase tracking-widest text-muted-foreground"> |
| 610 | </h2> | 634 | {props.title} |
| 611 | </div> | 635 | </h2> |
| 636 | </div> | ||
| 637 | ) : null} | ||
| 612 | 638 | ||
| 613 | <div | 639 | <div |
| 614 | className="grid content-start grid-cols-1 gap-3 sm:grid-cols-2 md:grid-cols-3" | 640 | className="grid content-start grid-cols-1 gap-3 sm:grid-cols-2 md:grid-cols-3" |
| 615 | style={toolkitShelfStyle} | 641 | style={toolkitShelfStyle} |
| 616 | > | 642 | > |
| 617 | {rows.map((toolkit) => ( | 643 | {rows.map((toolkit) => ( |
| 618 | <ToolkitTile key={toolkit.id} pluginId={props.pluginId} toolkit={toolkit} /> | 644 | <ToolkitTile key={toolkit.id} showOwnerLabels={props.showOwnerLabels} toolkit={toolkit} /> |
| 619 | ))} | 645 | ))} |
| 620 | <AddToolkitCard owner={props.owner} onClick={openCreate} /> | 646 | <AddToolkitCard |
| 647 | owner={props.owner} | ||
| 648 | showOwnerLabels={props.showOwnerLabels} | ||
| 649 | onClick={openCreate} | ||
| 650 | /> | ||
| 621 | </div> | 651 | </div> |
| 622 | 652 | ||
| 623 | <CreateToolkitDialog | 653 | <CreateToolkitDialog |
| 624 | owner={props.owner} | 654 | owner={props.owner} |
| 655 | showOwnerLabels={props.showOwnerLabels} | ||
| 625 | open={createOpen} | 656 | open={createOpen} |
| 626 | onOpenChange={setCreateOpen} | 657 | onOpenChange={setCreateOpen} |
| 627 | onCreate={props.onCreate} | 658 | onCreate={props.onCreate} |
| @@ -631,27 +662,41 @@ function ToolkitSection(props: { · 3 unmodified lines | |||
| 631 | } | 662 | } |
| 632 | 663 | ||
| 633 | function ToolkitGrid(props: { | 664 | function ToolkitGrid(props: { |
| 634 | pluginId: string; | ||
| 635 | toolkits: readonly ToolkitResponse[]; | 665 | toolkits: readonly ToolkitResponse[]; |
| 636 | onCreate: (input: { owner: Owner; name: string }) => Promise<void>; | 666 | onCreate: (input: { owner: Owner; name: string }) => Promise<void>; |
| 637 | }) { | 667 | }) { |
| 668 | const ownerDisplay = useOwnerDisplay(); | ||
| 638 | // Toolkit shelves are grouped by owner; the selected toolkit owns the page. | 669 | // Toolkit shelves are grouped by owner; the selected toolkit owns the page. |
| 639 | const workspaceToolkits = props.toolkits.filter((toolkit) => toolkit.owner === "org"); | 670 | const workspaceToolkits = props.toolkits.filter((toolkit) => toolkit.owner === "org"); |
| 640 | const personalToolkits = props.toolkits.filter((toolkit) => toolkit.owner === "user"); | 671 | const personalToolkits = props.toolkits.filter((toolkit) => toolkit.owner === "user"); |
| 672 | if (!ownerDisplay.showOwnerLabels) { | ||
| 673 | return ( | ||
| 674 | <div className="min-h-0 flex-1 overflow-y-auto"> | ||
| 675 | <div className="w-full space-y-7 px-4 py-4" style={toolkitGridContainerStyle}> | ||
| 676 | <ToolkitSection | ||
| 677 | owner="org" | ||
| 678 | showOwnerLabels={false} | ||
| 679 | toolkits={props.toolkits} | ||
| 680 | onCreate={props.onCreate} | ||
| 681 | /> | ||
| 682 | </div> | ||
| 683 | </div> | ||
| 684 | ); | ||
| 685 | } | ||
| 641 | 686 | ||
| 642 | return ( | 687 | return ( |
| 643 | <div className="min-h-0 flex-1 overflow-y-auto"> | 688 | <div className="min-h-0 flex-1 overflow-y-auto"> |
| 644 | <div className="w-full space-y-7 px-4 py-4" style={toolkitGridContainerStyle}> | 689 | <div className="w-full space-y-7 px-4 py-4" style={toolkitGridContainerStyle}> |
| 645 | <ToolkitSection | 690 | <ToolkitSection |
| 646 | pluginId={props.pluginId} | ||
| 647 | owner="org" | 691 | owner="org" |
| 692 | showOwnerLabels | ||
| 648 | title="Workspace" | 693 | title="Workspace" |
| 649 | toolkits={workspaceToolkits} | 694 | toolkits={workspaceToolkits} |
| 650 | onCreate={props.onCreate} | 695 | onCreate={props.onCreate} |
| 651 | /> | 696 | /> |
| 652 | <ToolkitSection | 697 | <ToolkitSection |
| 653 | pluginId={props.pluginId} | ||
| 654 | owner="user" | 698 | owner="user" |
| 699 | showOwnerLabels | ||
| 655 | title="Personal" | 700 | title="Personal" |
| 656 | toolkits={personalToolkits} | 701 | toolkits={personalToolkits} |
| 657 | onCreate={props.onCreate} | 702 | onCreate={props.onCreate} |
| @@ -661,7 +706,7 @@ function ToolkitGrid(props: { · 3 unmodified lines | |||
| 661 | ); | 706 | ); |
| 662 | } | 707 | } |
| 663 | 708 | ||
| 664 | function ToolkitContentsEmpty(props: { onAddConnection: () => void }) { | 709 | function ToolkitContentsEmpty(props: { onManageConnections: () => void }) { |
| 665 | return ( | 710 | return ( |
| 666 | <div className="flex h-full items-center justify-center px-6 py-10"> | 711 | <div className="flex h-full items-center justify-center px-6 py-10"> |
| 667 | <div className="max-w-sm text-center"> | 712 | <div className="max-w-sm text-center"> |
| @@ -672,75 +717,19 @@ function ToolkitContentsEmpty(props: { onAddConnection: () => void }) { · 4 unmodified lines | |||
| 672 | <p className="mt-1.5 text-sm leading-6 text-muted-foreground"> | 717 | <p className="mt-1.5 text-sm leading-6 text-muted-foreground"> |
| 673 | Add a connection to decide what this toolkit exposes. | 718 | Add a connection to decide what this toolkit exposes. |
| 674 | </p> | 719 | </p> |
| 675 | <Button type="button" size="sm" onClick={props.onAddConnection} className="mt-4"> | 720 | <Button type="button" size="sm" onClick={props.onManageConnections} className="mt-4"> |
| 676 | <PlusIcon className="size-3.5" /> | 721 | Manage connections |
| 677 | Add connection | ||
| 678 | </Button> | 722 | </Button> |
| 679 | </div> | 723 | </div> |
| 680 | </div> | 724 | </div> |
| 681 | ); | 725 | ); |
| 682 | } | 726 | } |
| 683 | 727 | ||
| 684 | function ToolkitConfiguredConnections(props: { | ||
| 685 | connections: readonly ConfiguredConnectionView[]; | ||
| 686 | onRemoveConnection: (connectionId: string) => void; | ||
| 687 | }) { | ||
| 688 | if (props.connections.length === 0) return null; | ||
| 689 | return ( | ||
| 690 | <div className="border-b border-border/60 bg-background/60 px-3 py-2"> | ||
| 691 | <div className="mb-1.5 flex items-center justify-between gap-2"> | ||
| 692 | <span className="text-[10px] font-semibold uppercase tracking-widest text-muted-foreground"> | ||
| 693 | Connections | ||
| 694 | </span> | ||
| 695 | <span className="text-xs tabular-nums text-muted-foreground"> | ||
| 696 | {props.connections.length} | ||
| 697 | </span> | ||
| 698 | </div> | ||
| 699 | <div className="space-y-1"> | ||
| 700 | {props.connections.map((connection) => ( | ||
| 701 | <div | ||
| 702 | key={connection.id} | ||
| 703 | className="group flex min-w-0 items-center gap-2 rounded-md border border-border/60 bg-card px-2 py-1.5" | ||
| 704 | > | ||
| 705 | <span className="flex size-7 shrink-0 items-center justify-center rounded-md border border-border/70 bg-muted/30"> | ||
| 706 | <IntegrationFavicon | ||
| 707 | icon={connection.icon} | ||
| 708 | sourceId={connection.sourceId} | ||
| 709 | url={connection.url} | ||
| 710 | size={16} | ||
| 711 | /> | ||
| 712 | </span> | ||
| 713 | <div className="min-w-0 flex-1"> | ||
| 714 | <div className="truncate text-xs font-medium text-foreground">{connection.title}</div> | ||
| 715 | <div className="truncate text-[11px] text-muted-foreground"> | ||
| 716 | {connection.subtitle} | ||
| 717 | </div> | ||
| 718 | </div> | ||
| 719 | <Button | ||
| 720 | type="button" | ||
| 721 | variant="ghost" | ||
| 722 | size="icon-xs" | ||
| 723 | aria-label={`Remove connection ${connection.title} from toolkit`} | ||
| 724 | title="Remove connection" | ||
| 725 | onClick={() => props.onRemoveConnection(connection.id)} | ||
| 726 | className="size-6 shrink-0 text-muted-foreground hover:text-destructive" | ||
| 727 | > | ||
| 728 | <Trash2Icon className="size-3.5" /> | ||
| 729 | </Button> | ||
| 730 | </div> | ||
| 731 | ))} | ||
| 732 | </div> | ||
| 733 | </div> | ||
| 734 | ); | ||
| 735 | } | ||
| 736 | |||
| 737 | function ToolkitToolsPanel(props: { | 728 | function ToolkitToolsPanel(props: { |
| 738 | tools: readonly ToolSummary[]; | 729 | tools: readonly ToolSummary[]; |
| 739 | configuredConnections: readonly ConfiguredConnectionView[]; | ||
| 740 | selectedToolId: string | null; | 730 | selectedToolId: string | null; |
| 741 | policies: readonly ToolkitPolicyResponse[]; | 731 | policies: readonly ToolkitPolicyResponse[]; |
| 742 | onAddConnection: () => void; | 732 | onManageConnections: () => void; |
| 743 | onRemoveConnection: (connectionId: string) => void; | ||
| 744 | onSelectTool: (toolId: string) => void; | 733 | onSelectTool: (toolId: string) => void; |
| 745 | onSetPolicy: (pattern: string, action: ToolPolicyAction) => void; | 734 | onSetPolicy: (pattern: string, action: ToolPolicyAction) => void; |
| 746 | onClearPolicy: (pattern: string) => void; | 735 | onClearPolicy: (pattern: string) => void; |
| @@ -765,21 +754,16 @@ function ToolkitToolsPanel(props: { · 18 unmodified lines | |||
| 765 | <Button | 754 | <Button |
| 766 | type="button" | 755 | type="button" |
| 767 | size="sm" | 756 | size="sm" |
| 768 | aria-label="Add connection to toolkit" | 757 | aria-label="Manage toolkit connections" |
| 769 | onClick={props.onAddConnection} | 758 | onClick={props.onManageConnections} |
| 770 | className="h-8" | 759 | className="h-8" |
| 771 | > | 760 | > |
| 772 | <PlusIcon className="size-3.5" /> | 761 | Manage |
| 773 | Add | ||
| 774 | </Button> | 762 | </Button> |
| 775 | </div> | 763 | </div> |
| 776 | </div> | 764 | </div> |
| 777 | <ToolkitConfiguredConnections | ||
| 778 | connections={props.configuredConnections} | ||
| 779 | onRemoveConnection={props.onRemoveConnection} | ||
| 780 | /> | ||
| 781 | {props.tools.length === 0 ? ( | 765 | {props.tools.length === 0 ? ( |
| 782 | <ToolkitContentsEmpty onAddConnection={props.onAddConnection} /> | 766 | <ToolkitContentsEmpty onManageConnections={props.onManageConnections} /> |
| 783 | ) : ( | 767 | ) : ( |
| 784 | <ToolTree | 768 | <ToolTree |
| 785 | tools={props.tools} | 769 | tools={props.tools} |
| @@ -799,11 +783,13 @@ function ToolkitToolsPanel(props: { · 13 unmodified lines | |||
| 799 | function AddConnectionDialog(props: { | 783 | function AddConnectionDialog(props: { |
| 800 | open: boolean; | 784 | open: boolean; |
| 801 | groups: readonly ToolkitConnectionGroup[]; | 785 | groups: readonly ToolkitConnectionGroup[]; |
| 802 | configuredToolIds: ReadonlySet<string>; | 786 | configuredConnections: readonly ConfiguredConnectionView[]; |
| 803 | integrations: readonly Integration[]; | 787 | integrations: readonly Integration[]; |
| 804 | integrationPlugins: readonly IntegrationPlugin[]; | 788 | integrationPlugins: readonly IntegrationPlugin[]; |
| 789 | showOwnerLabels: boolean; | ||
| 805 | onOpenChange: (open: boolean) => void; | 790 | onOpenChange: (open: boolean) => void; |
| 806 | onAddPatterns: (patterns: readonly string[]) => Promise<void> | void; | 791 | onAddPatterns: (patterns: readonly string[]) => Promise<void> | void; |
| 792 | onRemoveConnection: (connectionId: string) => Promise<void> | void; | ||
| 807 | }) { | 793 | }) { |
| 808 | const searchId = useId(); | 794 | const searchId = useId(); |
| 809 | const [query, setQuery] = useState(""); | 795 | const [query, setQuery] = useState(""); |
| @@ -823,9 +809,12 @@ function AddConnectionDialog(props: { · 13 unmodified lines | |||
| 823 | }); | 809 | }); |
| 824 | }, [props.groups, trimmedQuery]); | 810 | }, [props.groups, trimmedQuery]); |
| 825 | 811 | ||
| 826 | const addAndClose = async (patterns: readonly string[]) => { | 812 | const addConnection = async (patterns: readonly string[]) => { |
| 827 | await props.onAddPatterns(patterns); | 813 | await props.onAddPatterns(patterns); |
| 828 | props.onOpenChange(false); | 814 | }; |
| 815 | |||
| 816 | const removeConnection = async (connectionId: string) => { | ||
| 817 | await props.onRemoveConnection(connectionId); | ||
| 829 | }; | 818 | }; |
| 830 | 819 | ||
| 831 | return ( | 820 | return ( |
| @@ -852,9 +841,9 @@ function AddConnectionDialog(props: { · 20 unmodified lines | |||
| 852 | <PlugIcon className="size-4" /> | 841 | <PlugIcon className="size-4" /> |
| 853 | </span> | 842 | </span> |
| 854 | <div className="min-w-0"> | 843 | <div className="min-w-0"> |
| 855 | <DialogTitle className="text-sm">Add connection</DialogTitle> | 844 | <DialogTitle className="text-sm">Manage connections</DialogTitle> |
| 856 | <DialogDescription className="mt-1 text-xs"> | 845 | <DialogDescription className="mt-1 text-xs"> |
| 857 | Choose which connected account this toolkit can use. | 846 | Choose which connected accounts this toolkit can use. |
| 858 | </DialogDescription> | 847 | </DialogDescription> |
| 859 | </div> | 848 | </div> |
| 860 | </div> | 849 | </div> |
| @@ -892,10 +881,11 @@ function AddConnectionDialog(props: { · 31 unmodified lines | |||
| 892 | ) : ( | 881 | ) : ( |
| 893 | <div className="overflow-hidden rounded-md border border-border/70 bg-background/30"> | 882 | <div className="overflow-hidden rounded-md border border-border/70 bg-background/30"> |
| 894 | {filteredGroups.map((group) => { | 883 | {filteredGroups.map((group) => { |
| 895 | const title = connectionTitle(group); | 884 | const title = connectionTitleForHost(group, props.showOwnerLabels); |
| 896 | const added = group.tools.every((tool) => | 885 | const configuredConnection = props.configuredConnections.find((connection) => |
| 897 | props.configuredToolIds.has(toolMatchId(tool)), | 886 | group.patterns.includes(connection.pattern), |
| 898 | ); | 887 | ); |
| 888 | const added = configuredConnection !== undefined; | ||
| 899 | const meta = integrationMetaFor( | 889 | const meta = integrationMetaFor( |
| 900 | group, | 890 | group, |
| 901 | props.integrations, | 891 | props.integrations, |
| @@ -919,9 +909,11 @@ function AddConnectionDialog(props: { · 17 unmodified lines | |||
| 919 | <span className="truncate text-xs font-medium text-foreground"> | 909 | <span className="truncate text-xs font-medium text-foreground"> |
| 920 | {connectionDisplayTitle(group, meta)} | 910 | {connectionDisplayTitle(group, meta)} |
| 921 | </span> | 911 | </span> |
| 922 | <Badge variant="outline" className="shrink-0 text-[10px]"> | 912 | {props.showOwnerLabels ? ( |
| 923 | {ownerLabel(group.owner)} | 913 | <Badge variant="outline" className="shrink-0 text-[10px]"> |
| 924 | </Badge> | 914 | {ownerLabel(group.owner)} |
| 915 | </Badge> | ||
| 916 | ) : null} | ||
| 925 | </div> | 917 | </div> |
| 926 | <div className="flex min-w-0 items-center gap-2"> | 918 | <div className="flex min-w-0 items-center gap-2"> |
| 927 | <span className="truncate text-[11px] text-muted-foreground"> | 919 | <span className="truncate text-[11px] text-muted-foreground"> |
| @@ -933,22 +925,25 @@ function AddConnectionDialog(props: { · 5 unmodified lines | |||
| 933 | type="button" | 925 | type="button" |
| 934 | variant={added ? "outline" : "default"} | 926 | variant={added ? "outline" : "default"} |
| 935 | size="sm" | 927 | size="sm" |
| 936 | disabled={added} | 928 | aria-label={`${added ? "Remove connection" : "Add connection"} ${title}`} |
| 937 | aria-label={`${added ? "Connection added" : "Add connection"} ${title}`} | 929 | onClick={() => |
| 938 | onClick={() => void addAndClose(group.patterns)} | 930 | void (added && configuredConnection |
| 931 | ? removeConnection(configuredConnection.id) | ||
| 932 | : addConnection(group.patterns)) | ||
| 933 | } | ||
| 939 | className={cn( | 934 | className={cn( |
| 940 | "h-7 shrink-0 px-2.5 text-xs", | 935 | "h-7 shrink-0 px-2.5 text-xs", |
| 941 | added | 936 | added |
| 942 | ? "border-border/70 bg-transparent text-muted-foreground" | 937 | ? "border-border/70 bg-transparent text-muted-foreground hover:text-destructive" |
| 943 | : "bg-primary/10 text-primary hover:bg-primary/15", | 938 | : "bg-primary/10 text-primary hover:bg-primary/15", |
| 944 | )} | 939 | )} |
| 945 | > | 940 | > |
| 946 | {added ? ( | 941 | {added ? ( |
| 947 | <CheckIcon className="size-3.5" /> | 942 | <Trash2Icon className="size-3.5" /> |
| 948 | ) : ( | 943 | ) : ( |
| 949 | <PlusIcon className="size-3.5" /> | 944 | <PlusIcon className="size-3.5" /> |
| 950 | )} | 945 | )} |
| 951 | {added ? "Added" : "Add"} | 946 | {added ? "Remove" : "Add"} |
| 952 | </Button> | 947 | </Button> |
| 953 | </div> | 948 | </div> |
| 954 | ); | 949 | ); |
| @@ -964,6 +959,7 @@ function AddConnectionDialog(props: { · 9 unmodified lines | |||
| 964 | 959 | ||
| 965 | function ToolkitHeader(props: { | 960 | function ToolkitHeader(props: { |
| 966 | toolkit: ToolkitResponse; | 961 | toolkit: ToolkitResponse; |
| 962 | showOwnerLabels: boolean; | ||
| 967 | toolCount: number; | 963 | toolCount: number; |
| 968 | mcpUrl: string; | 964 | mcpUrl: string; |
| 969 | onBack: () => void; | 965 | onBack: () => void; |
| @@ -985,9 +981,11 @@ function ToolkitHeader(props: { · 15 unmodified lines | |||
| 985 | <div className="min-w-0"> | 981 | <div className="min-w-0"> |
| 986 | <div className="flex min-w-0 items-center gap-2"> | 982 | <div className="flex min-w-0 items-center gap-2"> |
| 987 | <h2 className="truncate text-sm font-semibold text-foreground">{props.toolkit.name}</h2> | 983 | <h2 className="truncate text-sm font-semibold text-foreground">{props.toolkit.name}</h2> |
| 988 | <Badge variant="outline" className="text-[10px]"> | 984 | {props.showOwnerLabels ? ( |
| 989 | {ownerLabel(props.toolkit.owner)} | 985 | <Badge variant="outline" className="text-[10px]"> |
| 990 | </Badge> | 986 | {ownerLabel(props.toolkit.owner)} |
| 987 | </Badge> | ||
| 988 | ) : null} | ||
| 991 | <span className="text-xs tabular-nums text-muted-foreground"> | 989 | <span className="text-xs tabular-nums text-muted-foreground"> |
| 992 | {props.toolCount} {props.toolCount === 1 ? "tool" : "tools"} | 990 | {props.toolCount} {props.toolCount === 1 ? "tool" : "tools"} |
| 993 | </span> | 991 | </span> |
| @@ -999,16 +997,34 @@ function ToolkitHeader(props: { · 5 unmodified lines | |||
| 999 | <CopyButton value={props.mcpUrl} label="Copy toolkit MCP URL" /> | 997 | <CopyButton value={props.mcpUrl} label="Copy toolkit MCP URL" /> |
| 1000 | </div> | 998 | </div> |
| 1001 | </div> | 999 | </div> |
| 1002 | <Button | 1000 | <AlertDialog> |
| 1003 | type="button" | 1001 | <AlertDialogTrigger asChild> |
| 1004 | variant="ghost" | 1002 | <Button |
| 1005 | size="icon-sm" | 1003 | type="button" |
| 1006 | aria-label="Delete toolkit" | 1004 | variant="ghost" |
| 1007 | onClick={props.onRemove} | 1005 | size="icon-sm" |
| 1008 | className="text-muted-foreground hover:text-destructive" | 1006 | aria-label="Delete toolkit" |
| 1009 | > | 1007 | className="text-muted-foreground hover:text-destructive" |
| 1010 | <Trash2Icon className="size-3.5" /> | 1008 | > |
| 1011 | </Button> | 1009 | <Trash2Icon className="size-3.5" /> |
| 1010 | </Button> | ||
| 1011 | </AlertDialogTrigger> | ||
| 1012 | <AlertDialogContent size="sm"> | ||
| 1013 | <AlertDialogHeader> | ||
| 1014 | <AlertDialogTitle>Delete {props.toolkit.name}?</AlertDialogTitle> | ||
| 1015 | <AlertDialogDescription> | ||
| 1016 | This removes the toolkit and its dedicated MCP endpoint. Connections are not | ||
| 1017 | deleted. | ||
| 1018 | </AlertDialogDescription> | ||
| 1019 | </AlertDialogHeader> | ||
| 1020 | <AlertDialogFooter> | ||
| 1021 | <AlertDialogCancel>Cancel</AlertDialogCancel> | ||
| 1022 | <AlertDialogAction variant="destructive" onClick={props.onRemove}> | ||
| 1023 | Delete | ||
| 1024 | </AlertDialogAction> | ||
| 1025 | </AlertDialogFooter> | ||
| 1026 | </AlertDialogContent> | ||
| 1027 | </AlertDialog> | ||
| 1012 | </div> | 1028 | </div> |
| 1013 | </div> | 1029 | </div> |
| 1014 | ); | 1030 | ); |
| @@ -1016,6 +1032,7 @@ function ToolkitHeader(props: { · 1 unmodified line | |||
| 1016 | 1032 | ||
| 1017 | function ToolkitWorkspace(props: { | 1033 | function ToolkitWorkspace(props: { |
| 1018 | toolkit: ToolkitResponse; | 1034 | toolkit: ToolkitResponse; |
| 1035 | showOwnerLabels: boolean; | ||
| 1019 | policies: readonly ToolkitPolicyResponse[]; | 1036 | policies: readonly ToolkitPolicyResponse[]; |
| 1020 | connections: readonly ToolkitConnectionResponse[]; | 1037 | connections: readonly ToolkitConnectionResponse[]; |
| 1021 | tools: readonly ToolRow[]; | 1038 | tools: readonly ToolRow[]; |
| @@ -1043,8 +1060,15 @@ function ToolkitWorkspace(props: { · 21 unmodified lines | |||
| 1043 | connectionGroups, | 1060 | connectionGroups, |
| 1044 | props.integrations, | 1061 | props.integrations, |
| 1045 | props.integrationPlugins, | 1062 | props.integrationPlugins, |
| 1063 | props.showOwnerLabels, | ||
| 1046 | ), | 1064 | ), |
| 1047 | [connectionGroups, props.connections, props.integrationPlugins, props.integrations], | 1065 | [ |
| 1066 | connectionGroups, | ||
| 1067 | props.connections, | ||
| 1068 | props.integrationPlugins, | ||
| 1069 | props.integrations, | ||
| 1070 | props.showOwnerLabels, | ||
| 1071 | ], | ||
| 1048 | ); | 1072 | ); |
| 1049 | const legacyPolicyIds = useMemo( | 1073 | const legacyPolicyIds = useMemo( |
| 1050 | () => legacyConnectionPolicyIds(props.policies, connectionGroups, props.connections), | 1074 | () => legacyConnectionPolicyIds(props.policies, connectionGroups, props.connections), |
| @@ -1103,6 +1127,7 @@ function ToolkitWorkspace(props: { · 52 unmodified lines | |||
| 1103 | <div className="flex min-h-0 flex-1 flex-col overflow-hidden"> | 1127 | <div className="flex min-h-0 flex-1 flex-col overflow-hidden"> |
| 1104 | <ToolkitHeader | 1128 | <ToolkitHeader |
| 1105 | toolkit={props.toolkit} | 1129 | toolkit={props.toolkit} |
| 1130 | showOwnerLabels={props.showOwnerLabels} | ||
| 1106 | toolCount={exposedToolIds.size} | 1131 | toolCount={exposedToolIds.size} |
| 1107 | mcpUrl={props.mcpUrl} | 1132 | mcpUrl={props.mcpUrl} |
| 1108 | onBack={props.onBack} | 1133 | onBack={props.onBack} |
| @@ -1112,11 +1137,9 @@ function ToolkitWorkspace(props: { · 3 unmodified lines | |||
| 1112 | <div className="flex min-h-0 flex-1 overflow-hidden"> | 1137 | <div className="flex min-h-0 flex-1 overflow-hidden"> |
| 1113 | <ToolkitToolsPanel | 1138 | <ToolkitToolsPanel |
| 1114 | tools={toolkitTools} | 1139 | tools={toolkitTools} |
| 1115 | configuredConnections={configuredConnections} | ||
| 1116 | selectedToolId={selectedToolId} | 1140 | selectedToolId={selectedToolId} |
| 1117 | policies={accessPolicies} | 1141 | policies={accessPolicies} |
| 1118 | onAddConnection={() => setAddOpen(true)} | 1142 | onManageConnections={() => setAddOpen(true)} |
| 1119 | onRemoveConnection={(connectionId) => void props.onRemoveConnection(connectionId)} | ||
| 1120 | onSelectTool={setSelectedToolId} | 1143 | onSelectTool={setSelectedToolId} |
| 1121 | onSetPolicy={(pattern, action) => void props.onSetPolicy(pattern, action)} | 1144 | onSetPolicy={(pattern, action) => void props.onSetPolicy(pattern, action)} |
| 1122 | onClearPolicy={(pattern) => void props.onClearPolicy(pattern)} | 1145 | onClearPolicy={(pattern) => void props.onClearPolicy(pattern)} |
| @@ -1142,14 +1165,16 @@ function ToolkitWorkspace(props: { · 19 unmodified lines | |||
| 1142 | open={addOpen} | 1165 | open={addOpen} |
| 1143 | onOpenChange={setAddOpen} | 1166 | onOpenChange={setAddOpen} |
| 1144 | groups={connectionGroups} | 1167 | groups={connectionGroups} |
| 1145 | configuredToolIds={configuredToolIds} | 1168 | configuredConnections={configuredConnections} |
| 1146 | integrations={props.integrations} | 1169 | integrations={props.integrations} |
| 1147 | integrationPlugins={props.integrationPlugins} | 1170 | integrationPlugins={props.integrationPlugins} |
| 1171 | showOwnerLabels={props.showOwnerLabels} | ||
| 1148 | onAddPatterns={async (patterns) => { | 1172 | onAddPatterns={async (patterns) => { |
| 1149 | for (const pattern of patterns) { | 1173 | for (const pattern of patterns) { |
| 1150 | await props.onAddConnection(pattern); | 1174 | await props.onAddConnection(pattern); |
| 1151 | } | 1175 | } |
| 1152 | }} | 1176 | }} |
| 1177 | onRemoveConnection={props.onRemoveConnection} | ||
| 1153 | /> | 1178 | /> |
| 1154 | </div> | 1179 | </div> |
| 1155 | ); | 1180 | ); |
| @@ -1171,14 +1196,16 @@ function ToolkitTileSkeleton(props: { index: number }) { · 15 unmodified lines | |||
| 1171 | ); | 1196 | ); |
| 1172 | } | 1197 | } |
| 1173 | 1198 | ||
| 1174 | function ToolkitSectionSkeleton(props: { title: string; offset: number }) { | 1199 | function ToolkitSectionSkeleton(props: { title?: string; offset: number }) { |
| 1175 | return ( | 1200 | return ( |
| 1176 | <section className="space-y-3" aria-label={`Loading ${props.title.toLowerCase()} toolkits`}> | 1201 | <section className="space-y-3" aria-label="Loading toolkits"> |
| 1177 | <div className="border-b border-border/60 pb-2"> | 1202 | {props.title ? ( |
| 1178 | <h2 className="text-xs font-semibold uppercase tracking-widest text-muted-foreground"> | 1203 | <div className="border-b border-border/60 pb-2"> |
| 1179 | {props.title} | 1204 | <h2 className="text-xs font-semibold uppercase tracking-widest text-muted-foreground"> |
| 1180 | </h2> | 1205 | {props.title} |
| 1181 | </div> | 1206 | </h2> |
| 1207 | </div> | ||
| 1208 | ) : null} | ||
| 1182 | 1209 | ||
| 1183 | <div className="grid content-start grid-cols-1 gap-3 sm:grid-cols-2 md:grid-cols-3"> | 1210 | <div className="grid content-start grid-cols-1 gap-3 sm:grid-cols-2 md:grid-cols-3"> |
| 1184 | {Array.from({ length: 3 }).map((_, index) => ( | 1211 | {Array.from({ length: 3 }).map((_, index) => ( |
| @@ -1189,12 +1216,18 @@ function ToolkitSectionSkeleton(props: { title: string; offset: number }) { · 4 unmodified lines | |||
| 1189 | ); | 1216 | ); |
| 1190 | } | 1217 | } |
| 1191 | 1218 | ||
| 1192 | function ToolkitGridSkeleton() { | 1219 | function ToolkitGridSkeleton(props: { showOwnerLabels: boolean }) { |
| 1193 | return ( | 1220 | return ( |
| 1194 | <div className="min-h-0 flex-1 overflow-y-auto"> | 1221 | <div className="min-h-0 flex-1 overflow-y-auto"> |
| 1195 | <div className="w-full space-y-7 px-4 py-4" style={toolkitGridContainerStyle}> | 1222 | <div className="w-full space-y-7 px-4 py-4" style={toolkitGridContainerStyle}> |
| 1196 | <ToolkitSectionSkeleton title="Workspace" offset={0} /> | 1223 | {props.showOwnerLabels ? ( |
| 1197 | <ToolkitSectionSkeleton title="Personal" offset={3} /> | 1224 | <> |
| 1225 | <ToolkitSectionSkeleton title="Workspace" offset={0} /> | ||
| 1226 | <ToolkitSectionSkeleton title="Personal" offset={3} /> | ||
| 1227 | </> | ||
| 1228 | ) : ( | ||
| 1229 | <ToolkitSectionSkeleton offset={0} /> | ||
| 1230 | )} | ||
| 1198 | </div> | 1231 | </div> |
| 1199 | </div> | 1232 | </div> |
| 1200 | ); | 1233 | ); |
| @@ -1258,6 +1291,7 @@ function ToolkitDetailSkeleton() { · 57 unmodified lines | |||
| 1258 | 1291 | ||
| 1259 | function ToolkitDetailView(props: { | 1292 | function ToolkitDetailView(props: { |
| 1260 | toolkit: ToolkitResponse; | 1293 | toolkit: ToolkitResponse; |
| 1294 | showOwnerLabels: boolean; | ||
| 1261 | tools: readonly ToolRow[]; | 1295 | tools: readonly ToolRow[]; |
| 1262 | integrations: readonly Integration[]; | 1296 | integrations: readonly Integration[]; |
| 1263 | integrationPlugins: readonly IntegrationPlugin[]; | 1297 | integrationPlugins: readonly IntegrationPlugin[]; |
| @@ -1326,6 +1360,7 @@ function ToolkitDetailView(props: { · 62 unmodified lines | |||
| 1326 | return ( | 1360 | return ( |
| 1327 | <ToolkitWorkspace | 1361 | <ToolkitWorkspace |
| 1328 | toolkit={props.toolkit} | 1362 | toolkit={props.toolkit} |
| 1363 | showOwnerLabels={props.showOwnerLabels} | ||
| 1329 | policies={policyRows} | 1364 | policies={policyRows} |
| 1330 | connections={connectionRows} | 1365 | connections={connectionRows} |
| 1331 | tools={props.tools} | 1366 | tools={props.tools} |
| @@ -1343,8 +1378,9 @@ function ToolkitDetailView(props: { · 11 unmodified lines | |||
| 1343 | } | 1378 | } |
| 1344 | 1379 | ||
| 1345 | export function ToolkitsPage(props: PluginPageProps) { | 1380 | export function ToolkitsPage(props: PluginPageProps) { |
| 1346 | const params = useParams({ strict: false }) as { orgSlug?: string }; | ||
| 1347 | const navigate = useNavigate(); | 1381 | const navigate = useNavigate(); |
| 1382 | const organizationSlug = useOrganizationSlug(); | ||
| 1383 | const ownerDisplay = useOwnerDisplay(); | ||
| 1348 | const integrationPlugins = useIntegrationPlugins(); | 1384 | const integrationPlugins = useIntegrationPlugins(); |
| 1349 | const toolkits = useAtomValue(toolkitsAtom); | 1385 | const toolkits = useAtomValue(toolkitsAtom); |
| 1350 | const tools = useAtomValue(toolsAllAtom); | 1386 | const tools = useAtomValue(toolsAllAtom); |
| @@ -1367,8 +1403,7 @@ export function ToolkitsPage(props: PluginPageProps) { · 16 unmodified lines | |||
| 1367 | const toolsFailed = AsyncResult.isFailure(tools); | 1403 | const toolsFailed = AsyncResult.isFailure(tools); |
| 1368 | const navigateToIndex = () => | 1404 | const navigateToIndex = () => |
| 1369 | navigate({ | 1405 | navigate({ |
| 1370 | to: "/{-$orgSlug}/plugins/$pluginId/$", | 1406 | to: "/{-$orgSlug}/toolkits", |
| 1371 | params: { pluginId: props.pluginId, _splat: "" }, | ||
| 1372 | }); | 1407 | }); |
| 1373 | 1408 | ||
| 1374 | const createToolkitHandler = async (input: { owner: Owner; name: string }) => { | 1409 | const createToolkitHandler = async (input: { owner: Owner; name: string }) => { |
| @@ -1411,7 +1446,7 @@ export function ToolkitsPage(props: PluginPageProps) { · 36 unmodified lines | |||
| 1411 | toolkitsFailed ? ( | 1446 | toolkitsFailed ? ( |
| 1412 | <div className="p-6 text-sm text-destructive">Failed to load toolkits</div> | 1447 | <div className="p-6 text-sm text-destructive">Failed to load toolkits</div> |
| 1413 | ) : ( | 1448 | ) : ( |
| 1414 | <ToolkitGridSkeleton /> | 1449 | <ToolkitGridSkeleton showOwnerLabels={ownerDisplay.showOwnerLabels} /> |
| 1415 | ) | 1450 | ) |
| 1416 | ) : selectedToolkit ? ( | 1451 | ) : selectedToolkit ? ( |
| 1417 | toolsFailed ? ( | 1452 | toolsFailed ? ( |
| @@ -1421,10 +1456,11 @@ export function ToolkitsPage(props: PluginPageProps) { · 3 unmodified lines | |||
| 1421 | ) : ( | 1456 | ) : ( |
| 1422 | <ToolkitDetailView | 1457 | <ToolkitDetailView |
| 1423 | toolkit={selectedToolkit} | 1458 | toolkit={selectedToolkit} |
| 1459 | showOwnerLabels={ownerDisplay.showOwnerLabels} | ||
| 1424 | tools={toolRows} | 1460 | tools={toolRows} |
| 1425 | integrations={integrationRows} | 1461 | integrations={integrationRows} |
| 1426 | integrationPlugins={integrationPlugins} | 1462 | integrationPlugins={integrationPlugins} |
| 1427 | orgSlug={params.orgSlug} | 1463 | orgSlug={organizationSlug ?? undefined} |
| 1428 | onBack={() => void navigateToIndex()} | 1464 | onBack={() => void navigateToIndex()} |
| 1429 | onRemoveToolkit={removeToolkitHandler} | 1465 | onRemoveToolkit={removeToolkitHandler} |
| 1430 | /> | 1466 | /> |
| @@ -1444,11 +1480,7 @@ export function ToolkitsPage(props: PluginPageProps) { · 13 unmodified lines | |||
| 1444 | <div className="text-sm text-muted-foreground">Toolkit not found</div> | 1480 | <div className="text-sm text-muted-foreground">Toolkit not found</div> |
| 1445 | </div> | 1481 | </div> |
| 1446 | ) : ( | 1482 | ) : ( |
| 1447 | <ToolkitGrid | 1483 | <ToolkitGrid toolkits={toolkitRows} onCreate={createToolkitHandler} /> |
| 1448 | pluginId={props.pluginId} | ||
| 1449 | toolkits={toolkitRows} | ||
| 1450 | onCreate={createToolkitHandler} | ||
| 1451 | /> | ||
| 1452 | )} | 1484 | )} |
| 1453 | </div> | 1485 | </div> |
| 1454 | ); | 1486 | ); |
| @@ -39,6 +39,8 @@ export const CONSOLE_ROUTE_PATHS = [ · 38 unmodified lines | |||
| 39 | "/policies", | 39 | "/policies", |
| 40 | "/secrets", | 40 | "/secrets", |
| 41 | "/tools", | 41 | "/tools", |
| 42 | "/toolkits", | ||
| 43 | "/toolkits/$toolkitSlug", | ||
| 42 | "/resume/$executionId", | 44 | "/resume/$executionId", |
| 43 | "/plugins/$pluginId/$", | 45 | "/plugins/$pluginId/$", |
| 44 | ] as const; | 46 | ] as const; |
| @@ -71,6 +73,8 @@ export const consoleRoutes = (options: ConsoleRoutesOptions): Array<VirtualRoute · 26 unmodified lines | |||
| 71 | ["/policies", route("/policies", file("policies.tsx"))], | 73 | ["/policies", route("/policies", file("policies.tsx"))], |
| 72 | ["/secrets", route("/secrets", file("secrets.tsx"))], | 74 | ["/secrets", route("/secrets", file("secrets.tsx"))], |
| 73 | ["/tools", route("/tools", file("tools.tsx"))], | 75 | ["/tools", route("/tools", file("tools.tsx"))], |
| 76 | ["/toolkits", route("/toolkits", file("toolkits.tsx"))], | ||
| 77 | ["/toolkits/$toolkitSlug", route("/toolkits/$toolkitSlug", file("toolkits.$toolkitSlug.tsx"))], | ||
| 74 | ["/resume/$executionId", route("/resume/$executionId", file("resume.$executionId.tsx"))], | 78 | ["/resume/$executionId", route("/resume/$executionId", file("resume.$executionId.tsx"))], |
| 75 | ["/plugins/$pluginId/$", route("/plugins/$pluginId/$", file("plugins.$pluginId.$.tsx"))], | 79 | ["/plugins/$pluginId/$", route("/plugins/$pluginId/$", file("plugins.$pluginId.$.tsx"))], |
| 76 | ]; | 80 | ]; |
| @@ -49,6 +49,7 @@ export const defaultShellNavItems: ReadonlyArray<ShellNavItem> = [ · 48 unmodified lines | |||
| 49 | { to: "/", label: "Integrations" }, | 49 | { to: "/", label: "Integrations" }, |
| 50 | { to: "/secrets", label: "Providers" }, | 50 | { to: "/secrets", label: "Providers" }, |
| 51 | { to: "/policies", label: "Policies" }, | 51 | { to: "/policies", label: "Policies" }, |
| 52 | { to: "/toolkits", label: "Toolkits" }, | ||
| 52 | ]; | 53 | ]; |
| 53 | 54 | ||
| 54 | /** Canonical public docs (Mintlify). Same-origin on cloud (executor.sh proxies | 55 | /** Canonical public docs (Mintlify). Same-origin on cloud (executor.sh proxies |
| @@ -1,4 +1,4 @@ | |||
| 1 | import { createFileRoute, notFound } from "@tanstack/react-router"; | 1 | import { createFileRoute, Navigate, notFound } from "@tanstack/react-router"; |
| 2 | import { useClientPlugins } from "@executor-js/sdk/client"; | 2 | import { useClientPlugins } from "@executor-js/sdk/client"; |
| 3 | 3 | ||
| 4 | // --------------------------------------------------------------------------- | 4 | // --------------------------------------------------------------------------- |
| @@ -84,13 +84,28 @@ export const matchPluginPage = <TPage extends { readonly path: string }>( · 79 unmodified lines | |||
| 84 | }; | 84 | }; |
| 85 | 85 | ||
| 86 | function PluginRouteComponent() { | 86 | function PluginRouteComponent() { |
| 87 | const { pluginId, _splat: rest } = Route.useParams(); | 87 | const { orgSlug, pluginId, _splat: rest } = Route.useParams(); |
| 88 | const plugins = useClientPlugins(); | 88 | const plugins = useClientPlugins(); |
| 89 | const target = normalizePath(rest ?? "/"); | ||
| 90 | if (pluginId === "toolkits") { | ||
| 91 | const segments = pathSegments(target); | ||
| 92 | const toolkitSlug = segments[0]; | ||
| 93 | if (toolkitSlug) { | ||
| 94 | return ( | ||
| 95 | <Navigate | ||
| 96 | to="/{-$orgSlug}/toolkits/$toolkitSlug" | ||
| 97 | params={{ orgSlug, toolkitSlug }} | ||
| 98 | replace | ||
| 99 | /> | ||
| 100 | ); | ||
| 101 | } | ||
| 102 | return <Navigate to="/{-$orgSlug}/toolkits" params={{ orgSlug }} replace />; | ||
| 103 | } | ||
| 104 | |||
| 89 | const plugin = plugins.find((p) => p.id === pluginId); | 105 | const plugin = plugins.find((p) => p.id === pluginId); |
| 90 | // oxlint-disable-next-line executor/no-try-catch-or-throw -- boundary: TanStack Router represents not-found from components by throwing notFound() | 106 | // oxlint-disable-next-line executor/no-try-catch-or-throw -- boundary: TanStack Router represents not-found from components by throwing notFound() |
| 91 | if (!plugin) throw notFound(); | 107 | if (!plugin) throw notFound(); |
| 92 | 108 | ||
| 93 | const target = normalizePath(rest ?? "/"); | ||
| 94 | const match = matchPluginPage(plugin.pages, target); | 109 | const match = matchPluginPage(plugin.pages, target); |
| 95 | // oxlint-disable-next-line executor/no-try-catch-or-throw -- boundary: TanStack Router represents not-found from components by throwing notFound() | 110 | // oxlint-disable-next-line executor/no-try-catch-or-throw -- boundary: TanStack Router represents not-found from components by throwing notFound() |
| 96 | if (!match) throw notFound(); | 111 | if (!match) throw notFound(); |
| @@ -11,8 +11,10 @@ · 10 unmodified lines | |||
| 11 | import { Route as rootRouteImport } from './__root' | 11 | import { Route as rootRouteImport } from './__root' |
| 12 | import { Route as DotIndexRouteImport } from './index' | 12 | import { Route as DotIndexRouteImport } from './index' |
| 13 | import { Route as DotToolsRouteImport } from './tools' | 13 | import { Route as DotToolsRouteImport } from './tools' |
| 14 | import { Route as DotToolkitsRouteImport } from './toolkits' | ||
| 14 | import { Route as DotSecretsRouteImport } from './secrets' | 15 | import { Route as DotSecretsRouteImport } from './secrets' |
| 15 | import { Route as DotPoliciesRouteImport } from './policies' | 16 | import { Route as DotPoliciesRouteImport } from './policies' |
| 17 | import { Route as DotToolkitsDottoolkitSlugRouteImport } from './toolkits.$toolkitSlug' | ||
| 16 | import { Route as DotResumeDotexecutionIdRouteImport } from './resume.$executionId' | 18 | import { Route as DotResumeDotexecutionIdRouteImport } from './resume.$executionId' |
| 17 | import { Route as DotIntegrationsDotnamespaceRouteImport } from './integrations.$namespace' | 19 | import { Route as DotIntegrationsDotnamespaceRouteImport } from './integrations.$namespace' |
| 18 | import { Route as DotPluginsDotpluginIdDotsplatRouteImport } from './plugins.$pluginId.$' | 20 | import { Route as DotPluginsDotpluginIdDotsplatRouteImport } from './plugins.$pluginId.$' |
| @@ -28,6 +30,11 @@ const DotToolsRoute = DotToolsRouteImport.update({ · 9 unmodified lines | |||
| 28 | path: '/{-$orgSlug}/tools', | 30 | path: '/{-$orgSlug}/tools', |
| 29 | getParentRoute: () => rootRouteImport, | 31 | getParentRoute: () => rootRouteImport, |
| 30 | } as any) | 32 | } as any) |
| 33 | const DotToolkitsRoute = DotToolkitsRouteImport.update({ | ||
| 34 | id: '/{-$orgSlug}/toolkits', | ||
| 35 | path: '/{-$orgSlug}/toolkits', | ||
| 36 | getParentRoute: () => rootRouteImport, | ||
| 37 | } as any) | ||
| 31 | const DotSecretsRoute = DotSecretsRouteImport.update({ | 38 | const DotSecretsRoute = DotSecretsRouteImport.update({ |
| 32 | id: '/{-$orgSlug}/secrets', | 39 | id: '/{-$orgSlug}/secrets', |
| 33 | path: '/{-$orgSlug}/secrets', | 40 | path: '/{-$orgSlug}/secrets', |
| @@ -38,6 +45,12 @@ const DotPoliciesRoute = DotPoliciesRouteImport.update({ · 4 unmodified lines | |||
| 38 | path: '/{-$orgSlug}/policies', | 45 | path: '/{-$orgSlug}/policies', |
| 39 | getParentRoute: () => rootRouteImport, | 46 | getParentRoute: () => rootRouteImport, |
| 40 | } as any) | 47 | } as any) |
| 48 | const DotToolkitsDottoolkitSlugRoute = | ||
| 49 | DotToolkitsDottoolkitSlugRouteImport.update({ | ||
| 50 | id: '/$toolkitSlug', | ||
| 51 | path: '/$toolkitSlug', | ||
| 52 | getParentRoute: () => DotToolkitsRoute, | ||
| 53 | } as any) | ||
| 41 | const DotResumeDotexecutionIdRoute = DotResumeDotexecutionIdRouteImport.update({ | 54 | const DotResumeDotexecutionIdRoute = DotResumeDotexecutionIdRouteImport.update({ |
| 42 | id: '/{-$orgSlug}/resume/$executionId', | 55 | id: '/{-$orgSlug}/resume/$executionId', |
| 43 | path: '/{-$orgSlug}/resume/$executionId', | 56 | path: '/{-$orgSlug}/resume/$executionId', |
| @@ -65,20 +78,24 @@ const DotIntegrationsDotaddDotpluginKeyRoute = · 21 unmodified lines | |||
| 65 | export interface FileRoutesByFullPath { | 78 | export interface FileRoutesByFullPath { |
| 66 | '/{-$orgSlug}/policies': typeof DotPoliciesRoute | 79 | '/{-$orgSlug}/policies': typeof DotPoliciesRoute |
| 67 | '/{-$orgSlug}/secrets': typeof DotSecretsRoute | 80 | '/{-$orgSlug}/secrets': typeof DotSecretsRoute |
| 81 | '/{-$orgSlug}/toolkits': typeof DotToolkitsRouteWithChildren | ||
| 68 | '/{-$orgSlug}/tools': typeof DotToolsRoute | 82 | '/{-$orgSlug}/tools': typeof DotToolsRoute |
| 69 | '/{-$orgSlug}/': typeof DotIndexRoute | 83 | '/{-$orgSlug}/': typeof DotIndexRoute |
| 70 | '/{-$orgSlug}/integrations/$namespace': typeof DotIntegrationsDotnamespaceRoute | 84 | '/{-$orgSlug}/integrations/$namespace': typeof DotIntegrationsDotnamespaceRoute |
| 71 | '/{-$orgSlug}/resume/$executionId': typeof DotResumeDotexecutionIdRoute | 85 | '/{-$orgSlug}/resume/$executionId': typeof DotResumeDotexecutionIdRoute |
| 86 | '/{-$orgSlug}/toolkits/$toolkitSlug': typeof DotToolkitsDottoolkitSlugRoute | ||
| 72 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotIntegrationsDotaddDotpluginKeyRoute | 87 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotIntegrationsDotaddDotpluginKeyRoute |
| 73 | '/{-$orgSlug}/plugins/$pluginId/$': typeof DotPluginsDotpluginIdDotsplatRoute | 88 | '/{-$orgSlug}/plugins/$pluginId/$': typeof DotPluginsDotpluginIdDotsplatRoute |
| 74 | } | 89 | } |
| 75 | export interface FileRoutesByTo { | 90 | export interface FileRoutesByTo { |
| 76 | '/{-$orgSlug}/policies': typeof DotPoliciesRoute | 91 | '/{-$orgSlug}/policies': typeof DotPoliciesRoute |
| 77 | '/{-$orgSlug}/secrets': typeof DotSecretsRoute | 92 | '/{-$orgSlug}/secrets': typeof DotSecretsRoute |
| 93 | '/{-$orgSlug}/toolkits': typeof DotToolkitsRouteWithChildren | ||
| 78 | '/{-$orgSlug}/tools': typeof DotToolsRoute | 94 | '/{-$orgSlug}/tools': typeof DotToolsRoute |
| 79 | '/{-$orgSlug}': typeof DotIndexRoute | 95 | '/{-$orgSlug}': typeof DotIndexRoute |
| 80 | '/{-$orgSlug}/integrations/$namespace': typeof DotIntegrationsDotnamespaceRoute | 96 | '/{-$orgSlug}/integrations/$namespace': typeof DotIntegrationsDotnamespaceRoute |
| 81 | '/{-$orgSlug}/resume/$executionId': typeof DotResumeDotexecutionIdRoute | 97 | '/{-$orgSlug}/resume/$executionId': typeof DotResumeDotexecutionIdRoute |
| 98 | '/{-$orgSlug}/toolkits/$toolkitSlug': typeof DotToolkitsDottoolkitSlugRoute | ||
| 82 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotIntegrationsDotaddDotpluginKeyRoute | 99 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotIntegrationsDotaddDotpluginKeyRoute |
| 83 | '/{-$orgSlug}/plugins/$pluginId/$': typeof DotPluginsDotpluginIdDotsplatRoute | 100 | '/{-$orgSlug}/plugins/$pluginId/$': typeof DotPluginsDotpluginIdDotsplatRoute |
| 84 | } | 101 | } |
| @@ -86,10 +103,12 @@ export interface FileRoutesById { · 1 unmodified line | |||
| 86 | __root__: typeof rootRouteImport | 103 | __root__: typeof rootRouteImport |
| 87 | '/{-$orgSlug}/policies': typeof DotPoliciesRoute | 104 | '/{-$orgSlug}/policies': typeof DotPoliciesRoute |
| 88 | '/{-$orgSlug}/secrets': typeof DotSecretsRoute | 105 | '/{-$orgSlug}/secrets': typeof DotSecretsRoute |
| 106 | '/{-$orgSlug}/toolkits': typeof DotToolkitsRouteWithChildren | ||
| 89 | '/{-$orgSlug}/tools': typeof DotToolsRoute | 107 | '/{-$orgSlug}/tools': typeof DotToolsRoute |
| 90 | '/{-$orgSlug}/': typeof DotIndexRoute | 108 | '/{-$orgSlug}/': typeof DotIndexRoute |
| 91 | '/{-$orgSlug}/integrations/$namespace': typeof DotIntegrationsDotnamespaceRoute | 109 | '/{-$orgSlug}/integrations/$namespace': typeof DotIntegrationsDotnamespaceRoute |
| 92 | '/{-$orgSlug}/resume/$executionId': typeof DotResumeDotexecutionIdRoute | 110 | '/{-$orgSlug}/resume/$executionId': typeof DotResumeDotexecutionIdRoute |
| 111 | '/{-$orgSlug}/toolkits/$toolkitSlug': typeof DotToolkitsDottoolkitSlugRoute | ||
| 93 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotIntegrationsDotaddDotpluginKeyRoute | 112 | '/{-$orgSlug}/integrations/add/$pluginKey': typeof DotIntegrationsDotaddDotpluginKeyRoute |
| 94 | '/{-$orgSlug}/plugins/$pluginId/$': typeof DotPluginsDotpluginIdDotsplatRoute | 113 | '/{-$orgSlug}/plugins/$pluginId/$': typeof DotPluginsDotpluginIdDotsplatRoute |
| 95 | } | 114 | } |
| @@ -98,30 +117,36 @@ export interface FileRouteTypes { · 2 unmodified lines | |||
| 98 | fullPaths: | 117 | fullPaths: |
| 99 | | '/{-$orgSlug}/policies' | 118 | | '/{-$orgSlug}/policies' |
| 100 | | '/{-$orgSlug}/secrets' | 119 | | '/{-$orgSlug}/secrets' |
| 120 | | '/{-$orgSlug}/toolkits' | ||
| 101 | | '/{-$orgSlug}/tools' | 121 | | '/{-$orgSlug}/tools' |
| 102 | | '/{-$orgSlug}/' | 122 | | '/{-$orgSlug}/' |
| 103 | | '/{-$orgSlug}/integrations/$namespace' | 123 | | '/{-$orgSlug}/integrations/$namespace' |
| 104 | | '/{-$orgSlug}/resume/$executionId' | 124 | | '/{-$orgSlug}/resume/$executionId' |
| 125 | | '/{-$orgSlug}/toolkits/$toolkitSlug' | ||
| 105 | | '/{-$orgSlug}/integrations/add/$pluginKey' | 126 | | '/{-$orgSlug}/integrations/add/$pluginKey' |
| 106 | | '/{-$orgSlug}/plugins/$pluginId/$' | 127 | | '/{-$orgSlug}/plugins/$pluginId/$' |
| 107 | fileRoutesByTo: FileRoutesByTo | 128 | fileRoutesByTo: FileRoutesByTo |
| 108 | to: | 129 | to: |
| 109 | | '/{-$orgSlug}/policies' | 130 | | '/{-$orgSlug}/policies' |
| 110 | | '/{-$orgSlug}/secrets' | 131 | | '/{-$orgSlug}/secrets' |
| 132 | | '/{-$orgSlug}/toolkits' | ||
| 111 | | '/{-$orgSlug}/tools' | 133 | | '/{-$orgSlug}/tools' |
| 112 | | '/{-$orgSlug}' | 134 | | '/{-$orgSlug}' |
| 113 | | '/{-$orgSlug}/integrations/$namespace' | 135 | | '/{-$orgSlug}/integrations/$namespace' |
| 114 | | '/{-$orgSlug}/resume/$executionId' | 136 | | '/{-$orgSlug}/resume/$executionId' |
| 137 | | '/{-$orgSlug}/toolkits/$toolkitSlug' | ||
| 115 | | '/{-$orgSlug}/integrations/add/$pluginKey' | 138 | | '/{-$orgSlug}/integrations/add/$pluginKey' |
| 116 | | '/{-$orgSlug}/plugins/$pluginId/$' | 139 | | '/{-$orgSlug}/plugins/$pluginId/$' |
| 117 | id: | 140 | id: |
| 118 | | '__root__' | 141 | | '__root__' |
| 119 | | '/{-$orgSlug}/policies' | 142 | | '/{-$orgSlug}/policies' |
| 120 | | '/{-$orgSlug}/secrets' | 143 | | '/{-$orgSlug}/secrets' |
| 144 | | '/{-$orgSlug}/toolkits' | ||
| 121 | | '/{-$orgSlug}/tools' | 145 | | '/{-$orgSlug}/tools' |
| 122 | | '/{-$orgSlug}/' | 146 | | '/{-$orgSlug}/' |
| 123 | | '/{-$orgSlug}/integrations/$namespace' | 147 | | '/{-$orgSlug}/integrations/$namespace' |
| 124 | | '/{-$orgSlug}/resume/$executionId' | 148 | | '/{-$orgSlug}/resume/$executionId' |
| 149 | | '/{-$orgSlug}/toolkits/$toolkitSlug' | ||
| 125 | | '/{-$orgSlug}/integrations/add/$pluginKey' | 150 | | '/{-$orgSlug}/integrations/add/$pluginKey' |
| 126 | | '/{-$orgSlug}/plugins/$pluginId/$' | 151 | | '/{-$orgSlug}/plugins/$pluginId/$' |
| 127 | fileRoutesById: FileRoutesById | 152 | fileRoutesById: FileRoutesById |
| @@ -129,6 +154,7 @@ export interface FileRouteTypes { · 1 unmodified line | |||
| 129 | export interface RootRouteChildren { | 154 | export interface RootRouteChildren { |
| 130 | DotPoliciesRoute: typeof DotPoliciesRoute | 155 | DotPoliciesRoute: typeof DotPoliciesRoute |
| 131 | DotSecretsRoute: typeof DotSecretsRoute | 156 | DotSecretsRoute: typeof DotSecretsRoute |
| 157 | DotToolkitsRoute: typeof DotToolkitsRouteWithChildren | ||
| 132 | DotToolsRoute: typeof DotToolsRoute | 158 | DotToolsRoute: typeof DotToolsRoute |
| 133 | DotIndexRoute: typeof DotIndexRoute | 159 | DotIndexRoute: typeof DotIndexRoute |
| 134 | DotIntegrationsDotnamespaceRoute: typeof DotIntegrationsDotnamespaceRoute | 160 | DotIntegrationsDotnamespaceRoute: typeof DotIntegrationsDotnamespaceRoute |
| @@ -153,6 +179,13 @@ declare module '@tanstack/react-router' { · 18 unmodified lines | |||
| 153 | preLoaderRoute: typeof DotToolsRouteImport | 179 | preLoaderRoute: typeof DotToolsRouteImport |
| 154 | parentRoute: typeof rootRouteImport | 180 | parentRoute: typeof rootRouteImport |
| 155 | } | 181 | } |
| 182 | '/{-$orgSlug}/toolkits': { | ||
| 183 | id: '/{-$orgSlug}/toolkits' | ||
| 184 | path: '/{-$orgSlug}/toolkits' | ||
| 185 | fullPath: '/{-$orgSlug}/toolkits' | ||
| 186 | preLoaderRoute: typeof DotToolkitsRouteImport | ||
| 187 | parentRoute: typeof rootRouteImport | ||
| 188 | } | ||
| 156 | '/{-$orgSlug}/secrets': { | 189 | '/{-$orgSlug}/secrets': { |
| 157 | id: '/{-$orgSlug}/secrets' | 190 | id: '/{-$orgSlug}/secrets' |
| 158 | path: '/{-$orgSlug}/secrets' | 191 | path: '/{-$orgSlug}/secrets' |
| @@ -167,6 +200,13 @@ declare module '@tanstack/react-router' { · 8 unmodified lines | |||
| 167 | preLoaderRoute: typeof DotPoliciesRouteImport | 200 | preLoaderRoute: typeof DotPoliciesRouteImport |
| 168 | parentRoute: typeof rootRouteImport | 201 | parentRoute: typeof rootRouteImport |
| 169 | } | 202 | } |
| 203 | '/{-$orgSlug}/toolkits/$toolkitSlug': { | ||
| 204 | id: '/{-$orgSlug}/toolkits/$toolkitSlug' | ||
| 205 | path: '/$toolkitSlug' | ||
| 206 | fullPath: '/{-$orgSlug}/toolkits/$toolkitSlug' | ||
| 207 | preLoaderRoute: typeof DotToolkitsDottoolkitSlugRouteImport | ||
| 208 | parentRoute: typeof DotToolkitsRoute | ||
| 209 | } | ||
| 170 | '/{-$orgSlug}/resume/$executionId': { | 210 | '/{-$orgSlug}/resume/$executionId': { |
| 171 | id: '/{-$orgSlug}/resume/$executionId' | 211 | id: '/{-$orgSlug}/resume/$executionId' |
| 172 | path: '/{-$orgSlug}/resume/$executionId' | 212 | path: '/{-$orgSlug}/resume/$executionId' |
| @@ -198,9 +238,22 @@ declare module '@tanstack/react-router' { · 25 unmodified lines | |||
| 198 | } | 238 | } |
| 199 | } | 239 | } |
| 200 | 240 | ||
| 241 | interface DotToolkitsRouteChildren { | ||
| 242 | DotToolkitsDottoolkitSlugRoute: typeof DotToolkitsDottoolkitSlugRoute | ||
| 243 | } | ||
| 244 | |||
| 245 | const DotToolkitsRouteChildren: DotToolkitsRouteChildren = { | ||
| 246 | DotToolkitsDottoolkitSlugRoute: DotToolkitsDottoolkitSlugRoute, | ||
| 247 | } | ||
| 248 | |||
| 249 | const DotToolkitsRouteWithChildren = DotToolkitsRoute._addFileChildren( | ||
| 250 | DotToolkitsRouteChildren, | ||
| 251 | ) | ||
| 252 | |||
| 201 | const rootRouteChildren: RootRouteChildren = { | 253 | const rootRouteChildren: RootRouteChildren = { |
| 202 | DotPoliciesRoute: DotPoliciesRoute, | 254 | DotPoliciesRoute: DotPoliciesRoute, |
| 203 | DotSecretsRoute: DotSecretsRoute, | 255 | DotSecretsRoute: DotSecretsRoute, |
| 256 | DotToolkitsRoute: DotToolkitsRouteWithChildren, | ||
| 204 | DotToolsRoute: DotToolsRoute, | 257 | DotToolsRoute: DotToolsRoute, |
| 205 | DotIndexRoute: DotIndexRoute, | 258 | DotIndexRoute: DotIndexRoute, |
| 206 | DotIntegrationsDotnamespaceRoute: DotIntegrationsDotnamespaceRoute, | 259 | DotIntegrationsDotnamespaceRoute: DotIntegrationsDotnamespaceRoute, |
| @@ -0,0 +1,23 @@ | |||
| 1 | import { notFound } from "@tanstack/react-router"; | ||
| 2 | import { useClientPlugins } from "@executor-js/sdk/client"; | ||
| 3 | |||
| 4 | export function ToolkitsPluginRoute(props: { toolkitSlug?: string }) { | ||
| 5 | const plugins = useClientPlugins(); | ||
| 6 | const plugin = plugins.find((candidate) => candidate.id === "toolkits"); | ||
| 7 | const path = props.toolkitSlug ? `/${props.toolkitSlug}` : "/"; | ||
| 8 | const page = plugin?.pages?.find((candidate) => | ||
| 9 | props.toolkitSlug ? candidate.path === "/$toolkitSlug" : candidate.path === "/", | ||
| 10 | ); | ||
| 11 | |||
| 12 | // oxlint-disable-next-line executor/no-try-catch-or-throw -- boundary: TanStack Router represents not-found from components by throwing notFound() | ||
| 13 | if (!plugin || !page) throw notFound(); | ||
| 14 | |||
| 15 | const Component = page.component; | ||
| 16 | return ( | ||
| 17 | <Component | ||
| 18 | params={props.toolkitSlug ? { toolkitSlug: props.toolkitSlug } : {}} | ||
| 19 | path={path} | ||
| 20 | pluginId={plugin.id} | ||
| 21 | /> | ||
| 22 | ); | ||
| 23 | } | ||
| @@ -0,0 +1,12 @@ | |||
| 1 | import { createFileRoute } from "@tanstack/react-router"; | ||
| 2 | |||
| 3 | import { ToolkitsPluginRoute } from "./toolkits-route"; | ||
| 4 | |||
| 5 | export const Route = createFileRoute("/{-$orgSlug}/toolkits/$toolkitSlug")({ | ||
| 6 | component: ToolkitsRouteComponent, | ||
| 7 | }); | ||
| 8 | |||
| 9 | function ToolkitsRouteComponent() { | ||
| 10 | const { toolkitSlug } = Route.useParams(); | ||
| 11 | return <ToolkitsPluginRoute toolkitSlug={toolkitSlug} />; | ||
| 12 | } | ||
| @@ -0,0 +1,12 @@ | |||
| 1 | import { createFileRoute, useParams } from "@tanstack/react-router"; | ||
| 2 | |||
| 3 | import { ToolkitsPluginRoute } from "./toolkits-route"; | ||
| 4 | |||
| 5 | export const Route = createFileRoute("/{-$orgSlug}/toolkits")({ | ||
| 6 | component: ToolkitsRouteComponent, | ||
| 7 | }); | ||
| 8 | |||
| 9 | function ToolkitsRouteComponent() { | ||
| 10 | const { toolkitSlug } = useParams({ strict: false }) as { toolkitSlug?: string }; | ||
| 11 | return <ToolkitsPluginRoute toolkitSlug={toolkitSlug} />; | ||
| 12 | } | ||