@tidblink/server 0.0.0-stage → 0.4.0-rc.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 (116) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +1182 -2
  3. package/dist/audio.d.ts +72 -0
  4. package/dist/audio.d.ts.map +1 -0
  5. package/dist/audio.js +168 -0
  6. package/dist/audio.js.map +1 -0
  7. package/dist/backend-connection.d.ts +89 -0
  8. package/dist/backend-connection.d.ts.map +1 -0
  9. package/dist/backend-connection.js +300 -0
  10. package/dist/backend-connection.js.map +1 -0
  11. package/dist/backend-pool.d.ts +93 -0
  12. package/dist/backend-pool.d.ts.map +1 -0
  13. package/dist/backend-pool.js +419 -0
  14. package/dist/backend-pool.js.map +1 -0
  15. package/dist/client-tool-executor.d.ts +31 -0
  16. package/dist/client-tool-executor.d.ts.map +1 -0
  17. package/dist/client-tool-executor.js +190 -0
  18. package/dist/client-tool-executor.js.map +1 -0
  19. package/dist/client-tools.d.ts +21 -0
  20. package/dist/client-tools.d.ts.map +1 -0
  21. package/dist/client-tools.js +48 -0
  22. package/dist/client-tools.js.map +1 -0
  23. package/dist/connector-callback.d.ts +92 -0
  24. package/dist/connector-callback.d.ts.map +1 -0
  25. package/dist/connector-callback.js +155 -0
  26. package/dist/connector-callback.js.map +1 -0
  27. package/dist/connectors.d.ts +66 -0
  28. package/dist/connectors.d.ts.map +1 -0
  29. package/dist/connectors.js +71 -0
  30. package/dist/connectors.js.map +1 -0
  31. package/dist/control.d.ts +17 -0
  32. package/dist/control.d.ts.map +1 -0
  33. package/dist/control.js +52 -0
  34. package/dist/control.js.map +1 -0
  35. package/dist/errors.d.ts +103 -0
  36. package/dist/errors.d.ts.map +1 -0
  37. package/dist/errors.js +115 -0
  38. package/dist/errors.js.map +1 -0
  39. package/dist/events.d.ts +158 -0
  40. package/dist/events.d.ts.map +1 -0
  41. package/dist/events.js +110 -0
  42. package/dist/events.js.map +1 -0
  43. package/dist/files.d.ts +129 -0
  44. package/dist/files.d.ts.map +1 -0
  45. package/dist/files.js +388 -0
  46. package/dist/files.js.map +1 -0
  47. package/dist/history.d.ts +279 -0
  48. package/dist/history.d.ts.map +1 -0
  49. package/dist/history.js +91 -0
  50. package/dist/history.js.map +1 -0
  51. package/dist/http.d.ts +88 -0
  52. package/dist/http.d.ts.map +1 -0
  53. package/dist/http.js +302 -0
  54. package/dist/http.js.map +1 -0
  55. package/dist/index.d.ts +39 -0
  56. package/dist/index.d.ts.map +1 -0
  57. package/dist/index.js +18 -0
  58. package/dist/index.js.map +1 -0
  59. package/dist/organization.d.ts +87 -0
  60. package/dist/organization.d.ts.map +1 -0
  61. package/dist/organization.js +112 -0
  62. package/dist/organization.js.map +1 -0
  63. package/dist/realtime.d.ts +90 -0
  64. package/dist/realtime.d.ts.map +1 -0
  65. package/dist/realtime.js +111 -0
  66. package/dist/realtime.js.map +1 -0
  67. package/dist/session-connection.d.ts +144 -0
  68. package/dist/session-connection.d.ts.map +1 -0
  69. package/dist/session-connection.js +334 -0
  70. package/dist/session-connection.js.map +1 -0
  71. package/dist/session-send.d.ts +49 -0
  72. package/dist/session-send.d.ts.map +1 -0
  73. package/dist/session-send.js +179 -0
  74. package/dist/session-send.js.map +1 -0
  75. package/dist/session.d.ts +165 -0
  76. package/dist/session.d.ts.map +1 -0
  77. package/dist/session.js +253 -0
  78. package/dist/session.js.map +1 -0
  79. package/dist/skills.d.ts +103 -0
  80. package/dist/skills.d.ts.map +1 -0
  81. package/dist/skills.js +98 -0
  82. package/dist/skills.js.map +1 -0
  83. package/dist/sse.d.ts +10 -0
  84. package/dist/sse.d.ts.map +1 -0
  85. package/dist/sse.js +50 -0
  86. package/dist/sse.js.map +1 -0
  87. package/dist/template-switch.d.ts +51 -0
  88. package/dist/template-switch.d.ts.map +1 -0
  89. package/dist/template-switch.js +81 -0
  90. package/dist/template-switch.js.map +1 -0
  91. package/dist/templates.d.ts +129 -0
  92. package/dist/templates.d.ts.map +1 -0
  93. package/dist/templates.js +92 -0
  94. package/dist/templates.js.map +1 -0
  95. package/dist/turn.d.ts +47 -0
  96. package/dist/turn.d.ts.map +1 -0
  97. package/dist/turn.js +210 -0
  98. package/dist/turn.js.map +1 -0
  99. package/dist/usage.d.ts +278 -0
  100. package/dist/usage.d.ts.map +1 -0
  101. package/dist/usage.js +22 -0
  102. package/dist/usage.js.map +1 -0
  103. package/dist/user.d.ts +55 -0
  104. package/dist/user.d.ts.map +1 -0
  105. package/dist/user.js +52 -0
  106. package/dist/user.js.map +1 -0
  107. package/examples/control-turn.mjs +53 -0
  108. package/examples/create-session.mjs +82 -0
  109. package/examples/http-connector.mjs +127 -0
  110. package/examples/lamp-backend.mjs +175 -0
  111. package/examples/prepare-realtime-connection.mjs +72 -0
  112. package/examples/read-usage.mjs +44 -0
  113. package/examples/send-message.mjs +48 -0
  114. package/examples/submit-audio.mjs +57 -0
  115. package/examples/upload-file.mjs +58 -0
  116. package/package.json +59 -4
