@agents24/client 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -8
- package/compatibility.json +10 -10
- package/dist/adapters/browser.d.ts +83 -1
- package/dist/adapters/browser.js +303 -4
- package/dist/adapters/browser.js.map +1 -1
- package/dist/adapters/cloudflare.js +3 -3
- package/dist/adapters/node.js +3 -3
- package/dist/adapters/worker.js +3 -3
- package/dist/bff.js +39 -10
- package/dist/bff.js.map +1 -1
- package/dist/{chunk-QAIOKNUK.js → chunk-DEXGPNLL.js} +55 -11
- package/dist/chunk-DEXGPNLL.js.map +1 -0
- package/dist/{chunk-NGZUJ3YT.js → chunk-FLTCOJZR.js} +22 -7
- package/dist/chunk-FLTCOJZR.js.map +1 -0
- package/dist/{chunk-SCZMUBXD.js → chunk-LG3ZMQ2W.js} +47 -20
- package/dist/chunk-LG3ZMQ2W.js.map +1 -0
- package/dist/chunk-ZDLWNALI.js +569 -0
- package/dist/chunk-ZDLWNALI.js.map +1 -0
- package/dist/context-window.d.ts +16 -1
- package/dist/errors.d.ts +27 -2
- package/dist/generated/protocol.d.ts +34 -11
- package/dist/index.d.ts +4 -3
- package/dist/index.js +4 -556
- package/dist/index.js.map +1 -1
- package/dist/protocol.d.ts +2 -2
- package/dist/protocol.js +31 -1
- package/dist/protocol.js.map +1 -1
- package/dist/runtime-types.d.ts +37 -2
- package/dist/types.d.ts +139 -8
- package/package.json +1 -1
- package/dist/chunk-NGZUJ3YT.js.map +0 -1
- package/dist/chunk-QAIOKNUK.js.map +0 -1
- package/dist/chunk-SCZMUBXD.js.map +0 -1
package/dist/protocol.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { Agents24ProtocolError, CONTRACT_HASH, RUNTIME_PROTOCOL_VERSION, THREAD_SUMMARY_PROTOCOL_VERSION, createSseParser, parseProtocolJson, parseRuntimeEvent, parseRuntimeSsePayload, parseSseBytes, parseThreadSummarySsePayload, validateResponseBlock, validateRuntimeEvent, validateThreadSummaryEvent, } from "./generated/protocol.js";
|
|
2
|
-
export type { AbortSignalLike as ProtocolAbortSignalLike, JsonScalar, JsonValue, ProtocolErrorCategory, PublicResponseBlock, ExtendedRuntimeEvent, RuntimeEvent, RuntimeEventValidationOptions, SseParser, ThreadSummaryEvent, Utf8Decoder, } from "./generated/protocol.js";
|
|
2
|
+
export type { AbortSignalLike as ProtocolAbortSignalLike, JsonScalar, JsonValue, ModelTurnEventName, ModelTurnKind, ModelTurnOutcome, ModelTurnPayload, ModelTurnRuntimeEvent, ModelTurnStatus, ProtocolErrorCategory, PublicResponseBlock, ExtendedRuntimeEvent, RuntimeEvent, RuntimeEventValidationOptions, SseParser, ThreadSummaryEvent, Utf8Decoder, } from "./generated/protocol.js";
|
|
3
3
|
export { compressionFromContextWindow, createContextWindowTracker, mergeContextWindow, mergeContextWindowUpdate, normalizeContextCompression, normalizeContextWindow, } from "./context-window.js";
|
|
4
|
-
export type { ActiveThreadRun, Attachment, AttachmentUploadResult, RunCancelResult, RunContext, RunResumeResult, ThreadDeleteResult, ThreadDetail, ThreadSummary, ThreadTurn, ThreadsResponse, ToolInputOverrides, Turn, } from "./runtime-types.js";
|
|
4
|
+
export type { ActiveThreadRun, Attachment, AttachmentContentAccess, AttachmentUploadResult, FeedbackRating, FeedbackReason, ResponseFeedback, ResponseFeedbackResult, RunCancelResult, RunContext, RunResumeResult, ThreadDeleteResult, ThreadDetail, ThreadSummary, ThreadTurn, ThreadsResponse, ToolInputOverrides, Turn, } from "./runtime-types.js";
|
|
5
5
|
export type { ContextCompression, ContextWindow, ContextWindowConfidence, ContextWindowSource, ContextWindowStage, ContextWindowTracker, } from "./context-window.js";
|
package/dist/protocol.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { Agents24ProtocolError, CONTRACT_HASH, RUNTIME_PROTOCOL_VERSION, THREAD_SUMMARY_PROTOCOL_VERSION, createSseParser, parseProtocolJson, parseRuntimeEvent, parseRuntimeSsePayload, parseSseBytes, parseThreadSummarySsePayload, validateResponseBlock, validateRuntimeEvent, validateThreadSummaryEvent } from './chunk-
|
|
1
|
+
export { Agents24ProtocolError, CONTRACT_HASH, RUNTIME_PROTOCOL_VERSION, THREAD_SUMMARY_PROTOCOL_VERSION, createSseParser, parseProtocolJson, parseRuntimeEvent, parseRuntimeSsePayload, parseSseBytes, parseThreadSummarySsePayload, validateResponseBlock, validateRuntimeEvent, validateThreadSummaryEvent } from './chunk-FLTCOJZR.js';
|
|
2
2
|
|
|
3
3
|
// src/context-window.ts
|
|
4
4
|
var SOURCE_PRIORITY = {
|
|
@@ -10,6 +10,8 @@ var SOURCE_PRIORITY = {
|
|
|
10
10
|
provider_cached_estimate: 1,
|
|
11
11
|
multimodal_estimate: 2,
|
|
12
12
|
hf_tokenizer: 3,
|
|
13
|
+
lab_tokenizer: 3,
|
|
14
|
+
tiktoken: 3,
|
|
13
15
|
runtime_tokenizer: 3,
|
|
14
16
|
provider_count_api: 4,
|
|
15
17
|
provider_usage: 5,
|
|
@@ -48,16 +50,29 @@ function windowWeight(value) {
|
|
|
48
50
|
function normalizeContextCompression(value) {
|
|
49
51
|
if (!value || typeof value !== "object" || Array.isArray(value)) return null;
|
|
50
52
|
const payload = value;
|
|
53
|
+
const rawStatus = String(payload.status || "").trim();
|
|
54
|
+
const rawStrategy = String(payload.strategy || "").trim();
|
|
51
55
|
return {
|
|
52
56
|
active: Boolean(payload.active),
|
|
57
|
+
status: rawStatus === "started" || rawStatus === "completed" || rawStatus === "failed" ? rawStatus : null,
|
|
58
|
+
strategy: rawStrategy === "artifact_references" || rawStrategy === "semantic_checkpoint" ? rawStrategy : null,
|
|
53
59
|
reason: typeof payload.reason === "string" ? payload.reason : null,
|
|
54
60
|
input_tokens: numberOrNull(payload.input_tokens),
|
|
55
61
|
max_tokens: numberOrNull(payload.max_tokens),
|
|
56
62
|
usage_ratio: numberOrNull(payload.usage_ratio),
|
|
63
|
+
admission_input_tokens: numberOrNull(payload.admission_input_tokens),
|
|
64
|
+
admission_input_tokens_before: numberOrNull(payload.admission_input_tokens_before),
|
|
65
|
+
admission_input_tokens_after: numberOrNull(payload.admission_input_tokens_after),
|
|
66
|
+
admission_ratio: numberOrNull(payload.admission_ratio),
|
|
67
|
+
admission_confidence: normalizeConfidence(payload.admission_confidence),
|
|
68
|
+
applied_margin: numberOrNull(payload.applied_margin),
|
|
57
69
|
full_frame_count: numberOrNull(payload.full_frame_count),
|
|
58
70
|
compact_frame_count: numberOrNull(payload.compact_frame_count),
|
|
59
71
|
dropped_frame_count: numberOrNull(payload.dropped_frame_count),
|
|
60
72
|
artifact_ref_count: numberOrNull(payload.artifact_ref_count),
|
|
73
|
+
checkpoint_frame_count: numberOrNull(payload.checkpoint_frame_count),
|
|
74
|
+
input_tokens_before: numberOrNull(payload.input_tokens_before),
|
|
75
|
+
input_tokens_after: numberOrNull(payload.input_tokens_after),
|
|
61
76
|
compression_trigger_budget: numberOrNull(payload.compression_trigger_budget),
|
|
62
77
|
compression_target_budget: numberOrNull(payload.compression_target_budget),
|
|
63
78
|
compression_target_ratio: numberOrNull(payload.compression_target_ratio),
|
|
@@ -79,6 +94,10 @@ function normalizeContextWindow(value) {
|
|
|
79
94
|
input_tokens: numberOrNull(payload.input_tokens),
|
|
80
95
|
remaining_tokens: numberOrNull(payload.remaining_tokens),
|
|
81
96
|
usage_ratio: numberOrNull(payload.usage_ratio),
|
|
97
|
+
admission_input_tokens: numberOrNull(payload.admission_input_tokens),
|
|
98
|
+
admission_ratio: numberOrNull(payload.admission_ratio),
|
|
99
|
+
admission_confidence: normalizeConfidence(payload.admission_confidence),
|
|
100
|
+
applied_margin: numberOrNull(payload.applied_margin),
|
|
82
101
|
assembly: payload.assembly && typeof payload.assembly === "object" && !Array.isArray(payload.assembly) ? payload.assembly : null,
|
|
83
102
|
context_compression: normalizeContextCompression(payload.context_compression)
|
|
84
103
|
};
|
|
@@ -110,14 +129,25 @@ function compressionFromContextWindow(value) {
|
|
|
110
129
|
const reason = typeof assembly.compaction_reason === "string" ? assembly.compaction_reason : "none";
|
|
111
130
|
return {
|
|
112
131
|
active: reason !== "none" || compactFrameCount > 0 || droppedFrameCount > 0,
|
|
132
|
+
status: assembly.status === "started" || assembly.status === "completed" || assembly.status === "failed" ? assembly.status : null,
|
|
133
|
+
strategy: assembly.strategy === "artifact_references" || assembly.strategy === "semantic_checkpoint" ? assembly.strategy : null,
|
|
113
134
|
reason,
|
|
114
135
|
input_tokens: value.input_tokens ?? null,
|
|
115
136
|
max_tokens: value.max_tokens ?? null,
|
|
116
137
|
usage_ratio: value.usage_ratio ?? null,
|
|
138
|
+
admission_input_tokens: value.admission_input_tokens ?? null,
|
|
139
|
+
admission_input_tokens_before: numberOrNull(assembly.admission_input_tokens_before),
|
|
140
|
+
admission_input_tokens_after: numberOrNull(assembly.admission_input_tokens_after),
|
|
141
|
+
admission_ratio: value.admission_ratio ?? null,
|
|
142
|
+
admission_confidence: value.admission_confidence ?? null,
|
|
143
|
+
applied_margin: value.applied_margin ?? null,
|
|
117
144
|
full_frame_count: numberOrNull(assembly.full_frame_count),
|
|
118
145
|
compact_frame_count: compactFrameCount,
|
|
119
146
|
dropped_frame_count: droppedFrameCount,
|
|
120
147
|
artifact_ref_count: artifactRefs.length,
|
|
148
|
+
checkpoint_frame_count: numberOrNull(assembly.checkpoint_frame_count),
|
|
149
|
+
input_tokens_before: numberOrNull(assembly.input_tokens_before),
|
|
150
|
+
input_tokens_after: numberOrNull(assembly.input_tokens_after),
|
|
121
151
|
compression_trigger_budget: numberOrNull(assembly.compression_trigger_budget),
|
|
122
152
|
compression_target_budget: numberOrNull(assembly.compression_target_budget),
|
|
123
153
|
compression_target_ratio: numberOrNull(assembly.compression_target_ratio),
|
package/dist/protocol.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/context-window.ts"],"names":[],"mappings":";;;AAiDA,IAAM,eAAA,GAAuD;AAAA,EAC3D,OAAA,EAAS,CAAA;AAAA,EACT,kBAAA,EAAoB,CAAA;AAAA,EACpB,kBAAA,EAAoB,CAAA;AAAA,EACpB,aAAA,EAAe,CAAA;AAAA,EACf,SAAA,EAAW,CAAA;AAAA,EACX,wBAAA,EAA0B,CAAA;AAAA,EAC1B,mBAAA,EAAqB,CAAA;AAAA,EACrB,YAAA,EAAc,CAAA;AAAA,EACd,iBAAA,EAAmB,CAAA;AAAA,EACnB,kBAAA,EAAoB,CAAA;AAAA,EACpB,cAAA,EAAgB,CAAA;AAAA,EAChB,KAAA,EAAO;AACT,CAAA;AAEA,IAAM,cAAA,GAAqD;AAAA,EACzD,SAAA,EAAW,CAAA;AAAA,EACX,WAAA,EAAa,CAAA;AAAA,EACb,WAAA,EAAa;AACf,CAAA;AAEA,SAAS,aAAa,KAAA,EAA+B;AACnD,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAY,OAAO,QAAA,CAAS,KAAK,IAAI,KAAA,GAAQ,IAAA;AACvE;AAEA,SAAS,gBAAgB,KAAA,EAAqC;AAC5D,EAAA,MAAM,MAAM,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,CAAM,MAAK,GAAI,EAAA;AACvD,EAAA,OAAO,GAAA,IAAO,eAAA,GAAkB,GAAA,GAA6B,GAAA,GAAM,WAAA,GAAc,SAAA;AACnF;AAEA,SAAS,eAAe,KAAA,EAAoC;AAC1D,EAAA,MAAM,MAAM,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,CAAM,MAAK,GAAI,EAAA;AACvD,EAAA,OAAO,QAAQ,WAAA,IAAe,GAAA,KAAQ,aAAA,IAAiB,GAAA,KAAQ,gBAAgB,GAAA,GAAM,aAAA;AACvF;AAEA,SAAS,oBAAoB,KAAA,EAAgD;AAC3E,EAAA,MAAM,MAAM,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,CAAM,MAAK,GAAI,EAAA;AACvD,EAAA,OAAO,GAAA,KAAQ,OAAA,IAAW,GAAA,KAAQ,MAAA,IAAU,GAAA,KAAQ,YAAY,GAAA,KAAQ,KAAA,IAAS,GAAA,KAAQ,SAAA,GAAY,GAAA,GAAM,IAAA;AAC7G;AAEA,SAAS,cAAc,KAAA,EAAiD;AACtE,EAAA,OAAO,cAAA,CAAe,KAAA,EAAO,KAAA,IAAS,aAAa,KAAK,cAAA,CAAe,WAAA;AACzE;AAEA,SAAS,oBAAoB,KAAA,EAAkD;AAC7E,EAAA,MAAM,SAAA,GAAY,YAAA,CAAa,KAAA,EAAO,UAAU,CAAA;AAChD,EAAA,OAAO,SAAA,KAAc,QAAQ,SAAA,GAAY,CAAA;AAC3C;AAEA,SAAS,aAAa,KAAA,EAA2D;AAC/E,EAAA,OAAO,KAAA,GAAQ,CAAC,aAAA,CAAc,KAAK,CAAA,EAAG,eAAA,CAAgB,KAAA,CAAM,MAAM,CAAA,IAAK,CAAC,CAAA,GAAI,CAAC,GAAG,CAAC,CAAA;AACnF;AAEO,SAAS,4BAA4B,KAAA,EAA2C;AACrF,EAAA,IAAI,CAAC,SAAS,OAAO,KAAA,KAAU,YAAY,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG,OAAO,IAAA;AACxE,EAAA,MAAM,OAAA,GAAU,KAAA;AAChB,EAAA,OAAO;AAAA,IACL,MAAA,EAAQ,OAAA,CAAQ,OAAA,CAAQ,MAAM,CAAA;AAAA,IAC9B,QAAQ,OAAO,OAAA,CAAQ,MAAA,KAAW,QAAA,GAAW,QAAQ,MAAA,GAAS,IAAA;AAAA,IAC9D,YAAA,EAAc,YAAA,CAAa,OAAA,CAAQ,YAAY,CAAA;AAAA,IAC/C,UAAA,EAAY,YAAA,CAAa,OAAA,CAAQ,UAAU,CAAA;AAAA,IAC3C,WAAA,EAAa,YAAA,CAAa,OAAA,CAAQ,WAAW,CAAA;AAAA,IAC7C,gBAAA,EAAkB,YAAA,CAAa,OAAA,CAAQ,gBAAgB,CAAA;AAAA,IACvD,mBAAA,EAAqB,YAAA,CAAa,OAAA,CAAQ,mBAAmB,CAAA;AAAA,IAC7D,mBAAA,EAAqB,YAAA,CAAa,OAAA,CAAQ,mBAAmB,CAAA;AAAA,IAC7D,kBAAA,EAAoB,YAAA,CAAa,OAAA,CAAQ,kBAAkB,CAAA;AAAA,IAC3D,0BAAA,EAA4B,YAAA,CAAa,OAAA,CAAQ,0BAA0B,CAAA;AAAA,IAC3E,yBAAA,EAA2B,YAAA,CAAa,OAAA,CAAQ,yBAAyB,CAAA;AAAA,IACzE,wBAAA,EAA0B,YAAA,CAAa,OAAA,CAAQ,wBAAwB,CAAA;AAAA,IACvE,cAAA,EAAgB,YAAA,CAAa,OAAA,CAAQ,cAAc;AAAA,GACrD;AACF;AAEO,SAAS,uBAAuB,KAAA,EAAsC;AAC3E,EAAA,IAAI,CAAC,SAAS,OAAO,KAAA,KAAU,YAAY,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG,OAAO,IAAA;AACxE,EAAA,MAAM,OAAA,GAAU,KAAA;AAChB,EAAA,OAAO;AAAA,IACL,MAAA,EAAQ,eAAA,CAAgB,OAAA,CAAQ,MAAM,CAAA;AAAA,IACtC,QAAQ,OAAO,OAAA,CAAQ,MAAA,KAAW,QAAA,GAAW,QAAQ,MAAA,GAAS,IAAA;AAAA,IAC9D,KAAA,EAAO,cAAA,CAAe,OAAA,CAAQ,KAAK,CAAA;AAAA,IACnC,UAAA,EAAY,mBAAA,CAAoB,OAAA,CAAQ,UAAU,CAAA;AAAA,IAClD,SAAS,OAAO,OAAA,CAAQ,OAAA,KAAY,QAAA,GAAW,QAAQ,OAAA,GAAU,IAAA;AAAA,IACjE,UAAU,OAAO,OAAA,CAAQ,QAAA,KAAa,QAAA,GAAW,QAAQ,QAAA,GAAW,IAAA;AAAA,IACpE,UAAA,EAAY,YAAA,CAAa,OAAA,CAAQ,UAAU,CAAA;AAAA,IAC3C,mBAAmB,OAAO,OAAA,CAAQ,iBAAA,KAAsB,QAAA,GAAW,QAAQ,iBAAA,GAAoB,IAAA;AAAA,IAC/F,YAAA,EAAc,YAAA,CAAa,OAAA,CAAQ,YAAY,CAAA;AAAA,IAC/C,gBAAA,EAAkB,YAAA,CAAa,OAAA,CAAQ,gBAAgB,CAAA;AAAA,IACvD,WAAA,EAAa,YAAA,CAAa,OAAA,CAAQ,WAAW,CAAA;AAAA,IAC7C,QAAA,EAAU,OAAA,CAAQ,QAAA,IAAY,OAAO,QAAQ,QAAA,KAAa,QAAA,IAAY,CAAC,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ,QAAQ,CAAA,GACjG,QAAQ,QAAA,GACR,IAAA;AAAA,IACJ,mBAAA,EAAqB,2BAAA,CAA4B,OAAA,CAAQ,mBAAmB;AAAA,GAC9E;AACF;AAEO,SAAS,kBAAA,CACd,SACA,QAAA,EACsB;AACtB,EAAA,MAAM,SAAS,OAAA,IAAW,IAAA;AAC1B,EAAA,MAAM,OAAO,QAAA,IAAY,IAAA;AACzB,EAAA,IAAI,CAAC,MAAM,OAAO,MAAA;AAClB,EAAA,IAAI,CAAC,QAAQ,OAAO,IAAA;AACpB,EAAA,IAAI,oBAAoB,MAAM,CAAA,IAAK,CAAC,mBAAA,CAAoB,IAAI,GAAG,OAAO,MAAA;AACtE,EAAA,IAAI,OAAO,MAAA,IAAU,IAAA,CAAK,UAAU,MAAA,CAAO,MAAA,KAAW,KAAK,MAAA,EAAQ;AACjE,IAAA,OAAO,aAAA,CAAc,IAAI,CAAA,IAAK,cAAA,CAAe,cAAc,IAAA,GAAO,MAAA;AAAA,EACpE;AACA,EAAA,MAAM,YAAA,GAAe,aAAa,MAAM,CAAA;AACxC,EAAA,MAAM,UAAA,GAAa,aAAa,IAAI,CAAA;AACpC,EAAA,OAAO,WAAW,CAAC,CAAA,GAAI,aAAa,CAAC,CAAA,IAAM,WAAW,CAAC,CAAA,KAAM,YAAA,CAAa,CAAC,KAAK,UAAA,CAAW,CAAC,KAAK,YAAA,CAAa,CAAC,IAC3G,IAAA,GACA,MAAA;AACN;AAEO,SAAS,wBAAA,CACd,SACA,QAAA,EACsB;AACtB,EAAA,OAAO,kBAAA,CAAmB,OAAA,EAAS,sBAAA,CAAuB,QAAQ,CAAC,CAAA;AACrE;AAEO,SAAS,6BAA6B,KAAA,EAAoE;AAC/G,EAAA,IAAI,CAAC,OAAO,OAAO,IAAA;AACnB,EAAA,IAAI,KAAA,CAAM,mBAAA,EAAqB,OAAO,KAAA,CAAM,mBAAA;AAC5C,EAAA,MAAM,WAAW,KAAA,CAAM,QAAA;AACvB,EAAA,IAAI,CAAC,YAAY,OAAO,QAAA,KAAa,YAAY,KAAA,CAAM,OAAA,CAAQ,QAAQ,CAAA,EAAG,OAAO,IAAA;AACjF,EAAA,MAAM,YAAA,GAAe,MAAM,OAAA,CAAQ,QAAA,CAAS,aAAa,CAAA,GAAI,QAAA,CAAS,gBAAgB,EAAC;AACvF,EAAA,MAAM,iBAAA,GAAoB,YAAA,CAAa,QAAA,CAAS,mBAAmB,CAAA,IAAK,CAAA;AACxE,EAAA,MAAM,iBAAA,GAAoB,YAAA,CAAa,QAAA,CAAS,mBAAmB,CAAA,IAAK,CAAA;AACxE,EAAA,MAAM,SAAS,OAAO,QAAA,CAAS,iBAAA,KAAsB,QAAA,GAAW,SAAS,iBAAA,GAAoB,MAAA;AAC7F,EAAA,OAAO;AAAA,IACL,MAAA,EAAQ,MAAA,KAAW,MAAA,IAAU,iBAAA,GAAoB,KAAK,iBAAA,GAAoB,CAAA;AAAA,IAC1E,MAAA;AAAA,IACA,YAAA,EAAc,MAAM,YAAA,IAAgB,IAAA;AAAA,IACpC,UAAA,EAAY,MAAM,UAAA,IAAc,IAAA;AAAA,IAChC,WAAA,EAAa,MAAM,WAAA,IAAe,IAAA;AAAA,IAClC,gBAAA,EAAkB,YAAA,CAAa,QAAA,CAAS,gBAAgB,CAAA;AAAA,IACxD,mBAAA,EAAqB,iBAAA;AAAA,IACrB,mBAAA,EAAqB,iBAAA;AAAA,IACrB,oBAAoB,YAAA,CAAa,MAAA;AAAA,IACjC,0BAAA,EAA4B,YAAA,CAAa,QAAA,CAAS,0BAA0B,CAAA;AAAA,IAC5E,yBAAA,EAA2B,YAAA,CAAa,QAAA,CAAS,yBAAyB,CAAA;AAAA,IAC1E,wBAAA,EAA0B,YAAA,CAAa,QAAA,CAAS,wBAAwB,CAAA;AAAA,IACxE,cAAA,EAAgB,YAAA,CAAa,QAAA,CAAS,cAAc;AAAA,GACtD;AACF;AAQO,SAAS,2BAA2B,OAAA,EAAyC;AAClF,EAAA,IAAI,OAAA,GAAU,uBAAuB,OAAO,CAAA;AAC5C,EAAA,OAAO;AAAA,IACL,IAAI,OAAA,GAAU;AAAE,MAAA,OAAO,OAAA;AAAA,IAAS,CAAA;AAAA,IAChC,OAAO,QAAA,EAAU;AACf,MAAA,OAAA,GAAU,wBAAA,CAAyB,SAAS,QAAQ,CAAA;AACpD,MAAA,OAAO,OAAA;AAAA,IACT,CAAA;AAAA,IACA,MAAM,IAAA,EAAM;AACV,MAAA,OAAA,GAAU,uBAAuB,IAAI,CAAA;AACrC,MAAA,OAAO,OAAA;AAAA,IACT;AAAA,GACF;AACF","file":"protocol.js","sourcesContent":["export type ContextWindowSource =\n | \"exact\"\n | \"estimated\"\n | \"provider_count_api\"\n | \"provider_usage\"\n | \"provider_cached_estimate\"\n | \"runtime_tokenizer\"\n | \"hf_tokenizer\"\n | \"multimodal_estimate\"\n | \"text_estimate\"\n | \"tokenizer_estimate\"\n | \"heuristic_estimate\"\n | \"unknown\";\n\nexport type ContextWindowStage = \"preflight\" | \"sent_prompt\" | \"final_usage\";\nexport type ContextWindowConfidence = \"exact\" | \"high\" | \"medium\" | \"low\" | \"unknown\";\n\nexport type ContextCompression = {\n active: boolean;\n reason?: string | null;\n input_tokens?: number | null;\n max_tokens?: number | null;\n usage_ratio?: number | null;\n full_frame_count?: number | null;\n compact_frame_count?: number | null;\n dropped_frame_count?: number | null;\n artifact_ref_count?: number | null;\n compression_trigger_budget?: number | null;\n compression_target_budget?: number | null;\n compression_target_ratio?: number | null;\n threshold_used?: number | null;\n};\n\nexport type ContextWindow = {\n source: ContextWindowSource;\n run_id?: string | null;\n stage?: ContextWindowStage | null;\n confidence?: ContextWindowConfidence | null;\n counter?: string | null;\n model_id?: string | null;\n max_tokens?: number | null;\n max_tokens_source?: string | null;\n input_tokens?: number | null;\n remaining_tokens?: number | null;\n usage_ratio?: number | null;\n assembly?: Record<string, unknown> | null;\n context_compression?: ContextCompression | null;\n};\n\nconst SOURCE_PRIORITY: Record<ContextWindowSource, number> = {\n unknown: 0,\n heuristic_estimate: 1,\n tokenizer_estimate: 1,\n text_estimate: 1,\n estimated: 1,\n provider_cached_estimate: 1,\n multimodal_estimate: 2,\n hf_tokenizer: 3,\n runtime_tokenizer: 3,\n provider_count_api: 4,\n provider_usage: 5,\n exact: 5,\n};\n\nconst STAGE_PRIORITY: Record<ContextWindowStage, number> = {\n preflight: 0,\n sent_prompt: 1,\n final_usage: 2,\n};\n\nfunction numberOrNull(value: unknown): number | null {\n return typeof value === \"number\" && Number.isFinite(value) ? value : null;\n}\n\nfunction normalizeSource(value: unknown): ContextWindowSource {\n const raw = typeof value === \"string\" ? value.trim() : \"\";\n return raw in SOURCE_PRIORITY ? raw as ContextWindowSource : raw ? \"estimated\" : \"unknown\";\n}\n\nfunction normalizeStage(value: unknown): ContextWindowStage {\n const raw = typeof value === \"string\" ? value.trim() : \"\";\n return raw === \"preflight\" || raw === \"sent_prompt\" || raw === \"final_usage\" ? raw : \"sent_prompt\";\n}\n\nfunction normalizeConfidence(value: unknown): ContextWindowConfidence | null {\n const raw = typeof value === \"string\" ? value.trim() : \"\";\n return raw === \"exact\" || raw === \"high\" || raw === \"medium\" || raw === \"low\" || raw === \"unknown\" ? raw : null;\n}\n\nfunction stagePriority(value: ContextWindow | null | undefined): number {\n return STAGE_PRIORITY[value?.stage || \"sent_prompt\"] ?? STAGE_PRIORITY.sent_prompt;\n}\n\nfunction hasRenderableWindow(value: ContextWindow | null | undefined): boolean {\n const maxTokens = numberOrNull(value?.max_tokens);\n return maxTokens !== null && maxTokens > 0;\n}\n\nfunction windowWeight(value: ContextWindow | null | undefined): [number, number] {\n return value ? [stagePriority(value), SOURCE_PRIORITY[value.source] || 0] : [0, 0];\n}\n\nexport function normalizeContextCompression(value: unknown): ContextCompression | null {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return null;\n const payload = value as Record<string, unknown>;\n return {\n active: Boolean(payload.active),\n reason: typeof payload.reason === \"string\" ? payload.reason : null,\n input_tokens: numberOrNull(payload.input_tokens),\n max_tokens: numberOrNull(payload.max_tokens),\n usage_ratio: numberOrNull(payload.usage_ratio),\n full_frame_count: numberOrNull(payload.full_frame_count),\n compact_frame_count: numberOrNull(payload.compact_frame_count),\n dropped_frame_count: numberOrNull(payload.dropped_frame_count),\n artifact_ref_count: numberOrNull(payload.artifact_ref_count),\n compression_trigger_budget: numberOrNull(payload.compression_trigger_budget),\n compression_target_budget: numberOrNull(payload.compression_target_budget),\n compression_target_ratio: numberOrNull(payload.compression_target_ratio),\n threshold_used: numberOrNull(payload.threshold_used),\n };\n}\n\nexport function normalizeContextWindow(value: unknown): ContextWindow | null {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return null;\n const payload = value as Record<string, unknown>;\n return {\n source: normalizeSource(payload.source),\n run_id: typeof payload.run_id === \"string\" ? payload.run_id : null,\n stage: normalizeStage(payload.stage),\n confidence: normalizeConfidence(payload.confidence),\n counter: typeof payload.counter === \"string\" ? payload.counter : null,\n model_id: typeof payload.model_id === \"string\" ? payload.model_id : null,\n max_tokens: numberOrNull(payload.max_tokens),\n max_tokens_source: typeof payload.max_tokens_source === \"string\" ? payload.max_tokens_source : null,\n input_tokens: numberOrNull(payload.input_tokens),\n remaining_tokens: numberOrNull(payload.remaining_tokens),\n usage_ratio: numberOrNull(payload.usage_ratio),\n assembly: payload.assembly && typeof payload.assembly === \"object\" && !Array.isArray(payload.assembly)\n ? payload.assembly as Record<string, unknown>\n : null,\n context_compression: normalizeContextCompression(payload.context_compression),\n };\n}\n\nexport function mergeContextWindow(\n current: ContextWindow | null | undefined,\n incoming: ContextWindow | null | undefined,\n): ContextWindow | null {\n const before = current || null;\n const next = incoming || null;\n if (!next) return before;\n if (!before) return next;\n if (hasRenderableWindow(before) && !hasRenderableWindow(next)) return before;\n if (before.run_id && next.run_id && before.run_id !== next.run_id) {\n return stagePriority(next) >= STAGE_PRIORITY.sent_prompt ? next : before;\n }\n const beforeWeight = windowWeight(before);\n const nextWeight = windowWeight(next);\n return nextWeight[0] > beforeWeight[0] || (nextWeight[0] === beforeWeight[0] && nextWeight[1] >= beforeWeight[1])\n ? next\n : before;\n}\n\nexport function mergeContextWindowUpdate(\n current: ContextWindow | null | undefined,\n incoming: unknown,\n): ContextWindow | null {\n return mergeContextWindow(current, normalizeContextWindow(incoming));\n}\n\nexport function compressionFromContextWindow(value: ContextWindow | null | undefined): ContextCompression | null {\n if (!value) return null;\n if (value.context_compression) return value.context_compression;\n const assembly = value.assembly;\n if (!assembly || typeof assembly !== \"object\" || Array.isArray(assembly)) return null;\n const artifactRefs = Array.isArray(assembly.artifact_refs) ? assembly.artifact_refs : [];\n const compactFrameCount = numberOrNull(assembly.compact_frame_count) ?? 0;\n const droppedFrameCount = numberOrNull(assembly.dropped_frame_count) ?? 0;\n const reason = typeof assembly.compaction_reason === \"string\" ? assembly.compaction_reason : \"none\";\n return {\n active: reason !== \"none\" || compactFrameCount > 0 || droppedFrameCount > 0,\n reason,\n input_tokens: value.input_tokens ?? null,\n max_tokens: value.max_tokens ?? null,\n usage_ratio: value.usage_ratio ?? null,\n full_frame_count: numberOrNull(assembly.full_frame_count),\n compact_frame_count: compactFrameCount,\n dropped_frame_count: droppedFrameCount,\n artifact_ref_count: artifactRefs.length,\n compression_trigger_budget: numberOrNull(assembly.compression_trigger_budget),\n compression_target_budget: numberOrNull(assembly.compression_target_budget),\n compression_target_ratio: numberOrNull(assembly.compression_target_ratio),\n threshold_used: numberOrNull(assembly.threshold_used),\n };\n}\n\nexport type ContextWindowTracker = {\n readonly current: ContextWindow | null;\n update(incoming: unknown): ContextWindow | null;\n reset(next?: unknown): ContextWindow | null;\n};\n\nexport function createContextWindowTracker(initial?: unknown): ContextWindowTracker {\n let current = normalizeContextWindow(initial);\n return {\n get current() { return current; },\n update(incoming) {\n current = mergeContextWindowUpdate(current, incoming);\n return current;\n },\n reset(next) {\n current = normalizeContextWindow(next);\n return current;\n },\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/context-window.ts"],"names":[],"mappings":"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","file":"protocol.js","sourcesContent":["export type ContextWindowSource =\n | \"exact\"\n | \"estimated\"\n | \"provider_count_api\"\n | \"provider_usage\"\n | \"provider_cached_estimate\"\n | \"runtime_tokenizer\"\n | \"hf_tokenizer\"\n | \"lab_tokenizer\"\n | \"tiktoken\"\n | \"multimodal_estimate\"\n | \"text_estimate\"\n | \"tokenizer_estimate\"\n | \"heuristic_estimate\"\n | \"unknown\";\n\nexport type ContextWindowStage = \"preflight\" | \"sent_prompt\" | \"final_usage\";\nexport type ContextWindowConfidence = \"exact\" | \"high\" | \"medium\" | \"low\" | \"unknown\";\n\nexport type ContextCompression = {\n active: boolean;\n status?: \"started\" | \"completed\" | \"failed\" | null;\n strategy?: \"artifact_references\" | \"semantic_checkpoint\" | null;\n reason?: string | null;\n input_tokens?: number | null;\n max_tokens?: number | null;\n usage_ratio?: number | null;\n admission_input_tokens?: number | null;\n admission_input_tokens_before?: number | null;\n admission_input_tokens_after?: number | null;\n admission_ratio?: number | null;\n admission_confidence?: ContextWindowConfidence | null;\n applied_margin?: number | null;\n full_frame_count?: number | null;\n compact_frame_count?: number | null;\n dropped_frame_count?: number | null;\n artifact_ref_count?: number | null;\n checkpoint_frame_count?: number | null;\n input_tokens_before?: number | null;\n input_tokens_after?: number | null;\n compression_trigger_budget?: number | null;\n compression_target_budget?: number | null;\n compression_target_ratio?: number | null;\n threshold_used?: number | null;\n};\n\nexport type ContextWindow = {\n source: ContextWindowSource;\n run_id?: string | null;\n stage?: ContextWindowStage | null;\n confidence?: ContextWindowConfidence | null;\n counter?: string | null;\n model_id?: string | null;\n max_tokens?: number | null;\n max_tokens_source?: string | null;\n input_tokens?: number | null;\n remaining_tokens?: number | null;\n usage_ratio?: number | null;\n admission_input_tokens?: number | null;\n admission_ratio?: number | null;\n admission_confidence?: ContextWindowConfidence | null;\n applied_margin?: number | null;\n assembly?: Record<string, unknown> | null;\n context_compression?: ContextCompression | null;\n};\n\nconst SOURCE_PRIORITY: Record<ContextWindowSource, number> = {\n unknown: 0,\n heuristic_estimate: 1,\n tokenizer_estimate: 1,\n text_estimate: 1,\n estimated: 1,\n provider_cached_estimate: 1,\n multimodal_estimate: 2,\n hf_tokenizer: 3,\n lab_tokenizer: 3,\n tiktoken: 3,\n runtime_tokenizer: 3,\n provider_count_api: 4,\n provider_usage: 5,\n exact: 5,\n};\n\nconst STAGE_PRIORITY: Record<ContextWindowStage, number> = {\n preflight: 0,\n sent_prompt: 1,\n final_usage: 2,\n};\n\nfunction numberOrNull(value: unknown): number | null {\n return typeof value === \"number\" && Number.isFinite(value) ? value : null;\n}\n\nfunction normalizeSource(value: unknown): ContextWindowSource {\n const raw = typeof value === \"string\" ? value.trim() : \"\";\n return raw in SOURCE_PRIORITY ? raw as ContextWindowSource : raw ? \"estimated\" : \"unknown\";\n}\n\nfunction normalizeStage(value: unknown): ContextWindowStage {\n const raw = typeof value === \"string\" ? value.trim() : \"\";\n return raw === \"preflight\" || raw === \"sent_prompt\" || raw === \"final_usage\" ? raw : \"sent_prompt\";\n}\n\nfunction normalizeConfidence(value: unknown): ContextWindowConfidence | null {\n const raw = typeof value === \"string\" ? value.trim() : \"\";\n return raw === \"exact\" || raw === \"high\" || raw === \"medium\" || raw === \"low\" || raw === \"unknown\" ? raw : null;\n}\n\nfunction stagePriority(value: ContextWindow | null | undefined): number {\n return STAGE_PRIORITY[value?.stage || \"sent_prompt\"] ?? STAGE_PRIORITY.sent_prompt;\n}\n\nfunction hasRenderableWindow(value: ContextWindow | null | undefined): boolean {\n const maxTokens = numberOrNull(value?.max_tokens);\n return maxTokens !== null && maxTokens > 0;\n}\n\nfunction windowWeight(value: ContextWindow | null | undefined): [number, number] {\n return value ? [stagePriority(value), SOURCE_PRIORITY[value.source] || 0] : [0, 0];\n}\n\nexport function normalizeContextCompression(value: unknown): ContextCompression | null {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return null;\n const payload = value as Record<string, unknown>;\n const rawStatus = String(payload.status || \"\").trim();\n const rawStrategy = String(payload.strategy || \"\").trim();\n return {\n active: Boolean(payload.active),\n status: rawStatus === \"started\" || rawStatus === \"completed\" || rawStatus === \"failed\" ? rawStatus : null,\n strategy:\n rawStrategy === \"artifact_references\" || rawStrategy === \"semantic_checkpoint\"\n ? rawStrategy\n : null,\n reason: typeof payload.reason === \"string\" ? payload.reason : null,\n input_tokens: numberOrNull(payload.input_tokens),\n max_tokens: numberOrNull(payload.max_tokens),\n usage_ratio: numberOrNull(payload.usage_ratio),\n admission_input_tokens: numberOrNull(payload.admission_input_tokens),\n admission_input_tokens_before: numberOrNull(payload.admission_input_tokens_before),\n admission_input_tokens_after: numberOrNull(payload.admission_input_tokens_after),\n admission_ratio: numberOrNull(payload.admission_ratio),\n admission_confidence: normalizeConfidence(payload.admission_confidence),\n applied_margin: numberOrNull(payload.applied_margin),\n full_frame_count: numberOrNull(payload.full_frame_count),\n compact_frame_count: numberOrNull(payload.compact_frame_count),\n dropped_frame_count: numberOrNull(payload.dropped_frame_count),\n artifact_ref_count: numberOrNull(payload.artifact_ref_count),\n checkpoint_frame_count: numberOrNull(payload.checkpoint_frame_count),\n input_tokens_before: numberOrNull(payload.input_tokens_before),\n input_tokens_after: numberOrNull(payload.input_tokens_after),\n compression_trigger_budget: numberOrNull(payload.compression_trigger_budget),\n compression_target_budget: numberOrNull(payload.compression_target_budget),\n compression_target_ratio: numberOrNull(payload.compression_target_ratio),\n threshold_used: numberOrNull(payload.threshold_used),\n };\n}\n\nexport function normalizeContextWindow(value: unknown): ContextWindow | null {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return null;\n const payload = value as Record<string, unknown>;\n return {\n source: normalizeSource(payload.source),\n run_id: typeof payload.run_id === \"string\" ? payload.run_id : null,\n stage: normalizeStage(payload.stage),\n confidence: normalizeConfidence(payload.confidence),\n counter: typeof payload.counter === \"string\" ? payload.counter : null,\n model_id: typeof payload.model_id === \"string\" ? payload.model_id : null,\n max_tokens: numberOrNull(payload.max_tokens),\n max_tokens_source: typeof payload.max_tokens_source === \"string\" ? payload.max_tokens_source : null,\n input_tokens: numberOrNull(payload.input_tokens),\n remaining_tokens: numberOrNull(payload.remaining_tokens),\n usage_ratio: numberOrNull(payload.usage_ratio),\n admission_input_tokens: numberOrNull(payload.admission_input_tokens),\n admission_ratio: numberOrNull(payload.admission_ratio),\n admission_confidence: normalizeConfidence(payload.admission_confidence),\n applied_margin: numberOrNull(payload.applied_margin),\n assembly: payload.assembly && typeof payload.assembly === \"object\" && !Array.isArray(payload.assembly)\n ? payload.assembly as Record<string, unknown>\n : null,\n context_compression: normalizeContextCompression(payload.context_compression),\n };\n}\n\nexport function mergeContextWindow(\n current: ContextWindow | null | undefined,\n incoming: ContextWindow | null | undefined,\n): ContextWindow | null {\n const before = current || null;\n const next = incoming || null;\n if (!next) return before;\n if (!before) return next;\n if (hasRenderableWindow(before) && !hasRenderableWindow(next)) return before;\n if (before.run_id && next.run_id && before.run_id !== next.run_id) {\n return stagePriority(next) >= STAGE_PRIORITY.sent_prompt ? next : before;\n }\n const beforeWeight = windowWeight(before);\n const nextWeight = windowWeight(next);\n return nextWeight[0] > beforeWeight[0] || (nextWeight[0] === beforeWeight[0] && nextWeight[1] >= beforeWeight[1])\n ? next\n : before;\n}\n\nexport function mergeContextWindowUpdate(\n current: ContextWindow | null | undefined,\n incoming: unknown,\n): ContextWindow | null {\n return mergeContextWindow(current, normalizeContextWindow(incoming));\n}\n\nexport function compressionFromContextWindow(value: ContextWindow | null | undefined): ContextCompression | null {\n if (!value) return null;\n if (value.context_compression) return value.context_compression;\n const assembly = value.assembly;\n if (!assembly || typeof assembly !== \"object\" || Array.isArray(assembly)) return null;\n const artifactRefs = Array.isArray(assembly.artifact_refs) ? assembly.artifact_refs : [];\n const compactFrameCount = numberOrNull(assembly.compact_frame_count) ?? 0;\n const droppedFrameCount = numberOrNull(assembly.dropped_frame_count) ?? 0;\n const reason = typeof assembly.compaction_reason === \"string\" ? assembly.compaction_reason : \"none\";\n return {\n active: reason !== \"none\" || compactFrameCount > 0 || droppedFrameCount > 0,\n status:\n assembly.status === \"started\" || assembly.status === \"completed\" || assembly.status === \"failed\"\n ? assembly.status\n : null,\n strategy:\n assembly.strategy === \"artifact_references\" || assembly.strategy === \"semantic_checkpoint\"\n ? assembly.strategy\n : null,\n reason,\n input_tokens: value.input_tokens ?? null,\n max_tokens: value.max_tokens ?? null,\n usage_ratio: value.usage_ratio ?? null,\n admission_input_tokens: value.admission_input_tokens ?? null,\n admission_input_tokens_before: numberOrNull(assembly.admission_input_tokens_before),\n admission_input_tokens_after: numberOrNull(assembly.admission_input_tokens_after),\n admission_ratio: value.admission_ratio ?? null,\n admission_confidence: value.admission_confidence ?? null,\n applied_margin: value.applied_margin ?? null,\n full_frame_count: numberOrNull(assembly.full_frame_count),\n compact_frame_count: compactFrameCount,\n dropped_frame_count: droppedFrameCount,\n artifact_ref_count: artifactRefs.length,\n checkpoint_frame_count: numberOrNull(assembly.checkpoint_frame_count),\n input_tokens_before: numberOrNull(assembly.input_tokens_before),\n input_tokens_after: numberOrNull(assembly.input_tokens_after),\n compression_trigger_budget: numberOrNull(assembly.compression_trigger_budget),\n compression_target_budget: numberOrNull(assembly.compression_target_budget),\n compression_target_ratio: numberOrNull(assembly.compression_target_ratio),\n threshold_used: numberOrNull(assembly.threshold_used),\n };\n}\n\nexport type ContextWindowTracker = {\n readonly current: ContextWindow | null;\n update(incoming: unknown): ContextWindow | null;\n reset(next?: unknown): ContextWindow | null;\n};\n\nexport function createContextWindowTracker(initial?: unknown): ContextWindowTracker {\n let current = normalizeContextWindow(initial);\n return {\n get current() { return current; },\n update(incoming) {\n current = mergeContextWindowUpdate(current, incoming);\n return current;\n },\n reset(next) {\n current = normalizeContextWindow(next);\n return current;\n },\n };\n}\n"]}
|
package/dist/runtime-types.d.ts
CHANGED
|
@@ -11,7 +11,16 @@ export type Attachment = {
|
|
|
11
11
|
filename: string;
|
|
12
12
|
mime_type: string;
|
|
13
13
|
byte_size: number;
|
|
14
|
-
|
|
14
|
+
processing_status: "uploaded" | "processed" | "failed";
|
|
15
|
+
content_status: "available" | "expired";
|
|
16
|
+
retention: {
|
|
17
|
+
mode: "duration";
|
|
18
|
+
seconds: 3600 | 18000 | 86400;
|
|
19
|
+
} | {
|
|
20
|
+
mode: "thread_lifetime";
|
|
21
|
+
};
|
|
22
|
+
bound_at: string | null;
|
|
23
|
+
expires_at: string | null;
|
|
15
24
|
processing_error: string | null;
|
|
16
25
|
metadata: Record<string, unknown>;
|
|
17
26
|
created_at: string;
|
|
@@ -20,12 +29,34 @@ export type Attachment = {
|
|
|
20
29
|
export type AttachmentUploadResult = {
|
|
21
30
|
items: Attachment[];
|
|
22
31
|
};
|
|
32
|
+
export type AttachmentContentAccess = {
|
|
33
|
+
url: string;
|
|
34
|
+
disposition: "inline" | "attachment";
|
|
35
|
+
valid_until: string;
|
|
36
|
+
filename: string;
|
|
37
|
+
mime_type: string;
|
|
38
|
+
byte_size: number;
|
|
39
|
+
};
|
|
23
40
|
export type ActiveThreadRun = {
|
|
24
41
|
run_id: string;
|
|
25
42
|
status: string;
|
|
43
|
+
is_cancellable: boolean;
|
|
26
44
|
started_at: string | null;
|
|
27
45
|
created_at: string;
|
|
28
46
|
};
|
|
47
|
+
export type FeedbackRating = "like" | "dislike";
|
|
48
|
+
export type FeedbackReason = "incorrect" | "irrelevant" | "incomplete" | "unsafe" | "citation_issue" | "other";
|
|
49
|
+
export type ResponseFeedback = {
|
|
50
|
+
rating: FeedbackRating;
|
|
51
|
+
reason: FeedbackReason | null;
|
|
52
|
+
comment: string | null;
|
|
53
|
+
created_at: string;
|
|
54
|
+
updated_at: string;
|
|
55
|
+
};
|
|
56
|
+
export type ResponseFeedbackResult = {
|
|
57
|
+
run_id: string;
|
|
58
|
+
feedback: ResponseFeedback | null;
|
|
59
|
+
};
|
|
29
60
|
export type ThreadSummary = {
|
|
30
61
|
id: string;
|
|
31
62
|
agent_id: string | null;
|
|
@@ -54,6 +85,8 @@ export type ThreadTurn = {
|
|
|
54
85
|
attachments: Attachment[];
|
|
55
86
|
created_at: string;
|
|
56
87
|
completed_at: string | null;
|
|
88
|
+
feedback: ResponseFeedback | null;
|
|
89
|
+
context_window: ContextWindow | null;
|
|
57
90
|
run_events?: RuntimeEvent[];
|
|
58
91
|
};
|
|
59
92
|
export type Turn = ThreadTurn;
|
|
@@ -77,8 +110,10 @@ export type RunContext = {
|
|
|
77
110
|
};
|
|
78
111
|
export type RunCancelResult = {
|
|
79
112
|
run_id: string;
|
|
80
|
-
status:
|
|
113
|
+
status: "cancelling" | "cancelled" | "completed" | "failed";
|
|
81
114
|
thread_id?: string | null;
|
|
115
|
+
cancellation_requested_at?: string;
|
|
116
|
+
cancellation_deadline_at?: string;
|
|
82
117
|
};
|
|
83
118
|
export type RunResumeResult = {
|
|
84
119
|
run_id: string;
|
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { RuntimeEvent, ThreadSummaryEvent } from "./generated/protocol.js";
|
|
2
|
+
import type { ContextWindow } from "./context-window.js";
|
|
2
3
|
export type MaybePromise<T> = T | Promise<T>;
|
|
3
4
|
export interface AbortSignalLike {
|
|
4
5
|
readonly aborted: boolean;
|
|
@@ -185,6 +186,46 @@ export interface Agents24ClientOptions {
|
|
|
185
186
|
transport?: TransportSelection;
|
|
186
187
|
maxReconnectAttempts?: number;
|
|
187
188
|
}
|
|
189
|
+
export interface ClientModelSelectionFeature {
|
|
190
|
+
selectable: boolean;
|
|
191
|
+
node_id: string | null;
|
|
192
|
+
node_type: "agent" | "classify" | "evaluate" | null;
|
|
193
|
+
label: string | null;
|
|
194
|
+
default_id: string | null;
|
|
195
|
+
options: readonly {
|
|
196
|
+
id: string;
|
|
197
|
+
label: string;
|
|
198
|
+
}[];
|
|
199
|
+
}
|
|
200
|
+
export interface ClientInputModalityFeature {
|
|
201
|
+
enabled: boolean;
|
|
202
|
+
required: boolean;
|
|
203
|
+
}
|
|
204
|
+
export interface ClientAttachmentInputModalityFeature extends ClientInputModalityFeature {
|
|
205
|
+
allowed_mime_types: readonly string[];
|
|
206
|
+
}
|
|
207
|
+
export interface ClientInputFeature {
|
|
208
|
+
version: "agents24.runtime-inputs.v2";
|
|
209
|
+
modalities: {
|
|
210
|
+
text: ClientInputModalityFeature;
|
|
211
|
+
files: ClientAttachmentInputModalityFeature;
|
|
212
|
+
images: ClientAttachmentInputModalityFeature;
|
|
213
|
+
audio: ClientAttachmentInputModalityFeature & {
|
|
214
|
+
recording_enabled: boolean;
|
|
215
|
+
};
|
|
216
|
+
};
|
|
217
|
+
limits: {
|
|
218
|
+
max_attachments_per_turn: number;
|
|
219
|
+
max_file_bytes: number;
|
|
220
|
+
max_total_bytes: number;
|
|
221
|
+
};
|
|
222
|
+
retention: {
|
|
223
|
+
mode: "duration";
|
|
224
|
+
seconds: 3600 | 18000 | 86400;
|
|
225
|
+
} | {
|
|
226
|
+
mode: "thread_lifetime";
|
|
227
|
+
};
|
|
228
|
+
}
|
|
188
229
|
export interface ClientBootstrap {
|
|
189
230
|
version: string;
|
|
190
231
|
deployment: {
|
|
@@ -206,7 +247,10 @@ export interface ClientBootstrap {
|
|
|
206
247
|
jwks_path: string;
|
|
207
248
|
};
|
|
208
249
|
capabilities: readonly string[];
|
|
209
|
-
features: Record<string, unknown
|
|
250
|
+
features: Record<string, unknown> & {
|
|
251
|
+
models?: ClientModelSelectionFeature;
|
|
252
|
+
inputs: ClientInputFeature;
|
|
253
|
+
};
|
|
210
254
|
native_profiles: readonly Record<string, unknown>[];
|
|
211
255
|
}
|
|
212
256
|
export interface ClientHints {
|
|
@@ -242,11 +286,38 @@ export interface RunAttachInput {
|
|
|
242
286
|
headers?: Readonly<Record<string, string>>;
|
|
243
287
|
signal?: AbortSignalLike | undefined;
|
|
244
288
|
}
|
|
289
|
+
export type FeedbackRating = "like" | "dislike";
|
|
290
|
+
export type FeedbackReason = "incorrect" | "irrelevant" | "incomplete" | "unsafe" | "citation_issue" | "other";
|
|
291
|
+
export interface ResponseFeedback {
|
|
292
|
+
rating: FeedbackRating;
|
|
293
|
+
reason: FeedbackReason | null;
|
|
294
|
+
comment: string | null;
|
|
295
|
+
created_at: string;
|
|
296
|
+
updated_at: string;
|
|
297
|
+
}
|
|
298
|
+
export interface ResponseFeedbackResult {
|
|
299
|
+
run_id: string;
|
|
300
|
+
feedback: ResponseFeedback | null;
|
|
301
|
+
}
|
|
302
|
+
export interface SetFeedbackInput {
|
|
303
|
+
runId: string;
|
|
304
|
+
rating: FeedbackRating | null;
|
|
305
|
+
reason?: FeedbackReason | null;
|
|
306
|
+
comment?: string | null;
|
|
307
|
+
signal?: AbortSignalLike;
|
|
308
|
+
}
|
|
245
309
|
export interface ThreadListInput {
|
|
246
310
|
skip?: number;
|
|
247
311
|
limit?: number;
|
|
248
312
|
signal?: AbortSignalLike | undefined;
|
|
249
313
|
}
|
|
314
|
+
export interface ActiveThreadRun {
|
|
315
|
+
run_id: string;
|
|
316
|
+
status: "queued" | "running" | "paused" | "cancelling";
|
|
317
|
+
is_cancellable: boolean;
|
|
318
|
+
started_at: string | null;
|
|
319
|
+
created_at: string;
|
|
320
|
+
}
|
|
250
321
|
export interface ThreadSummary {
|
|
251
322
|
id: string;
|
|
252
323
|
title?: string | null;
|
|
@@ -255,6 +326,7 @@ export interface ThreadSummary {
|
|
|
255
326
|
last_activity_at?: string | null;
|
|
256
327
|
last_run_id?: string | null;
|
|
257
328
|
last_run_status?: string | null;
|
|
329
|
+
active_run?: ActiveThreadRun | null;
|
|
258
330
|
[key: string]: unknown;
|
|
259
331
|
}
|
|
260
332
|
export interface ThreadListResult {
|
|
@@ -262,7 +334,9 @@ export interface ThreadListResult {
|
|
|
262
334
|
total?: number;
|
|
263
335
|
}
|
|
264
336
|
export interface ThreadDetail extends ThreadSummary {
|
|
265
|
-
turns?: readonly Record<string, unknown>
|
|
337
|
+
turns?: readonly (Record<string, unknown> & {
|
|
338
|
+
context_window?: ContextWindow | null;
|
|
339
|
+
})[];
|
|
266
340
|
paging?: {
|
|
267
341
|
has_more?: boolean;
|
|
268
342
|
next_before_turn_index?: number | null;
|
|
@@ -274,10 +348,29 @@ export interface AttachmentResult {
|
|
|
274
348
|
filename: string;
|
|
275
349
|
mime_type: string;
|
|
276
350
|
byte_size: number;
|
|
277
|
-
|
|
351
|
+
processing_status: "uploaded" | "processed" | "failed";
|
|
352
|
+
content_status: "available" | "expired";
|
|
353
|
+
retention: {
|
|
354
|
+
mode: "duration";
|
|
355
|
+
seconds: 3600 | 18000 | 86400;
|
|
356
|
+
} | {
|
|
357
|
+
mode: "thread_lifetime";
|
|
358
|
+
};
|
|
359
|
+
bound_at: string | null;
|
|
360
|
+
expires_at: string | null;
|
|
278
361
|
[key: string]: unknown;
|
|
279
362
|
}
|
|
280
|
-
export type HitlAction = "approve" | "reject" | "connect" | "skip";
|
|
363
|
+
export type HitlAction = "approve" | "reject" | "connect" | "skip" | "respond";
|
|
364
|
+
export interface HitlAnswer {
|
|
365
|
+
question_id: string;
|
|
366
|
+
selected_option_ids: string[];
|
|
367
|
+
custom_text?: string;
|
|
368
|
+
}
|
|
369
|
+
export type HitlResponse = {
|
|
370
|
+
action: HitlAction;
|
|
371
|
+
comment?: string;
|
|
372
|
+
answers?: HitlAnswer[];
|
|
373
|
+
};
|
|
281
374
|
export interface HitlResumeResult {
|
|
282
375
|
run_id: string;
|
|
283
376
|
thread_id?: string | null;
|
|
@@ -295,10 +388,42 @@ export interface McpCallbackResult {
|
|
|
295
388
|
connection_id: string;
|
|
296
389
|
server_id?: string;
|
|
297
390
|
}
|
|
391
|
+
export interface EffectiveResourcePolicy {
|
|
392
|
+
customer_principal_ref: string | null;
|
|
393
|
+
model_selection: {
|
|
394
|
+
selectable: boolean;
|
|
395
|
+
node_id: string | null;
|
|
396
|
+
default_id: string | null;
|
|
397
|
+
options: readonly {
|
|
398
|
+
id: string;
|
|
399
|
+
label: string;
|
|
400
|
+
}[];
|
|
401
|
+
};
|
|
402
|
+
quota_constraints: readonly {
|
|
403
|
+
model: {
|
|
404
|
+
id: string;
|
|
405
|
+
name: string;
|
|
406
|
+
};
|
|
407
|
+
boundary_kind: "agent" | "client_deployment" | "organization_user" | "customer_principal";
|
|
408
|
+
boundary_ref: string;
|
|
409
|
+
used: number;
|
|
410
|
+
reserved: number;
|
|
411
|
+
limit: number;
|
|
412
|
+
remaining: number;
|
|
413
|
+
period_start: string;
|
|
414
|
+
reset_at: string;
|
|
415
|
+
blocked: boolean;
|
|
416
|
+
}[];
|
|
417
|
+
}
|
|
298
418
|
export interface AgentClient {
|
|
299
419
|
bootstrap(input?: {
|
|
300
420
|
signal?: AbortSignalLike;
|
|
301
421
|
}): Promise<ClientBootstrap>;
|
|
422
|
+
readonly resourcePolicies: {
|
|
423
|
+
getEffective(input?: {
|
|
424
|
+
signal?: AbortSignalLike;
|
|
425
|
+
}): Promise<EffectiveResourcePolicy>;
|
|
426
|
+
};
|
|
302
427
|
readonly chat: {
|
|
303
428
|
stream(input: ChatStreamInput, onEvent: RuntimeEventHandler): Promise<StreamResult>;
|
|
304
429
|
};
|
|
@@ -309,6 +434,7 @@ export interface AgentClient {
|
|
|
309
434
|
idempotencyKey: string;
|
|
310
435
|
signal?: AbortSignalLike;
|
|
311
436
|
}): Promise<Record<string, unknown>>;
|
|
437
|
+
setFeedback(input: SetFeedbackInput): Promise<ResponseFeedbackResult>;
|
|
312
438
|
};
|
|
313
439
|
readonly threads: {
|
|
314
440
|
list(input?: ThreadListInput): Promise<ThreadListResult>;
|
|
@@ -316,7 +442,6 @@ export interface AgentClient {
|
|
|
316
442
|
threadId: string;
|
|
317
443
|
limit?: number;
|
|
318
444
|
beforeTurnIndex?: number;
|
|
319
|
-
includeRunEvents?: boolean;
|
|
320
445
|
signal?: AbortSignalLike;
|
|
321
446
|
}): Promise<ThreadDetail>;
|
|
322
447
|
events(input: {
|
|
@@ -330,12 +455,17 @@ export interface AgentClient {
|
|
|
330
455
|
}): Promise<Record<string, unknown>>;
|
|
331
456
|
};
|
|
332
457
|
readonly attachments: {
|
|
333
|
-
|
|
334
|
-
|
|
458
|
+
uploadBatch(input: {
|
|
459
|
+
uploads: readonly PortableUpload[];
|
|
335
460
|
threadId?: string;
|
|
336
461
|
idempotencyKey: string;
|
|
337
462
|
signal?: AbortSignalLike;
|
|
338
|
-
}): Promise<AttachmentResult>;
|
|
463
|
+
}): Promise<readonly AttachmentResult[]>;
|
|
464
|
+
createContentAccess(input: {
|
|
465
|
+
attachmentId: string;
|
|
466
|
+
disposition: "inline" | "attachment";
|
|
467
|
+
signal?: AbortSignalLike;
|
|
468
|
+
}): Promise<import("./runtime-types.js").AttachmentContentAccess>;
|
|
339
469
|
};
|
|
340
470
|
readonly hitl: {
|
|
341
471
|
resume(input: {
|
|
@@ -343,6 +473,7 @@ export interface AgentClient {
|
|
|
343
473
|
interruptId: string;
|
|
344
474
|
action: HitlAction;
|
|
345
475
|
comment?: string;
|
|
476
|
+
answers?: HitlAnswer[];
|
|
346
477
|
idempotencyKey: string;
|
|
347
478
|
signal?: AbortSignalLike;
|
|
348
479
|
}): Promise<HitlResumeResult>;
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/generated/protocol.js"],"names":[],"mappings":"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","file":"chunk-NGZUJ3YT.js","sourcesContent":["// @generated by @agents24/sdk-contract; DO NOT EDIT.\n// contract-sha256: 90a64d2df2facc3c4510edc7a0762cb86a336578667d3bc6cfeb7ae035133e00\nconst RUNTIME_EVENTS = new Set([\"run.accepted\",\"run.snapshot\",\"run.completed\",\"run.cancelled\",\"run.paused\",\"run.failed\",\"run.detached\",\"assistant.delta\",\"reasoning.update\",\"tool.started\",\"tool.completed\",\"tool.failed\",\"tool.cancelled\",\"tool.child_run_started\",\"tool.child_run_finished\",\"tool.child_tool_started\",\"tool.child_tool_completed\",\"tool.child_tool_failed\",\"tool.child_tool_cancelled\",\"context_window.updated\",\"context.compression.updated\",\"run_usage.updated\",\"hitl.requested\",\"hitl.resolved\",\"mcp.authorization.required\",\"mcp.authorization.completed\",\"mcp.authorization.failed\",\"attachment.created\",\"attachment.updated\",\"attachment.ready\",\"attachment.failed\",\"source.added\",\"citation.added\",\"ui_blocks.updated\",\"runtime.error\"]);\nconst RUNTIME_STAGES = new Set([\"run\",\"assistant\",\"reasoning\",\"tool\",\"context\",\"usage\",\"attachment\",\"source\",\"system\"]);\nconst RESPONSE_BLOCK_KINDS = new Set([\"assistant_text\",\"reasoning_note\",\"tool_call\",\"ui_blocks\",\"hitl_request\",\"error\",\"source\",\"citation\",\"attachment\",\"mcp_authorization\",\"user_message\"]);\nconst THREAD_EVENTS = new Set([\"thread.summary.updated\",\"thread.deleted\",\"snapshot_required\"]);\nconst UTC_TIMESTAMP = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z$/;\n\nexport const CONTRACT_HASH = \"90a64d2df2facc3c4510edc7a0762cb86a336578667d3bc6cfeb7ae035133e00\";\nexport const RUNTIME_PROTOCOL_VERSION = \"run-stream.v2\";\nexport const THREAD_SUMMARY_PROTOCOL_VERSION = \"agents24.thread_summary_event.v1\";\n\nexport class Agents24ProtocolError extends Error {\n constructor(category, message, details) {\n super(message);\n this.name = \"Agents24ProtocolError\";\n this.category = category;\n this.details = details;\n }\n}\n\nfunction record(value) {\n return value !== null && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction nonEmptyString(value) {\n return typeof value === \"string\" && value.length > 0;\n}\n\nfunction protocolError(category, message, details) {\n throw new Agents24ProtocolError(category, message, details);\n}\n\nfunction includesProtocolName(values, value) {\n return Array.isArray(values) && values.includes(value);\n}\n\nexport function parseProtocolJson(payload) {\n try {\n return JSON.parse(payload);\n } catch (cause) {\n return protocolError(\"invalid_json\", \"Protocol payload is not valid JSON.\", cause);\n }\n}\n\nexport function validateResponseBlock(value) {\n if (!record(value) || !nonEmptyString(value.id) || !RESPONSE_BLOCK_KINDS.has(value.kind)) {\n return protocolError(\"invalid_response_block\", \"Response block identity or kind is invalid.\", value);\n }\n if (!Number.isInteger(value.seq) || value.seq < 0 || !nonEmptyString(value.status)) {\n return protocolError(\"invalid_response_block\", \"Response block sequence or status is invalid.\", value);\n }\n return value;\n}\n\nfunction validateBlocks(value) {\n if (!record(value)) return;\n const blocks = value.response_blocks;\n if (blocks === undefined) return;\n if (!Array.isArray(blocks)) {\n protocolError(\"invalid_response_block\", \"response_blocks must be an array.\", blocks);\n }\n for (const block of blocks) validateResponseBlock(block);\n}\n\nexport function validateRuntimeEvent(value, options = {}) {\n if (!record(value)) {\n return protocolError(\"invalid_envelope\", \"Runtime event must be an object.\", value);\n }\n if (value.version !== RUNTIME_PROTOCOL_VERSION) {\n return protocolError(\"unsupported_version\", \"Runtime event version is unsupported.\", value.version);\n }\n if (!RUNTIME_EVENTS.has(value.event) && !includesProtocolName(options.additionalEventNames, value.event)) {\n return protocolError(\"unknown_event\", \"Runtime event name is not in the public protocol.\", value.event);\n }\n if (!Number.isInteger(value.seq) || value.seq < 0 || !UTC_TIMESTAMP.test(value.ts || \"\") ||\n !nonEmptyString(value.run_id) ||\n (!RUNTIME_STAGES.has(value.stage) && !includesProtocolName(options.additionalStages, value.stage)) ||\n !record(value.payload)) {\n return protocolError(\"invalid_envelope\", \"Runtime event is missing a required public field.\", value);\n }\n validateBlocks(value.payload);\n return value;\n}\n\nexport function parseRuntimeEvent(payload, options) {\n return validateRuntimeEvent(parseProtocolJson(payload), options);\n}\n\nexport function validateThreadSummaryEvent(value) {\n if (!record(value) || value.schema_version !== THREAD_SUMMARY_PROTOCOL_VERSION ||\n !THREAD_EVENTS.has(value.event) || !Number.isInteger(value.cursor) || value.cursor < 0) {\n return protocolError(\"invalid_thread_summary\", \"Thread-summary event envelope is invalid.\", value);\n }\n if (value.event === \"thread.summary.updated\" && !record(value.thread)) {\n return protocolError(\"invalid_thread_summary\", \"Updated thread-summary event requires thread.\", value);\n }\n if (value.event === \"thread.deleted\" && !nonEmptyString(value.thread_id)) {\n return protocolError(\"invalid_thread_summary\", \"Deleted thread-summary event requires thread_id.\", value);\n }\n return value;\n}\n\nfunction parseSseBlock(block) {\n const data = [];\n for (const line of block.split(/\\r\\n|\\r|\\n/)) {\n if (!line || line.startsWith(\":\")) continue;\n const separator = line.indexOf(\":\");\n const field = separator < 0 ? line : line.slice(0, separator);\n let value = separator < 0 ? \"\" : line.slice(separator + 1);\n if (value.startsWith(\" \")) value = value.slice(1);\n if (field === \"data\") data.push(value);\n }\n return data.length ? data.join(\"\\n\") : null;\n}\n\nfunction nextSseBoundary(buffer) {\n const match = /\\r\\n\\r\\n|\\n\\n|\\r\\r/.exec(buffer);\n return match ? { index: match.index, length: match[0].length } : null;\n}\n\nexport function createSseParser(options) {\n const { decoder, onPayload, signal } = options;\n if (!decoder || typeof decoder.decode !== \"function\" || typeof onPayload !== \"function\") {\n protocolError(\"invalid_envelope\", \"SSE parser requires decoder and onPayload capabilities.\");\n }\n let buffer = \"\";\n let finished = false;\n\n async function drain(allowTrailing) {\n let boundary = nextSseBoundary(buffer);\n while (boundary) {\n const block = buffer.slice(0, boundary.index);\n buffer = buffer.slice(boundary.index + boundary.length);\n const payload = parseSseBlock(block);\n if (payload !== null) await onPayload(payload);\n if (signal?.aborted) return;\n boundary = nextSseBoundary(buffer);\n }\n if (allowTrailing && buffer.trim()) {\n const payload = parseSseBlock(buffer);\n buffer = \"\";\n if (payload !== null) await onPayload(payload);\n }\n }\n\n return {\n async push(chunk) {\n if (finished) protocolError(\"invalid_envelope\", \"Cannot push after SSE parser finish.\");\n if (signal?.aborted) return;\n buffer += decoder.decode(chunk, { stream: true });\n await drain(false);\n },\n async finish() {\n if (finished) return;\n finished = true;\n if (signal?.aborted) return;\n buffer += decoder.decode();\n await drain(true);\n },\n };\n}\n\nexport async function parseSseBytes(chunks, options) {\n const payloads = [];\n const parser = createSseParser({\n ...options,\n onPayload: async (payload) => {\n payloads.push(payload);\n if (options.onPayload) await options.onPayload(payload);\n },\n });\n for await (const chunk of chunks) {\n if (options.signal?.aborted) break;\n await parser.push(chunk);\n }\n await parser.finish();\n return payloads;\n}\n\nexport function parseRuntimeSsePayload(payload, options) {\n return parseRuntimeEvent(payload, options);\n}\n\nexport function parseThreadSummarySsePayload(payload) {\n return validateThreadSummaryEvent(parseProtocolJson(payload));\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/client.ts"],"names":[],"mappings":"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","file":"chunk-QAIOKNUK.js","sourcesContent":["import { defaultClock, defaultIds, resolveDecoderFactory, resolveEncoder, resolveFetch } from \"./capabilities.js\";\nimport { Agents24ClientError } from \"./errors.js\";\nimport { AuthenticatedHttp, responseError, responseJson } from \"./http.js\";\nimport { createByteMultipartEncoder } from \"./multipart.js\";\nimport { consumeRuntimeStream, consumeThreadSummaryStream, type RuntimeStreamState } from \"./stream.js\";\nimport { appendQuery, encodePath, normalizeBaseUrl } from \"./url.js\";\nimport type {\n AgentClient,\n Agents24ClientOptions,\n AttachmentResult,\n ClientBootstrap,\n HitlResumeResult,\n McpAuthorizationResult,\n McpCallbackResult,\n RuntimeEventHandler,\n StreamResult,\n ThreadDetail,\n ThreadListResult,\n ThreadSummaryEventHandler,\n} from \"./types.js\";\n\nfunction objectResult<T extends object>(value: unknown, operation: string): T {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n throw new Agents24ClientError(`${operation} returned an invalid response.`, {\n kind: \"protocol\",\n code: \"INVALID_JSON_RESPONSE\",\n });\n }\n return value as T;\n}\n\nfunction deploymentPath(deploymentId: string, suffix: string): string {\n return `/public/client-runtime/deployments/${encodePath(deploymentId)}${suffix}`;\n}\n\nfunction shouldReconnect(error: unknown): boolean {\n return error instanceof Agents24ClientError && error.kind === \"network\" && error.retryable;\n}\n\nexport function createAgents24Client(options: Agents24ClientOptions): AgentClient {\n if (!options.deploymentId || /[\\r\\n\\0/]/.test(options.deploymentId)) {\n throw new Agents24ClientError(\"deploymentId is invalid.\", {\n kind: \"configuration\",\n code: \"INVALID_DEPLOYMENT_ID\",\n });\n }\n if (options.transport !== undefined && options.transport !== \"auto\" && options.transport !== \"fetch\") {\n throw new Agents24ClientError(\"The requested transport is unavailable.\", {\n kind: \"missing_capability\",\n code: \"MISSING_TRANSPORT\",\n });\n }\n const baseUrl = normalizeBaseUrl(options.baseUrl);\n const fetch = resolveFetch(options.fetch);\n const decoder = resolveDecoderFactory(options.decoder);\n const clock = options.clock ?? defaultClock();\n const ids = options.ids ?? defaultIds();\n const maxReconnectAttempts = Math.max(0, Math.min(options.maxReconnectAttempts ?? 3, 10));\n const http = new AuthenticatedHttp({\n baseUrl,\n sessionProvider: options.sessionProvider,\n fetch,\n clock,\n ...(options.telemetry ? { telemetry: options.telemetry } : {}),\n });\n const emit = async (event: Parameters<NonNullable<typeof options.telemetry>[\"emit\"]>[0]): Promise<void> => {\n try {\n await options.telemetry?.emit(event);\n } catch {\n // Telemetry is isolated from runtime behavior and credentials.\n }\n };\n\n const attach = async (\n runId: string,\n cursor: number | undefined,\n headers: Readonly<Record<string, string>> | undefined,\n signal: Parameters<AgentClient[\"runs\"][\"attach\"]>[0][\"signal\"],\n onEvent: RuntimeEventHandler,\n onProgress?: (state: RuntimeStreamState) => void,\n ): Promise<RuntimeStreamState> => {\n const response = await http.request(\n \"POST\",\n deploymentPath(options.deploymentId, `/runs/${encodePath(runId)}/attach`),\n {\n operation: \"runs.attach\",\n accept: \"text/event-stream\",\n body: cursor === undefined ? {} : { cursor },\n ...(headers ? { headers } : {}),\n ...(signal ? { signal } : {}),\n },\n );\n return consumeRuntimeStream({\n response,\n decoder: decoder(),\n onEvent,\n ...(signal ? { signal } : {}),\n ...(cursor === undefined ? {} : { afterCursor: cursor }),\n ...(onProgress ? { onProgress } : {}),\n });\n };\n\n const reconnect = async (\n initial: (onProgress: (next: RuntimeStreamState) => void) => Promise<RuntimeStreamState>,\n signal: Parameters<AgentClient[\"runs\"][\"attach\"]>[0][\"signal\"],\n onEvent: RuntimeEventHandler,\n operation: \"chat.stream\" | \"runs.attach\",\n headers?: Readonly<Record<string, string>>,\n ): Promise<StreamResult> => {\n let state: RuntimeStreamState | undefined;\n let attempt = 0;\n const onProgress = (next: RuntimeStreamState) => {\n if (!state) {\n void emit({\n type: \"stream.connected\",\n operation,\n ...(next.runId ? { runId: next.runId } : {}),\n ...(next.cursor === null ? {} : { cursor: next.cursor }),\n attempt,\n });\n }\n state = next;\n };\n while (true) {\n try {\n state = state?.runId\n ? await attach(state.runId, state.cursor ?? undefined, headers, signal, onEvent, onProgress)\n : await initial(onProgress);\n } catch (error) {\n if (signal?.aborted || !shouldReconnect(error) || attempt >= maxReconnectAttempts) throw error;\n attempt += 1;\n await emit({\n type: \"stream.reconnecting\",\n operation,\n ...(state?.runId ? { runId: state.runId } : {}),\n ...(state?.cursor == null ? {} : { cursor: state.cursor }),\n attempt,\n reason: \"network\",\n });\n continue;\n }\n if (!state.detached || signal?.aborted) {\n await emit({\n type: \"stream.completed\",\n operation,\n ...(state.runId ? { runId: state.runId } : {}),\n ...(state.cursor === null ? {} : { cursor: state.cursor }),\n attempt,\n });\n return state;\n }\n await emit({\n type: \"stream.detached\",\n operation,\n ...(state.runId ? { runId: state.runId } : {}),\n ...(state.cursor === null ? {} : { cursor: state.cursor }),\n attempt,\n reason: state.detachReason ?? \"server_detach\",\n });\n if (attempt >= maxReconnectAttempts || state.detachReason === \"revoked\" || state.detachReason === \"policy_changed\") {\n return state;\n }\n if (state.detachReason === \"token_expired\" && options.sessionProvider.refresh) {\n await options.sessionProvider.refresh({ reason: \"stream_detached\", ...(signal ? { signal } : {}) });\n }\n attempt += 1;\n }\n };\n\n return {\n async bootstrap(input) {\n let response: Awaited<ReturnType<typeof fetch>>;\n try {\n response = await fetch(\n `${baseUrl}${deploymentPath(options.deploymentId, \"/bootstrap\")}`,\n {\n method: \"GET\",\n headers: { Accept: \"application/json\", \"Cache-Control\": \"no-store\", Pragma: \"no-cache\" },\n redirect: \"error\",\n cache: \"no-store\",\n credentials: \"omit\",\n ...(input?.signal ? { signal: input.signal } : {}),\n },\n );\n } catch (cause) {\n throw new Agents24ClientError(\"The Agents24 deployment bootstrap could not be reached.\", {\n kind: input?.signal?.aborted ? \"aborted\" : \"network\",\n code: input?.signal?.aborted ? \"ABORTED\" : \"NETWORK_ERROR\",\n retryable: !input?.signal?.aborted,\n cause,\n });\n }\n if (response.redirected || (response.status >= 300 && response.status < 400)) {\n throw new Agents24ClientError(\"Client-runtime redirects are not allowed.\", {\n kind: \"network\",\n code: \"REDIRECT_REJECTED\",\n status: response.status,\n });\n }\n if (!response.ok) throw await responseError(response);\n return objectResult<ClientBootstrap>(await responseJson(response), \"Bootstrap\");\n },\n chat: {\n async stream(input, onEvent) {\n const initial = async (onProgress: (state: RuntimeStreamState) => void) => {\n const response = await http.request(\n \"POST\",\n deploymentPath(options.deploymentId, \"/chat/stream\"),\n {\n operation: \"chat.stream\",\n accept: \"text/event-stream\",\n idempotencyKey: input.idempotencyKey,\n ...(input.headers ? { headers: input.headers } : {}),\n body: {\n input: input.input,\n attachment_ids: [...(input.attachmentIds ?? [])],\n ...(input.threadId ? { thread_id: input.threadId } : {}),\n ...(input.requestedModelId ? { requested_model_id: input.requestedModelId } : {}),\n tool_inputs: input.toolInputs ?? {},\n metadata: input.metadata ?? {},\n client: input.client ?? { sdk_name: \"@agents24/client\", sdk_version: \"0.2.0\" },\n },\n ...(input.signal ? { signal: input.signal } : {}),\n },\n );\n return consumeRuntimeStream({\n response,\n decoder: decoder(),\n onEvent,\n ...(input.signal ? { signal: input.signal } : {}),\n onProgress,\n });\n };\n return reconnect(initial, input.signal, onEvent, \"chat.stream\", input.headers);\n },\n },\n runs: {\n async attach(input, onEvent) {\n const initial = (onProgress: (state: RuntimeStreamState) => void) =>\n attach(input.runId, input.cursor, input.headers, input.signal, onEvent, onProgress);\n return reconnect(initial, input.signal, onEvent, \"runs.attach\", input.headers);\n },\n async cancel(input) {\n const result = await http.json<unknown>(\n \"POST\",\n deploymentPath(options.deploymentId, `/runs/${encodePath(input.runId)}/cancel`),\n {\n operation: \"runs.cancel\",\n body: {},\n idempotencyKey: input.idempotencyKey,\n ...(input.signal ? { signal: input.signal } : {}),\n },\n );\n return objectResult<Record<string, unknown>>(result, \"Run cancellation\");\n },\n },\n threads: {\n async list(input) {\n const path = appendQuery(deploymentPath(options.deploymentId, \"/threads\"), {\n skip: input?.skip,\n limit: input?.limit,\n });\n const result = await http.json<unknown>(\"GET\", path, {\n operation: \"threads.list\",\n ...(input?.signal ? { signal: input.signal } : {}),\n });\n return objectResult<ThreadListResult>(result, \"Thread listing\");\n },\n async get(input) {\n const path = appendQuery(\n deploymentPath(options.deploymentId, `/threads/${encodePath(input.threadId)}`),\n {\n limit: input.limit,\n before_turn_index: input.beforeTurnIndex,\n include_run_events: input.includeRunEvents,\n },\n );\n const result = await http.json<unknown>(\"GET\", path, {\n operation: \"threads.get\",\n ...(input.signal ? { signal: input.signal } : {}),\n });\n return objectResult<ThreadDetail>(result, \"Thread detail\");\n },\n async events(input, onEvent: ThreadSummaryEventHandler) {\n let cursor = input.cursor;\n let attempts = 0;\n while (!input.signal?.aborted) {\n try {\n const path = appendQuery(deploymentPath(options.deploymentId, \"/threads/events\"), { cursor });\n const response = await http.request(\"GET\", path, {\n operation: \"threads.events\",\n accept: \"text/event-stream\",\n ...(input.signal ? { signal: input.signal } : {}),\n });\n cursor = (await consumeThreadSummaryStream({\n response,\n decoder: decoder(),\n onEvent,\n ...(input.signal ? { signal: input.signal } : {}),\n ...(cursor === undefined ? {} : { afterCursor: cursor }),\n onCursor(next) {\n cursor = next;\n },\n })) ?? undefined;\n return;\n } catch (error) {\n if (input.signal?.aborted || !shouldReconnect(error) || attempts >= maxReconnectAttempts) throw error;\n attempts += 1;\n }\n }\n },\n async delete(input) {\n const result = await http.json<unknown>(\n \"DELETE\",\n deploymentPath(options.deploymentId, `/threads/${encodePath(input.threadId)}`),\n {\n operation: \"threads.delete\",\n idempotencyKey: input.idempotencyKey,\n ...(input.signal ? { signal: input.signal } : {}),\n },\n );\n return objectResult<Record<string, unknown>>(result, \"Thread deletion\");\n },\n },\n attachments: {\n async upload(input) {\n const multipart = options.multipart ?? createByteMultipartEncoder(resolveEncoder(options.encoder));\n const encoded = await multipart.encode([\n ...(input.threadId ? [{ field: \"thread_id\", value: input.threadId }] : []),\n { field: \"files\", value: input.upload },\n ]);\n const result = await http.json<unknown>(\n \"POST\",\n deploymentPath(options.deploymentId, \"/attachments/upload\"),\n {\n operation: \"attachments.upload\",\n rawBody: encoded.body,\n contentType: encoded.contentType,\n idempotencyKey: input.idempotencyKey,\n ...(input.signal ? { signal: input.signal } : {}),\n },\n );\n const body = objectResult<Record<string, unknown>>(result, \"Attachment upload\");\n const item = Array.isArray(body.items) ? body.items[0] : body;\n return objectResult<AttachmentResult>(item, \"Attachment upload\");\n },\n },\n hitl: {\n async resume(input) {\n const result = await http.json<unknown>(\n \"POST\",\n deploymentPath(\n options.deploymentId,\n `/runs/${encodePath(input.runId)}/hitl/${encodePath(input.interruptId)}/resume`,\n ),\n {\n operation: \"hitl.resume\",\n idempotencyKey: input.idempotencyKey,\n body: {\n schema_version: \"agents24.hitl.resume.v2\",\n interrupt_id: input.interruptId,\n action: input.action,\n ...(input.comment ? { comment: input.comment } : {}),\n },\n ...(input.signal ? { signal: input.signal } : {}),\n },\n );\n return objectResult<HitlResumeResult>(result, \"HITL resume\");\n },\n },\n mcp: {\n async startAuthorization(input) {\n const result = await http.json<unknown>(\n \"POST\",\n deploymentPath(\n options.deploymentId,\n `/runs/${encodePath(input.runId)}/mcp/servers/${encodePath(input.serverId)}/auth/start`,\n ),\n {\n operation: \"mcp.startAuthorization\",\n idempotencyKey: input.idempotencyKey,\n body: {\n interrupt_id: input.interruptId,\n redirect_uri: input.redirectUri,\n popup_nonce: input.popupNonce,\n code_challenge: input.codeChallenge,\n code_challenge_method: \"S256\",\n },\n ...(input.signal ? { signal: input.signal } : {}),\n },\n );\n return objectResult<McpAuthorizationResult>(result, \"MCP authorization start\");\n },\n async redeemCallback(input) {\n const result = await http.json<unknown>(\n \"POST\",\n deploymentPath(options.deploymentId, \"/mcp/callback/redeem\"),\n {\n operation: \"mcp.redeemCallback\",\n idempotencyKey: input.idempotencyKey,\n body: { code: input.code, code_verifier: input.codeVerifier },\n ...(input.signal ? { signal: input.signal } : {}),\n },\n );\n return objectResult<McpCallbackResult>(result, \"MCP callback redemption\");\n },\n },\n sessions: {\n async revoke(input) {\n if (!options.sessionProvider.revoke) {\n throw new Agents24ClientError(\"The configured session provider cannot revoke sessions.\", {\n kind: \"missing_capability\",\n code: \"SESSION_REVOKE_UNAVAILABLE\",\n });\n }\n await options.sessionProvider.revoke({\n idempotencyKey: input?.idempotencyKey ?? ids.createId(),\n ...(input?.signal ? { signal: input.signal } : {}),\n });\n },\n },\n };\n}\n"]}
|