@vertesia/tools-admin-ui 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +13 -0
- package/README.md +120 -0
- package/lib/AdminApp.d.ts +13 -0
- package/lib/AdminApp.d.ts.map +1 -0
- package/lib/AdminContext.d.ts +10 -0
- package/lib/AdminContext.d.ts.map +1 -0
- package/lib/components/CollectionCard.d.ts +5 -0
- package/lib/components/CollectionCard.d.ts.map +1 -0
- package/lib/components/DetailPage.d.ts +13 -0
- package/lib/components/DetailPage.d.ts.map +1 -0
- package/lib/components/EndpointPanel.d.ts +5 -0
- package/lib/components/EndpointPanel.d.ts.map +1 -0
- package/lib/components/HeroSection.d.ts +9 -0
- package/lib/components/HeroSection.d.ts.map +1 -0
- package/lib/components/ResourceCard.d.ts +5 -0
- package/lib/components/ResourceCard.d.ts.map +1 -0
- package/lib/components/ResourceSection.d.ts +10 -0
- package/lib/components/ResourceSection.d.ts.map +1 -0
- package/lib/components/SearchBar.d.ts +10 -0
- package/lib/components/SearchBar.d.ts.map +1 -0
- package/lib/components/SummaryBadge.d.ts +5 -0
- package/lib/components/SummaryBadge.d.ts.map +1 -0
- package/lib/components/index.d.ts +9 -0
- package/lib/components/index.d.ts.map +1 -0
- package/lib/hooks.d.ts +26 -0
- package/lib/hooks.d.ts.map +1 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/pages/HomePage.d.ts +2 -0
- package/lib/pages/HomePage.d.ts.map +1 -0
- package/lib/pages/InteractionCollection.d.ts +2 -0
- package/lib/pages/InteractionCollection.d.ts.map +1 -0
- package/lib/pages/InteractionDetail.d.ts +2 -0
- package/lib/pages/InteractionDetail.d.ts.map +1 -0
- package/lib/pages/SkillCollection.d.ts +2 -0
- package/lib/pages/SkillCollection.d.ts.map +1 -0
- package/lib/pages/SkillDetail.d.ts +2 -0
- package/lib/pages/SkillDetail.d.ts.map +1 -0
- package/lib/pages/TemplateCollection.d.ts +2 -0
- package/lib/pages/TemplateCollection.d.ts.map +1 -0
- package/lib/pages/TemplateDetail.d.ts +2 -0
- package/lib/pages/TemplateDetail.d.ts.map +1 -0
- package/lib/pages/ToolCollection.d.ts +2 -0
- package/lib/pages/ToolCollection.d.ts.map +1 -0
- package/lib/pages/TypeCollection.d.ts +2 -0
- package/lib/pages/TypeCollection.d.ts.map +1 -0
- package/lib/pages/TypeDetail.d.ts +2 -0
- package/lib/pages/TypeDetail.d.ts.map +1 -0
- package/lib/tools-admin-ui.js +935 -0
- package/lib/tools-admin-ui.js.map +1 -0
- package/lib/types.d.ts +89 -0
- package/lib/types.d.ts.map +1 -0
- package/package.json +50 -0
- package/src/AdminApp.tsx +87 -0
- package/src/AdminContext.ts +17 -0
- package/src/admin.css +650 -0
- package/src/components/CollectionCard.tsx +23 -0
- package/src/components/DetailPage.tsx +40 -0
- package/src/components/EndpointPanel.tsx +24 -0
- package/src/components/HeroSection.tsx +88 -0
- package/src/components/ResourceCard.tsx +25 -0
- package/src/components/ResourceSection.tsx +31 -0
- package/src/components/SearchBar.tsx +35 -0
- package/src/components/SummaryBadge.tsx +9 -0
- package/src/components/index.ts +8 -0
- package/src/dev/env.ts +14 -0
- package/src/dev/main.tsx +37 -0
- package/src/hooks.ts +36 -0
- package/src/index.ts +6 -0
- package/src/pages/HomePage.tsx +99 -0
- package/src/pages/InteractionCollection.tsx +59 -0
- package/src/pages/InteractionDetail.tsx +92 -0
- package/src/pages/SkillCollection.tsx +111 -0
- package/src/pages/SkillDetail.tsx +112 -0
- package/src/pages/TemplateCollection.tsx +54 -0
- package/src/pages/TemplateDetail.tsx +68 -0
- package/src/pages/ToolCollection.tsx +55 -0
- package/src/pages/TypeCollection.tsx +60 -0
- package/src/pages/TypeDetail.tsx +63 -0
- package/src/types.ts +304 -0
- package/src/vite-env.d.ts +1 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Copyright 2024 Composable
|
|
2
|
+
|
|
3
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
you may not use this file except in compliance with the License.
|
|
5
|
+
You may obtain a copy of the License at
|
|
6
|
+
|
|
7
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
|
|
9
|
+
Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
See the License for the specific language governing permissions and
|
|
13
|
+
limitations under the License.
|
package/README.md
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# @vertesia/tools-admin-ui
|
|
2
|
+
|
|
3
|
+
Shared admin UI for Vertesia tool servers. Provides a browsable interface for all resources exposed by a plugin: tools, skills, interactions, content types, rendering templates, and MCP providers.
|
|
4
|
+
|
|
5
|
+
## How it works
|
|
6
|
+
|
|
7
|
+
The admin UI is a React component library that ships as a single ES module (`lib/tools-admin-ui.js`) with CSS inlined into the bundle. It is designed to be embedded in two contexts:
|
|
8
|
+
|
|
9
|
+
1. **Plugin dev mode** — mounted at the root path (`/`) alongside the plugin app (at `/app/`)
|
|
10
|
+
2. **Standalone dev mode** — run directly via `pnpm dev` for working on the admin UI itself
|
|
11
|
+
|
|
12
|
+
### Data flow
|
|
13
|
+
|
|
14
|
+
On load, the admin UI fetches the tool server's API endpoints in parallel:
|
|
15
|
+
|
|
16
|
+
| Endpoint | Returns |
|
|
17
|
+
|----------|---------|
|
|
18
|
+
| `GET /api` | Server info (name, version, endpoints) |
|
|
19
|
+
| `GET /api/interactions` | Interaction collections and refs |
|
|
20
|
+
| `GET /api/tools` | Tool collections and definitions |
|
|
21
|
+
| `GET /api/skills` | Skill collections (exposed as tools) |
|
|
22
|
+
| `GET /api/types` | Content type collections and schemas |
|
|
23
|
+
| `GET /api/templates` | Template collections and refs |
|
|
24
|
+
|
|
25
|
+
MCP providers are derived from the server info (`endpoints.mcp`).
|
|
26
|
+
|
|
27
|
+
### Pages and routing
|
|
28
|
+
|
|
29
|
+
| Route | Page | Description |
|
|
30
|
+
|-------|------|-------------|
|
|
31
|
+
| `/` | Home | Collection cards grouped by type, or search results |
|
|
32
|
+
| `/tools/:collection` | Tool collection | Lists tools with input schemas |
|
|
33
|
+
| `/skills/:collection` | Skill collection | Lists skills with widgets summary |
|
|
34
|
+
| `/skills/:collection/:name` | Skill detail | Full definition: instructions, schema, related tools |
|
|
35
|
+
| `/interactions/:collection` | Interaction collection | Lists interactions in a collection |
|
|
36
|
+
| `/interactions/:collection/:name` | Interaction detail | Prompts, result schema, agent runner flags |
|
|
37
|
+
| `/types/:collection` | Type collection | Lists content types |
|
|
38
|
+
| `/types/:collection/:name` | Type detail | Object schema, table layout, flags |
|
|
39
|
+
| `/templates/:collection` | Template collection | Lists rendering templates |
|
|
40
|
+
| `/templates/:collection/:name` | Template detail | Instructions, assets, type |
|
|
41
|
+
|
|
42
|
+
The home page has two modes:
|
|
43
|
+
- **Browse** (no search) — shows collection cards grouped by resource type
|
|
44
|
+
- **Search** — filters across all individual resources and shows matching cards
|
|
45
|
+
|
|
46
|
+
## Development
|
|
47
|
+
|
|
48
|
+
### Prerequisites
|
|
49
|
+
|
|
50
|
+
A running tool server with the API endpoints above. This is typically a plugin project started from the plugin template.
|
|
51
|
+
|
|
52
|
+
### Setup
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
# From the monorepo root
|
|
56
|
+
pnpm install
|
|
57
|
+
|
|
58
|
+
# Create your local env file
|
|
59
|
+
cp packages/tools-admin-ui/.env.local.example packages/tools-admin-ui/.env.local
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Edit `.env.local` to point to your running tool server:
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
VITE_API_BASE_URL=http://localhost:3000/api
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Dev mode
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
cd packages/tools-admin-ui
|
|
72
|
+
pnpm dev
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Starts a Vite dev server on `http://localhost:5174`. The dev entry point (`src/dev/main.tsx`) wraps the admin app in `VertesiaShell` for authentication and routing context.
|
|
76
|
+
|
|
77
|
+
The dev environment is configured in `src/dev/env.ts` and connects to Vertesia APIs for auth.
|
|
78
|
+
|
|
79
|
+
### Build
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
pnpm build
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
This runs two steps:
|
|
86
|
+
1. `tsc --build` — emits type declarations to `lib/`
|
|
87
|
+
2. `vite build --mode lib` — bundles the React components into `lib/tools-admin-ui.js`
|
|
88
|
+
|
|
89
|
+
All external dependencies (React, `@vertesia/*`) are externalized — only the admin UI code and its CSS are bundled.
|
|
90
|
+
|
|
91
|
+
## Usage in a plugin
|
|
92
|
+
|
|
93
|
+
The plugin template mounts the admin UI at the root path:
|
|
94
|
+
|
|
95
|
+
```tsx
|
|
96
|
+
import { AdminApp } from '@vertesia/tools-admin-ui'
|
|
97
|
+
|
|
98
|
+
const routes: Route[] = [
|
|
99
|
+
{ path: "*", Component: AdminApp },
|
|
100
|
+
{ path: "app/*", Component: AppWrapper },
|
|
101
|
+
]
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
The `AdminApp` component accepts an optional `baseUrl` prop (defaults to `'/api'`).
|
|
105
|
+
|
|
106
|
+
## Exports
|
|
107
|
+
|
|
108
|
+
```ts
|
|
109
|
+
// Components
|
|
110
|
+
export { AdminApp } from './AdminApp'
|
|
111
|
+
|
|
112
|
+
// Context
|
|
113
|
+
export { AdminContext, useAdminContext } from './AdminContext'
|
|
114
|
+
|
|
115
|
+
// Types
|
|
116
|
+
export type { AdminAppProps, AdminContextValue, ServerInfo, ResourceType, ResourceItem, CollectionInfo }
|
|
117
|
+
|
|
118
|
+
// Utilities
|
|
119
|
+
export { buildResourceData, filterResources }
|
|
120
|
+
```
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface AdminAppProps {
|
|
2
|
+
/**
|
|
3
|
+
* Base URL for the tool server API.
|
|
4
|
+
* @default '/api'
|
|
5
|
+
*/
|
|
6
|
+
baseUrl?: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Admin app shell — loads data, provides context, and renders nested routes.
|
|
10
|
+
* CSS is inlined into the JS bundle via Vite's `?inline` import.
|
|
11
|
+
*/
|
|
12
|
+
export declare function AdminApp({ baseUrl }: AdminAppProps): import("react/jsx-runtime").JSX.Element | null;
|
|
13
|
+
//# sourceMappingURL=AdminApp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminApp.d.ts","sourceRoot":"","sources":["../src/AdminApp.tsx"],"names":[],"mappings":"AA6BA,MAAM,WAAW,aAAa;IAC1B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EAAE,OAAgB,EAAE,EAAE,aAAa,kDA6C3D"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { CollectionInfo, ResourceItem, ServerInfo } from './types.js';
|
|
2
|
+
export interface AdminContextValue {
|
|
3
|
+
serverInfo: ServerInfo;
|
|
4
|
+
collections: CollectionInfo[];
|
|
5
|
+
resources: ResourceItem[];
|
|
6
|
+
baseUrl: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const AdminContext: import("react").Context<AdminContextValue | undefined>;
|
|
9
|
+
export declare function useAdminContext(): AdminContextValue;
|
|
10
|
+
//# sourceMappingURL=AdminContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminContext.d.ts","sourceRoot":"","sources":["../src/AdminContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE3E,MAAM,WAAW,iBAAiB;IAC9B,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,YAAY,wDAA0D,CAAC;AAEpF,wBAAgB,eAAe,IAAI,iBAAiB,CAInD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CollectionCard.d.ts","sourceRoot":"","sources":["../../src/components/CollectionCard.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,wBAAgB,cAAc,CAAC,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,cAAc,CAAA;CAAE,2CAmB5E"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { ResourceType } from '../types.js';
|
|
3
|
+
interface DetailPageProps {
|
|
4
|
+
type: ResourceType;
|
|
5
|
+
title: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
tags?: string[];
|
|
8
|
+
backHref?: string;
|
|
9
|
+
children?: ReactNode;
|
|
10
|
+
}
|
|
11
|
+
export declare function DetailPage({ type, title, description, tags, backHref, children }: DetailPageProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=DetailPage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DetailPage.d.ts","sourceRoot":"","sources":["../../src/components/DetailPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,UAAU,eAAe;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACxB;AAED,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,QAAc,EAAE,QAAQ,EAAE,EAAE,eAAe,2CA0BvG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EndpointPanel.d.ts","sourceRoot":"","sources":["../../src/components/EndpointPanel.tsx"],"names":[],"mappings":"AAEA,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,2CAqB7E"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ResourceItem } from '../types.js';
|
|
2
|
+
interface HeroSectionProps {
|
|
3
|
+
title: string;
|
|
4
|
+
version: string;
|
|
5
|
+
resources: ResourceItem[];
|
|
6
|
+
}
|
|
7
|
+
export declare function HeroSection({ title, version, resources }: HeroSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=HeroSection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeroSection.d.ts","sourceRoot":"","sources":["../../src/components/HeroSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAgB,MAAM,aAAa,CAAC;AAI9D,UAAU,gBAAgB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,YAAY,EAAE,CAAC;CAC7B;AAuBD,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,gBAAgB,2CAwD1E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceCard.d.ts","sourceRoot":"","sources":["../../src/components/ResourceCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,YAAY,CAAA;CAAE,2CAsBpE"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ResourceItem } from '../types.js';
|
|
2
|
+
interface ResourceSectionProps {
|
|
3
|
+
title: string;
|
|
4
|
+
subtitle: string;
|
|
5
|
+
resources: ResourceItem[];
|
|
6
|
+
showDivider?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function ResourceSection({ title, subtitle, resources, showDivider }: ResourceSectionProps): import("react/jsx-runtime").JSX.Element | null;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=ResourceSection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceSection.d.ts","sourceRoot":"","sources":["../../src/components/ResourceSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,UAAU,oBAAoB;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,oBAAoB,kDAoBhG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface SearchBarProps {
|
|
2
|
+
value: string;
|
|
3
|
+
onChange: (value: string) => void;
|
|
4
|
+
placeholder?: string;
|
|
5
|
+
resultCount?: number;
|
|
6
|
+
totalCount?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function SearchBar({ value, onChange, placeholder, resultCount, totalCount }: SearchBarProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=SearchBar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchBar.d.ts","sourceRoot":"","sources":["../../src/components/SearchBar.tsx"],"names":[],"mappings":"AAAA,UAAU,cAAc;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,cAAc,2CA0BlG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SummaryBadge.d.ts","sourceRoot":"","sources":["../../src/components/SummaryBadge.tsx"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,kDAQ9E"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { HeroSection } from './HeroSection.js';
|
|
2
|
+
export { SearchBar } from './SearchBar.js';
|
|
3
|
+
export { ResourceSection } from './ResourceSection.js';
|
|
4
|
+
export { ResourceCard } from './ResourceCard.js';
|
|
5
|
+
export { CollectionCard } from './CollectionCard.js';
|
|
6
|
+
export { EndpointPanel } from './EndpointPanel.js';
|
|
7
|
+
export { SummaryBadge } from './SummaryBadge.js';
|
|
8
|
+
export { DetailPage } from './DetailPage.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
|
package/lib/hooks.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Data fetching hooks for the admin panel.
|
|
3
|
+
*/
|
|
4
|
+
import type { ServerInfo, ResourceData } from './types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Fetches the tool server info (message, version, endpoints).
|
|
7
|
+
*/
|
|
8
|
+
export declare function useServerInfo(baseUrl: string): {
|
|
9
|
+
data: ServerInfo | undefined;
|
|
10
|
+
isLoading: boolean;
|
|
11
|
+
error: any;
|
|
12
|
+
setData: import("react").Dispatch<import("react").SetStateAction<ServerInfo | undefined>>;
|
|
13
|
+
refetch: () => Promise<void>;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Fetches all 5 resource endpoints in parallel and builds collections + flat resource list.
|
|
17
|
+
* MCP endpoints are passed separately since they come from serverInfo.
|
|
18
|
+
*/
|
|
19
|
+
export declare function useResourceData(baseUrl: string, mcpEndpoints?: string[]): {
|
|
20
|
+
data: ResourceData | undefined;
|
|
21
|
+
isLoading: boolean;
|
|
22
|
+
error: any;
|
|
23
|
+
setData: import("react").Dispatch<import("react").SetStateAction<ResourceData | undefined>>;
|
|
24
|
+
refetch: () => Promise<void>;
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG3D;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM;;;;;;EAK5C;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE;;;;;;EAavE"}
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { AdminApp } from './AdminApp.js';
|
|
2
|
+
export type { AdminAppProps } from './AdminApp.js';
|
|
3
|
+
export type { ServerInfo, ResourceType, ResourceItem, CollectionInfo } from './types.js';
|
|
4
|
+
export { buildResourceData, filterResources } from './types.js';
|
|
5
|
+
export { AdminContext, useAdminContext } from './AdminContext.js';
|
|
6
|
+
export type { AdminContextValue } from './AdminContext.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAClE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HomePage.d.ts","sourceRoot":"","sources":["../../src/pages/HomePage.tsx"],"names":[],"mappings":"AAeA,wBAAgB,QAAQ,4CAmFvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InteractionCollection.d.ts","sourceRoot":"","sources":["../../src/pages/InteractionCollection.tsx"],"names":[],"mappings":"AAMA,wBAAgB,qBAAqB,4CAoDpC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InteractionDetail.d.ts","sourceRoot":"","sources":["../../src/pages/InteractionDetail.tsx"],"names":[],"mappings":"AASA,wBAAgB,iBAAiB,4CAkFhC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SkillCollection.d.ts","sourceRoot":"","sources":["../../src/pages/SkillCollection.tsx"],"names":[],"mappings":"AAiCA,wBAAgB,eAAe,4CA6E9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SkillDetail.d.ts","sourceRoot":"","sources":["../../src/pages/SkillDetail.tsx"],"names":[],"mappings":"AAqBA,wBAAgB,WAAW,4CA0F1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplateCollection.d.ts","sourceRoot":"","sources":["../../src/pages/TemplateCollection.tsx"],"names":[],"mappings":"AAMA,wBAAgB,kBAAkB,4CA+CjC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplateDetail.d.ts","sourceRoot":"","sources":["../../src/pages/TemplateDetail.tsx"],"names":[],"mappings":"AAeA,wBAAgB,cAAc,4CAoD7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolCollection.d.ts","sourceRoot":"","sources":["../../src/pages/ToolCollection.tsx"],"names":[],"mappings":"AAiBA,wBAAgB,cAAc,4CAqC7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypeCollection.d.ts","sourceRoot":"","sources":["../../src/pages/TypeCollection.tsx"],"names":[],"mappings":"AAMA,wBAAgB,cAAc,4CAqD7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypeDetail.d.ts","sourceRoot":"","sources":["../../src/pages/TypeDetail.tsx"],"names":[],"mappings":"AAMA,wBAAgB,UAAU,4CAwDzB"}
|