@introspection-sdk/introspection-node 0.4.10 → 0.5.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.
- package/.turbo/turbo-build.log +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/pagination.d.ts +38 -0
- package/dist/pagination.d.ts.map +1 -0
- package/dist/pagination.js +43 -0
- package/dist/pagination.js.map +1 -0
- package/dist/resources/experiments.d.ts +9 -3
- package/dist/resources/experiments.d.ts.map +1 -1
- package/dist/resources/experiments.js +10 -13
- package/dist/resources/experiments.js.map +1 -1
- package/dist/resources/recipes.d.ts +9 -4
- package/dist/resources/recipes.d.ts.map +1 -1
- package/dist/resources/recipes.js +10 -13
- package/dist/resources/recipes.js.map +1 -1
- package/dist/resources/runtimes.d.ts +9 -3
- package/dist/resources/runtimes.d.ts.map +1 -1
- package/dist/resources/runtimes.js +22 -22
- package/dist/resources/runtimes.js.map +1 -1
- package/dist/runner-resources/conversations.d.ts +73 -0
- package/dist/runner-resources/conversations.d.ts.map +1 -0
- package/dist/runner-resources/conversations.js +161 -0
- package/dist/runner-resources/conversations.js.map +1 -0
- package/dist/runner-resources/files.d.ts +18 -8
- package/dist/runner-resources/files.d.ts.map +1 -1
- package/dist/runner-resources/files.js +29 -31
- package/dist/runner-resources/files.js.map +1 -1
- package/dist/runner-resources/tasks.d.ts +9 -3
- package/dist/runner-resources/tasks.d.ts.map +1 -1
- package/dist/runner-resources/tasks.js +10 -12
- package/dist/runner-resources/tasks.js.map +1 -1
- package/dist/runner.d.ts +5 -2
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +6 -2
- package/dist/runner.js.map +1 -1
- package/package.json +6 -6
- package/src/index.ts +23 -1
- package/src/pagination.ts +69 -0
- package/src/resources/experiments.ts +17 -16
- package/src/resources/recipes.ts +17 -16
- package/src/resources/runtimes.ts +28 -25
- package/src/runner-resources/conversations.ts +202 -0
- package/src/runner-resources/files.ts +56 -40
- package/src/runner-resources/tasks.ts +17 -15
- package/src/runner.ts +6 -2
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
> @introspection-sdk/introspection-node@0.
|
|
2
|
+
> @introspection-sdk/introspection-node@0.5.1 build /home/runner/work/introspection-js-sdk/introspection-js-sdk/packages/introspection-node
|
|
3
3
|
> tsc
|
|
4
4
|
|
package/dist/index.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export { TasksApi, TaskRunsApi, RunHandle } from "./runner-resources/tasks.js";
|
|
|
14
14
|
export type { StartParams } from "./runner-resources/tasks.js";
|
|
15
15
|
export { FilesApi, FileVersionsApi } from "./runner-resources/files.js";
|
|
16
16
|
export type { FileUploadBody } from "./runner-resources/files.js";
|
|
17
|
+
export { ConversationsApi, ConversationItemsApi, } from "./runner-resources/conversations.js";
|
|
17
18
|
export { HttpClient } from "./http.js";
|
|
18
19
|
export type { ResolvedApiConfig } from "./http.js";
|
|
19
20
|
export { parseSse } from "./streaming.js";
|
|
@@ -24,9 +25,10 @@ export type { RuntimeHandleFactory } from "./resources/runtimes.js";
|
|
|
24
25
|
export { ExperimentsApi, ExperimentHandle, attachExperiments, } from "./resources/experiments.js";
|
|
25
26
|
export type { ExperimentHandleFactory } from "./resources/experiments.js";
|
|
26
27
|
export { RecipesApi, attachRecipes } from "./resources/recipes.js";
|
|
27
|
-
export type { Paginated, ListParams, Task, TaskCreateParams, TaskUpdateParams, TaskListParams, TaskMode, TaskStatus, TaskPrompt, TaskRun, TaskRunCreateParams, TaskRunResponse, TaskCreateResponse, TaskCancelResponse, AgentInfo, File, FileType, FileListParams, FileUpdateParams, FileCreateTextParams, SseEvent, Runtime, RuntimeCreate, RuntimeUpdate, RuntimeListParams, Experiment, ExperimentCreate, ExperimentUpdate, ExperimentListParams, ExperimentStatus, ExperimentEndParams, Arm, Recipe, RecipeCreate, RecipeUpdate, RecipeListParams, RunnerSpec, RunnerDeployment, RunnerContext, RunnerRecipeSummary, RunnerIdentity, RunRequest, RunCaller, RunCallerLibrary, RunCallerPage, RunIdentityInput, } from "@introspection-sdk/types";
|
|
28
|
+
export type { Paginated, ListParams, Task, TaskCreateParams, TaskUpdateParams, TaskListParams, TaskMode, TaskStatus, TaskPrompt, TaskRun, TaskRunCreateParams, TaskRunResponse, TaskCreateResponse, TaskCancelResponse, AgentInfo, File, FileType, FileListParams, FileUpdateParams, FileCreateTextParams, SseEvent, Runtime, RuntimeCreate, RuntimeUpdate, RuntimeListParams, Experiment, ExperimentCreate, ExperimentUpdate, ExperimentListParams, ExperimentStatus, ExperimentEndParams, Arm, Recipe, RecipeCreate, RecipeUpdate, RecipeListParams, RunnerSpec, RunnerDeployment, RunnerContext, RunnerRecipeSummary, RunnerIdentity, RunRequest, RunCaller, RunCallerLibrary, RunCallerPage, RunIdentityInput, ConversationSummary, ConversationItem, ConversationItemList, ConversationItemInclude, ConversationItemNodeType, ConversationListParams, ConversationItemListParams, ConversationResponse, ConversationsMethod, IntrospectionMetadata, SpanEvent, SpanKind, SpanStatus, } from "@introspection-sdk/types";
|
|
29
|
+
export { ConversationsMethods } from "@introspection-sdk/types";
|
|
28
30
|
export { IntrospectionAPIError, AuthenticationError, InsufficientScopeError, RunnerExpiredError, NotFoundError, ConflictError, ValidationError, RateLimitError, SandboxUnavailableError, StreamError, NetworkError, apiErrorFromResponse, } from "@introspection-sdk/types";
|
|
29
|
-
export type { GenAiAttributes, InputMessage, OutputMessage, SystemInstruction, ToolDefinition, TextPart, ToolCallRequestPart, ToolCallResponsePart, MessagePart, } from "@introspection-sdk/types";
|
|
31
|
+
export type { GenAiAttributes, InputMessage, OutputMessage, SystemInstruction, ToolDefinition, TextPart, ToolCallRequestPart, ToolCallResponsePart, CompactionPart, MediaUrlPart, BinaryDataPart, MessagePart, } from "@introspection-sdk/types";
|
|
30
32
|
export { toAttributes } from "@introspection-sdk/types";
|
|
31
33
|
export { convertResponsesInputsToSemconv, convertResponsesOutputsToSemconv, convertResponsesToolsToSemconv, convertResponsesInstructionsToSemconv, } from "./converters/openai.js";
|
|
32
34
|
export type { ResponseInputItem, ResponseOutputItem, ResponseTool, ResponseUsage, Response as OpenAIResponse, } from "./converters/openai.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGlD,YAAY,EACV,eAAe,EACf,0BAA0B,EAC1B,eAAe,EACf,UAAU,GACX,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -10,9 +10,11 @@
|
|
|
10
10
|
*/
|
|
11
11
|
// REST client.
|
|
12
12
|
export { IntrospectionClient } from "./client.js";
|
|
13
|
-
// Runner-bound REST namespaces (runner.tasks, runner.files
|
|
13
|
+
// Runner-bound REST namespaces (runner.tasks, runner.files,
|
|
14
|
+
// runner.conversations) + HTTP/SSE.
|
|
14
15
|
export { TasksApi, TaskRunsApi, RunHandle } from "./runner-resources/tasks.js";
|
|
15
16
|
export { FilesApi, FileVersionsApi } from "./runner-resources/files.js";
|
|
17
|
+
export { ConversationsApi, ConversationItemsApi, } from "./runner-resources/conversations.js";
|
|
16
18
|
export { HttpClient } from "./http.js";
|
|
17
19
|
export { parseSse } from "./streaming.js";
|
|
18
20
|
// Runner + CP resources.
|
|
@@ -20,6 +22,7 @@ export { Runner } from "./runner.js";
|
|
|
20
22
|
export { RuntimesApi, RuntimeHandle, attachRuntimes, isUuid, } from "./resources/runtimes.js";
|
|
21
23
|
export { ExperimentsApi, ExperimentHandle, attachExperiments, } from "./resources/experiments.js";
|
|
22
24
|
export { RecipesApi, attachRecipes } from "./resources/recipes.js";
|
|
25
|
+
export { ConversationsMethods } from "@introspection-sdk/types";
|
|
23
26
|
export { IntrospectionAPIError, AuthenticationError, InsufficientScopeError, RunnerExpiredError, NotFoundError, ConflictError, ValidationError, RateLimitError, SandboxUnavailableError, StreamError, NetworkError, apiErrorFromResponse, } from "@introspection-sdk/types";
|
|
24
27
|
export { toAttributes } from "@introspection-sdk/types";
|
|
25
28
|
// OpenAI converter exports (pure functions, no OTel SDK imports).
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,eAAe;AACf,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAUlD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,eAAe;AACf,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAUlD,4DAA4D;AAC5D,oCAAoC;AACpC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE/E,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAExE,OAAO,EACL,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,yBAAyB;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EACL,WAAW,EACX,aAAa,EACb,cAAc,EACd,MAAM,GACP,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAgEnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,WAAW,EACX,YAAY,EACZ,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAiBlC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,kEAAkE;AAClE,OAAO,EACL,+BAA+B,EAC/B,gCAAgC,EAChC,8BAA8B,EAC9B,qCAAqC,GACtC,MAAM,wBAAwB,CAAC;AAShC,2DAA2D;AAC3D,OAAO,EACL,oCAAoC,EACpC,uCAAuC,EACvC,uCAAuC,EACvC,mCAAmC,GACpC,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Paginated } from "@introspection-sdk/types";
|
|
2
|
+
/**
|
|
3
|
+
* Adapts a wire pagination protocol for {@link Paginator}: how to fetch
|
|
4
|
+
* a page at a given cursor, pull the items out of it, and find the
|
|
5
|
+
* cursor for the next page (`undefined` once the list is exhausted).
|
|
6
|
+
*/
|
|
7
|
+
export interface PageSource<T, TPage> {
|
|
8
|
+
/** Fetch the page at `cursor` (`undefined` = the first page). */
|
|
9
|
+
fetch(cursor: string | undefined): Promise<TPage>;
|
|
10
|
+
/** Items contained in `page`, in iteration order. */
|
|
11
|
+
items(page: TPage): T[];
|
|
12
|
+
/** Cursor for the page after `page`, or `undefined` when exhausted. */
|
|
13
|
+
next(page: TPage): string | undefined;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* A lazy, auto-paging collection.
|
|
17
|
+
*
|
|
18
|
+
* - `await listing` resolves to the FIRST page, preserving the wire
|
|
19
|
+
* envelope's metadata (counts, `has_more`, …).
|
|
20
|
+
* - `for await (const item of listing)` streams every item across all
|
|
21
|
+
* pages, fetching each page only as the iterator reaches it; stop
|
|
22
|
+
* early to stop fetching.
|
|
23
|
+
*/
|
|
24
|
+
export declare class Paginator<T, TPage = Paginated<T>> implements AsyncIterable<T>, PromiseLike<TPage> {
|
|
25
|
+
private readonly source;
|
|
26
|
+
private readonly start?;
|
|
27
|
+
constructor(source: PageSource<T, TPage>, start?: string | undefined);
|
|
28
|
+
/** Thenable: resolves to the first page (no further pages fetched). */
|
|
29
|
+
then<R1 = TPage, R2 = never>(onfulfilled?: ((page: TPage) => R1 | PromiseLike<R1>) | null, onrejected?: ((reason: unknown) => R2 | PromiseLike<R2>) | null): PromiseLike<R1 | R2>;
|
|
30
|
+
[Symbol.asyncIterator](): AsyncIterator<T>;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Build a {@link Paginator} over the standard Introspection cursor
|
|
34
|
+
* envelope ({@link Paginated}): items live in `records` and the next
|
|
35
|
+
* page is reached via the opaque `next` token.
|
|
36
|
+
*/
|
|
37
|
+
export declare function cursorPaginate<T>(fetch: (next: string | undefined) => Promise<Paginated<T>>, start?: string): Paginator<T, Paginated<T>>;
|
|
38
|
+
//# sourceMappingURL=pagination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../src/pagination.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD;;;;GAIG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC,EAAE,KAAK;IAClC,iEAAiE;IACjE,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAClD,qDAAqD;IACrD,KAAK,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;IACxB,uEAAuE;IACvE,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;CACvC;AAED;;;;;;;;GAQG;AACH,qBAAa,SAAS,CAAC,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAC5C,YAAW,aAAa,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC;IAG7C,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;gBADN,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,EAC5B,KAAK,CAAC,EAAE,MAAM,YAAA;IAGjC,uEAAuE;IACvE,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAK,EACzB,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAC5D,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAC9D,WAAW,CAAC,EAAE,GAAG,EAAE,CAAC;IAIhB,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC;CAQlD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAC1D,KAAK,CAAC,EAAE,MAAM,GACb,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAS5B"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A lazy, auto-paging collection.
|
|
3
|
+
*
|
|
4
|
+
* - `await listing` resolves to the FIRST page, preserving the wire
|
|
5
|
+
* envelope's metadata (counts, `has_more`, …).
|
|
6
|
+
* - `for await (const item of listing)` streams every item across all
|
|
7
|
+
* pages, fetching each page only as the iterator reaches it; stop
|
|
8
|
+
* early to stop fetching.
|
|
9
|
+
*/
|
|
10
|
+
export class Paginator {
|
|
11
|
+
source;
|
|
12
|
+
start;
|
|
13
|
+
constructor(source, start) {
|
|
14
|
+
this.source = source;
|
|
15
|
+
this.start = start;
|
|
16
|
+
}
|
|
17
|
+
/** Thenable: resolves to the first page (no further pages fetched). */
|
|
18
|
+
then(onfulfilled, onrejected) {
|
|
19
|
+
return this.source.fetch(this.start).then(onfulfilled, onrejected);
|
|
20
|
+
}
|
|
21
|
+
async *[Symbol.asyncIterator]() {
|
|
22
|
+
let cursor = this.start;
|
|
23
|
+
do {
|
|
24
|
+
const page = await this.source.fetch(cursor);
|
|
25
|
+
for (const item of this.source.items(page))
|
|
26
|
+
yield item;
|
|
27
|
+
cursor = this.source.next(page);
|
|
28
|
+
} while (cursor !== undefined);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Build a {@link Paginator} over the standard Introspection cursor
|
|
33
|
+
* envelope ({@link Paginated}): items live in `records` and the next
|
|
34
|
+
* page is reached via the opaque `next` token.
|
|
35
|
+
*/
|
|
36
|
+
export function cursorPaginate(fetch, start) {
|
|
37
|
+
return new Paginator({
|
|
38
|
+
fetch,
|
|
39
|
+
items: (page) => page.records,
|
|
40
|
+
next: (page) => page.next ?? undefined,
|
|
41
|
+
}, start);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../src/pagination.ts"],"names":[],"mappings":"AAgBA;;;;;;;;GAQG;AACH,MAAM,OAAO,SAAS;IAID;IACA;IAFnB,YACmB,MAA4B,EAC5B,KAAc;QADd,WAAM,GAAN,MAAM,CAAsB;QAC5B,UAAK,GAAL,KAAK,CAAS;IAC9B,CAAC;IAEJ,uEAAuE;IACvE,IAAI,CACF,WAA4D,EAC5D,UAA+D;QAE/D,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;QAC3B,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,GAAG,CAAC;YACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,MAAM,IAAI,CAAC;YACvD,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC,QAAQ,MAAM,KAAK,SAAS,EAAE;IACjC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,KAA0D,EAC1D,KAAc;IAEd,OAAO,IAAI,SAAS,CAClB;QACE,KAAK;QACL,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO;QAC7B,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS;KACvC,EACD,KAAK,CACN,CAAC;AACJ,CAAC"}
|
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
import type { Experiment, ExperimentEndParams, ExperimentCreate, ExperimentListParams, ExperimentUpdate,
|
|
1
|
+
import type { Experiment, ExperimentEndParams, ExperimentCreate, ExperimentListParams, ExperimentUpdate, RunRequest, Uuid } from "@introspection-sdk/types";
|
|
2
2
|
import type { HttpClient } from "../http.js";
|
|
3
3
|
import type { IntrospectionClient } from "../client.js";
|
|
4
|
+
import { Paginator } from "../pagination.js";
|
|
4
5
|
import { Runner } from "../runner.js";
|
|
5
6
|
export declare class ExperimentsApi {
|
|
6
7
|
private readonly http;
|
|
7
8
|
private readonly client;
|
|
8
9
|
constructor(http: HttpClient, client: IntrospectionClient);
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
/**
|
|
11
|
+
* List experiments matching `params`. `await` the result for the first
|
|
12
|
+
* page, or `for await` it to stream every experiment across pages
|
|
13
|
+
* (fetched lazily — `limit` sets the page size, `next` the starting
|
|
14
|
+
* cursor; stop early to stop fetching).
|
|
15
|
+
*/
|
|
16
|
+
list(params: ExperimentListParams): Paginator<Experiment>;
|
|
11
17
|
get(id: Uuid): Promise<Experiment>;
|
|
12
18
|
create(input: ExperimentCreate): Promise<Experiment>;
|
|
13
19
|
update(id: Uuid, input: ExperimentUpdate): Promise<Experiment>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"experiments.d.ts","sourceRoot":"","sources":["../../src/resources/experiments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"experiments.d.ts","sourceRoot":"","sources":["../../src/resources/experiments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAEhB,UAAU,EAEV,IAAI,EACL,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,SAAS,EAAkB,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAqB,MAAM,cAAc,CAAC;AAmBzD,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,mBAAmB;IAG9C;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,oBAAoB,GAAG,SAAS,CAAC,UAAU,CAAC;IAYzD,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;IAOlC,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IAQpD,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IAQ9D,MAAM,CAAC,EAAE,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/B,SAAS,CAAC,EAAE,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;IAQxC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IAQpE,UAAU,CAAC,EAAE,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;IAQnC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;CAa5D;AAED,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBADF,GAAG,EAAE,cAAc,EACnB,EAAE,EAAE,IAAI;IAG3B,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvC,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC;IAI5B,GAAG,CAAC,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IAIpD,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC;CAG9B;AAED,MAAM,MAAM,uBAAuB,GAAG,CAAC,EAAE,EAAE,IAAI,KAAK,gBAAgB,CAAC;AAErE,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,mBAAmB,EAC3B,IAAI,EAAE,UAAU,GACf,cAAc,GAAG,uBAAuB,CAe1C"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { cursorPaginate } from "../pagination.js";
|
|
1
2
|
import { Runner } from "../runner.js";
|
|
2
3
|
function toRunBody(opts) {
|
|
3
4
|
if (!opts)
|
|
@@ -16,21 +17,18 @@ export class ExperimentsApi {
|
|
|
16
17
|
this.http = http;
|
|
17
18
|
this.client = client;
|
|
18
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* List experiments matching `params`. `await` the result for the first
|
|
22
|
+
* page, or `for await` it to stream every experiment across pages
|
|
23
|
+
* (fetched lazily — `limit` sets the page size, `next` the starting
|
|
24
|
+
* cursor; stop early to stop fetching).
|
|
25
|
+
*/
|
|
19
26
|
list(params) {
|
|
20
|
-
return this.http.request({
|
|
27
|
+
return cursorPaginate((next) => this.http.request({
|
|
21
28
|
method: "GET",
|
|
22
29
|
path: "/v1/experiments",
|
|
23
|
-
query: params,
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
async *listAll(params) {
|
|
27
|
-
let next = params.next;
|
|
28
|
-
do {
|
|
29
|
-
const page = await this.list({ ...params, next });
|
|
30
|
-
for (const r of page.records)
|
|
31
|
-
yield r;
|
|
32
|
-
next = page.next ?? undefined;
|
|
33
|
-
} while (next);
|
|
30
|
+
query: { ...params, next },
|
|
31
|
+
}), params.next);
|
|
34
32
|
}
|
|
35
33
|
get(id) {
|
|
36
34
|
return this.http.request({
|
|
@@ -119,7 +117,6 @@ export function attachExperiments(client, http) {
|
|
|
119
117
|
const factory = (id) => new ExperimentHandle(api, id);
|
|
120
118
|
const hybrid = factory;
|
|
121
119
|
hybrid.list = api.list.bind(api);
|
|
122
|
-
hybrid.listAll = api.listAll.bind(api);
|
|
123
120
|
hybrid.get = api.get.bind(api);
|
|
124
121
|
hybrid.create = api.create.bind(api);
|
|
125
122
|
hybrid.update = api.update.bind(api);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"experiments.js","sourceRoot":"","sources":["../../src/resources/experiments.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,MAAM,EAAqB,MAAM,cAAc,CAAC;AAWzD,SAAS,SAAS,CAAC,IAAiB;IAClC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,GAAG,GAA6B,EAAE,CAAC;IACzC,IAAI,IAAI,CAAC,QAAQ;QAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAChD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;QAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACvE,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,OAAO,cAAc;IAEN;IACA;IAFnB,YACmB,IAAgB,EAChB,MAA2B;QAD3B,SAAI,GAAJ,IAAI,CAAY;QAChB,WAAM,GAAN,MAAM,CAAqB;IAC3C,CAAC;IAEJ,IAAI,CAAC,MAA4B;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAwB;
|
|
1
|
+
{"version":3,"file":"experiments.js","sourceRoot":"","sources":["../../src/resources/experiments.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Recipe, RecipeCreate, RecipeListParams, RecipeUpdate, Uuid } from "@introspection-sdk/types";
|
|
2
2
|
import type { HttpClient } from "../http.js";
|
|
3
|
+
import { Paginator } from "../pagination.js";
|
|
3
4
|
/**
|
|
4
5
|
* Programmatic CRUD for `/v1/recipes` on the CP.
|
|
5
6
|
*
|
|
@@ -10,9 +11,13 @@ import type { HttpClient } from "../http.js";
|
|
|
10
11
|
export declare class RecipesApi {
|
|
11
12
|
private readonly http;
|
|
12
13
|
constructor(http: HttpClient);
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
/**
|
|
15
|
+
* List recipes matching `params`. `await` the result for the first
|
|
16
|
+
* page, or `for await` it to stream every recipe across pages (fetched
|
|
17
|
+
* lazily — `limit` sets the page size, `next` the starting cursor; stop
|
|
18
|
+
* early to stop fetching).
|
|
19
|
+
*/
|
|
20
|
+
list(params: RecipeListParams): Paginator<Recipe>;
|
|
16
21
|
get(id: Uuid): Promise<Recipe>;
|
|
17
22
|
create(input: RecipeCreate): Promise<Recipe>;
|
|
18
23
|
update(id: Uuid, input: RecipeUpdate): Promise<Recipe>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../../src/resources/recipes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../../src/resources/recipes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,MAAM,EACN,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,IAAI,EACL,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAkB,MAAM,kBAAkB,CAAC;AAE7D;;;;;;GAMG;AACH,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,CAAC,MAAM,CAAC;IAYjD,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAO9B,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAQ5C,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAQtD,MAAM,CAAC,EAAE,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAOhC;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAE1D"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { cursorPaginate } from "../pagination.js";
|
|
1
2
|
/**
|
|
2
3
|
* Programmatic CRUD for `/v1/recipes` on the CP.
|
|
3
4
|
*
|
|
@@ -10,22 +11,18 @@ export class RecipesApi {
|
|
|
10
11
|
constructor(http) {
|
|
11
12
|
this.http = http;
|
|
12
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* List recipes matching `params`. `await` the result for the first
|
|
16
|
+
* page, or `for await` it to stream every recipe across pages (fetched
|
|
17
|
+
* lazily — `limit` sets the page size, `next` the starting cursor; stop
|
|
18
|
+
* early to stop fetching).
|
|
19
|
+
*/
|
|
13
20
|
list(params) {
|
|
14
|
-
return this.http.request({
|
|
21
|
+
return cursorPaginate((next) => this.http.request({
|
|
15
22
|
method: "GET",
|
|
16
23
|
path: "/v1/recipes",
|
|
17
|
-
query: params,
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
/** Async-iterate every page that matches `params`. */
|
|
21
|
-
async *listAll(params) {
|
|
22
|
-
let next = params.next;
|
|
23
|
-
do {
|
|
24
|
-
const page = await this.list({ ...params, next });
|
|
25
|
-
for (const r of page.records)
|
|
26
|
-
yield r;
|
|
27
|
-
next = page.next ?? undefined;
|
|
28
|
-
} while (next);
|
|
24
|
+
query: { ...params, next },
|
|
25
|
+
}), params.next);
|
|
29
26
|
}
|
|
30
27
|
get(id) {
|
|
31
28
|
return this.http.request({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipes.js","sourceRoot":"","sources":["../../src/resources/recipes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"recipes.js","sourceRoot":"","sources":["../../src/resources/recipes.ts"],"names":[],"mappings":"AASA,OAAO,EAAa,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE7D;;;;;;GAMG;AACH,MAAM,OAAO,UAAU;IACQ;IAA7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD;;;;;OAKG;IACH,IAAI,CAAC,MAAwB;QAC3B,OAAO,cAAc,CACnB,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,IAAI,CAAC,OAAO,CAAoB;YACnC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,IAAI,EAAwC;SACjE,CAAC,EACJ,MAAM,CAAC,IAAI,CACZ,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,EAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAS;YAC/B,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,eAAe,kBAAkB,CAAC,EAAE,CAAC,EAAE;SAC9C,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAmB;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAS;YAC/B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,EAAQ,EAAE,KAAmB;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAS;YAC/B,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,eAAe,kBAAkB,CAAC,EAAE,CAAC,EAAE;YAC7C,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,EAAQ;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAO;YAC7B,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,eAAe,kBAAkB,CAAC,EAAE,CAAC,EAAE;YAC7C,MAAM,EAAE,OAAO;SAChB,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,UAAU,aAAa,CAAC,IAAgB;IAC5C,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Recipe, RunRequest, Runtime, RuntimeCreate, RuntimeListParams, RuntimeUpdate, Uuid } from "@introspection-sdk/types";
|
|
2
2
|
import type { HttpClient } from "../http.js";
|
|
3
3
|
import type { IntrospectionClient } from "../client.js";
|
|
4
|
+
import { Paginator } from "../pagination.js";
|
|
4
5
|
import { Runner } from "../runner.js";
|
|
5
6
|
export declare function isUuid(value: string): boolean;
|
|
6
7
|
export interface RuntimeRunRequestBody {
|
|
@@ -20,8 +21,13 @@ export declare class RuntimesApi {
|
|
|
20
21
|
private readonly http;
|
|
21
22
|
private readonly client;
|
|
22
23
|
constructor(http: HttpClient, client: IntrospectionClient);
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
/**
|
|
25
|
+
* List runtimes matching `params`. `await` the result for the first
|
|
26
|
+
* page, or `for await` it to stream every runtime across pages (fetched
|
|
27
|
+
* lazily — `limit` sets the page size, `next` the starting cursor; stop
|
|
28
|
+
* early to stop fetching).
|
|
29
|
+
*/
|
|
30
|
+
list(params: RuntimeListParams): Paginator<Runtime>;
|
|
25
31
|
get(id: Uuid, params: {
|
|
26
32
|
project_id?: Uuid;
|
|
27
33
|
}): Promise<Runtime>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimes.d.ts","sourceRoot":"","sources":["../../src/resources/runtimes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"runtimes.d.ts","sourceRoot":"","sources":["../../src/resources/runtimes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { NotFoundError } from "@introspection-sdk/types";
|
|
2
|
+
import { cursorPaginate } from "../pagination.js";
|
|
2
3
|
import { Runner } from "../runner.js";
|
|
3
4
|
const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
4
5
|
export function isUuid(value) {
|
|
@@ -27,21 +28,18 @@ export class RuntimesApi {
|
|
|
27
28
|
this.http = http;
|
|
28
29
|
this.client = client;
|
|
29
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* List runtimes matching `params`. `await` the result for the first
|
|
33
|
+
* page, or `for await` it to stream every runtime across pages (fetched
|
|
34
|
+
* lazily — `limit` sets the page size, `next` the starting cursor; stop
|
|
35
|
+
* early to stop fetching).
|
|
36
|
+
*/
|
|
30
37
|
list(params) {
|
|
31
|
-
return this.http.request({
|
|
38
|
+
return cursorPaginate((next) => this.http.request({
|
|
32
39
|
method: "GET",
|
|
33
40
|
path: "/v1/runtimes",
|
|
34
|
-
query: params,
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
async *listAll(params) {
|
|
38
|
-
let next = params.next;
|
|
39
|
-
do {
|
|
40
|
-
const page = await this.list({ ...params, next });
|
|
41
|
-
for (const r of page.records)
|
|
42
|
-
yield r;
|
|
43
|
-
next = page.next ?? undefined;
|
|
44
|
-
} while (next);
|
|
41
|
+
query: { ...params, next },
|
|
42
|
+
}), params.next);
|
|
45
43
|
}
|
|
46
44
|
get(id, params) {
|
|
47
45
|
return this.http.request({
|
|
@@ -73,16 +71,19 @@ export class RuntimesApi {
|
|
|
73
71
|
}
|
|
74
72
|
/** Resolve a name to a runtime by querying `/v1/runtimes?name=…`. */
|
|
75
73
|
async resolveByName(name, projectId) {
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
});
|
|
74
|
+
for await (const r of this.list({
|
|
75
|
+
project_id: projectId,
|
|
76
|
+
name,
|
|
77
|
+
limit: 2,
|
|
78
|
+
})) {
|
|
79
|
+
if (r.name === name)
|
|
80
|
+
return r;
|
|
84
81
|
}
|
|
85
|
-
|
|
82
|
+
throw new NotFoundError({
|
|
83
|
+
message: `Runtime '${name}' not found${projectId ? ` in project ${projectId}` : ""}`,
|
|
84
|
+
status: 404,
|
|
85
|
+
code: "not_found",
|
|
86
|
+
});
|
|
86
87
|
}
|
|
87
88
|
/** POST `/v1/runtimes/{id}/run` and wrap the result in a `Runner`. */
|
|
88
89
|
async runById(id, opts) {
|
|
@@ -166,7 +167,6 @@ export function attachRuntimes(client, http) {
|
|
|
166
167
|
// the methods can be invoked off the proxy without losing `this`.
|
|
167
168
|
const hybrid = factory;
|
|
168
169
|
hybrid.list = api.list.bind(api);
|
|
169
|
-
hybrid.listAll = api.listAll.bind(api);
|
|
170
170
|
hybrid.get = api.get.bind(api);
|
|
171
171
|
hybrid.create = api.create.bind(api);
|
|
172
172
|
hybrid.update = api.update.bind(api);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimes.js","sourceRoot":"","sources":["../../src/resources/runtimes.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EAAE,MAAM,EAAqB,MAAM,cAAc,CAAC;AAEzD,MAAM,OAAO,GACX,iEAAiE,CAAC;AAEpE,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAYD,SAAS,SAAS,CAAC,IAAiB;IAClC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,GAAG,GAA0B,EAAE,CAAC;IACtC,IAAI,IAAI,CAAC,QAAQ;QAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAChD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;QAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACvE,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;QAAE,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACjE,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,WAAW;IAEH;IACA;IAFnB,YACmB,IAAgB,EAChB,MAA2B;QAD3B,SAAI,GAAJ,IAAI,CAAY;QAChB,WAAM,GAAN,MAAM,CAAqB;IAC3C,CAAC;IAEJ,IAAI,CAAC,MAAyB;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAqB;
|
|
1
|
+
{"version":3,"file":"runtimes.js","sourceRoot":"","sources":["../../src/resources/runtimes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { ConversationItem, ConversationItemInclude, ConversationItemList, ConversationItemListParams, ConversationListParams, ConversationResponse, ConversationSummary } from "@introspection-sdk/types";
|
|
2
|
+
import { HttpClient } from "../http.js";
|
|
3
|
+
import { Paginator } from "../pagination.js";
|
|
4
|
+
/**
|
|
5
|
+
* Items of a conversation (`/v1/conversations/{id}/items`). Read-only.
|
|
6
|
+
*
|
|
7
|
+
* Paging is OpenAI-style underneath: the envelope has NO `next` token —
|
|
8
|
+
* `list()` drives `after` = the previous page's `last_id` while
|
|
9
|
+
* `has_more` is true.
|
|
10
|
+
*/
|
|
11
|
+
export declare class ConversationItemsApi {
|
|
12
|
+
private readonly http;
|
|
13
|
+
constructor(http: HttpClient);
|
|
14
|
+
/**
|
|
15
|
+
* List items of a conversation. `await` the result for the first page
|
|
16
|
+
* (an OpenAI-style {@link ConversationItemList} envelope), or
|
|
17
|
+
* `for await` it to stream every item across pages (fetched lazily —
|
|
18
|
+
* `limit` sets the page size, `after` the starting cursor; stop early to
|
|
19
|
+
* stop fetching). Pass `order: "asc"` to walk the transcript from the
|
|
20
|
+
* start.
|
|
21
|
+
*
|
|
22
|
+
* Items carry the turn-local delta in `input_messages` — only the
|
|
23
|
+
* messages new to that turn. Use `get()` for the full input history.
|
|
24
|
+
*/
|
|
25
|
+
list(conversationId: string, params?: ConversationItemListParams): Paginator<ConversationItem, ConversationItemList>;
|
|
26
|
+
/**
|
|
27
|
+
* Fetch a single conversation item. Unlike the list route, the
|
|
28
|
+
* detail's `input_messages` is the FULL input history for that span.
|
|
29
|
+
*/
|
|
30
|
+
get(conversationId: string, itemId: string, params?: {
|
|
31
|
+
include?: ConversationItemInclude[];
|
|
32
|
+
}): Promise<ConversationItem>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Read-only Conversations API (`/v1/conversations`).
|
|
36
|
+
*
|
|
37
|
+
* Both `list()` and `items.list()` are auto-paging async generators,
|
|
38
|
+
* but they drive different wire protocols underneath: `list()` walks
|
|
39
|
+
* the standard Introspection cursor envelope's opaque `next` token,
|
|
40
|
+
* while `items.list()` walks an OpenAI-style envelope via `after` =
|
|
41
|
+
* the previous page's `last_id` while `has_more` is true.
|
|
42
|
+
*/
|
|
43
|
+
export declare class ConversationsApi {
|
|
44
|
+
private readonly http;
|
|
45
|
+
/** Items of a conversation — `conversations.items.list(...)` etc. */
|
|
46
|
+
readonly items: ConversationItemsApi;
|
|
47
|
+
constructor(http: HttpClient);
|
|
48
|
+
/**
|
|
49
|
+
* List conversation summaries matching `params`. `await` the result for
|
|
50
|
+
* the first page, or `for await` it to stream every summary across
|
|
51
|
+
* pages (fetched lazily — `limit` sets the page size, `next` the
|
|
52
|
+
* starting cursor; stop early to stop fetching).
|
|
53
|
+
*/
|
|
54
|
+
list(params?: ConversationListParams): Paginator<ConversationSummary>;
|
|
55
|
+
/**
|
|
56
|
+
* Responses-API-style retrieve: load the state of a conversation as of
|
|
57
|
+
* one item — the full input history, output, system instructions, and
|
|
58
|
+
* tool definitions of that turn.
|
|
59
|
+
*
|
|
60
|
+
* When `itemId` is omitted, the latest LLM turn is used: the first
|
|
61
|
+
* item (in descending order) whose `node_type` is `"assistant"` or
|
|
62
|
+
* whose `operation_name` is `"chat"`, falling back to the first item
|
|
63
|
+
* with a non-null `output_message`. Returns `null` when the
|
|
64
|
+
* conversation has no items.
|
|
65
|
+
*
|
|
66
|
+
* For the full per-turn transcript instead, iterate
|
|
67
|
+
* `items.list(conversationId, { order: "asc" })`.
|
|
68
|
+
*/
|
|
69
|
+
retrieve(conversationId: string, itemId?: string): Promise<ConversationResponse | null>;
|
|
70
|
+
/** Scan items in descending order for the most recent LLM turn. */
|
|
71
|
+
private findLatestTurnId;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=conversations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversations.d.ts","sourceRoot":"","sources":["../../src/runner-resources/conversations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EAIpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,SAAS,EAAkB,MAAM,kBAAkB,CAAC;AAS7D;;;;;;GAMG;AACH,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C;;;;;;;;;;OAUG;IACH,IAAI,CACF,cAAc,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,0BAA0B,GAClC,SAAS,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;IAiBpD;;;OAGG;IACH,GAAG,CACD,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,uBAAuB,EAAE,CAAA;KAAE,GAC/C,OAAO,CAAC,gBAAgB,CAAC;CAO7B;AAED;;;;;;;;GAQG;AACH,qBAAa,gBAAgB;IAIf,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,qEAAqE;IACrE,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;gBAER,IAAI,EAAE,UAAU;IAI7C;;;;;OAKG;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC,mBAAmB,CAAC;IAYrE;;;;;;;;;;;;;OAaG;IACG,QAAQ,CACZ,cAAc,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IA6BvC,mEAAmE;YACrD,gBAAgB;CAc/B"}
|