@nonoun/native-ai 1.0.21 → 1.0.25
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/dist/a2ui/a2ui-diagnostics.d.ts +31 -0
- package/dist/a2ui/a2ui-diagnostics.d.ts.map +1 -0
- package/dist/a2ui/a2ui-element.d.ts +30 -0
- package/dist/a2ui/a2ui-element.d.ts.map +1 -0
- package/dist/a2ui/a2ui-presets.d.ts +22 -0
- package/dist/a2ui/a2ui-presets.d.ts.map +1 -0
- package/dist/a2ui/adapters/a2a-adapter.d.ts +38 -0
- package/dist/a2ui/adapters/a2a-adapter.d.ts.map +1 -0
- package/dist/a2ui/adapters/adapter-types.d.ts +19 -0
- package/dist/a2ui/adapters/adapter-types.d.ts.map +1 -0
- package/dist/a2ui/adapters/ag-ui-adapter.d.ts +42 -0
- package/dist/a2ui/adapters/ag-ui-adapter.d.ts.map +1 -0
- package/dist/a2ui/adapters/direct-adapter.d.ts +30 -0
- package/dist/a2ui/adapters/direct-adapter.d.ts.map +1 -0
- package/dist/a2ui/adapters/index.d.ts +8 -0
- package/dist/a2ui/adapters/index.d.ts.map +1 -0
- package/dist/a2ui/index.d.ts +15 -0
- package/dist/a2ui/index.d.ts.map +1 -0
- package/dist/a2ui/install.d.ts +23 -0
- package/dist/a2ui/install.d.ts.map +1 -0
- package/dist/a2ui/protocol/a2ui-adapter.d.ts +52 -0
- package/dist/a2ui/protocol/a2ui-adapter.d.ts.map +1 -0
- package/dist/a2ui/protocol/a2ui-component-map.d.ts +98 -0
- package/dist/a2ui/protocol/a2ui-component-map.d.ts.map +1 -0
- package/dist/a2ui/protocol/a2ui-composition-map.d.ts +101 -0
- package/dist/a2ui/protocol/a2ui-composition-map.d.ts.map +1 -0
- package/dist/a2ui/protocol/a2ui-converter.d.ts +37 -0
- package/dist/a2ui/protocol/a2ui-converter.d.ts.map +1 -0
- package/dist/a2ui/protocol/a2ui-surface.d.ts +34 -0
- package/dist/a2ui/protocol/a2ui-surface.d.ts.map +1 -0
- package/dist/a2ui/protocol/a2ui-transport.d.ts +80 -0
- package/dist/a2ui/protocol/a2ui-transport.d.ts.map +1 -0
- package/dist/a2ui/protocol/a2ui-types.d.ts +104 -0
- package/dist/a2ui/protocol/a2ui-types.d.ts.map +1 -0
- package/dist/a2ui/protocol/index.d.ts +15 -0
- package/dist/a2ui/protocol/index.d.ts.map +1 -0
- package/dist/a2ui/protocol/kernel-bridge.d.ts +114 -0
- package/dist/a2ui/protocol/kernel-bridge.d.ts.map +1 -0
- package/dist/a2ui/register.d.ts +12 -0
- package/dist/a2ui/register.d.ts.map +1 -0
- package/dist/a2ui/session/agent-session.d.ts +44 -0
- package/dist/a2ui/session/agent-session.d.ts.map +1 -0
- package/dist/a2ui/session/catalog.d.ts +41 -0
- package/dist/a2ui/session/catalog.d.ts.map +1 -0
- package/dist/a2ui/session/event-emitter.d.ts +17 -0
- package/dist/a2ui/session/event-emitter.d.ts.map +1 -0
- package/dist/a2ui/session/index.d.ts +9 -0
- package/dist/a2ui/session/index.d.ts.map +1 -0
- package/dist/a2ui/session/session-manager.d.ts +33 -0
- package/dist/a2ui/session/session-manager.d.ts.map +1 -0
- package/dist/a2ui/session/surface-registry.d.ts +32 -0
- package/dist/a2ui/session/surface-registry.d.ts.map +1 -0
- package/dist/a2ui/session/types.d.ts +27 -0
- package/dist/a2ui/session/types.d.ts.map +1 -0
- package/dist/chat/avatar/chat-avatar-element.d.ts +18 -0
- package/dist/chat/avatar/chat-avatar-element.d.ts.map +1 -0
- package/dist/chat/avatar/index.d.ts +2 -0
- package/dist/chat/avatar/index.d.ts.map +1 -0
- package/dist/chat/avatar/n-chat-avatar.d.ts +2 -0
- package/dist/chat/avatar/n-chat-avatar.d.ts.map +1 -0
- package/dist/chat/chat-input-element.d.ts +35 -0
- package/dist/chat/chat-input-element.d.ts.map +1 -0
- package/dist/chat/chat-panel-element.d.ts +100 -0
- package/dist/chat/chat-panel-element.d.ts.map +1 -0
- package/dist/chat/feed/chat-feed-element.d.ts +48 -0
- package/dist/chat/feed/chat-feed-element.d.ts.map +1 -0
- package/dist/chat/feed/index.d.ts +2 -0
- package/dist/chat/feed/index.d.ts.map +1 -0
- package/dist/chat/feed/n-chat-feed.d.ts +2 -0
- package/dist/chat/feed/n-chat-feed.d.ts.map +1 -0
- package/dist/chat/gateway/adapter-chatgpt.d.ts +67 -0
- package/dist/chat/gateway/adapter-chatgpt.d.ts.map +1 -0
- package/dist/chat/gateway/adapter-claude.d.ts +68 -0
- package/dist/chat/gateway/adapter-claude.d.ts.map +1 -0
- package/dist/chat/gateway/adapter-mock.d.ts +3 -0
- package/dist/chat/gateway/adapter-mock.d.ts.map +1 -0
- package/dist/chat/gateway/adapter.d.ts +71 -0
- package/dist/chat/gateway/adapter.d.ts.map +1 -0
- package/dist/chat/gateway/controller.d.ts +46 -0
- package/dist/chat/gateway/controller.d.ts.map +1 -0
- package/dist/chat/gateway/index.d.ts +9 -0
- package/dist/chat/gateway/index.d.ts.map +1 -0
- package/dist/chat/gateway/runtime.d.ts +53 -0
- package/dist/chat/gateway/runtime.d.ts.map +1 -0
- package/dist/chat/gateway/types.d.ts +73 -0
- package/dist/chat/gateway/types.d.ts.map +1 -0
- package/dist/chat/gateway.d.ts +2 -0
- package/dist/chat/gateway.d.ts.map +1 -0
- package/dist/chat/index.d.ts +17 -0
- package/dist/chat/index.d.ts.map +1 -0
- package/dist/chat/message/chat-input-structured-element.d.ts +43 -0
- package/dist/chat/message/chat-input-structured-element.d.ts.map +1 -0
- package/dist/chat/message/chat-message-activity-element.d.ts +32 -0
- package/dist/chat/message/chat-message-activity-element.d.ts.map +1 -0
- package/dist/chat/message/chat-message-element.d.ts +44 -0
- package/dist/chat/message/chat-message-element.d.ts.map +1 -0
- package/dist/chat/message/chat-message-genui-element.d.ts +45 -0
- package/dist/chat/message/chat-message-genui-element.d.ts.map +1 -0
- package/dist/chat/message/chat-message-seed-element.d.ts +33 -0
- package/dist/chat/message/chat-message-seed-element.d.ts.map +1 -0
- package/dist/chat/message/chat-message-text-element.d.ts +37 -0
- package/dist/chat/message/chat-message-text-element.d.ts.map +1 -0
- package/dist/chat/message/chat-messages-element.d.ts +39 -0
- package/dist/chat/message/chat-messages-element.d.ts.map +1 -0
- package/dist/chat/message/index.d.ts +8 -0
- package/dist/chat/message/index.d.ts.map +1 -0
- package/dist/chat/message/n-chat-message.d.ts +2 -0
- package/dist/chat/message/n-chat-message.d.ts.map +1 -0
- package/dist/chat/register.d.ts +13 -0
- package/dist/chat/register.d.ts.map +1 -0
- package/dist/chat/stream/classify.d.ts +19 -0
- package/dist/chat/stream/classify.d.ts.map +1 -0
- package/dist/chat/stream/create-transport.d.ts +19 -0
- package/dist/chat/stream/create-transport.d.ts.map +1 -0
- package/dist/chat/stream/index.d.ts +9 -0
- package/dist/chat/stream/index.d.ts.map +1 -0
- package/dist/chat/stream/parse-json.d.ts +9 -0
- package/dist/chat/stream/parse-json.d.ts.map +1 -0
- package/dist/chat/stream/parse-ndjson.d.ts +9 -0
- package/dist/chat/stream/parse-ndjson.d.ts.map +1 -0
- package/dist/chat/stream/parse-sse.d.ts +9 -0
- package/dist/chat/stream/parse-sse.d.ts.map +1 -0
- package/dist/chat/stream/types.d.ts +42 -0
- package/dist/chat/stream/types.d.ts.map +1 -0
- package/dist/chat/telemetry/emitter.d.ts +20 -0
- package/dist/chat/telemetry/emitter.d.ts.map +1 -0
- package/dist/chat/telemetry/events.d.ts +11 -0
- package/dist/chat/telemetry/events.d.ts.map +1 -0
- package/dist/chat/telemetry/index.d.ts +5 -0
- package/dist/chat/telemetry/index.d.ts.map +1 -0
- package/dist/chat/telemetry/redactor.d.ts +17 -0
- package/dist/chat/telemetry/redactor.d.ts.map +1 -0
- package/dist/chat/telemetry/types.d.ts +27 -0
- package/dist/chat/telemetry/types.d.ts.map +1 -0
- package/dist/gateway.d.ts +2 -0
- package/dist/gateway.d.ts.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/native-ai.css +1567 -0
- package/dist/native-ai.js +252 -202
- package/dist/register.d.ts +12 -0
- package/dist/register.d.ts.map +1 -0
- package/dist/register.js +246 -196
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/a2ui/session/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI/D,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,CAAC;AAIlF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,cAAc,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACzE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACvD;AAID,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAID,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { NativeElement } from '@nonoun/native-ui';
|
|
2
|
+
/**
|
|
3
|
+
* Chat avatar — renders an image, icon, or initials for a chat participant.
|
|
4
|
+
*
|
|
5
|
+
* Priority: `src` (image) → `icon` (phosphor icon) → `name` (initials) → default icon.
|
|
6
|
+
*
|
|
7
|
+
* @attr {string} src - Image URL
|
|
8
|
+
* @attr {string} name - Display name (used for initials fallback)
|
|
9
|
+
* @attr {string} icon - Phosphor icon name
|
|
10
|
+
*/
|
|
11
|
+
export declare class NChatAvatar extends NativeElement {
|
|
12
|
+
#private;
|
|
13
|
+
static observedAttributes: string[];
|
|
14
|
+
attributeChangedCallback(name: string, old: string | null, val: string | null): void;
|
|
15
|
+
setup(): void;
|
|
16
|
+
teardown(): void;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=chat-avatar-element.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-avatar-element.d.ts","sourceRoot":"","sources":["../../../src/chat/avatar/chat-avatar-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAU,MAAM,mBAAmB,CAAC;AAE1D;;;;;;;;GAQG;AACH,qBAAa,WAAY,SAAQ,aAAa;;IAC5C,MAAM,CAAC,kBAAkB,WAA2B;IAMpD,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAUpF,KAAK,IAAI,IAAI;IA2Cb,QAAQ,IAAI,IAAI;CAIjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/chat/avatar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"n-chat-avatar.d.ts","sourceRoot":"","sources":["../../../src/chat/avatar/n-chat-avatar.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { NativeElement } from '@nonoun/native-ui';
|
|
2
|
+
/**
|
|
3
|
+
* Chat message input with textarea, submit button, and Enter-to-send behavior.
|
|
4
|
+
* @attr {boolean} disabled - Disables interaction
|
|
5
|
+
* @attr {string} value - Initial textarea value
|
|
6
|
+
* @attr {boolean} busy - Disables submit but keeps textarea enabled
|
|
7
|
+
* @attr {boolean} no-enter-submit - Disables Enter key submission
|
|
8
|
+
* @attr {boolean} no-auto-clear - Prevents clearing the textarea after send
|
|
9
|
+
* @fires native:send - Fired on submit with `{ value }` detail
|
|
10
|
+
* @fires native:composer-submit-blocked - Fired when submit is attempted while busy
|
|
11
|
+
* @fires native:composer-focus - Fired when the composer textarea gains focus
|
|
12
|
+
* @fires native:composer-blur - Fired when the composer textarea loses focus
|
|
13
|
+
*/
|
|
14
|
+
export declare class NChatInput extends NativeElement {
|
|
15
|
+
#private;
|
|
16
|
+
static observedAttributes: string[];
|
|
17
|
+
constructor();
|
|
18
|
+
get value(): string;
|
|
19
|
+
set value(val: string);
|
|
20
|
+
get disabled(): boolean;
|
|
21
|
+
set disabled(val: boolean);
|
|
22
|
+
get busy(): boolean;
|
|
23
|
+
set busy(val: boolean);
|
|
24
|
+
/** Focus the composer textarea. */
|
|
25
|
+
focusComposer(): void;
|
|
26
|
+
/** Blur the composer textarea. */
|
|
27
|
+
blurComposer(): void;
|
|
28
|
+
attributeChangedCallback(name: string, old: string | null, val: string | null): void;
|
|
29
|
+
setup(): void;
|
|
30
|
+
teardown(): void;
|
|
31
|
+
}
|
|
32
|
+
/** Advanced multi-zone variant — same behavior, distinct tag for CSS targeting. */
|
|
33
|
+
export declare class NChatInputAdvanced extends NChatInput {
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=chat-input-element.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-input-element.d.ts","sourceRoot":"","sources":["../../src/chat/chat-input-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgC,MAAM,mBAAmB,CAAC;AAGhF;;;;;;;;;;;GAWG;AACH,qBAAa,UAAW,SAAQ,aAAa;;IAC3C,MAAM,CAAC,kBAAkB,WAAiC;;IAe1D,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,EAEpB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,EAGxB;IAED,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO,EAGpB;IAED,mCAAmC;IACnC,aAAa,IAAI,IAAI;IAKrB,kCAAkC;IAClC,YAAY,IAAI,IAAI;IAOpB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAkBpF,KAAK,IAAI,IAAI;IA+Cb,QAAQ,IAAI,IAAI;CAsHjB;AAED,mFAAmF;AACnF,qBAAa,kBAAmB,SAAQ,UAAU;CAAG"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { NativeElement } from '@nonoun/native-ui';
|
|
2
|
+
import type { GatewayConfig } from './gateway/adapter';
|
|
3
|
+
export type AutoFocusPolicy = 'open-request' | 'ready' | 'never';
|
|
4
|
+
export interface ChatPanelOpenOptions {
|
|
5
|
+
focusComposer?: boolean;
|
|
6
|
+
reason?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface FocusComposerOptions {
|
|
9
|
+
cursor?: 'start' | 'end' | 'preserve';
|
|
10
|
+
}
|
|
11
|
+
export interface ModelOption {
|
|
12
|
+
value: string;
|
|
13
|
+
label?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Stamped panel for the chat interface.
|
|
17
|
+
*
|
|
18
|
+
* Creates `<header>` (icon, title), `<section>` containing
|
|
19
|
+
* `<n-chat-content>`, and `<footer>` with `<n-chat-input>` directly
|
|
20
|
+
* as children. The host element itself is the panel surface.
|
|
21
|
+
*
|
|
22
|
+
* ## Extension Points
|
|
23
|
+
*
|
|
24
|
+
* **Header trailing slot** — move consumer-provided controls into the header:
|
|
25
|
+
* ```html
|
|
26
|
+
* <native-chat-panel>
|
|
27
|
+
* <div slot="header-trailing"><n-button variant="ghost">Custom</n-button></div>
|
|
28
|
+
* </native-chat-panel>
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* **Footer leading slot** — insert content before the chat input:
|
|
32
|
+
* ```html
|
|
33
|
+
* <native-chat-panel>
|
|
34
|
+
* <div slot="footer-leading">Powered by AI</div>
|
|
35
|
+
* </native-chat-panel>
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* **Stop / Restart buttons** — toggle via attributes:
|
|
39
|
+
* ```html
|
|
40
|
+
* <native-chat-panel show-stop></native-chat-panel>
|
|
41
|
+
* ```
|
|
42
|
+
* @attr {boolean} show-stop - Show a stop button in the header; fires `native:chat-stop`
|
|
43
|
+
* @attr {boolean} show-restart - Show a restart button in the header; fires `native:chat-restart`
|
|
44
|
+
* @attr {string} auto-focus-policy - When to auto-focus the composer: 'open-request' (default), 'ready', 'never'
|
|
45
|
+
* @attr {string} model - Currently selected model value
|
|
46
|
+
* @fires native:chat-stop - Fired when the stop button is pressed
|
|
47
|
+
* @fires native:chat-restart - Fired when the restart button is pressed
|
|
48
|
+
* @fires native:send - Fired on submit with `{ value }` detail
|
|
49
|
+
* @fires native:chat-opened - Fired when the panel opens
|
|
50
|
+
* @fires native:chat-closed - Fired when the panel closes
|
|
51
|
+
* @fires native:composer-focused - Fired when the composer receives focus via API/policy
|
|
52
|
+
* @fires native:composer-focus-failed - Fired when focusComposer() fails after retries
|
|
53
|
+
* @fires native:model-change - Fired when user selects a different model. Detail: `{ value, previousValue }`
|
|
54
|
+
* @attr {string} models - Comma-separated model IDs (e.g. 'claude-haiku-4-5-20251001,gpt-4.1-mini'). Parsed into ModelOption[] with value=label=id.
|
|
55
|
+
* @attr {string} gateway - Gateway adapter: 'openai' or 'claude'. When set, panel handles send/stream automatically
|
|
56
|
+
* @attr {string} gateway-url - Base URL for the gateway API (e.g. '/api/chat' or 'https://api.openai.com/v1')
|
|
57
|
+
* @attr {string} gateway-config - JSON config for the adapter (model, apiKey, system, etc.)
|
|
58
|
+
* @attr {string} gateway-urls - JSON map of provider prefixes to URLs (e.g. '{"claude":"/api/anthropic","openai":"/api/openai"}'). When set, auto-switches gateway based on model prefix.
|
|
59
|
+
*/
|
|
60
|
+
export declare class NChatPanel extends NativeElement {
|
|
61
|
+
#private;
|
|
62
|
+
static readonly MAX_CONTEXT_MESSAGES = 50;
|
|
63
|
+
static observedAttributes: string[];
|
|
64
|
+
attributeChangedCallback(name: string, old: string | null, val: string | null): void;
|
|
65
|
+
get showStop(): boolean;
|
|
66
|
+
set showStop(val: boolean);
|
|
67
|
+
get showRestart(): boolean;
|
|
68
|
+
set showRestart(val: boolean);
|
|
69
|
+
get autoFocusPolicy(): AutoFocusPolicy;
|
|
70
|
+
set autoFocusPolicy(val: AutoFocusPolicy);
|
|
71
|
+
/** List of available models for the model picker. */
|
|
72
|
+
get models(): ModelOption[];
|
|
73
|
+
set models(val: ModelOption[]);
|
|
74
|
+
/** Currently selected model value. */
|
|
75
|
+
get model(): string | null;
|
|
76
|
+
set model(val: string | null);
|
|
77
|
+
/** Gateway adapter type: 'openai' or 'claude'. When set, panel handles send/stream automatically. */
|
|
78
|
+
get gateway(): string | null;
|
|
79
|
+
set gateway(val: string | null);
|
|
80
|
+
/** Base URL for the gateway API. */
|
|
81
|
+
get gatewayUrl(): string | null;
|
|
82
|
+
set gatewayUrl(val: string | null);
|
|
83
|
+
/** Configuration for the gateway adapter (model, apiKey, system, etc.). */
|
|
84
|
+
get gatewayConfig(): GatewayConfig | null;
|
|
85
|
+
set gatewayConfig(val: GatewayConfig | null);
|
|
86
|
+
/** Map of provider prefixes to gateway URLs. Enables auto-switching gateway based on model prefix. */
|
|
87
|
+
get gatewayUrls(): Record<string, string> | null;
|
|
88
|
+
set gatewayUrls(val: Record<string, string> | null);
|
|
89
|
+
/** Whether the panel is currently streaming a response. Read-only. */
|
|
90
|
+
get streaming(): boolean;
|
|
91
|
+
/** Open the panel. Optionally focus the composer. */
|
|
92
|
+
open(options?: ChatPanelOpenOptions): void;
|
|
93
|
+
/** Close the panel. */
|
|
94
|
+
close(reason?: string): void;
|
|
95
|
+
/** Focus the composer input. */
|
|
96
|
+
focusComposer(options?: FocusComposerOptions, by?: 'api' | 'user' | 'policy'): void;
|
|
97
|
+
setup(): void;
|
|
98
|
+
teardown(): void;
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=chat-panel-element.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-panel-element.d.ts","sourceRoot":"","sources":["../../src/chat/chat-panel-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAU,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAkB,aAAa,EAAgC,MAAM,mBAAmB,CAAC;AAWrG,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,OAAO,GAAG,OAAO,CAAC;AAEjE,MAAM,WAAW,oBAAoB;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,UAAU,CAAC;CACvC;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,qBAAa,UAAW,SAAQ,aAAa;;IAC3C,MAAM,CAAC,QAAQ,CAAC,oBAAoB,MAAM;IAC1C,MAAM,CAAC,kBAAkB,WAA6I;IAiCtK,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IA0DpF,IAAI,QAAQ,IAAI,OAAO,CAAiC;IACxD,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,EAGxB;IAED,IAAI,WAAW,IAAI,OAAO,CAAoC;IAC9D,IAAI,WAAW,CAAC,GAAG,EAAE,OAAO,EAG3B;IAED,IAAI,eAAe,IAAI,eAAe,CAAwC;IAC9E,IAAI,eAAe,CAAC,GAAG,EAAE,eAAe,EAGvC;IAED,qDAAqD;IACrD,IAAI,MAAM,IAAI,WAAW,EAAE,CAA+B;IAC1D,IAAI,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,EAa5B;IAED,sCAAsC;IACtC,IAAI,KAAK,IAAI,MAAM,GAAG,IAAI,CAA8B;IACxD,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAO3B;IAED,qGAAqG;IACrG,IAAI,OAAO,IAAI,MAAM,GAAG,IAAI,CAAgC;IAC5D,IAAI,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAI7B;IAED,oCAAoC;IACpC,IAAI,UAAU,IAAI,MAAM,GAAG,IAAI,CAAmC;IAClE,IAAI,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAIhC;IAED,2EAA2E;IAC3E,IAAI,aAAa,IAAI,aAAa,GAAG,IAAI,CAAsC;IAC/E,IAAI,aAAa,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,EAI1C;IAED,sGAAsG;IACtG,IAAI,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAoC;IACpF,IAAI,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,EAIjD;IAED,sEAAsE;IACtE,IAAI,SAAS,IAAI,OAAO,CAAkC;IAE1D,qDAAqD;IACrD,IAAI,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,IAAI;IAkB1C,uBAAuB;IACvB,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAU5B,gCAAgC;IAChC,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB,EAAE,EAAE,GAAE,KAAK,GAAG,MAAM,GAAG,QAAgB,GAAG,IAAI;IAM1F,KAAK,IAAI,IAAI;IAgSb,QAAQ,IAAI,IAAI;CA4ZjB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { NativeElement } from '@nonoun/native-ui';
|
|
2
|
+
/**
|
|
3
|
+
* Chat feed coordinator — scrollable thread of message groups.
|
|
4
|
+
*
|
|
5
|
+
* Wraps `n-chat-messages` groups and manages auto-scroll behavior.
|
|
6
|
+
* When pinned to bottom, new content automatically scrolls into view.
|
|
7
|
+
*
|
|
8
|
+
* ```html
|
|
9
|
+
* <n-chat-feed auto-scroll>
|
|
10
|
+
* <n-chat-messages role="assistant">...</n-chat-messages>
|
|
11
|
+
* <n-chat-messages role="user">...</n-chat-messages>
|
|
12
|
+
* </n-chat-feed>
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* ### Virtualization (opt-in)
|
|
16
|
+
*
|
|
17
|
+
* ```html
|
|
18
|
+
* <n-chat-feed virtual virtual-item-height="80" virtual-overscan="8">
|
|
19
|
+
* </n-chat-feed>
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* Set `items` and `itemRenderer` properties for programmatic data-driven rendering.
|
|
23
|
+
*
|
|
24
|
+
* @attr {boolean} auto-scroll - Enable auto-scroll to bottom on new content (default: true)
|
|
25
|
+
* @attr {boolean} virtual - Enable virtual scroll windowing
|
|
26
|
+
* @attr {string} virtual-item-height - Estimated item height in px (default: 80)
|
|
27
|
+
* @attr {string} virtual-overscan - Number of extra items to render outside viewport (default: 5)
|
|
28
|
+
* @fires native:feed-scroll - Fired when scroll pinned state changes
|
|
29
|
+
* @fires native:range-change - Fired when virtual scroll range changes
|
|
30
|
+
*/
|
|
31
|
+
export declare class NChatFeed extends NativeElement {
|
|
32
|
+
#private;
|
|
33
|
+
static observedAttributes: string[];
|
|
34
|
+
constructor();
|
|
35
|
+
get isPinned(): boolean;
|
|
36
|
+
/** Scroll to the bottom of the feed. */
|
|
37
|
+
scrollToBottom(smooth?: boolean): void;
|
|
38
|
+
/** Data items for virtual rendering. */
|
|
39
|
+
get items(): unknown[];
|
|
40
|
+
set items(val: unknown[]);
|
|
41
|
+
/** Callback that creates an HTMLElement from a data item. */
|
|
42
|
+
get itemRenderer(): ((item: unknown, index: number) => HTMLElement) | null;
|
|
43
|
+
set itemRenderer(fn: ((item: unknown, index: number) => HTMLElement) | null);
|
|
44
|
+
attributeChangedCallback(name: string, old: string | null, val: string | null): void;
|
|
45
|
+
setup(): void;
|
|
46
|
+
teardown(): void;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=chat-feed-element.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-feed-element.d.ts","sourceRoot":"","sources":["../../../src/chat/feed/chat-feed-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAmC,MAAM,mBAAmB,CAAC;AAInF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,SAAU,SAAQ,aAAa;;IAC1C,MAAM,CAAC,kBAAkB,WAAuF;;IAoBhH,IAAI,QAAQ,IAAI,OAAO,CAAiC;IAExD,wCAAwC;IACxC,cAAc,CAAC,MAAM,UAAO,GAAG,IAAI;IAQnC,wCAAwC;IACxC,IAAI,KAAK,IAAI,OAAO,EAAE,CAA8B;IACpD,IAAI,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,EAKvB;IAED,6DAA6D;IAC7D,IAAI,YAAY,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,WAAW,CAAC,GAAG,IAAI,CAA+B;IACzG,IAAI,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,WAAW,CAAC,GAAG,IAAI,EAE1E;IAID,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IA0BpF,KAAK,IAAI,IAAI;IA8Bb,QAAQ,IAAI,IAAI;CAsHjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/chat/feed/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"n-chat-feed.d.ts","sourceRoot":"","sources":["../../../src/chat/feed/n-chat-feed.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { GatewayAdapter, GatewayAdapterFactory, GatewayConfig } from './adapter';
|
|
2
|
+
import type { BootstrapResponse, ChatMessage, ClientMetadataResponse, GatewayModel, GatewayHealth, GatewayStreamEvent, SendMessageResponse, SendMessageStreamChunk, SendTransportMode } from './types';
|
|
3
|
+
import { fetchWithRetry } from './runtime';
|
|
4
|
+
interface OpenAiGatewayAdapterConfig {
|
|
5
|
+
clientId: string;
|
|
6
|
+
baseUrl: string;
|
|
7
|
+
model: string;
|
|
8
|
+
maxTokens: number;
|
|
9
|
+
system?: string;
|
|
10
|
+
temperature?: number;
|
|
11
|
+
apiKey?: string | null;
|
|
12
|
+
organization?: string | null;
|
|
13
|
+
defaultSessionId?: string | null;
|
|
14
|
+
onEvent?: Parameters<typeof fetchWithRetry>[0]['onEvent'];
|
|
15
|
+
}
|
|
16
|
+
export declare class OpenAiGatewayAdapter implements GatewayAdapter {
|
|
17
|
+
private readonly clientId;
|
|
18
|
+
private readonly baseUrl;
|
|
19
|
+
private readonly model;
|
|
20
|
+
private readonly maxTokens;
|
|
21
|
+
private readonly system?;
|
|
22
|
+
private readonly temperature?;
|
|
23
|
+
private readonly apiKey?;
|
|
24
|
+
private readonly organization?;
|
|
25
|
+
private readonly defaultSessionId?;
|
|
26
|
+
private readonly onEvent?;
|
|
27
|
+
constructor(config: OpenAiGatewayAdapterConfig);
|
|
28
|
+
bootstrapSession(): Promise<BootstrapResponse>;
|
|
29
|
+
sendMessage(params: {
|
|
30
|
+
id: string;
|
|
31
|
+
messages: ChatMessage[];
|
|
32
|
+
query: string;
|
|
33
|
+
model?: string;
|
|
34
|
+
localTime?: string;
|
|
35
|
+
signal?: AbortSignal;
|
|
36
|
+
requestId?: string;
|
|
37
|
+
}): Promise<SendMessageResponse>;
|
|
38
|
+
sendMessageStream(params: {
|
|
39
|
+
id: string;
|
|
40
|
+
messages: ChatMessage[];
|
|
41
|
+
query: string;
|
|
42
|
+
model?: string;
|
|
43
|
+
localTime?: string;
|
|
44
|
+
signal?: AbortSignal;
|
|
45
|
+
requestId?: string;
|
|
46
|
+
onChunk?: (chunk: SendMessageStreamChunk) => void;
|
|
47
|
+
onMode?: (mode: SendTransportMode, contentType: string) => void;
|
|
48
|
+
onStreamEvent?: (event: GatewayStreamEvent) => void;
|
|
49
|
+
}): Promise<SendMessageResponse>;
|
|
50
|
+
checkHealth(params?: {
|
|
51
|
+
signal?: AbortSignal;
|
|
52
|
+
requestId?: string;
|
|
53
|
+
}): Promise<GatewayHealth>;
|
|
54
|
+
getClientMetadata(): Promise<ClientMetadataResponse>;
|
|
55
|
+
listModels(params?: {
|
|
56
|
+
signal?: AbortSignal;
|
|
57
|
+
requestId?: string;
|
|
58
|
+
}): Promise<GatewayModel[]>;
|
|
59
|
+
private buildRequestPayload;
|
|
60
|
+
private mapMessages;
|
|
61
|
+
private parseEventStream;
|
|
62
|
+
private request;
|
|
63
|
+
}
|
|
64
|
+
export declare const createOpenAiGatewayAdapter: GatewayAdapterFactory;
|
|
65
|
+
export declare function validateOpenAiGatewayConfig(config: GatewayConfig): GatewayConfig;
|
|
66
|
+
export {};
|
|
67
|
+
//# sourceMappingURL=adapter-chatgpt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter-chatgpt.d.ts","sourceRoot":"","sources":["../../../src/chat/gateway/adapter-chatgpt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { GatewayAdapter, GatewayAdapterFactory, GatewayConfig } from './adapter';
|
|
2
|
+
import type { BootstrapResponse, ChatMessage, ClientMetadataResponse, GatewayModel, GatewayHealth, GatewayStreamEvent, SendMessageResponse, SendMessageStreamChunk, SendTransportMode } from './types';
|
|
3
|
+
import { fetchWithRetry } from './runtime';
|
|
4
|
+
interface ClaudeGatewayAdapterConfig {
|
|
5
|
+
clientId: string;
|
|
6
|
+
baseUrl: string;
|
|
7
|
+
model: string;
|
|
8
|
+
maxTokens: number;
|
|
9
|
+
system?: string;
|
|
10
|
+
temperature?: number;
|
|
11
|
+
apiKey?: string | null;
|
|
12
|
+
anthropicVersion: string;
|
|
13
|
+
defaultSessionId?: string | null;
|
|
14
|
+
onEvent?: Parameters<typeof fetchWithRetry>[0]['onEvent'];
|
|
15
|
+
}
|
|
16
|
+
export declare class ClaudeGatewayAdapter implements GatewayAdapter {
|
|
17
|
+
private readonly clientId;
|
|
18
|
+
private readonly baseUrl;
|
|
19
|
+
private readonly model;
|
|
20
|
+
private readonly maxTokens;
|
|
21
|
+
private readonly system?;
|
|
22
|
+
private readonly temperature?;
|
|
23
|
+
private readonly apiKey?;
|
|
24
|
+
private readonly anthropicVersion;
|
|
25
|
+
private readonly defaultSessionId?;
|
|
26
|
+
private readonly onEvent?;
|
|
27
|
+
constructor(config: ClaudeGatewayAdapterConfig);
|
|
28
|
+
bootstrapSession(): Promise<BootstrapResponse>;
|
|
29
|
+
sendMessage(params: {
|
|
30
|
+
id: string;
|
|
31
|
+
messages: ChatMessage[];
|
|
32
|
+
query: string;
|
|
33
|
+
model?: string;
|
|
34
|
+
localTime?: string;
|
|
35
|
+
signal?: AbortSignal;
|
|
36
|
+
requestId?: string;
|
|
37
|
+
}): Promise<SendMessageResponse>;
|
|
38
|
+
sendMessageStream(params: {
|
|
39
|
+
id: string;
|
|
40
|
+
messages: ChatMessage[];
|
|
41
|
+
query: string;
|
|
42
|
+
model?: string;
|
|
43
|
+
localTime?: string;
|
|
44
|
+
signal?: AbortSignal;
|
|
45
|
+
requestId?: string;
|
|
46
|
+
onChunk?: (chunk: SendMessageStreamChunk) => void;
|
|
47
|
+
onMode?: (mode: SendTransportMode, contentType: string) => void;
|
|
48
|
+
onStreamEvent?: (event: GatewayStreamEvent) => void;
|
|
49
|
+
}): Promise<SendMessageResponse>;
|
|
50
|
+
checkHealth(params?: {
|
|
51
|
+
signal?: AbortSignal;
|
|
52
|
+
requestId?: string;
|
|
53
|
+
}): Promise<GatewayHealth>;
|
|
54
|
+
getClientMetadata(): Promise<ClientMetadataResponse>;
|
|
55
|
+
listModels(params?: {
|
|
56
|
+
signal?: AbortSignal;
|
|
57
|
+
requestId?: string;
|
|
58
|
+
}): Promise<GatewayModel[]>;
|
|
59
|
+
private buildRequestPayload;
|
|
60
|
+
private mapMessages;
|
|
61
|
+
private extractTextFromMessage;
|
|
62
|
+
private parseEventStream;
|
|
63
|
+
private request;
|
|
64
|
+
}
|
|
65
|
+
export declare const createClaudeGatewayAdapter: GatewayAdapterFactory;
|
|
66
|
+
export declare function validateClaudeGatewayConfig(config: GatewayConfig): GatewayConfig;
|
|
67
|
+
export {};
|
|
68
|
+
//# sourceMappingURL=adapter-claude.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter-claude.d.ts","sourceRoot":"","sources":["../../../src/chat/gateway/adapter-claude.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter-mock.d.ts","sourceRoot":"","sources":["../../../src/chat/gateway/adapter-mock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,4BAA4B,EAAE,MAAM,WAAW,CAAC;AA6H9E,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,4BAA4B,GAAG,cAAc,CAE/F"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type { BootstrapResponse, ChatMessage, ClientMetadataResponse, GatewayModel, GatewayEvent, GatewayHealth, SendMessageResponse, SendMessageStreamChunk, GatewayStreamEvent, SendTransportMode } from './types';
|
|
2
|
+
export interface GatewayAdapter {
|
|
3
|
+
bootstrapSession(params?: {
|
|
4
|
+
signal?: AbortSignal;
|
|
5
|
+
requestId?: string;
|
|
6
|
+
}): Promise<BootstrapResponse>;
|
|
7
|
+
sendMessage(params: {
|
|
8
|
+
id: string;
|
|
9
|
+
messages: ChatMessage[];
|
|
10
|
+
query: string;
|
|
11
|
+
model?: string;
|
|
12
|
+
localTime?: string;
|
|
13
|
+
signal?: AbortSignal;
|
|
14
|
+
requestId?: string;
|
|
15
|
+
}): Promise<SendMessageResponse>;
|
|
16
|
+
sendMessageStream(params: {
|
|
17
|
+
id: string;
|
|
18
|
+
messages: ChatMessage[];
|
|
19
|
+
query: string;
|
|
20
|
+
model?: string;
|
|
21
|
+
localTime?: string;
|
|
22
|
+
signal?: AbortSignal;
|
|
23
|
+
requestId?: string;
|
|
24
|
+
onChunk?: (chunk: SendMessageStreamChunk) => void;
|
|
25
|
+
onMode?: (mode: SendTransportMode, contentType: string) => void;
|
|
26
|
+
onStreamEvent?: (event: GatewayStreamEvent) => void;
|
|
27
|
+
}): Promise<SendMessageResponse>;
|
|
28
|
+
checkHealth(params?: {
|
|
29
|
+
signal?: AbortSignal;
|
|
30
|
+
requestId?: string;
|
|
31
|
+
}): Promise<GatewayHealth>;
|
|
32
|
+
getClientMetadata(params?: {
|
|
33
|
+
signal?: AbortSignal;
|
|
34
|
+
requestId?: string;
|
|
35
|
+
}): Promise<ClientMetadataResponse>;
|
|
36
|
+
listModels?(params?: {
|
|
37
|
+
signal?: AbortSignal;
|
|
38
|
+
requestId?: string;
|
|
39
|
+
}): Promise<GatewayModel[]>;
|
|
40
|
+
}
|
|
41
|
+
export interface GatewayCapabilities {
|
|
42
|
+
sessionStrategy: 'provider' | 'local' | 'hybrid';
|
|
43
|
+
supportsHistory: boolean;
|
|
44
|
+
supportsStreaming: boolean;
|
|
45
|
+
supportsStructuredActions: boolean;
|
|
46
|
+
supportsSystemPrompt: boolean;
|
|
47
|
+
supportsTools: boolean;
|
|
48
|
+
supportsModelPicker: boolean;
|
|
49
|
+
}
|
|
50
|
+
export type GatewayConfig = Record<string, unknown>;
|
|
51
|
+
export interface GatewayAuthConfig {
|
|
52
|
+
token?: string | null;
|
|
53
|
+
headerName?: string;
|
|
54
|
+
scheme?: 'bearer' | 'raw';
|
|
55
|
+
additionalHeaders?: Record<string, string>;
|
|
56
|
+
}
|
|
57
|
+
export interface GatewayAdapterFactoryContext {
|
|
58
|
+
clientId: string;
|
|
59
|
+
baseUrl: string;
|
|
60
|
+
gatewayConfig?: GatewayConfig;
|
|
61
|
+
auth?: GatewayAuthConfig;
|
|
62
|
+
onEvent?: (event: GatewayEvent) => void;
|
|
63
|
+
}
|
|
64
|
+
export type GatewayAdapterFactory = (context: GatewayAdapterFactoryContext) => GatewayAdapter;
|
|
65
|
+
export type GatewayConfigValidator = (config: GatewayConfig) => GatewayConfig;
|
|
66
|
+
export interface GatewayRegistration {
|
|
67
|
+
factory: GatewayAdapterFactory;
|
|
68
|
+
capabilities: GatewayCapabilities;
|
|
69
|
+
validateConfig?: GatewayConfigValidator;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/chat/gateway/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { GatewayAdapter, GatewayCapabilities } from './adapter';
|
|
2
|
+
import type { BootstrapResponse, ChatMessage, ClientMetadataResponse, GatewayModel, GatewayHealth, SendMessageResponse, SendMessageStreamChunk, GatewayStreamEvent, SendTransportMode } from './types';
|
|
3
|
+
export declare class LLMGatewayController {
|
|
4
|
+
private readonly adapter;
|
|
5
|
+
private readonly capabilities;
|
|
6
|
+
constructor(adapter: GatewayAdapter, capabilities: GatewayCapabilities);
|
|
7
|
+
bootstrapSession(params?: {
|
|
8
|
+
signal?: AbortSignal;
|
|
9
|
+
requestId?: string;
|
|
10
|
+
}): Promise<BootstrapResponse>;
|
|
11
|
+
sendMessage(params: {
|
|
12
|
+
id: string;
|
|
13
|
+
messages: ChatMessage[];
|
|
14
|
+
query: string;
|
|
15
|
+
model?: string;
|
|
16
|
+
localTime?: string;
|
|
17
|
+
signal?: AbortSignal;
|
|
18
|
+
requestId?: string;
|
|
19
|
+
}): Promise<SendMessageResponse>;
|
|
20
|
+
sendMessageStream(params: {
|
|
21
|
+
id: string;
|
|
22
|
+
messages: ChatMessage[];
|
|
23
|
+
query: string;
|
|
24
|
+
model?: string;
|
|
25
|
+
localTime?: string;
|
|
26
|
+
signal?: AbortSignal;
|
|
27
|
+
requestId?: string;
|
|
28
|
+
onChunk?: (chunk: SendMessageStreamChunk) => void;
|
|
29
|
+
onMode?: (mode: SendTransportMode, contentType: string) => void;
|
|
30
|
+
onStreamEvent?: (event: GatewayStreamEvent) => void;
|
|
31
|
+
}): Promise<SendMessageResponse>;
|
|
32
|
+
checkHealth(params?: {
|
|
33
|
+
signal?: AbortSignal;
|
|
34
|
+
requestId?: string;
|
|
35
|
+
}): Promise<GatewayHealth>;
|
|
36
|
+
getClientMetadata(params?: {
|
|
37
|
+
signal?: AbortSignal;
|
|
38
|
+
requestId?: string;
|
|
39
|
+
}): Promise<ClientMetadataResponse>;
|
|
40
|
+
listModels(params?: {
|
|
41
|
+
signal?: AbortSignal;
|
|
42
|
+
requestId?: string;
|
|
43
|
+
}): Promise<GatewayModel[]>;
|
|
44
|
+
getCapabilities(): GatewayCapabilities;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/chat/gateway/controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,KAAK,EACV,iBAAiB,EACjB,WAAW,EACX,sBAAsB,EACtB,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;gBAEvC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,mBAAmB;IAKtE,gBAAgB,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAInG,WAAW,CAAC,MAAM,EAAE;QAClB,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,WAAW,EAAE,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAIhC,iBAAiB,CAAC,MAAM,EAAE;QACxB,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,WAAW,EAAE,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAC;QAClD,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;QAChE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;KACrD,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAIhC,WAAW,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IAI1F,iBAAiB,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAIzG,UAAU,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAK1F,eAAe,IAAI,mBAAmB;CAGvC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type { ChatRole, ChatMessage, BootstrapResponse, SendMessageResponse, SendMessageStreamChunk, GatewayModel, ClientMetadataResponse, GatewayStreamEvent, SendTransportMode, GatewayErrorKind, GatewayEvent, GatewayHealth, GatewayErrorLike, } from './types';
|
|
2
|
+
export { isGatewayErrorLike } from './types';
|
|
3
|
+
export type { GatewayAdapter, GatewayCapabilities, GatewayConfig, GatewayAuthConfig, GatewayAdapterFactoryContext, GatewayAdapterFactory, GatewayConfigValidator, GatewayRegistration, } from './adapter';
|
|
4
|
+
export { LLMGatewayController, } from './controller';
|
|
5
|
+
export { DEFAULT_REQUEST_TIMEOUT_MS, DEFAULT_RETRY_DELAYS_MS, GatewayRequestError, classifyByStatus, createRequestId, fetchWithRetry, parseSseEvent, parseJsonResponse, } from './runtime';
|
|
6
|
+
export { ClaudeGatewayAdapter, createClaudeGatewayAdapter, validateClaudeGatewayConfig, } from './adapter-claude';
|
|
7
|
+
export { OpenAiGatewayAdapter, createOpenAiGatewayAdapter, validateOpenAiGatewayConfig, } from './adapter-chatgpt';
|
|
8
|
+
export { createMockGatewayAdapter, } from './adapter-mock';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/chat/gateway/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,YAAY,EACZ,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,4BAA4B,EAC5B,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,aAAa,EACb,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,wBAAwB,GACzB,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { GatewayAuthConfig } from './adapter';
|
|
2
|
+
import type { GatewayErrorKind, GatewayEvent } from './types';
|
|
3
|
+
export interface GatewayRequestErrorLike extends Error {
|
|
4
|
+
kind: GatewayErrorKind;
|
|
5
|
+
status: number;
|
|
6
|
+
body: string;
|
|
7
|
+
requestId: string;
|
|
8
|
+
contentType?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare class GatewayRequestError extends Error implements GatewayRequestErrorLike {
|
|
11
|
+
readonly kind: GatewayErrorKind;
|
|
12
|
+
readonly status: number;
|
|
13
|
+
readonly body: string;
|
|
14
|
+
readonly requestId: string;
|
|
15
|
+
readonly contentType?: string;
|
|
16
|
+
constructor(params: {
|
|
17
|
+
message: string;
|
|
18
|
+
kind: GatewayErrorKind;
|
|
19
|
+
requestId: string;
|
|
20
|
+
status?: number;
|
|
21
|
+
body?: string;
|
|
22
|
+
contentType?: string;
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
export interface GatewayRetryPolicy {
|
|
26
|
+
delaysMs: number[];
|
|
27
|
+
jitterRatio?: number;
|
|
28
|
+
}
|
|
29
|
+
export declare const DEFAULT_REQUEST_TIMEOUT_MS = 30000;
|
|
30
|
+
export interface FetchWithRetryOptions {
|
|
31
|
+
url: string;
|
|
32
|
+
init: RequestInit & {
|
|
33
|
+
requestId: string;
|
|
34
|
+
};
|
|
35
|
+
retryPolicy?: GatewayRetryPolicy;
|
|
36
|
+
auth?: GatewayAuthConfig;
|
|
37
|
+
defaultHeaders?: Record<string, string>;
|
|
38
|
+
onEvent?: (event: GatewayEvent) => void;
|
|
39
|
+
/** Request timeout in milliseconds. Defaults to 30000 (30s). */
|
|
40
|
+
timeoutMs?: number;
|
|
41
|
+
/** When true, skip all retry logic (useful for streaming requests). */
|
|
42
|
+
noRetry?: boolean;
|
|
43
|
+
}
|
|
44
|
+
export declare function fetchWithRetry(options: FetchWithRetryOptions): Promise<Response>;
|
|
45
|
+
export declare function classifyByStatus(status: number): GatewayErrorKind;
|
|
46
|
+
export declare function parseJsonResponse<T>(response: Response, requestId: string): Promise<T>;
|
|
47
|
+
export declare function createRequestId(): string;
|
|
48
|
+
export declare function parseSseEvent(raw: string): {
|
|
49
|
+
event: string;
|
|
50
|
+
data: string;
|
|
51
|
+
} | null;
|
|
52
|
+
export declare const DEFAULT_RETRY_DELAYS_MS: number[];
|
|
53
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../src/chat/gateway/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE9D,MAAM,WAAW,uBAAwB,SAAQ,KAAK;IACpD,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,mBAAoB,SAAQ,KAAM,YAAW,uBAAuB;IAC/E,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;gBAElB,MAAM,EAAE;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,gBAAgB,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB;CASF;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,0BAA0B,QAAS,CAAC;AAEjD,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,WAAW,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAGtF;AA4JD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAMjE;AAED,wBAAsB,iBAAiB,CAAC,CAAC,EACvC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,CAAC,CAAC,CAwBZ;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAYD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAWjF;AAED,eAAO,MAAM,uBAAuB,UAAqB,CAAC"}
|