@tidblink/server 0.3.0-rc.0 → 0.4.0-rc.1

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 (124) hide show
  1. package/README.md +565 -368
  2. package/dist/audio.d.ts +9 -0
  3. package/dist/audio.d.ts.map +1 -1
  4. package/dist/audio.js +6 -1
  5. package/dist/audio.js.map +1 -1
  6. package/dist/backend-connection.d.ts +91 -0
  7. package/dist/backend-connection.d.ts.map +1 -0
  8. package/dist/backend-connection.js +314 -0
  9. package/dist/backend-connection.js.map +1 -0
  10. package/dist/backend-pool.d.ts +104 -0
  11. package/dist/backend-pool.d.ts.map +1 -0
  12. package/dist/backend-pool.js +483 -0
  13. package/dist/backend-pool.js.map +1 -0
  14. package/dist/client-tool-executor.d.ts +31 -0
  15. package/dist/client-tool-executor.d.ts.map +1 -0
  16. package/dist/client-tool-executor.js +190 -0
  17. package/dist/client-tool-executor.js.map +1 -0
  18. package/dist/client-tools.d.ts +0 -25
  19. package/dist/client-tools.d.ts.map +1 -1
  20. package/dist/client-tools.js +1 -67
  21. package/dist/client-tools.js.map +1 -1
  22. package/dist/connector-callback.d.ts +92 -0
  23. package/dist/connector-callback.d.ts.map +1 -0
  24. package/dist/connector-callback.js +155 -0
  25. package/dist/connector-callback.js.map +1 -0
  26. package/dist/connectors.d.ts +66 -0
  27. package/dist/connectors.d.ts.map +1 -0
  28. package/dist/connectors.js +71 -0
  29. package/dist/connectors.js.map +1 -0
  30. package/dist/control.js +1 -1
  31. package/dist/control.js.map +1 -1
  32. package/dist/errors.d.ts +34 -11
  33. package/dist/errors.d.ts.map +1 -1
  34. package/dist/errors.js +36 -8
  35. package/dist/errors.js.map +1 -1
  36. package/dist/events.d.ts +158 -0
  37. package/dist/events.d.ts.map +1 -0
  38. package/dist/events.js +110 -0
  39. package/dist/events.js.map +1 -0
  40. package/dist/files.js +9 -9
  41. package/dist/files.js.map +1 -1
  42. package/dist/history.d.ts +38 -1
  43. package/dist/history.d.ts.map +1 -1
  44. package/dist/history.js +1 -1
  45. package/dist/history.js.map +1 -1
  46. package/dist/http.d.ts +28 -4
  47. package/dist/http.d.ts.map +1 -1
  48. package/dist/http.js +44 -24
  49. package/dist/http.js.map +1 -1
  50. package/dist/index.d.ts +26 -13
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +10 -4
  53. package/dist/index.js.map +1 -1
  54. package/dist/organization.d.ts +45 -28
  55. package/dist/organization.d.ts.map +1 -1
  56. package/dist/organization.js +67 -73
  57. package/dist/organization.js.map +1 -1
  58. package/dist/realtime.d.ts +0 -1
  59. package/dist/realtime.d.ts.map +1 -1
  60. package/dist/realtime.js +0 -1
  61. package/dist/realtime.js.map +1 -1
  62. package/dist/session-connection.d.ts +155 -0
  63. package/dist/session-connection.d.ts.map +1 -0
  64. package/dist/session-connection.js +394 -0
  65. package/dist/session-connection.js.map +1 -0
  66. package/dist/session-send.d.ts +49 -0
  67. package/dist/session-send.d.ts.map +1 -0
  68. package/dist/session-send.js +179 -0
  69. package/dist/session-send.js.map +1 -0
  70. package/dist/session.d.ts +37 -8
  71. package/dist/session.d.ts.map +1 -1
  72. package/dist/session.js +56 -29
  73. package/dist/session.js.map +1 -1
  74. package/dist/skills.d.ts +103 -0
  75. package/dist/skills.d.ts.map +1 -0
  76. package/dist/skills.js +98 -0
  77. package/dist/skills.js.map +1 -0
  78. package/dist/sse.d.ts +5 -2
  79. package/dist/sse.d.ts.map +1 -1
  80. package/dist/sse.js +7 -2
  81. package/dist/sse.js.map +1 -1
  82. package/dist/template-switch.d.ts +51 -0
  83. package/dist/template-switch.d.ts.map +1 -0
  84. package/dist/template-switch.js +81 -0
  85. package/dist/template-switch.js.map +1 -0
  86. package/dist/templates.d.ts +129 -0
  87. package/dist/templates.d.ts.map +1 -0
  88. package/dist/templates.js +92 -0
  89. package/dist/templates.js.map +1 -0
  90. package/dist/turn.d.ts +4 -0
  91. package/dist/turn.d.ts.map +1 -1
  92. package/dist/turn.js +17 -13
  93. package/dist/turn.js.map +1 -1
  94. package/dist/usage.d.ts +13 -197
  95. package/dist/usage.d.ts.map +1 -1
  96. package/dist/usage.js +5 -3
  97. package/dist/usage.js.map +1 -1
  98. package/dist/user.d.ts +10 -51
  99. package/dist/user.d.ts.map +1 -1
  100. package/dist/user.js +18 -105
  101. package/dist/user.js.map +1 -1
  102. package/examples/control-turn.mjs +9 -4
  103. package/examples/create-session.mjs +37 -24
  104. package/examples/http-connector.mjs +127 -0
  105. package/examples/lamp-backend.mjs +175 -0
  106. package/examples/prepare-realtime-connection.mjs +18 -7
  107. package/examples/read-usage.mjs +7 -25
  108. package/examples/send-message.mjs +9 -4
  109. package/examples/submit-audio.mjs +9 -4
  110. package/examples/upload-file.mjs +9 -4
  111. package/package.json +7 -13
  112. package/dist/progress.d.ts +0 -34
  113. package/dist/progress.d.ts.map +0 -1
  114. package/dist/progress.js +0 -154
  115. package/dist/progress.js.map +0 -1
  116. package/dist/schedulers.d.ts +0 -129
  117. package/dist/schedulers.d.ts.map +0 -1
  118. package/dist/schedulers.js +0 -91
  119. package/dist/schedulers.js.map +0 -1
  120. package/examples/answer-client-tool.mjs +0 -69
  121. package/examples/observe-message.mjs +0 -44
  122. package/examples/organization-session.mjs +0 -66
  123. package/examples/provision-user.mjs +0 -83
  124. package/examples/schedule-task.mjs +0 -67
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tidblink/server",
3
- "version": "0.3.0-rc.0",
3
+ "version": "0.4.0-rc.1",
4
4
  "description": "Official TypeScript SDK for TiDB Link",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -8,41 +8,35 @@
