@yak-io/vue 0.3.0 β†’ 0.5.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/README.md CHANGED
@@ -1,25 +1,41 @@
1
1
  # @yak-io/vue
2
2
 
3
- Vue 3 integration for the Yak embeddable chat widget. Uses Vue's Composition API with reactive refs.
3
+ > πŸ“š **Full documentation:** https://docs.yak.io/docs/sdks/vue
4
+ >
5
+ > πŸ€– **For LLMs / AI agents:** https://docs.yak.io/llms.txt
4
6
 
5
- ## Installation
7
+ Vue 3 SDK for [Yak](https://docs.yak.io) β€” an embeddable AI assistant (text chat **and** push-to-talk voice) for web apps. Call `createYakProvider` once in your root component; reactive state is exposed as Vue refs and shared with descendants via `provide`/`inject`.
6
8
 
7
9
  ```bash
8
10
  pnpm add @yak-io/vue
9
11
  ```
10
12
 
11
- ## Quickstart
13
+ ## Exports
12
14
 
13
- ### 1. Initialize in your root component
15
+ | Export | Kind | Purpose |
16
+ | --- | --- | --- |
17
+ | `createYakProvider(options)` | fn | Initialize the widget in your root component. Returns a `YakApi`. Auto-mounts/unmounts. |
18
+ | `useYak()` | fn | Inject the `YakApi` in any descendant component. |
19
+ | `useYakToolEvent(handler)` | fn | Run a callback after each tool call (auto-unsubscribes on unmount). |
20
+ | `createYakToolset` / `createYakServerAdapter` | fn | Compose GraphQL/REST/tRPC/custom tool adapters into one `onToolCall` (re-exported from `@yak-io/javascript`). |
21
+ | `enableYakLogging` / `disableYakLogging` / `isYakLoggingEnabled` | fn | Toggle verbose SDK logging. |
22
+ | Types | β€” | `YakProviderOptions`, `YakApi`, `ToolCallEventHandler`, plus core types from `@yak-io/javascript`. |
14
23
 
15
- ```ts
16
- // App.vue <script setup>
24
+ ## Quickstart
25
+
26
+ ```vue
27
+ <!-- App.vue -->
28
+ <script setup lang="ts">
29
+ import { useRouter } from "vue-router";
17
30
  import { createYakProvider } from "@yak-io/vue";
18
31
 
32
+ const router = useRouter();
33
+
19
34
  createYakProvider({
20
35
  appId: import.meta.env.VITE_YAK_APP_ID,
36
+ mode: "both", // "chat" | "voice" | "both" β€” default "chat"
37
+ trigger: true, // show the floating launcher pill
21
38
  theme: { position: "bottom-right", colorMode: "system" },
22
- trigger: { label: "Ask with AI" },
23
39
  getConfig: async () => {
24
40
  const res = await fetch("/api/yak");
25
41
  return res.json();
@@ -34,100 +50,107 @@ createYakProvider({
34
50
  if (!data.ok) throw new Error(data.error);
35
51
  return data.result;
36
52
  },
37
- onRedirect: (path) => {
38
- router.push(path);
39
- },
53
+ onRedirect: (path) => router.push(path),
40
54
  });
55
+ </script>
56
+
57
+ <template>
58
+ <RouterView />
59
+ </template>
41
60
  ```
42
61
 
43
- `createYakProvider` calls `onMounted` and `onUnmounted` internally β€” no manual lifecycle management needed.
62
+ `createYakProvider` registers `onMounted`/`onUnmounted` for you β€” no manual lifecycle needed.
44
63
 
45
- ### 2. Use in descendant components
64
+ ## Programmatic control
46
65
 
47
- ```ts
48
- // MyComponent.vue <script setup>
66
+ ```vue
67
+ <script setup lang="ts">
49
68
  import { useYak } from "@yak-io/vue";
50
69
 
51
- const { open, openWithPrompt, isOpen, isReady } = useYak();
70
+ const { open, openWithPrompt, isOpen } = useYak();
71
+ </script>
72
+
73
+ <template>
74
+ <button @click="open">Open chat</button>
75
+ <button @click="openWithPrompt('How do I get started?')">Get help</button>
76
+ <span v-if="isOpen">Chat is open</span>
77
+ </template>
52
78
  ```
53
79
 
54
- `isOpen` and `isReady` are `readonly` Vue refs β€” use them like any other ref:
80
+ `isOpen`/`isReady` are `readonly` refs β€” use them directly in templates.
81
+
82
+ ## Voice
83
+
84
+ Set `mode: "voice"` or `mode: "both"`, then drive the session. `voiceStart()` must run from a user gesture (browser mic requirement).
85
+
86
+ ```vue
87
+ <script setup lang="ts">
88
+ import { useYak } from "@yak-io/vue";
89
+
90
+ const { voiceToggle, voiceLoading, voiceMachine } = useYak();
91
+ </script>
55
92
 
56
- ```html
57
93
  <template>
58
- <div>
59
- <button @click="open">Open Chat</button>
60
- <p v-if="isOpen">Chat is open</p>
61
- <p v-if="!isReady && isOpen">Loading…</p>
62
- </div>
94
+ <button @click="voiceToggle" :disabled="voiceLoading">
95
+ {{ voiceMachine.state === "idle" ? "Start voice" : `Stop (${voiceMachine.state})` }}
96
+ </button>
63
97
  </template>
64
98
  ```
65
99
 
66
- ### 3. Subscribe to tool events
100
+ ## Tool events
67
101
 
68
102
  ```ts
69
103
  import { useYakToolEvent } from "@yak-io/vue";
70
104
 
71
105
  useYakToolEvent((event) => {
72
- if (event.ok && event.name.startsWith("tasks.")) {
73
- refreshTasks();
74
- }
106
+ // { name, args, ok, result?, error? }
107
+ if (event.ok && event.name.startsWith("tasks.")) refreshTasks();
75
108
  });
76
109
  ```
77
110
 
78
- Automatically unsubscribes when the component unmounts.
79
-
80
- ## API Reference
111
+ ## API reference
81
112
 
82
113
  ### `createYakProvider(options)`
83
114
 
84
- Call once in your root/layout component. Sets up the widget, registers lifecycle hooks, and provides the API to all descendant components via Vue's `provide/inject`.
115
+ Call once in your root component. Returns a `YakApi` (same object `useYak()` injects).
85
116
 
86
- Returns a `YakApi` object (same as `useYak()`).
117
+ | Option | Type | Default | Description |
118
+ | --- | --- | --- | --- |
119
+ | `appId` | `string` | β€” | Your Yak app ID (required). |
120
+ | `mode` | `"chat" \| "voice" \| "both"` | `"chat"` | Which surfaces the widget exposes. |
121
+ | `trigger` | `boolean \| TriggerButtonConfig` | `false` | Show the floating pill. **Set `true`** to display it; `TriggerButtonConfig` recolors it. |
122
+ | `getConfig` | `ChatConfigProvider` | β€” | Async provider of routes + tools. Called on open / voice start. |
123
+ | `onToolCall` | `ToolCallHandler` | β€” | Executes a tool the assistant calls. || `theme` | `Theme` | β€” | Position, color mode, and colors. |
124
+ | `onRedirect` | `(path: string) => void` | `window.location.assign` | Navigation handler. |
125
+ | `disableRestartButton` | `boolean` | `false` | Hide the restart-session button. |
87
126
 
88
- **Options:**
89
-
90
- | Option | Type | Description |
91
- |--------|------|-------------|
92
- | `appId` | `string` | Your Yak app ID |
93
- | `getConfig` | `ChatConfigProvider` | Async function returning routes + tools. Called on first open. |
94
- | `onToolCall` | `ToolCallHandler` | Handle tool invocations from the assistant |
95
- | `onGraphQLSchemaCall` | `GraphQLSchemaHandler` | Handle GraphQL schema tool calls |
96
- | `onRESTSchemaCall` | `RESTSchemaHandler` | Handle REST/OpenAPI schema tool calls |
97
- | `theme` | `Theme` | Position, color mode, and custom colors |
98
- | `onRedirect` | `(path: string) => void` | Navigation handler (defaults to `window.location.assign`) |
99
- | `disableRestartButton` | `boolean` | Hide the restart session button |
100
- | `trigger` | `boolean \| TriggerButtonConfig` | Built-in trigger button |
101
-
102
- ### `useYak()`
103
-
104
- Inject the widget API in any descendant component.
127
+ ### `YakApi`
105
128
 
106
129
  ```ts
107
- const {
108
- isOpen, // DeepReadonly<Ref<boolean>>
109
- isReady, // DeepReadonly<Ref<boolean>>
110
- open, // () => void
111
- close, // () => void
112
- openWithPrompt, // (prompt: string) => void
113
- subscribeToToolEvents, // (handler) => () => void
114
- } = useYak();
130
+ type YakApi = {
131
+ // chat
132
+ isOpen: DeepReadonly<Ref<boolean>>;
133
+ isReady: DeepReadonly<Ref<boolean>>;
134
+ chatLoading: DeepReadonly<Ref<boolean>>; // isOpen && !isReady
135
+ open: () => void;
136
+ close: () => void;
137
+ openWithPrompt: (prompt: string) => void;
138
+ subscribeToToolEvents: (handler: ToolCallEventHandler) => () => void;
139
+ // voice
140
+ voiceMachine: DeepReadonly<Ref<VoiceMachine>>; // { state, errorMessage? }
141
+ voiceLoading: DeepReadonly<Ref<boolean>>; // state === "connecting"
142
+ voiceStart: () => Promise<void>;
143
+ voiceStop: () => Promise<void>;
144
+ voiceToggle: () => Promise<void>;
145
+ };
115
146
  ```
116
147
 
117
- Throws if called outside a component tree where `createYakProvider` was used.
118
-
119
- ### `useYakToolEvent(handler)`
120
-
121
- Subscribe to tool call completion events. Unsubscribes automatically on component unmount.
122
-
123
148
  ## Logging
124
149
 
125
150
  ```ts
126
151
  import { enableYakLogging, disableYakLogging, isYakLoggingEnabled } from "@yak-io/vue";
127
152
 
128
- enableYakLogging(); // Enable verbose SDK logs
129
- disableYakLogging(); // Disable SDK logs
130
- isYakLoggingEnabled(); // β†’ boolean
153
+ enableYakLogging(); // verbose SDK logs
131
154
  ```
132
155
 
133
156
  ## Types
@@ -140,12 +163,17 @@ import type {
140
163
  ChatConfigProvider,
141
164
  ToolCallHandler,
142
165
  ToolCallEvent,
166
+ ToolAdapter,
167
+ YakToolset,
168
+ YakServerAdapterConfig,
143
169
  Theme,
144
- TriggerButtonConfig,
170
+ WidgetMode,
145
171
  WidgetPosition,
172
+ VoiceState,
173
+ VoiceMachine,
146
174
  } from "@yak-io/vue";
147
175
  ```
148
176
 
149
177
  ## License
150
178
 
151
- Proprietary β€” see LICENSE file.
179
+ Proprietary β€” see [LICENSE](./LICENSE).
@@ -1,4 +1,4 @@
1
- import { type ChatConfigProvider, type GraphQLSchemaHandler, type RESTSchemaHandler, type Theme, type ToolCallEvent, type ToolCallHandler, type TriggerButtonConfig, type VoiceMachine, type WidgetMode } from "@yak-io/javascript";
1
+ import { type ChatConfigProvider, type Theme, type ToolCallEvent, type ToolCallHandler, type TriggerButtonConfig, type VoiceMachine, type WidgetMode } from "@yak-io/javascript";
2
2
  import { type DeepReadonly, type Ref } from "vue";
3
3
  export type ToolCallEventHandler = (event: ToolCallEvent) => void;
4
4
  export type YakProviderOptions = {
@@ -6,23 +6,36 @@ export type YakProviderOptions = {
6
6
  mode?: WidgetMode;
7
7
  getConfig?: ChatConfigProvider;
8
8
  onToolCall?: ToolCallHandler;
9
- onGraphQLSchemaCall?: GraphQLSchemaHandler;
10
- onRESTSchemaCall?: RESTSchemaHandler;
11
9
  theme?: Theme;
12
10
  onRedirect?: (path: string) => void;
13
11
  disableRestartButton?: boolean;
14
12
  trigger?: boolean | TriggerButtonConfig;
15
13
  };
14
+ /** Reactive handle for controlling the Yak widget β€” chat + voice β€” from Vue. */
16
15
  export type YakApi = {
16
+ /** Whether the chat panel is currently open. */
17
17
  isOpen: DeepReadonly<Ref<boolean>>;
18
+ /** Whether the chat iframe is ready to receive messages. */
18
19
  isReady: DeepReadonly<Ref<boolean>>;
20
+ /** Whether the chat is opening but not yet interactive (`isOpen && !isReady`). */
21
+ chatLoading: DeepReadonly<Ref<boolean>>;
22
+ /** Open the chat panel. */
19
23
  open: () => void;
24
+ /** Close the chat panel. */
20
25
  close: () => void;
26
+ /** Open the chat panel and send a specific prompt. */
21
27
  openWithPrompt: (prompt: string) => void;
28
+ /** Subscribe to tool-call completion events; returns an unsubscribe function. */
22
29
  subscribeToToolEvents: (handler: ToolCallEventHandler) => () => void;
30
+ /** Current voice state-machine snapshot. `idle` when mode is `chat`. */
23
31
  voiceMachine: DeepReadonly<Ref<VoiceMachine>>;
32
+ /** Whether the voice session is establishing its connection (`state === "connecting"`). */
33
+ voiceLoading: DeepReadonly<Ref<boolean>>;
34
+ /** Start a voice session. Must be invoked from a user gesture. */
24
35
  voiceStart: () => Promise<void>;
36
+ /** Stop the current voice session. */
25
37
  voiceStop: () => Promise<void>;
38
+ /** Toggle voice: start if idle/error, stop if active. */
26
39
  voiceToggle: () => Promise<void>;
27
40
  };
28
41
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"composables.d.ts","sourceRoot":"","sources":["../src/composables.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAGzB,KAAK,iBAAiB,EACtB,KAAK,KAAK,EACV,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,UAAU,EAEhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,KAAK,YAAY,EAMjB,KAAK,GAAG,EAGT,MAAM,KAAK,CAAC;AAIb,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;AAElE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,mBAAmB,CAAC,EAAE,oBAAoB,CAAC;IAC3C,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IACrC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,GAAG,mBAAmB,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IAEnB,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACpC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,qBAAqB,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,MAAM,IAAI,CAAC;IAErE,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;IAC9C,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC,CAAC;AAQF;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CA6GrE;AAID;;;;GAIG;AACH,wBAAgB,MAAM,IAAI,MAAM,CAM/B;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAUnE"}
1
+ {"version":3,"file":"composables.d.ts","sourceRoot":"","sources":["../src/composables.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAGvB,KAAK,KAAK,EACV,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,UAAU,EAEhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,YAAY,EAMjB,KAAK,GAAG,EAGT,MAAM,KAAK,CAAC;AAIb,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;AAElE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,GAAG,mBAAmB,CAAC;CACzC,CAAC;AAEF,gFAAgF;AAChF,MAAM,MAAM,MAAM,GAAG;IAEnB,gDAAgD;IAChD,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,4DAA4D;IAC5D,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACpC,kFAAkF;IAClF,WAAW,EAAE,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACxC,2BAA2B;IAC3B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,sDAAsD;IACtD,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,iFAAiF;IACjF,qBAAqB,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,MAAM,IAAI,CAAC;IAErE,wEAAwE;IACxE,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;IAC9C,2FAA2F;IAC3F,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACzC,kEAAkE;IAClE,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,sCAAsC;IACtC,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,yDAAyD;IACzD,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC,CAAC;AAQF;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAgHrE;AAID;;;;GAIG;AACH,wBAAgB,MAAM,IAAI,MAAM,CAM/B;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAUnE"}
@@ -1,5 +1,5 @@
1
1
  import { INITIAL_VOICE_MACHINE, logger, YakEmbed, } from "@yak-io/javascript";
2
- import { inject, onMounted, onUnmounted, provide, readonly, ref, } from "vue";
2
+ import { computed, inject, onMounted, onUnmounted, provide, readonly, ref, } from "vue";
3
3
  // ── Injection key ───────────────────────────────────────────────────────────
4
4
  const YAK_KEY = Symbol("yak");
5
5
  // ── Provider composable ─────────────────────────────────────────────────────
@@ -45,8 +45,6 @@ export function createYakProvider(options) {
45
45
  trigger: options.trigger ?? false,
46
46
  getConfig: options.getConfig,
47
47
  onToolCall: options.onToolCall,
48
- onGraphQLSchemaCall: options.onGraphQLSchemaCall,
49
- onRESTSchemaCall: options.onRESTSchemaCall,
50
48
  onRedirect: resolvedRedirect,
51
49
  options: { disableRestartButton: options.disableRestartButton },
52
50
  onToolCallComplete: handleToolCallComplete,
@@ -92,9 +90,12 @@ export function createYakProvider(options) {
92
90
  logger.warn("Voice start failed", err);
93
91
  }
94
92
  };
93
+ const chatLoading = computed(() => isOpen.value && !isReady.value);
94
+ const voiceLoading = computed(() => voiceMachine.value.state === "connecting");
95
95
  const api = {
96
96
  isOpen: readonly(isOpen),
97
97
  isReady: readonly(isReady),
98
+ chatLoading,
98
99
  open: () => embed.open(),
99
100
  close: () => embed.close(),
100
101
  openWithPrompt: (prompt) => embed.openWithPrompt(prompt),
@@ -105,6 +106,7 @@ export function createYakProvider(options) {
105
106
  };
106
107
  },
107
108
  voiceMachine: readonly(voiceMachine),
109
+ voiceLoading,
108
110
  voiceStart,
109
111
  voiceStop: () => embed.voiceStop(),
110
112
  voiceToggle: () => embed.voiceToggle(),
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export type { ChatConfigProvider, GraphQLRequest, GraphQLSchemaHandler, GraphQLSchemaSource, OpenAPISchemaSource, RESTRequest, RESTSchemaHandler, SchemaSource, Theme, ThemeColors, ToolCallEvent, ToolCallHandler, TriggerButtonConfig, VoiceMachine, VoiceState, WidgetMode, WidgetPosition, } from "@yak-io/javascript";
2
- export { disableYakLogging, enableYakLogging, isYakLoggingEnabled } from "@yak-io/javascript";
1
+ export type { ChatConfigProvider, GraphQLRequest, RESTRequest, Theme, ThemeColors, ToolAdapter, ToolCallEvent, ToolCallHandler, TriggerButtonConfig, VoiceMachine, VoiceState, WidgetMode, WidgetPosition, YakServerAdapterConfig, YakToolset, } from "@yak-io/javascript";
2
+ export { createYakServerAdapter, createYakToolset, disableYakLogging, enableYakLogging, isYakLoggingEnabled, } from "@yak-io/javascript";
3
3
  export type { ToolCallEventHandler, YakApi, YakProviderOptions } from "./composables.js";
4
4
  export { createYakProvider, useYak, useYakToolEvent } from "./composables.js";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,KAAK,EACL,WAAW,EACX,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,UAAU,EACV,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9F,YAAY,EAAE,oBAAoB,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,KAAK,EACL,WAAW,EACX,WAAW,EACX,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,UAAU,GACX,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,oBAAoB,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
  // Public API
2
- // Re-export logging utilities
3
- export { disableYakLogging, enableYakLogging, isYakLoggingEnabled } from "@yak-io/javascript";
2
+ // Re-export tool composition + logging utilities
3
+ export { createYakServerAdapter, createYakToolset, disableYakLogging, enableYakLogging, isYakLoggingEnabled, } from "@yak-io/javascript";
4
4
  export { createYakProvider, useYak, useYakToolEvent } from "./composables.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yak-io/vue",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "description": "Vue SDK for embedding yak chatbot",
5
5
  "type": "module",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -25,6 +25,7 @@
25
25
  "node": ">=18"
26
26
  },
27
27
  "files": [
28
+ "README.md",
28
29
  "dist",
29
30
  "LICENSE"
30
31
  ],
@@ -41,7 +42,7 @@
41
42
  "./package.json": "./package.json"
42
43
  },
43
44
  "dependencies": {
44
- "@yak-io/javascript": "0.8.0"
45
+ "@yak-io/javascript": "0.10.0"
45
46
  },
46
47
  "peerDependencies": {
47
48
  "vue": "^3.3.0"
@@ -52,6 +53,7 @@
52
53
  "vue": "^3.5.34",
53
54
  "@repo/typescript-config": "0.0.0"
54
55
  },
56
+ "homepage": "https://docs.yak.io/docs/sdks/vue",
55
57
  "scripts": {
56
58
  "build": "tsc",
57
59
  "check-types": "tsc --noEmit",