@darqlabs/curator-sdk-react 0.1.5 → 0.2.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/dist/cjs/CuratorAdapter.d.ts.map +1 -1
- package/dist/cjs/CuratorAdapter.js +11 -0
- package/dist/cjs/CuratorAdapter.js.map +1 -1
- package/dist/cjs/useCuratorChat.d.ts +22 -1
- package/dist/cjs/useCuratorChat.d.ts.map +1 -1
- package/dist/cjs/useCuratorChat.js +38 -0
- package/dist/cjs/useCuratorChat.js.map +1 -1
- package/dist/esm/CuratorAdapter.d.ts.map +1 -1
- package/dist/esm/CuratorAdapter.js +11 -0
- package/dist/esm/CuratorAdapter.js.map +1 -1
- package/dist/esm/useCuratorChat.d.ts +22 -1
- package/dist/esm/useCuratorChat.d.ts.map +1 -1
- package/dist/esm/useCuratorChat.js +39 -1
- package/dist/esm/useCuratorChat.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CuratorAdapter.d.ts","sourceRoot":"","sources":["../../src/CuratorAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAsB,MAAM,qBAAqB,CAAA;AAC/E,OAAO,KAAK,EACV,gBAAgB,EAChB,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,kBAAkB,EACnB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,WAAW,uBAAuB;IACtC,8DAA8D;IAC9D,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAC/C;;;;;OAKG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;IACtC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAA;IACvD,gEAAgE;IAChE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,GAAG,KAAK,KAAK,IAAI,CAAA;CAChD;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,IAAI,EACV,SAAS,GAAE,uBAA4B,GACtC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"CuratorAdapter.d.ts","sourceRoot":"","sources":["../../src/CuratorAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAsB,MAAM,qBAAqB,CAAA;AAC/E,OAAO,KAAK,EACV,gBAAgB,EAChB,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,kBAAkB,EACnB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,WAAW,uBAAuB;IACtC,8DAA8D;IAC9D,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAC/C;;;;;OAKG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;IACtC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAA;IACvD,gEAAgE;IAChE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,GAAG,KAAK,KAAK,IAAI,CAAA;CAChD;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,IAAI,EACV,SAAS,GAAE,uBAA4B,GACtC,gBAAgB,CAsFlB"}
|
|
@@ -73,6 +73,17 @@ function createCuratorAdapter(chat, callbacks = {}) {
|
|
|
73
73
|
callbacks.onError?.(new Error(pausedMessage));
|
|
74
74
|
return;
|
|
75
75
|
}
|
|
76
|
+
if (event.type === "paused_for_authorization") {
|
|
77
|
+
const { provider, reason, connect_url } = event.authorization;
|
|
78
|
+
const pausedMessage = (reason || `Connect ${provider} to continue.`) +
|
|
79
|
+
(connect_url ? ` Connect here: ${connect_url}` : "");
|
|
80
|
+
yield {
|
|
81
|
+
content: [{ type: "text", text: pausedMessage }],
|
|
82
|
+
status: { type: "incomplete", reason: "error" },
|
|
83
|
+
};
|
|
84
|
+
callbacks.onError?.(new Error(pausedMessage));
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
76
87
|
// tool_call.* and any future event types are silently dropped
|
|
77
88
|
// until a richer UI surface ships for them.
|
|
78
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CuratorAdapter.js","sourceRoot":"","sources":["../../src/CuratorAdapter.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;AAgCH,
|
|
1
|
+
{"version":3,"file":"CuratorAdapter.js","sourceRoot":"","sources":["../../src/CuratorAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* Bring your own UI on top of this hook, or use `<CuratorChat />` for
|
|
9
9
|
* the drop-in styled widget that consumes this hook internally.
|
|
10
10
|
*/
|
|
11
|
-
import type { AssistantMessage, Chat, Curator, CuratorError, Environment, FileAttachment } from "@darqlabs/curator-sdk";
|
|
11
|
+
import type { AssistantMessage, AuthorizationDetails, Chat, Curator, CuratorError, Environment, FileAttachment } from "@darqlabs/curator-sdk";
|
|
12
12
|
/** Local message representation — superset of what the SDK returns plus
|
|
13
13
|
* optimistic user messages and inline error markers. */
|
|
14
14
|
export type ChatBubble = {
|
|
@@ -74,6 +74,27 @@ export interface UseCuratorChatResult {
|
|
|
74
74
|
/** Clear the visible message list and detach the current conversation
|
|
75
75
|
* by allocating a fresh Chat. */
|
|
76
76
|
reset: () => void;
|
|
77
|
+
/**
|
|
78
|
+
* Set when the last send paused for an end-user connect (the agent needs
|
|
79
|
+
* the user to connect a provider, e.g. Gmail). Drive `connect()` to resolve
|
|
80
|
+
* it. Null otherwise.
|
|
81
|
+
*/
|
|
82
|
+
pendingAuthorization: AuthorizationDetails | null;
|
|
83
|
+
/**
|
|
84
|
+
* Begin the end-user connect flow for the pending provider: fetches a
|
|
85
|
+
* consent URL and redirects the browser to it. On return (to `returnUrl`),
|
|
86
|
+
* call `completeConnect(confirmToken)` with the `confirm_token` query param.
|
|
87
|
+
* Defaults `returnUrl` to the current page URL.
|
|
88
|
+
*/
|
|
89
|
+
connect: (opts?: {
|
|
90
|
+
returnUrl?: string;
|
|
91
|
+
}) => Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* Finalize a connect after the user returns from consent, then resume the
|
|
94
|
+
* paused run. Pass the `confirm_token` from the return URL. The resumed
|
|
95
|
+
* assistant reply arrives on the durable conversation.
|
|
96
|
+
*/
|
|
97
|
+
completeConnect: (confirmToken: string) => Promise<void>;
|
|
77
98
|
}
|
|
78
99
|
export declare function useCuratorChat(opts: UseCuratorChatOptions): UseCuratorChatResult;
|
|
79
100
|
//# sourceMappingURL=useCuratorChat.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCuratorChat.d.ts","sourceRoot":"","sources":["../../src/useCuratorChat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EACV,gBAAgB,EAChB,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,WAAW,EACX,cAAc,EACf,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"useCuratorChat.d.ts","sourceRoot":"","sources":["../../src/useCuratorChat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACpB,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,WAAW,EACX,cAAc,EACf,MAAM,uBAAuB,CAAA;AAc9B;yDACyD;AACzD,MAAM,MAAM,UAAU,GAClB;IACE,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAA;CAChB,GACD;IACE,IAAI,EAAE,WAAW,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;CACd,GACD;IACE,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAEL,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,sEAAsE;IACtE,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAC/C,iEAAiE;IACjE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,GAAG,KAAK,KAAK,IAAI,CAAA;CAChD;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAA;IACxB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,2CAA2C;IAC3C,QAAQ,EAAE,UAAU,EAAE,CAAA;IACtB,2DAA2D;IAC3D,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzD,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAA;IAChB,uEAAuE;IACvE,KAAK,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI,CAAA;IAClC,gEAAgE;IAChE,IAAI,EAAE,IAAI,CAAA;IACV,iEAAiE;IACjE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B;sCACkC;IAClC,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB;;;;OAIG;IACH,oBAAoB,EAAE,oBAAoB,GAAG,IAAI,CAAA;IACjD;;;;;OAKG;IACH,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzD;;;;OAIG;IACH,eAAe,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACzD;AAQD,wBAAgB,cAAc,CAAC,IAAI,EAAE,qBAAqB,GAAG,oBAAoB,CA2IhF"}
|
|
@@ -40,6 +40,7 @@ function useCuratorChat(opts) {
|
|
|
40
40
|
const [sending, setSending] = (0, react_1.useState)(false);
|
|
41
41
|
const [error, setError] = (0, react_1.useState)(null);
|
|
42
42
|
const [conversationIdState, setConversationIdState] = (0, react_1.useState)(conversationId ?? null);
|
|
43
|
+
const [pendingAuthorization, setPendingAuthorization] = (0, react_1.useState)(null);
|
|
43
44
|
// Whenever the chat handle changes (consumer swapped props or called
|
|
44
45
|
// reset), wipe local message state to avoid mixing transcripts.
|
|
45
46
|
const lastChatRef = (0, react_1.useRef)(null);
|
|
@@ -59,6 +60,7 @@ function useCuratorChat(opts) {
|
|
|
59
60
|
setMessages((prev) => [...prev, userBubble]);
|
|
60
61
|
setSending(true);
|
|
61
62
|
setError(null);
|
|
63
|
+
setPendingAuthorization(null);
|
|
62
64
|
try {
|
|
63
65
|
const reply = await chat.send(trimmed, args);
|
|
64
66
|
setConversationIdState(reply.conversationId);
|
|
@@ -76,6 +78,11 @@ function useCuratorChat(opts) {
|
|
|
76
78
|
onMessage?.(reply);
|
|
77
79
|
}
|
|
78
80
|
catch (err) {
|
|
81
|
+
// Surface a connect pause distinctly so the UI can offer a Connect
|
|
82
|
+
// affordance instead of just an error line.
|
|
83
|
+
if (err instanceof curator_sdk_1.CuratorAuthorizationRequiredError) {
|
|
84
|
+
setPendingAuthorization(err.authorization);
|
|
85
|
+
}
|
|
79
86
|
const message = renderError(err);
|
|
80
87
|
setError(err);
|
|
81
88
|
setMessages((prev) => [...prev, { kind: "error", message, localId: localId() }]);
|
|
@@ -85,12 +92,35 @@ function useCuratorChat(opts) {
|
|
|
85
92
|
setSending(false);
|
|
86
93
|
}
|
|
87
94
|
}, [chat, onMessage, onError]);
|
|
95
|
+
const connect = (0, react_1.useCallback)(async (connectOpts = {}) => {
|
|
96
|
+
const returnUrl = connectOpts.returnUrl ??
|
|
97
|
+
(typeof window !== "undefined" ? window.location.href : undefined);
|
|
98
|
+
if (!returnUrl) {
|
|
99
|
+
throw new Error("connect() requires a returnUrl outside a browser context.");
|
|
100
|
+
}
|
|
101
|
+
// v1: Gmail is the only end-user connect provider.
|
|
102
|
+
const { consentUrl } = await curator.integrations.gmail.startConnect({ returnUrl });
|
|
103
|
+
if (typeof window !== "undefined") {
|
|
104
|
+
window.location.assign(consentUrl);
|
|
105
|
+
}
|
|
106
|
+
return;
|
|
107
|
+
}, [curator]);
|
|
108
|
+
const completeConnect = (0, react_1.useCallback)(async (confirmToken) => {
|
|
109
|
+
await curator.integrations.gmail.confirm(confirmToken);
|
|
110
|
+
// Resume the paused run; the assistant reply arrives on the durable
|
|
111
|
+
// conversation (reload history or re-render to surface it).
|
|
112
|
+
await chat.authorize();
|
|
113
|
+
setPendingAuthorization(null);
|
|
114
|
+
setError(null);
|
|
115
|
+
setMessages((prev) => prev.filter((b) => b.kind !== "error"));
|
|
116
|
+
}, [curator, chat]);
|
|
88
117
|
const reset = (0, react_1.useCallback)(() => {
|
|
89
118
|
// Force the memo to refresh by zeroing the ref; the consumer-controlled
|
|
90
119
|
// inputs determine the next Chat. For the no-prop-change case, we
|
|
91
120
|
// instead just clear local state — the existing Chat is still valid.
|
|
92
121
|
setMessages([]);
|
|
93
122
|
setError(null);
|
|
123
|
+
setPendingAuthorization(null);
|
|
94
124
|
setConversationIdState(chat.id);
|
|
95
125
|
}, [chat]);
|
|
96
126
|
return {
|
|
@@ -101,12 +131,20 @@ function useCuratorChat(opts) {
|
|
|
101
131
|
chat,
|
|
102
132
|
conversationId: conversationIdState,
|
|
103
133
|
reset,
|
|
134
|
+
pendingAuthorization,
|
|
135
|
+
connect,
|
|
136
|
+
completeConnect,
|
|
104
137
|
};
|
|
105
138
|
}
|
|
106
139
|
function renderError(err) {
|
|
107
140
|
if (err instanceof curator_sdk_1.CuratorApprovalRequiredError) {
|
|
108
141
|
return `That action needs administrator approval. Please contact your administrator to review the request for "${err.approval.tool_name}".`;
|
|
109
142
|
}
|
|
143
|
+
if (err instanceof curator_sdk_1.CuratorAuthorizationRequiredError) {
|
|
144
|
+
const { provider, reason, connect_url } = err.authorization;
|
|
145
|
+
return ((reason || `Connect your ${provider} account to continue.`) +
|
|
146
|
+
(connect_url ? ` Connect here: ${connect_url}` : ""));
|
|
147
|
+
}
|
|
110
148
|
if (err instanceof curator_sdk_1.CuratorAgentError) {
|
|
111
149
|
return err.message || `Agent error (${err.failureClass}).`;
|
|
112
150
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCuratorChat.js","sourceRoot":"","sources":["../../src/useCuratorChat.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;
|
|
1
|
+
{"version":3,"file":"useCuratorChat.js","sourceRoot":"","sources":["../../src/useCuratorChat.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AA2HH,wCA2IC;AApQD,iCAAyE;AAUzE,uDAU8B;AAC9B,6DAAuD;AA8FvD,IAAI,OAAO,GAAG,CAAC,CAAA;AACf,SAAS,OAAO;IACd,OAAO,IAAI,CAAC,CAAA;IACZ,OAAO,SAAS,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,CAAA;AACtD,CAAC;AAED,SAAgB,cAAc,CAAC,IAA2B;IACxD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAExF,wEAAwE;IACxE,MAAM,aAAa,GAAG,IAAA,qCAAgB,GAAE,CAAA;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,aAAa,CAAA;IAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,+EAA+E;YAC7E,yDAAyD,CAC5D,CAAA;IACH,CAAC;IAED,uEAAuE;IACvE,yEAAyE;IACzE,wDAAwD;IACxD,MAAM,IAAI,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACxB,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;QAC1E,OAAO,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;QACrF,uDAAuD;IACzD,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,CAAA;IAElE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAe,EAAE,CAAC,CAAA;IAC1D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAC7C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAA8B,IAAI,CAAC,CAAA;IACrE,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,IAAA,gBAAQ,EAC5D,cAAc,IAAI,IAAI,CACvB,CAAA;IACD,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GACnD,IAAA,gBAAQ,EAA8B,IAAI,CAAC,CAAA;IAE7C,qEAAqE;IACrE,gEAAgE;IAChE,MAAM,WAAW,GAAG,IAAA,cAAM,EAAc,IAAI,CAAC,CAAA;IAC7C,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACjC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAA;YAC1B,WAAW,CAAC,EAAE,CAAC,CAAA;YACf,QAAQ,CAAC,IAAI,CAAC,CAAA;YACd,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACjC,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAEV,MAAM,IAAI,GAAG,IAAA,mBAAW,EACtB,KAAK,EAAE,OAAe,EAAE,OAAiB,EAAE,EAAE,EAAE;QAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;QAC9B,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM;YAAE,OAAM;QAE3C,MAAM,UAAU,GAAe,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAA;QACrF,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAA;QAC5C,UAAU,CAAC,IAAI,CAAC,CAAA;QAChB,QAAQ,CAAC,IAAI,CAAC,CAAA;QACd,uBAAuB,CAAC,IAAI,CAAC,CAAA;QAE7B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YAC5C,sBAAsB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;YAC5C,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;gBACpB,GAAG,IAAI;gBACP;oBACE,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;iBACnB;aACF,CAAC,CAAA;YACF,SAAS,EAAE,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,mEAAmE;YACnE,4CAA4C;YAC5C,IAAI,GAAG,YAAY,+CAAiC,EAAE,CAAC;gBACrD,uBAAuB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;YAC5C,CAAC;YACD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;YAChC,QAAQ,CAAC,GAA2B,CAAC,CAAA;YACrC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;YAChF,OAAO,EAAE,CAAC,GAA2B,CAAC,CAAA;QACxC,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAA;QACnB,CAAC;IACH,CAAC,EACD,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAC3B,CAAA;IAED,MAAM,OAAO,GAAG,IAAA,mBAAW,EACzB,KAAK,EAAE,cAAsC,EAAE,EAAE,EAAE;QACjD,MAAM,SAAS,GACb,WAAW,CAAC,SAAS;YACrB,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QACpE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;QAC9E,CAAC;QACD,mDAAmD;QACnD,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,CAAC,CAAA;QACnF,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QACpC,CAAC;QACD,OAAM;IACR,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAA;IAED,MAAM,eAAe,GAAG,IAAA,mBAAW,EACjC,KAAK,EAAE,YAAoB,EAAE,EAAE;QAC7B,MAAM,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QACtD,oEAAoE;QACpE,4DAA4D;QAC5D,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;QACtB,uBAAuB,CAAC,IAAI,CAAC,CAAA;QAC7B,QAAQ,CAAC,IAAI,CAAC,CAAA;QACd,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAA;IAC/D,CAAC,EACD,CAAC,OAAO,EAAE,IAAI,CAAC,CAChB,CAAA;IAED,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QAC7B,wEAAwE;QACxE,kEAAkE;QAClE,qEAAqE;QACrE,WAAW,CAAC,EAAE,CAAC,CAAA;QACf,QAAQ,CAAC,IAAI,CAAC,CAAA;QACd,uBAAuB,CAAC,IAAI,CAAC,CAAA;QAC7B,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACjC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAEV,OAAO;QACL,QAAQ;QACR,IAAI;QACJ,OAAO;QACP,KAAK;QACL,IAAI;QACJ,cAAc,EAAE,mBAAmB;QACnC,KAAK;QACL,oBAAoB;QACpB,OAAO;QACP,eAAe;KAChB,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAY;IAC/B,IAAI,GAAG,YAAY,0CAA4B,EAAE,CAAC;QAChD,OAAO,0GAA0G,GAAG,CAAC,QAAQ,CAAC,SAAS,IAAI,CAAA;IAC7I,CAAC;IACD,IAAI,GAAG,YAAY,+CAAiC,EAAE,CAAC;QACrD,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,aAAa,CAAA;QAC3D,OAAO,CACL,CAAC,MAAM,IAAI,gBAAgB,QAAQ,uBAAuB,CAAC;YAC3D,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACrD,CAAA;IACH,CAAC;IACD,IAAI,GAAG,YAAY,+BAAiB,EAAE,CAAC;QACrC,OAAO,GAAG,CAAC,OAAO,IAAI,gBAAgB,GAAG,CAAC,YAAY,IAAI,CAAA;IAC5D,CAAC;IACD,IAAI,GAAG,YAAY,iCAAmB,EAAE,CAAC;QACvC,OAAO,oFAAoF,CAAA;IAC7F,CAAC;IACD,IAAI,GAAG,YAAY,8BAAgB,EAAE,CAAC;QACpC,OAAO,4CAA4C,CAAA;IACrD,CAAC;IACD,IAAI,GAAG,YAAY,mCAAqB,EAAE,CAAC;QACzC,OAAO,GAAG,CAAC,OAAO,IAAI,oBAAoB,CAAA;IAC5C,CAAC;IACD,IAAI,GAAG,YAAY,kCAAoB,EAAE,CAAC;QACxC,OAAO,GAAG,CAAC,OAAO,IAAI,uCAAuC,CAAA;IAC/D,CAAC;IACD,IAAI,GAAG,YAAY,2CAA6B,EAAE,CAAC;QACjD,OAAO,mDAAmD,CAAA;IAC5D,CAAC;IACD,IAAI,GAAG,YAAY,mCAAqB,EAAE,CAAC;QACzC,OAAO,yDAAyD,CAAA;IAClE,CAAC;IACD,IAAI,GAAG,YAAY,KAAK;QAAE,OAAO,GAAG,CAAC,OAAO,CAAA;IAC5C,OAAO,uBAAuB,CAAA;AAChC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CuratorAdapter.d.ts","sourceRoot":"","sources":["../../src/CuratorAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAsB,MAAM,qBAAqB,CAAA;AAC/E,OAAO,KAAK,EACV,gBAAgB,EAChB,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,kBAAkB,EACnB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,WAAW,uBAAuB;IACtC,8DAA8D;IAC9D,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAC/C;;;;;OAKG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;IACtC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAA;IACvD,gEAAgE;IAChE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,GAAG,KAAK,KAAK,IAAI,CAAA;CAChD;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,IAAI,EACV,SAAS,GAAE,uBAA4B,GACtC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"CuratorAdapter.d.ts","sourceRoot":"","sources":["../../src/CuratorAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAsB,MAAM,qBAAqB,CAAA;AAC/E,OAAO,KAAK,EACV,gBAAgB,EAChB,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,kBAAkB,EACnB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,WAAW,uBAAuB;IACtC,8DAA8D;IAC9D,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAC/C;;;;;OAKG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;IACtC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAA;IACvD,gEAAgE;IAChE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,GAAG,KAAK,KAAK,IAAI,CAAA;CAChD;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,IAAI,EACV,SAAS,GAAE,uBAA4B,GACtC,gBAAgB,CAsFlB"}
|
|
@@ -70,6 +70,17 @@ export function createCuratorAdapter(chat, callbacks = {}) {
|
|
|
70
70
|
callbacks.onError?.(new Error(pausedMessage));
|
|
71
71
|
return;
|
|
72
72
|
}
|
|
73
|
+
if (event.type === "paused_for_authorization") {
|
|
74
|
+
const { provider, reason, connect_url } = event.authorization;
|
|
75
|
+
const pausedMessage = (reason || `Connect ${provider} to continue.`) +
|
|
76
|
+
(connect_url ? ` Connect here: ${connect_url}` : "");
|
|
77
|
+
yield {
|
|
78
|
+
content: [{ type: "text", text: pausedMessage }],
|
|
79
|
+
status: { type: "incomplete", reason: "error" },
|
|
80
|
+
};
|
|
81
|
+
callbacks.onError?.(new Error(pausedMessage));
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
73
84
|
// tool_call.* and any future event types are silently dropped
|
|
74
85
|
// until a richer UI surface ships for them.
|
|
75
86
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CuratorAdapter.js","sourceRoot":"","sources":["../../src/CuratorAdapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CuratorAdapter.js","sourceRoot":"","sources":["../../src/CuratorAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* Bring your own UI on top of this hook, or use `<CuratorChat />` for
|
|
9
9
|
* the drop-in styled widget that consumes this hook internally.
|
|
10
10
|
*/
|
|
11
|
-
import type { AssistantMessage, Chat, Curator, CuratorError, Environment, FileAttachment } from "@darqlabs/curator-sdk";
|
|
11
|
+
import type { AssistantMessage, AuthorizationDetails, Chat, Curator, CuratorError, Environment, FileAttachment } from "@darqlabs/curator-sdk";
|
|
12
12
|
/** Local message representation — superset of what the SDK returns plus
|
|
13
13
|
* optimistic user messages and inline error markers. */
|
|
14
14
|
export type ChatBubble = {
|
|
@@ -74,6 +74,27 @@ export interface UseCuratorChatResult {
|
|
|
74
74
|
/** Clear the visible message list and detach the current conversation
|
|
75
75
|
* by allocating a fresh Chat. */
|
|
76
76
|
reset: () => void;
|
|
77
|
+
/**
|
|
78
|
+
* Set when the last send paused for an end-user connect (the agent needs
|
|
79
|
+
* the user to connect a provider, e.g. Gmail). Drive `connect()` to resolve
|
|
80
|
+
* it. Null otherwise.
|
|
81
|
+
*/
|
|
82
|
+
pendingAuthorization: AuthorizationDetails | null;
|
|
83
|
+
/**
|
|
84
|
+
* Begin the end-user connect flow for the pending provider: fetches a
|
|
85
|
+
* consent URL and redirects the browser to it. On return (to `returnUrl`),
|
|
86
|
+
* call `completeConnect(confirmToken)` with the `confirm_token` query param.
|
|
87
|
+
* Defaults `returnUrl` to the current page URL.
|
|
88
|
+
*/
|
|
89
|
+
connect: (opts?: {
|
|
90
|
+
returnUrl?: string;
|
|
91
|
+
}) => Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* Finalize a connect after the user returns from consent, then resume the
|
|
94
|
+
* paused run. Pass the `confirm_token` from the return URL. The resumed
|
|
95
|
+
* assistant reply arrives on the durable conversation.
|
|
96
|
+
*/
|
|
97
|
+
completeConnect: (confirmToken: string) => Promise<void>;
|
|
77
98
|
}
|
|
78
99
|
export declare function useCuratorChat(opts: UseCuratorChatOptions): UseCuratorChatResult;
|
|
79
100
|
//# sourceMappingURL=useCuratorChat.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCuratorChat.d.ts","sourceRoot":"","sources":["../../src/useCuratorChat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EACV,gBAAgB,EAChB,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,WAAW,EACX,cAAc,EACf,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"useCuratorChat.d.ts","sourceRoot":"","sources":["../../src/useCuratorChat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACpB,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,WAAW,EACX,cAAc,EACf,MAAM,uBAAuB,CAAA;AAc9B;yDACyD;AACzD,MAAM,MAAM,UAAU,GAClB;IACE,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAA;CAChB,GACD;IACE,IAAI,EAAE,WAAW,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;CACd,GACD;IACE,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAEL,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,sEAAsE;IACtE,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAC/C,iEAAiE;IACjE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,GAAG,KAAK,KAAK,IAAI,CAAA;CAChD;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAA;IACxB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,2CAA2C;IAC3C,QAAQ,EAAE,UAAU,EAAE,CAAA;IACtB,2DAA2D;IAC3D,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzD,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAA;IAChB,uEAAuE;IACvE,KAAK,EAAE,YAAY,GAAG,KAAK,GAAG,IAAI,CAAA;IAClC,gEAAgE;IAChE,IAAI,EAAE,IAAI,CAAA;IACV,iEAAiE;IACjE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B;sCACkC;IAClC,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB;;;;OAIG;IACH,oBAAoB,EAAE,oBAAoB,GAAG,IAAI,CAAA;IACjD;;;;;OAKG;IACH,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzD;;;;OAIG;IACH,eAAe,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACzD;AAQD,wBAAgB,cAAc,CAAC,IAAI,EAAE,qBAAqB,GAAG,oBAAoB,CA2IhF"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* the drop-in styled widget that consumes this hook internally.
|
|
10
10
|
*/
|
|
11
11
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
12
|
-
import { CuratorAgentError, CuratorApprovalRequiredError, CuratorAuthError, CuratorDeploymentRetiredError, CuratorForbiddenError, CuratorNotFoundError, CuratorRateLimitError, CuratorTimeoutError, } from "@darqlabs/curator-sdk";
|
|
12
|
+
import { CuratorAgentError, CuratorApprovalRequiredError, CuratorAuthorizationRequiredError, CuratorAuthError, CuratorDeploymentRetiredError, CuratorForbiddenError, CuratorNotFoundError, CuratorRateLimitError, CuratorTimeoutError, } from "@darqlabs/curator-sdk";
|
|
13
13
|
import { useCuratorOrNull } from "./CuratorProvider.js";
|
|
14
14
|
let counter = 0;
|
|
15
15
|
function localId() {
|
|
@@ -37,6 +37,7 @@ export function useCuratorChat(opts) {
|
|
|
37
37
|
const [sending, setSending] = useState(false);
|
|
38
38
|
const [error, setError] = useState(null);
|
|
39
39
|
const [conversationIdState, setConversationIdState] = useState(conversationId ?? null);
|
|
40
|
+
const [pendingAuthorization, setPendingAuthorization] = useState(null);
|
|
40
41
|
// Whenever the chat handle changes (consumer swapped props or called
|
|
41
42
|
// reset), wipe local message state to avoid mixing transcripts.
|
|
42
43
|
const lastChatRef = useRef(null);
|
|
@@ -56,6 +57,7 @@ export function useCuratorChat(opts) {
|
|
|
56
57
|
setMessages((prev) => [...prev, userBubble]);
|
|
57
58
|
setSending(true);
|
|
58
59
|
setError(null);
|
|
60
|
+
setPendingAuthorization(null);
|
|
59
61
|
try {
|
|
60
62
|
const reply = await chat.send(trimmed, args);
|
|
61
63
|
setConversationIdState(reply.conversationId);
|
|
@@ -73,6 +75,11 @@ export function useCuratorChat(opts) {
|
|
|
73
75
|
onMessage?.(reply);
|
|
74
76
|
}
|
|
75
77
|
catch (err) {
|
|
78
|
+
// Surface a connect pause distinctly so the UI can offer a Connect
|
|
79
|
+
// affordance instead of just an error line.
|
|
80
|
+
if (err instanceof CuratorAuthorizationRequiredError) {
|
|
81
|
+
setPendingAuthorization(err.authorization);
|
|
82
|
+
}
|
|
76
83
|
const message = renderError(err);
|
|
77
84
|
setError(err);
|
|
78
85
|
setMessages((prev) => [...prev, { kind: "error", message, localId: localId() }]);
|
|
@@ -82,12 +89,35 @@ export function useCuratorChat(opts) {
|
|
|
82
89
|
setSending(false);
|
|
83
90
|
}
|
|
84
91
|
}, [chat, onMessage, onError]);
|
|
92
|
+
const connect = useCallback(async (connectOpts = {}) => {
|
|
93
|
+
const returnUrl = connectOpts.returnUrl ??
|
|
94
|
+
(typeof window !== "undefined" ? window.location.href : undefined);
|
|
95
|
+
if (!returnUrl) {
|
|
96
|
+
throw new Error("connect() requires a returnUrl outside a browser context.");
|
|
97
|
+
}
|
|
98
|
+
// v1: Gmail is the only end-user connect provider.
|
|
99
|
+
const { consentUrl } = await curator.integrations.gmail.startConnect({ returnUrl });
|
|
100
|
+
if (typeof window !== "undefined") {
|
|
101
|
+
window.location.assign(consentUrl);
|
|
102
|
+
}
|
|
103
|
+
return;
|
|
104
|
+
}, [curator]);
|
|
105
|
+
const completeConnect = useCallback(async (confirmToken) => {
|
|
106
|
+
await curator.integrations.gmail.confirm(confirmToken);
|
|
107
|
+
// Resume the paused run; the assistant reply arrives on the durable
|
|
108
|
+
// conversation (reload history or re-render to surface it).
|
|
109
|
+
await chat.authorize();
|
|
110
|
+
setPendingAuthorization(null);
|
|
111
|
+
setError(null);
|
|
112
|
+
setMessages((prev) => prev.filter((b) => b.kind !== "error"));
|
|
113
|
+
}, [curator, chat]);
|
|
85
114
|
const reset = useCallback(() => {
|
|
86
115
|
// Force the memo to refresh by zeroing the ref; the consumer-controlled
|
|
87
116
|
// inputs determine the next Chat. For the no-prop-change case, we
|
|
88
117
|
// instead just clear local state — the existing Chat is still valid.
|
|
89
118
|
setMessages([]);
|
|
90
119
|
setError(null);
|
|
120
|
+
setPendingAuthorization(null);
|
|
91
121
|
setConversationIdState(chat.id);
|
|
92
122
|
}, [chat]);
|
|
93
123
|
return {
|
|
@@ -98,12 +128,20 @@ export function useCuratorChat(opts) {
|
|
|
98
128
|
chat,
|
|
99
129
|
conversationId: conversationIdState,
|
|
100
130
|
reset,
|
|
131
|
+
pendingAuthorization,
|
|
132
|
+
connect,
|
|
133
|
+
completeConnect,
|
|
101
134
|
};
|
|
102
135
|
}
|
|
103
136
|
function renderError(err) {
|
|
104
137
|
if (err instanceof CuratorApprovalRequiredError) {
|
|
105
138
|
return `That action needs administrator approval. Please contact your administrator to review the request for "${err.approval.tool_name}".`;
|
|
106
139
|
}
|
|
140
|
+
if (err instanceof CuratorAuthorizationRequiredError) {
|
|
141
|
+
const { provider, reason, connect_url } = err.authorization;
|
|
142
|
+
return ((reason || `Connect your ${provider} account to continue.`) +
|
|
143
|
+
(connect_url ? ` Connect here: ${connect_url}` : ""));
|
|
144
|
+
}
|
|
107
145
|
if (err instanceof CuratorAgentError) {
|
|
108
146
|
return err.message || `Agent error (${err.failureClass}).`;
|
|
109
147
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCuratorChat.js","sourceRoot":"","sources":["../../src/useCuratorChat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"useCuratorChat.js","sourceRoot":"","sources":["../../src/useCuratorChat.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@darqlabs/curator-sdk-react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Official React components for Curator — drop-in chat widget and headless hook backed by @darqlabs/curator-sdk.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "./dist/cjs/index.js",
|
|
@@ -27,13 +27,13 @@
|
|
|
27
27
|
"node": ">=18"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@assistant-ui/react": "^0.
|
|
30
|
+
"@assistant-ui/react": "^0.15.16",
|
|
31
31
|
"react-markdown": "^10.0.0"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
34
|
"react": "^18.0.0 || ^19.0.0",
|
|
35
35
|
"react-dom": "^18.0.0 || ^19.0.0",
|
|
36
|
-
"@darqlabs/curator-sdk": "^0.
|
|
36
|
+
"@darqlabs/curator-sdk": "^0.2.0"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@testing-library/react": "^16.1.0",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"react-dom": "^18.3.0",
|
|
47
47
|
"ts-jest": "^29.4.9",
|
|
48
48
|
"typescript": "^5.9.3",
|
|
49
|
-
"@darqlabs/curator-sdk": "^0.
|
|
49
|
+
"@darqlabs/curator-sdk": "^0.2.0"
|
|
50
50
|
},
|
|
51
51
|
"keywords": [
|
|
52
52
|
"curator",
|