mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-06-16 09:45:24 -04:00
Odysseus v1.0
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
// compare/state.js — shared mutable state for compare modules
|
||||
const state = {
|
||||
API_BASE: '',
|
||||
isActive: false,
|
||||
_streaming: false,
|
||||
_blindMode: true,
|
||||
_saveOnClose: false,
|
||||
_continueChat: false,
|
||||
_timeout: 300, // seconds
|
||||
_finishOrder: 0,
|
||||
_paneElapsed: [], // per-pane total ms; populated on finish so the
|
||||
// Fastest badge can be awarded by actual time
|
||||
// (sequential mode otherwise always picks pane 1)
|
||||
_selectedModels: [], // [{model, endpoint, endpointId, name}, ...]
|
||||
_paneSessionIds: [], // session IDs for each pane
|
||||
_paneMetrics: [], // metrics per pane from last round
|
||||
_abortControllers: [], // per-pane abort controllers
|
||||
_sidebarWasHidden: false,
|
||||
_compareElements: [], // elements we added to container (for cleanup)
|
||||
_savedToggles: null, // tool toggle states saved before compare
|
||||
_savedIndicatorDisplay: {}, // display state of toolbar indicators before compare
|
||||
_savedMode: 'chat', // agent/chat mode saved before compare
|
||||
_hasVisibleResults: false, // compare results still on screen after close
|
||||
_compareMode: 'chat', // 'chat', 'agent', 'search', or 'research'
|
||||
_lastPrompt: '', // last prompt sent (for rematch)
|
||||
_cachedModels: [], // cached model list for pane dropdowns
|
||||
_probed: new Set(), // model IDs that have been successfully probed
|
||||
_cachedProviders: null, // cached search providers for search mode
|
||||
_searchSynthModels: null, // per-pane synthesis models for search mode
|
||||
_parallel: true, // true = run all panes at once, false = one at a time
|
||||
_fetchModelsCache: null,
|
||||
_fetchModelsCacheTime: 0,
|
||||
_expectedAnswer: '', // when an eval prompt with `answer` is picked,
|
||||
// stream.js reads this and stamps ✓/✗ per pane
|
||||
};
|
||||
|
||||
/** Reset transient state to defaults — useful for clean restarts. */
|
||||
export function reset() {
|
||||
state._streaming = false;
|
||||
state._finishOrder = 0;
|
||||
state._paneElapsed = [];
|
||||
state._abortControllers.forEach(c => { if (c) c.abort(); });
|
||||
state._abortControllers = [];
|
||||
state._paneSessionIds = [];
|
||||
state._paneMetrics = [];
|
||||
state._compareElements = [];
|
||||
state._hasVisibleResults = false;
|
||||
state._lastPrompt = '';
|
||||
state._cachedModels = [];
|
||||
state._probed = new Set();
|
||||
state._cachedProviders = null;
|
||||
state._fetchModelsCache = null;
|
||||
state._fetchModelsCacheTime = 0;
|
||||
}
|
||||
|
||||
export default state;
|
||||
Reference in New Issue
Block a user