8
8
  "node": ">=22.12"
9
9
  },
10
10
  "tidbLinkApiVersion": "0.0.1",
11
- "tidbLinkRevision": "882287809f91d9a3fdf60537460431d9f0fc23e7",
12
- "tidbLinkOpenApiSha256": "906515e4c8d38c5ac9fce6390d9d646220b2d06100fbcb64e180419899989a5b",
11
+ "tidbLinkRevision": "4305ef67daebf23c416badf806217a7c11dcef37",
12
+ "tidbLinkOpenApiSha256": "6f5ff6f025eef80fbd9d5b80fb798e5db159aaa006e7d34866e9c3b6843dfe58",
13
13
  "exports": {
14
14
  ".": {
15
15
  "types": "./dist/index.d.ts",
16
16
  "import": "./dist/index.js"
17
17
  },
18
- "./examples/provision-user.mjs": "./examples/provision-user.mjs",
19
18
  "./examples/prepare-realtime-connection.mjs": "./examples/prepare-realtime-connection.mjs",
20
19
  "./examples/create-session.mjs": "./examples/create-session.mjs",
21
20
  "./examples/send-message.mjs": "./examples/send-message.mjs",
22
21
  "./examples/control-turn.mjs": "./examples/control-turn.mjs",
23
- "./examples/observe-message.mjs": "./examples/observe-message.mjs",
24
22
  "./examples/read-usage.mjs": "./examples/read-usage.mjs",
25
23
  "./examples/upload-file.mjs": "./examples/upload-file.mjs",
26
- "./examples/schedule-task.mjs": "./examples/schedule-task.mjs",
27
- "./examples/answer-client-tool.mjs": "./examples/answer-client-tool.mjs",
28
24
  "./examples/submit-audio.mjs": "./examples/submit-audio.mjs",
29
- "./examples/organization-session.mjs": "./examples/organization-session.mjs"
25
+ "./examples/http-connector.mjs": "./examples/http-connector.mjs",
26
+ "./examples/lamp-backend.mjs": "./examples/lamp-backend.mjs"
30
27
  },
