@better-agent/client 0.1.0-canary.6 → 0.2.0-beta.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/dist/controller-BkCxCUpn.d.mts +365 -0
- package/dist/controller-BkCxCUpn.d.mts.map +1 -0
- package/dist/controller-xMlzSCc7.mjs +1342 -0
- package/dist/controller-xMlzSCc7.mjs.map +1 -0
- package/dist/index.d.mts +8 -262
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +240 -596
- package/dist/index.mjs.map +1 -1
- package/dist/preact/index.d.mts +21 -89
- package/dist/preact/index.d.mts.map +1 -1
- package/dist/preact/index.mjs +48 -122
- package/dist/preact/index.mjs.map +1 -1
- package/dist/react/index.d.mts +21 -89
- package/dist/react/index.d.mts.map +1 -1
- package/dist/react/index.mjs +47 -111
- package/dist/react/index.mjs.map +1 -1
- package/dist/solid/index.d.mts +27 -87
- package/dist/solid/index.d.mts.map +1 -1
- package/dist/solid/index.mjs +40 -108
- package/dist/solid/index.mjs.map +1 -1
- package/dist/svelte/index.d.mts +22 -75
- package/dist/svelte/index.d.mts.map +1 -1
- package/dist/svelte/index.mjs +18 -92
- package/dist/svelte/index.mjs.map +1 -1
- package/dist/vue/index.d.mts +27 -84
- package/dist/vue/index.d.mts.map +1 -1
- package/dist/vue/index.mjs +43 -136
- package/dist/vue/index.mjs.map +1 -1
- package/package.json +5 -9
- package/README.md +0 -3
- package/dist/controller-BrBUfjhZ.mjs +0 -2124
- package/dist/controller-BrBUfjhZ.mjs.map +0 -1
- package/dist/controller-CJ79_cSR.d.mts +0 -657
- package/dist/controller-CJ79_cSR.d.mts.map +0 -1
- package/dist/utils-CiHUj_BW.mjs +0 -34
- package/dist/utils-CiHUj_BW.mjs.map +0 -1
package/dist/vue/index.mjs
CHANGED
|
@@ -1,152 +1,59 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { computed, onMounted, onUnmounted, ref, toValue, watchEffect } from "vue";
|
|
1
|
+
import { n as createAgentController } from "../controller-xMlzSCc7.mjs";
|
|
2
|
+
import { computed, onMounted, onUnmounted, ref, toValue } from "vue";
|
|
4
3
|
|
|
5
4
|
//#region src/vue/useAgent.ts
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* ```vue
|
|
27
|
-
* <script setup lang="ts">
|
|
28
|
-
* const agent = useAgent(client, { agent: "assistant" });
|
|
29
|
-
* <\/script>
|
|
30
|
-
*
|
|
31
|
-
* <template>
|
|
32
|
-
* <div v-for="message in agent.messages.value" :key="message.localId">
|
|
33
|
-
* {{ message.role }}
|
|
34
|
-
* </div>
|
|
35
|
-
* <button @click="agent.sendMessage('Hello')">Send</button>
|
|
36
|
-
* </template>
|
|
37
|
-
* ```
|
|
38
|
-
*/
|
|
39
|
-
function useAgent(client, options) {
|
|
40
|
-
const controller = new AgentChatController(toValue(client), cloneControllerOptions(toValue(options)));
|
|
5
|
+
function useAgent(agent, options) {
|
|
6
|
+
const readOptions = () => toValue(options) ?? {};
|
|
7
|
+
const toolHandlers = new Proxy({}, { get(_target, key) {
|
|
8
|
+
return readOptions().toolHandlers?.[key];
|
|
9
|
+
} });
|
|
10
|
+
const initialOptions = readOptions();
|
|
11
|
+
const controller = createAgentController(agent, {
|
|
12
|
+
initialMessages: initialOptions.initialMessages,
|
|
13
|
+
initialState: initialOptions.initialState,
|
|
14
|
+
initialInterruptState: initialOptions.initialInterruptState,
|
|
15
|
+
resume: initialOptions.resume,
|
|
16
|
+
context: initialOptions.context,
|
|
17
|
+
threadId: initialOptions.threadId,
|
|
18
|
+
toolHandlers,
|
|
19
|
+
onEvent: (event) => readOptions().onEvent?.(event),
|
|
20
|
+
onFinish: (finish) => readOptions().onFinish?.(finish),
|
|
21
|
+
onError: (error) => readOptions().onError?.(error)
|
|
22
|
+
});
|
|
41
23
|
const version = ref(0);
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
controller.
|
|
45
|
-
controller.updateOptions(cloneControllerOptions(toValue(options)));
|
|
24
|
+
const snapshot = () => {
|
|
25
|
+
version.value;
|
|
26
|
+
return controller.getSnapshot();
|
|
46
27
|
};
|
|
47
28
|
const unsubscribe = controller.subscribe(() => {
|
|
48
29
|
version.value++;
|
|
49
30
|
});
|
|
50
|
-
watchEffect(() => {
|
|
51
|
-
syncController();
|
|
52
|
-
});
|
|
53
31
|
onMounted(() => {
|
|
54
|
-
|
|
55
|
-
controller.init();
|
|
32
|
+
controller.start();
|
|
56
33
|
});
|
|
57
34
|
onUnmounted(() => {
|
|
58
35
|
unsubscribe();
|
|
59
|
-
controller.
|
|
60
|
-
});
|
|
61
|
-
const messages = computed(() => {
|
|
62
|
-
version.value;
|
|
63
|
-
return controller.getMessages();
|
|
64
|
-
});
|
|
65
|
-
const id = computed(() => {
|
|
66
|
-
version.value;
|
|
67
|
-
return controller.getSnapshot().id;
|
|
68
|
-
});
|
|
69
|
-
const status = computed(() => {
|
|
70
|
-
version.value;
|
|
71
|
-
return controller.getStatus();
|
|
72
|
-
});
|
|
73
|
-
const error = computed(() => {
|
|
74
|
-
version.value;
|
|
75
|
-
return controller.getError();
|
|
76
|
-
});
|
|
77
|
-
const streamId = computed(() => {
|
|
78
|
-
version.value;
|
|
79
|
-
return controller.getStreamId();
|
|
80
|
-
});
|
|
81
|
-
const runId = computed(() => {
|
|
82
|
-
version.value;
|
|
83
|
-
return controller.getRunId();
|
|
84
|
-
});
|
|
85
|
-
const isLoading = computed(() => {
|
|
86
|
-
version.value;
|
|
87
|
-
return controller.isLoading;
|
|
88
|
-
});
|
|
89
|
-
const isStreaming = computed(() => {
|
|
90
|
-
version.value;
|
|
91
|
-
return controller.isStreaming;
|
|
36
|
+
controller.stop();
|
|
92
37
|
});
|
|
93
38
|
return {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
status,
|
|
97
|
-
error,
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
return controller.sendMessage(normalizeSendInput(input), requestOptions);
|
|
113
|
-
},
|
|
114
|
-
regenerate: async () => {
|
|
115
|
-
syncController();
|
|
116
|
-
await controller.retryMessage(getLatestUserMessageId(controller));
|
|
117
|
-
},
|
|
118
|
-
retryMessage: (localId) => {
|
|
119
|
-
syncController();
|
|
120
|
-
return controller.retryMessage(localId);
|
|
121
|
-
},
|
|
122
|
-
stop: () => {
|
|
123
|
-
syncController();
|
|
124
|
-
controller.stop();
|
|
125
|
-
},
|
|
126
|
-
resumeStream: (resumeOptions) => {
|
|
127
|
-
syncController();
|
|
128
|
-
return controller.resumeStream(resumeOptions);
|
|
129
|
-
},
|
|
130
|
-
resumeConversation: (resumeOptions) => {
|
|
131
|
-
syncController();
|
|
132
|
-
return controller.resumeConversation(resumeOptions);
|
|
133
|
-
},
|
|
134
|
-
approveToolCall: (params) => {
|
|
135
|
-
syncController();
|
|
136
|
-
return controller.approveToolCall(params);
|
|
137
|
-
},
|
|
138
|
-
clearError: () => {
|
|
139
|
-
syncController();
|
|
140
|
-
controller.clearError();
|
|
141
|
-
},
|
|
142
|
-
reset: () => {
|
|
143
|
-
syncController();
|
|
144
|
-
controller.reset();
|
|
145
|
-
},
|
|
146
|
-
setMessages: (input) => {
|
|
147
|
-
syncController();
|
|
148
|
-
controller.setMessages(input);
|
|
149
|
-
}
|
|
39
|
+
messages: computed(() => snapshot().messages),
|
|
40
|
+
state: computed(() => snapshot().state),
|
|
41
|
+
status: computed(() => snapshot().status),
|
|
42
|
+
error: computed(() => snapshot().error),
|
|
43
|
+
runId: computed(() => snapshot().runId),
|
|
44
|
+
threadId: computed(() => snapshot().threadId),
|
|
45
|
+
isRunning: computed(() => snapshot().isRunning),
|
|
46
|
+
pendingClientTools: computed(() => snapshot().pendingClientTools),
|
|
47
|
+
pendingToolApprovals: computed(() => snapshot().pendingToolApprovals),
|
|
48
|
+
sendMessage: (input, sendOptions) => controller.sendMessage(input, sendOptions),
|
|
49
|
+
stop: () => controller.stop(),
|
|
50
|
+
resume: (resume) => controller.resume(resume),
|
|
51
|
+
selectThread: (threadId) => controller.selectThread(threadId),
|
|
52
|
+
clearThread: () => controller.clearThread(),
|
|
53
|
+
loadMessages: (threadId) => controller.loadMessages(threadId),
|
|
54
|
+
approveToolCall: (interruptId, metadata) => controller.approveToolCall(interruptId, metadata),
|
|
55
|
+
rejectToolCall: (interruptId, metadata) => controller.rejectToolCall(interruptId, metadata),
|
|
56
|
+
setMessages: (messages) => controller.setMessages(messages)
|
|
150
57
|
};
|
|
151
58
|
}
|
|
152
59
|
|
package/dist/vue/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../../src/vue/useAgent.ts"],"sourcesContent":["import { computed, onMounted, onUnmounted, ref, toValue
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../src/vue/useAgent.ts"],"sourcesContent":["import { computed, onMounted, onUnmounted, ref, toValue } from \"vue\";\nimport type { MaybeRefOrGetter } from \"vue\";\nimport { createAgentController } from \"../core/controller\";\nimport type { AgentNameOf } from \"../core/inference\";\nimport type {\n AgentControllerOptions,\n BetterAgentClientAgentHandle,\n BetterAgentClientAgentMemoryHandle,\n} from \"../types\";\nimport type { UseAgentOptions, UseAgentResult } from \"./types\";\n\nexport function useAgent<TApp = unknown, TName extends AgentNameOf<TApp> = AgentNameOf<TApp>>(\n agent: BetterAgentClientAgentMemoryHandle<TApp, TName>,\n options?: MaybeRefOrGetter<UseAgentOptions<TApp, TName> | undefined>,\n): UseAgentResult<TApp, TName>;\nexport function useAgent<TApp = unknown, TName extends AgentNameOf<TApp> = AgentNameOf<TApp>>(\n agent: BetterAgentClientAgentHandle<TApp, TName>,\n options?: MaybeRefOrGetter<UseAgentOptions<TApp, TName> | undefined>,\n): UseAgentResult<TApp, TName>;\nexport function useAgent<TApp = unknown, TName extends AgentNameOf<TApp> = AgentNameOf<TApp>>(\n agent: BetterAgentClientAgentHandle<TApp, TName>,\n options?: MaybeRefOrGetter<UseAgentOptions<TApp, TName> | undefined>,\n): UseAgentResult<TApp, TName> {\n const readOptions = () => toValue(options) ?? {};\n const toolHandlers = new Proxy(\n {},\n {\n get(_target, key) {\n const handlers = readOptions().toolHandlers as\n | Record<PropertyKey, unknown>\n | undefined;\n return handlers?.[key];\n },\n },\n ) as AgentControllerOptions<TApp, TName>[\"toolHandlers\"];\n\n const initialOptions = readOptions();\n const controller = createAgentController<TApp, TName>(agent, {\n initialMessages: initialOptions.initialMessages,\n initialState: initialOptions.initialState,\n initialInterruptState: initialOptions.initialInterruptState,\n resume: initialOptions.resume,\n context: initialOptions.context,\n threadId: initialOptions.threadId,\n toolHandlers,\n onEvent: (event) => readOptions().onEvent?.(event),\n onFinish: (finish) => readOptions().onFinish?.(finish),\n onError: (error) => readOptions().onError?.(error),\n });\n const version = ref(0);\n const snapshot = () => {\n void version.value;\n return controller.getSnapshot();\n };\n\n const unsubscribe = controller.subscribe(() => {\n version.value++;\n });\n\n onMounted(() => {\n controller.start();\n });\n\n onUnmounted(() => {\n unsubscribe();\n controller.stop();\n });\n\n return {\n messages: computed(() => snapshot().messages),\n state: computed(() => snapshot().state),\n status: computed(() => snapshot().status),\n error: computed(() => snapshot().error),\n runId: computed(() => snapshot().runId),\n threadId: computed(() => snapshot().threadId),\n isRunning: computed(() => snapshot().isRunning),\n pendingClientTools: computed(() => snapshot().pendingClientTools),\n pendingToolApprovals: computed(() => snapshot().pendingToolApprovals),\n sendMessage: (input, sendOptions) => controller.sendMessage(input, sendOptions),\n stop: () => controller.stop(),\n resume: (resume) => controller.resume(resume),\n selectThread: (threadId) => controller.selectThread(threadId),\n clearThread: () => controller.clearThread(),\n loadMessages: (threadId) => controller.loadMessages(threadId),\n approveToolCall: (interruptId, metadata) =>\n controller.approveToolCall(interruptId, metadata),\n rejectToolCall: (interruptId, metadata) => controller.rejectToolCall(interruptId, metadata),\n setMessages: (messages) => controller.setMessages(messages),\n };\n}\n"],"mappings":";;;;AAmBA,SAAgB,SACZ,OACA,SAC2B;CAC3B,MAAM,oBAAoB,QAAQ,QAAQ,IAAI,EAAE;CAChD,MAAM,eAAe,IAAI,MACrB,EAAE,EACF,EACI,IAAI,SAAS,KAAK;AAId,SAHiB,aAAa,CAAC,eAGb;IAEzB,CACJ;CAED,MAAM,iBAAiB,aAAa;CACpC,MAAM,aAAa,sBAAmC,OAAO;EACzD,iBAAiB,eAAe;EAChC,cAAc,eAAe;EAC7B,uBAAuB,eAAe;EACtC,QAAQ,eAAe;EACvB,SAAS,eAAe;EACxB,UAAU,eAAe;EACzB;EACA,UAAU,UAAU,aAAa,CAAC,UAAU,MAAM;EAClD,WAAW,WAAW,aAAa,CAAC,WAAW,OAAO;EACtD,UAAU,UAAU,aAAa,CAAC,UAAU,MAAM;EACrD,CAAC;CACF,MAAM,UAAU,IAAI,EAAE;CACtB,MAAM,iBAAiB;AACnB,EAAK,QAAQ;AACb,SAAO,WAAW,aAAa;;CAGnC,MAAM,cAAc,WAAW,gBAAgB;AAC3C,UAAQ;GACV;AAEF,iBAAgB;AACZ,aAAW,OAAO;GACpB;AAEF,mBAAkB;AACd,eAAa;AACb,aAAW,MAAM;GACnB;AAEF,QAAO;EACH,UAAU,eAAe,UAAU,CAAC,SAAS;EAC7C,OAAO,eAAe,UAAU,CAAC,MAAM;EACvC,QAAQ,eAAe,UAAU,CAAC,OAAO;EACzC,OAAO,eAAe,UAAU,CAAC,MAAM;EACvC,OAAO,eAAe,UAAU,CAAC,MAAM;EACvC,UAAU,eAAe,UAAU,CAAC,SAAS;EAC7C,WAAW,eAAe,UAAU,CAAC,UAAU;EAC/C,oBAAoB,eAAe,UAAU,CAAC,mBAAmB;EACjE,sBAAsB,eAAe,UAAU,CAAC,qBAAqB;EACrE,cAAc,OAAO,gBAAgB,WAAW,YAAY,OAAO,YAAY;EAC/E,YAAY,WAAW,MAAM;EAC7B,SAAS,WAAW,WAAW,OAAO,OAAO;EAC7C,eAAe,aAAa,WAAW,aAAa,SAAS;EAC7D,mBAAmB,WAAW,aAAa;EAC3C,eAAe,aAAa,WAAW,aAAa,SAAS;EAC7D,kBAAkB,aAAa,aAC3B,WAAW,gBAAgB,aAAa,SAAS;EACrD,iBAAiB,aAAa,aAAa,WAAW,eAAe,aAAa,SAAS;EAC3F,cAAc,aAAa,WAAW,YAAY,SAAS;EAC9D"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@better-agent/client",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0-beta.2",
|
|
4
4
|
"description": "Better Agent client TypeScript library",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -97,19 +97,15 @@
|
|
|
97
97
|
}
|
|
98
98
|
},
|
|
99
99
|
"dependencies": {
|
|
100
|
-
"@better-agent/core": "0.
|
|
101
|
-
"@better-agent/shared": "0.1.0-canary.6"
|
|
100
|
+
"@better-agent/core": "0.2.0-beta.2"
|
|
102
101
|
},
|
|
103
102
|
"devDependencies": {
|
|
104
|
-
"@types/bun": "^1.
|
|
105
|
-
"@types/node": "^22.
|
|
106
|
-
"@types/jsdom": "^28.0.0",
|
|
103
|
+
"@types/bun": "^1.3.12",
|
|
104
|
+
"@types/node": "^22.19.17",
|
|
107
105
|
"@types/react": "^19.2.9",
|
|
108
|
-
"
|
|
109
|
-
"jsdom": "^28.1.0",
|
|
106
|
+
"jsdom": "^29.1.1",
|
|
110
107
|
"preact": "^10.27.2",
|
|
111
108
|
"react": "19.2.3",
|
|
112
|
-
"react-dom": "19.2.3",
|
|
113
109
|
"solid-js": "^1.9.11",
|
|
114
110
|
"svelte": "^5.39.6",
|
|
115
111
|
"vue": "^3.5.28"
|
package/README.md
DELETED