blume 1.7.1 → 1.7.2
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/CHANGELOG.md +8 -0
- package/dist/cli/{chunk-mfm4sjwx.js → chunk-12dxjqk7.js} +32 -43
- package/dist/cli/{chunk-mfm4sjwx.js.map → chunk-12dxjqk7.js.map} +2 -2
- package/dist/cli/{chunk-vyqj481z.js → chunk-196vjxp9.js} +64 -64
- package/dist/cli/chunk-196vjxp9.js.map +13 -0
- package/dist/cli/{chunk-27gtm2ym.js → chunk-2mzebbbz.js} +1 -1
- package/dist/cli/{chunk-s5e5jt53.js → chunk-2z47ypj8.js} +1 -1
- package/dist/cli/{chunk-52cwcqvp.js → chunk-30e87n55.js} +15 -24
- package/dist/cli/{chunk-52cwcqvp.js.map → chunk-30e87n55.js.map} +2 -2
- package/dist/cli/{chunk-4trphnvy.js → chunk-3w7b2vcx.js} +10 -13
- package/dist/cli/{chunk-4trphnvy.js.map → chunk-3w7b2vcx.js.map} +2 -2
- package/dist/cli/{chunk-kmx2mydj.js → chunk-450a7rcr.js} +8 -8
- package/dist/cli/{chunk-kmx2mydj.js.map → chunk-450a7rcr.js.map} +1 -1
- package/dist/cli/{chunk-x1wvw7a8.js → chunk-5n7t497w.js} +129 -131
- package/dist/cli/{chunk-x1wvw7a8.js.map → chunk-5n7t497w.js.map} +4 -4
- package/dist/cli/{chunk-r99hynxh.js → chunk-61j18dwk.js} +36 -9
- package/dist/cli/{chunk-r99hynxh.js.map → chunk-61j18dwk.js.map} +3 -3
- package/dist/cli/{chunk-3r94j3tc.js → chunk-688e0dde.js} +2 -2
- package/dist/cli/{chunk-vxv4x1n8.js → chunk-88by27n5.js} +2 -2
- package/dist/cli/{chunk-h9ekmtz7.js → chunk-8cd8tj54.js} +28 -35
- package/dist/cli/{chunk-h9ekmtz7.js.map → chunk-8cd8tj54.js.map} +2 -2
- package/dist/cli/{chunk-8gnpdsn1.js → chunk-9bkjd11x.js} +2 -2
- package/dist/cli/{chunk-k0v1f8bb.js → chunk-9he6crym.js} +21 -28
- package/dist/cli/{chunk-k0v1f8bb.js.map → chunk-9he6crym.js.map} +2 -2
- package/dist/cli/{chunk-aqjvpd03.js → chunk-aztttvb3.js} +27 -33
- package/dist/cli/{chunk-aqjvpd03.js.map → chunk-aztttvb3.js.map} +2 -2
- package/dist/cli/{chunk-6mq7qkve.js → chunk-cvky9gb2.js} +18 -24
- package/dist/cli/{chunk-6mq7qkve.js.map → chunk-cvky9gb2.js.map} +2 -2
- package/dist/cli/{chunk-90pdhkpm.js → chunk-eevwt1sc.js} +23 -32
- package/dist/cli/{chunk-90pdhkpm.js.map → chunk-eevwt1sc.js.map} +2 -2
- package/dist/cli/{chunk-4ae4f395.js → chunk-ejjx8znq.js} +53 -34
- package/dist/cli/chunk-ejjx8znq.js.map +15 -0
- package/dist/cli/{chunk-8p3xe5jv.js → chunk-exeeb35e.js} +3 -3
- package/dist/cli/{chunk-q56730e0.js → chunk-fmceyezb.js} +41 -50
- package/dist/cli/{chunk-q56730e0.js.map → chunk-fmceyezb.js.map} +2 -2
- package/dist/cli/{chunk-12dzsn9b.js → chunk-hdm2dkd2.js} +72 -77
- package/dist/cli/{chunk-12dzsn9b.js.map → chunk-hdm2dkd2.js.map} +2 -2
- package/dist/cli/{chunk-j5f2wrj5.js → chunk-hs3gbh8p.js} +10 -15
- package/dist/cli/{chunk-j5f2wrj5.js.map → chunk-hs3gbh8p.js.map} +2 -2
- package/dist/cli/{chunk-ywn7t0pb.js → chunk-jbj4qhfw.js} +3 -3
- package/dist/cli/{chunk-ev67ycx0.js → chunk-jq5n4avg.js} +1 -1
- package/dist/cli/{chunk-he2zfgah.js → chunk-mqb2ka8m.js} +22 -30
- package/dist/cli/{chunk-he2zfgah.js.map → chunk-mqb2ka8m.js.map} +2 -2
- package/dist/cli/{chunk-5gfw0q4j.js → chunk-mt76t7dj.js} +26 -34
- package/dist/cli/{chunk-5gfw0q4j.js.map → chunk-mt76t7dj.js.map} +2 -2
- package/dist/cli/{chunk-jtb45atp.js → chunk-n9sra6sy.js} +13 -13
- package/dist/cli/{chunk-jtb45atp.js.map → chunk-n9sra6sy.js.map} +1 -1
- package/dist/cli/{chunk-x66c5yjn.js → chunk-ppfvdcd4.js} +2 -2
- package/dist/cli/{chunk-wd27zjcz.js → chunk-q4rae3bg.js} +1 -1
- package/dist/cli/{chunk-pxj10x8y.js → chunk-ra1v2nc2.js} +1 -1
- package/dist/cli/{chunk-np8dmfb0.js → chunk-t3tj0dgr.js} +26 -33
- package/dist/cli/{chunk-np8dmfb0.js.map → chunk-t3tj0dgr.js.map} +2 -2
- package/dist/cli/{chunk-qvvpnwaz.js → chunk-tqa1s0k8.js} +4 -4
- package/dist/cli/{chunk-cbjnx4s8.js → chunk-vh9w1sgp.js} +1 -1
- package/dist/cli/{chunk-82atea4k.js → chunk-vkrsvbr5.js} +13 -17
- package/dist/cli/{chunk-82atea4k.js.map → chunk-vkrsvbr5.js.map} +2 -2
- package/dist/cli/{chunk-sbdqrjbb.js → chunk-vrfp10qk.js} +1 -1
- package/dist/cli/{chunk-ka5k7cz9.js → chunk-wjt80jps.js} +27 -27
- package/dist/cli/{chunk-ka5k7cz9.js.map → chunk-wjt80jps.js.map} +2 -2
- package/dist/cli/{chunk-pdwg3q9g.js → chunk-xhtpx3ff.js} +21 -30
- package/dist/cli/{chunk-pdwg3q9g.js.map → chunk-xhtpx3ff.js.map} +2 -2
- package/dist/cli/{chunk-5hs6gb7n.js → chunk-yzhm0j9q.js} +1 -1
- package/dist/cli/index.js +397 -34
- package/dist/cli/index.js.map +12 -4
- package/dist/types/core/config-input.d.ts +26 -0
- package/dist/types/core/schema.d.ts +27 -3
- package/docs/configuration/ask-ai.mdx +47 -0
- package/package.json +1 -1
- package/src/ai/cors.ts +87 -0
- package/src/astro/generate.ts +2 -0
- package/src/astro/templates.ts +88 -23
- package/src/components/layout/NavTree.astro +75 -66
- package/src/components/layout/RootLayout.astro +4 -1
- package/src/components/layout/nav-utils.ts +17 -3
- package/src/core/adapter.ts +61 -0
- package/src/core/config-input.ts +26 -0
- package/src/core/schema.ts +56 -0
- package/src/registry/eject.ts +2 -0
- package/dist/cli/chunk-2aj8ddew.js +0 -72
- package/dist/cli/chunk-2aj8ddew.js.map +0 -10
- package/dist/cli/chunk-4ae4f395.js.map +0 -15
- package/dist/cli/chunk-4xyggvgf.js +0 -21
- package/dist/cli/chunk-4xyggvgf.js.map +0 -10
- package/dist/cli/chunk-6kzzpsx8.js +0 -26
- package/dist/cli/chunk-6kzzpsx8.js.map +0 -10
- package/dist/cli/chunk-bcy492zc.js +0 -16
- package/dist/cli/chunk-bcy492zc.js.map +0 -10
- package/dist/cli/chunk-btfr9yvw.js +0 -41
- package/dist/cli/chunk-btfr9yvw.js.map +0 -10
- package/dist/cli/chunk-ey89bjj1.js +0 -209
- package/dist/cli/chunk-ey89bjj1.js.map +0 -11
- package/dist/cli/chunk-vt8fgygt.js +0 -23
- package/dist/cli/chunk-vt8fgygt.js.map +0 -10
- package/dist/cli/chunk-vyqj481z.js.map +0 -13
- /package/dist/cli/{chunk-27gtm2ym.js.map → chunk-2mzebbbz.js.map} +0 -0
- /package/dist/cli/{chunk-s5e5jt53.js.map → chunk-2z47ypj8.js.map} +0 -0
- /package/dist/cli/{chunk-3r94j3tc.js.map → chunk-688e0dde.js.map} +0 -0
- /package/dist/cli/{chunk-vxv4x1n8.js.map → chunk-88by27n5.js.map} +0 -0
- /package/dist/cli/{chunk-8gnpdsn1.js.map → chunk-9bkjd11x.js.map} +0 -0
- /package/dist/cli/{chunk-8p3xe5jv.js.map → chunk-exeeb35e.js.map} +0 -0
- /package/dist/cli/{chunk-ywn7t0pb.js.map → chunk-jbj4qhfw.js.map} +0 -0
- /package/dist/cli/{chunk-ev67ycx0.js.map → chunk-jq5n4avg.js.map} +0 -0
- /package/dist/cli/{chunk-x66c5yjn.js.map → chunk-ppfvdcd4.js.map} +0 -0
- /package/dist/cli/{chunk-wd27zjcz.js.map → chunk-q4rae3bg.js.map} +0 -0
- /package/dist/cli/{chunk-pxj10x8y.js.map → chunk-ra1v2nc2.js.map} +0 -0
- /package/dist/cli/{chunk-qvvpnwaz.js.map → chunk-tqa1s0k8.js.map} +0 -0
- /package/dist/cli/{chunk-cbjnx4s8.js.map → chunk-vh9w1sgp.js.map} +0 -0
- /package/dist/cli/{chunk-sbdqrjbb.js.map → chunk-vrfp10qk.js.map} +0 -0
- /package/dist/cli/{chunk-5hs6gb7n.js.map → chunk-yzhm0j9q.js.map} +0 -0
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
|
-
API_CATALOG_PATH,
|
|
4
3
|
OPENAPI_PATH,
|
|
4
|
+
API_CATALOG_PATH,
|
|
5
5
|
hasApiCatalog
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-tqa1s0k8.js";
|
|
7
7
|
import {
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
hasScalarReferences,
|
|
9
|
+
fontLocaleCodes,
|
|
10
|
+
buildFontEntries
|
|
11
|
+
} from "./chunk-61j18dwk.js";
|
|
10
12
|
import {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
} from "./chunk-12dzsn9b.js";
|
|
13
|
+
searchProviderMeta
|
|
14
|
+
} from "./chunk-q4rae3bg.js";
|
|
14
15
|
import {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
} from "./chunk-r99hynxh.js";
|
|
16
|
+
TOC_HIDDEN_KEY,
|
|
17
|
+
BLUME_IGNORE_DIRS
|
|
18
|
+
} from "./chunk-hdm2dkd2.js";
|
|
19
19
|
import {
|
|
20
|
-
normalizeBasePath,
|
|
21
20
|
trimChar,
|
|
21
|
+
normalizeBasePath,
|
|
22
22
|
withBasePath,
|
|
23
23
|
withComposedBasePath
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-2mzebbbz.js";
|
|
25
25
|
|
|
26
26
|
// src/deploy/adapter-output.ts
|
|
27
27
|
import { existsSync } from "node:fs";
|
|
@@ -715,8 +715,21 @@ export const collections = { docs${options.staged ? ", staged" : ""} };
|
|
|
715
715
|
`;
|
|
716
716
|
};
|
|
717
717
|
var ASK_FALLBACK_PROMPT = "You are a helpful documentation assistant. Answer using the project's documentation.";
|
|
718
|
+
var askCorsTemplate = (cors = []) => cors.length > 0 ? {
|
|
719
|
+
close: "});",
|
|
720
|
+
imports: [
|
|
721
|
+
'import { preflightResponse, withCors } from "blume/ai/cors.ts";'
|
|
722
|
+
],
|
|
723
|
+
open: "withCors(ALLOWED_ORIGINS, async ({ request }) => {",
|
|
724
|
+
setup: `
|
|
725
|
+
const ALLOWED_ORIGINS = ${JSON.stringify(cors)};
|
|
726
|
+
|
|
727
|
+
export const OPTIONS: APIRoute = ({ request }) =>
|
|
728
|
+
preflightResponse(request, ALLOWED_ORIGINS);
|
|
729
|
+
`
|
|
730
|
+
} : { close: "};", imports: [], open: "async ({ request }) => {", setup: "" };
|
|
718
731
|
var askEndpointTemplate = (backend, grounded, options) => {
|
|
719
|
-
const instructions = options
|
|
732
|
+
const { instructions, reasoning, retrieval } = options ?? {};
|
|
720
733
|
const fallbackPrompt = instructions ? `${ASK_FALLBACK_PROMPT}
|
|
721
734
|
|
|
722
735
|
${instructions}` : ASK_FALLBACK_PROMPT;
|
|
@@ -743,7 +756,8 @@ const openrouter = createOpenRouter({
|
|
|
743
756
|
apiKey: getSecret(${JSON.stringify(backend.apiKeyEnv)}),${headersField}
|
|
744
757
|
});
|
|
745
758
|
`;
|
|
746
|
-
|
|
759
|
+
const settings = reasoning ? `, { reasoning: { effort: ${JSON.stringify(reasoning)} } }` : "";
|
|
760
|
+
modelExpr = `openrouter(${JSON.stringify(backend.model)}${settings})`;
|
|
747
761
|
} else if (backend.kind === "openai-compatible") {
|
|
748
762
|
imports.push('import { createOpenAICompatible } from "@ai-sdk/openai-compatible";');
|
|
749
763
|
setup = `
|
|
@@ -761,14 +775,16 @@ const provider = createOpenAICompatible({
|
|
|
761
775
|
if (instructions) {
|
|
762
776
|
groundFields.push(`instructions: ${JSON.stringify(instructions)}`);
|
|
763
777
|
}
|
|
764
|
-
if (
|
|
765
|
-
groundFields.push(`retrieval: ${JSON.stringify(
|
|
778
|
+
if (retrieval) {
|
|
779
|
+
groundFields.push(`retrieval: ${JSON.stringify(retrieval)}`);
|
|
766
780
|
}
|
|
767
781
|
const groundOptions = groundFields.length > 0 ? `, { ${groundFields.join(", ")} }` : "";
|
|
768
782
|
setup += `
|
|
769
783
|
const ground = createAskContext(askData${groundOptions});
|
|
770
784
|
`;
|
|
771
785
|
}
|
|
786
|
+
const cors = askCorsTemplate(options?.cors);
|
|
787
|
+
imports.push(...cors.imports);
|
|
772
788
|
const validate = ` const body = await request.json().catch(() => null);
|
|
773
789
|
const raw = body?.messages;
|
|
774
790
|
const valid =
|
|
@@ -809,22 +825,25 @@ const ground = createAskContext(askData${groundOptions});
|
|
|
809
825
|
const onError = ` onError({ error }) {
|
|
810
826
|
console.error("Ask AI provider error:", error);
|
|
811
827
|
},`;
|
|
828
|
+
const streamFields = [
|
|
829
|
+
`model: ${modelExpr}`,
|
|
830
|
+
grounded ? "instructions" : `instructions:
|
|
831
|
+
${JSON.stringify(fallbackPrompt)}`,
|
|
832
|
+
"messages"
|
|
833
|
+
];
|
|
834
|
+
if (reasoning && backend.kind !== "openrouter") {
|
|
835
|
+
streamFields.push(`reasoning: ${JSON.stringify(reasoning)}`);
|
|
836
|
+
}
|
|
837
|
+
const call = ` const result = streamText({
|
|
838
|
+
${streamFields.join(`,
|
|
839
|
+
`)},
|
|
840
|
+
${onError}
|
|
841
|
+
});`;
|
|
812
842
|
const stream = grounded ? ` const instructions =
|
|
813
843
|
(await ground(messages, body.page)) ??
|
|
814
844
|
${JSON.stringify(fallbackPrompt)};
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
instructions,
|
|
818
|
-
messages,
|
|
819
|
-
${onError}
|
|
820
|
-
});` : ` const result = streamText({
|
|
821
|
-
model: ${modelExpr},
|
|
822
|
-
instructions:
|
|
823
|
-
${JSON.stringify(fallbackPrompt)},
|
|
824
|
-
messages,
|
|
825
|
-
${onError}
|
|
826
|
-
});`;
|
|
827
|
-
const handler = `export const POST: APIRoute = async ({ request }) => {
|
|
845
|
+
${call}` : call;
|
|
846
|
+
const handler = `export const POST: APIRoute = ${cors.open}
|
|
828
847
|
${validate}
|
|
829
848
|
${keyCheck}
|
|
830
849
|
try {
|
|
@@ -833,13 +852,13 @@ ${stream}
|
|
|
833
852
|
} catch {
|
|
834
853
|
return new Response("Failed to generate a response.", { status: 500 });
|
|
835
854
|
}
|
|
836
|
-
}
|
|
855
|
+
${cors.close}`;
|
|
837
856
|
return `// Generated by Blume. Do not edit.
|
|
838
857
|
${imports.join(`
|
|
839
858
|
`)}
|
|
840
859
|
|
|
841
860
|
export const prerender = false;
|
|
842
|
-
${setup}
|
|
861
|
+
${setup}${cors.setup}
|
|
843
862
|
${handler}
|
|
844
863
|
`;
|
|
845
864
|
};
|
|
@@ -2479,5 +2498,5 @@ var runtimeTsconfigTemplate = () => `${JSON.stringify({
|
|
|
2479
2498
|
|
|
2480
2499
|
export { ADAPTER_IGNORE_DIRS, servesClientSubdir, deployStaticDir, surfaceAdapterOutput, resolveAskBackend, askBackendRuntimeDep, buildHomeLinkHeader, platformRedirects, publishRuntimeModules, runtimeDependencies, astroConfigTemplate, stagedContentDir, contentConfigTemplate, askEndpointTemplate, askComponentTemplate, searchEndpointTemplate, featuresTemplate, searchClientTemplate, mixedbreadSearchEndpointTemplate, rawMarkdownEndpointTemplate, contentAssetsEndpointTemplate, mcpPageFile, mcpEndpointTemplate, playgroundProxyTemplate, staticJsonEndpointTemplate, rssEndpointTemplate, navFragmentTemplate, ogEndpointTemplate, scalarReferenceTemplate, catchAllPageTemplate, changelogIndexTemplate, notFoundPageTemplate, notFoundMarkdownTemplate, notFoundJsonTemplate, apiPagesIndexTemplate, apiPageTemplate, apiNavigationTemplate, apiSearchTemplate, apiNotFoundTemplate, islandWrapperTemplate, islandMapTemplate, exampleSlug, exampleWrapperTemplate, examplesRouteBase, exampleMapTemplate, examplesPageTemplate, runtimePackageTemplate, runtimeTsconfigTemplate };
|
|
2481
2500
|
|
|
2482
|
-
//# debugId=
|
|
2483
|
-
//# sourceMappingURL=chunk-
|
|
2501
|
+
//# debugId=53365D3EDA449FFB64756E2164756E21
|
|
2502
|
+
//# sourceMappingURL=chunk-ejjx8znq.js.map
|