oysterun 1.4.9 → 1.5.0-beta.1
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 +374 -34
- package/dev/client/web-chat/dist/assets/{ReactPrism-Dvxp38RS.js → ReactPrism-CnWaHTwG.js} +1 -1
- package/dev/client/web-chat/dist/assets/ReactPrism-CnWaHTwG.js.map +1 -0
- package/dev/client/web-chat/dist/assets/index-B9fWrEk-.js.map +1 -1
- package/dev/client/web-chat/dist/assets/{index-CdJBbrB6.js → index-Bk7cN522.js} +1 -1
- package/dev/client/web-chat/dist/assets/index-Bk7cN522.js.map +1 -0
- package/dev/client/web-chat/dist/assets/{index-5iJVcklH.js → index-Ca6_kdF9.js} +2 -2
- package/dev/client/web-chat/dist/assets/index-Ca6_kdF9.js.map +1 -0
- package/dev/client/web-chat/dist/assets/{index-BRrMvB8k.js → index-GA-8pt0s.js} +83 -85
- package/dev/client/web-chat/dist/assets/index-GA-8pt0s.js.map +1 -0
- package/dev/client/web-chat/dist/assets/{pdf-C_dxab-C.js → pdf-C_iV1r1i.js} +3 -3
- package/dev/client/web-chat/dist/assets/pdf-C_iV1r1i.js.map +1 -0
- package/dev/client/web-chat/dist/assets/{web-CDiscXap.js → web-BBXKV3Qt.js} +1 -1
- package/dev/client/web-chat/dist/assets/web-BBXKV3Qt.js.map +1 -0
- package/dev/client/web-chat/dist/assets/{web-PnVxTH3H.js → web-Dwq5XDl2.js} +1 -1
- package/dev/client/web-chat/dist/assets/web-Dwq5XDl2.js.map +1 -0
- package/dev/client/web-chat/dist/index.html +1 -1
- package/docs/routec/config_hierachy.md +3 -1
- package/docs/routec/dev/npm_native_dependency_install.md +126 -0
- package/docs/routec/dev/npmjs_publish.md +9 -0
- package/docs/routec/dev/pagination_doc.md +123 -0
- package/docs/routec/dev/tool_event_sqlite_continuation.md +128 -0
- package/docs/routec/form_UI_fields.md +2 -0
- package/docs/routec/host_owner_message_navigation.md +6 -5
- package/docs/routec/large_tool_event_spillover.md +44 -0
- package/docs/routec/tool_message_transfer_compression.md +12 -25
- package/host-service/adapters/debug-fixture-provider-adapter.mjs +63 -1
- package/host-service/adapters/debug-routec-structural-replay-provider-adapter.mjs +416 -0
- package/host-service/config.mjs +32 -0
- package/host-service/debug-routec-structural-replay.mjs +481 -0
- package/host-service/large-tool-call-store.mjs +709 -382
- package/host-service/matrix-event-writer.mjs +3 -0
- package/host-service/matrix-facade.mjs +14 -0
- package/host-service/npm-update-policy.mjs +91 -0
- package/host-service/package.json +2 -2
- package/host-service/provider-model-params.mjs +5 -2
- package/host-service/provider-registry.mjs +66 -2
- package/host-service/routec-matrix-storage-adapter.mjs +4 -2
- package/host-service/routec-viewport-geometry-diagnostics.mjs +179 -0
- package/host-service/server.mjs +434 -131
- package/host-service/session-manager.mjs +16 -0
- package/host-service/unified-tool-lifecycle-detail.mjs +2 -2
- package/host-service/update-reminder-state.mjs +2 -0
- package/package.json +3 -2
- package/tool_scripts/install_oysterun_update.mjs +296 -0
- package/tool_scripts/oysterun_service_common.sh +2 -0
- package/tool_scripts/verify_oysterun_runtime.mjs +87 -0
- package/dev/client/web-chat/dist/assets/ReactPrism-Dvxp38RS.js.map +0 -1
- package/dev/client/web-chat/dist/assets/index-5iJVcklH.js.map +0 -1
- package/dev/client/web-chat/dist/assets/index-BRrMvB8k.js.map +0 -1
- package/dev/client/web-chat/dist/assets/index-CdJBbrB6.js.map +0 -1
- package/dev/client/web-chat/dist/assets/pdf-C_dxab-C.js.map +0 -1
- package/dev/client/web-chat/dist/assets/web-CDiscXap.js.map +0 -1
- package/dev/client/web-chat/dist/assets/web-PnVxTH3H.js.map +0 -1
- package/docs/routec/dev/timeline_display_pagination_model.md +0 -255
- package/docs/routec/live_bottom_display_range_alignment.md +0 -47
|
@@ -8957,6 +8957,41 @@
|
|
|
8957
8957
|
</div>
|
|
8958
8958
|
</div>
|
|
8959
8959
|
</div>
|
|
8960
|
+
<div
|
|
8961
|
+
class="kv-label hidden"
|
|
8962
|
+
id="host-update-beta-label"
|
|
8963
|
+
data-oysterun-p021-beta-update-gate="config-debug-only"
|
|
8964
|
+
>
|
|
8965
|
+
Latest Beta
|
|
8966
|
+
</div>
|
|
8967
|
+
<div
|
|
8968
|
+
class="kv-value hidden"
|
|
8969
|
+
id="host-update-beta-value"
|
|
8970
|
+
data-oysterun-p021-beta-update-gate="config-debug-only"
|
|
8971
|
+
>
|
|
8972
|
+
<div class="value-stack">
|
|
8973
|
+
<div
|
|
8974
|
+
class="mono-path"
|
|
8975
|
+
id="host-update-beta-version"
|
|
8976
|
+
>
|
|
8977
|
+
--
|
|
8978
|
+
</div>
|
|
8979
|
+
<div
|
|
8980
|
+
class="field-hint"
|
|
8981
|
+
id="host-update-beta-status"
|
|
8982
|
+
>
|
|
8983
|
+
Checking npm beta tag...
|
|
8984
|
+
</div>
|
|
8985
|
+
<button
|
|
8986
|
+
class="btn-ghost"
|
|
8987
|
+
type="button"
|
|
8988
|
+
id="host-update-beta-run-btn"
|
|
8989
|
+
onClick=${call("runOysterunBetaUpdate")}
|
|
8990
|
+
>
|
|
8991
|
+
Install Beta & Restart
|
|
8992
|
+
</button>
|
|
8993
|
+
</div>
|
|
8994
|
+
</div>
|
|
8960
8995
|
<div class="kv-label">Action</div>
|
|
8961
8996
|
<div class="kv-value">
|
|
8962
8997
|
<div class="control-cell">
|
|
@@ -9036,6 +9071,13 @@
|
|
|
9036
9071
|
work may be marked interrupted and will not be
|
|
9037
9072
|
replayed.
|
|
9038
9073
|
</div>
|
|
9074
|
+
<div
|
|
9075
|
+
class="field-hint host-update-confirmation-warning hidden"
|
|
9076
|
+
id="host-update-confirmation-beta-warning"
|
|
9077
|
+
>
|
|
9078
|
+
Beta builds may be unstable. This action
|
|
9079
|
+
installs the exact npm beta version shown above.
|
|
9080
|
+
</div>
|
|
9039
9081
|
<div class="host-update-confirmation-actions">
|
|
9040
9082
|
<button
|
|
9041
9083
|
class="btn-ghost"
|
|
@@ -13057,11 +13099,17 @@ Waiting for Claude login output…</pre
|
|
|
13057
13099
|
restartStatus: "",
|
|
13058
13100
|
restartRestore: null,
|
|
13059
13101
|
update: null,
|
|
13102
|
+
betaUpdate: null,
|
|
13103
|
+
debugHostPreferencesBetaUpdateEnabled: false,
|
|
13060
13104
|
updateChecking: false,
|
|
13105
|
+
betaUpdateChecking: false,
|
|
13061
13106
|
updateRunning: false,
|
|
13062
13107
|
updateStatus: "",
|
|
13063
13108
|
updateError: "",
|
|
13109
|
+
betaUpdateStatus: "",
|
|
13110
|
+
betaUpdateError: "",
|
|
13064
13111
|
updateConfirmationVisible: false,
|
|
13112
|
+
updateConfirmationMode: "",
|
|
13065
13113
|
updateConfirmationCurrentVersion: "",
|
|
13066
13114
|
updateConfirmationTargetVersion: "",
|
|
13067
13115
|
localUrl: "",
|
|
@@ -29472,7 +29520,7 @@ Waiting for Claude login output…</pre
|
|
|
29472
29520
|
codexReasoningEffortSelect.disabled = true;
|
|
29473
29521
|
}
|
|
29474
29522
|
$("model-hint").textContent =
|
|
29475
|
-
"Fake replay delay. Send 1-13, 13a-d, 16, or combos like 9*20, 7.";
|
|
29523
|
+
"Fake replay delay. Send P017_LIVE_TAIL_3S, 1-13, 13a-d, 16, or combos like 9*20, 7.";
|
|
29476
29524
|
$("runtime-hint").textContent =
|
|
29477
29525
|
"Uses the internal debug fixture provider. It is available only when Host debug fixture mode is enabled.";
|
|
29478
29526
|
} else if (createRuntime === "debug-large-tool-spillover") {
|
|
@@ -32914,6 +32962,8 @@ Waiting for Claude login output…</pre
|
|
|
32914
32962
|
data.folder_access_settings_supported === true,
|
|
32915
32963
|
debugHostPreferencesFullDiskAccessBlockEnabled:
|
|
32916
32964
|
data.debug_host_preferences_full_disk_access_block_enabled === true,
|
|
32965
|
+
debugHostPreferencesBetaUpdateEnabled:
|
|
32966
|
+
data.debug_host_preferences_beta_update_enabled === true,
|
|
32917
32967
|
folderAccessSettingsUri:
|
|
32918
32968
|
typeof data.folder_access_settings_uri === "string"
|
|
32919
32969
|
? data.folder_access_settings_uri
|
|
@@ -32950,11 +33000,19 @@ Waiting for Claude login output…</pre
|
|
|
32950
33000
|
? data.restart_restore
|
|
32951
33001
|
: hostPreferencesState.restartRestore,
|
|
32952
33002
|
update: normalizedUpdate,
|
|
33003
|
+
betaUpdate:
|
|
33004
|
+
data.debug_host_preferences_beta_update_enabled === true
|
|
33005
|
+
? hostPreferencesState.betaUpdate
|
|
33006
|
+
: null,
|
|
32953
33007
|
updateChecking: false,
|
|
33008
|
+
betaUpdateChecking: false,
|
|
32954
33009
|
updateRunning: updateOperationBlocking,
|
|
32955
33010
|
updateStatus: "",
|
|
32956
33011
|
updateError: "",
|
|
33012
|
+
betaUpdateStatus: "",
|
|
33013
|
+
betaUpdateError: "",
|
|
32957
33014
|
updateConfirmationVisible: false,
|
|
33015
|
+
updateConfirmationMode: "",
|
|
32958
33016
|
updateConfirmationCurrentVersion: "",
|
|
32959
33017
|
updateConfirmationTargetVersion: "",
|
|
32960
33018
|
localUrl: data.local_url || "",
|
|
@@ -34588,9 +34646,19 @@ Waiting for Claude login output…</pre
|
|
|
34588
34646
|
const update = normalizeOysterunUpdatePayload(
|
|
34589
34647
|
hostPreferencesState.update || {}
|
|
34590
34648
|
);
|
|
34649
|
+
const betaUpdate =
|
|
34650
|
+
hostPreferencesState.betaUpdate &&
|
|
34651
|
+
typeof hostPreferencesState.betaUpdate === "object"
|
|
34652
|
+
? hostPreferencesState.betaUpdate
|
|
34653
|
+
: {};
|
|
34654
|
+
const betaUpdateVisible =
|
|
34655
|
+
hostPreferencesState.debugHostPreferencesBetaUpdateEnabled === true;
|
|
34656
|
+
setVisible("host-update-beta-label", betaUpdateVisible);
|
|
34657
|
+
setVisible("host-update-beta-value", betaUpdateVisible);
|
|
34591
34658
|
setText("host-update-current", update.current_version || "--");
|
|
34592
34659
|
setText("host-update-newest", update.newest_version || "--");
|
|
34593
34660
|
setText("host-update-latest", update.newest_version || "--");
|
|
34661
|
+
setText("host-update-beta-version", betaUpdate.beta_version || "--");
|
|
34594
34662
|
let updateStatus =
|
|
34595
34663
|
hostPreferencesState.updateError ||
|
|
34596
34664
|
hostPreferencesState.updateStatus ||
|
|
@@ -34608,6 +34676,27 @@ Waiting for Claude login output…</pre
|
|
|
34608
34676
|
}
|
|
34609
34677
|
}
|
|
34610
34678
|
setText("host-update-status", updateStatus);
|
|
34679
|
+
let betaUpdateStatus =
|
|
34680
|
+
hostPreferencesState.betaUpdateError ||
|
|
34681
|
+
hostPreferencesState.betaUpdateStatus ||
|
|
34682
|
+
betaUpdate.error ||
|
|
34683
|
+
"";
|
|
34684
|
+
if (!betaUpdateStatus && betaUpdateVisible) {
|
|
34685
|
+
if (hostPreferencesState.betaUpdateChecking) {
|
|
34686
|
+
betaUpdateStatus = "Checking npm beta tag...";
|
|
34687
|
+
} else if (betaUpdate.relation === "installed") {
|
|
34688
|
+
betaUpdateStatus = "This beta version is already installed.";
|
|
34689
|
+
} else if (betaUpdate.relation === "older") {
|
|
34690
|
+
betaUpdateStatus = `Beta ${betaUpdate.beta_version} is older than the installed version.`;
|
|
34691
|
+
} else if (betaUpdate.update_supported === false) {
|
|
34692
|
+
betaUpdateStatus = "Beta install is unavailable on this stack.";
|
|
34693
|
+
} else if (betaUpdate.relation === "newer") {
|
|
34694
|
+
betaUpdateStatus = `Beta ${betaUpdate.beta_version} is available.`;
|
|
34695
|
+
} else {
|
|
34696
|
+
betaUpdateStatus = "Checking npm beta tag...";
|
|
34697
|
+
}
|
|
34698
|
+
}
|
|
34699
|
+
setText("host-update-beta-status", betaUpdateStatus);
|
|
34611
34700
|
const updatePhase = getOysterunUpdatePhase(update);
|
|
34612
34701
|
setText("host-update-phase", updatePhase);
|
|
34613
34702
|
setText(
|
|
@@ -34618,13 +34707,27 @@ Waiting for Claude login output…</pre
|
|
|
34618
34707
|
isOysterunUpdateOperationBlocking(update);
|
|
34619
34708
|
const updateCanRun =
|
|
34620
34709
|
update.update_supported === true && update.update_available === true;
|
|
34710
|
+
const betaUpdateCanRun =
|
|
34711
|
+
betaUpdateVisible &&
|
|
34712
|
+
betaUpdate.update_supported === true &&
|
|
34713
|
+
betaUpdate.install_available === true &&
|
|
34714
|
+
betaUpdate.relation === "newer";
|
|
34715
|
+
const updateConfirmationMode =
|
|
34716
|
+
hostPreferencesState.updateConfirmationMode === "beta"
|
|
34717
|
+
? "beta"
|
|
34718
|
+
: "latest";
|
|
34719
|
+
const confirmationCanRun =
|
|
34720
|
+
updateConfirmationMode === "beta" ? betaUpdateCanRun : updateCanRun;
|
|
34621
34721
|
const updateTargetVersion =
|
|
34622
|
-
|
|
34623
|
-
|
|
34722
|
+
(updateConfirmationMode === "beta"
|
|
34723
|
+
? betaUpdate.beta_version || betaUpdate.target_version
|
|
34724
|
+
: update.newest_version || update.latest_version) ||
|
|
34624
34725
|
hostPreferencesState.updateConfirmationTargetVersion ||
|
|
34625
34726
|
"the newest version";
|
|
34626
34727
|
const updateCurrentVersion =
|
|
34627
|
-
|
|
34728
|
+
(updateConfirmationMode === "beta"
|
|
34729
|
+
? betaUpdate.current_version
|
|
34730
|
+
: update.current_version) ||
|
|
34628
34731
|
hostPreferencesState.updateConfirmationCurrentVersion ||
|
|
34629
34732
|
"the current version";
|
|
34630
34733
|
const updateConfirmationVisible =
|
|
@@ -34632,7 +34735,7 @@ Waiting for Claude login output…</pre
|
|
|
34632
34735
|
!hostPreferencesState.updateChecking &&
|
|
34633
34736
|
!hostPreferencesState.updateRunning &&
|
|
34634
34737
|
!updateOperationBlocking &&
|
|
34635
|
-
|
|
34738
|
+
confirmationCanRun;
|
|
34636
34739
|
const updateProgressSpinner = $("host-update-progress-spinner");
|
|
34637
34740
|
if (updateProgressSpinner) {
|
|
34638
34741
|
updateProgressSpinner.classList.toggle(
|
|
@@ -34645,6 +34748,7 @@ Waiting for Claude login output…</pre
|
|
|
34645
34748
|
updateCheckButton.disabled =
|
|
34646
34749
|
disabled ||
|
|
34647
34750
|
hostPreferencesState.updateChecking ||
|
|
34751
|
+
hostPreferencesState.betaUpdateChecking ||
|
|
34648
34752
|
hostPreferencesState.updateRunning ||
|
|
34649
34753
|
updateOperationBlocking ||
|
|
34650
34754
|
updateConfirmationVisible;
|
|
@@ -34657,6 +34761,7 @@ Waiting for Claude login output…</pre
|
|
|
34657
34761
|
updateRunButton.disabled =
|
|
34658
34762
|
disabled ||
|
|
34659
34763
|
hostPreferencesState.updateChecking ||
|
|
34764
|
+
hostPreferencesState.betaUpdateChecking ||
|
|
34660
34765
|
hostPreferencesState.updateRunning ||
|
|
34661
34766
|
updateOperationBlocking ||
|
|
34662
34767
|
updateConfirmationVisible ||
|
|
@@ -34665,17 +34770,47 @@ Waiting for Claude login output…</pre
|
|
|
34665
34770
|
? "Installing..."
|
|
34666
34771
|
: "Update & Restart";
|
|
34667
34772
|
}
|
|
34773
|
+
const betaUpdateRunButton = $("host-update-beta-run-btn");
|
|
34774
|
+
if (betaUpdateRunButton) {
|
|
34775
|
+
betaUpdateRunButton.disabled =
|
|
34776
|
+
disabled ||
|
|
34777
|
+
hostPreferencesState.updateChecking ||
|
|
34778
|
+
hostPreferencesState.betaUpdateChecking ||
|
|
34779
|
+
hostPreferencesState.updateRunning ||
|
|
34780
|
+
updateOperationBlocking ||
|
|
34781
|
+
updateConfirmationVisible ||
|
|
34782
|
+
!betaUpdateCanRun;
|
|
34783
|
+
betaUpdateRunButton.textContent = hostPreferencesState.updateRunning
|
|
34784
|
+
? "Installing..."
|
|
34785
|
+
: "Install Beta & Restart";
|
|
34786
|
+
}
|
|
34668
34787
|
setVisible("host-update-confirmation", updateConfirmationVisible);
|
|
34788
|
+
setVisible(
|
|
34789
|
+
"host-update-confirmation-beta-warning",
|
|
34790
|
+
updateConfirmationVisible && updateConfirmationMode === "beta"
|
|
34791
|
+
);
|
|
34792
|
+
setText(
|
|
34793
|
+
"host-update-confirmation-title",
|
|
34794
|
+
updateConfirmationMode === "beta"
|
|
34795
|
+
? "Confirm beta install and restart"
|
|
34796
|
+
: "Confirm update and restart"
|
|
34797
|
+
);
|
|
34669
34798
|
setText("host-update-confirmation-current", updateCurrentVersion);
|
|
34670
34799
|
setText("host-update-confirmation-target", updateTargetVersion);
|
|
34671
34800
|
setText(
|
|
34672
34801
|
"host-update-confirmation-copy",
|
|
34673
|
-
|
|
34802
|
+
updateConfirmationMode === "beta"
|
|
34803
|
+
? `Install Oysterun beta ${updateTargetVersion} over ${updateCurrentVersion}, then restart Host.`
|
|
34804
|
+
: `Update Oysterun from ${updateCurrentVersion} to ${updateTargetVersion}, then restart Host.`
|
|
34674
34805
|
);
|
|
34675
34806
|
const updateConfirmRunButton = $("host-update-confirm-run-btn");
|
|
34676
34807
|
if (updateConfirmRunButton) {
|
|
34677
34808
|
updateConfirmRunButton.disabled =
|
|
34678
34809
|
disabled || !updateConfirmationVisible;
|
|
34810
|
+
updateConfirmRunButton.textContent =
|
|
34811
|
+
updateConfirmationMode === "beta"
|
|
34812
|
+
? "Confirm Beta Install & Restart"
|
|
34813
|
+
: "Confirm Update & Restart";
|
|
34679
34814
|
}
|
|
34680
34815
|
const updateConfirmCancelButton = $("host-update-confirm-cancel-btn");
|
|
34681
34816
|
if (updateConfirmCancelButton) {
|
|
@@ -34800,6 +34935,9 @@ Waiting for Claude login output…</pre
|
|
|
34800
34935
|
]);
|
|
34801
34936
|
applyProviderCatalogData(providerData);
|
|
34802
34937
|
applyHostPreferencesData(data);
|
|
34938
|
+
if (data.debug_host_preferences_beta_update_enabled === true) {
|
|
34939
|
+
await checkOysterunBetaUpdate({ quiet: true });
|
|
34940
|
+
}
|
|
34803
34941
|
} catch (err) {
|
|
34804
34942
|
if (isUnauthorizedError(err)) {
|
|
34805
34943
|
await doLogout({
|
|
@@ -34927,6 +35065,7 @@ Waiting for Claude login output…</pre
|
|
|
34927
35065
|
async function checkOysterunUpdate() {
|
|
34928
35066
|
if (
|
|
34929
35067
|
hostPreferencesState.updateChecking ||
|
|
35068
|
+
hostPreferencesState.betaUpdateChecking ||
|
|
34930
35069
|
hostPreferencesState.updateRunning ||
|
|
34931
35070
|
isOysterunUpdateOperationBlocking(hostPreferencesState.update)
|
|
34932
35071
|
) {
|
|
@@ -34938,6 +35077,7 @@ Waiting for Claude login output…</pre
|
|
|
34938
35077
|
updateStatus: "Checking npm for updates...",
|
|
34939
35078
|
updateError: "",
|
|
34940
35079
|
updateConfirmationVisible: false,
|
|
35080
|
+
updateConfirmationMode: "",
|
|
34941
35081
|
updateConfirmationCurrentVersion: "",
|
|
34942
35082
|
updateConfirmationTargetVersion: "",
|
|
34943
35083
|
};
|
|
@@ -34969,10 +35109,56 @@ Waiting for Claude login output…</pre
|
|
|
34969
35109
|
}
|
|
34970
35110
|
}
|
|
34971
35111
|
|
|
35112
|
+
async function checkOysterunBetaUpdate({ quiet = false } = {}) {
|
|
35113
|
+
if (
|
|
35114
|
+
hostPreferencesState.debugHostPreferencesBetaUpdateEnabled !== true ||
|
|
35115
|
+
hostPreferencesState.betaUpdateChecking ||
|
|
35116
|
+
hostPreferencesState.updateRunning ||
|
|
35117
|
+
isOysterunUpdateOperationBlocking(hostPreferencesState.update)
|
|
35118
|
+
) {
|
|
35119
|
+
return;
|
|
35120
|
+
}
|
|
35121
|
+
hostPreferencesState = {
|
|
35122
|
+
...hostPreferencesState,
|
|
35123
|
+
betaUpdateChecking: true,
|
|
35124
|
+
betaUpdateStatus: quiet ? "" : "Checking npm beta tag...",
|
|
35125
|
+
betaUpdateError: "",
|
|
35126
|
+
updateConfirmationVisible: false,
|
|
35127
|
+
updateConfirmationMode: "",
|
|
35128
|
+
updateConfirmationCurrentVersion: "",
|
|
35129
|
+
updateConfirmationTargetVersion: "",
|
|
35130
|
+
};
|
|
35131
|
+
renderHostPreferences();
|
|
35132
|
+
try {
|
|
35133
|
+
const data = await apiWithAuthRetry(
|
|
35134
|
+
"POST",
|
|
35135
|
+
"/admin/update-beta-check",
|
|
35136
|
+
{}
|
|
35137
|
+
);
|
|
35138
|
+
hostPreferencesState = {
|
|
35139
|
+
...hostPreferencesState,
|
|
35140
|
+
betaUpdate: data && typeof data === "object" ? data : null,
|
|
35141
|
+
betaUpdateChecking: false,
|
|
35142
|
+
betaUpdateStatus: "",
|
|
35143
|
+
betaUpdateError: "",
|
|
35144
|
+
};
|
|
35145
|
+
renderHostPreferences();
|
|
35146
|
+
} catch (err) {
|
|
35147
|
+
hostPreferencesState = {
|
|
35148
|
+
...hostPreferencesState,
|
|
35149
|
+
betaUpdateChecking: false,
|
|
35150
|
+
betaUpdateStatus: "",
|
|
35151
|
+
betaUpdateError: err.message || "Could not check the npm beta tag.",
|
|
35152
|
+
};
|
|
35153
|
+
renderHostPreferences();
|
|
35154
|
+
}
|
|
35155
|
+
}
|
|
35156
|
+
|
|
34972
35157
|
async function runOysterunUpdate() {
|
|
34973
35158
|
if (
|
|
34974
35159
|
hostPreferencesState.updateRunning ||
|
|
34975
35160
|
hostPreferencesState.updateChecking ||
|
|
35161
|
+
hostPreferencesState.betaUpdateChecking ||
|
|
34976
35162
|
isOysterunUpdateOperationBlocking(hostPreferencesState.update)
|
|
34977
35163
|
) {
|
|
34978
35164
|
return;
|
|
@@ -34991,6 +35177,7 @@ Waiting for Claude login output…</pre
|
|
|
34991
35177
|
hostPreferencesState = {
|
|
34992
35178
|
...hostPreferencesState,
|
|
34993
35179
|
updateConfirmationVisible: true,
|
|
35180
|
+
updateConfirmationMode: "latest",
|
|
34994
35181
|
updateConfirmationCurrentVersion:
|
|
34995
35182
|
update.current_version || "the current version",
|
|
34996
35183
|
updateConfirmationTargetVersion: targetVersion,
|
|
@@ -35003,18 +35190,65 @@ Waiting for Claude login output…</pre
|
|
|
35003
35190
|
}, 0);
|
|
35004
35191
|
}
|
|
35005
35192
|
|
|
35193
|
+
async function runOysterunBetaUpdate() {
|
|
35194
|
+
if (
|
|
35195
|
+
hostPreferencesState.debugHostPreferencesBetaUpdateEnabled !== true ||
|
|
35196
|
+
hostPreferencesState.updateRunning ||
|
|
35197
|
+
hostPreferencesState.updateChecking ||
|
|
35198
|
+
hostPreferencesState.betaUpdateChecking ||
|
|
35199
|
+
isOysterunUpdateOperationBlocking(hostPreferencesState.update)
|
|
35200
|
+
) {
|
|
35201
|
+
return;
|
|
35202
|
+
}
|
|
35203
|
+
const betaUpdate = hostPreferencesState.betaUpdate || {};
|
|
35204
|
+
if (
|
|
35205
|
+
betaUpdate.update_supported !== true ||
|
|
35206
|
+
betaUpdate.install_available !== true ||
|
|
35207
|
+
betaUpdate.relation !== "newer"
|
|
35208
|
+
) {
|
|
35209
|
+
return;
|
|
35210
|
+
}
|
|
35211
|
+
const targetVersion =
|
|
35212
|
+
betaUpdate.beta_version || betaUpdate.target_version;
|
|
35213
|
+
if (!targetVersion) return;
|
|
35214
|
+
hostPreferencesState = {
|
|
35215
|
+
...hostPreferencesState,
|
|
35216
|
+
updateConfirmationVisible: true,
|
|
35217
|
+
updateConfirmationMode: "beta",
|
|
35218
|
+
updateConfirmationCurrentVersion:
|
|
35219
|
+
betaUpdate.current_version || "the current version",
|
|
35220
|
+
updateConfirmationTargetVersion: targetVersion,
|
|
35221
|
+
betaUpdateStatus: "Confirm Beta Install & Restart to continue.",
|
|
35222
|
+
betaUpdateError: "",
|
|
35223
|
+
updateStatus: "",
|
|
35224
|
+
updateError: "",
|
|
35225
|
+
};
|
|
35226
|
+
renderHostPreferences();
|
|
35227
|
+
window.setTimeout(() => {
|
|
35228
|
+
$("host-update-confirm-run-btn")?.focus();
|
|
35229
|
+
}, 0);
|
|
35230
|
+
}
|
|
35231
|
+
|
|
35006
35232
|
function cancelOysterunUpdateConfirmation() {
|
|
35233
|
+
const confirmationMode = hostPreferencesState.updateConfirmationMode;
|
|
35007
35234
|
hostPreferencesState = {
|
|
35008
35235
|
...hostPreferencesState,
|
|
35009
35236
|
updateConfirmationVisible: false,
|
|
35237
|
+
updateConfirmationMode: "",
|
|
35010
35238
|
updateConfirmationCurrentVersion: "",
|
|
35011
35239
|
updateConfirmationTargetVersion: "",
|
|
35012
35240
|
updateStatus: "",
|
|
35013
35241
|
updateError: "",
|
|
35242
|
+
betaUpdateStatus: "",
|
|
35243
|
+
betaUpdateError: "",
|
|
35014
35244
|
};
|
|
35015
35245
|
renderHostPreferences();
|
|
35016
35246
|
window.setTimeout(() => {
|
|
35017
|
-
$(
|
|
35247
|
+
$(
|
|
35248
|
+
confirmationMode === "beta"
|
|
35249
|
+
? "host-update-beta-run-btn"
|
|
35250
|
+
: "host-update-run-btn"
|
|
35251
|
+
)?.focus();
|
|
35018
35252
|
}, 0);
|
|
35019
35253
|
}
|
|
35020
35254
|
|
|
@@ -35023,44 +35257,74 @@ Waiting for Claude login output…</pre
|
|
|
35023
35257
|
!hostPreferencesState.updateConfirmationVisible ||
|
|
35024
35258
|
hostPreferencesState.updateRunning ||
|
|
35025
35259
|
hostPreferencesState.updateChecking ||
|
|
35260
|
+
hostPreferencesState.betaUpdateChecking ||
|
|
35026
35261
|
isOysterunUpdateOperationBlocking(hostPreferencesState.update)
|
|
35027
35262
|
) {
|
|
35028
35263
|
return;
|
|
35029
35264
|
}
|
|
35030
|
-
const
|
|
35031
|
-
|
|
35032
|
-
|
|
35033
|
-
|
|
35034
|
-
|
|
35265
|
+
const confirmationMode =
|
|
35266
|
+
hostPreferencesState.updateConfirmationMode === "beta"
|
|
35267
|
+
? "beta"
|
|
35268
|
+
: "latest";
|
|
35269
|
+
const update =
|
|
35270
|
+
confirmationMode === "beta"
|
|
35271
|
+
? hostPreferencesState.betaUpdate || {}
|
|
35272
|
+
: hostPreferencesState.update || {};
|
|
35273
|
+
const canRun =
|
|
35274
|
+
confirmationMode === "beta"
|
|
35275
|
+
? update.update_supported === true &&
|
|
35276
|
+
update.install_available === true &&
|
|
35277
|
+
update.relation === "newer"
|
|
35278
|
+
: update.update_supported === true &&
|
|
35279
|
+
update.update_available === true;
|
|
35280
|
+
if (!canRun) {
|
|
35035
35281
|
cancelOysterunUpdateConfirmation();
|
|
35036
35282
|
return;
|
|
35037
35283
|
}
|
|
35038
35284
|
const targetVersion =
|
|
35039
|
-
|
|
35040
|
-
|
|
35285
|
+
(confirmationMode === "beta"
|
|
35286
|
+
? update.beta_version || update.target_version
|
|
35287
|
+
: update.newest_version || update.latest_version) ||
|
|
35041
35288
|
hostPreferencesState.updateConfirmationTargetVersion ||
|
|
35042
35289
|
"the newest version";
|
|
35043
35290
|
hostPreferencesState = {
|
|
35044
35291
|
...hostPreferencesState,
|
|
35045
35292
|
updateConfirmationVisible: false,
|
|
35293
|
+
updateConfirmationMode: "",
|
|
35046
35294
|
updateConfirmationCurrentVersion: "",
|
|
35047
35295
|
updateConfirmationTargetVersion: "",
|
|
35048
35296
|
updateRunning: true,
|
|
35049
35297
|
updateStatus: "Installing...",
|
|
35298
|
+
betaUpdateStatus: confirmationMode === "beta" ? "Installing..." : "",
|
|
35050
35299
|
updateError: "",
|
|
35300
|
+
betaUpdateError: "",
|
|
35051
35301
|
};
|
|
35052
35302
|
renderHostPreferences();
|
|
35053
35303
|
try {
|
|
35054
|
-
const data = await apiWithAuthRetry(
|
|
35055
|
-
|
|
35304
|
+
const data = await apiWithAuthRetry(
|
|
35305
|
+
"POST",
|
|
35306
|
+
confirmationMode === "beta"
|
|
35307
|
+
? "/admin/update-beta-run"
|
|
35308
|
+
: "/admin/update-run",
|
|
35309
|
+
{}
|
|
35310
|
+
);
|
|
35311
|
+
const normalized =
|
|
35312
|
+
confirmationMode === "beta"
|
|
35313
|
+
? data
|
|
35314
|
+
: normalizeOysterunUpdatePayload(data);
|
|
35056
35315
|
hostPreferencesState = {
|
|
35057
35316
|
...hostPreferencesState,
|
|
35058
|
-
|
|
35317
|
+
...(confirmationMode === "beta"
|
|
35318
|
+
? { betaUpdate: normalized }
|
|
35319
|
+
: { update: normalized }),
|
|
35059
35320
|
restartRestore:
|
|
35060
35321
|
normalized.restart_restore || hostPreferencesState.restartRestore,
|
|
35061
35322
|
updateRunning: true,
|
|
35062
35323
|
updateStatus: "Restarting...",
|
|
35324
|
+
betaUpdateStatus:
|
|
35325
|
+
confirmationMode === "beta" ? "Restarting..." : "",
|
|
35063
35326
|
updateError: "",
|
|
35327
|
+
betaUpdateError: "",
|
|
35064
35328
|
};
|
|
35065
35329
|
renderHostPreferences();
|
|
35066
35330
|
waitForOysterunUpdateReconnect({
|
|
@@ -35069,19 +35333,32 @@ Waiting for Claude login output…</pre
|
|
|
35069
35333
|
normalized.newest_version ||
|
|
35070
35334
|
targetVersion,
|
|
35071
35335
|
startedAt: Date.now(),
|
|
35336
|
+
mode: confirmationMode,
|
|
35072
35337
|
});
|
|
35073
35338
|
} catch (err) {
|
|
35074
35339
|
hostPreferencesState = {
|
|
35075
35340
|
...hostPreferencesState,
|
|
35076
35341
|
updateRunning: false,
|
|
35077
35342
|
updateStatus: "",
|
|
35078
|
-
|
|
35343
|
+
betaUpdateStatus: "",
|
|
35344
|
+
...(confirmationMode === "beta"
|
|
35345
|
+
? {
|
|
35346
|
+
betaUpdateError:
|
|
35347
|
+
err.message || "Could not schedule beta install.",
|
|
35348
|
+
}
|
|
35349
|
+
: {
|
|
35350
|
+
updateError: err.message || "Could not schedule update.",
|
|
35351
|
+
}),
|
|
35079
35352
|
};
|
|
35080
35353
|
renderHostPreferences();
|
|
35081
35354
|
}
|
|
35082
35355
|
}
|
|
35083
35356
|
|
|
35084
|
-
function waitForOysterunUpdateReconnect({
|
|
35357
|
+
function waitForOysterunUpdateReconnect({
|
|
35358
|
+
targetVersion,
|
|
35359
|
+
startedAt,
|
|
35360
|
+
mode = "latest",
|
|
35361
|
+
}) {
|
|
35085
35362
|
const deadline = startedAt + 120000;
|
|
35086
35363
|
const poll = async () => {
|
|
35087
35364
|
if (!token) return;
|
|
@@ -35097,30 +35374,53 @@ Waiting for Claude login output…</pre
|
|
|
35097
35374
|
hostPreferencesState = {
|
|
35098
35375
|
...hostPreferencesState,
|
|
35099
35376
|
update: data,
|
|
35377
|
+
...(mode === "beta" && complete
|
|
35378
|
+
? {
|
|
35379
|
+
betaUpdate: {
|
|
35380
|
+
...(hostPreferencesState.betaUpdate || {}),
|
|
35381
|
+
current_version: observedVersion,
|
|
35382
|
+
beta_version: targetVersion,
|
|
35383
|
+
target_version: targetVersion,
|
|
35384
|
+
relation: "installed",
|
|
35385
|
+
install_available: false,
|
|
35386
|
+
},
|
|
35387
|
+
}
|
|
35388
|
+
: {}),
|
|
35100
35389
|
updateRunning: !complete && Date.now() < deadline,
|
|
35101
35390
|
updateStatus: complete
|
|
35102
|
-
?
|
|
35391
|
+
? mode === "beta"
|
|
35392
|
+
? ""
|
|
35393
|
+
: `Oysterun updated to ${observedVersion || targetVersion}.`
|
|
35103
35394
|
: Date.now() >= deadline
|
|
35104
35395
|
? "Verifying..."
|
|
35105
35396
|
: operation.phase || "Verifying...",
|
|
35106
35397
|
updateError: "",
|
|
35398
|
+
betaUpdateStatus:
|
|
35399
|
+
mode === "beta" && complete
|
|
35400
|
+
? `Oysterun beta ${
|
|
35401
|
+
observedVersion || targetVersion
|
|
35402
|
+
} is installed.`
|
|
35403
|
+
: hostPreferencesState.betaUpdateStatus,
|
|
35404
|
+
betaUpdateError: "",
|
|
35107
35405
|
};
|
|
35108
35406
|
renderHostPreferences();
|
|
35109
35407
|
if (complete) {
|
|
35110
|
-
|
|
35111
|
-
|
|
35112
|
-
|
|
35113
|
-
|
|
35114
|
-
|
|
35115
|
-
|
|
35116
|
-
|
|
35117
|
-
|
|
35118
|
-
|
|
35119
|
-
|
|
35120
|
-
|
|
35121
|
-
|
|
35122
|
-
|
|
35123
|
-
|
|
35408
|
+
if (mode !== "beta") {
|
|
35409
|
+
dismissOysterunUpdateReminder();
|
|
35410
|
+
window.setTimeout(() => {
|
|
35411
|
+
if (
|
|
35412
|
+
hostPreferencesState.updateStatus?.startsWith(
|
|
35413
|
+
"Oysterun updated to "
|
|
35414
|
+
)
|
|
35415
|
+
) {
|
|
35416
|
+
hostPreferencesState = {
|
|
35417
|
+
...hostPreferencesState,
|
|
35418
|
+
updateStatus: "Oysterun is up to date.",
|
|
35419
|
+
};
|
|
35420
|
+
renderHostPreferences();
|
|
35421
|
+
}
|
|
35422
|
+
}, 30000);
|
|
35423
|
+
}
|
|
35124
35424
|
return;
|
|
35125
35425
|
}
|
|
35126
35426
|
} catch {
|
|
@@ -35564,6 +35864,45 @@ Waiting for Claude login output…</pre
|
|
|
35564
35864
|
});
|
|
35565
35865
|
}
|
|
35566
35866
|
|
|
35867
|
+
async function runOysterunBetaUpdate() {
|
|
35868
|
+
if (
|
|
35869
|
+
hostPreferencesState.debugHostPreferencesBetaUpdateEnabled !== true ||
|
|
35870
|
+
hostPreferencesState.updateRunning ||
|
|
35871
|
+
hostPreferencesState.updateChecking ||
|
|
35872
|
+
hostPreferencesState.betaUpdateChecking ||
|
|
35873
|
+
isOysterunUpdateOperationBlocking(hostPreferencesState.update)
|
|
35874
|
+
) {
|
|
35875
|
+
return;
|
|
35876
|
+
}
|
|
35877
|
+
const betaUpdate = hostPreferencesState.betaUpdate || {};
|
|
35878
|
+
if (
|
|
35879
|
+
betaUpdate.update_supported !== true ||
|
|
35880
|
+
betaUpdate.install_available !== true ||
|
|
35881
|
+
betaUpdate.relation !== "newer"
|
|
35882
|
+
) {
|
|
35883
|
+
return;
|
|
35884
|
+
}
|
|
35885
|
+
const targetVersion =
|
|
35886
|
+
betaUpdate.beta_version || betaUpdate.target_version;
|
|
35887
|
+
if (!targetVersion) return;
|
|
35888
|
+
hostPreferencesState = {
|
|
35889
|
+
...hostPreferencesState,
|
|
35890
|
+
updateConfirmationVisible: true,
|
|
35891
|
+
updateConfirmationMode: "beta",
|
|
35892
|
+
updateConfirmationCurrentVersion:
|
|
35893
|
+
betaUpdate.current_version || "the current version",
|
|
35894
|
+
updateConfirmationTargetVersion: targetVersion,
|
|
35895
|
+
betaUpdateStatus: "Confirm Beta Install & Restart to continue.",
|
|
35896
|
+
betaUpdateError: "",
|
|
35897
|
+
updateStatus: "",
|
|
35898
|
+
updateError: "",
|
|
35899
|
+
};
|
|
35900
|
+
renderHostPreferences();
|
|
35901
|
+
window.setTimeout(() => {
|
|
35902
|
+
$("host-update-confirm-run-btn")?.focus();
|
|
35903
|
+
}, 0);
|
|
35904
|
+
}
|
|
35905
|
+
|
|
35567
35906
|
async function finalizeStartedSession(data, opts = {}) {
|
|
35568
35907
|
const attemptId = opts.attemptId ?? createSubmitState.activeAttemptId;
|
|
35569
35908
|
if (!isCurrentCreateAttempt(attemptId)) return false;
|
|
@@ -49020,6 +49359,7 @@ Waiting for Claude login output…</pre
|
|
|
49020
49359
|
window.restartHostFromPreferences = restartHostFromPreferences;
|
|
49021
49360
|
window.checkOysterunUpdate = checkOysterunUpdate;
|
|
49022
49361
|
window.runOysterunUpdate = runOysterunUpdate;
|
|
49362
|
+
window.runOysterunBetaUpdate = runOysterunBetaUpdate;
|
|
49023
49363
|
window.cancelOysterunUpdateConfirmation =
|
|
49024
49364
|
cancelOysterunUpdateConfirmation;
|
|
49025
49365
|
window.confirmOysterunUpdateRestart = confirmOysterunUpdateRestart;
|
|
@@ -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-GA-8pt0s.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>
|