@darqlabs/curator-sdk 0.1.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 (76) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +313 -0
  3. package/dist/cjs/client.d.ts +174 -0
  4. package/dist/cjs/client.d.ts.map +1 -0
  5. package/dist/cjs/client.js +417 -0
  6. package/dist/cjs/client.js.map +1 -0
  7. package/dist/cjs/errors.d.ts +91 -0
  8. package/dist/cjs/errors.d.ts.map +1 -0
  9. package/dist/cjs/errors.js +131 -0
  10. package/dist/cjs/errors.js.map +1 -0
  11. package/dist/cjs/files.d.ts +66 -0
  12. package/dist/cjs/files.d.ts.map +1 -0
  13. package/dist/cjs/files.js +86 -0
  14. package/dist/cjs/files.js.map +1 -0
  15. package/dist/cjs/http.d.ts +92 -0
  16. package/dist/cjs/http.d.ts.map +1 -0
  17. package/dist/cjs/http.js +232 -0
  18. package/dist/cjs/http.js.map +1 -0
  19. package/dist/cjs/index.d.ts +10 -0
  20. package/dist/cjs/index.d.ts.map +1 -0
  21. package/dist/cjs/index.js +22 -0
  22. package/dist/cjs/index.js.map +1 -0
  23. package/dist/cjs/sse.d.ts +20 -0
  24. package/dist/cjs/sse.d.ts.map +1 -0
  25. package/dist/cjs/sse.js +89 -0
  26. package/dist/cjs/sse.js.map +1 -0
  27. package/dist/cjs/streamEventParse.d.ts +13 -0
  28. package/dist/cjs/streamEventParse.d.ts.map +1 -0
  29. package/dist/cjs/streamEventParse.js +81 -0
  30. package/dist/cjs/streamEventParse.js.map +1 -0
  31. package/dist/cjs/streamEvents.d.ts +58 -0
  32. package/dist/cjs/streamEvents.d.ts.map +1 -0
  33. package/dist/cjs/streamEvents.js +22 -0
  34. package/dist/cjs/streamEvents.js.map +1 -0
  35. package/dist/cjs/types.d.ts +93 -0
  36. package/dist/cjs/types.d.ts.map +1 -0
  37. package/dist/cjs/types.js +10 -0
  38. package/dist/cjs/types.js.map +1 -0
  39. package/dist/esm/client.d.ts +174 -0
  40. package/dist/esm/client.d.ts.map +1 -0
  41. package/dist/esm/client.js +411 -0
  42. package/dist/esm/client.js.map +1 -0
  43. package/dist/esm/errors.d.ts +91 -0
  44. package/dist/esm/errors.d.ts.map +1 -0
  45. package/dist/esm/errors.js +119 -0
  46. package/dist/esm/errors.js.map +1 -0
  47. package/dist/esm/files.d.ts +66 -0
  48. package/dist/esm/files.d.ts.map +1 -0
  49. package/dist/esm/files.js +82 -0
  50. package/dist/esm/files.js.map +1 -0
  51. package/dist/esm/http.d.ts +92 -0
  52. package/dist/esm/http.d.ts.map +1 -0
  53. package/dist/esm/http.js +228 -0
  54. package/dist/esm/http.js.map +1 -0
  55. package/dist/esm/index.d.ts +10 -0
  56. package/dist/esm/index.d.ts.map +1 -0
  57. package/dist/esm/index.js +5 -0
  58. package/dist/esm/index.js.map +1 -0
  59. package/dist/esm/package.json +3 -0
  60. package/dist/esm/sse.d.ts +20 -0
  61. package/dist/esm/sse.d.ts.map +1 -0
  62. package/dist/esm/sse.js +86 -0
  63. package/dist/esm/sse.js.map +1 -0
  64. package/dist/esm/streamEventParse.d.ts +13 -0
  65. package/dist/esm/streamEventParse.d.ts.map +1 -0
  66. package/dist/esm/streamEventParse.js +78 -0
  67. package/dist/esm/streamEventParse.js.map +1 -0
  68. package/dist/esm/streamEvents.d.ts +58 -0
  69. package/dist/esm/streamEvents.d.ts.map +1 -0
  70. package/dist/esm/streamEvents.js +19 -0
  71. package/dist/esm/streamEvents.js.map +1 -0
  72. package/dist/esm/types.d.ts +93 -0
  73. package/dist/esm/types.d.ts.map +1 -0
  74. package/dist/esm/types.js +9 -0
  75. package/dist/esm/types.js.map +1 -0
  76. package/package.json +48 -0
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Stable mapping from SSE frames emitted by `POST /messages?stream=true`
3
+ * to the public `StreamEvent` discriminated union.
4
+ *
5
+ * Extracted from the client so each branch can be unit-tested in
6
+ * isolation — bug-prone because it lives at the contract boundary
7
+ * between backend and SDK and silently mis-mapped fields would surface
8
+ * as confusing UX, not loud errors.
9
+ */
10
+ import type { SseFrame } from "./sse.js";
11
+ import type { StreamEvent } from "./streamEvents.js";
12
+ export declare function frameToStreamEvent(frame: SseFrame): StreamEvent | null;
13
+ //# sourceMappingURL=streamEventParse.d.ts.map
@@ -0,0 +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,CAkEtE"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Stable mapping from SSE frames emitted by `POST /messages?stream=true`
3
+ * to the public `StreamEvent` discriminated union.
4
+ *
5
+ * Extracted from the client so each branch can be unit-tested in
6
+ * isolation — bug-prone because it lives at the contract boundary
7
+ * between backend and SDK and silently mis-mapped fields would surface
8
+ * as confusing UX, not loud errors.
9
+ */
10
+ export function frameToStreamEvent(frame) {
11
+ let data;
12
+ try {
13
+ data = frame.data ? JSON.parse(frame.data) : {};
14
+ }
15
+ catch {
16
+ return null;
17
+ }
18
+ switch (frame.event) {
19
+ case "delta":
20
+ return { type: "delta", text: String(data.text ?? "") };
21
+ case "tool_call.started":
22
+ return {
23
+ type: "tool_call.started",
24
+ toolCallId: String(data.tool_call_id),
25
+ toolName: String(data.tool_name),
26
+ capabilityId: String(data.capability_id),
27
+ };
28
+ case "tool_call.completed":
29
+ return {
30
+ type: "tool_call.completed",
31
+ toolCallId: String(data.tool_call_id),
32
+ toolName: String(data.tool_name),
33
+ capabilityId: String(data.capability_id),
34
+ durationMs: Number(data.duration_ms ?? 0),
35
+ };
36
+ case "done": {
37
+ const m = data.message;
38
+ return {
39
+ type: "done",
40
+ runId: String(data.run_id ?? ""),
41
+ conversationId: String(data.conversation_id ?? ""),
42
+ message: m
43
+ ? {
44
+ role: "assistant",
45
+ content: String(m.content ?? ""),
46
+ sequence: Number(m.sequence ?? 0),
47
+ stepId: m.step_id ?? null,
48
+ createdAt: String(m.created_at ?? ""),
49
+ runId: String(data.run_id ?? ""),
50
+ conversationId: String(data.conversation_id ?? ""),
51
+ }
52
+ : null,
53
+ };
54
+ }
55
+ case "error":
56
+ return {
57
+ type: "error",
58
+ failureClass: data.failure_class,
59
+ isPermanent: !!data.is_permanent,
60
+ message: String(data.message ?? ""),
61
+ stepId: data.step_id ?? null,
62
+ runId: String(data.run_id ?? ""),
63
+ conversationId: String(data.conversation_id ?? ""),
64
+ };
65
+ case "paused_for_approval":
66
+ return {
67
+ type: "paused_for_approval",
68
+ approval: data.approval,
69
+ runId: String(data.run_id ?? ""),
70
+ conversationId: String(data.conversation_id ?? ""),
71
+ };
72
+ default:
73
+ // Unknown event types are dropped so the SDK stays forward-compatible
74
+ // with future backend additions.
75
+ return null;
76
+ }
77
+ }
78
+ //# sourceMappingURL=streamEventParse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamEventParse.js","sourceRoot":"","sources":["../../src/streamEventParse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * SDK-facing stream event types — what `chat.stream(...)` yields.
3
+ *
4
+ * Mirrors the SSE frames the backend emits on `POST /messages?stream=true`.
5
+ * Stable across backend refactors; the bus-event → stream-event mapping
6
+ * lives on the server.
7
+ *
8
+ * Terminal events (`done`, `error`, `paused_for_approval`) end the
9
+ * iterator. `delta` and `tool_call.*` events arrive incrementally.
10
+ */
11
+ import type { AgentFailureClass, ApprovalDetails, AssistantMessage } from "./types";
12
+ /** Incremental token delta from the agent. */
13
+ export interface StreamDelta {
14
+ type: "delta";
15
+ text: string;
16
+ }
17
+ /** Agent started a tool call. */
18
+ export interface StreamToolCallStarted {
19
+ type: "tool_call.started";
20
+ toolCallId: string;
21
+ toolName: string;
22
+ capabilityId: string;
23
+ }
24
+ /** Agent finished a tool call. */
25
+ export interface StreamToolCallCompleted {
26
+ type: "tool_call.completed";
27
+ toolCallId: string;
28
+ toolName: string;
29
+ capabilityId: string;
30
+ durationMs: number;
31
+ }
32
+ /** Terminal: assistant finished, no more tokens. */
33
+ export interface StreamDone {
34
+ type: "done";
35
+ message: AssistantMessage | null;
36
+ runId: string;
37
+ conversationId: string;
38
+ }
39
+ /** Terminal: agent failed. */
40
+ export interface StreamError {
41
+ type: "error";
42
+ failureClass: AgentFailureClass;
43
+ isPermanent: boolean;
44
+ message: string;
45
+ stepId: string | null;
46
+ runId: string;
47
+ conversationId: string;
48
+ }
49
+ /** Terminal: run paused waiting for HITL approval. */
50
+ export interface StreamPausedForApproval {
51
+ type: "paused_for_approval";
52
+ approval: ApprovalDetails;
53
+ runId: string;
54
+ conversationId: string;
55
+ }
56
+ export type StreamEvent = StreamDelta | StreamToolCallStarted | StreamToolCallCompleted | StreamDone | StreamError | StreamPausedForApproval;
57
+ export declare function isTerminalStreamEvent(e: StreamEvent): boolean;
58
+ //# sourceMappingURL=streamEvents.d.ts.map
@@ -0,0 +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,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,UAAU,GACV,WAAW,GACX,uBAAuB,CAAA;AAQ3B,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAE7D"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * SDK-facing stream event types — what `chat.stream(...)` yields.
3
+ *
4
+ * Mirrors the SSE frames the backend emits on `POST /messages?stream=true`.
5
+ * Stable across backend refactors; the bus-event → stream-event mapping
6
+ * lives on the server.
7
+ *
8
+ * Terminal events (`done`, `error`, `paused_for_approval`) end the
9
+ * iterator. `delta` and `tool_call.*` events arrive incrementally.
10
+ */
11
+ const TERMINAL_TYPES = new Set([
12
+ "done",
13
+ "error",
14
+ "paused_for_approval",
15
+ ]);
16
+ export function isTerminalStreamEvent(e) {
17
+ return TERMINAL_TYPES.has(e.type);
18
+ }
19
+ //# sourceMappingURL=streamEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamEvents.js","sourceRoot":"","sources":["../../src/streamEvents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA8DH,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"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Shapes exposed by the SDK.
3
+ *
4
+ * These mirror the backend response shapes but are intentionally
5
+ * decoupled from `@darq/shared-types` so the SDK can be published
6
+ * without dragging the entire internal type surface along with it.
7
+ */
8
+ export type Environment = "production" | "staging" | "development";
9
+ export interface AssistantMessage {
10
+ role: "assistant";
11
+ content: string;
12
+ /** Monotonic per-conversation sequence number. */
13
+ sequence: number;
14
+ /** The agent step that produced this message, if known. */
15
+ stepId: string | null;
16
+ /** ISO-8601 timestamp. */
17
+ createdAt: string;
18
+ /** Run that produced this message. */
19
+ runId: string;
20
+ conversationId: string;
21
+ }
22
+ export interface UserMessage {
23
+ role: "user";
24
+ content: string;
25
+ sequence: number;
26
+ createdAt: string;
27
+ }
28
+ export interface ToolMessage {
29
+ role: "tool";
30
+ content: string;
31
+ sequence: number;
32
+ toolCallId: string | null;
33
+ createdAt: string;
34
+ }
35
+ export type ConversationMessage = AssistantMessage | UserMessage | ToolMessage;
36
+ export interface FileAttachment {
37
+ /** Path of the artifact in object storage. */
38
+ storageKey: string;
39
+ mimeType: string;
40
+ filename: string;
41
+ size: number;
42
+ /** Artifact id, when one has been recorded. */
43
+ artifactId?: string;
44
+ }
45
+ export type AgentFailureClass = "provider_quota_exhausted" | "provider_auth" | "provider_bad_request" | "provider_rate_limited" | "provider_unavailable" | "internal" | "unknown";
46
+ export interface ApprovalDetails {
47
+ approval_id: string;
48
+ tool_call_id: string;
49
+ capability_id: string;
50
+ tool_name: string;
51
+ arguments: Record<string, unknown>;
52
+ nested_approval?: {
53
+ agent_id: string;
54
+ agent_name: string;
55
+ tool_name: string;
56
+ capability_id: string;
57
+ arguments?: Record<string, unknown>;
58
+ depth: number;
59
+ };
60
+ }
61
+ export interface SendOptions {
62
+ /** Optional file attachments. */
63
+ files?: FileAttachment[];
64
+ /** Override the SDK-default wait timeout for this call. */
65
+ timeoutMs?: number;
66
+ }
67
+ export interface HistoryOptions {
68
+ /** Max messages to return (server-capped at 500). */
69
+ limit?: number;
70
+ /** Pagination cursor — pass the oldest sequence returned previously. */
71
+ beforeSequence?: number;
72
+ }
73
+ export interface HistoryPage {
74
+ messages: ConversationMessage[];
75
+ hasMore: boolean;
76
+ oldestSequence: number | null;
77
+ totalMessageCount: number;
78
+ }
79
+ /**
80
+ * Read-only, per-deployment client config. Resolved server-side from the
81
+ * owning org's subscription — the SDK never decides these itself. Fetched
82
+ * once on widget mount via `agent(...).config()`.
83
+ */
84
+ export interface DeploymentConfig {
85
+ branding: {
86
+ /**
87
+ * When true, the org's tier entitles it to run the widget without the
88
+ * "Powered by Curator" footer. `false` for tiers without white-label.
89
+ */
90
+ hidePoweredBy: boolean;
91
+ };
92
+ }
93
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +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;IAC/B,IAAI,EAAE,WAAW,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Shapes exposed by the SDK.
3
+ *
4
+ * These mirror the backend response shapes but are intentionally
5
+ * decoupled from `@darq/shared-types` so the SDK can be published
6
+ * without dragging the entire internal type surface along with it.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "@darqlabs/curator-sdk",
3
+ "version": "0.1.0",
4
+ "description": "Official Curator SDK — talk to your deployed agents from server-side JavaScript or TypeScript.",
5
+ "license": "MIT",
6
+ "main": "./dist/cjs/index.js",
7
+ "module": "./dist/esm/index.js",
8
+ "types": "./dist/cjs/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/cjs/index.d.ts",
12
+ "import": "./dist/esm/index.js",
13
+ "require": "./dist/cjs/index.js",
14
+ "default": "./dist/cjs/index.js"
15
+ }
16
+ },
17
+ "files": [
18
+ "dist",
19
+ "README.md",
20
+ "LICENSE"
21
+ ],
22
+ "sideEffects": false,
23
+ "publishConfig": {
24
+ "access": "public"
25
+ },
26
+ "engines": {
27
+ "node": ">=18"
28
+ },
29
+ "devDependencies": {
30
+ "@types/jest": "^30.0.0",
31
+ "jest": "^30.3.0",
32
+ "ts-jest": "^29.4.9",
33
+ "typescript": "^5.9.3"
34
+ },
35
+ "keywords": [
36
+ "darq",
37
+ "ai",
38
+ "agents",
39
+ "sdk"
40
+ ],
41
+ "scripts": {
42
+ "clean": "rm -rf dist .tsbuild",
43
+ "build": "tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && node ./scripts/write-esm-marker.cjs",
44
+ "typecheck": "tsc --noEmit",
45
+ "test": "jest",
46
+ "test:coverage": "jest --coverage"
47
+ }
48
+ }