@kosdev-code/kos-ui-sdk 0.1.0-next.811 → 0.1.0-next.814
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/core/core/kosCore.d.ts +7 -0
- package/core/core/kosCore.d.ts.map +1 -1
- package/core/core/lifecycle/kosCoreLifecycle.d.ts +4 -1
- package/core/core/lifecycle/kosCoreLifecycle.d.ts.map +1 -1
- package/index.cjs +50 -8
- package/index.cjs.map +1 -1
- package/index.js +50 -8
- package/index.js.map +1 -1
- package/package.json +3 -3
package/index.js
CHANGED
|
@@ -9913,6 +9913,7 @@ var KosCoreState = /* @__PURE__ */ ((KosCoreState2) => {
|
|
|
9913
9913
|
KosCoreState2["UNLOADING"] = `unloading`;
|
|
9914
9914
|
KosCoreState2["UNLOADED"] = `unloaded`;
|
|
9915
9915
|
KosCoreState2["RELOADING"] = `reloading`;
|
|
9916
|
+
KosCoreState2["FAILED"] = `failed`;
|
|
9916
9917
|
return KosCoreState2;
|
|
9917
9918
|
})(KosCoreState || {});
|
|
9918
9919
|
var KosCoreEvents = /* @__PURE__ */ ((KosCoreEvents2) => {
|
|
@@ -9925,6 +9926,15 @@ var KosCoreEvents = /* @__PURE__ */ ((KosCoreEvents2) => {
|
|
|
9925
9926
|
KosCoreEvents2["RELOAD"] = `reload`;
|
|
9926
9927
|
return KosCoreEvents2;
|
|
9927
9928
|
})(KosCoreEvents || {});
|
|
9929
|
+
const reportFailure = async (step, run2) => {
|
|
9930
|
+
try {
|
|
9931
|
+
return await run2();
|
|
9932
|
+
} catch (error) {
|
|
9933
|
+
const detail = error instanceof Error ? error.stack ?? `${error.name}: ${error.message}` : String(error);
|
|
9934
|
+
log$R.error(`KOS Core lifecycle step "${step}" failed. ${detail}`);
|
|
9935
|
+
throw error;
|
|
9936
|
+
}
|
|
9937
|
+
};
|
|
9928
9938
|
const coreFsm = (core) => {
|
|
9929
9939
|
const onlineMachine2 = createMachine("offline", {
|
|
9930
9940
|
[
|
|
@@ -9962,6 +9972,15 @@ const coreFsm = (core) => {
|
|
|
9962
9972
|
onlineMachine2,
|
|
9963
9973
|
(_service) => log$R.debug(_service.machine.current)
|
|
9964
9974
|
);
|
|
9975
|
+
const failed = transition(
|
|
9976
|
+
`error`,
|
|
9977
|
+
"failed",
|
|
9978
|
+
action$1(() => {
|
|
9979
|
+
runInAction(() => {
|
|
9980
|
+
core.status = "failed";
|
|
9981
|
+
});
|
|
9982
|
+
})
|
|
9983
|
+
);
|
|
9965
9984
|
const machine2 = createMachine({
|
|
9966
9985
|
[
|
|
9967
9986
|
"creating"
|
|
@@ -9984,12 +10003,13 @@ const coreFsm = (core) => {
|
|
|
9984
10003
|
"initializing"
|
|
9985
10004
|
/* INITIALIZING */
|
|
9986
10005
|
]: invoke(
|
|
9987
|
-
() => core.init(),
|
|
10006
|
+
() => reportFailure("initializing", () => core.init()),
|
|
9988
10007
|
transition(
|
|
9989
10008
|
`done`,
|
|
9990
10009
|
"initialized"
|
|
9991
10010
|
/* INITIALIZED */
|
|
9992
|
-
)
|
|
10011
|
+
),
|
|
10012
|
+
failed
|
|
9993
10013
|
),
|
|
9994
10014
|
[
|
|
9995
10015
|
"initialized"
|
|
@@ -10002,12 +10022,13 @@ const coreFsm = (core) => {
|
|
|
10002
10022
|
"loading"
|
|
10003
10023
|
/* LOADING */
|
|
10004
10024
|
]: invoke(
|
|
10005
|
-
() => core.load(),
|
|
10025
|
+
() => reportFailure("loading", () => core.load()),
|
|
10006
10026
|
transition(
|
|
10007
10027
|
`done`,
|
|
10008
10028
|
"loaded"
|
|
10009
10029
|
/* LOADED */
|
|
10010
|
-
)
|
|
10030
|
+
),
|
|
10031
|
+
failed
|
|
10011
10032
|
),
|
|
10012
10033
|
[
|
|
10013
10034
|
"loaded"
|
|
@@ -10027,7 +10048,7 @@ const coreFsm = (core) => {
|
|
|
10027
10048
|
"readying"
|
|
10028
10049
|
/* READYING */
|
|
10029
10050
|
]: invoke(
|
|
10030
|
-
() => core.ready(),
|
|
10051
|
+
() => reportFailure("readying", () => core.ready()),
|
|
10031
10052
|
transition(
|
|
10032
10053
|
`done`,
|
|
10033
10054
|
"ready",
|
|
@@ -10036,19 +10057,25 @@ const coreFsm = (core) => {
|
|
|
10036
10057
|
core.status = "ready";
|
|
10037
10058
|
});
|
|
10038
10059
|
})
|
|
10039
|
-
)
|
|
10060
|
+
),
|
|
10061
|
+
failed
|
|
10040
10062
|
),
|
|
10041
10063
|
[
|
|
10042
10064
|
"reloading"
|
|
10043
10065
|
/* RELOADING */
|
|
10044
10066
|
]: invoke(
|
|
10045
|
-
() => core.reload(),
|
|
10067
|
+
() => reportFailure("reloading", () => core.reload()),
|
|
10046
10068
|
transition(
|
|
10047
10069
|
`done`,
|
|
10048
10070
|
"loading"
|
|
10049
10071
|
/* LOADING */
|
|
10050
|
-
)
|
|
10072
|
+
),
|
|
10073
|
+
failed
|
|
10051
10074
|
),
|
|
10075
|
+
[
|
|
10076
|
+
"failed"
|
|
10077
|
+
/* FAILED */
|
|
10078
|
+
]: state(),
|
|
10052
10079
|
[
|
|
10053
10080
|
"ready"
|
|
10054
10081
|
/* READY */
|
|
@@ -10186,6 +10213,7 @@ class KosCore {
|
|
|
10186
10213
|
isOnline;
|
|
10187
10214
|
_reloading;
|
|
10188
10215
|
_unloading;
|
|
10216
|
+
lifecycleStarted = false;
|
|
10189
10217
|
connectionAlias;
|
|
10190
10218
|
constructor(connectionAlias) {
|
|
10191
10219
|
this.initialized = false;
|
|
@@ -10262,6 +10290,12 @@ class KosCore {
|
|
|
10262
10290
|
}
|
|
10263
10291
|
this._transport = ws.init();
|
|
10264
10292
|
this.fsmService = coreFsm(this);
|
|
10293
|
+
}
|
|
10294
|
+
startLifecycle() {
|
|
10295
|
+
if (this.lifecycleStarted) {
|
|
10296
|
+
return;
|
|
10297
|
+
}
|
|
10298
|
+
this.lifecycleStarted = true;
|
|
10265
10299
|
this.fsmService.service.send(KosCoreEvents.CREATE);
|
|
10266
10300
|
}
|
|
10267
10301
|
get onlineStatus() {
|
|
@@ -10351,6 +10385,12 @@ class KosCore {
|
|
|
10351
10385
|
async ready() {
|
|
10352
10386
|
log$w.debug("Readying KOS Core");
|
|
10353
10387
|
await this._transport.whenReady();
|
|
10388
|
+
log$w.debug("KOS Transport ready. Preloading models");
|
|
10389
|
+
if (!this.modelManager) {
|
|
10390
|
+
throw new Error(
|
|
10391
|
+
"KOS Core reached ready() with no model manager. Its lifecycle was started without a registry."
|
|
10392
|
+
);
|
|
10393
|
+
}
|
|
10354
10394
|
const promises = this.modelManager.preloadedModels.map((model) => {
|
|
10355
10395
|
return {
|
|
10356
10396
|
modelId: model.modelId,
|
|
@@ -10358,6 +10398,7 @@ class KosCore {
|
|
|
10358
10398
|
promise: model.whenReady()
|
|
10359
10399
|
};
|
|
10360
10400
|
});
|
|
10401
|
+
log$w.debug(`Preloaded ${promises.length} models`);
|
|
10361
10402
|
const settled = await Promise.allSettled(
|
|
10362
10403
|
promises.map((promise) => {
|
|
10363
10404
|
const { promise: timeoutPromise, cancel: timeoutCancel } = rejectAfterDelay(5e3, promise.model);
|
|
@@ -10476,6 +10517,7 @@ class KosCore {
|
|
|
10476
10517
|
});
|
|
10477
10518
|
const modelManager = KosModelManager.create(registry, reset2);
|
|
10478
10519
|
instance.modelManager = modelManager;
|
|
10520
|
+
instance.startLifecycle();
|
|
10479
10521
|
return instance;
|
|
10480
10522
|
}
|
|
10481
10523
|
static getInstance(data) {
|