@mano8/astro-prompt-m8 0.1.0-alpha.1
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 +201 -0
- package/README.md +116 -0
- package/dist/src/integration.d.ts +42 -0
- package/dist/src/integration.d.ts.map +1 -0
- package/dist/src/integration.js +86 -0
- package/dist/src/integration.js.map +1 -0
- package/dist/src/lib/csp.d.ts +25 -0
- package/dist/src/lib/csp.d.ts.map +1 -0
- package/dist/src/lib/csp.js +53 -0
- package/dist/src/lib/csp.js.map +1 -0
- package/dist/src/middleware.d.ts +4 -0
- package/dist/src/middleware.d.ts.map +1 -0
- package/dist/src/middleware.js +24 -0
- package/dist/src/middleware.js.map +1 -0
- package/dist/src/runtime/api/admin.d.ts +15 -0
- package/dist/src/runtime/api/admin.d.ts.map +1 -0
- package/dist/src/runtime/api/admin.js +39 -0
- package/dist/src/runtime/api/admin.js.map +1 -0
- package/dist/src/runtime/api/blocks.d.ts +24 -0
- package/dist/src/runtime/api/blocks.d.ts.map +1 -0
- package/dist/src/runtime/api/blocks.js +74 -0
- package/dist/src/runtime/api/blocks.js.map +1 -0
- package/dist/src/runtime/api/categories.d.ts +7 -0
- package/dist/src/runtime/api/categories.d.ts.map +1 -0
- package/dist/src/runtime/api/categories.js +49 -0
- package/dist/src/runtime/api/categories.js.map +1 -0
- package/dist/src/runtime/api/dashboard.d.ts +6 -0
- package/dist/src/runtime/api/dashboard.d.ts.map +1 -0
- package/dist/src/runtime/api/dashboard.js +21 -0
- package/dist/src/runtime/api/dashboard.js.map +1 -0
- package/dist/src/runtime/api/index.d.ts +46 -0
- package/dist/src/runtime/api/index.d.ts.map +1 -0
- package/dist/src/runtime/api/index.js +48 -0
- package/dist/src/runtime/api/index.js.map +1 -0
- package/dist/src/runtime/api/internal.server.d.ts +18 -0
- package/dist/src/runtime/api/internal.server.d.ts.map +1 -0
- package/dist/src/runtime/api/internal.server.js +43 -0
- package/dist/src/runtime/api/internal.server.js.map +1 -0
- package/dist/src/runtime/api/templates.d.ts +14 -0
- package/dist/src/runtime/api/templates.d.ts.map +1 -0
- package/dist/src/runtime/api/templates.js +108 -0
- package/dist/src/runtime/api/templates.js.map +1 -0
- package/dist/src/runtime/authAdapter.d.ts +48 -0
- package/dist/src/runtime/authAdapter.d.ts.map +1 -0
- package/dist/src/runtime/authAdapter.js +62 -0
- package/dist/src/runtime/authAdapter.js.map +1 -0
- package/dist/src/runtime/client.d.ts +24 -0
- package/dist/src/runtime/client.d.ts.map +1 -0
- package/dist/src/runtime/client.js +85 -0
- package/dist/src/runtime/client.js.map +1 -0
- package/dist/src/runtime/compatibility.d.ts +32 -0
- package/dist/src/runtime/compatibility.d.ts.map +1 -0
- package/dist/src/runtime/compatibility.js +97 -0
- package/dist/src/runtime/compatibility.js.map +1 -0
- package/dist/src/runtime/config.d.ts +16 -0
- package/dist/src/runtime/config.d.ts.map +1 -0
- package/dist/src/runtime/config.js +22 -0
- package/dist/src/runtime/config.js.map +1 -0
- package/dist/src/runtime/errors.d.ts +23 -0
- package/dist/src/runtime/errors.d.ts.map +1 -0
- package/dist/src/runtime/errors.js +50 -0
- package/dist/src/runtime/errors.js.map +1 -0
- package/dist/src/runtime/hooks/index.d.ts +9 -0
- package/dist/src/runtime/hooks/index.d.ts.map +1 -0
- package/dist/src/runtime/hooks/index.js +9 -0
- package/dist/src/runtime/hooks/index.js.map +1 -0
- package/dist/src/runtime/hooks/useComposePrompt.d.ts +13 -0
- package/dist/src/runtime/hooks/useComposePrompt.d.ts.map +1 -0
- package/dist/src/runtime/hooks/useComposePrompt.js +17 -0
- package/dist/src/runtime/hooks/useComposePrompt.js.map +1 -0
- package/dist/src/runtime/hooks/usePromptAdmin.d.ts +10 -0
- package/dist/src/runtime/hooks/usePromptAdmin.d.ts.map +1 -0
- package/dist/src/runtime/hooks/usePromptAdmin.js +33 -0
- package/dist/src/runtime/hooks/usePromptAdmin.js.map +1 -0
- package/dist/src/runtime/hooks/usePromptBlock.d.ts +18 -0
- package/dist/src/runtime/hooks/usePromptBlock.d.ts.map +1 -0
- package/dist/src/runtime/hooks/usePromptBlock.js +25 -0
- package/dist/src/runtime/hooks/usePromptBlock.js.map +1 -0
- package/dist/src/runtime/hooks/usePromptBlocks.d.ts +22 -0
- package/dist/src/runtime/hooks/usePromptBlocks.d.ts.map +1 -0
- package/dist/src/runtime/hooks/usePromptBlocks.js +53 -0
- package/dist/src/runtime/hooks/usePromptBlocks.js.map +1 -0
- package/dist/src/runtime/hooks/usePromptCategories.d.ts +20 -0
- package/dist/src/runtime/hooks/usePromptCategories.d.ts.map +1 -0
- package/dist/src/runtime/hooks/usePromptCategories.js +53 -0
- package/dist/src/runtime/hooks/usePromptCategories.js.map +1 -0
- package/dist/src/runtime/hooks/usePromptDashboard.d.ts +13 -0
- package/dist/src/runtime/hooks/usePromptDashboard.d.ts.map +1 -0
- package/dist/src/runtime/hooks/usePromptDashboard.js +11 -0
- package/dist/src/runtime/hooks/usePromptDashboard.js.map +1 -0
- package/dist/src/runtime/hooks/usePromptTemplate.d.ts +33 -0
- package/dist/src/runtime/hooks/usePromptTemplate.d.ts.map +1 -0
- package/dist/src/runtime/hooks/usePromptTemplate.js +43 -0
- package/dist/src/runtime/hooks/usePromptTemplate.js.map +1 -0
- package/dist/src/runtime/hooks/usePromptTemplates.d.ts +37 -0
- package/dist/src/runtime/hooks/usePromptTemplates.d.ts.map +1 -0
- package/dist/src/runtime/hooks/usePromptTemplates.js +106 -0
- package/dist/src/runtime/hooks/usePromptTemplates.js.map +1 -0
- package/dist/src/runtime/listParams.d.ts +27 -0
- package/dist/src/runtime/listParams.d.ts.map +1 -0
- package/dist/src/runtime/listParams.js +67 -0
- package/dist/src/runtime/listParams.js.map +1 -0
- package/dist/src/runtime/queryKeys.d.ts +25 -0
- package/dist/src/runtime/queryKeys.d.ts.map +1 -0
- package/dist/src/runtime/queryKeys.js +29 -0
- package/dist/src/runtime/queryKeys.js.map +1 -0
- package/dist/src/runtime/react/AdminPromptPanel.d.ts +21 -0
- package/dist/src/runtime/react/AdminPromptPanel.d.ts.map +1 -0
- package/dist/src/runtime/react/AdminPromptPanel.js +53 -0
- package/dist/src/runtime/react/AdminPromptPanel.js.map +1 -0
- package/dist/src/runtime/react/PromptBlockLibrary.d.ts +36 -0
- package/dist/src/runtime/react/PromptBlockLibrary.d.ts.map +1 -0
- package/dist/src/runtime/react/PromptBlockLibrary.js +122 -0
- package/dist/src/runtime/react/PromptBlockLibrary.js.map +1 -0
- package/dist/src/runtime/react/PromptComposer.d.ts +24 -0
- package/dist/src/runtime/react/PromptComposer.d.ts.map +1 -0
- package/dist/src/runtime/react/PromptComposer.js +48 -0
- package/dist/src/runtime/react/PromptComposer.js.map +1 -0
- package/dist/src/runtime/react/PromptProvider.d.ts +16 -0
- package/dist/src/runtime/react/PromptProvider.d.ts.map +1 -0
- package/dist/src/runtime/react/PromptProvider.js +79 -0
- package/dist/src/runtime/react/PromptProvider.js.map +1 -0
- package/dist/src/runtime/react/PromptQueryProvider.d.ts +8 -0
- package/dist/src/runtime/react/PromptQueryProvider.d.ts.map +1 -0
- package/dist/src/runtime/react/PromptQueryProvider.js +11 -0
- package/dist/src/runtime/react/PromptQueryProvider.js.map +1 -0
- package/dist/src/runtime/react/PromptTemplateEditor.d.ts +36 -0
- package/dist/src/runtime/react/PromptTemplateEditor.d.ts.map +1 -0
- package/dist/src/runtime/react/PromptTemplateEditor.js +141 -0
- package/dist/src/runtime/react/PromptTemplateEditor.js.map +1 -0
- package/dist/src/runtime/react/RequireSuperuser.d.ts +7 -0
- package/dist/src/runtime/react/RequireSuperuser.d.ts.map +1 -0
- package/dist/src/runtime/react/RequireSuperuser.js +10 -0
- package/dist/src/runtime/react/RequireSuperuser.js.map +1 -0
- package/dist/src/runtime/react/default-ui/index.d.ts +17 -0
- package/dist/src/runtime/react/default-ui/index.d.ts.map +1 -0
- package/dist/src/runtime/react/default-ui/index.js +23 -0
- package/dist/src/runtime/react/default-ui/index.js.map +1 -0
- package/dist/src/runtime/react/index.d.ts +8 -0
- package/dist/src/runtime/react/index.d.ts.map +1 -0
- package/dist/src/runtime/react/index.js +8 -0
- package/dist/src/runtime/react/index.js.map +1 -0
- package/dist/src/runtime/routes.d.ts +17 -0
- package/dist/src/runtime/routes.d.ts.map +1 -0
- package/dist/src/runtime/routes.js +33 -0
- package/dist/src/runtime/routes.js.map +1 -0
- package/dist/src/runtime/schemas.d.ts +286 -0
- package/dist/src/runtime/schemas.d.ts.map +1 -0
- package/dist/src/runtime/schemas.js +172 -0
- package/dist/src/runtime/schemas.js.map +1 -0
- package/package.json +99 -0
- package/registry/r/admin-prompt-dashboard.json +23 -0
- package/registry/r/prompt-block-editor.json +20 -0
- package/registry/r/prompt-dashboard-overview.json +22 -0
- package/registry/r/prompt-maintenance-panel.json +23 -0
- package/registry/r/prompt-template-editor.json +20 -0
- package/registry/r/registry.json +37 -0
- package/registry.json +86 -0
- package/src/routes/admin/prompts.astro +11 -0
- package/src/routes/blocks.astro +11 -0
- package/src/routes/composer.astro +12 -0
- package/src/routes/templates.astro +11 -0
- package/src/scaffold/styles/prompt.css +9 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const EMPTY_PARAMS = Object.freeze({});
|
|
2
|
+
function normalizeParams(params = {}) {
|
|
3
|
+
const entries = Object.entries(params)
|
|
4
|
+
.filter((entry) => entry[1] !== undefined)
|
|
5
|
+
.sort(([left], [right]) => left.localeCompare(right));
|
|
6
|
+
return entries.length
|
|
7
|
+
? Object.freeze(Object.fromEntries(entries))
|
|
8
|
+
: EMPTY_PARAMS;
|
|
9
|
+
}
|
|
10
|
+
export const promptKeys = {
|
|
11
|
+
all: () => ["prompt"],
|
|
12
|
+
blockLists: () => ["prompt", "blocks"],
|
|
13
|
+
blocks: (params = {}) => ["prompt", "blocks", normalizeParams(params)],
|
|
14
|
+
block: (blockId) => ["prompt", "block", blockId],
|
|
15
|
+
blockSlug: (slug) => ["prompt", "block-slug", slug],
|
|
16
|
+
templateLists: () => ["prompt", "templates"],
|
|
17
|
+
templates: (params = {}) => ["prompt", "templates", normalizeParams(params)],
|
|
18
|
+
template: (templateId) => ["prompt", "template", templateId],
|
|
19
|
+
templateSlug: (slug) => ["prompt", "template-slug", slug],
|
|
20
|
+
templateBlocks: (templateId) => ["prompt", "template-blocks", templateId],
|
|
21
|
+
compose: (templateId) => ["prompt", "compose", templateId],
|
|
22
|
+
categoryLists: () => ["prompt", "categories"],
|
|
23
|
+
categories: (params = {}) => ["prompt", "categories", normalizeParams(params)],
|
|
24
|
+
category: (categoryId) => ["prompt", "category", categoryId],
|
|
25
|
+
adminOverview: () => ["prompt", "admin", "overview"],
|
|
26
|
+
dashboardActivity: () => ["prompt", "dashboard", "activity"],
|
|
27
|
+
dashboardActivityCurrent: () => ["prompt", "dashboard", "activity-current"]
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=queryKeys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryKeys.js","sourceRoot":"","sources":["../../../src/runtime/queryKeys.ts"],"names":[],"mappings":"AAIA,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAoC,CAAC;AAE1E,SAAS,eAAe,CACtB,SAAkB,EAAa;IAE/B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SACnC,MAAM,CACL,CAAC,KAAK,EAAiF,EAAE,CACvF,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CACzB;SACA,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAExD,OAAO,OAAO,CAAC,MAAM;QACnB,CAAC,CAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAA2C;QACvF,CAAC,CAAE,YAA2C,CAAC;AACnD,CAAC;AAMD,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAU;IAC9B,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAU;IAC/C,MAAM,EAAE,CAAC,SAA0B,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,CAAU;IAChG,KAAK,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAU;IACjE,SAAS,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAU;IACpE,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAU;IACrD,SAAS,EAAE,CAAC,SAA6B,EAAE,EAAE,EAAE,CAC7C,CAAC,QAAQ,EAAE,WAAW,EAAE,eAAe,CAAC,MAAM,CAAC,CAAU;IAC3D,QAAQ,EAAE,CAAC,UAAkB,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAU;IAC7E,YAAY,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,eAAe,EAAE,IAAI,CAAU;IAC1E,cAAc,EAAE,CAAC,UAAkB,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,iBAAiB,EAAE,UAAU,CAAU;IAC1F,OAAO,EAAE,CAAC,UAAkB,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAU;IAC3E,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAU;IACtD,UAAU,EAAE,CAAC,SAAuB,EAAE,EAAE,EAAE,CACxC,CAAC,QAAQ,EAAE,YAAY,EAAE,eAAe,CAAC,MAAM,CAAC,CAAU;IAC5D,QAAQ,EAAE,CAAC,UAAkB,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAU;IAC7E,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAU;IAC7D,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAU;IACrE,wBAAwB,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,kBAAkB,CAAU;CACrF,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export interface AdminPromptDashboardLabels {
|
|
3
|
+
title: string;
|
|
4
|
+
subtitle: string;
|
|
5
|
+
forbidden: string;
|
|
6
|
+
blocks: string;
|
|
7
|
+
templates: string;
|
|
8
|
+
categories: string;
|
|
9
|
+
users: string;
|
|
10
|
+
loading: string;
|
|
11
|
+
error: string;
|
|
12
|
+
emptyActivity: string;
|
|
13
|
+
noCategories: string;
|
|
14
|
+
activityFor: string;
|
|
15
|
+
overviewTitle: string;
|
|
16
|
+
}
|
|
17
|
+
export interface AdminPromptPanelProps {
|
|
18
|
+
labels?: Partial<AdminPromptDashboardLabels>;
|
|
19
|
+
}
|
|
20
|
+
export declare function AdminPromptPanel({ labels }: AdminPromptPanelProps): React.JSX.Element;
|
|
21
|
+
//# sourceMappingURL=AdminPromptPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminPromptPanel.d.ts","sourceRoot":"","sources":["../../../../src/runtime/react/AdminPromptPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAkBD,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC,0BAA0B,CAAC,CAAC;CAC9C;AAWD,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAAE,qBAAqB,qBAgFjE"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { usePromptAdmin } from "../hooks/usePromptAdmin.js";
|
|
4
|
+
const DEFAULT_LABELS = {
|
|
5
|
+
title: "Prompt admin",
|
|
6
|
+
subtitle: "Prompt-engine overview at a glance.",
|
|
7
|
+
forbidden: "You need administrator access to view this page.",
|
|
8
|
+
blocks: "Blocks",
|
|
9
|
+
templates: "Templates",
|
|
10
|
+
categories: "Categories",
|
|
11
|
+
users: "Active users",
|
|
12
|
+
loading: "Loading…",
|
|
13
|
+
error: "Could not load admin data.",
|
|
14
|
+
emptyActivity: "No recent activity.",
|
|
15
|
+
noCategories: "No categories yet.",
|
|
16
|
+
activityFor: "Model",
|
|
17
|
+
overviewTitle: "Overview"
|
|
18
|
+
};
|
|
19
|
+
function StatCard({ label, value }) {
|
|
20
|
+
return (_jsxs("div", { className: "rounded-md border bg-card p-4", children: [_jsx("p", { className: "text-sm font-medium text-muted-foreground", children: label }), _jsx("p", { className: "mt-1 text-2xl font-semibold tabular-nums", children: value })] }));
|
|
21
|
+
}
|
|
22
|
+
export function AdminPromptPanel({ labels }) {
|
|
23
|
+
const t = { ...DEFAULT_LABELS, ...labels };
|
|
24
|
+
const { allowed, overview, loading, error, load } = usePromptAdmin();
|
|
25
|
+
const [ready, setReady] = React.useState(false);
|
|
26
|
+
React.useEffect(() => {
|
|
27
|
+
if (!allowed) {
|
|
28
|
+
setReady(true);
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
let cancelled = false;
|
|
32
|
+
void load()
|
|
33
|
+
.catch(() => undefined)
|
|
34
|
+
.finally(() => {
|
|
35
|
+
if (!cancelled)
|
|
36
|
+
setReady(true);
|
|
37
|
+
});
|
|
38
|
+
return () => {
|
|
39
|
+
cancelled = true;
|
|
40
|
+
};
|
|
41
|
+
}, [allowed, load]);
|
|
42
|
+
if (!allowed) {
|
|
43
|
+
return (_jsx("section", { className: "not-content mx-auto w-full max-w-md py-10 text-center text-sm text-muted-foreground", children: t.forbidden }));
|
|
44
|
+
}
|
|
45
|
+
if (!ready && loading) {
|
|
46
|
+
return (_jsx("section", { className: "not-content space-y-6", "aria-busy": "true", children: _jsx("p", { className: "text-sm", children: t.loading }) }));
|
|
47
|
+
}
|
|
48
|
+
if (error && !overview) {
|
|
49
|
+
return (_jsx("section", { className: "not-content", children: _jsx("p", { role: "alert", className: "rounded-md border border-destructive/50 p-4 text-sm text-destructive", children: t.error }) }));
|
|
50
|
+
}
|
|
51
|
+
return (_jsxs("section", { className: "not-content space-y-6", children: [_jsxs("div", { className: "space-y-1", children: [_jsx("h2", { className: "text-xl font-semibold tracking-tight", children: t.title }), _jsx("p", { className: "text-sm text-muted-foreground", children: t.subtitle })] }), _jsxs("div", { className: "grid auto-rows-fr gap-4 sm:grid-cols-2 lg:grid-cols-4", children: [_jsx(StatCard, { label: t.blocks, value: overview?.blocks.count ?? 0 }), _jsx(StatCard, { label: t.templates, value: overview?.templates.count ?? 0 }), _jsx(StatCard, { label: t.categories, value: overview?.categories?.count ?? 0 }), _jsx(StatCard, { label: t.users, value: overview?.activity.nb_users ?? 0 })] }), _jsxs("div", { className: "space-y-2", children: [_jsx("h3", { className: "text-base font-semibold", children: t.overviewTitle }), _jsx("ul", { className: "space-y-1 rounded-md border p-4 text-sm", children: (overview?.activity.activity.activity ?? []).length === 0 ? (_jsx("li", { className: "text-muted-foreground", children: t.emptyActivity })) : ((overview?.activity.activity.activity ?? []).map((counter) => (_jsxs("li", { className: "flex justify-between", children: [_jsx("span", { children: counter.model }), _jsxs("span", { className: "tabular-nums", children: ["+", counter.added, " \u00B7 \u21BB", counter.updated] })] }, counter.model)))) })] })] }));
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=AdminPromptPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminPromptPanel.js","sourceRoot":"","sources":["../../../../src/runtime/react/AdminPromptPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export interface PromptBlockLibraryLabels {
|
|
3
|
+
title: string;
|
|
4
|
+
subtitle: string;
|
|
5
|
+
empty: string;
|
|
6
|
+
error: string;
|
|
7
|
+
loading: string;
|
|
8
|
+
create: string;
|
|
9
|
+
name: string;
|
|
10
|
+
type: string;
|
|
11
|
+
content: string;
|
|
12
|
+
actions: string;
|
|
13
|
+
edit: string;
|
|
14
|
+
deleteLabel: string;
|
|
15
|
+
save: string;
|
|
16
|
+
cancel: string;
|
|
17
|
+
confirmDelete: string;
|
|
18
|
+
dynamicYes: string;
|
|
19
|
+
dynamicNo: string;
|
|
20
|
+
publicYes: string;
|
|
21
|
+
publicNo: string;
|
|
22
|
+
dynamicLabel: string;
|
|
23
|
+
publicLabel: string;
|
|
24
|
+
description: string;
|
|
25
|
+
blockTypeRole: string;
|
|
26
|
+
blockTypeTask: string;
|
|
27
|
+
blockTypeContext: string;
|
|
28
|
+
blockTypeInstruction: string;
|
|
29
|
+
blockTypeExample: string;
|
|
30
|
+
blockTypeFormat: string;
|
|
31
|
+
}
|
|
32
|
+
export interface PromptBlockLibraryProps {
|
|
33
|
+
labels?: Partial<PromptBlockLibraryLabels>;
|
|
34
|
+
}
|
|
35
|
+
export declare function PromptBlockLibrary({ labels }: PromptBlockLibraryProps): React.JSX.Element;
|
|
36
|
+
//# sourceMappingURL=PromptBlockLibrary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PromptBlockLibrary.d.ts","sourceRoot":"","sources":["../../../../src/runtime/react/PromptBlockLibrary.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;CACzB;AA4CD,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC;CAC5C;AAsCD,wBAAgB,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE,uBAAuB,qBA+MrE"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { usePromptBlocks } from "../hooks/usePromptBlocks.js";
|
|
4
|
+
const DEFAULT_LABELS = {
|
|
5
|
+
title: "Prompt blocks",
|
|
6
|
+
subtitle: "Reusable building blocks for prompt templates.",
|
|
7
|
+
empty: "No prompt blocks yet.",
|
|
8
|
+
error: "Could not load prompt blocks.",
|
|
9
|
+
loading: "Loading…",
|
|
10
|
+
create: "New block",
|
|
11
|
+
name: "Name",
|
|
12
|
+
type: "Type",
|
|
13
|
+
content: "Content",
|
|
14
|
+
actions: "Actions",
|
|
15
|
+
edit: "Edit",
|
|
16
|
+
deleteLabel: "Delete",
|
|
17
|
+
save: "Save",
|
|
18
|
+
cancel: "Cancel",
|
|
19
|
+
confirmDelete: "Delete this block?",
|
|
20
|
+
dynamicYes: "Dynamic",
|
|
21
|
+
dynamicNo: "Static",
|
|
22
|
+
publicYes: "Public",
|
|
23
|
+
publicNo: "Private",
|
|
24
|
+
dynamicLabel: "Dynamic",
|
|
25
|
+
publicLabel: "Public",
|
|
26
|
+
description: "Description",
|
|
27
|
+
blockTypeRole: "Role",
|
|
28
|
+
blockTypeTask: "Task",
|
|
29
|
+
blockTypeContext: "Context",
|
|
30
|
+
blockTypeInstruction: "Instruction",
|
|
31
|
+
blockTypeExample: "Example",
|
|
32
|
+
blockTypeFormat: "Format"
|
|
33
|
+
};
|
|
34
|
+
const TYPES = [
|
|
35
|
+
"role",
|
|
36
|
+
"task",
|
|
37
|
+
"context",
|
|
38
|
+
"instruction",
|
|
39
|
+
"example",
|
|
40
|
+
"format"
|
|
41
|
+
];
|
|
42
|
+
function typeLabel(t, type) {
|
|
43
|
+
switch (type) {
|
|
44
|
+
case "role":
|
|
45
|
+
return t.blockTypeRole;
|
|
46
|
+
case "task":
|
|
47
|
+
return t.blockTypeTask;
|
|
48
|
+
case "context":
|
|
49
|
+
return t.blockTypeContext;
|
|
50
|
+
case "instruction":
|
|
51
|
+
return t.blockTypeInstruction;
|
|
52
|
+
case "example":
|
|
53
|
+
return t.blockTypeExample;
|
|
54
|
+
case "format":
|
|
55
|
+
return t.blockTypeFormat;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
const EMPTY_DRAFT = {
|
|
59
|
+
name: "",
|
|
60
|
+
description: "",
|
|
61
|
+
content: "",
|
|
62
|
+
type: "role",
|
|
63
|
+
is_dynamic: false,
|
|
64
|
+
is_public: false
|
|
65
|
+
};
|
|
66
|
+
export function PromptBlockLibrary({ labels }) {
|
|
67
|
+
const t = { ...DEFAULT_LABELS, ...labels };
|
|
68
|
+
const { data, loading, error, createMutation, updateMutation, deleteMutation, refresh } = usePromptBlocks();
|
|
69
|
+
const [draft, setDraft] = React.useState(null);
|
|
70
|
+
const [editingId, setEditingId] = React.useState(null);
|
|
71
|
+
React.useEffect(() => {
|
|
72
|
+
void refresh();
|
|
73
|
+
}, [refresh]);
|
|
74
|
+
const startEdit = (block) => {
|
|
75
|
+
setEditingId(block.id);
|
|
76
|
+
setDraft({
|
|
77
|
+
id: block.id,
|
|
78
|
+
name: block.name,
|
|
79
|
+
description: block.description ?? "",
|
|
80
|
+
content: block.content,
|
|
81
|
+
type: block.type,
|
|
82
|
+
is_dynamic: block.is_dynamic,
|
|
83
|
+
is_public: block.is_public
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
const saveDraft = async () => {
|
|
87
|
+
if (!draft)
|
|
88
|
+
return;
|
|
89
|
+
const body = {
|
|
90
|
+
name: draft.name,
|
|
91
|
+
description: draft.description || null,
|
|
92
|
+
content: draft.content,
|
|
93
|
+
type: draft.type,
|
|
94
|
+
is_dynamic: draft.is_dynamic,
|
|
95
|
+
is_public: draft.is_public
|
|
96
|
+
};
|
|
97
|
+
if (draft.id !== undefined) {
|
|
98
|
+
await updateMutation.mutateAsync({ blockId: draft.id, body });
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
await createMutation.mutateAsync(body);
|
|
102
|
+
}
|
|
103
|
+
setDraft(null);
|
|
104
|
+
setEditingId(null);
|
|
105
|
+
};
|
|
106
|
+
const removeBlock = async (id) => {
|
|
107
|
+
if (!window.confirm(t.confirmDelete))
|
|
108
|
+
return;
|
|
109
|
+
await deleteMutation.mutateAsync(id);
|
|
110
|
+
};
|
|
111
|
+
return (_jsxs("section", { className: "not-content space-y-6", children: [_jsxs("div", { className: "flex flex-wrap items-end justify-between gap-2", children: [_jsxs("div", { className: "space-y-1", children: [_jsx("h2", { className: "text-xl font-semibold tracking-tight", children: t.title }), _jsx("p", { className: "text-sm text-muted-foreground", children: t.subtitle })] }), _jsx("button", { type: "button", className: "rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground", onClick: () => {
|
|
112
|
+
setEditingId(null);
|
|
113
|
+
setDraft({ ...EMPTY_DRAFT });
|
|
114
|
+
}, children: t.create })] }), loading && !data ? _jsx("p", { className: "text-sm", children: t.loading }) : null, error && !data ? (_jsx("p", { role: "alert", className: "text-sm text-destructive", children: t.error })) : null, draft ? (_jsxs("form", { className: "space-y-3 rounded-md border bg-card p-4", onSubmit: (e) => {
|
|
115
|
+
e.preventDefault();
|
|
116
|
+
void saveDraft();
|
|
117
|
+
}, children: [_jsxs("label", { className: "block space-y-1 text-sm", children: [_jsx("span", { className: "font-medium", children: t.name }), _jsx("input", { className: "w-full rounded-md border bg-background px-3 py-2", value: draft.name, onChange: (e) => setDraft({ ...draft, name: e.target.value }), required: true })] }), _jsxs("label", { className: "block space-y-1 text-sm", children: [_jsx("span", { className: "font-medium", children: t.description }), _jsx("input", { className: "w-full rounded-md border bg-background px-3 py-2", value: draft.description, onChange: (e) => setDraft({ ...draft, description: e.target.value }) })] }), _jsxs("label", { className: "block space-y-1 text-sm", children: [_jsx("span", { className: "font-medium", children: t.content }), _jsx("textarea", { className: "w-full rounded-md border bg-background px-3 py-2", rows: 4, value: draft.content, onChange: (e) => setDraft({ ...draft, content: e.target.value }), required: true })] }), _jsxs("div", { className: "flex flex-wrap gap-4", children: [_jsxs("label", { className: "block space-y-1 text-sm", children: [_jsx("span", { className: "font-medium", children: t.type }), _jsx("select", { className: "rounded-md border bg-background px-3 py-2", value: draft.type, onChange: (e) => setDraft({ ...draft, type: e.target.value }), children: TYPES.map((type) => (_jsx("option", { value: type, children: typeLabel(t, type) }, type))) })] }), _jsxs("label", { className: "flex items-center gap-2 self-end pb-1 text-sm", children: [_jsx("input", { type: "checkbox", checked: draft.is_dynamic, onChange: (e) => setDraft({ ...draft, is_dynamic: e.target.checked }) }), _jsx("span", { className: "font-medium", children: t.dynamicLabel })] }), _jsxs("label", { className: "flex items-center gap-2 self-end pb-1 text-sm", children: [_jsx("input", { type: "checkbox", checked: draft.is_public, onChange: (e) => setDraft({ ...draft, is_public: e.target.checked }) }), _jsx("span", { className: "font-medium", children: t.publicLabel })] })] }), _jsxs("div", { className: "flex gap-2", children: [_jsx("button", { type: "submit", className: "rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground disabled:opacity-50", disabled: createMutation.isPending || updateMutation.isPending, children: t.save }), _jsx("button", { type: "button", className: "rounded-md border px-4 py-2 text-sm font-medium", onClick: () => {
|
|
118
|
+
setDraft(null);
|
|
119
|
+
setEditingId(null);
|
|
120
|
+
}, children: t.cancel })] })] })) : null, _jsxs("ul", { className: "divide-y rounded-md border", children: [(data?.data ?? []).map((block) => (_jsxs("li", { className: "flex flex-col gap-2 p-4", children: [_jsxs("div", { className: "flex flex-wrap items-baseline justify-between gap-2", children: [_jsxs("div", { className: "space-y-0.5", children: [_jsx("h3", { className: "text-sm font-semibold", children: block.name }), _jsxs("p", { className: "text-xs text-muted-foreground", children: [typeLabel(t, block.type), " \u00B7", " ", block.is_dynamic ? t.dynamicYes : t.dynamicNo, " \u00B7", " ", block.is_public ? t.publicYes : t.publicNo] })] }), _jsxs("div", { className: "flex gap-2", children: [_jsx("button", { type: "button", className: "rounded-md border px-3 py-1 text-xs font-medium", disabled: editingId === block.id, onClick: () => startEdit(block), children: t.edit }), _jsx("button", { type: "button", className: "rounded-md border px-3 py-1 text-xs font-medium text-destructive", disabled: deleteMutation.isPending, onClick: () => void removeBlock(block.id), children: t.deleteLabel })] })] }), _jsx("pre", { className: "whitespace-pre-wrap text-xs text-muted-foreground", children: block.content })] }, block.id))), (data?.data ?? []).length === 0 && !loading && !error ? (_jsx("li", { className: "p-6 text-center text-sm text-muted-foreground", children: t.empty })) : null] })] }));
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=PromptBlockLibrary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PromptBlockLibrary.js","sourceRoot":"","sources":["../../../../src/runtime/react/PromptBlockLibrary.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { PromptBlockPublic, PromptTemplatePublic, TemplateBlockPublic } from "../schemas.js";
|
|
3
|
+
export interface PromptComposerLabels {
|
|
4
|
+
title: string;
|
|
5
|
+
subtitle: string;
|
|
6
|
+
pickTemplate: string;
|
|
7
|
+
noTemplate: string;
|
|
8
|
+
composed: string;
|
|
9
|
+
compose: string;
|
|
10
|
+
composing: string;
|
|
11
|
+
composingError: string;
|
|
12
|
+
dynamicFor: string;
|
|
13
|
+
dynamicPlaceholder: string;
|
|
14
|
+
empty: string;
|
|
15
|
+
error: string;
|
|
16
|
+
noBlocks: string;
|
|
17
|
+
}
|
|
18
|
+
export interface PromptComposerProps {
|
|
19
|
+
templateId?: number;
|
|
20
|
+
labels?: Partial<PromptComposerLabels>;
|
|
21
|
+
}
|
|
22
|
+
export declare function PromptComposer({ templateId: initialTemplateId, labels }: PromptComposerProps): React.JSX.Element;
|
|
23
|
+
export type { PromptBlockPublic, PromptTemplatePublic, TemplateBlockPublic };
|
|
24
|
+
//# sourceMappingURL=PromptComposer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PromptComposer.d.ts","sourceRoot":"","sources":["../../../../src/runtime/react/PromptComposer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EACV,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAkBD,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACxC;AAED,wBAAgB,cAAc,CAAC,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,EAAE,EAAE,mBAAmB,qBAmH5F;AAED,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { useComposePrompt } from "../hooks/useComposePrompt.js";
|
|
4
|
+
import { usePromptTemplate } from "../hooks/usePromptTemplate.js";
|
|
5
|
+
import { usePromptTemplateBlocks } from "../hooks/usePromptTemplate.js";
|
|
6
|
+
import { usePromptTemplates } from "../hooks/usePromptTemplates.js";
|
|
7
|
+
const DEFAULT_LABELS = {
|
|
8
|
+
title: "Compose prompt",
|
|
9
|
+
subtitle: "Render a template with dynamic block content.",
|
|
10
|
+
pickTemplate: "Template",
|
|
11
|
+
noTemplate: "Select a template to compose",
|
|
12
|
+
composed: "Composed prompt",
|
|
13
|
+
compose: "Compose",
|
|
14
|
+
composing: "Composing…",
|
|
15
|
+
composingError: "Could not compose prompt.",
|
|
16
|
+
dynamicFor: "Dynamic content for",
|
|
17
|
+
dynamicPlaceholder: "Enter dynamic content for this block…",
|
|
18
|
+
empty: "No dynamic blocks.",
|
|
19
|
+
error: "Could not load templates.",
|
|
20
|
+
noBlocks: "This template has no blocks yet."
|
|
21
|
+
};
|
|
22
|
+
export function PromptComposer({ templateId: initialTemplateId, labels }) {
|
|
23
|
+
const t = { ...DEFAULT_LABELS, ...labels };
|
|
24
|
+
const templates = usePromptTemplates();
|
|
25
|
+
const [selectedId, setSelectedId] = React.useState(initialTemplateId);
|
|
26
|
+
const template = usePromptTemplate({ templateId: selectedId });
|
|
27
|
+
const templateBlocks = usePromptTemplateBlocks(selectedId);
|
|
28
|
+
const { compose, composeMutation } = useComposePrompt();
|
|
29
|
+
const [dynamic, setDynamic] = React.useState({});
|
|
30
|
+
const selected = template.data ?? null;
|
|
31
|
+
const blocks = templateBlocks.blocks ?? [];
|
|
32
|
+
React.useEffect(() => {
|
|
33
|
+
if (selectedId !== undefined)
|
|
34
|
+
setDynamic({});
|
|
35
|
+
}, [selectedId]);
|
|
36
|
+
const dynamicBlocks = blocks.filter((b) => b.is_dynamic);
|
|
37
|
+
return (_jsxs("section", { className: "not-content space-y-6", children: [_jsxs("div", { className: "space-y-1", children: [_jsx("h2", { className: "text-xl font-semibold tracking-tight", children: t.title }), _jsx("p", { className: "text-sm text-muted-foreground", children: t.subtitle })] }), _jsxs("div", { className: "space-y-2", children: [_jsx("label", { className: "text-sm font-medium", htmlFor: "prompt-composer-template", children: t.pickTemplate }), _jsxs("select", { id: "prompt-composer-template", className: "w-full rounded-md border bg-background px-3 py-2 text-sm", value: selectedId ?? "", onChange: (e) => setSelectedId(Number(e.target.value) || undefined), children: [_jsx("option", { value: "", children: t.noTemplate }), (templates.data?.data ?? []).map((tpl) => (_jsx("option", { value: tpl.id, children: tpl.name }, tpl.id)))] }), templates.error && !templates.data ? (_jsx("p", { role: "alert", className: "text-sm text-destructive", children: t.error })) : null] }), selected ? (_jsxs("div", { className: "space-y-4", children: [blocks.length === 0 ? (_jsx("p", { className: "rounded-md border border-dashed p-4 text-sm text-muted-foreground", children: t.noBlocks })) : dynamicBlocks.length === 0 ? (_jsx("p", { className: "text-sm text-muted-foreground", children: t.empty })) : (dynamicBlocks.map((block) => (_jsxs("div", { className: "space-y-1", children: [_jsxs("label", { className: "text-sm font-medium", htmlFor: `prompt-dynamic-${block.id}`, children: [t.dynamicFor, ": ", block.name] }), _jsx("textarea", { id: `prompt-dynamic-${block.id}`, className: "w-full rounded-md border bg-background px-3 py-2 text-sm", rows: 3, placeholder: t.dynamicPlaceholder, value: dynamic[block.block_id] ?? "", onChange: (e) => setDynamic((current) => ({
|
|
38
|
+
...current,
|
|
39
|
+
[block.block_id]: e.target.value
|
|
40
|
+
})) })] }, block.id)))), _jsx("button", { type: "button", className: "rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground disabled:opacity-50", disabled: composeMutation.isPending || !selectedId, onClick: () => {
|
|
41
|
+
if (selectedId === undefined)
|
|
42
|
+
return;
|
|
43
|
+
void compose(selectedId, Object.entries(dynamic)
|
|
44
|
+
.filter(([, v]) => v.trim() !== "")
|
|
45
|
+
.map(([id, content]) => ({ id: Number(id), content })));
|
|
46
|
+
}, children: composeMutation.isPending ? t.composing : t.compose }), composeMutation.error ? (_jsx("p", { role: "alert", className: "text-sm text-destructive", children: t.composingError })) : null, composeMutation.data ? (_jsxs("div", { className: "space-y-1", children: [_jsx("h3", { className: "text-sm font-medium", children: t.composed }), _jsx("pre", { className: "whitespace-pre-wrap rounded-md border bg-muted/30 p-4 text-sm", children: composeMutation.data.content })] })) : null] })) : null] }));
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=PromptComposer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PromptComposer.js","sourceRoot":"","sources":["../../../../src/runtime/react/PromptComposer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { type PromptRuntimeConfig } from "../config.js";
|
|
3
|
+
import { type PromptAuthAdapter } from "../authAdapter.js";
|
|
4
|
+
export type PromptContextValue = {
|
|
5
|
+
adapter: PromptAuthAdapter;
|
|
6
|
+
user: unknown;
|
|
7
|
+
isSuperuser: boolean;
|
|
8
|
+
loading: boolean;
|
|
9
|
+
};
|
|
10
|
+
export declare function PromptProvider({ children, config, adapter }: {
|
|
11
|
+
children: ReactNode;
|
|
12
|
+
config?: Partial<PromptRuntimeConfig>;
|
|
13
|
+
adapter?: PromptAuthAdapter;
|
|
14
|
+
}): import("react").JSX.Element;
|
|
15
|
+
export declare function usePromptContext(): PromptContextValue;
|
|
16
|
+
//# sourceMappingURL=PromptProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PromptProvider.d.ts","sourceRoot":"","sources":["../../../../src/runtime/react/PromptProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAmB,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAwB,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEjF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAwBF,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,MAAM,EACN,OAAO,EACR,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B,+BAsDA;AAED,wBAAgB,gBAAgB,IAAI,kBAAkB,CAIrD"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, useContext, useEffect, useMemo, useState } from "react";
|
|
3
|
+
import { configurePrompt } from "../config.js";
|
|
4
|
+
import { getPromptAuthAdapter } from "../authAdapter.js";
|
|
5
|
+
const PromptContext = createContext(null);
|
|
6
|
+
function isPromiseLike(value) {
|
|
7
|
+
return Boolean(value &&
|
|
8
|
+
(typeof value === "object" || typeof value === "function") &&
|
|
9
|
+
"then" in value &&
|
|
10
|
+
typeof value.then === "function");
|
|
11
|
+
}
|
|
12
|
+
function readAdapterUser(adapter) {
|
|
13
|
+
if (!adapter.getUser)
|
|
14
|
+
return { user: null, loading: false };
|
|
15
|
+
try {
|
|
16
|
+
const value = adapter.getUser();
|
|
17
|
+
if (isPromiseLike(value))
|
|
18
|
+
return { user: null, loading: true };
|
|
19
|
+
return { user: value, loading: false };
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return { user: null, loading: false };
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export function PromptProvider({ children, config, adapter }) {
|
|
26
|
+
const resolved = adapter ?? getPromptAuthAdapter();
|
|
27
|
+
const [authState, setAuthState] = useState(() => readAdapterUser(resolved));
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
if (config)
|
|
30
|
+
configurePrompt(config);
|
|
31
|
+
}, [config]);
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
if (!resolved.getUser) {
|
|
34
|
+
setAuthState({ user: null, loading: false });
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
let cancelled = false;
|
|
38
|
+
try {
|
|
39
|
+
const value = resolved.getUser();
|
|
40
|
+
if (!isPromiseLike(value)) {
|
|
41
|
+
setAuthState({ user: value, loading: false });
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
setAuthState((current) => ({ ...current, loading: true }));
|
|
45
|
+
Promise.resolve(value)
|
|
46
|
+
.then((nextUser) => {
|
|
47
|
+
if (!cancelled)
|
|
48
|
+
setAuthState({ user: nextUser, loading: false });
|
|
49
|
+
})
|
|
50
|
+
.catch(() => {
|
|
51
|
+
if (!cancelled)
|
|
52
|
+
setAuthState({ user: null, loading: false });
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
setAuthState({ user: null, loading: false });
|
|
57
|
+
}
|
|
58
|
+
return () => {
|
|
59
|
+
cancelled = true;
|
|
60
|
+
};
|
|
61
|
+
}, [resolved]);
|
|
62
|
+
const currentUserState = readAdapterUser(resolved);
|
|
63
|
+
const user = currentUserState.loading ? authState.user : currentUserState.user;
|
|
64
|
+
const loading = currentUserState.loading ? authState.loading : false;
|
|
65
|
+
const value = useMemo(() => ({
|
|
66
|
+
adapter: resolved,
|
|
67
|
+
user,
|
|
68
|
+
isSuperuser: Boolean(resolved.isSuperuser?.(user)),
|
|
69
|
+
loading
|
|
70
|
+
}), [loading, resolved, user]);
|
|
71
|
+
return _jsx(PromptContext.Provider, { value: value, children: children });
|
|
72
|
+
}
|
|
73
|
+
export function usePromptContext() {
|
|
74
|
+
const context = useContext(PromptContext);
|
|
75
|
+
if (!context)
|
|
76
|
+
throw new Error("usePromptContext must be used inside PromptProvider");
|
|
77
|
+
return context;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=PromptProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PromptProvider.js","sourceRoot":"","sources":["../../../../src/runtime/react/PromptProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { QueryClient } from "@tanstack/react-query";
|
|
2
|
+
import { type ReactNode } from "react";
|
|
3
|
+
export type PromptQueryProviderProps = {
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
client?: QueryClient;
|
|
6
|
+
};
|
|
7
|
+
export declare function PromptQueryProvider({ children, client }: PromptQueryProviderProps): import("react").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=PromptQueryProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PromptQueryProvider.d.ts","sourceRoot":"","sources":["../../../../src/runtime/react/PromptQueryProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA2C,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE7D,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,wBAAwB,+BAOjF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { QueryClient, QueryClientContext, QueryClientProvider } from "@tanstack/react-query";
|
|
3
|
+
import { useContext, useState } from "react";
|
|
4
|
+
export function PromptQueryProvider({ children, client }) {
|
|
5
|
+
const parentClient = useContext(QueryClientContext);
|
|
6
|
+
const [ownedClient] = useState(() => client ?? new QueryClient());
|
|
7
|
+
if (parentClient)
|
|
8
|
+
return _jsx(_Fragment, { children: children });
|
|
9
|
+
return _jsx(QueryClientProvider, { client: ownedClient, children: children });
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=PromptQueryProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PromptQueryProvider.js","sourceRoot":"","sources":["../../../../src/runtime/react/PromptQueryProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAO7D,MAAM,UAAU,mBAAmB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAA4B;IAChF,MAAM,YAAY,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IACpD,MAAM,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC,CAAC;IAElE,IAAI,YAAY;QAAE,OAAO,4BAAG,QAAQ,GAAI,CAAC;IAEzC,OAAO,KAAC,mBAAmB,IAAC,MAAM,EAAE,WAAW,YAAG,QAAQ,GAAuB,CAAC;AACpF,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export interface PromptTemplateEditorLabels {
|
|
3
|
+
title: string;
|
|
4
|
+
subtitle: string;
|
|
5
|
+
create: string;
|
|
6
|
+
name: string;
|
|
7
|
+
description: string;
|
|
8
|
+
publicLabel: string;
|
|
9
|
+
save: string;
|
|
10
|
+
cancel: string;
|
|
11
|
+
loading: string;
|
|
12
|
+
empty: string;
|
|
13
|
+
error: string;
|
|
14
|
+
edit: string;
|
|
15
|
+
deleteLabel: string;
|
|
16
|
+
confirmDelete: string;
|
|
17
|
+
blocks: string;
|
|
18
|
+
addBlock: string;
|
|
19
|
+
noBlocksAvailable: string;
|
|
20
|
+
removeBlock: string;
|
|
21
|
+
moveUp: string;
|
|
22
|
+
moveDown: string;
|
|
23
|
+
compose: string;
|
|
24
|
+
composeLabel: string;
|
|
25
|
+
composed: string;
|
|
26
|
+
composing: string;
|
|
27
|
+
composingError: string;
|
|
28
|
+
dynamicFor: string;
|
|
29
|
+
dynamicPlaceholder: string;
|
|
30
|
+
noDynamic: string;
|
|
31
|
+
}
|
|
32
|
+
export interface PromptTemplateEditorProps {
|
|
33
|
+
labels?: Partial<PromptTemplateEditorLabels>;
|
|
34
|
+
}
|
|
35
|
+
export declare function PromptTemplateEditor({ labels }: PromptTemplateEditorProps): React.JSX.Element;
|
|
36
|
+
//# sourceMappingURL=PromptTemplateEditor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PromptTemplateEditor.d.ts","sourceRoot":"","sources":["../../../../src/runtime/react/PromptTemplateEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AA0CD,MAAM,WAAW,yBAAyB;IACxC,MAAM,CAAC,EAAE,OAAO,CAAC,0BAA0B,CAAC,CAAC;CAC9C;AAED,wBAAgB,oBAAoB,CAAC,EAAE,MAAM,EAAE,EAAE,yBAAyB,qBA0TzE"}
|