@classic-homes/agent-client 0.11.0 → 0.13.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/client.d.ts +22 -4
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +22 -1
- package/dist/client.js.map +1 -1
- package/dist/errors.d.ts +3 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +6 -2
- package/dist/errors.js.map +1 -1
- package/package.json +2 -2
package/dist/client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AgentsResponse, AuthExchangeResponse, ConversationListResponse, DevicePollResponse, DeviceStartResponse, MeResponse, SessionResponse, type AuthExchangeRequest, type TurnFeedbackRequest, type TurnRating, type ChatEvent, type ChatRequest, type FileRef } from '@classic-homes/agent-contracts';
|
|
1
|
+
import { AgentsResponse, AuthExchangeResponse, ConversationListResponse, DeviceMfaEmailResponse, DeviceMfaResponse, DevicePollResponse, DeviceStartResponse, MeResponse, SessionResponse, type AuthExchangeRequest, type DeviceMfaRequest, type TurnFeedbackRequest, type TurnRating, type ChatEvent, type ChatRequest, type FileRef } from '@classic-homes/agent-contracts';
|
|
2
2
|
import { type StreamOutcome } from './stream.js';
|
|
3
3
|
export interface AgentApiClientOptions {
|
|
4
4
|
/** Origin of the API; empty for same-origin (the Office pane). No trailing slash. */
|
|
@@ -24,8 +24,11 @@ export interface ConversationDetail {
|
|
|
24
24
|
text: string;
|
|
25
25
|
}>;
|
|
26
26
|
createdAt: number;
|
|
27
|
-
/**
|
|
28
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Native runtime: why an answer ended early, so the view can offer Continue (or Try again
|
|
29
|
+
* after `error`). A newer server may send other values; treat unknown ones as finished.
|
|
30
|
+
*/
|
|
31
|
+
finish?: 'length' | 'cancelled' | 'error';
|
|
29
32
|
}>;
|
|
30
33
|
files: FileRef[];
|
|
31
34
|
/** Ratings by request id (native runtime; absent from older servers). */
|
|
@@ -59,13 +62,28 @@ export interface AgentApiClient {
|
|
|
59
62
|
uploadFile(file: Blob, name: string, options?: {
|
|
60
63
|
signal?: AbortSignal;
|
|
61
64
|
}): Promise<FileRef>;
|
|
62
|
-
/** Absolute or same-origin URL to download a file; requires the bearer, so prefer `
|
|
65
|
+
/** Absolute or same-origin URL to download a file; requires the bearer, so prefer `fetchFile` for display. */
|
|
63
66
|
fileUrl(fileId: string): string;
|
|
67
|
+
/**
|
|
68
|
+
* Download a file with the bearer (for blob URLs: `<img>` and download links cannot send the
|
|
69
|
+
* header). Optional so hand-written clients stay valid; `createAgentApiClient` provides it.
|
|
70
|
+
*/
|
|
71
|
+
fetchFile?(fileId: string, options?: {
|
|
72
|
+
signal?: AbortSignal;
|
|
73
|
+
}): Promise<Blob>;
|
|
64
74
|
/** Office sign-in: redeem a single-use handoff code (dialog flow). */
|
|
65
75
|
exchangeHandoff(request: AuthExchangeRequest): Promise<AuthExchangeResponse>;
|
|
66
76
|
/** Office sign-in: device flow. `devicePoll` stores the session token when authorized. */
|
|
67
77
|
deviceStart(): Promise<DeviceStartResponse>;
|
|
68
78
|
devicePoll(loginId: string): Promise<DevicePollResponse>;
|
|
79
|
+
/**
|
|
80
|
+
* After `devicePoll` answered `mfa_required`: send the code the user typed. Stores the session
|
|
81
|
+
* token when authorized; `invalid_code` means ask again. Optional so hand-written clients stay
|
|
82
|
+
* valid; `createAgentApiClient` provides it.
|
|
83
|
+
*/
|
|
84
|
+
deviceMfa?(request: DeviceMfaRequest): Promise<DeviceMfaResponse>;
|
|
85
|
+
/** After `mfa_required` with the `email` method: mail the user a sign-in code. */
|
|
86
|
+
deviceMfaEmail?(loginId: string): Promise<DeviceMfaEmailResponse>;
|
|
69
87
|
/** End the session and forget the in-memory token. */
|
|
70
88
|
logout(): Promise<void>;
|
|
71
89
|
hasSessionToken(): boolean;
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAGd,oBAAoB,EACpB,wBAAwB,EAExB,kBAAkB,EAClB,mBAAmB,EAEnB,UAAU,EACV,eAAe,EAMf,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,OAAO,EACb,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjE,MAAM,WAAW,qBAAqB;IACpC,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,GAAG,SAAS,CAAC;IAClE,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;CAClD;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,wBAAwB,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;IAChE,QAAQ,EAAE,KAAK,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC/C,SAAS,EAAE,MAAM,CAAC;QAClB
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AgentsResponse, API_PATHS, AUTH_PATHS, AuthExchangeResponse, ConversationListResponse, DEVICE_AUTH_PATHS, DevicePollResponse, DeviceStartResponse, FileUploadResponse, MeResponse, SessionResponse, cancelPath, conversationEventsPath, conversationPath, filePath, turnFeedbackPath, } from '@classic-homes/agent-contracts';
|
|
1
|
+
import { AgentsResponse, API_PATHS, AUTH_PATHS, AuthExchangeResponse, ConversationListResponse, DEVICE_AUTH_PATHS, DeviceMfaEmailResponse, DeviceMfaResponse, DevicePollResponse, DeviceStartResponse, FileUploadResponse, MeResponse, SessionResponse, cancelPath, conversationEventsPath, conversationPath, filePath, turnFeedbackPath, } from '@classic-homes/agent-contracts';
|
|
2
2
|
import { ApiRequestError, errorFromResponse, isAbort } from './errors.js';
|
|
3
3
|
import { readChatStream } from './stream.js';
|
|
4
4
|
export function createAgentApiClient(options = {}) {
|
|
@@ -125,6 +125,12 @@ export function createAgentApiClient(options = {}) {
|
|
|
125
125
|
return result.file;
|
|
126
126
|
},
|
|
127
127
|
fileUrl: (fileId) => `${baseUrl}${filePath(fileId)}`,
|
|
128
|
+
async fetchFile(fileId, fetchOptions = {}) {
|
|
129
|
+
const response = await request(filePath(fileId), { signal: fetchOptions.signal ?? null });
|
|
130
|
+
if (!response.ok)
|
|
131
|
+
throw await errorFromResponse(response);
|
|
132
|
+
return response.blob();
|
|
133
|
+
},
|
|
128
134
|
async exchangeHandoff(exchange) {
|
|
129
135
|
const result = await json(AUTH_PATHS.exchange, AuthExchangeResponse, {
|
|
130
136
|
method: 'POST',
|
|
@@ -145,6 +151,21 @@ export function createAgentApiClient(options = {}) {
|
|
|
145
151
|
sessionToken = result.sessionToken;
|
|
146
152
|
return result;
|
|
147
153
|
},
|
|
154
|
+
async deviceMfa(mfa) {
|
|
155
|
+
const result = await json(DEVICE_AUTH_PATHS.mfa, DeviceMfaResponse, {
|
|
156
|
+
method: 'POST',
|
|
157
|
+
headers: JSON_HEADERS,
|
|
158
|
+
body: JSON.stringify(mfa),
|
|
159
|
+
});
|
|
160
|
+
if (result.status === 'authorized')
|
|
161
|
+
sessionToken = result.sessionToken;
|
|
162
|
+
return result;
|
|
163
|
+
},
|
|
164
|
+
deviceMfaEmail: (loginId) => json(DEVICE_AUTH_PATHS.mfaEmail, DeviceMfaEmailResponse, {
|
|
165
|
+
method: 'POST',
|
|
166
|
+
headers: JSON_HEADERS,
|
|
167
|
+
body: JSON.stringify({ loginId }),
|
|
168
|
+
}),
|
|
148
169
|
async logout() {
|
|
149
170
|
try {
|
|
150
171
|
const response = await request(AUTH_PATHS.logout, { method: 'POST' });
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,SAAS,EACT,UAAU,EACV,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,EACV,eAAe,EACf,UAAU,EACV,sBAAsB,EACtB,gBAAgB,EAChB,QAAQ,EACR,gBAAgB,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -5,7 +5,9 @@ export declare class ApiRequestError extends Error {
|
|
|
5
5
|
readonly code: ClientErrorCode;
|
|
6
6
|
readonly status: number | undefined;
|
|
7
7
|
readonly retryable: boolean;
|
|
8
|
-
|
|
8
|
+
/** The runtime's `reason` for a refusal (e.g. `busy`), when it sent one. */
|
|
9
|
+
readonly reason: string | undefined;
|
|
10
|
+
constructor(code: ClientErrorCode, message: string, status?: number, reason?: string);
|
|
9
11
|
}
|
|
10
12
|
export declare function errorFromResponse(response: Response): Promise<ApiRequestError>;
|
|
11
13
|
export declare function isAbort(error: unknown, signal?: AbortSignal): boolean;
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE1E,qFAAqF;AACrF,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AAEjE,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE1E,qFAAqF;AACrF,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AAEjE,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;gBACxB,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;CAQrF;AAcD,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,eAAe,CAAC,CAsBpF;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAErE"}
|
package/dist/errors.js
CHANGED
|
@@ -3,11 +3,14 @@ export class ApiRequestError extends Error {
|
|
|
3
3
|
code;
|
|
4
4
|
status;
|
|
5
5
|
retryable;
|
|
6
|
-
|
|
6
|
+
/** The runtime's `reason` for a refusal (e.g. `busy`), when it sent one. */
|
|
7
|
+
reason;
|
|
8
|
+
constructor(code, message, status, reason) {
|
|
7
9
|
super(message);
|
|
8
10
|
this.name = 'ApiRequestError';
|
|
9
11
|
this.code = code;
|
|
10
12
|
this.status = status;
|
|
13
|
+
this.reason = reason;
|
|
11
14
|
this.retryable = ['network', 'rate_limited', 'upstream_unavailable', 'timeout'].includes(code);
|
|
12
15
|
}
|
|
13
16
|
}
|
|
@@ -32,7 +35,8 @@ export async function errorFromResponse(response) {
|
|
|
32
35
|
}
|
|
33
36
|
const parsed = ApiError.safeParse(body);
|
|
34
37
|
if (parsed.success) {
|
|
35
|
-
|
|
38
|
+
const { code, message, reason } = parsed.data.error;
|
|
39
|
+
return new ApiRequestError(code, message, response.status, reason);
|
|
36
40
|
}
|
|
37
41
|
// No contract body: most likely a proxy could not reach the backend.
|
|
38
42
|
if (response.status >= 500 && response.status !== 503 && response.status !== 504) {
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,gCAAgC,CAAC;AAK1E,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAC/B,IAAI,CAAkB;IACtB,MAAM,CAAqB;IAC3B,SAAS,CAAU;IAC5B,YAAY,IAAqB,EAAE,OAAe,EAAE,MAAe;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,gCAAgC,CAAC;AAK1E,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAC/B,IAAI,CAAkB;IACtB,MAAM,CAAqB;IAC3B,SAAS,CAAU;IAC5B,4EAA4E;IACnE,MAAM,CAAqB;IACpC,YAAY,IAAqB,EAAE,OAAe,EAAE,MAAe,EAAE,MAAe;QAClF,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,CAAC,SAAS,EAAE,cAAc,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjG,CAAC;CACF;AAED,MAAM,YAAY,GAA8B;IAC9C,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,cAAc;IACnB,GAAG,EAAE,sBAAsB;IAC3B,GAAG,EAAE,sBAAsB;IAC3B,GAAG,EAAE,SAAS;CACf,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,QAAkB;IACxD,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,GAAG,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QACpD,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IACD,qEAAqE;IACrE,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACjF,OAAO,IAAI,eAAe,CACxB,SAAS,EACT,kDAAkD,QAAQ,CAAC,MAAM,IAAI,EACrE,QAAQ,CAAC,MAAM,CAChB,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC;IACzD,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,4BAA4B,QAAQ,CAAC,MAAM,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;AACpG,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAc,EAAE,MAAoB;IAC1D,OAAO,CAAC,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;AAC7F,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@classic-homes/agent-client",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Framework-free client for the Classic Agent API: sessions, streaming chat with ordering checks, conversations and files. Shared by the Office task pane and the Classic App.",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"dist"
|
|
16
16
|
],
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@classic-homes/agent-contracts": "0.
|
|
18
|
+
"@classic-homes/agent-contracts": "0.13.0"
|
|
19
19
|
},
|
|
20
20
|
"license": "UNLICENSED",
|
|
21
21
|
"publishConfig": {
|