@more-ink/irt-edge 1.2.0 → 1.3.0
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 +13 -0
- package/README.md +18 -0
- package/package.json +1 -1
- package/sdk/client.d.ts +8 -1
- package/sdk/client.d.ts.map +1 -1
- package/sdk/client.js +12 -0
- package/sdk/client.js.map +1 -1
- package/sdk/index.d.ts +1 -1
- package/sdk/index.d.ts.map +1 -1
- package/sdk/types.d.ts +96 -0
- package/sdk/types.d.ts.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @more-ink/irt-edge
|
|
2
2
|
|
|
3
|
+
## 1.3.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Add `recordAnswerOnly` endpoint + SDK method to record responses without requesting a next item, including updated REST route, types, and README docs.
|
|
8
|
+
|
|
9
|
+
## 1.2.1
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Improve SDK typings with comprehensive JSDoc on every request and response shape, clarifying field semantics for IDE hovers and generated docs.
|
|
14
|
+
|
|
3
15
|
## 1.2.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
|
@@ -39,6 +51,7 @@
|
|
|
39
51
|
- `ItemStateResponse<TSkillId>`
|
|
40
52
|
- And all other related types
|
|
41
53
|
|
|
54
|
+
|
|
42
55
|
## 1.1.0
|
|
43
56
|
|
|
44
57
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -115,6 +115,24 @@ if (result.nextItem) {
|
|
|
115
115
|
}
|
|
116
116
|
```
|
|
117
117
|
|
|
118
|
+
#### recordAnswerOnly()
|
|
119
|
+
|
|
120
|
+
Record a user's response without requesting the next recommended item (useful when you already control sequencing).
|
|
121
|
+
|
|
122
|
+
```typescript
|
|
123
|
+
async recordAnswerOnly(params: RecordAnswerRequest): Promise<RecordAnswerOnlyResponse>
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
```typescript
|
|
127
|
+
await client.recordAnswerOnly({
|
|
128
|
+
userId: 'alice',
|
|
129
|
+
skillId: 'geometry',
|
|
130
|
+
itemId: 'q100',
|
|
131
|
+
score: 1.0,
|
|
132
|
+
timestamp: Date.now()
|
|
133
|
+
})
|
|
134
|
+
```
|
|
135
|
+
|
|
118
136
|
#### selectNextItem()
|
|
119
137
|
|
|
120
138
|
Get the next recommended item without recording a response.
|
package/package.json
CHANGED
package/sdk/client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IrtClientConfig, RecordAnswerRequest, RecordAnswerResponse, SelectNextItemRequest, SelectNextItemResponse, UserStateResponse, UserStatesResponse, ItemStateResponse, ItemStatesResponse, HealthResponse } from './types';
|
|
1
|
+
import type { IrtClientConfig, RecordAnswerRequest, RecordAnswerResponse, RecordAnswerOnlyResponse, SelectNextItemRequest, SelectNextItemResponse, UserStateResponse, UserStatesResponse, ItemStateResponse, ItemStatesResponse, HealthResponse } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* IRT Edge API Client
|
|
4
4
|
*
|
|
@@ -48,6 +48,13 @@ export declare class IrtClient<TSkillId = string> {
|
|
|
48
48
|
* @returns Updated user state, standard error, and next item
|
|
49
49
|
*/
|
|
50
50
|
recordAnswer(params: RecordAnswerRequest<TSkillId>): Promise<RecordAnswerResponse<TSkillId>>;
|
|
51
|
+
/**
|
|
52
|
+
* Record a user response without requesting the next item recommendation
|
|
53
|
+
*
|
|
54
|
+
* @param params - Answer recording parameters
|
|
55
|
+
* @returns Updated user state without next item payload
|
|
56
|
+
*/
|
|
57
|
+
recordAnswerOnly(params: RecordAnswerRequest<TSkillId>): Promise<RecordAnswerOnlyResponse<TSkillId>>;
|
|
51
58
|
/**
|
|
52
59
|
* Select the next item for a user without recording a response
|
|
53
60
|
*
|
package/sdk/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/sdk/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EAEf,MAAM,SAAS,CAAA;AAEhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,SAAS,CAAC,QAAQ,GAAG,MAAM;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;gBAEpB,MAAM,EAAE,eAAe;IASnC;;OAEG;YACW,OAAO;IAgDrB;;;;;OAKG;IACG,YAAY,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAOlG;;;;;OAKG;IACG,cAAc,CAAC,MAAM,EAAE,qBAAqB,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAOxG;;;;;;OAMG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAI3F;;;;;OAKG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAI1E;;;;;;OAMG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAI3F;;;;;OAKG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAI1E;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;CAGxC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,eAAe,CAAC,QAAQ,GAAG,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,SAAS,CAAC,QAAQ,CAAC,CAE/F"}
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/sdk/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EAEf,MAAM,SAAS,CAAA;AAEhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,SAAS,CAAC,QAAQ,GAAG,MAAM;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;gBAEpB,MAAM,EAAE,eAAe;IASnC;;OAEG;YACW,OAAO;IAgDrB;;;;;OAKG;IACG,YAAY,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAOlG;;;;;OAKG;IACG,gBAAgB,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAO1G;;;;;OAKG;IACG,cAAc,CAAC,MAAM,EAAE,qBAAqB,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAOxG;;;;;;OAMG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAI3F;;;;;OAKG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAI1E;;;;;;OAMG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAI3F;;;;;OAKG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAI1E;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;CAGxC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,eAAe,CAAC,QAAQ,GAAG,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,SAAS,CAAC,QAAQ,CAAC,CAE/F"}
|
package/sdk/client.js
CHANGED
|
@@ -99,6 +99,18 @@ class IrtClient {
|
|
|
99
99
|
body: JSON.stringify(params),
|
|
100
100
|
});
|
|
101
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* Record a user response without requesting the next item recommendation
|
|
104
|
+
*
|
|
105
|
+
* @param params - Answer recording parameters
|
|
106
|
+
* @returns Updated user state without next item payload
|
|
107
|
+
*/
|
|
108
|
+
async recordAnswerOnly(params) {
|
|
109
|
+
return this.request('/api/irt/answer-only', {
|
|
110
|
+
method: 'POST',
|
|
111
|
+
body: JSON.stringify(params),
|
|
112
|
+
});
|
|
113
|
+
}
|
|
102
114
|
/**
|
|
103
115
|
* Select the next item for a user without recording a response
|
|
104
116
|
*
|
package/sdk/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/sdk/client.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/sdk/client.ts"],"names":[],"mappings":"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"}
|
package/sdk/index.d.ts
CHANGED
|
@@ -41,6 +41,6 @@
|
|
|
41
41
|
* ```
|
|
42
42
|
*/
|
|
43
43
|
export { IrtClient, createIrtClient } from './client';
|
|
44
|
-
export type { IrtClientConfig, RecordAnswerRequest, RecordAnswerResponse, SelectNextItemRequest, SelectNextItemResponse, UserStateResponse, UserStatesResponse, ItemStateResponse, ItemStatesResponse, HealthResponse, ApiResponse, GetUserStateRequest, GetUserStatesRequest, GetItemStateRequest, GetItemStatesRequest, } from './types';
|
|
44
|
+
export type { IrtClientConfig, RecordAnswerRequest, RecordAnswerResponse, RecordAnswerOnlyResponse, SelectNextItemRequest, SelectNextItemResponse, UserStateResponse, UserStatesResponse, ItemStateResponse, ItemStatesResponse, HealthResponse, ApiResponse, GetUserStateRequest, GetUserStatesRequest, GetItemStateRequest, GetItemStatesRequest, } from './types';
|
|
45
45
|
export type { UserSkillState, ItemWithMetadata, UpdateOptions, NextItemOptions, } from '@more-ink/irt-core';
|
|
46
46
|
//# sourceMappingURL=index.d.ts.map
|
package/sdk/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/sdk/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AACrD,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,SAAS,CAAA;AAGhB,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,eAAe,GAChB,MAAM,oBAAoB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/sdk/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AACrD,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,SAAS,CAAA;AAGhB,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,eAAe,GAChB,MAAM,oBAAoB,CAAA"}
|
package/sdk/types.d.ts
CHANGED
|
@@ -2,73 +2,169 @@
|
|
|
2
2
|
* Type definitions for the IRT Edge API SDK
|
|
3
3
|
*/
|
|
4
4
|
import type { UserSkillState, ItemWithMetadata, UpdateOptions, NextItemOptions } from '@more-ink/irt-core';
|
|
5
|
+
/**
|
|
6
|
+
* Payload for recording a learner's response to an item.
|
|
7
|
+
* @template TSkillId Identifier type for skills (defaults to string).
|
|
8
|
+
*/
|
|
5
9
|
export interface RecordAnswerRequest<TSkillId = string> {
|
|
10
|
+
/** Unique learner identifier (stable across sessions). */
|
|
6
11
|
userId: string;
|
|
12
|
+
/** Skill that the item targets (`RS.fluency`, `RS`, etc.). */
|
|
7
13
|
skillId: TSkillId;
|
|
14
|
+
/** Unique item identifier supplied by the content pipeline. */
|
|
8
15
|
itemId: string;
|
|
16
|
+
/** Observed performance score in [0, 1] or scaled equivalent. */
|
|
9
17
|
score: number;
|
|
18
|
+
/** Optional event timestamp (ms). Defaults to `Date.now()` on server. */
|
|
10
19
|
timestamp?: number;
|
|
20
|
+
/** Optional overrides for the IRT update (learning rate, clamps, etc.). */
|
|
11
21
|
updateOptions?: Partial<UpdateOptions>;
|
|
22
|
+
/** Optional overrides for the follow-up item selection call. */
|
|
12
23
|
selectionOptions?: Partial<NextItemOptions>;
|
|
13
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Request payload for fetching the next recommended item for a skill.
|
|
27
|
+
*/
|
|
14
28
|
export interface SelectNextItemRequest<TSkillId = string> {
|
|
29
|
+
/** Learner requesting the recommendation. */
|
|
15
30
|
userId: string;
|
|
31
|
+
/** Target skill for which we want the next item. */
|
|
16
32
|
skillId: TSkillId;
|
|
33
|
+
/** Optional knobs for selector behavior (difficulty window, filters, etc.). */
|
|
17
34
|
selectionOptions?: Partial<NextItemOptions>;
|
|
18
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Request shape for fetching a single user skill state.
|
|
38
|
+
*/
|
|
19
39
|
export interface GetUserStateRequest<TSkillId = string> {
|
|
40
|
+
/** Learner identifier. */
|
|
20
41
|
userId: string;
|
|
42
|
+
/** Skill identifier we want to inspect. */
|
|
21
43
|
skillId: TSkillId;
|
|
22
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Request shape for listing all skill states for a user.
|
|
47
|
+
*/
|
|
23
48
|
export interface GetUserStatesRequest {
|
|
49
|
+
/** Learner identifier. */
|
|
24
50
|
userId: string;
|
|
25
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Request shape for reading an item state for a particular skill.
|
|
54
|
+
*/
|
|
26
55
|
export interface GetItemStateRequest<TSkillId = string> {
|
|
56
|
+
/** Item identifier. */
|
|
27
57
|
itemId: string;
|
|
58
|
+
/** Skill identifier (items can be calibrated per skill). */
|
|
28
59
|
skillId: TSkillId;
|
|
29
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Request shape for listing all skill calibrations for an item.
|
|
63
|
+
*/
|
|
30
64
|
export interface GetItemStatesRequest {
|
|
65
|
+
/** Item identifier. */
|
|
31
66
|
itemId: string;
|
|
32
67
|
}
|
|
68
|
+
/** Generic REST response envelope used by the SDK helpers. */
|
|
33
69
|
export interface ApiResponse<T> {
|
|
70
|
+
/** True when the API call succeeded. */
|
|
34
71
|
success: boolean;
|
|
72
|
+
/** Response payload when successful. */
|
|
35
73
|
data?: T;
|
|
74
|
+
/** Short error code or message when `success` is false. */
|
|
36
75
|
error?: string;
|
|
76
|
+
/** Human-readable description of the outcome. */
|
|
37
77
|
message?: string;
|
|
38
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Response payload returned after recording an answer.
|
|
81
|
+
*/
|
|
39
82
|
export interface RecordAnswerResponse<TSkillId = string> {
|
|
83
|
+
/** Updated learner ability estimate for the requested skill. */
|
|
40
84
|
theta: number;
|
|
85
|
+
/** Standard error associated with the updated theta. */
|
|
41
86
|
se: number;
|
|
87
|
+
/** Optional next recommended item (if selection was requested). */
|
|
42
88
|
nextItem: ItemWithMetadata<TSkillId> | null;
|
|
89
|
+
/** Full snapshot of the learner skill state after the update. */
|
|
43
90
|
updatedUser: UserSkillState<TSkillId>;
|
|
91
|
+
/** Updated item calibration metadata. */
|
|
44
92
|
updatedItem: ItemWithMetadata<TSkillId>;
|
|
45
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* Response payload returned after recording an answer without requesting the next item.
|
|
96
|
+
*/
|
|
97
|
+
export interface RecordAnswerOnlyResponse<TSkillId = string> {
|
|
98
|
+
/** Updated learner ability estimate for the requested skill. */
|
|
99
|
+
theta: number;
|
|
100
|
+
/** Standard error associated with the updated theta. */
|
|
101
|
+
se: number;
|
|
102
|
+
/** Full snapshot of the learner skill state after the update. */
|
|
103
|
+
updatedUser: UserSkillState<TSkillId>;
|
|
104
|
+
/** Updated item calibration metadata. */
|
|
105
|
+
updatedItem: ItemWithMetadata<TSkillId>;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Response payload returned when requesting the next item only.
|
|
109
|
+
*/
|
|
46
110
|
export interface SelectNextItemResponse<TSkillId = string> {
|
|
111
|
+
/** Latest learner state for the requested skill. */
|
|
47
112
|
user: UserSkillState<TSkillId>;
|
|
113
|
+
/** Next item recommendation or `null` when no item qualifies. */
|
|
48
114
|
nextItem: ItemWithMetadata<TSkillId> | null;
|
|
49
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* Wrapper around a single skill state returned from the API.
|
|
118
|
+
*/
|
|
50
119
|
export interface UserStateResponse<TSkillId = string> {
|
|
120
|
+
/** Skill state snapshot. */
|
|
51
121
|
user: UserSkillState<TSkillId>;
|
|
122
|
+
/** Standard error for the reported theta (mirrors `user.se`). */
|
|
52
123
|
se: number;
|
|
53
124
|
}
|
|
125
|
+
/**
|
|
126
|
+
* Response structure when fetching many skill states for a user.
|
|
127
|
+
*/
|
|
54
128
|
export interface UserStatesResponse<TSkillId = string> {
|
|
129
|
+
/** Learner identifier echoed back for convenience. */
|
|
55
130
|
userId: string;
|
|
131
|
+
/** Ordered list of the learner's skill states. */
|
|
56
132
|
skills: UserStateResponse<TSkillId>[];
|
|
133
|
+
/** Count of returned skill states (mirrors `skills.length`). */
|
|
57
134
|
count: number;
|
|
58
135
|
}
|
|
136
|
+
/**
|
|
137
|
+
* Item-level response for a single skill calibration.
|
|
138
|
+
*/
|
|
59
139
|
export interface ItemStateResponse<TSkillId = string> extends ItemWithMetadata<TSkillId> {
|
|
60
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* Response structure when listing all skill calibrations for an item.
|
|
143
|
+
*/
|
|
61
144
|
export interface ItemStatesResponse<TSkillId = string> {
|
|
145
|
+
/** Item identifier echoed back for convenience. */
|
|
62
146
|
itemId: string;
|
|
147
|
+
/** Calibrations for each skill the item supports. */
|
|
63
148
|
skills: ItemWithMetadata<TSkillId>[];
|
|
149
|
+
/** Count of returned calibrations. */
|
|
64
150
|
count: number;
|
|
65
151
|
}
|
|
152
|
+
/**
|
|
153
|
+
* Simple health check response from the Edge service.
|
|
154
|
+
*/
|
|
66
155
|
export interface HealthResponse {
|
|
156
|
+
/** Indicates whether the service is healthy. */
|
|
67
157
|
success: boolean;
|
|
158
|
+
/** Logical service name (helps in multi-instance deployments). */
|
|
68
159
|
service: string;
|
|
160
|
+
/** Free-form status string (`"ok"`, `"degraded"`, etc.). */
|
|
69
161
|
status: string;
|
|
162
|
+
/** Timestamp (ms) when the health snapshot was generated. */
|
|
70
163
|
timestamp: number;
|
|
71
164
|
}
|
|
165
|
+
/**
|
|
166
|
+
* Configuration accepted by the SDK client factory.
|
|
167
|
+
*/
|
|
72
168
|
export interface IrtClientConfig {
|
|
73
169
|
/**
|
|
74
170
|
* Base URL of the IRT Edge API server
|
package/sdk/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/sdk/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/sdk/types.ts"],"names":[],"mappings":"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"}
|