@darqlabs/curator-sdk 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.
Files changed (60) hide show
  1. package/README.md +18 -0
  2. package/dist/cjs/client.d.ts +13 -0
  3. package/dist/cjs/client.d.ts.map +1 -1
  4. package/dist/cjs/client.js +30 -0
  5. package/dist/cjs/client.js.map +1 -1
  6. package/dist/cjs/errors.d.ts +17 -1
  7. package/dist/cjs/errors.d.ts.map +1 -1
  8. package/dist/cjs/errors.js +23 -1
  9. package/dist/cjs/errors.js.map +1 -1
  10. package/dist/cjs/graph.d.ts +307 -0
  11. package/dist/cjs/graph.d.ts.map +1 -0
  12. package/dist/cjs/graph.js +336 -0
  13. package/dist/cjs/graph.js.map +1 -0
  14. package/dist/cjs/index.d.ts +4 -3
  15. package/dist/cjs/index.d.ts.map +1 -1
  16. package/dist/cjs/index.js +5 -1
  17. package/dist/cjs/index.js.map +1 -1
  18. package/dist/cjs/integrations.d.ts +57 -0
  19. package/dist/cjs/integrations.d.ts.map +1 -0
  20. package/dist/cjs/integrations.js +85 -0
  21. package/dist/cjs/integrations.js.map +1 -0
  22. package/dist/cjs/streamEventParse.d.ts.map +1 -1
  23. package/dist/cjs/streamEventParse.js +19 -0
  24. package/dist/cjs/streamEventParse.js.map +1 -1
  25. package/dist/cjs/streamEvents.d.ts +38 -3
  26. package/dist/cjs/streamEvents.d.ts.map +1 -1
  27. package/dist/cjs/streamEvents.js +3 -1
  28. package/dist/cjs/streamEvents.js.map +1 -1
  29. package/dist/cjs/types.d.ts +29 -0
  30. package/dist/cjs/types.d.ts.map +1 -1
  31. package/dist/esm/client.d.ts +13 -0
  32. package/dist/esm/client.d.ts.map +1 -1
  33. package/dist/esm/client.js +31 -1
  34. package/dist/esm/client.js.map +1 -1
  35. package/dist/esm/errors.d.ts +17 -1
  36. package/dist/esm/errors.d.ts.map +1 -1
  37. package/dist/esm/errors.js +21 -0
  38. package/dist/esm/errors.js.map +1 -1
  39. package/dist/esm/graph.d.ts +307 -0
  40. package/dist/esm/graph.d.ts.map +1 -0
  41. package/dist/esm/graph.js +321 -0
  42. package/dist/esm/graph.js.map +1 -0
  43. package/dist/esm/index.d.ts +4 -3
  44. package/dist/esm/index.d.ts.map +1 -1
  45. package/dist/esm/index.js +2 -1
  46. package/dist/esm/index.js.map +1 -1
  47. package/dist/esm/integrations.d.ts +57 -0
  48. package/dist/esm/integrations.d.ts.map +1 -0
  49. package/dist/esm/integrations.js +80 -0
  50. package/dist/esm/integrations.js.map +1 -0
  51. package/dist/esm/streamEventParse.d.ts.map +1 -1
  52. package/dist/esm/streamEventParse.js +19 -0
  53. package/dist/esm/streamEventParse.js.map +1 -1
  54. package/dist/esm/streamEvents.d.ts +38 -3
  55. package/dist/esm/streamEvents.d.ts.map +1 -1
  56. package/dist/esm/streamEvents.js +3 -1
  57. package/dist/esm/streamEvents.js.map +1 -1
  58. package/dist/esm/types.d.ts +29 -0
  59. package/dist/esm/types.d.ts.map +1 -1
  60. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClD,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/D,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,GACX,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,qBAAqB,EACrB,4BAA4B,EAC5B,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAA;AACpB,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,WAAW,EACX,gBAAgB,GACjB,MAAM,YAAY,CAAA;AACnB,YAAY,EACV,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,uBAAuB,EACvB,WAAW,EACX,kBAAkB,EAClB,UAAU,EACV,WAAW,EACX,uBAAuB,GACxB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClD,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/D,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,GACX,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,qBAAqB,EACrB,4BAA4B,EAC5B,iCAAiC,EACjC,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAA;AACpB,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAClE,YAAY,EACV,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,uBAAuB,EACvB,WAAW,EACX,kBAAkB,EAClB,UAAU,EACV,WAAW,EACX,uBAAuB,EACvB,4BAA4B,GAC7B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA"}