package/dist/turn.js ADDED
@@ -0,0 +1,210 @@
1
+ import { OutcomeUnknownError, TiDBLinkApiError, TiDBLinkError, TurnFailedError, TurnInterruptedError, TurnWaitTimeoutError, InputNotAppliedError, } from "./errors.js";
2
+ import { HttpClient, sleep, requireCreationKey, requireKnownKeys, } from "./http.js";
3
+ import { getInteraction, getTurn, requireInteraction, } from "./history.js";
4
+ export const validClarification = (value) => {
5
+ if (typeof value !== "object" || value === null || Array.isArray(value))
6
+ return false;
7
+ const item = value;
8
+ const strings = (items, min, max) => Array.isArray(items) &&
9
+ items.length >= min &&
10
+ items.length <= max &&
11
+ items.every((text) => typeof text === "string" && text.length > 0);
12
+ if (typeof item.prompt !== "string" ||
13
+ !item.prompt ||
14
+ (item.selectionMode !== "single" && item.selectionMode !== "multiple") ||
15
+ !strings(item.answerChoices, 2, item.selectionMode === "single" ? 3 : 8))
16
+ return false;
17
+ if (item.response === undefined)
18
+ return true;
19
+ if (typeof item.response !== "object" ||
20
+ item.response === null ||
21
+ Array.isArray(item.response))
22
+ return false;
23
+ const response = item.response;
24
+ return (Object.keys(response).sort().join(",") === "answers,responseTurnId" &&
25
+ typeof response.responseTurnId === "string" &&
26
+ response.responseTurnId.length > 0 &&
27
+ strings(response.answers, 1, item.selectionMode === "single" ? 1 : 9));
28
+ };
29
+ /** Check message data before dispatch. */
30
+ export function validateMessageData(data) {
31
+ const texts = typeof data.text === "string" ? [data.text] : data.text;
32
+ if (!Array.isArray(texts) ||
33
+ texts.length < 1 ||
34
+ texts.length > 9 ||
35
+ texts.some((t) => typeof t !== "string" || !t))
36
+ throw new TypeError("text must contain 1-9 non-empty values");
37
+ if (data.userFileIds !== undefined &&
38
+ (!Array.isArray(data.userFileIds) ||
39
+ data.userFileIds.length > 20 ||
40
+ data.userFileIds.some((id) => typeof id !== "string" || !id || id.length > 64)))
41
+ throw new TypeError("userFileIds must contain at most 20 non-empty IDs");
42
+ if (data.clarificationSourceTurnId !== undefined &&
43
+ (typeof data.clarificationSourceTurnId !== "string" ||
44
+ !data.clarificationSourceTurnId ||
45
+ data.clarificationSourceTurnId.length > 64))
46
+ throw new TypeError("clarificationSourceTurnId must contain 1-64 characters");
47
+ }
48
+ export const submitMessage = async (http, sessionId, input) => {
49
+ requireKnownKeys(input, [
50
+ "clientEventId",
51
+ "text",
52
+ "userFileIds",
53
+ "clarificationSourceTurnId",
54
+ "billingTag",
55
+ "requestId",
56
+ "signal",
57
+ ], "Message input");
58
+ requireCreationKey(input.clientEventId);
59
+ const { clientEventId, requestId, signal, ...data } = input;
60
+ validateMessageData(data);
61
+ signal?.throwIfAborted();
62
+ try {
63
+ const result = await http.postResponse(`/sessions/${encodeURIComponent(sessionId)}/events`, { type: "agent.session.input.message", clientEventId, data }, {
64
+ ...(requestId ? { requestId } : {}),
65
+ ...(signal ? { signal } : {}),
66
+ outcomeUnknown: true,
67
+ });
68
+ try {
69
+ const receipt = requireInteraction(result.data?.interaction, clientEventId, result.requestId);
70
+ if (receipt.kind !== "message" ||
71
+ !receipt.message ||
72
+ receipt.message.role !== "user")
73
+ throw new TiDBLinkError("Message submission returned a different command receipt");
74
+ return receipt;
75
+ }
76
+ catch (cause) {
77
+ throw new OutcomeUnknownError("Message submission returned no usable receipt; query the original input", { requestId: result.requestId, cause });
78
+ }
79
+ }
80
+ catch (cause) {
81
+ if (!(cause instanceof OutcomeUnknownError))
82
+ throw cause;
83
+ throw new OutcomeUnknownError(cause.message, {
84
+ sessionId,
85
+ inputId: clientEventId,
86
+ ...(cause.requestId ? { requestId: cause.requestId } : {}),
87
+ cause,
88
+ });
89
+ }
90
+ };
91
+ export const validateWaitOptions = (options = {}) => {
92
+ requireKnownKeys(options, ["timeoutMs", "pollIntervalMs", "requestId", "signal"], "Wait options");
93
+ const timeoutMs = options.timeoutMs ?? 60_000;
94
+ const pollIntervalMs = options.pollIntervalMs ?? 250;
95
+ if (!Number.isSafeInteger(timeoutMs) ||
96
+ timeoutMs < 0 ||
97
+ timeoutMs > 2_147_483_647)
98
+ throw new TypeError("timeoutMs must be an integer between 0 and 2147483647");
99
+ if (!Number.isSafeInteger(pollIntervalMs) ||
100
+ pollIntervalMs < 1 ||
101
+ pollIntervalMs > 2_147_483_647)
102
+ throw new TypeError("pollIntervalMs must be an integer between 1 and 2147483647");
103
+ return { timeoutMs, pollIntervalMs };
104
+ };
105
+ export const waitForResult = async (http, sessionId, inputId, options = {}) => {
106
+ const { timeoutMs, pollIntervalMs } = validateWaitOptions(options);
107
+ requireCreationKey(inputId);
108
+ const deadline = new AbortController();
109
+ const timer = setTimeout(() => deadline.abort(), timeoutMs);
110
+ const signal = options.signal
111
+ ? AbortSignal.any([options.signal, deadline.signal])
112
+ : deadline.signal;
113
+ let turnId;
114
+ try {
115
+ while (true) {
116
+ signal.throwIfAborted();
117
+ const interaction = await getInteraction(http, sessionId, inputId, {
118
+ signal,
119
+ ...(options.requestId ? { requestId: options.requestId } : {}),
120
+ });
121
+ turnId = interaction.turnId;
122
+ if ((interaction.kind !== "message" && interaction.kind !== "retry") ||
123
+ (interaction.kind === "message" &&
124
+ (!interaction.message || interaction.message.role !== "user")) ||
125
+ (interaction.kind === "retry" && interaction.message !== null))
126
+ throw new TiDBLinkError("Waiting for a result requires a message or checkpoint retry receipt");
127
+ if (interaction.rejection || interaction.mode === "rejected")
128
+ throw new InputNotAppliedError(sessionId, inputId, turnId);
129
+ if (interaction.result.status !== "running" &&
130
+ !interaction.result.completedAt)
131
+ throw new TiDBLinkError("Original terminal receipt omitted its completion time");
132
+ if (interaction.result.status === "failed")
133
+ throw new TurnFailedError({
134
+ code: "turn_failed",
135
+ message: "The original Turn execution failed",
136
+ turnId,
137
+ sessionId,
138
+ inputId,
139
+ });
140
+ if (interaction.result.status === "interrupted")
141
+ throw new TurnInterruptedError(turnId, undefined, sessionId, inputId);
142
+ if (interaction.result.status === "succeeded") {
143
+ if (interaction.kind === "message" && !interaction.appliedAt)
144
+ throw new InputNotAppliedError(sessionId, inputId, turnId);
145
+ const turn = await getTurn(http, sessionId, turnId, {
146
+ signal,
147
+ ...(options.requestId ? { requestId: options.requestId } : {}),
148
+ });
149
+ const message = turn.assistantMessage;
150
+ if (turn.executor === "realtime_model" ||
151
+ turn.status !== "succeeded" ||
152
+ !interaction.result.completedAt ||
153
+ turn.completedAt !== interaction.result.completedAt ||
154
+ !message ||
155
+ message.role !== "assistant" ||
156
+ typeof message.id !== "string" ||
157
+ !message.id ||
158
+ typeof message.content !== "string" ||
159
+ message.turnId !== turnId ||
160
+ message.sessionId !== sessionId ||
161
+ (turn.clarificationItem !== undefined &&
162
+ !validClarification(turn.clarificationItem)))
163
+ throw new TiDBLinkError("Saved Turn does not match the original successful execution");
164
+ const identity = {
165
+ sessionId,
166
+ inputId,
167
+ turnId,
168
+ messageId: message.id,
169
+ text: message.content,
170
+ interaction,
171
+ };
172
+ return turn.clarificationItem
173
+ ? {
174
+ ...identity,
175
+ type: "clarification",
176
+ clarification: turn.clarificationItem,
177
+ }
178
+ : { ...identity, type: "answer" };
179
+ }
180
+ await sleep(pollIntervalMs, signal);
181
+ }
182
+ }
183
+ catch (cause) {
184
+ if (cause instanceof TurnFailedError ||
185
+ cause instanceof TurnInterruptedError ||
186
+ cause instanceof InputNotAppliedError ||
187
+ cause instanceof TiDBLinkApiError)
188
+ throw cause;
189
+ const ErrorClass = deadline.signal.aborted && !options.signal?.aborted
190
+ ? TurnWaitTimeoutError
191
+ : OutcomeUnknownError;
192
+ throw new ErrorClass(ErrorClass === TurnWaitTimeoutError
193
+ ? "Local wait timed out; query or wait for the original input"
194
+ : "Local wait stopped before the original result was established", {
195
+ sessionId,
196
+ inputId,
197
+ ...(turnId ? { turnId } : {}),
198
+ ...(cause instanceof TiDBLinkError && cause.requestId
199
+ ? { requestId: cause.requestId }
200
+ : options.requestId
201
+ ? { requestId: options.requestId }
202
+ : {}),
203
+ cause,
204
+ });
205
+ }
206
+ finally {
207
+ clearTimeout(timer);
208
+ }
209
+ };
210
+ //# sourceMappingURL=turn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turn.js","sourceRoot":"","sources":["../src/turn.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,278 @@
1
+ import type { RequestOptions } from "./organization.js";
2
+ import type { BillingTag } from "./session.js";
3
+ export type BillingUsageFactKind = "llm" | "sandbox" | "web_search";
4
+ export type BillingCostBearer = "platform" | "customer" | "unknown";
5
+ export type BillingPrincipalBucket = "human" | "user_api_key" | "organization_machine" | "organization_user";
6
+ export type BillingAttributionKind = "user_level" | "system" | "unattributed";
7
+ export type BillingLlmRequestPurpose = "agent_turn" | "compaction" | "auto_title" | "manual_title" | "asr" | "voice_realtime";
8
+ export type LlmPricingStatus = "estimated" | "unknown";
9
+ export type LlmPricingContextTier = "short" | "long" | "all_context" | "unknown";
10
+ export type SandboxUsageStatus = "running" | "closed" | "close_failed" | "abandoned";
11
+ export type BillingUsageEvidenceStatus = "complete" | "partial" | "missing" | "unsupported";
12
+ export type BillingValuationStatus = "priced" | "unpriced";
13
+ export interface BillingValuationSummary {
14
+ status: "complete" | "incomplete";
15
+ pricedUsageCount: number;
16
+ unpricedUsageCount: number;
17
+ pricedCostMicros: number;
18
+ }
19
+ export interface BillingValuationBreakdown extends BillingValuationSummary {
20
+ byKind: Partial<Record<BillingUsageFactKind, BillingValuationSummary>>;
21
+ }
22
+ export interface BillingFactCompletenessCounters {
23
+ status: "complete" | "incomplete";
24
+ projectedFactCount: number;
25
+ pendingIntentCount: number;
26
+ indeterminateIntentCount: number;
27
+ failedIntentCount: number;
28
+ }
29
+ export interface BillingFactCompleteness extends BillingFactCompletenessCounters {
30
+ byKind: Partial<Record<BillingUsageFactKind, BillingFactCompletenessCounters>>;
31
+ }
32
+ export interface UsageTotals {
33
+ /** The single currency of this deployment. */
34
+ currency: "USD" | "CNY";
35
+ /** Platform-borne priced cost; other bearers remain in costByBearer. */
36
+ totalCostMicros: number;
37
+ llmCostMicros: number;
38
+ sandboxCostMicros: number;
39
+ webSearchCostMicros: number;
40
+ costByBearer: Record<BillingCostBearer, BillingBearerCostTotals>;
41
+ organizationMachineCostMicros: number;
42
+ llmRequestCount: number;
43
+ unknownLlmRequestCount: number;
44
+ sandboxUsageCount: number;
45
+ webSearchRequestCount: number;
46
+ unsettledCount: number;
47
+ inputTokens: number;
48
+ cachedInputTokens: number;
49
+ outputTokens: number;
50
+ unpricedLlmTokens: {
51
+ inputTokens: number;
52
+ cachedInputTokens: number;
53
+ outputTokens: number;
54
+ };
55
+ sandboxDurationSeconds: number;
56
+ valuation: BillingValuationBreakdown;
57
+ attribution: BillingAttributionBreakdown;
58
+ }
59
+ export interface BillingBearerCostTotals {
60
+ totalCostMicros: number;
61
+ llmCostMicros: number;
62
+ sandboxCostMicros: number;
63
+ webSearchCostMicros: number;
64
+ }
65
+ export interface BillingAttributionCounters {
66
+ status: "complete" | "incomplete";
67
+ classifiedUsageCount: number;
68
+ userLevelUsageCount: number;
69
+ systemUsageCount: number;
70
+ unattributedUsageCount: number;
71
+ }
72
+ export interface BillingAttributionBreakdown extends BillingAttributionCounters {
73
+ byKind: Partial<Record<BillingUsageFactKind, BillingAttributionCounters>>;
74
+ }
75
+ export interface LlmUsageAggregate {
76
+ costBearer: BillingCostBearer;
77
+ provider: string;
78
+ model: string;
79
+ requestPurpose: BillingLlmRequestPurpose;
80
+ principalBucket: BillingPrincipalBucket;
81
+ requestCount: number;
82
+ unknownRequestCount: number;
83
+ costMicros: number;
84
+ inputTokens: number;
85
+ cachedInputTokens: number;
86
+ outputTokens: number;
87
+ valuation: BillingValuationSummary;
88
+ }
89
+ export interface SandboxUsageAggregate {
90
+ costBearer: BillingCostBearer;
91
+ provider: "e2b" | "tencent_ags" | "run9";
92
+ profileId: string;
93
+ specKey: string;
94
+ principalBucket: BillingPrincipalBucket;
95
+ usageCount: number;
96
+ settledUsageCount: number;
97
+ unsettledCount: number;
98
+ costMicros: number;
99
+ durationSeconds: number;
100
+ valuation: BillingValuationSummary;
101
+ }
102
+ export interface WebSearchUsageAggregate {
103
+ costBearer: BillingCostBearer;
104
+ provider: "exa";
105
+ searchType: "auto";
106
+ principalBucket: BillingPrincipalBucket;
107
+ requestCount: number;
108
+ requestedResultCount: number;
109
+ returnedResultCount: number;
110
+ costMicros: number;
111
+ valuation: BillingValuationSummary;
112
+ }
113
+ export type BillingUsageSeriesInterval = "hour" | "day" | "week" | "month";
114
+ export interface BillingUsageSeriesRange {
115
+ from: string;
116
+ to: string;
117
+ interval: BillingUsageSeriesInterval;
118
+ }
119
+ interface BillingUsageSeriesBreakdownCommon {
120
+ provider: string;
121
+ costMicros: number;
122
+ truncatedCombinations?: number;
123
+ }
124
+ export interface BillingUsageSeriesLlmBreakdown extends BillingUsageSeriesBreakdownCommon {
125
+ kind: "llm";
126
+ model?: string;
127
+ usage: {
128
+ inputTokens: number;
129
+ cachedInputTokens: number;
130
+ outputTokens: number;
131
+ };
132
+ }
133
+ export interface BillingUsageSeriesSandboxBreakdown extends BillingUsageSeriesBreakdownCommon {
134
+ kind: "sandbox";
135
+ usage: {
136
+ durationSeconds: number;
137
+ usageCount: number;
138
+ };
139
+ }
140
+ export interface BillingUsageSeriesWebSearchBreakdown extends BillingUsageSeriesBreakdownCommon {
141
+ kind: "web_search";
142
+ usage: {
143
+ requestCount: number;
144
+ };
145
+ }
146
+ export type BillingUsageSeriesBreakdown = BillingUsageSeriesLlmBreakdown | BillingUsageSeriesSandboxBreakdown | BillingUsageSeriesWebSearchBreakdown;
147
+ export type BillingUsageSeriesBreakdownGroups = Record<BillingCostBearer, BillingUsageSeriesBreakdown[]>;
148
+ export interface BillingUsageSeriesPoint {
149
+ bucketStart: string;
150
+ costMicros: number;
151
+ llmCostMicros: number;
152
+ sandboxCostMicros: number;
153
+ webSearchCostMicros: number;
154
+ unknownLlmRequestCount: number;
155
+ unsettledCount: number;
156
+ breakdown: BillingUsageSeriesBreakdownGroups;
157
+ valuation: BillingValuationSummary;
158
+ }
159
+ export interface OrganizationUserUsageSummary {
160
+ range: BillingUsageSeriesRange;
161
+ factCompleteness: BillingFactCompleteness;
162
+ totals: UsageTotals;
163
+ llm: {
164
+ aggregates: LlmUsageAggregate[];
165
+ };
166
+ sandbox: {
167
+ aggregates: SandboxUsageAggregate[];
168
+ };
169
+ webSearch: {
170
+ aggregates: WebSearchUsageAggregate[];
171
+ };
172
+ series: BillingUsageSeriesPoint[];
173
+ }
174
+ interface OrganizationUsageCommon {
175
+ id: string;
176
+ occurredAt: string;
177
+ sessionId: string;
178
+ /** Null for `voice_realtime` usage. */
179
+ turnId: string | null;
180
+ /** The Realtime connection of `voice_realtime` usage; null otherwise. */
181
+ realtimeConnectionId?: string | null;
182
+ agentRunId: string | null;
183
+ /** The Template admitted for the usage's Turn; null when it has none. */
184
+ agentTemplateId: string | null;
185
+ attributionKind: BillingAttributionKind;
186
+ costMicros: number | null;
187
+ currency: string | null;
188
+ pricingVersion: string;
189
+ pricingEffectiveAt: string;
190
+ valuationStatus: BillingValuationStatus;
191
+ valuationReason: string | null;
192
+ rateCardDigest: string | null;
193
+ billingTag: BillingTag | null;
194
+ }
195
+ export interface OrganizationLlmUsage extends OrganizationUsageCommon {
196
+ kind: "llm";
197
+ realtimeConnectionId: string | null;
198
+ /**
199
+ * For `voice_realtime` usage, whether its Realtime connection was still live
200
+ * when read; a live connection reports usage in interim items. Null otherwise.
201
+ */
202
+ realtimeConnectionLive: boolean | null;
203
+ operationId: string | null;
204
+ requestPurpose: BillingLlmRequestPurpose;
205
+ provider: string;
206
+ model: string;
207
+ observedResponseModel: string | null;
208
+ inputTokens: number;
209
+ cachedInputTokens: number;
210
+ uncachedInputTokens: number;
211
+ cacheReadTokens: number;
212
+ cacheWrite5mTokens: number;
213
+ cacheWrite1hTokens: number;
214
+ cacheWriteUnspecifiedTokens: number;
215
+ outputTokens: number;
216
+ inputCostMicros: number | null;
217
+ cachedInputCostMicros: number | null;
218
+ cacheWrite5mCostMicros: number | null;
219
+ cacheWrite1hCostMicros: number | null;
220
+ cacheWriteUnspecifiedCostMicros: number | null;
221
+ outputCostMicros: number | null;
222
+ pricingStatus: LlmPricingStatus;
223
+ estimateBasis: "public_list_placeholder" | "contract" | null;
224
+ contextTier: LlmPricingContextTier;
225
+ }
226
+ export interface OrganizationSandboxUsage extends OrganizationUsageCommon {
227
+ kind: "sandbox";
228
+ turnId: string;
229
+ provider: "e2b" | "tencent_ags" | "run9";
230
+ profileId: string;
231
+ specKey: string;
232
+ startedAt: string;
233
+ endedAt: string | null;
234
+ durationSeconds: number | null;
235
+ status: SandboxUsageStatus;
236
+ }
237
+ export interface OrganizationWebSearchUsage extends OrganizationUsageCommon {
238
+ kind: "web_search";
239
+ turnId: string;
240
+ operationId: string;
241
+ provider: "exa";
242
+ searchType: "auto";
243
+ requestCount: 1;
244
+ requestedResultCount: number;
245
+ returnedResultCount: number | null;
246
+ contentTextRequested: true;
247
+ requestOutcome: "succeeded" | "failed" | "aborted";
248
+ usageEvidenceStatus: BillingUsageEvidenceStatus;
249
+ }
250
+ export type OrganizationUsageItem = OrganizationLlmUsage | OrganizationSandboxUsage | OrganizationWebSearchUsage;
251
+ export interface OrganizationUserUsageDetails {
252
+ items: OrganizationUsageItem[];
253
+ nextCursor: string | null;
254
+ factCompleteness: BillingFactCompleteness;
255
+ }
256
+ export interface OrganizationUserUsageOptions extends RequestOptions {
257
+ /** Exact inclusive UTC timestamp with milliseconds; maximum range is 31 days. */
258
+ from: string;
259
+ /** Exact exclusive UTC timestamp with milliseconds. */
260
+ to: string;
261
+ interval?: BillingUsageSeriesInterval;
262
+ /** Only usage admitted under this Template. */
263
+ templateId?: string;
264
+ tagKey?: string;
265
+ tagValue?: string;
266
+ }
267
+ export interface OrganizationUserUsageDetailsOptions extends Omit<OrganizationUserUsageOptions, "interval"> {
268
+ kind?: BillingUsageFactKind;
269
+ limit?: number;
270
+ cursor?: string;
271
+ }
272
+ export declare const usageQuery: (options: object, allowed: readonly string[]) => string;
273
+ export declare const userUsagePath: (userId: string, options: {
274
+ from: string;
275
+ to: string;
276
+ }) => string;
277
+ export {};
278
+ //# sourceMappingURL=usage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,SAAS,GAAG,YAAY,CAAC;AACpE,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;AACpE,MAAM,MAAM,sBAAsB,GAC9B,OAAO,GACP,cAAc,GACd,sBAAsB,GACtB,mBAAmB,CAAC;AACxB,MAAM,MAAM,sBAAsB,GAC9B,YAAY,GACZ,QAAQ,GACR,cAAc,CAAC;AACnB,MAAM,MAAM,wBAAwB,GAChC,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,cAAc,GACd,KAAK,GACL,gBAAgB,CAAC;AACrB,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,SAAS,CAAC;AACvD,MAAM,MAAM,qBAAqB,GAC7B,OAAO,GACP,MAAM,GACN,aAAa,GACb,SAAS,CAAC;AACd,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,QAAQ,GACR,cAAc,GACd,WAAW,CAAC;AAChB,MAAM,MAAM,0BAA0B,GAClC,UAAU,GACV,SAAS,GACT,SAAS,GACT,aAAa,CAAC;AAClB,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,UAAU,CAAC;AAC3D,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,UAAU,GAAG,YAAY,CAAC;IAClC,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AACD,MAAM,WAAW,yBAA0B,SAAQ,uBAAuB;IACxE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,CAAC,CAAC;CACxE;AACD,MAAM,WAAW,+BAA+B;IAC9C,MAAM,EAAE,UAAU,GAAG,YAAY,CAAC;IAClC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,wBAAwB,EAAE,MAAM,CAAC;IACjC,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AACD,MAAM,WAAW,uBAAwB,SAAQ,+BAA+B;IAC9E,MAAM,EAAE,OAAO,CACb,MAAM,CAAC,oBAAoB,EAAE,+BAA+B,CAAC,CAC9D,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,8CAA8C;IAC9C,QAAQ,EAAE,KAAK,GAAG,KAAK,CAAC;IACxB,wEAAwE;IACxE,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC,iBAAiB,EAAE,uBAAuB,CAAC,CAAC;IACjE,6BAA6B,EAAE,MAAM,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,sBAAsB,EAAE,MAAM,CAAC;IAC/B,SAAS,EAAE,yBAAyB,CAAC;IACrC,WAAW,EAAE,2BAA2B,CAAC;CAC1C;AAED,MAAM,WAAW,uBAAuB;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,UAAU,GAAG,YAAY,CAAC;IAClC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,2BAA4B,SAAQ,0BAA0B;IAC7E,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,0BAA0B,CAAC,CAAC,CAAC;CAC3E;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,wBAAwB,CAAC;IACzC,eAAe,EAAE,sBAAsB,CAAC;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,uBAAuB,CAAC;CACpC;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,EAAE,KAAK,GAAG,aAAa,GAAG,MAAM,CAAC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,sBAAsB,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,uBAAuB,CAAC;CACpC;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,EAAE,KAAK,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,sBAAsB,CAAC;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,uBAAuB,CAAC;CACpC;AAED,MAAM,MAAM,0BAA0B,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3E,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,0BAA0B,CAAC;CACtC;AAED,UAAU,iCAAiC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,8BAA+B,SAAQ,iCAAiC;IACvF,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE;QACL,WAAW,EAAE,MAAM,CAAC;QACpB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,kCAAmC,SAAQ,iCAAiC;IAC3F,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE;QACL,eAAe,EAAE,MAAM,CAAC;QACxB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,oCAAqC,SAAQ,iCAAiC;IAC7F,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,MAAM,2BAA2B,GACnC,8BAA8B,GAC9B,kCAAkC,GAClC,oCAAoC,CAAC;AAEzC,MAAM,MAAM,iCAAiC,GAAG,MAAM,CACpD,iBAAiB,EACjB,2BAA2B,EAAE,CAC9B,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,iCAAiC,CAAC;IAC7C,SAAS,EAAE,uBAAuB,CAAC;CACpC;AAED,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,uBAAuB,CAAC;IAC/B,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,MAAM,EAAE,WAAW,CAAC;IACpB,GAAG,EAAE;QAAE,UAAU,EAAE,iBAAiB,EAAE,CAAA;KAAE,CAAC;IACzC,OAAO,EAAE;QAAE,UAAU,EAAE,qBAAqB,EAAE,CAAA;KAAE,CAAC;IACjD,SAAS,EAAE;QAAE,UAAU,EAAE,uBAAuB,EAAE,CAAA;KAAE,CAAC;IACrD,MAAM,EAAE,uBAAuB,EAAE,CAAC;CACnC;AAED,UAAU,uBAAuB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,yEAAyE;IACzE,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,yEAAyE;IACzE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,EAAE,sBAAsB,CAAC;IACxC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,sBAAsB,CAAC;IACxC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAqB,SAAQ,uBAAuB;IACnE,IAAI,EAAE,KAAK,CAAC;IACZ,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC;;;OAGG;IACH,sBAAsB,EAAE,OAAO,GAAG,IAAI,CAAC;IACvC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,wBAAwB,CAAC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2BAA2B,EAAE,MAAM,CAAC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,+BAA+B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,EAAE,gBAAgB,CAAC;IAChC,aAAa,EAAE,yBAAyB,GAAG,UAAU,GAAG,IAAI,CAAC;IAC7D,WAAW,EAAE,qBAAqB,CAAC;CACpC;AAED,MAAM,WAAW,wBAAyB,SAAQ,uBAAuB;IACvE,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,GAAG,aAAa,GAAG,MAAM,CAAC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED,MAAM,WAAW,0BAA2B,SAAQ,uBAAuB;IACzE,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,CAAC,CAAC;IAChB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,oBAAoB,EAAE,IAAI,CAAC;IAC3B,cAAc,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;IACnD,mBAAmB,EAAE,0BAA0B,CAAC;CACjD;AAED,MAAM,MAAM,qBAAqB,GAC7B,oBAAoB,GACpB,wBAAwB,GACxB,0BAA0B,CAAC;AAE/B,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAC/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gBAAgB,EAAE,uBAAuB,CAAC;CAC3C;AAED,MAAM,WAAW,4BAA6B,SAAQ,cAAc;IAClE,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,0BAA0B,CAAC;IACtC,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AACD,MAAM,WAAW,mCAAoC,SAAQ,IAAI,CAC/D,4BAA4B,EAC5B,UAAU,CACX;IACC,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,UAAU,GACrB,SAAS,MAAM,EACf,SAAS,SAAS,MAAM,EAAE,KACzB,MAaF,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,QAAQ,MAAM,EACd,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,KACpC,MAaF,CAAC"}
package/dist/usage.js ADDED
@@ -0,0 +1,22 @@
1
+ import { requireKnownKeys, setTemplateFilter } from "./http.js";
2
+ export const usageQuery = (options, allowed) => {
3
+ requireKnownKeys(options, [...allowed, "signal", "requestId"], "Usage options");
4
+ const query = new URLSearchParams();
5
+ for (const [key, value] of Object.entries(options))
6
+ if (key !== "templateId" && allowed.includes(key) && value !== undefined)
7
+ query.set(key, String(value));
8
+ if (allowed.includes("templateId"))
9
+ setTemplateFilter(query, options.templateId);
10
+ return query.size ? `?${query}` : "";
11
+ };
12
+ export const userUsagePath = (userId, options) => {
13
+ if (typeof userId !== "string" || !/^[a-z0-9_-]{1,64}$/.test(userId))
14
+ throw new TypeError("Organization usage requires an explicit User ID");
15
+ if (typeof options?.from !== "string" ||
16
+ !options.from ||
17
+ typeof options.to !== "string" ||
18
+ !options.to)
19
+ throw new TypeError("Organization usage requires from and to UTC timestamps");
20
+ return `/users/${encodeURIComponent(userId)}/billing/usage`;
21
+ };
22
+ //# sourceMappingURL=usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage.js","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AA2UhE,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,OAAe,EACf,OAA0B,EAClB,EAAE;IACV,gBAAgB,CACd,OAAO,EACP,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,EACnC,eAAe,CAChB,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;IACpC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;QAChD,IAAI,GAAG,KAAK,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,SAAS;YACtE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAClC,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;QAChC,iBAAiB,CAAC,KAAK,EAAG,OAAoC,CAAC,UAAU,CAAC,CAAC;IAC7E,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACvC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,MAAc,EACd,OAAqC,EAC7B,EAAE;IACV,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC;QAClE,MAAM,IAAI,SAAS,CAAC,iDAAiD,CAAC,CAAC;IACzE,IACE,OAAO,OAAO,EAAE,IAAI,KAAK,QAAQ;QACjC,CAAC,OAAO,CAAC,IAAI;QACb,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ;QAC9B,CAAC,OAAO,CAAC,EAAE;QAEX,MAAM,IAAI,SAAS,CACjB,wDAAwD,CACzD,CAAC;IACJ,OAAO,UAAU,kBAAkB,CAAC,MAAM,CAAC,gBAAgB,CAAC;AAC9D,CAAC,CAAC"}
package/dist/user.d.ts ADDED
@@ -0,0 +1,55 @@
1
+ import { UserFiles } from "./files.js";
2
+ import { HttpClient, type ListOptions } from "./http.js";
3
+ import type { RequestOptions } from "./organization.js";
4
+ import { type CreateSessionOptions, Session } from "./session.js";
5
+ import type { RealtimeModelCatalog } from "./realtime.js";
6
+ export interface AgentTemplate {
7
+ agentTemplateId: string;
8
+ displayName: string;
9
+ description: string;
10
+ contentDigest: string;
11
+ }
12
+ export interface AgentTemplatePage {
13
+ templates: AgentTemplate[];
14
+ hasMore: boolean;
15
+ nextCursor: string | null;
16
+ }
17
+ export interface AgentModelCatalog {
18
+ defaultModel: string;
19
+ models: {
20
+ model: string;
21
+ label: string;
22
+ availability: "available" | "provider_unconfigured";
23
+ }[];
24
+ organizationDefaultModel: string;
25
+ effectiveDefaultModel: string;
26
+ organizationAllowedModels: string[];
27
+ effectiveAllowedModels: string[];
28
+ }
29
+ export interface SessionListOptions extends ListOptions {
30
+ /** Only Sessions currently on this Template. */
31
+ templateId?: string;
32
+ }
33
+ export interface SessionPage {
34
+ sessions: Session[];
35
+ hasMore: boolean;
36
+ nextCursor: string | null;
37
+ }
38
+ /** Ordinary End User resources under the caller's authority. */
39
+ export declare class EndUserClient {
40
+ #private;
41
+ get files(): UserFiles;
42
+ constructor(http: HttpClient);
43
+ /**
44
+ * Create a Session from an explicit Template. The Session freezes the
45
+ * Template recipe, digest and these creation options.
46
+ */
47
+ createSession(options: CreateSessionOptions): Promise<Session>;
48
+ listAgentTemplates(options?: ListOptions): Promise<AgentTemplatePage>;
49
+ listModels(options?: RequestOptions): Promise<AgentModelCatalog>;
50
+ listRealtimeModels(options?: RequestOptions): Promise<RealtimeModelCatalog>;
51
+ listSessions(options?: SessionListOptions): Promise<SessionPage>;
52
+ session(id: string): Session;
53
+ getSession(id: string, options?: RequestOptions): Promise<Session>;
54
+ }
55
+ //# sourceMappingURL=user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../src/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAEL,UAAU,EAIV,KAAK,WAAW,EACjB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAEL,KAAK,oBAAoB,EACzB,OAAO,EAER,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE1D,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,WAAW,GAAG,uBAAuB,CAAC;KACrD,EAAE,CAAC;IACJ,wBAAwB,EAAE,MAAM,CAAC;IACjC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,yBAAyB,EAAE,MAAM,EAAE,CAAC;IACpC,sBAAsB,EAAE,MAAM,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,gEAAgE;AAChE,qBAAa,aAAa;;IAIxB,IAAI,KAAK,IAAI,SAAS,CAErB;gBAEW,IAAI,EAAE,UAAU;IAK5B;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAI9D,kBAAkB,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAOrE,UAAU,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAMhE,kBAAkB,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAIrE,YAAY,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC;IAuBtE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAG5B,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;CAGnE"}
package/dist/user.js ADDED
@@ -0,0 +1,52 @@
1
+ import { UserFiles } from "./files.js";
2
+ import { requestOptions, HttpClient, paginationQuery, requireKnownKeys, setTemplateFilter, } from "./http.js";
3
+ import { createSession, Session, } from "./session.js";
4
+ /** Ordinary End User resources under the caller's authority. */
5
+ export class EndUserClient {
6
+ #http;
7
+ #files;
8
+ get files() {
9
+ return this.#files;
10
+ }
11
+ constructor(http) {
12
+ this.#http = http;
13
+ this.#files = new UserFiles(http);
14
+ }
15
+ /**
16
+ * Create a Session from an explicit Template. The Session freezes the
17
+ * Template recipe, digest and these creation options.
18
+ */
19
+ createSession(options) {
20
+ return createSession(this.#http, options);
21
+ }
22
+ listAgentTemplates(options) {
23
+ return this.#http.get(`/agent-templates${paginationQuery(options)}`, options);
24
+ }
25
+ listModels(options) {
26
+ if (options)
27
+ requireKnownKeys(options, ["signal", "requestId"], "Model list options");
28
+ return this.#http.get("/agent-models", options);
29
+ }
30
+ listRealtimeModels(options) {
31
+ return this.#http.get("/realtime-models", requestOptions(options));
32
+ }
33
+ async listSessions(options) {
34
+ if (options)
35
+ requireKnownKeys(options, ["templateId", "limit", "cursor", "signal", "requestId"], "Session list options");
36
+ const { templateId, ...page } = options ?? {};
37
+ const query = new URLSearchParams(paginationQuery(page));
38
+ setTemplateFilter(query, templateId);
39
+ const response = await this.#http.get(`/sessions${query.size ? `?${query}` : ""}`, options);
40
+ return {
41
+ ...response,
42
+ sessions: response.sessions.map((record) => new Session(this.#http, record.sessionId, record)),
43
+ };
44
+ }
45
+ session(id) {
46
+ return new Session(this.#http, id);
47
+ }
48
+ getSession(id, options) {
49
+ return this.session(id).refresh(options);
50
+ }
51
+ }
52
+ //# sourceMappingURL=user.js.map