@hydracept/sdk 0.1.4 → 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/CHANGELOG.md ADDED
@@ -0,0 +1,11 @@
1
+ # Changelog
2
+
3
+ ## 0.2.2 — 2026-08-12
4
+
5
+ - Typed panel definition list response: `{ definitions: PanelDefinitionView[] }`
6
+ - Typed `createPanelSession` → `PanelSessionCreated`
7
+ - Exported `PanelDefinitionView`, `PanelDefinitionListResponse`, `PanelSessionCreated`
8
+
9
+ ## 0.2.1
10
+
11
+ Prior release.
package/README.md CHANGED
@@ -33,6 +33,30 @@ const status = await client.runtime.getJob(job.jobId);
33
33
  const receipt = await client.runtime.getJobReceipt(job.jobId);
34
34
  ```
35
35
 
36
+ ### Panel sessions (embed host)
37
+
38
+ ```ts
39
+ import { createHydraceptClient } from '@hydracept/sdk';
40
+
41
+ const client = createHydraceptClient({
42
+ baseUrl: 'https://api.hydracept.com',
43
+ getToken: () => process.env.HYDRACEPT_API_KEY ?? '',
44
+ });
45
+
46
+ const { definitions } = await client.panels.listPanelDefinitions();
47
+ const created = await client.panels.createPanelSession({
48
+ panelDefinitionId: definitions[0]!.id,
49
+ projectId: process.env.HYDRACEPT_PROJECT,
50
+ environment: 'development',
51
+ allowedOrigins: ['http://localhost:5173'],
52
+ });
53
+
54
+ // Pass sessionId + accessToken to @hydracept/elements PanelIframeManager
55
+ console.log(created.sessionId, created.accessToken);
56
+ ```
57
+
58
+ Pair with [`@hydracept/elements`](../../packages/elements) to mount the hosted iframe — do not copy protocol code.
59
+
36
60
  Activate at https://hydracept.com/start · Docs: https://docs.hydracept.com
37
61
 
38
62
  A Zencode product · © Zencode Consulting Inc.
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { createHydraceptControlApi } from './control.js';
2
2
  import { type HydraceptHttp } from './http.js';
3
+ import { createHydraceptPanelsApi } from './panels.js';
3
4
  import { createHydraceptRuntimeApi } from './runtime.js';
4
5
  import type { HydraceptClientOptions } from './types.js';
5
6
  export type { HydraceptHttpError, HydraceptClientOptions, HydraceptRuntimeEvent } from './types.js';
@@ -9,12 +10,16 @@ export { createHydraceptControlApi } from './control.js';
9
10
  export type { HydraceptControlApi } from './control.js';
10
11
  export { createHydraceptRuntimeApi } from './runtime.js';
11
12
  export type { HydraceptRuntimeApi } from './runtime.js';
13
+ export { createHydraceptPanelsApi } from './panels.js';
14
+ export type { HydraceptPanelsApi } from './panels.js';
15
+ export type { PanelDefinitionListResponse, PanelDefinitionView, PanelDefinitionVersionView, PanelSessionCreated, } from './panel-types.js';
12
16
  export { iterInvocationEvents } from './sse.js';
13
17
  export type { HydraceptAssetOut, HydraceptAssetPage, } from './types.js';
14
18
  export type HydraceptClient = {
15
19
  http: HydraceptHttp;
16
20
  control: ReturnType<typeof createHydraceptControlApi>;
17
21
  runtime: ReturnType<typeof createHydraceptRuntimeApi>;
22
+ panels: ReturnType<typeof createHydraceptPanelsApi>;
18
23
  };
19
24
  export declare function createHydraceptClient(options: HydraceptClientOptions): HydraceptClient;
20
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACpG,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,YAAY,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,YAAY,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,YAAY,EACV,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC;IACtD,OAAO,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC;CACvD,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,eAAe,CAOtF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACpG,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,YAAY,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,YAAY,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,YAAY,EACV,2BAA2B,EAC3B,mBAAmB,EACnB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,YAAY,EACV,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC;IACtD,OAAO,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC;IACtD,MAAM,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC;CACrD,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,eAAe,CAQtF"}
package/dist/index.js CHANGED
@@ -1,9 +1,11 @@
1
1
  import { createHydraceptControlApi } from './control.js';
2
2
  import { createHydraceptHttp } from './http.js';
3
+ import { createHydraceptPanelsApi } from './panels.js';
3
4
  import { createHydraceptRuntimeApi } from './runtime.js';
4
5
  export { createHydraceptHttp } from './http.js';
5
6
  export { createHydraceptControlApi } from './control.js';
6
7
  export { createHydraceptRuntimeApi } from './runtime.js';
8
+ export { createHydraceptPanelsApi } from './panels.js';
7
9
  export { iterInvocationEvents } from './sse.js';
8
10
  export function createHydraceptClient(options) {
9
11
  const http = createHydraceptHttp(options);
@@ -11,5 +13,6 @@ export function createHydraceptClient(options) {
11
13
  http,
12
14
  control: createHydraceptControlApi(http),
13
15
  runtime: createHydraceptRuntimeApi(http),
16
+ panels: createHydraceptPanelsApi(http),
14
17
  };
15
18
  }
@@ -0,0 +1,27 @@
1
+ /** Panel definition and session response shapes (additive /v1 contracts). */
2
+ export interface PanelDefinitionVersionView {
3
+ readonly id: string;
4
+ readonly definitionId: string;
5
+ readonly version: number;
6
+ readonly capabilityKey: string;
7
+ readonly capabilityVersion: string;
8
+ readonly allowedOrigins: readonly string[];
9
+ }
10
+ export interface PanelDefinitionView {
11
+ readonly id: string;
12
+ readonly organizationId: string;
13
+ readonly key: string;
14
+ readonly displayName: string;
15
+ readonly status: string;
16
+ readonly currentVersion?: PanelDefinitionVersionView;
17
+ }
18
+ /** GET /v1/panel-definitions list envelope. */
19
+ export interface PanelDefinitionListResponse {
20
+ readonly definitions: readonly PanelDefinitionView[];
21
+ }
22
+ export interface PanelSessionCreated {
23
+ readonly sessionId: string;
24
+ readonly accessToken: string;
25
+ readonly expiresAt?: string;
26
+ }
27
+ //# sourceMappingURL=panel-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panel-types.d.ts","sourceRoot":"","sources":["../src/panel-types.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAE7E,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,CAAC,EAAE,0BAA0B,CAAC;CACtD;AAED,+CAA+C;AAC/C,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,WAAW,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACtD;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B"}
@@ -0,0 +1,2 @@
1
+ /** Panel definition and session response shapes (additive /v1 contracts). */
2
+ export {};
@@ -0,0 +1,17 @@
1
+ import type { HydraceptHttp } from './http.js';
2
+ import type { PanelDefinitionListResponse, PanelDefinitionView, PanelSessionCreated } from './panel-types.js';
3
+ /** Panel definition and session helpers for hosted panels and embed integrations. */
4
+ export declare function createHydraceptPanelsApi(http: HydraceptHttp): {
5
+ createPanelDefinition<T = PanelDefinitionView>(body: unknown, init?: RequestInit): Promise<T>;
6
+ listPanelDefinitions(): Promise<PanelDefinitionListResponse>;
7
+ getPanelDefinition<T = unknown>(definitionId: string): Promise<T>;
8
+ patchPanelDefinition<T = unknown>(definitionId: string, body: unknown, init?: RequestInit): Promise<T>;
9
+ createPanelSession(body: unknown, init?: RequestInit): Promise<PanelSessionCreated>;
10
+ getPanelSession<T = unknown>(sessionId: string): Promise<T>;
11
+ revokePanelSession<T = unknown>(sessionId: string, init?: RequestInit): Promise<T>;
12
+ createPanelLaunchCode<T = unknown>(sessionId: string, init?: RequestInit): Promise<T>;
13
+ getPanelBootstrap<T = unknown>(init?: RequestInit): Promise<T>;
14
+ exchangePanelLaunchCode<T = unknown>(body: unknown, init?: RequestInit): Promise<T>;
15
+ };
16
+ export type HydraceptPanelsApi = ReturnType<typeof createHydraceptPanelsApi>;
17
+ //# sourceMappingURL=panels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panels.d.ts","sourceRoot":"","sources":["../src/panels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EACV,2BAA2B,EAC3B,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAE1B,qFAAqF;AACrF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,aAAa;0BAElC,CAAC,8BAA8B,OAAO,SAAQ,WAAW,GAAQ,OAAO,CAAC,CAAC,CAAC;4BAQzE,OAAO,CAAC,2BAA2B,CAAC;uBAIzC,CAAC,0BAA0B,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;yBAI5C,CAAC,0BACN,MAAM,QACd,OAAO,SACP,WAAW,GAChB,OAAO,CAAC,CAAC,CAAC;6BAQY,OAAO,SAAQ,WAAW,GAAQ,OAAO,CAAC,mBAAmB,CAAC;oBAQvE,CAAC,uBAAuB,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;uBAIxC,CAAC,uBAAuB,MAAM,SAAQ,WAAW,GAAQ,OAAO,CAAC,CAAC,CAAC;0BAOhE,CAAC,uBAAuB,MAAM,SAAQ,WAAW,GAAQ,OAAO,CAAC,CAAC,CAAC;sBAUvE,CAAC,mBAAkB,WAAW,GAAQ,OAAO,CAAC,CAAC,CAAC;4BAI1C,CAAC,kBAAkB,OAAO,SAAQ,WAAW,GAAQ,OAAO,CAAC,CAAC,CAAC;EAQ1F;AAED,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
package/dist/panels.js ADDED
@@ -0,0 +1,57 @@
1
+ /** Panel definition and session helpers for hosted panels and embed integrations. */
2
+ export function createHydraceptPanelsApi(http) {
3
+ return {
4
+ createPanelDefinition(body, init = {}) {
5
+ return http.fetchJson('/panel-definitions', {
6
+ method: 'POST',
7
+ body: JSON.stringify(body),
8
+ ...init,
9
+ });
10
+ },
11
+ listPanelDefinitions() {
12
+ return http.fetchJson('/panel-definitions');
13
+ },
14
+ getPanelDefinition(definitionId) {
15
+ return http.fetchJson(`/panel-definitions/${encodeURIComponent(definitionId)}`);
16
+ },
17
+ patchPanelDefinition(definitionId, body, init = {}) {
18
+ return http.fetchJson(`/panel-definitions/${encodeURIComponent(definitionId)}`, {
19
+ method: 'PATCH',
20
+ body: JSON.stringify(body),
21
+ ...init,
22
+ });
23
+ },
24
+ createPanelSession(body, init = {}) {
25
+ return http.fetchJson('/panel-sessions', {
26
+ method: 'POST',
27
+ body: JSON.stringify(body),
28
+ ...init,
29
+ });
30
+ },
31
+ getPanelSession(sessionId) {
32
+ return http.fetchJson(`/panel-sessions/${encodeURIComponent(sessionId)}`);
33
+ },
34
+ revokePanelSession(sessionId, init = {}) {
35
+ return http.fetchJson(`/panel-sessions/${encodeURIComponent(sessionId)}/revoke`, {
36
+ method: 'POST',
37
+ ...init,
38
+ });
39
+ },
40
+ createPanelLaunchCode(sessionId, init = {}) {
41
+ return http.fetchJson(`/panel-sessions/${encodeURIComponent(sessionId)}/launch-codes`, {
42
+ method: 'POST',
43
+ ...init,
44
+ });
45
+ },
46
+ getPanelBootstrap(init = {}) {
47
+ return http.fetchJson('/panel/bootstrap', init);
48
+ },
49
+ exchangePanelLaunchCode(body, init = {}) {
50
+ return http.fetchJson('/panel/launch-codes/exchange', {
51
+ method: 'POST',
52
+ body: JSON.stringify(body),
53
+ ...init,
54
+ });
55
+ },
56
+ };
57
+ }
package/dist/runtime.d.ts CHANGED
@@ -13,8 +13,22 @@ export declare function createHydraceptRuntimeApi(http: HydraceptHttp): {
13
13
  describeCapability<T = unknown>(key: string): Promise<T>;
14
14
  invokeCapability<T = unknown>(key: string, body: unknown, init?: RequestInit): Promise<T>;
15
15
  submitCapabilityJob<T = unknown>(key: string, body: unknown, init?: RequestInit): Promise<T>;
16
+ createComparison<T = unknown>(key: string, body: unknown): Promise<T>;
17
+ estimateComparison<T = unknown>(key: string, body: unknown): Promise<T>;
18
+ getComparison<T = unknown>(comparisonId: string): Promise<T>;
19
+ submitComparisonJudgement<T = unknown>(comparisonId: string, body: unknown): Promise<T>;
16
20
  getJobReceipt<T = unknown>(jobId: string): Promise<T>;
17
21
  cancelJob<T = unknown>(jobId: string): Promise<T>;
22
+ downloadJobArtifact(jobId: string, artifactId: string): Promise<Blob>;
23
+ pollJobUntilTerminal<T extends {
24
+ status?: string;
25
+ } = {
26
+ status?: string;
27
+ }>(jobId: string, options?: {
28
+ intervalMs?: number;
29
+ signal?: AbortSignal;
30
+ terminal?: string[];
31
+ }): Promise<T>;
18
32
  streamInvocationEvents(executionId: string, options?: {
19
33
  lastEventId?: string;
20
34
  signal?: AbortSignal;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,0EAA0E;AAC1E,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,aAAa;WAElD,CAAC,kBAAkB,OAAO,SAAQ,WAAW,GAAQ,OAAO,CAAC,CAAC,CAAC;kBAQxD,CAAC,yBAAyB,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;eAIhD,CAAC,yBAAyB,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;qBAIvC,CAAC,yBAAyB,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;cAMpD,CAAC,kBAAkB,OAAO,SAAQ,WAAW,GAAQ,OAAO,CAAC,CAAC,CAAC;WAQlE,CAAC,mBAAmB,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;iBAIjC,CAAC,mBAAmB,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;oBAIpC,CAAC,eAAe,OAAO,CAAC,CAAC,CAAC;uBAIvB,CAAC,iBAAiB,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;qBAIvC,CAAC,iBAAiB,MAAM,QAAQ,OAAO,SAAQ,WAAW,GAAQ,OAAO,CAAC,CAAC,CAAC;wBAQzE,CAAC,iBACd,MAAM,QACL,OAAO,SACP,WAAW,GAChB,OAAO,CAAC,CAAC,CAAC;kBAQC,CAAC,mBAAmB,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;cAI3C,CAAC,mBAAmB,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;wCAKlC,MAAM,YACV;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACtD,cAAc,CAAC,qBAAqB,EAAE,IAAI,EAAE,OAAO,CAAC;EAmB1D;AAED,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,0EAA0E;AAC1E,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,aAAa;WAElD,CAAC,kBAAkB,OAAO,SAAQ,WAAW,GAAQ,OAAO,CAAC,CAAC,CAAC;kBAQxD,CAAC,yBAAyB,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;eAIhD,CAAC,yBAAyB,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;qBAIvC,CAAC,yBAAyB,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;cAMpD,CAAC,kBAAkB,OAAO,SAAQ,WAAW,GAAQ,OAAO,CAAC,CAAC,CAAC;WAQlE,CAAC,mBAAmB,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;iBAIjC,CAAC,mBAAmB,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;oBAIpC,CAAC,eAAe,OAAO,CAAC,CAAC,CAAC;uBAIvB,CAAC,iBAAiB,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;qBAIvC,CAAC,iBAAiB,MAAM,QAAQ,OAAO,SAAQ,WAAW,GAAQ,OAAO,CAAC,CAAC,CAAC;wBAQzE,CAAC,iBACd,MAAM,QACL,OAAO,SACP,WAAW,GAChB,OAAO,CAAC,CAAC,CAAC;qBAQI,CAAC,iBAAiB,MAAM,QAAQ,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;uBAOlD,CAAC,iBAAiB,MAAM,QAAQ,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;kBAOzD,CAAC,0BAA0B,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;8BAIlC,CAAC,0BAA0B,MAAM,QAAQ,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;kBAOzE,CAAC,mBAAmB,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;cAI3C,CAAC,mBAAmB,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;+BAItB,MAAM,cAAc,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;yBAM1C,CAAC,SAAS;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;iBAAc,MAAM;cACnE,MAAM,YACJ;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC1E,OAAO,CAAC,CAAC,CAAC;wCAqBE,MAAM,YACV;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACtD,cAAc,CAAC,qBAAqB,EAAE,IAAI,EAAE,OAAO,CAAC;EAmB1D;AAED,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
package/dist/runtime.js CHANGED
@@ -53,12 +53,51 @@ export function createHydraceptRuntimeApi(http) {
53
53
  ...init,
54
54
  });
55
55
  },
56
+ createComparison(key, body) {
57
+ return http.fetchJson(`/capabilities/${encodeURIComponent(key)}/comparisons`, {
58
+ method: 'POST',
59
+ body: JSON.stringify(body),
60
+ });
61
+ },
62
+ estimateComparison(key, body) {
63
+ return http.fetchJson(`/capabilities/${encodeURIComponent(key)}/comparisons/estimate`, {
64
+ method: 'POST',
65
+ body: JSON.stringify(body),
66
+ });
67
+ },
68
+ getComparison(comparisonId) {
69
+ return http.fetchJson(`/comparisons/${encodeURIComponent(comparisonId)}`);
70
+ },
71
+ submitComparisonJudgement(comparisonId, body) {
72
+ return http.fetchJson(`/comparisons/${encodeURIComponent(comparisonId)}/judgements`, {
73
+ method: 'POST',
74
+ body: JSON.stringify(body),
75
+ });
76
+ },
56
77
  getJobReceipt(jobId) {
57
78
  return http.fetchJson(`/jobs/${encodeURIComponent(jobId)}/receipt`);
58
79
  },
59
80
  cancelJob(jobId) {
60
81
  return http.fetchJson(`/jobs/${encodeURIComponent(jobId)}/cancel`, { method: 'POST' });
61
82
  },
83
+ downloadJobArtifact(jobId, artifactId) {
84
+ return http.fetchBlob(`/jobs/${encodeURIComponent(jobId)}/artifacts/${encodeURIComponent(artifactId)}`);
85
+ },
86
+ async pollJobUntilTerminal(jobId, options = {}) {
87
+ const intervalMs = options.intervalMs ?? 2000;
88
+ const terminal = new Set((options.terminal ?? ['succeeded', 'failed', 'canceled', 'cancelled']).map((s) => s.toLowerCase()));
89
+ for (;;) {
90
+ if (options.signal?.aborted) {
91
+ throw new DOMException('Aborted', 'AbortError');
92
+ }
93
+ const job = await http.fetchJsonWithRetry(`/jobs/${encodeURIComponent(jobId)}`);
94
+ const status = String(job.status ?? '').toLowerCase();
95
+ if (terminal.has(status)) {
96
+ return job;
97
+ }
98
+ await new Promise((resolve) => setTimeout(resolve, intervalMs));
99
+ }
100
+ },
62
101
  streamInvocationEvents(executionId, options = {}) {
63
102
  const token = http.options.getToken?.() ?? http.options.token ?? '';
64
103
  const sseOptions = {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hydracept/sdk",
3
- "version": "0.1.4",
3
+ "version": "0.2.2",
4
4
  "description": "One API for AI workloads in games — TypeScript client for Hydracept (BYOK, durable jobs, receipts).",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -14,7 +14,8 @@
14
14
  },
15
15
  "files": [
16
16
  "dist",
17
- "README.md"
17
+ "README.md",
18
+ "CHANGELOG.md"
18
19
  ],
19
20
  "scripts": {
20
21
  "build": "tsc -p tsconfig.json",