oysterun 1.6.0-beta.2 → 1.6.0-beta.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/dev/client/web/index.html +73 -50
- package/dev/client/web-chat/dist/assets/{ReactPrism-BwJhidYf.js → ReactPrism-BuUmuUha.js} +1 -1
- package/dev/client/web-chat/dist/assets/{ReactPrism-BwJhidYf.js.map → ReactPrism-BuUmuUha.js.map} +1 -1
- package/dev/client/web-chat/dist/assets/{index-DzIClZ3T.js → index-B8DZaf0p.js} +2 -2
- package/dev/client/web-chat/dist/assets/{index-DzIClZ3T.js.map → index-B8DZaf0p.js.map} +1 -1
- package/dev/client/web-chat/dist/assets/{index-NYnaSGBb.css → index-B9ymKor4.css} +1 -1
- package/dev/client/web-chat/dist/assets/{index--1xmQ99x.js → index-BH_BhJkj.js} +1 -1
- package/dev/client/web-chat/dist/assets/{index--1xmQ99x.js.map → index-BH_BhJkj.js.map} +1 -1
- package/dev/client/web-chat/dist/assets/{index-Ce9NZBZf.js → index-CU330HS9.js} +85 -85
- package/dev/client/web-chat/dist/assets/index-CU330HS9.js.map +1 -0
- package/dev/client/web-chat/dist/assets/{pdf-ZjtalfgI.js → pdf-CvhY1cT6.js} +3 -3
- package/dev/client/web-chat/dist/assets/{pdf-ZjtalfgI.js.map → pdf-CvhY1cT6.js.map} +1 -1
- package/dev/client/web-chat/dist/assets/{web-c70YaskK.js → web-BhUj2o7d.js} +1 -1
- package/dev/client/web-chat/dist/assets/{web-c70YaskK.js.map → web-BhUj2o7d.js.map} +1 -1
- package/dev/client/web-chat/dist/assets/{web-BzHcZK2M.js → web-CLjeBhsF.js} +1 -1
- package/dev/client/web-chat/dist/assets/{web-BzHcZK2M.js.map → web-CLjeBhsF.js.map} +1 -1
- package/dev/client/web-chat/dist/index.html +4 -10
- package/host-service/assets/product-skills/Oysterun/modules/oysterun-find-context/SKILL.md +7 -0
- package/host-service/assets/product-skills/Oysterun/modules/oysterun-session-chat/SKILL.md +7 -0
- package/host-service/assets/product-skills/Oysterun/modules/oysterun-sessions/SKILL.md +7 -0
- package/host-service/assets/product-skills/Oysterun/modules/oysterun-website/SKILL.md +7 -0
- package/host-service/assets/product-skills/oysterun-find-context/SKILL.md +7 -0
- package/host-service/assets/product-skills/oysterun-session-chat/SKILL.md +7 -0
- package/host-service/assets/product-skills/oysterun-sessions/SKILL.md +7 -0
- package/host-service/assets/product-skills/oysterun-website/SKILL.md +7 -0
- package/host-service/frp-agent.mjs +9 -9
- package/host-service/host-lifecycle-recovery.mjs +37 -0
- package/host-service/lifecycle-continuity-assets.mjs +158 -0
- package/host-service/lifecycle-continuity-probe.mjs +97 -0
- package/host-service/lifecycle-continuity-projection.mjs +22 -0
- package/host-service/lifecycle-continuity-runner.mjs +95 -0
- package/host-service/lifecycle-continuity.mjs +290 -0
- package/host-service/lifecycle-service-render-bundle.mjs +120 -0
- package/host-service/package.json +1 -1
- package/host-service/product-runtime-host-origin.mjs +22 -0
- package/host-service/server.mjs +430 -175
- package/host-service/service-definition-migration.mjs +5 -1
- package/host-service/update-reminder-state.mjs +5 -0
- package/package.json +1 -1
- package/tool_scripts/install_oysterun_update.mjs +78 -13
- package/tool_scripts/oysterun_continuity_transaction.mjs +313 -0
- package/tool_scripts/oysterun_npm_package_manifest.mjs +10 -0
- package/tool_scripts/oysterun_update_restart_runner.mjs +16 -1
- package/tool_scripts/p233_legacy_bootstrap.mjs +254 -0
- package/tool_scripts/restart_oysterun.sh +6 -0
- package/dev/client/web-chat/dist/assets/index-Ce9NZBZf.js.map +0 -1
|
@@ -563,6 +563,10 @@
|
|
|
563
563
|
min-width: 150px;
|
|
564
564
|
}
|
|
565
565
|
|
|
566
|
+
#host-restart-status:empty {
|
|
567
|
+
display: none;
|
|
568
|
+
}
|
|
569
|
+
|
|
566
570
|
.host-restart-copy-region {
|
|
567
571
|
display: grid;
|
|
568
572
|
min-height: 72px;
|
|
@@ -9579,13 +9583,20 @@
|
|
|
9579
9583
|
>
|
|
9580
9584
|
Restart Host
|
|
9581
9585
|
</button>
|
|
9586
|
+
<div
|
|
9587
|
+
class="field-hint"
|
|
9588
|
+
id="host-restart-status"
|
|
9589
|
+
role="status"
|
|
9590
|
+
aria-live="polite"
|
|
9591
|
+
></div>
|
|
9582
9592
|
<div class="host-restart-copy-region">
|
|
9583
9593
|
<div
|
|
9584
9594
|
class="field-hint"
|
|
9585
9595
|
id="host-restart-default-copy"
|
|
9586
9596
|
>
|
|
9587
|
-
Existing
|
|
9588
|
-
|
|
9597
|
+
Existing Sessions will be restored after
|
|
9598
|
+
restart. Loops remain off; active work is not
|
|
9599
|
+
replayed.
|
|
9589
9600
|
</div>
|
|
9590
9601
|
<div
|
|
9591
9602
|
class="host-restart-handoff"
|
|
@@ -9948,11 +9959,10 @@
|
|
|
9948
9959
|
id="host-update-confirmation-warning"
|
|
9949
9960
|
>
|
|
9950
9961
|
Oysterun will prepare restore state for existing
|
|
9951
|
-
|
|
9952
|
-
|
|
9953
|
-
|
|
9954
|
-
|
|
9955
|
-
replayed.
|
|
9962
|
+
Sessions before restarting Host. Loops remain
|
|
9963
|
+
off. Active provider replies, terminal commands,
|
|
9964
|
+
loop turns, and scheduler work may be marked
|
|
9965
|
+
interrupted and will not be replayed.
|
|
9956
9966
|
</div>
|
|
9957
9967
|
<div
|
|
9958
9968
|
class="field-hint host-update-confirmation-warning hidden"
|
|
@@ -14930,6 +14940,12 @@ Waiting for Claude login output…</pre
|
|
|
14930
14940
|
let hostRestartLoginGatePollTimer = null;
|
|
14931
14941
|
let hostRestartLoginGatePollGeneration = 0;
|
|
14932
14942
|
let hostRestartLoginReturnPending = false;
|
|
14943
|
+
const HOST_LIFECYCLE_RECOVERY_MODES = Object.freeze([
|
|
14944
|
+
"restart_only",
|
|
14945
|
+
"complete_update_and_restart",
|
|
14946
|
+
"repair_and_restart",
|
|
14947
|
+
"restore_and_restart",
|
|
14948
|
+
]);
|
|
14933
14949
|
const HOST_RESTART_HANDOFF_COPY =
|
|
14934
14950
|
"Please wait while Oysterun restarts. This usually takes about 30 seconds.";
|
|
14935
14951
|
const HOST_RESTART_LOGIN_BLOCKED_COPY =
|
|
@@ -32323,8 +32339,9 @@ Waiting for Claude login output…</pre
|
|
|
32323
32339
|
function getOysterunUpdatePhase(update) {
|
|
32324
32340
|
const operation = update?.update_operation || null;
|
|
32325
32341
|
if (
|
|
32326
|
-
operation?.
|
|
32327
|
-
operation?.status === "
|
|
32342
|
+
!operation?.root_failure &&
|
|
32343
|
+
(operation?.status === "update_recovery_required" ||
|
|
32344
|
+
operation?.status === "restart_recovery_required")
|
|
32328
32345
|
) {
|
|
32329
32346
|
return (
|
|
32330
32347
|
update?.recovery_plan?.user_action?.title ||
|
|
@@ -32344,7 +32361,10 @@ Waiting for Claude login output…</pre
|
|
|
32344
32361
|
: "Oysterun update completed.";
|
|
32345
32362
|
}
|
|
32346
32363
|
if (operation.status === "restart_complete") {
|
|
32347
|
-
return
|
|
32364
|
+
return (
|
|
32365
|
+
operation.recovery_result?.safe_message ||
|
|
32366
|
+
"Host restart completed; all Sessions, history and route verified."
|
|
32367
|
+
);
|
|
32348
32368
|
}
|
|
32349
32369
|
if (operation.status === "superseded_reconciled") {
|
|
32350
32370
|
return operation.superseded_by_version
|
|
@@ -32364,11 +32384,13 @@ Waiting for Claude login output…</pre
|
|
|
32364
32384
|
const rollbackText = operation.rollback_result?.safe_message || "";
|
|
32365
32385
|
const recoveryText = operation.recovery_result?.safe_message || "";
|
|
32366
32386
|
const cleanupText = operation.cleanup_result?.safe_message || "";
|
|
32367
|
-
return `Failed check: ${rootFailure.check}
|
|
32368
|
-
rootFailure.
|
|
32369
|
-
} ${
|
|
32370
|
-
|
|
32371
|
-
}${
|
|
32387
|
+
return `Failed check: ${rootFailure.check} (stage: ${
|
|
32388
|
+
rootFailure.stage || "lifecycle"
|
|
32389
|
+
}). ${rootFailure.safe_message} ${restartText}${
|
|
32390
|
+
rollbackText ? ` ${rollbackText}` : ""
|
|
32391
|
+
}${recoveryText ? ` ${recoveryText}` : ""}${
|
|
32392
|
+
cleanupText ? ` ${cleanupText}` : ""
|
|
32393
|
+
}`;
|
|
32372
32394
|
}
|
|
32373
32395
|
if (operation.status === "rolled_back") {
|
|
32374
32396
|
return operation.final_observed_version
|
|
@@ -45974,8 +45996,6 @@ Waiting for Claude login output…</pre
|
|
|
45974
45996
|
? `QR will use Oysterun Managed Endpoint ${hostPreferencesState.managedEndpoint}.`
|
|
45975
45997
|
: hostPreferencesState.managedTunnelStatusDetail ||
|
|
45976
45998
|
"Managed Endpoint must be Ready before generating a login QR.";
|
|
45977
|
-
} else if (hostPreferencesState.restartStatus) {
|
|
45978
|
-
directAccessStatus = hostPreferencesState.restartStatus;
|
|
45979
45999
|
} else if (hostPreferencesState.directHostUrlRestartRequired) {
|
|
45980
46000
|
directAccessStatus =
|
|
45981
46001
|
"Saved URL differs from the running Host URL. Restart Host before using the new app connection URL.";
|
|
@@ -46051,6 +46071,8 @@ Waiting for Claude login output…</pre
|
|
|
46051
46071
|
: {};
|
|
46052
46072
|
const betaUpdateVisible =
|
|
46053
46073
|
hostPreferencesState.debugHostPreferencesBetaUpdateEnabled === true;
|
|
46074
|
+
const restartOperation =
|
|
46075
|
+
update.update_operation?.transaction_kind === "restart_only";
|
|
46054
46076
|
setVisible("host-update-beta-label", betaUpdateVisible);
|
|
46055
46077
|
setVisible("host-update-beta-value", betaUpdateVisible);
|
|
46056
46078
|
setText("host-update-current", update.current_version || "--");
|
|
@@ -46060,7 +46082,7 @@ Waiting for Claude login output…</pre
|
|
|
46060
46082
|
let updateStatus =
|
|
46061
46083
|
hostPreferencesState.updateError ||
|
|
46062
46084
|
hostPreferencesState.updateStatus ||
|
|
46063
|
-
update.error ||
|
|
46085
|
+
(!restartOperation && update.error) ||
|
|
46064
46086
|
"";
|
|
46065
46087
|
if (!updateStatus) {
|
|
46066
46088
|
if (update.update_available === true) {
|
|
@@ -46105,7 +46127,12 @@ Waiting for Claude login output…</pre
|
|
|
46105
46127
|
betaUpdateVisible && hostPreferencesState.betaUpdateRefreshing
|
|
46106
46128
|
);
|
|
46107
46129
|
const updatePhase = getOysterunUpdatePhase(update);
|
|
46108
|
-
setText(
|
|
46130
|
+
setText(
|
|
46131
|
+
"host-restart-status",
|
|
46132
|
+
hostPreferencesState.restartStatus ||
|
|
46133
|
+
(restartOperation ? updatePhase : "")
|
|
46134
|
+
);
|
|
46135
|
+
setText("host-update-phase", restartOperation ? "" : updatePhase);
|
|
46109
46136
|
setText(
|
|
46110
46137
|
"host-update-last-checked",
|
|
46111
46138
|
formatOysterunUpdateCheckedAt(update)
|
|
@@ -46155,11 +46182,7 @@ Waiting for Claude login output…</pre
|
|
|
46155
46182
|
betaUpdate.update_supported === true &&
|
|
46156
46183
|
betaUpdate.install_available === true &&
|
|
46157
46184
|
betaUpdate.relation === "newer";
|
|
46158
|
-
const recoveryActionKinds =
|
|
46159
|
-
"complete_update_and_restart",
|
|
46160
|
-
"repair_and_restart",
|
|
46161
|
-
"restore_and_restart",
|
|
46162
|
-
];
|
|
46185
|
+
const recoveryActionKinds = HOST_LIFECYCLE_RECOVERY_MODES;
|
|
46163
46186
|
const updateHandoffActive =
|
|
46164
46187
|
restartHandoff?.mode === "latest" ||
|
|
46165
46188
|
restartHandoff?.mode === "beta" ||
|
|
@@ -46183,7 +46206,8 @@ Waiting for Claude login output…</pre
|
|
|
46183
46206
|
: updateCanRun;
|
|
46184
46207
|
const updateTargetVersion =
|
|
46185
46208
|
(recoveryConfirmation
|
|
46186
|
-
?
|
|
46209
|
+
? recoveryAction?.target_version ||
|
|
46210
|
+
update.update_operation?.target_version ||
|
|
46187
46211
|
update.update_operation?.last_working_version
|
|
46188
46212
|
: updateConfirmationMode === "beta"
|
|
46189
46213
|
? betaUpdate.beta_version || betaUpdate.target_version
|
|
@@ -46601,7 +46625,7 @@ Waiting for Claude login output…</pre
|
|
|
46601
46625
|
...hostPreferencesState,
|
|
46602
46626
|
restartLoading: true,
|
|
46603
46627
|
restartStatus:
|
|
46604
|
-
"Preparing
|
|
46628
|
+
"Preparing existing Sessions for restore. Loops will remain off; prompts will not replay...",
|
|
46605
46629
|
loginQrError: "",
|
|
46606
46630
|
};
|
|
46607
46631
|
renderHostPreferences();
|
|
@@ -46618,8 +46642,13 @@ Waiting for Claude login output…</pre
|
|
|
46618
46642
|
hostPreferencesState = {
|
|
46619
46643
|
...hostPreferencesState,
|
|
46620
46644
|
restartLoading: false,
|
|
46621
|
-
restartStatus: "",
|
|
46622
|
-
loginQrError:
|
|
46645
|
+
restartStatus: err.data?.update_operation ? "" : err.message,
|
|
46646
|
+
loginQrError: "",
|
|
46647
|
+
updateStatus: "",
|
|
46648
|
+
updateError: "",
|
|
46649
|
+
update: err.data?.update_operation
|
|
46650
|
+
? normalizeOysterunUpdatePayload(err.data)
|
|
46651
|
+
: { ...hostPreferencesState.update, update_operation: null },
|
|
46623
46652
|
};
|
|
46624
46653
|
renderHostPreferences();
|
|
46625
46654
|
}
|
|
@@ -46754,6 +46783,7 @@ Waiting for Claude login output…</pre
|
|
|
46754
46783
|
updateConfirmationCurrentVersion:
|
|
46755
46784
|
update.current_version || "the current version",
|
|
46756
46785
|
updateConfirmationTargetVersion:
|
|
46786
|
+
action.target_version ||
|
|
46757
46787
|
update.update_operation?.target_version ||
|
|
46758
46788
|
update.update_operation?.last_working_version ||
|
|
46759
46789
|
"the retained version",
|
|
@@ -46892,11 +46922,8 @@ Waiting for Claude login output…</pre
|
|
|
46892
46922
|
};
|
|
46893
46923
|
renderHostPreferences();
|
|
46894
46924
|
window.setTimeout(() => {
|
|
46895
|
-
const recoveryMode =
|
|
46896
|
-
|
|
46897
|
-
"repair_and_restart",
|
|
46898
|
-
"restore_and_restart",
|
|
46899
|
-
].includes(confirmationMode);
|
|
46925
|
+
const recoveryMode =
|
|
46926
|
+
HOST_LIFECYCLE_RECOVERY_MODES.includes(confirmationMode);
|
|
46900
46927
|
$(
|
|
46901
46928
|
recoveryMode
|
|
46902
46929
|
? "host-update-recovery-btn"
|
|
@@ -46908,11 +46935,7 @@ Waiting for Claude login output…</pre
|
|
|
46908
46935
|
}
|
|
46909
46936
|
|
|
46910
46937
|
async function confirmOysterunUpdateRestart() {
|
|
46911
|
-
const recoveryModes =
|
|
46912
|
-
"complete_update_and_restart",
|
|
46913
|
-
"repair_and_restart",
|
|
46914
|
-
"restore_and_restart",
|
|
46915
|
-
];
|
|
46938
|
+
const recoveryModes = HOST_LIFECYCLE_RECOVERY_MODES;
|
|
46916
46939
|
const requestedMode = hostPreferencesState.updateConfirmationMode;
|
|
46917
46940
|
const confirmationMode =
|
|
46918
46941
|
requestedMode === "beta"
|
|
@@ -46948,22 +46971,17 @@ Waiting for Claude login output…</pre
|
|
|
46948
46971
|
cancelOysterunUpdateConfirmation();
|
|
46949
46972
|
return;
|
|
46950
46973
|
}
|
|
46974
|
+
// Freeze the exact version visible in the confirmation, even if a
|
|
46975
|
+
// background check refreshes the surrounding Preferences state.
|
|
46951
46976
|
const targetVersion =
|
|
46952
|
-
|
|
46953
|
-
|
|
46954
|
-
|
|
46955
|
-
: confirmationMode === "beta"
|
|
46956
|
-
? update.beta_version || update.target_version
|
|
46957
|
-
: update.newest_version || update.latest_version) ||
|
|
46958
|
-
hostPreferencesState.updateConfirmationTargetVersion ||
|
|
46959
|
-
"the newest version";
|
|
46977
|
+
hostPreferencesState.updateConfirmationTargetVersion;
|
|
46978
|
+
const confirmedCurrentVersion =
|
|
46979
|
+
hostPreferencesState.updateConfirmationCurrentVersion;
|
|
46960
46980
|
hostPreferencesState = {
|
|
46961
46981
|
...hostPreferencesState,
|
|
46962
46982
|
updateConfirmationVisible: false,
|
|
46963
46983
|
updateConfirmationMode: confirmationMode,
|
|
46964
|
-
updateConfirmationCurrentVersion:
|
|
46965
|
-
update.current_version ||
|
|
46966
|
-
hostPreferencesState.updateConfirmationCurrentVersion,
|
|
46984
|
+
updateConfirmationCurrentVersion: confirmedCurrentVersion,
|
|
46967
46985
|
updateConfirmationTargetVersion: targetVersion,
|
|
46968
46986
|
updateRunning: true,
|
|
46969
46987
|
updateRequestPending: true,
|
|
@@ -46987,7 +47005,12 @@ Waiting for Claude login output…</pre
|
|
|
46987
47005
|
: confirmationMode === "beta"
|
|
46988
47006
|
? "/admin/update-beta-run"
|
|
46989
47007
|
: "/admin/update-run",
|
|
46990
|
-
recoveryConfirmation
|
|
47008
|
+
recoveryConfirmation
|
|
47009
|
+
? { kind: confirmationMode }
|
|
47010
|
+
: {
|
|
47011
|
+
expected_current_version: confirmedCurrentVersion,
|
|
47012
|
+
expected_target_version: targetVersion,
|
|
47013
|
+
}
|
|
46991
47014
|
);
|
|
46992
47015
|
const normalized =
|
|
46993
47016
|
confirmationMode === "beta" && !recoveryConfirmation
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{g as ee,c as Y,r as K,j as Z}from"./index-
|
|
1
|
+
import{g as ee,c as Y,r as K,j as Z}from"./index-CU330HS9.js";var X={exports:{}};(function(e){var t=typeof window<"u"?window:typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{};/**
|
|
2
2
|
* Prism: Lightweight, robust, elegant syntax highlighting
|
|
3
3
|
*
|
|
4
4
|
* @license MIT <https://opensource.org/licenses/MIT>
|