@kubuild/ai 0.3.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 +21 -0
- package/dist/chunk-27AY2KBI.js +500 -0
- package/dist/chunk-27AY2KBI.js.map +1 -0
- package/dist/chunk-JY4NHD3Q.js +227 -0
- package/dist/chunk-JY4NHD3Q.js.map +1 -0
- package/dist/chunk-UH24LHRY.js +443 -0
- package/dist/chunk-UH24LHRY.js.map +1 -0
- package/dist/client/ai-client.d.ts +59 -0
- package/dist/client/ai-client.d.ts.map +1 -0
- package/dist/client/index.cjs +254 -0
- package/dist/client/index.cjs.map +1 -0
- package/dist/client/index.d.ts +2 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +9 -0
- package/dist/client/index.js.map +1 -0
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/normalizer.d.ts +9 -0
- package/dist/core/normalizer.d.ts.map +1 -0
- package/dist/core/prompt-compiler.d.ts +10 -0
- package/dist/core/prompt-compiler.d.ts.map +1 -0
- package/dist/index.cjs +468 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/react/index.cjs +584 -0
- package/dist/react/index.cjs.map +1 -0
- package/dist/react/index.d.ts +3 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +336 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/use-ai-chat.d.ts +63 -0
- package/dist/react/use-ai-chat.d.ts.map +1 -0
- package/dist/react/use-ai-generator.d.ts +19 -0
- package/dist/react/use-ai-generator.d.ts.map +1 -0
- package/dist/server/adapters/anthropic.d.ts +30 -0
- package/dist/server/adapters/anthropic.d.ts.map +1 -0
- package/dist/server/adapters/base.d.ts +2 -0
- package/dist/server/adapters/base.d.ts.map +1 -0
- package/dist/server/adapters/custom.d.ts +18 -0
- package/dist/server/adapters/custom.d.ts.map +1 -0
- package/dist/server/adapters/gemini.d.ts +22 -0
- package/dist/server/adapters/gemini.d.ts.map +1 -0
- package/dist/server/adapters/index.cjs +529 -0
- package/dist/server/adapters/index.cjs.map +1 -0
- package/dist/server/adapters/index.d.ts +6 -0
- package/dist/server/adapters/index.d.ts.map +1 -0
- package/dist/server/adapters/index.js +13 -0
- package/dist/server/adapters/index.js.map +1 -0
- package/dist/server/adapters/openai.d.ts +26 -0
- package/dist/server/adapters/openai.d.ts.map +1 -0
- package/dist/server/adapters/stream-utils.d.ts +12 -0
- package/dist/server/adapters/stream-utils.d.ts.map +1 -0
- package/dist/server/engine.d.ts +59 -0
- package/dist/server/engine.d.ts.map +1 -0
- package/dist/server/handler.d.ts +66 -0
- package/dist/server/handler.d.ts.map +1 -0
- package/dist/server/index.cjs +1824 -0
- package/dist/server/index.cjs.map +1 -0
- package/dist/server/index.d.ts +4 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +890 -0
- package/dist/server/index.js.map +1 -0
- package/dist/types.d.ts +184 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +94 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream-utils.d.ts","sourceRoot":"","sources":["../../../src/server/adapters/stream-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAuB,gBAAgB,CACrC,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,EAChC,MAAM,CAAC,EAAE,WAAW,GACnB,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CA8BpC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { PageDocument, Node } from '@kubuild/schema';
|
|
2
|
+
import type { KubuildAiEngineOptions, AiGeneratePageRequest, AiGenerateSectionRequest, AiRefactorNodeRequest, AiChatRequest, AiChatResponse, AiGenerateResponse, AiStreamEvent } from '../types';
|
|
3
|
+
export declare class KubuildAiEngine {
|
|
4
|
+
private options;
|
|
5
|
+
private catalog;
|
|
6
|
+
constructor(options: KubuildAiEngineOptions);
|
|
7
|
+
get adapterName(): string;
|
|
8
|
+
refreshCatalog(): void;
|
|
9
|
+
private log;
|
|
10
|
+
generatePage(request: AiGeneratePageRequest, context?: {
|
|
11
|
+
signal?: AbortSignal;
|
|
12
|
+
}): Promise<AiGenerateResponse<PageDocument>>;
|
|
13
|
+
generateSection(request: AiGenerateSectionRequest, context?: {
|
|
14
|
+
signal?: AbortSignal;
|
|
15
|
+
}): Promise<AiGenerateResponse<Node>>;
|
|
16
|
+
refactorNode(request: AiRefactorNodeRequest, context?: {
|
|
17
|
+
signal?: AbortSignal;
|
|
18
|
+
}): Promise<AiGenerateResponse<Node>>;
|
|
19
|
+
/**
|
|
20
|
+
* Progressive Section Streaming Generator.
|
|
21
|
+
* Emits structured SSE events: status -> metadata -> section (one by one) -> complete.
|
|
22
|
+
*/
|
|
23
|
+
streamPage(request: AiGeneratePageRequest, context?: {
|
|
24
|
+
signal?: AbortSignal;
|
|
25
|
+
}): AsyncIterable<AiStreamEvent>;
|
|
26
|
+
/**
|
|
27
|
+
* Builds the system/user prompt pair shared by `chat()` and `chatStream()` — the exact
|
|
28
|
+
* same document/selection grounding is used regardless of whether the response is
|
|
29
|
+
* streamed token-by-token or returned as a single request/response (STORA-515).
|
|
30
|
+
*/
|
|
31
|
+
private buildChatPrompt;
|
|
32
|
+
/**
|
|
33
|
+
* Conversational Assistant / Q&A.
|
|
34
|
+
* Can discuss web design, explain KUBUILD components, review current page,
|
|
35
|
+
* suggest improvements, or recommend copywriting.
|
|
36
|
+
*
|
|
37
|
+
* Single request/response — unchanged since before STORA-515. See `chatStream()` for
|
|
38
|
+
* the token-level streaming variant.
|
|
39
|
+
*/
|
|
40
|
+
chat(request: AiChatRequest, context?: {
|
|
41
|
+
signal?: AbortSignal;
|
|
42
|
+
}): Promise<AiGenerateResponse<AiChatResponse>>;
|
|
43
|
+
/**
|
|
44
|
+
* Token-level streaming variant of `chat()` (STORA-515). Emits `chat-chunk` events as
|
|
45
|
+
* partial text arrives, then a terminal `chat-complete` event with the fully assembled
|
|
46
|
+
* assistant message — the same `AsyncIterable<AiStreamEvent>` mechanism `streamPage`
|
|
47
|
+
* already uses, so it can be piped over SSE by `createAiHandler`/consumed by
|
|
48
|
+
* `KubuildAiClient` with no separate transport.
|
|
49
|
+
*
|
|
50
|
+
* When the configured adapter does not implement `generateStream` (e.g. the generic
|
|
51
|
+
* custom/HTTP adapter), this falls back to a single non-streaming `generate()` call and
|
|
52
|
+
* emits the entire response as one `chat-chunk`, so callers never see an error just
|
|
53
|
+
* because the underlying provider can't stream — only a less granular update cadence.
|
|
54
|
+
*/
|
|
55
|
+
chatStream(request: AiChatRequest, context?: {
|
|
56
|
+
signal?: AbortSignal;
|
|
57
|
+
}): AsyncIterable<AiStreamEvent>;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/server/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,IAAI,EAA4C,MAAM,iBAAiB,CAAC;AAC/F,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,aAAa,EACb,cAAc,EAEd,kBAAkB,EAElB,aAAa,EACd,MAAM,UAAU,CAAC;AA0BlB,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,OAAO,CAA4B;gBAE/B,OAAO,EAAE,sBAAsB;IAQ3C,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,cAAc,IAAI,IAAI;IAItB,OAAO,CAAC,GAAG;IASL,YAAY,CAChB,OAAO,EAAE,qBAAqB,EAC9B,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACjC,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAkEtC,eAAe,CACnB,OAAO,EAAE,wBAAwB,EACjC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACjC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAuD9B,YAAY,CAChB,OAAO,EAAE,qBAAqB,EAC9B,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACjC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IA+CpC;;;OAGG;IACI,UAAU,CACf,OAAO,EAAE,qBAAqB,EAC9B,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACjC,aAAa,CAAC,aAAa,CAAC;IAiN/B;;;;OAIG;IACH,OAAO,CAAC,eAAe;IA4CvB;;;;;;;OAOG;IACG,IAAI,CACR,OAAO,EAAE,aAAa,EACtB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACjC,OAAO,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAsD9C;;;;;;;;;;;OAWG;IACI,UAAU,CACf,OAAO,EAAE,aAAa,EACtB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACjC,aAAa,CAAC,aAAa,CAAC;CA4EhC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { KubuildAiEngine } from './engine';
|
|
2
|
+
import type { PageDocument } from '@kubuild/schema';
|
|
3
|
+
import type { AiGeneratePageRequest, AiRefactorNodeRequest, AiChatMessage, AiGenerateResponse, AiGenerationMode } from '../types';
|
|
4
|
+
export interface AiApiRequestBody {
|
|
5
|
+
mode?: AiGenerationMode;
|
|
6
|
+
prompt?: string;
|
|
7
|
+
stylePreference?: string;
|
|
8
|
+
tone?: string;
|
|
9
|
+
locale?: string;
|
|
10
|
+
metadata?: AiGeneratePageRequest['metadata'];
|
|
11
|
+
targetSectionType?: string;
|
|
12
|
+
parentContext?: string;
|
|
13
|
+
node?: AiRefactorNodeRequest['node'];
|
|
14
|
+
instruction?: string;
|
|
15
|
+
stream?: boolean;
|
|
16
|
+
messages?: AiChatMessage[];
|
|
17
|
+
currentDocument?: PageDocument;
|
|
18
|
+
selectedNodeId?: string;
|
|
19
|
+
}
|
|
20
|
+
export declare function processAiRequest(engine: KubuildAiEngine, body: unknown, signal?: AbortSignal): Promise<{
|
|
21
|
+
status: number;
|
|
22
|
+
response: AiGenerateResponse<unknown>;
|
|
23
|
+
}>;
|
|
24
|
+
/**
|
|
25
|
+
* Options for {@link createAiHandler} (STORA-519).
|
|
26
|
+
*/
|
|
27
|
+
export interface CreateAiHandlerOptions {
|
|
28
|
+
/**
|
|
29
|
+
* Optional hook invoked with the raw incoming `Request` before it ever reaches the
|
|
30
|
+
* engine/provider — the place to plug in host-owned auth and/or rate-limiting without
|
|
31
|
+
* forking the handler.
|
|
32
|
+
*
|
|
33
|
+
* - Return a `Response` (or a Promise resolving to one) to reject/short-circuit the
|
|
34
|
+
* request — e.g. `new Response(..., { status: 401 })` or `429` — that response is
|
|
35
|
+
* returned as-is and the engine/provider is never invoked.
|
|
36
|
+
* - Return `void`/`undefined` (or a Promise resolving to that) to allow the request to
|
|
37
|
+
* continue through the normal handler logic unchanged.
|
|
38
|
+
*
|
|
39
|
+
* Omitting this option entirely preserves the exact pre-STORA-519 behavior.
|
|
40
|
+
*/
|
|
41
|
+
beforeRequest?: (request: Request) => Promise<Response | void> | Response | void;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Creates a standard Web Fetch API Request handler with optional SSE streaming support.
|
|
45
|
+
*
|
|
46
|
+
* Plug-and-play for Next.js App Router (route.ts), SvelteKit, Remix, Astro, Bun, etc.
|
|
47
|
+
*
|
|
48
|
+
* Example:
|
|
49
|
+
* ```ts
|
|
50
|
+
* export const POST = createAiHandler(engine);
|
|
51
|
+
* ```
|
|
52
|
+
*
|
|
53
|
+
* Example with an auth/rate-limit hook (STORA-519):
|
|
54
|
+
* ```ts
|
|
55
|
+
* export const POST = createAiHandler(engine, {
|
|
56
|
+
* beforeRequest: async (request) => {
|
|
57
|
+
* if (!isAuthorized(request)) {
|
|
58
|
+
* return new Response('Unauthorized', { status: 401 });
|
|
59
|
+
* }
|
|
60
|
+
* // returning nothing lets the request proceed as normal
|
|
61
|
+
* },
|
|
62
|
+
* });
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export declare function createAiHandler(engine: KubuildAiEngine, options?: CreateAiHandlerOptions): (request: Request) => Promise<Response>;
|
|
66
|
+
//# sourceMappingURL=handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/server/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EACV,qBAAqB,EAErB,qBAAqB,EACrB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC7C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAC3B,eAAe,CAAC,EAAE,YAAY,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,OAAO,EACb,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAA;CAAE,CAAC,CA0IpE;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;CAClF;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,sBAAsB,IACzE,SAAS,OAAO,KAAG,OAAO,CAAC,QAAQ,CAAC,CAqLnD"}
|