package/dist/esm/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export { Curator, Agent, Chat } from "./client.js";
2
2
  export { Files } from "./files.js";
3
- export { CuratorError, CuratorAuthError, CuratorForbiddenError, CuratorNotFoundError, CuratorDeploymentRetiredError, CuratorRateLimitError, CuratorApprovalRequiredError, CuratorAgentError, CuratorTimeoutError, } from "./errors.js";
3
+ export { CuratorError, CuratorAuthError, CuratorForbiddenError, CuratorNotFoundError, CuratorDeploymentRetiredError, CuratorRateLimitError, CuratorApprovalRequiredError, CuratorAuthorizationRequiredError, CuratorAgentError, CuratorTimeoutError, } from "./errors.js";
4
+ export { Integrations, GmailIntegration } from "./integrations.js";
4
5
  export { isTerminalStreamEvent } from "./streamEvents.js";
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAGlD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAOlC,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,qBAAqB,EACrB,4BAA4B,EAC5B,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAA;AA0BpB,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAGlD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAOlC,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,qBAAqB,EACrB,4BAA4B,EAC5B,iCAAiC,EACjC,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAA;AAiBpB,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAalE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Integration connect surface for the host app's end users (SDK delegated
3
+ * identity). Lets a host app drive the OAuth connect flow for the currently
4
+ * authenticated end user (identified by the end-user JWT the client carries),
5
+ * so an agent can act as them.
6
+ *
7
+ * Typical loop, on a `CuratorAuthorizationRequiredError`:
8
+ *
9
+ * const { consentUrl } = await curator.integrations.gmail.startConnect({
10
+ * returnUrl: "https://myapp.com/after-connect",
11
+ * })
12
+ * window.location = consentUrl // Google consent
13
+ * // …user returns to returnUrl?status=connected&confirm_token=… …
14
+ * await curator.integrations.gmail.confirm(confirmToken) // bind
15
+ * await chat.authorize() // resume the paused run
16
+ */
17
+ import type { HttpClient } from "./http.js";
18
+ import type { EndUserConnection } from "./types.js";
19
+ export declare class GmailIntegration {
20
+ private readonly http;
21
+ private readonly baseUrl;
22
+ constructor(http: HttpClient, baseUrl: string);
23
+ private base;
24
+ /**
25
+ * Begin an end-user Gmail connect. Returns a Google consent URL to open
26
+ * (redirect or popup). `returnUrl` must be an origin your org has
27
+ * allowlisted (Settings → End-user identity); the callback 302s back to it
28
+ * with `?status=connected&confirm_token=…`.
29
+ */
30
+ startConnect(opts: {
31
+ returnUrl: string;
32
+ }): Promise<{
33
+ consentUrl: string;
34
+ }>;
35
+ /**
36
+ * Finalize the connection after the user returns from consent, passing the
37
+ * `confirm_token` from the return URL. Binds only when the end user's
38
+ * verified JWT matches the one the flow was started for.
39
+ */
40
+ confirm(confirmToken: string): Promise<{
41
+ connectionId: string;
42
+ status: string;
43
+ }>;
44
+ /** The current end user's own Gmail connection, or null if not connected. */
45
+ getConnection(): Promise<EndUserConnection | null>;
46
+ /** Disconnect (revoke) the current end user's own Gmail connection. */
47
+ disconnect(): Promise<{
48
+ status: string;
49
+ }>;
50
+ }
51
+ export declare class Integrations {
52
+ /** Gmail connect surface for end users. */
53
+ readonly gmail: GmailIntegration;
54
+ /** @internal */
55
+ constructor(http: HttpClient, baseUrl: string);
56
+ }
57
+ //# sourceMappingURL=integrations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrations.d.ts","sourceRoot":"","sources":["../../src/integrations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAWnD,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM;IAGlC,OAAO,CAAC,IAAI;IAIZ;;;;;OAKG;IACG,YAAY,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAQhF;;;;OAIG;IACG,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAQtF,6EAA6E;IACvE,aAAa,IAAI,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAgBxD,uEAAuE;IACjE,UAAU,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAMhD;AAED,qBAAa,YAAY;IACvB,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAA;IAEhC,gBAAgB;gBACJ,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM;CAG9C"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Integration connect surface for the host app's end users (SDK delegated
3
+ * identity). Lets a host app drive the OAuth connect flow for the currently
4
+ * authenticated end user (identified by the end-user JWT the client carries),
5
+ * so an agent can act as them.
6
+ *
7
+ * Typical loop, on a `CuratorAuthorizationRequiredError`:
8
+ *
9
+ * const { consentUrl } = await curator.integrations.gmail.startConnect({
10
+ * returnUrl: "https://myapp.com/after-connect",
11
+ * })
12
+ * window.location = consentUrl // Google consent
13
+ * // …user returns to returnUrl?status=connected&confirm_token=… …
14
+ * await curator.integrations.gmail.confirm(confirmToken) // bind
15
+ * await chat.authorize() // resume the paused run
16
+ */
17
+ export class GmailIntegration {
18
+ http;
19
+ baseUrl;
20
+ constructor(http, baseUrl) {
21
+ this.http = http;
22
+ this.baseUrl = baseUrl;
23
+ }
24
+ base() {
25
+ return `${this.baseUrl}/api/integrations/gmail/end-user`;
26
+ }
27
+ /**
28
+ * Begin an end-user Gmail connect. Returns a Google consent URL to open
29
+ * (redirect or popup). `returnUrl` must be an origin your org has
30
+ * allowlisted (Settings → End-user identity); the callback 302s back to it
31
+ * with `?status=connected&confirm_token=…`.
32
+ */
33
+ async startConnect(opts) {
34
+ const res = await this.http.request(`${this.base()}/start`, {
35
+ method: "POST",
36
+ body: { return_url: opts.returnUrl },
37
+ });
38
+ return { consentUrl: res.consent_url };
39
+ }
40
+ /**
41
+ * Finalize the connection after the user returns from consent, passing the
42
+ * `confirm_token` from the return URL. Binds only when the end user's
43
+ * verified JWT matches the one the flow was started for.
44
+ */
45
+ async confirm(confirmToken) {
46
+ const res = await this.http.request(`${this.base()}/confirm`, { method: "POST", body: { confirm_token: confirmToken } });
47
+ return { connectionId: res.data.connection_id, status: res.data.status };
48
+ }
49
+ /** The current end user's own Gmail connection, or null if not connected. */
50
+ async getConnection() {
51
+ const res = await this.http.request(`${this.base()}/connections`);
52
+ if (!res.connection)
53
+ return null;
54
+ const c = res.connection;
55
+ return {
56
+ connectionId: c.connection_id,
57
+ provider: c.provider,
58
+ effectiveEmail: c.effective_email,
59
+ status: c.status,
60
+ scopesGranted: c.scopes_granted,
61
+ installedAt: c.installed_at,
62
+ };
63
+ }
64
+ /** Disconnect (revoke) the current end user's own Gmail connection. */
65
+ async disconnect() {
66
+ const res = await this.http.request(`${this.base()}/disconnect`, {
67
+ method: "POST",
68
+ });
69
+ return { status: res.data.status };
70
+ }
71
+ }
72
+ export class Integrations {
73
+ /** Gmail connect surface for end users. */
74
+ gmail;
75
+ /** @internal */
76
+ constructor(http, baseUrl) {
77
+ this.gmail = new GmailIntegration(http, baseUrl);
78
+ }
79
+ }
80
+ //# sourceMappingURL=integrations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrations.js","sourceRoot":"","sources":["../../src/integrations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAcH,MAAM,OAAO,gBAAgB;IAER;IACA;IAFnB,YACmB,IAAgB,EAChB,OAAe;QADf,SAAI,GAAJ,IAAI,CAAY;QAChB,YAAO,GAAP,OAAO,CAAQ;IAC/B,CAAC;IAEI,IAAI;QACV,OAAO,GAAG,IAAI,CAAC,OAAO,kCAAkC,CAAA;IAC1D,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,IAA2B;QAC5C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAA0B,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE;YACnF,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE;SACrC,CAAC,CAAA;QACF,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE,CAAA;IACxC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,YAAoB;QAChC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CACjC,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,EACxB,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,CAC1D,CAAA;QACD,OAAO,EAAE,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA;IAC1E,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,aAAa;QACjB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CACjC,GAAG,IAAI,CAAC,IAAI,EAAE,cAAc,CAC7B,CAAA;QACD,IAAI,CAAC,GAAG,CAAC,UAAU;YAAE,OAAO,IAAI,CAAA;QAChC,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,CAAA;QACxB,OAAO;YACL,YAAY,EAAE,CAAC,CAAC,aAAa;YAC7B,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,cAAc,EAAE,CAAC,CAAC,eAAe;YACjC,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,aAAa,EAAE,CAAC,CAAC,cAAc;YAC/B,WAAW,EAAE,CAAC,CAAC,YAAY;SAC5B,CAAA;IACH,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,UAAU;QACd,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAA+B,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE;YAC7F,MAAM,EAAE,MAAM;SACf,CAAC,CAAA;QACF,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA;IACpC,CAAC;CACF;AAED,MAAM,OAAO,YAAY;IACvB,2CAA2C;IAClC,KAAK,CAAkB;IAEhC,gBAAgB;IAChB,YAAY,IAAgB,EAAE,OAAe;QAC3C,IAAI,CAAC,KAAK,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAClD,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"streamEventParse.d.ts","sourceRoot":"","sources":["../../src/streamEventParse.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,GAAG,WAAW,GAAG,IAAI,CAuFtE"}
1
+ {"version":3,"file":"streamEventParse.d.ts","sourceRoot":"","sources":["../../src/streamEventParse.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,GAAG,WAAW,GAAG,IAAI,CA0GtE"}
@@ -33,6 +33,18 @@ export function frameToStreamEvent(frame) {
33
33
  capabilityId: String(data.capability_id),
34
34
  durationMs: Number(data.duration_ms ?? 0),
35
35
  };
36
+ case "tool_call.failed":
37
+ return {
38
+ type: "tool_call.failed",
39
+ toolCallId: String(data.tool_call_id),
40
+ toolName: String(data.tool_name),
41
+ capabilityId: String(data.capability_id),
42
+ // Narrow to the known vocabulary rather than trusting the wire. A
43
+ // reason this SDK build has never heard of degrades to `tool_error`
44
+ // (the recoverable, less alarming of the two) instead of widening the
45
+ // union at runtime and breaking an exhaustive switch in user code.
46
+ reason: data.reason === "policy_denied" ? "policy_denied" : "tool_error",
47
+ };
36
48
  case "state":
37
49
  return {
38
50
  type: "state",
@@ -90,6 +102,13 @@ export function frameToStreamEvent(frame) {
90
102
  runId: String(data.run_id ?? ""),
91
103
  conversationId: String(data.conversation_id ?? ""),
92
104
  };
105
+ case "paused_for_authorization":
106
+ return {
107
+ type: "paused_for_authorization",
108
+ authorization: data.authorization,
109
+ runId: String(data.run_id ?? ""),
110
+ conversationId: String(data.conversation_id ?? ""),
111
+ };
93
112
  default:
94
113
  // Unknown event types are dropped so the SDK stays forward-compatible
95
114
  // with future backend additions.
@@ -1 +1 @@
1
- {"version":3,"file":"streamEventParse.js","sourceRoot":"","sources":["../../src/streamEventParse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"streamEventParse.js","sourceRoot":"","sources":["../../src/streamEventParse.ts"],"names":[],"mappings":"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"}
@@ -6,9 +6,10 @@
6
6
  * lives on the server.
7
7
  *
8
8
  * Terminal events (`done`, `error`, `paused_for_approval`) end the
9
- * iterator. `delta` and `tool_call.*` events arrive incrementally.
9
+ * iterator. `delta` and `tool_call.*` events arrive incrementally — note that
10
+ * `tool_call.failed` is NOT terminal: a tool failing does not end the run.
10
11
  */
11
- import type { AgentFailureClass, ApprovalDetails, AssistantMessage } from "./types";
12
+ import type { AgentFailureClass, ApprovalDetails, AuthorizationDetails, AssistantMessage } from "./types";
12
13
  /** Incremental token delta from the agent. */
13
14
  export interface StreamDelta {
14
15
  type: "delta";
@@ -29,6 +30,33 @@ export interface StreamToolCallCompleted {
29
30
  capabilityId: string;
30
31
  durationMs: number;
31
32
  }
33
+ /**
34
+ * A tool call ended without succeeding. Non-terminal — the agent sees the
35
+ * failure and usually keeps working; the run continues.
36
+ *
37
+ * Every `tool_call.started` is followed by exactly one `tool_call.completed`
38
+ * or `tool_call.failed` carrying the same `toolCallId`, so a UI tracking
39
+ * concurrent tool calls can always close the right pending indicator.
40
+ *
41
+ * `reason` is a closed vocabulary, not a message:
42
+ *
43
+ * - `policy_denied` — a policy or budget gate blocked the call. Retrying
44
+ * cannot help. Render something like "This action wasn't allowed."
45
+ * - `tool_error` — the tool ran and failed (bad argument, provider 4xx,
46
+ * timeout). Often correctable. Render something like "The tool couldn't
47
+ * complete."
48
+ *
49
+ * Deliberately no free text: the underlying reason can name internal policies,
50
+ * user ids and exception details, none of which belong on an end-user surface.
51
+ * Treat an unrecognised `reason` as a generic failure — more may be added.
52
+ */
53
+ export interface StreamToolCallFailed {
54
+ type: "tool_call.failed";
55
+ toolCallId: string;
56
+ toolName: string;
57
+ capabilityId: string;
58
+ reason: "policy_denied" | "tool_error";
59
+ }
32
60
  /**
33
61
  * Non-terminal: the agent reported its current structured result state for
34
62
  * this turn. Fires on every turn the agent reports state (including mid-run,
@@ -95,6 +123,13 @@ export interface StreamPausedForApproval {
95
123
  runId: string;
96
124
  conversationId: string;
97
125
  }
98
- export type StreamEvent = StreamDelta | StreamToolCallStarted | StreamToolCallCompleted | StreamState | StreamPlanProgress | StreamDone | StreamError | StreamPausedForApproval;
126
+ /** Terminal: run paused waiting for the end user to connect a provider. */
127
+ export interface StreamPausedForAuthorization {
128
+ type: "paused_for_authorization";
129
+ authorization: AuthorizationDetails;
130
+ runId: string;
131
+ conversationId: string;
132
+ }
133
+ export type StreamEvent = StreamDelta | StreamToolCallStarted | StreamToolCallCompleted | StreamToolCallFailed | StreamState | StreamPlanProgress | StreamDone | StreamError | StreamPausedForApproval | StreamPausedForAuthorization;
99
134
  export declare function isTerminalStreamEvent(e: StreamEvent): boolean;
100
135
  //# sourceMappingURL=streamEvents.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"streamEvents.d.ts","sourceRoot":"","sources":["../../src/streamEvents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAEnF,8CAA8C;AAC9C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb;AAED,iCAAiC;AACjC,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,mBAAmB,CAAA;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,kCAAkC;AAClC,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,qBAAqB,CAAA;IAC3B,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IACxC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,eAAe,CAAA;IACrB,uCAAuC;IACvC,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,YAAY,CAAA;IAC9C,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAA;IACf,qEAAqE;IACrE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,6DAA6D;IAC7D,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,qDAAqD;IACrD,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB;;;;OAIG;IACH,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,oDAAoD;AACpD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,8BAA8B;AAC9B,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,iBAAiB,CAAA;IAC/B,WAAW,EAAE,OAAO,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,sDAAsD;AACtD,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,qBAAqB,CAAA;IAC3B,QAAQ,EAAE,eAAe,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,MAAM,WAAW,GACnB,WAAW,GACX,qBAAqB,GACrB,uBAAuB,GACvB,WAAW,GACX,kBAAkB,GAClB,UAAU,GACV,WAAW,GACX,uBAAuB,CAAA;AAQ3B,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAE7D"}
1
+ {"version":3,"file":"streamEvents.d.ts","sourceRoot":"","sources":["../../src/streamEvents.ts"],"names":[],"mappings":"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"}
@@ -6,12 +6,14 @@
6
6
  * lives on the server.
7
7
  *
8
8
  * Terminal events (`done`, `error`, `paused_for_approval`) end the
9
- * iterator. `delta` and `tool_call.*` events arrive incrementally.
9
+ * iterator. `delta` and `tool_call.*` events arrive incrementally — note that
10
+ * `tool_call.failed` is NOT terminal: a tool failing does not end the run.
10
11
  */
11
12
  const TERMINAL_TYPES = new Set([
12
13
  "done",
13
14
  "error",
14
15
  "paused_for_approval",
16
+ "paused_for_authorization",
15
17
  ]);
16
18
  export function isTerminalStreamEvent(e) {
17
19
  return TERMINAL_TYPES.has(e.type);
@@ -1 +1 @@
1
- {"version":3,"file":"streamEvents.js","sourceRoot":"","sources":["../../src/streamEvents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA4GH,MAAM,cAAc,GAAqC,IAAI,GAAG,CAAC;IAC/D,MAAM;IACN,OAAO;IACP,qBAAqB;CACtB,CAAC,CAAA;AAEF,MAAM,UAAU,qBAAqB,CAAC,CAAc;IAClD,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AACnC,CAAC"}
1
+ {"version":3,"file":"streamEvents.js","sourceRoot":"","sources":["../../src/streamEvents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAuJH,MAAM,cAAc,GAAqC,IAAI,GAAG,CAAC;IAC/D,MAAM;IACN,OAAO;IACP,qBAAqB;IACrB,0BAA0B;CAC3B,CAAC,CAAA;AAEF,MAAM,UAAU,qBAAqB,CAAC,CAAc;IAClD,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AACnC,CAAC"}
@@ -67,6 +67,35 @@ export interface ApprovalDetails {
67
67
  depth: number;
68
68
  };
69
69
  }
70
+ /**
71
+ * Details of a delegated-user connect pause — the agent needs the end user to
72
+ * connect an external provider (e.g. Gmail) before the tool can run. Resolve
73
+ * by sending the user to `connect_url`, then calling `chat.authorize()`.
74
+ */
75
+ export interface AuthorizationDetails {
76
+ authorization_id: string;
77
+ tool_call_id: string;
78
+ capability_id: string;
79
+ tool_name: string;
80
+ /** Provider the user must connect (e.g. "gmail"). */
81
+ provider: string;
82
+ /** Human-readable reason. */
83
+ reason: string;
84
+ /** Deep-link to start the connect flow, when known. */
85
+ connect_url?: string;
86
+ }
87
+ /**
88
+ * An end user's own integration connection (e.g. their connected Gmail), as
89
+ * returned by `curator.integrations.gmail.getConnection()`.
90
+ */
91
+ export interface EndUserConnection {
92
+ connectionId: string;
93
+ provider: string;
94
+ effectiveEmail: string;
95
+ status: string;
96
+ scopesGranted: string[];
97
+ installedAt: string;
98
+ }
70
99
  export interface SendOptions {
71
100
  /** Optional file attachments. */
72
101
  files?: FileAttachment[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,SAAS,GAAG,aAAa,CAAA;AAElE,MAAM,WAAW,gBAAgB,CAAC,SAAS,GAAG,OAAO;IACnD,IAAI,EAAE,WAAW,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf;;;;;;;OAOG;IACH,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAA;IAC1B,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAA;IAChB,2DAA2D;IAC3D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG,WAAW,GAAG,WAAW,CAAA;AAE9E,MAAM,WAAW,cAAc;IAC7B,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,iBAAiB,GACzB,0BAA0B,GAC1B,eAAe,GACf,sBAAsB,GACtB,uBAAuB,GACvB,sBAAsB,GACtB,UAAU,GACV,SAAS,CAAA;AAEb,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,eAAe,CAAC,EAAE;QAChB,QAAQ,EAAE,MAAM,CAAA;QAChB,UAAU,EAAE,MAAM,CAAA;QAClB,SAAS,EAAE,MAAM,CAAA;QACjB,aAAa,EAAE,MAAM,CAAA;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACnC,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;CACF;AAED,MAAM,WAAW,WAAW;IAC1B,iCAAiC;IACjC,KAAK,CAAC,EAAE,cAAc,EAAE,CAAA;IACxB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,mBAAmB,EAAE,CAAA;IAC/B,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,iBAAiB,EAAE,MAAM,CAAA;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE;QACR;;;WAGG;QACH,aAAa,EAAE,OAAO,CAAA;KACvB,CAAA;CACF"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@darqlabs/curator-sdk",
3
- "version": "0.1.5",
3
+ "version": "0.2.0",
4
4
  "description": "Official Curator SDK — talk to your deployed agents from server-side JavaScript or TypeScript.",
5
5
  "license": "MIT",
6
6
  "main": "./dist/cjs/index.js",