31
28
  "files": [
32
29
  "dist",
33
30
  "README.md",
34
- "examples/provision-user.mjs",
35
31
  "examples/prepare-realtime-connection.mjs",
36
32
  "examples/create-session.mjs",
37
33
  "examples/send-message.mjs",
38
34
  "examples/control-turn.mjs",
39
- "examples/observe-message.mjs",
40
35
  "examples/read-usage.mjs",
41
36
  "examples/upload-file.mjs",
42
- "examples/schedule-task.mjs",
43
- "examples/answer-client-tool.mjs",
44
37
  "examples/submit-audio.mjs",
45
- "examples/organization-session.mjs"
38
+ "examples/http-connector.mjs",
39
+ "examples/lamp-backend.mjs"
46
40
  ],
47
41
  "scripts": {
48
42
  "build": "node --eval \"require('node:fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.json",
@@ -1,34 +0,0 @@
1
- import { type TurnResult } from "./turn.js";
2
- import { HttpClient } from "./http.js";
3
- import type { RequestOptions } from "./organization.js";
4
- export interface SessionEventsOptions extends RequestOptions {
5
- /** Opaque position from a previously received event. No automatic replay on refusal. */
6
- cursor?: string;
7
- }
8
- /** Display events remain provisional; use the original interaction to establish its result. */
9
- export interface SessionEvent {
10
- cursor: string;
11
- type: string;
12
- sessionId: string;
13
- turnId: string | null;
14
- createdAt: string;
15
- data: Record<string, unknown>;
16
- }
17
- export declare function sessionEvents(http: HttpClient, sessionId: string, options?: SessionEventsOptions): AsyncGenerator<SessionEvent>;
18
- export interface ObserveTurnOptions extends SessionEventsOptions {
19
- /** Local observation deadline only; default 60 seconds. */
20
- timeoutMs?: number;
21
- }
22
- export type TurnObservation = {
23
- type: "draft" | "progress";
24
- text: string;
25
- event: SessionEvent;
26
- } | {
27
- type: "event";
28
- event: SessionEvent;
29
- } | {
30
- type: "result";
31
- result: TurnResult;
32
- };
33
- export declare function observeTurn(http: HttpClient, sessionId: string, inputId: string, options?: ObserveTurnOptions): AsyncGenerator<TurnObservation>;
34
- //# sourceMappingURL=progress.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"AACA,OAAO,EAAsC,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAShF,OAAO,EAAE,UAAU,EAAwC,MAAM,WAAW,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,wFAAwF;IACxF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,+FAA+F;AAC/F,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,wBAAuB,aAAa,CAClC,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,oBAAyB,GACjC,cAAc,CAAC,YAAY,CAAC,CA+D9B;AAED,MAAM,WAAW,kBAAmB,SAAQ,oBAAoB;IAC9D,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,OAAO,GAAG,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C,wBAAuB,WAAW,CAChC,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,kBAAuB,GAC/B,cAAc,CAAC,eAAe,CAAC,CAwHjC"}
package/dist/progress.js DELETED
@@ -1,154 +0,0 @@
1
- import { getInteraction } from "./history.js";
2
- import { waitForResult, validateWaitOptions } from "./turn.js";
3
- import { TiDBLinkError, TiDBLinkApiError, TurnFailedError, TurnInterruptedError, InputNotAppliedError, ObservationStoppedError, } from "./errors.js";
4
- import { HttpClient, requireKnownKeys, requireCreationKey } from "./http.js";
5
- import { decodeSse } from "./sse.js";
6
- export async function* sessionEvents(http, sessionId, options = {}) {
7
- requireKnownKeys(options, ["cursor", "signal", "requestId"], "Event subscription options");
8
- if (options.cursor !== undefined &&
9
- (typeof options.cursor !== "string" || !options.cursor))
10
- throw new TypeError("cursor must be a non-empty opaque event position");
11
- const query = new URLSearchParams({ stream: "true" });
12
- if (options.cursor !== undefined)
13
- query.set("cursor", options.cursor);
14
- const { response, requestId } = await http.rawResponse(`/api/v1/user/sessions/${encodeURIComponent(sessionId)}/events?${query}`, {
15
- headers: { accept: "text/event-stream" },
16
- ...(options.signal ? { signal: options.signal } : {}),
17
- ...(options.requestId ? { requestId: options.requestId } : {}),
18
- });
19
- if (response.headers
20
- .get("content-type")
21
- ?.split(";", 1)[0]
22
- ?.trim()
23
- .toLowerCase() !== "text/event-stream" ||
24
- !response.body) {
25
- await response.body?.cancel();
26
- throw new TiDBLinkError("Session subscription returned no event stream", {
27
- requestId,
28
- });
29
- }
30
- for await (const frame of decodeSse(response.body)) {
31
- let value;
32
- try {
33
- value = JSON.parse(frame.data);
34
- }
35
- catch (cause) {
36
- throw new TiDBLinkError("Session subscription returned invalid event JSON", { requestId, cause });
37
- }
38
- const event = value;
39
- if (!frame.id ||
40
- !event ||
41
- typeof event.type !== "string" ||
42
- !event.type ||
43
- event.sessionId !== sessionId ||
44
- (event.turnId !== null && typeof event.turnId !== "string") ||
45
- typeof event.createdAt !== "string" ||
46
- typeof event.data !== "object" ||
47
- event.data === null ||
48
- Array.isArray(event.data))
49
- throw new TiDBLinkError("Session subscription returned an invalid event envelope", { requestId });
50
- yield { ...event, cursor: frame.id };
51
- }
52
- }
53
- export async function* observeTurn(http, sessionId, inputId, options = {}) {
54
- requireKnownKeys(options, ["cursor", "signal", "requestId", "timeoutMs"], "Turn observation options");
55
- requireCreationKey(inputId);
56
- const { timeoutMs } = validateWaitOptions(options.timeoutMs === undefined ? {} : { timeoutMs: options.timeoutMs });
57
- const deadline = new AbortController();
58
- const timer = setTimeout(() => deadline.abort(), timeoutMs);
59
- const signal = options.signal
60
- ? AbortSignal.any([options.signal, deadline.signal])
61
- : deadline.signal;
62
- const request = {
63
- signal,
64
- ...(options.requestId ? { requestId: options.requestId } : {}),
65
- };
66
- let cursor = options.cursor;
67
- let turnId;
68
- try {
69
- const receipt = await getInteraction(http, sessionId, inputId, request);
70
- turnId = receipt.turnId;
71
- if (receipt.kind !== "message" && receipt.kind !== "retry")
72
- throw new TiDBLinkError("Turn observation requires a message or checkpoint retry receipt");
73
- if (receipt.rejection ||
74
- receipt.mode === "rejected" ||
75
- receipt.result.status !== "running") {
76
- yield {
77
- type: "result",
78
- result: await waitForResult(http, sessionId, inputId, {
79
- ...request,
80
- timeoutMs,
81
- }),
82
- };
83
- return;
84
- }
85
- for await (const event of sessionEvents(http, sessionId, {
86
- ...request,
87
- ...(cursor ? { cursor } : {}),
88
- })) {
89
- cursor = event.cursor;
90
- if (event.turnId !== turnId)
91
- continue;
92
- const payload = event.data.payload;
93
- if (event.type === "agent.session.turn.output_text.snapshot" ||
94
- event.type === "agent.session.turn.progress") {
95
- if (typeof payload !== "object" ||
96
- payload === null ||
97
- typeof payload.text !== "string")
98
- throw new TiDBLinkError("Session text event omitted its complete text");
99
- yield {
100
- type: event.type === "agent.session.turn.output_text.snapshot"
101
- ? "draft"
102
- : "progress",
103
- text: payload.text,
104
- event,
105
- };
106
- }
107
- else
108
- yield { type: "event", event };
109
- if (event.data.event === "turn_finished" ||
110
- event.data.event === "turn_error") {
111
- // Replayed terminal events may belong to another execution of this Turn.
112
- const current = await getInteraction(http, sessionId, inputId, request);
113
- if (current.result.status === "running")
114
- continue;
115
- yield {
116
- type: "result",
117
- result: await waitForResult(http, sessionId, inputId, {
118
- ...request,
119
- timeoutMs,
120
- }),
121
- };
122
- return;
123
- }
124
- }
125
- throw new TiDBLinkError("Session event subscription ended before the original result was established");
126
- }
127
- catch (cause) {
128
- if (cause instanceof TiDBLinkApiError ||
129
- cause instanceof TurnFailedError ||
130
- cause instanceof TurnInterruptedError ||
131
- cause instanceof InputNotAppliedError)
132
- throw cause;
133
- throw new ObservationStoppedError(deadline.signal.aborted && !options.signal?.aborted
134
- ? "Local observation timed out; recover the original input"
135
- : "Observation stopped; recover the original input", {
136
- sessionId,
137
- inputId,
138
- ...(turnId ? { turnId } : {}),
139
- ...(cursor ? { cursor } : {}),
140
- ...(cause instanceof TiDBLinkError && cause.requestId
141
- ? { requestId: cause.requestId }
142
- : options.requestId
143
- ? { requestId: options.requestId }
144
- : {}),
145
- timedOut: deadline.signal.aborted && !options.signal?.aborted,
146
- cause,
147
- });
148
- }
149
- finally {
150
- clearTimeout(timer);
151
- deadline.abort();
152
- }
153
- }
154
- //# sourceMappingURL=progress.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"progress.js","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"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"}
@@ -1,129 +0,0 @@
1
- import { HttpClient, type ListOptions } from "./http.js";
2
- import type { RequestOptions } from "./organization.js";
3
- export type SchedulerSchedule = {
4
- kind: "once";
5
- runAt: string;
6
- after?: never;
7
- } | {
8
- kind: "once";
9
- after: string;
10
- runAt?: never;
11
- } | {
12
- kind: "cron";
13
- cronExpr: string;
14
- timezone: string;
15
- };
16
- export type SchedulerDelivery = {
17
- target: "new_session";
18
- } | {
19
- target: "bound_session";
20
- sessionId: string;
21
- };
22
- export type CreateSchedulerInput = RequestOptions & {
23
- idempotencyKey: string;
24
- title: string;
25
- prompt: string;
26
- schedule: SchedulerSchedule;
27
- validFrom?: string | null;
28
- validUntil?: string | null;
29
- } & ({
30
- agentId: string;
31
- delivery?: {
32
- target: "new_session";
33
- };
34
- } | {
35
- agentId?: never;
36
- delivery: {
37
- target: "bound_session";
38
- sessionId: string;
39
- };
40
- });
41
- export interface UpdateSchedulerInput {
42
- title?: string;
43
- prompt?: string;
44
- agentId?: string;
45
- delivery?: SchedulerDelivery;
46
- schedule?: SchedulerSchedule;
47
- enabled?: boolean;
48
- validFrom?: string | null;
49
- validUntil?: string | null;
50
- snoozeUntil?: string;
51
- }
52
- export interface Scheduler {
53
- schedulerId: string;
54
- ownerUserId: string;
55
- organizationId: string;
56
- agentId: string;
57
- title: string;
58
- prompt: string;
59
- delivery: {
60
- target: "new_session" | "bound_session";
61
- sessionId: string | null;
62
- };
63
- schedule: {
64
- kind: "once" | "cron";
65
- cronExpr: string | null;
66
- runAt: string | null;
67
- timezone: string;
68
- };
69
- validFrom: string | null;
70
- validUntil: string | null;
71
- /** Deleted records are returned only by Organization-owned list history. */
72
- status: "enabled" | "disabled" | "deleted";
73
- nextFireAt: string | null;
74
- lastFiredAt: string | null;
75
- revision: number;
76
- createdAt: string;
77
- updatedAt: string;
78
- }
79
- export interface SchedulerResponse {
80
- scheduler: Scheduler;
81
- etag: string;
82
- }
83
- export interface SchedulerPage {
84
- schedulers: Scheduler[];
85
- nextCursor: string | null;
86
- }
87
- export interface SchedulerListOptions extends ListOptions {
88
- status?: "enabled" | "disabled";
89
- }
90
- export interface OrganizationSchedulerListOptions extends ListOptions {
91
- status?: Scheduler["status"];
92
- }
93
- export interface SchedulerMutationOptions extends RequestOptions {
94
- ifMatch: string;
95
- }
96
- export interface SchedulerFire {
97
- fireId: string;
98
- schedulerId: string;
99
- scheduledFor: string;
100
- executionStatus: "pending" | "completed" | "failed";
101
- execution: {
102
- agentId: string;
103
- prompt: string;
104
- delivery: Scheduler["delivery"];
105
- };
106
- result: {
107
- sessionId: string | null;
108
- turnId: string | null;
109
- messageId: string | null;
110
- failureCode: string | null;
111
- };
112
- createdAt: string;
113
- settledAt: string | null;
114
- }
115
- export interface SchedulerFirePage {
116
- fires: SchedulerFire[];
117
- nextCursor: string | null;
118
- }
119
- export declare class UserSchedulers<TListOptions extends OrganizationSchedulerListOptions = SchedulerListOptions> {
120
- #private;
121
- constructor(http: HttpClient);
122
- create(input: CreateSchedulerInput): Promise<SchedulerResponse>;
123
- get(schedulerId: string, options?: RequestOptions): Promise<SchedulerResponse>;
124
- update(schedulerId: string, input: UpdateSchedulerInput, options: SchedulerMutationOptions): Promise<SchedulerResponse>;
125
- delete(schedulerId: string, options: SchedulerMutationOptions): Promise<void>;
126
- list(options?: TListOptions): Promise<SchedulerPage>;
127
- fires(schedulerId: string, options?: ListOptions): Promise<SchedulerFirePage>;
128
- }
129
- //# sourceMappingURL=schedulers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schedulers.d.ts","sourceRoot":"","sources":["../src/schedulers.ts"],"names":[],"mappings":"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"}
@@ -1,91 +0,0 @@
1
- import { requestOptions, HttpClient, requireKnownKeys, paginationQuery, } from "./http.js";
2
- import { OutcomeUnknownError, TiDBLinkError } from "./errors.js";
3
- const requireMatch = (options) => {
4
- requireKnownKeys(options, ["ifMatch", "signal", "requestId"], "Scheduler mutation options");
5
- if (typeof options.ifMatch !== "string" || !options.ifMatch)
6
- throw new TypeError("Scheduler mutation requires the previously read ifMatch ETag");
7
- };
8
- const path = (id) => `/api/v1/schedulers/${encodeURIComponent(id)}`;
9
- const receipt = (result, mutation = true) => {
10
- const scheduler = result.data?.scheduler;
11
- if (!scheduler?.schedulerId ||
12
- !result.etag ||
13
- !Number.isSafeInteger(scheduler.revision)) {
14
- const ErrorClass = mutation ? OutcomeUnknownError : TiDBLinkError;
15
- throw new ErrorClass("Scheduler response omitted its identity or ETag; read the original Scheduler before changing it", { requestId: result.requestId });
16
- }
17
- return { scheduler, etag: result.etag };
18
- };
19
- export class UserSchedulers {
20
- #http;
21
- constructor(http) {
22
- this.#http = http;
23
- }
24
- async create(input) {
25
- requireKnownKeys(input, [
26
- "idempotencyKey",
27
- "title",
28
- "prompt",
29
- "schedule",
30
- "agentId",
31
- "delivery",
32
- "validFrom",
33
- "validUntil",
34
- "requestId",
35
- "signal",
36
- ], "Scheduler creation");
37
- if (typeof input.idempotencyKey !== "string" ||
38
- !/^[\x21-\x7e]{1,255}$/.test(input.idempotencyKey))
39
- throw new TypeError("Scheduler creation requires a stable idempotencyKey (1-255 visible ASCII characters)");
40
- const { idempotencyKey, requestId, signal, ...body } = input;
41
- return receipt(await this.#http.postResponse("/api/v1/schedulers", body, {
42
- idempotencyKey,
43
- outcomeUnknown: true,
44
- ...(requestId ? { requestId } : {}),
45
- ...(signal ? { signal } : {}),
46
- }));
47
- }
48
- async get(schedulerId, options) {
49
- options = requestOptions(options);
50
- return receipt(await this.#http.getResponse(path(schedulerId), options), false);
51
- }
52
- async update(schedulerId, input, options) {
53
- requireKnownKeys(input, [
54
- "title",
55
- "prompt",
56
- "agentId",
57
- "delivery",
58
- "schedule",
59
- "enabled",
60
- "validFrom",
61
- "validUntil",
62
- "snoozeUntil",
63
- ], "Scheduler update");
64
- requireMatch(options);
65
- return receipt(await this.#http.patchResponse(path(schedulerId), input, {
66
- ...options,
67
- outcomeUnknown: true,
68
- }));
69
- }
70
- async delete(schedulerId, options) {
71
- requireMatch(options);
72
- await this.#http.response(path(schedulerId), {
73
- ...options,
74
- method: "DELETE",
75
- outcomeUnknown: true,
76
- });
77
- }
78
- list(options) {
79
- const input = options ?? {};
80
- requireKnownKeys(input, ["status", "limit", "cursor", "signal", "requestId"], "Scheduler list options");
81
- const { status, ...paging } = input;
82
- const query = new URLSearchParams(paginationQuery(paging).slice(1));
83
- if (status !== undefined)
84
- query.set("status", status);
85
- return this.#http.get(`/api/v1/schedulers${query.size ? `?${query}` : ""}`, options);
86
- }
87
- fires(schedulerId, options) {
88
- return this.#http.get(`${path(schedulerId)}/fires${paginationQuery(options)}`, options);
89
- }
90
- }
91
- //# sourceMappingURL=schedulers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schedulers.js","sourceRoot":"","sources":["../src/schedulers.ts"],"names":[],"mappings":"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"}
@@ -1,69 +0,0 @@
1
- import { pathToFileURL } from "node:url";
2
- import { UserClient } from "@tidblink/server";
3
-
4
- /** The application produces output/error itself and persists this command identity. */
5
- export async function answerClientToolWorkflow({
6
- baseUrl,
7
- userApiKey,
8
- sessionId,
9
- turnId,
10
- callId,
11
- clientEventId,
12
- output,
13
- error,
14
- signal,
15
- }) {
16
- const session = new UserClient({ baseUrl, apiKey: userApiKey }).session(
17
- sessionId,
18
- );
19
- const calls = await session.listPendingClientToolCalls(
20
- signal ? { signal } : undefined,
21
- );
22
- const call = calls.find(
23
- (call) => call.callId === callId && call.turnId === turnId,
24
- );
25
- if (!call)
26
- throw new Error(
27
- "The Session Client Tool call is no longer pending; reconcile the original output command before submitting anything else",
28
- );
29
- if (Date.parse(call.deadlineAt) <= Date.now())
30
- throw new Error(
31
- "The Client Tool deadline has passed; do not execute the business function again",
32
- );
33
- return session.submitClientToolOutput({
34
- clientEventId,
35
- turnId,
36
- callId,
37
- ...(output === undefined ? {} : { output }),
38
- ...(error === undefined ? {} : { error }),
39
- ...(signal ? { signal } : {}),
40
- });
41
- }
42
-
43
- if (
44
- process.argv[1] &&
45
- import.meta.url === pathToFileURL(process.argv[1]).href
46
- ) {
47
- try {
48
- const receipt = await answerClientToolWorkflow({
49
- baseUrl: process.env.AGENT_SERVICE_URL,
50
- userApiKey: process.env.USER_API_KEY,
51
- sessionId: process.env.SESSION_ID,
52
- turnId: process.env.TURN_ID,
53
- callId: process.env.CALL_ID,
54
- clientEventId: process.env.CLIENT_EVENT_ID,
55
- output: process.env.TOOL_OUTPUT,
56
- ...(process.env.TOOL_ERROR === undefined
57
- ? {}
58
- : { error: { message: process.env.TOOL_ERROR } }),
59
- });
60
- console.log(JSON.stringify(receipt));
61
- } catch (error) {
62
- console.error(
63
- error instanceof Error
64
- ? error.message
65
- : "Client Tool result was not confirmed",
66
- );
67
- process.exitCode = 1;
68
- }
69
- }
@@ -1,44 +0,0 @@
1
- import { pathToFileURL } from "node:url";
2
- import { UserClient } from "@tidblink/server";
3
-
4
- /** Observe an already submitted input. Persist each event cursor for reconnection. */
5
- export function observeMessageWorkflow({
6
- baseUrl,
7
- userApiKey,
8
- sessionId,
9
- inputId,
10
- cursor,
11
- timeoutMs,
12
- signal,
13
- }) {
14
- return new UserClient({ baseUrl, apiKey: userApiKey })
15
- .session(sessionId)
16
- .observe(inputId, {
17
- ...(cursor === undefined ? {} : { cursor }),
18
- ...(timeoutMs === undefined ? {} : { timeoutMs }),
19
- ...(signal ? { signal } : {}),
20
- });
21
- }
22
-
23
- if (
24
- process.argv[1] &&
25
- import.meta.url === pathToFileURL(process.argv[1]).href
26
- ) {
27
- try {
28
- for await (const update of observeMessageWorkflow({
29
- baseUrl: process.env.AGENT_SERVICE_URL,
30
- userApiKey: process.env.USER_API_KEY,
31
- sessionId: process.env.SESSION_ID,
32
- inputId: process.env.INPUT_ID,
33
- cursor: process.env.EVENT_CURSOR,
34
- })) {
35
- if (update.type === "result") console.log(update.result.text);
36
- else console.error(JSON.stringify(update));
37
- }
38
- } catch (error) {
39
- console.error(
40
- error instanceof Error ? error.message : "Observation stopped",
41
- );
42
- process.exitCode = 1;
43
- }
44
- }