@campfire-interactive/cfi-ai-hub-client 2.0.2 → 2.0.4
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/dist/ai.d.ts +26 -0
- package/dist/ai.d.ts.map +1 -0
- package/dist/ai.js +66 -0
- package/dist/ai.js.map +1 -0
- package/dist/bom.d.ts +12 -0
- package/dist/bom.d.ts.map +1 -0
- package/dist/bom.js +64 -0
- package/dist/bom.js.map +1 -0
- package/dist/cache.d.ts +11 -0
- package/dist/cache.d.ts.map +1 -0
- package/dist/cache.js +37 -0
- package/dist/cache.js.map +1 -0
- package/dist/client.d.ts +31 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +51 -0
- package/dist/client.js.map +1 -0
- package/dist/conversations.d.ts +28 -0
- package/dist/conversations.d.ts.map +1 -0
- package/dist/conversations.js +74 -0
- package/dist/conversations.js.map +1 -0
- package/dist/documents.d.ts +18 -0
- package/dist/documents.d.ts.map +1 -0
- package/dist/documents.js +28 -0
- package/dist/documents.js.map +1 -0
- package/dist/errors.d.ts +26 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +55 -0
- package/dist/errors.js.map +1 -0
- package/dist/forecast.d.ts +61 -0
- package/dist/forecast.d.ts.map +1 -0
- package/dist/forecast.js +164 -0
- package/dist/forecast.js.map +1 -0
- package/dist/http.d.ts +42 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +214 -0
- package/dist/http.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +49 -0
- package/dist/index.js.map +1 -0
- package/dist/jobs.d.ts +33 -0
- package/dist/jobs.d.ts.map +1 -0
- package/dist/jobs.js +79 -0
- package/dist/jobs.js.map +1 -0
- package/dist/macro.d.ts +35 -0
- package/dist/macro.d.ts.map +1 -0
- package/dist/macro.js +64 -0
- package/dist/macro.js.map +1 -0
- package/dist/mock.d.ts +107 -0
- package/dist/mock.d.ts.map +1 -0
- package/dist/mock.js +497 -0
- package/dist/mock.js.map +1 -0
- package/dist/multipart.d.ts +4 -0
- package/dist/multipart.d.ts.map +1 -0
- package/dist/multipart.js +21 -0
- package/dist/multipart.js.map +1 -0
- package/dist/omsf.d.ts +22 -0
- package/dist/omsf.d.ts.map +1 -0
- package/dist/omsf.js +67 -0
- package/dist/omsf.js.map +1 -0
- package/dist/prompts.d.ts +24 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +71 -0
- package/dist/prompts.js.map +1 -0
- package/dist/rag.d.ts +18 -0
- package/dist/rag.d.ts.map +1 -0
- package/dist/rag.js +39 -0
- package/dist/rag.js.map +1 -0
- package/dist/tracker.d.ts +15 -0
- package/dist/tracker.d.ts.map +1 -0
- package/dist/tracker.js +74 -0
- package/dist/tracker.js.map +1 -0
- package/dist/types.d.ts +716 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +18 -0
- package/dist/types.js.map +1 -0
- package/dist/vendor.d.ts +8 -0
- package/dist/vendor.d.ts.map +1 -0
- package/dist/vendor.js +18 -0
- package/dist/vendor.js.map +1 -0
- package/package.json +35 -35
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { HttpTransport } from './http';
|
|
2
|
+
import type { CreatePromptVersionRequest, PromptListResponse, PromptVersion, PromptVersionsResponse, RenderPromptRequest, RenderPromptResponse, TenantPromptOverrideResponse, UpsertOverrideRequest } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Versioned prompt registry (capability C8).
|
|
5
|
+
*
|
|
6
|
+
* Read endpoints (any allowlisted caller):
|
|
7
|
+
* list / get (latest) / versions / version(n) / render
|
|
8
|
+
*
|
|
9
|
+
* Write endpoints (admin role):
|
|
10
|
+
* publish / upsertOverride / removeOverride
|
|
11
|
+
*/
|
|
12
|
+
export declare class PromptsResource {
|
|
13
|
+
private readonly http;
|
|
14
|
+
constructor(http: HttpTransport);
|
|
15
|
+
list(): Promise<PromptListResponse>;
|
|
16
|
+
get(promptId: string): Promise<PromptVersion>;
|
|
17
|
+
versions(promptId: string): Promise<PromptVersionsResponse>;
|
|
18
|
+
version(promptId: string, version: number): Promise<PromptVersion>;
|
|
19
|
+
render(promptId: string, input?: RenderPromptRequest): Promise<RenderPromptResponse>;
|
|
20
|
+
publish(promptId: string, input: CreatePromptVersionRequest): Promise<PromptVersion>;
|
|
21
|
+
upsertOverride(promptId: string, tenantId: string, input: UpsertOverrideRequest): Promise<TenantPromptOverrideResponse>;
|
|
22
|
+
removeOverride(promptId: string, tenantId: string): Promise<void>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EACV,0BAA0B,EAC1B,kBAAkB,EAClB,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,4BAA4B,EAC5B,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;GAQG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAE1C,IAAI,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAOnC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAO7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAO3D,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAOlE,MAAM,CACV,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,mBAAwB,GAC9B,OAAO,CAAC,oBAAoB,CAAC;IAQ1B,OAAO,CACX,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,aAAa,CAAC;IAQnB,cAAc,CAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,4BAA4B,CAAC;IAQlC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAMxE"}
|
package/dist/prompts.js
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PromptsResource = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Versioned prompt registry (capability C8).
|
|
6
|
+
*
|
|
7
|
+
* Read endpoints (any allowlisted caller):
|
|
8
|
+
* list / get (latest) / versions / version(n) / render
|
|
9
|
+
*
|
|
10
|
+
* Write endpoints (admin role):
|
|
11
|
+
* publish / upsertOverride / removeOverride
|
|
12
|
+
*/
|
|
13
|
+
class PromptsResource {
|
|
14
|
+
http;
|
|
15
|
+
constructor(http) {
|
|
16
|
+
this.http = http;
|
|
17
|
+
}
|
|
18
|
+
async list() {
|
|
19
|
+
return this.http.request({
|
|
20
|
+
method: 'GET',
|
|
21
|
+
path: '/prompts',
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
async get(promptId) {
|
|
25
|
+
return this.http.request({
|
|
26
|
+
method: 'GET',
|
|
27
|
+
path: `/prompts/${encodeURIComponent(promptId)}`,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
async versions(promptId) {
|
|
31
|
+
return this.http.request({
|
|
32
|
+
method: 'GET',
|
|
33
|
+
path: `/prompts/${encodeURIComponent(promptId)}/versions`,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
async version(promptId, version) {
|
|
37
|
+
return this.http.request({
|
|
38
|
+
method: 'GET',
|
|
39
|
+
path: `/prompts/${encodeURIComponent(promptId)}/versions/${version}`,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
async render(promptId, input = {}) {
|
|
43
|
+
return this.http.request({
|
|
44
|
+
method: 'POST',
|
|
45
|
+
path: `/prompts/${encodeURIComponent(promptId)}/render`,
|
|
46
|
+
body: input,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
async publish(promptId, input) {
|
|
50
|
+
return this.http.request({
|
|
51
|
+
method: 'POST',
|
|
52
|
+
path: `/prompts/${encodeURIComponent(promptId)}/versions`,
|
|
53
|
+
body: input,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
async upsertOverride(promptId, tenantId, input) {
|
|
57
|
+
return this.http.request({
|
|
58
|
+
method: 'PUT',
|
|
59
|
+
path: `/prompts/${encodeURIComponent(promptId)}/overrides/${encodeURIComponent(tenantId)}`,
|
|
60
|
+
body: input,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
async removeOverride(promptId, tenantId) {
|
|
64
|
+
await this.http.request({
|
|
65
|
+
method: 'DELETE',
|
|
66
|
+
path: `/prompts/${encodeURIComponent(promptId)}/overrides/${encodeURIComponent(tenantId)}`,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.PromptsResource = PromptsResource;
|
|
71
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":";;;AAYA;;;;;;;;GAQG;AACH,MAAa,eAAe;IACG;IAA7B,YAA6B,IAAmB;QAAnB,SAAI,GAAJ,IAAI,CAAe;IAAG,CAAC;IAEpD,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAqB;YAC3C,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,UAAU;SACjB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,QAAgB;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAgB;YACtC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,YAAY,kBAAkB,CAAC,QAAQ,CAAC,EAAE;SACjD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAgB;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAyB;YAC/C,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,YAAY,kBAAkB,CAAC,QAAQ,CAAC,WAAW;SAC1D,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,OAAe;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAgB;YACtC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,YAAY,kBAAkB,CAAC,QAAQ,CAAC,aAAa,OAAO,EAAE;SACrE,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CACV,QAAgB,EAChB,QAA6B,EAAE;QAE/B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAuB;YAC7C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,YAAY,kBAAkB,CAAC,QAAQ,CAAC,SAAS;YACvD,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CACX,QAAgB,EAChB,KAAiC;QAEjC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAgB;YACtC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,YAAY,kBAAkB,CAAC,QAAQ,CAAC,WAAW;YACzD,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,QAAgB,EAChB,QAAgB,EAChB,KAA4B;QAE5B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA+B;YACrD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,YAAY,kBAAkB,CAAC,QAAQ,CAAC,cAAc,kBAAkB,CAAC,QAAQ,CAAC,EAAE;YAC1F,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAgB,EAAE,QAAgB;QACrD,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAO;YAC5B,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,YAAY,kBAAkB,CAAC,QAAQ,CAAC,cAAc,kBAAkB,CAAC,QAAQ,CAAC,EAAE;SAC3F,CAAC,CAAC;IACL,CAAC;CACF;AAvED,0CAuEC"}
|
package/dist/rag.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { HttpTransport } from './http';
|
|
2
|
+
import type { RagRetrieveRequest, RagRetrieveResponse, RagUpsertRequest, RagUpsertResponse } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Generic tenant-scoped retrieval over Qdrant (capability C13).
|
|
5
|
+
*
|
|
6
|
+
* Collection names are auto-prefixed with the caller's tenant id by the hub
|
|
7
|
+
* so cross-tenant retrieval is impossible. All endpoints require a tenant
|
|
8
|
+
* claim in the token.
|
|
9
|
+
*/
|
|
10
|
+
export declare class RagResource {
|
|
11
|
+
private readonly http;
|
|
12
|
+
constructor(http: HttpTransport);
|
|
13
|
+
upsert(input: RagUpsertRequest): Promise<RagUpsertResponse>;
|
|
14
|
+
retrieve(input: RagRetrieveRequest): Promise<RagRetrieveResponse>;
|
|
15
|
+
/** Drop the tenant's collection. 404 if it doesn't exist. */
|
|
16
|
+
deleteCollection(collection: string): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=rag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rag.d.ts","sourceRoot":"","sources":["../src/rag.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB;;;;;;GAMG;AACH,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAE1C,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAQ3D,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAQvE,6DAA6D;IACvD,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAM1D"}
|
package/dist/rag.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RagResource = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Generic tenant-scoped retrieval over Qdrant (capability C13).
|
|
6
|
+
*
|
|
7
|
+
* Collection names are auto-prefixed with the caller's tenant id by the hub
|
|
8
|
+
* so cross-tenant retrieval is impossible. All endpoints require a tenant
|
|
9
|
+
* claim in the token.
|
|
10
|
+
*/
|
|
11
|
+
class RagResource {
|
|
12
|
+
http;
|
|
13
|
+
constructor(http) {
|
|
14
|
+
this.http = http;
|
|
15
|
+
}
|
|
16
|
+
async upsert(input) {
|
|
17
|
+
return this.http.request({
|
|
18
|
+
method: 'POST',
|
|
19
|
+
path: '/ai/rag/upsert',
|
|
20
|
+
body: input,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
async retrieve(input) {
|
|
24
|
+
return this.http.request({
|
|
25
|
+
method: 'POST',
|
|
26
|
+
path: '/ai/rag/retrieve',
|
|
27
|
+
body: input,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
/** Drop the tenant's collection. 404 if it doesn't exist. */
|
|
31
|
+
async deleteCollection(collection) {
|
|
32
|
+
await this.http.request({
|
|
33
|
+
method: 'DELETE',
|
|
34
|
+
path: `/ai/rag/${encodeURIComponent(collection)}`,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.RagResource = RagResource;
|
|
39
|
+
//# sourceMappingURL=rag.js.map
|
package/dist/rag.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rag.js","sourceRoot":"","sources":["../src/rag.ts"],"names":[],"mappings":";;;AAQA;;;;;;GAMG;AACH,MAAa,WAAW;IACO;IAA7B,YAA6B,IAAmB;QAAnB,SAAI,GAAJ,IAAI,CAAe;IAAG,CAAC;IAEpD,KAAK,CAAC,MAAM,CAAC,KAAuB;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAoB;YAC1C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAyB;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAsB;YAC5C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,kBAAkB;YACxB,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,gBAAgB,CAAC,UAAkB;QACvC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAO;YAC5B,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,WAAW,kBAAkB,CAAC,UAAU,CAAC,EAAE;SAClD,CAAC,CAAC;IACL,CAAC;CACF;AA1BD,kCA0BC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { HttpTransport } from './http';
|
|
2
|
+
import type { AbortProgressInput, ActionResponse, PollProgressOptions, ProgressResponse } from './types';
|
|
3
|
+
export declare class TrackerResource {
|
|
4
|
+
private readonly http;
|
|
5
|
+
constructor(http: HttpTransport);
|
|
6
|
+
get<TData = unknown>(progressId: string): Promise<ProgressResponse<TData>>;
|
|
7
|
+
abort(progressId: string, input?: AbortProgressInput): Promise<ActionResponse>;
|
|
8
|
+
delete(progressId: string): Promise<ActionResponse>;
|
|
9
|
+
/**
|
|
10
|
+
* Poll a progress entry until it reaches a terminal status (done/error/abort)
|
|
11
|
+
* or times out. Throws {@link CfiAiHubError} on timeout or abort signal.
|
|
12
|
+
*/
|
|
13
|
+
pollProgress<TData = unknown>(progressId: string, options?: PollProgressOptions): Promise<ProgressResponse<TData>>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../src/tracker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAUjB,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAE1C,GAAG,CAAC,KAAK,GAAG,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAO1E,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,GAAE,kBAAuB,GAAG,OAAO,CAAC,cAAc,CAAC;IAQlF,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAOzD;;;OAGG;IACG,YAAY,CAAC,KAAK,GAAG,OAAO,EAChC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;CA4BpC"}
|
package/dist/tracker.js
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TrackerResource = void 0;
|
|
4
|
+
const errors_1 = require("./errors");
|
|
5
|
+
const types_1 = require("./types");
|
|
6
|
+
const TERMINAL_STATUSES = new Set([
|
|
7
|
+
types_1.ProgressStatus.DONE,
|
|
8
|
+
types_1.ProgressStatus.ERROR,
|
|
9
|
+
types_1.ProgressStatus.ABORT,
|
|
10
|
+
types_1.ProgressStatus.ABORT_WITH_MESSAGE,
|
|
11
|
+
]);
|
|
12
|
+
class TrackerResource {
|
|
13
|
+
http;
|
|
14
|
+
constructor(http) {
|
|
15
|
+
this.http = http;
|
|
16
|
+
}
|
|
17
|
+
async get(progressId) {
|
|
18
|
+
return this.http.request({
|
|
19
|
+
method: 'GET',
|
|
20
|
+
path: `/tracker/progress/${encodeURIComponent(progressId)}`,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
async abort(progressId, input = {}) {
|
|
24
|
+
return this.http.request({
|
|
25
|
+
method: 'POST',
|
|
26
|
+
path: `/tracker/progress/${encodeURIComponent(progressId)}/abort`,
|
|
27
|
+
body: input,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
async delete(progressId) {
|
|
31
|
+
return this.http.request({
|
|
32
|
+
method: 'DELETE',
|
|
33
|
+
path: `/tracker/progress/${encodeURIComponent(progressId)}`,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Poll a progress entry until it reaches a terminal status (done/error/abort)
|
|
38
|
+
* or times out. Throws {@link CfiAiHubError} on timeout or abort signal.
|
|
39
|
+
*/
|
|
40
|
+
async pollProgress(progressId, options = {}) {
|
|
41
|
+
const intervalMs = options.intervalMs ?? 1000;
|
|
42
|
+
const timeoutMs = options.timeoutMs ?? 30 * 60 * 1000;
|
|
43
|
+
const deadline = Date.now() + timeoutMs;
|
|
44
|
+
while (true) {
|
|
45
|
+
if (options.signal?.aborted) {
|
|
46
|
+
throw new errors_1.CfiAiHubError('Polling aborted', 0, 'ABORTED');
|
|
47
|
+
}
|
|
48
|
+
const progress = await this.get(progressId);
|
|
49
|
+
options.onProgress?.(progress);
|
|
50
|
+
if (TERMINAL_STATUSES.has(progress.status)) {
|
|
51
|
+
return progress;
|
|
52
|
+
}
|
|
53
|
+
if (Date.now() >= deadline) {
|
|
54
|
+
throw new errors_1.CfiAiHubError(`Polling timed out after ${timeoutMs}ms for progress ${progressId}`, 0, 'POLL_TIMEOUT');
|
|
55
|
+
}
|
|
56
|
+
await sleep(intervalMs, options.signal);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.TrackerResource = TrackerResource;
|
|
61
|
+
function sleep(ms, signal) {
|
|
62
|
+
return new Promise((resolve, reject) => {
|
|
63
|
+
const timer = setTimeout(() => {
|
|
64
|
+
signal?.removeEventListener('abort', onAbort);
|
|
65
|
+
resolve();
|
|
66
|
+
}, ms);
|
|
67
|
+
const onAbort = () => {
|
|
68
|
+
clearTimeout(timer);
|
|
69
|
+
reject(new errors_1.CfiAiHubError('Polling aborted', 0, 'ABORTED'));
|
|
70
|
+
};
|
|
71
|
+
signal?.addEventListener('abort', onAbort, { once: true });
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=tracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracker.js","sourceRoot":"","sources":["../src/tracker.ts"],"names":[],"mappings":";;;AAAA,qCAAyC;AAQzC,mCAAyC;AAEzC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAS;IACxC,sBAAc,CAAC,IAAI;IACnB,sBAAc,CAAC,KAAK;IACpB,sBAAc,CAAC,KAAK;IACpB,sBAAc,CAAC,kBAAkB;CAClC,CAAC,CAAC;AAEH,MAAa,eAAe;IACG;IAA7B,YAA6B,IAAmB;QAAnB,SAAI,GAAJ,IAAI,CAAe;IAAG,CAAC;IAEpD,KAAK,CAAC,GAAG,CAAkB,UAAkB;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA0B;YAChD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,qBAAqB,kBAAkB,CAAC,UAAU,CAAC,EAAE;SAC5D,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,UAAkB,EAAE,QAA4B,EAAE;QAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAiB;YACvC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,qBAAqB,kBAAkB,CAAC,UAAU,CAAC,QAAQ;YACjE,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,UAAkB;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAiB;YACvC,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,qBAAqB,kBAAkB,CAAC,UAAU,CAAC,EAAE;SAC5D,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAChB,UAAkB,EAClB,UAA+B,EAAE;QAEjC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC;QAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAExC,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBAC5B,MAAM,IAAI,sBAAa,CAAC,iBAAiB,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;YAC3D,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAQ,UAAU,CAAC,CAAC;YACnD,OAAO,CAAC,UAAU,EAAE,CAAC,QAA4B,CAAC,CAAC;YAEnD,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3C,OAAO,QAAQ,CAAC;YAClB,CAAC;YAED,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,IAAI,sBAAa,CACrB,2BAA2B,SAAS,mBAAmB,UAAU,EAAE,EACnE,CAAC,EACD,cAAc,CACf,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;CACF;AA5DD,0CA4DC;AAED,SAAS,KAAK,CAAC,EAAU,EAAE,MAAoB;IAC7C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC9C,OAAO,EAAE,CAAC;QACZ,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,IAAI,sBAAa,CAAC,iBAAiB,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC;QACF,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC"}
|