@profoundlogic/coderflow-server 0.7.9 → 0.8.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/dist/base-image/entrypoint.sh +75 -5
- package/dist/coder-server.js +1 -1
- package/dist/config.js +1 -1
- package/dist/lib/agent-keepalive.js +1 -1
- package/dist/lib/agent-models.js +1 -1
- package/dist/lib/api-keys.js +1 -1
- package/dist/lib/apiKeys.js +1 -1
- package/dist/lib/app-server-ports.js +1 -1
- package/dist/lib/auto-judge.js +1 -1
- package/dist/lib/automation-service.js +1 -1
- package/dist/lib/basic-auth.js +1 -1
- package/dist/lib/bindings.js +1 -1
- package/dist/lib/build-history.js +1 -1
- package/dist/lib/build-output-service.js +1 -1
- package/dist/lib/build-scheduler.js +1 -1
- package/dist/lib/build-service.js +1 -1
- package/dist/lib/ca-certificates.js +1 -1
- package/dist/lib/claude-oauth-refresh.js +1 -1
- package/dist/lib/cli/build.js +1 -1
- package/dist/lib/cli/cleanup-users.js +1 -1
- package/dist/lib/cli/config-command.js +1 -1
- package/dist/lib/cli/config.js +1 -1
- package/dist/lib/cli/create-user.js +1 -1
- package/dist/lib/cli/grant-admin.js +1 -1
- package/dist/lib/cli/init.js +1 -1
- package/dist/lib/cli/jira.js +1 -1
- package/dist/lib/cli/license.js +1 -1
- package/dist/lib/cli/list-roles.js +1 -1
- package/dist/lib/cli/list-users.js +1 -1
- package/dist/lib/cli/server-manager.js +1 -1
- package/dist/lib/cli/set-password.js +1 -1
- package/dist/lib/compression-filter.js +1 -1
- package/dist/lib/config-migration.js +1 -1
- package/dist/lib/container-credential-sync.js +1 -1
- package/dist/lib/container-tokens.js +1 -1
- package/dist/lib/data-dir.js +1 -1
- package/dist/lib/deployment-history.js +1 -1
- package/dist/lib/deployment-service.js +1 -1
- package/dist/lib/docker-utils.js +1 -1
- package/dist/lib/email.js +1 -1
- package/dist/lib/emailTemplates.js +1 -1
- package/dist/lib/entitlement.js +1 -1
- package/dist/lib/external-connections.js +1 -1
- package/dist/lib/fetch-utils.js +1 -1
- package/dist/lib/git-commit-details-route.js +1 -1
- package/dist/lib/git-history-diff-guardrails.js +1 -1
- package/dist/lib/git-provider-service.js +1 -1
- package/dist/lib/git-provider-setup/github-setup-handler.js +1 -1
- package/dist/lib/git-provider-setup/index.js +1 -1
- package/dist/lib/git-provider-setup/setup-factory.js +1 -1
- package/dist/lib/git-provider-setup/setup-interface.js +1 -1
- package/dist/lib/git-providers/azure-devops-provider.js +1 -1
- package/dist/lib/git-providers/github-app-provider.js +1 -1
- package/dist/lib/git-providers/index.js +1 -1
- package/dist/lib/git-providers/provider-factory.js +1 -1
- package/dist/lib/git-providers/provider-interface.js +1 -1
- package/dist/lib/github-urls.js +1 -1
- package/dist/lib/group-objective-linking.js +1 -1
- package/dist/lib/ibmi-sync.js +1 -1
- package/dist/lib/jira-client.js +1 -1
- package/dist/lib/judge-blinding.js +1 -1
- package/dist/lib/logger.js +1 -1
- package/dist/lib/memory-utils.js +1 -1
- package/dist/lib/migration-to-scoped-rbac.js +1 -1
- package/dist/lib/model-fetcher.js +1 -1
- package/dist/lib/notifications.js +1 -1
- package/dist/lib/objective-context.js +1 -1
- package/dist/lib/oidc-auth.js +1 -1
- package/dist/lib/oidc-device-flow.js +1 -1
- package/dist/lib/passwordTokens.js +1 -1
- package/dist/lib/permission-resolver.js +1 -1
- package/dist/lib/pin-cascade.js +1 -1
- package/dist/lib/provider-accounts.js +1 -1
- package/dist/lib/provider-oauth.js +1 -1
- package/dist/lib/provider-profile.js +1 -1
- package/dist/lib/provider-token-refresh.js +1 -1
- package/dist/lib/rbac-user-state.js +1 -1
- package/dist/lib/request-url.js +1 -1
- package/dist/lib/rewind.js +1 -1
- package/dist/lib/role-definitions.js +1 -1
- package/dist/lib/roles.js +1 -1
- package/dist/lib/secrets.js +1 -1
- package/dist/lib/setup-repo-git-auth.js +1 -1
- package/dist/lib/state-capture.js +1 -1
- package/dist/lib/static-files.js +1 -1
- package/dist/lib/task-aliases.js +1 -1
- package/dist/lib/task-container-init.js +1 -0
- package/dist/lib/task-context-usage.js +1 -0
- package/dist/lib/task-name-format.js +1 -1
- package/dist/lib/task-name-generator.js +1 -1
- package/dist/lib/task-source-metadata.js +1 -1
- package/dist/lib/teams.js +1 -1
- package/dist/lib/user-git-oauth.js +1 -1
- package/dist/lib/user-git-tokens.js +1 -1
- package/dist/lib/users.js +1 -1
- package/dist/middleware/requireAuth.js +1 -1
- package/dist/middleware/requireInit.js +1 -1
- package/dist/middleware/requirePermission.js +1 -1
- package/dist/package.json +1 -1
- package/dist/playwright.config.js +1 -1
- package/dist/playwright.task-terminal.config.js +1 -1
- package/dist/routes/apiKeys.js +1 -1
- package/dist/routes/auth-oidc.js +1 -1
- package/dist/routes/auth.js +1 -1
- package/dist/routes/automations.js +1 -1
- package/dist/routes/bindings.js +1 -1
- package/dist/routes/build.js +1 -1
- package/dist/routes/containers.js +1 -1
- package/dist/routes/deploy-task.js +1 -1
- package/dist/routes/environment-management.js +1 -1
- package/dist/routes/environments.js +1 -1
- package/dist/routes/external-skills.js +1 -1
- package/dist/routes/git-credentials.js +1 -1
- package/dist/routes/git-oauth.js +1 -1
- package/dist/routes/git-provider-setup.js +1 -1
- package/dist/routes/health.js +1 -1
- package/dist/routes/jira.js +1 -1
- package/dist/routes/logs.js +1 -1
- package/dist/routes/objective-management.js +1 -1
- package/dist/routes/password.js +1 -1
- package/dist/routes/prompt.js +1 -1
- package/dist/routes/provider-auth.js +1 -1
- package/dist/routes/qa.js +1 -1
- package/dist/routes/roles.js +1 -1
- package/dist/routes/settings.js +1 -1
- package/dist/routes/skill-management.js +1 -1
- package/dist/routes/skills.js +1 -1
- package/dist/routes/stats.js +1 -1
- package/dist/routes/tasks.js +1 -1
- package/dist/routes/teams.js +1 -1
- package/dist/routes/templates.js +1 -1
- package/dist/routes/test-task.js +1 -1
- package/dist/routes/test.js +1 -1
- package/dist/routes/users.js +1 -1
- package/dist/routes/visualizations.js +1 -1
- package/dist/scripts/create-user.js +1 -1
- package/dist/scripts/migrate-config-to-data-dir.js +1 -1
- package/dist/start.js +1 -1
- package/dist/web-ui/public/activity-detail-modal.js +1 -1
- package/dist/web-ui/public/activity-feed.js +1 -1
- package/dist/web-ui/public/activity-formatters.js +1 -1
- package/dist/web-ui/public/admin.js +1 -1
- package/dist/web-ui/public/agent-event-parser.js +1 -1
- package/dist/web-ui/public/app.js +1 -1
- package/dist/web-ui/public/approve-dialog.js +1 -1
- package/dist/web-ui/public/automation-links.js +1 -1
- package/dist/web-ui/public/automation-schedule.js +1 -1
- package/dist/web-ui/public/comments-widget.js +1 -1
- package/dist/web-ui/public/diff-utils.js +1 -1
- package/dist/web-ui/public/environments.js +1 -1
- package/dist/web-ui/public/feedback-widget.js +1 -1
- package/dist/web-ui/public/file-selection-tree.js +1 -1
- package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
- package/dist/web-ui/public/git-history.js +1 -1
- package/dist/web-ui/public/git-status.js +1 -1
- package/dist/web-ui/public/ibmi-file-filter.js +1 -1
- package/dist/web-ui/public/index.js +1 -1
- package/dist/web-ui/public/login.js +1 -1
- package/dist/web-ui/public/markdown-editor.js +1 -1
- package/dist/web-ui/public/markdown-file-editor.js +1 -1
- package/dist/web-ui/public/modal-maximize.js +1 -1
- package/dist/web-ui/public/notifications.js +1 -1
- package/dist/web-ui/public/permissions.js +1 -1
- package/dist/web-ui/public/pr-dialog.js +1 -1
- package/dist/web-ui/public/roles.js +1 -1
- package/dist/web-ui/public/settings.js +1 -1
- package/dist/web-ui/public/setup-password.js +1 -1
- package/dist/web-ui/public/skills.js +1 -1
- package/dist/web-ui/public/sse-client.js +1 -1
- package/dist/web-ui/public/sse-shared-worker.js +1 -1
- package/dist/web-ui/public/styles.css +36 -0
- package/dist/web-ui/public/task-judging-helpers.js +1 -1
- package/dist/web-ui/public/task.html +11 -0
- package/dist/web-ui/public/task.js +1 -1
- package/dist/web-ui/public/teams.js +1 -1
- package/dist/web-ui/public/terminal.js +1 -1
- package/dist/web-ui/public/theme.js +1 -1
- package/dist/web-ui/public/users.js +1 -1
- package/dist/web-ui/public/variant-grouping.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
function isSharedWorkerSupported(){return typeof SharedWorker!=='undefined';}function eventTypeToHandler(
|
|
1
|
+
function isSharedWorkerSupported(){return typeof SharedWorker!=='undefined';}function eventTypeToHandler(_0x17cb7a){if(_0x17cb7a==='connected')return'onConnected';if(_0x17cb7a==='error')return'onError';return'on'+_0x17cb7a['split']('-')['map'](_0x2c9a89=>_0x2c9a89['charAt'](0x0)['toUpperCase']()+_0x2c9a89['slice'](0x1))['join']('');}const TASK_STREAM_EVENTS=['activity','logs','metadata','summary','changed-files','app-server-status','complete'];export class TaskUpdatesClient{constructor(){this['listeners']=new Map(),this['worker']=null,this['port']=null,this['eventSource']=null,this['userId']=null,this['reconnectTimeout']=null,this['reconnectAttempts']=0x0,this['useSharedWorker']=isSharedWorkerSupported(),this['connected']=![],this['_taskSubscriptions']=new Map(),this['_taskSubIdCounter']=0x0,this['_handleWorkerMessage']=this['_handleWorkerMessage']['bind'](this),this['_handleDirectSSE']=this['_handleDirectSSE']['bind'](this);}['on'](_0x5d877,_0x37914f){return!this['listeners']['has'](_0x5d877)&&this['listeners']['set'](_0x5d877,new Set()),this['listeners']['get'](_0x5d877)['add'](_0x37914f),this;}['off'](_0x2e4454,_0x3d3f4b){return this['listeners']['has'](_0x2e4454)&&this['listeners']['get'](_0x2e4454)['delete'](_0x3d3f4b),this;}['_emit'](_0x5768d5,_0x335e86){this['listeners']['has'](_0x5768d5)&&this['listeners']['get'](_0x5768d5)['forEach'](_0x2155af=>{try{_0x2155af(_0x335e86);}catch(_0x6c8c89){console['error']('[SSE\x20Client]\x20Error\x20in\x20'+_0x5768d5+'\x20listener:',_0x6c8c89);}});}['connect'](_0x5f35fe='me'){this['userId']=_0x5f35fe,this['useSharedWorker']?this['_connectViaWorker'](_0x5f35fe):this['_connectDirect'](_0x5f35fe);}['_connectViaWorker'](_0x375a69){try{this['_ensureWorker'](),this['port']['postMessage']({'action':'connect','userId':_0x375a69});}catch(_0x359031){console['error']('[SSE\x20Client]\x20SharedWorker\x20failed,\x20falling\x20back\x20to\x20direct\x20SSE:',_0x359031),this['useSharedWorker']=![],this['_connectDirect'](_0x375a69);}}['_ensureWorker'](){!this['worker']&&(this['worker']=new SharedWorker('/sse-shared-worker.js'),this['port']=this['worker']['port'],this['port']['onmessage']=this['_handleWorkerMessage'],this['port']['onmessageerror']=_0x38c692=>{console['error']('[SSE\x20Client]\x20Worker\x20message\x20error:',_0x38c692),this['_emit']('error',{'error':'Worker\x20message\x20error'});},this['port']['start']());}['_handleWorkerMessage'](_0x4ab126){const _0x1ae69f=_0x4ab126['data'];if(_0x1ae69f['type']&&_0x1ae69f['type']['startsWith']('task:')){this['_handleTaskStreamMessage'](_0x1ae69f);return;}switch(_0x1ae69f['type']){case'connected':this['connected']=!![],this['_emit']('connected',{});break;case'snapshot':case'activity':case'status':case'new-task':case'queue-position':try{const _0x45d9ab=JSON['parse'](_0x1ae69f['data']);this['_emit'](_0x1ae69f['type'],_0x45d9ab);}catch(_0x4c94ad){console['error']('[SSE\x20Client]\x20Failed\x20to\x20parse\x20'+_0x1ae69f['type']+'\x20data:',_0x4c94ad);}break;case'error':this['connected']=![],this['_emit']('error',_0x1ae69f);break;default:console['warn']('[SSE\x20Client]\x20Unknown\x20message\x20type:',_0x1ae69f['type']);}}['_handleTaskStreamMessage'](_0x5e991d){const {taskId:_0x84a4ba,type:_0x477e14,data:_0x31e679}=_0x5e991d,_0x462c81=this['_taskSubscriptions']['get'](_0x84a4ba);if(!_0x462c81||_0x462c81['size']===0x0)return;const _0x1eacb8=_0x477e14['replace']('task:',''),_0x49a6cc=eventTypeToHandler(_0x1eacb8);_0x462c81['forEach'](_0x4c626f=>{if(_0x4c626f['handlers'][_0x49a6cc])try{const _0x3698eb=typeof _0x31e679==='string'?JSON['parse'](_0x31e679):_0x31e679;_0x4c626f['handlers'][_0x49a6cc](_0x3698eb);}catch(_0x109752){console['error']('[SSE\x20Client]\x20Error\x20in\x20task\x20'+_0x1eacb8+'\x20handler:',_0x109752);}});}['_connectDirect'](_0x44982c){this['eventSource']&&(this['eventSource']['close'](),this['eventSource']=null);const _0x25f32f=_0x44982c&&_0x44982c!=='me'?'?userId='+_0x44982c:'';try{this['eventSource']=new EventSource('/tasks/updates'+_0x25f32f),this['eventSource']['addEventListener']('open',()=>{this['connected']=!![],this['reconnectAttempts']=0x0,this['_emit']('connected',{});}),this['eventSource']['addEventListener']('snapshot',_0x57c99e=>{this['_handleDirectSSE']('snapshot',_0x57c99e),this['reconnectAttempts']=0x0;}),this['eventSource']['addEventListener']('activity',_0x11602c=>{this['_handleDirectSSE']('activity',_0x11602c);}),this['eventSource']['addEventListener']('status',_0x30a37a=>{this['_handleDirectSSE']('status',_0x30a37a);}),this['eventSource']['addEventListener']('new-task',_0x308f57=>{this['_handleDirectSSE']('new-task',_0x308f57);}),this['eventSource']['addEventListener']('queue-position',_0x4e26d3=>{this['_handleDirectSSE']('queue-position',_0x4e26d3);}),this['eventSource']['addEventListener']('error',_0x208e0b=>{console['error']('[SSE\x20Client]\x20Direct\x20SSE\x20error:',_0x208e0b),this['connected']=![],this['_emit']('error',{'error':'Connection\x20error'}),this['eventSource']&&(this['eventSource']['close'](),this['eventSource']=null),this['_scheduleReconnect']();});}catch(_0x17118f){console['error']('[SSE\x20Client]\x20Failed\x20to\x20create\x20EventSource:',_0x17118f),this['_emit']('error',{'error':_0x17118f['message']}),this['_scheduleReconnect']();}}['_handleDirectSSE'](_0x1499ed,_0x4e01fa){try{const _0x3c0750=JSON['parse'](_0x4e01fa['data']);this['_emit'](_0x1499ed,_0x3c0750);}catch(_0x267011){console['error']('[SSE\x20Client]\x20Failed\x20to\x20parse\x20'+_0x1499ed+'\x20data:',_0x267011);}}['_scheduleReconnect'](){this['reconnectTimeout']&&clearTimeout(this['reconnectTimeout']);const _0x4c7dcb=Math['min'](0x3e8*Math['pow'](0x2,this['reconnectAttempts']),0x7530);this['reconnectAttempts']++,console['log']('[SSE\x20Client]\x20Scheduling\x20reconnect\x20in\x20'+_0x4c7dcb+'ms'),this['reconnectTimeout']=setTimeout(()=>{this['_connectDirect'](this['userId']);},_0x4c7dcb);}['changeFilter'](_0xd9d821){if(_0xd9d821===this['userId'])return;this['userId']=_0xd9d821;if(this['useSharedWorker']&&this['port'])this['port']['postMessage']({'action':'changeFilter','userId':_0xd9d821});else this['eventSource']&&this['_connectDirect'](_0xd9d821);}['subscribeTask'](_0x58b2c4,_0x30f89c){return this['useSharedWorker']?this['_subscribeTaskViaWorker'](_0x58b2c4,_0x30f89c):this['_subscribeTaskDirect'](_0x58b2c4,_0x30f89c);}['unsubscribeTask'](_0x11d7be){if(!_0x11d7be)return;_0x11d7be['type']==='worker'?this['_unsubscribeTaskWorker'](_0x11d7be):this['_unsubscribeTaskDirect'](_0x11d7be);}['_subscribeTaskViaWorker'](_0xcf055d,_0x338cd5){try{this['_ensureWorker']();}catch(_0x2b40b5){return console['error']('[SSE\x20Client]\x20SharedWorker\x20failed\x20for\x20task\x20sub,\x20falling\x20back:',_0x2b40b5),this['useSharedWorker']=![],this['_subscribeTaskDirect'](_0xcf055d,_0x338cd5);}const _0x1256ef=++this['_taskSubIdCounter'],_0x2d934c={'type':'worker','taskId':_0xcf055d,'handlers':_0x338cd5,'id':_0x1256ef};return!this['_taskSubscriptions']['has'](_0xcf055d)&&(this['_taskSubscriptions']['set'](_0xcf055d,new Set()),this['port']['postMessage']({'action':'subscribeTask','taskId':_0xcf055d})),this['_taskSubscriptions']['get'](_0xcf055d)['add'](_0x2d934c),_0x2d934c;}['_unsubscribeTaskWorker'](_0x5068f1){const {taskId:_0x43efc4}=_0x5068f1,_0x3007ae=this['_taskSubscriptions']['get'](_0x43efc4);if(_0x3007ae){_0x3007ae['delete'](_0x5068f1);if(_0x3007ae['size']===0x0){this['_taskSubscriptions']['delete'](_0x43efc4);try{this['port']&&this['port']['postMessage']({'action':'unsubscribeTask','taskId':_0x43efc4});}catch(_0x4e73aa){}}}}['_subscribeTaskDirect'](_0x25e3ed,_0x363e1a){const _0x409b3b=++this['_taskSubIdCounter'],_0x28982c=new EventSource('/tasks/'+_0x25e3ed+'/stream'),_0x401582={'type':'direct','taskId':_0x25e3ed,'handlers':_0x363e1a,'id':_0x409b3b,'eventSource':_0x28982c};!this['_taskSubscriptions']['has'](_0x25e3ed)&&this['_taskSubscriptions']['set'](_0x25e3ed,new Set());this['_taskSubscriptions']['get'](_0x25e3ed)['add'](_0x401582);for(const _0x1fa76a of TASK_STREAM_EVENTS){const _0x54792a=eventTypeToHandler(_0x1fa76a);_0x28982c['addEventListener'](_0x1fa76a,_0x478bb6=>{if(_0x363e1a[_0x54792a])try{const _0x263902=JSON['parse'](_0x478bb6['data']);_0x363e1a[_0x54792a](_0x263902);}catch(_0x409e61){console['error']('[SSE\x20Client]\x20Error\x20parsing\x20task\x20'+_0x1fa76a+':',_0x409e61);}});}return _0x28982c['addEventListener']('open',()=>{if(_0x363e1a['onConnected'])_0x363e1a['onConnected']();}),_0x28982c['addEventListener']('error',()=>{if(_0x363e1a['onError'])_0x363e1a['onError']({'error':'Connection\x20error'});}),_0x401582;}['_unsubscribeTaskDirect'](_0x3f6488){_0x3f6488['eventSource']&&(_0x3f6488['eventSource']['close'](),_0x3f6488['eventSource']=null);const _0xd7b37=this['_taskSubscriptions']['get'](_0x3f6488['taskId']);_0xd7b37&&(_0xd7b37['delete'](_0x3f6488),_0xd7b37['size']===0x0&&this['_taskSubscriptions']['delete'](_0x3f6488['taskId']));}['disconnect'](){this['reconnectTimeout']&&(clearTimeout(this['reconnectTimeout']),this['reconnectTimeout']=null);this['_taskSubscriptions']['forEach']((_0x13587e,_0x1b8ee3)=>{_0x13587e['forEach'](_0x1144ae=>{_0x1144ae['type']==='direct'&&_0x1144ae['eventSource']&&_0x1144ae['eventSource']['close']();});}),this['_taskSubscriptions']['clear']();if(this['useSharedWorker']&&this['port'])try{this['port']['postMessage']({'action':'disconnect'});}catch(_0x541afd){}this['eventSource']&&(this['eventSource']['close'](),this['eventSource']=null),this['connected']=![];}['isConnected'](){return this['connected'];}['isUsingSharedWorker'](){return this['useSharedWorker'];}}let globalClient=null;export function getTaskUpdatesClient(){return!globalClient&&(globalClient=new TaskUpdatesClient()),globalClient;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const ports=new Set();let eventSource=null,currentUserId=null,reconnectTimeout=null,reconnectAttempts=0x0;const MAX_RECONNECT_DELAY=0x7530,taskStreams=new Map(),TASK_STREAM_EVENTS=['activity','logs','metadata','summary','changed-files','app-server-status','complete'];function connect(
|
|
1
|
+
const ports=new Set();let eventSource=null,currentUserId=null,reconnectTimeout=null,reconnectAttempts=0x0;const MAX_RECONNECT_DELAY=0x7530,taskStreams=new Map(),TASK_STREAM_EVENTS=['activity','logs','metadata','summary','changed-files','app-server-status','complete'];function connect(_0x278928){eventSource&¤tUserId!==_0x278928&&(eventSource['close'](),eventSource=null);if(eventSource&&eventSource['readyState']!==EventSource['CLOSED'])return;currentUserId=_0x278928;const _0x3b20d4=_0x278928&&_0x278928!=='me'?'?userId='+_0x278928:'';try{eventSource=new EventSource('/tasks/updates'+_0x3b20d4),eventSource['addEventListener']('snapshot',_0x16ad5c=>{broadcast({'type':'snapshot','data':_0x16ad5c['data']}),reconnectAttempts=0x0;}),eventSource['addEventListener']('activity',_0x3e3f44=>{broadcast({'type':'activity','data':_0x3e3f44['data']});}),eventSource['addEventListener']('status',_0xf937fe=>{broadcast({'type':'status','data':_0xf937fe['data']});}),eventSource['addEventListener']('new-task',_0x388b7a=>{broadcast({'type':'new-task','data':_0x388b7a['data']});}),eventSource['addEventListener']('queue-position',_0x2b5172=>{broadcast({'type':'queue-position','data':_0x2b5172['data']});}),eventSource['addEventListener']('open',()=>{broadcast({'type':'connected'}),reconnectAttempts=0x0;}),eventSource['addEventListener']('error',_0x29047e=>{console['error']('[SSE\x20Worker]\x20Connection\x20error:',_0x29047e),broadcast({'type':'error','error':'Connection\x20error'}),eventSource&&(eventSource['close'](),eventSource=null),scheduleReconnect();});}catch(_0x2f0075){console['error']('[SSE\x20Worker]\x20Failed\x20to\x20create\x20EventSource:',_0x2f0075),broadcast({'type':'error','error':_0x2f0075['message']}),scheduleReconnect();}}function scheduleReconnect(){reconnectTimeout&&clearTimeout(reconnectTimeout);if(ports['size']===0x0)return;const _0x4fe889=Math['min'](0x3e8*Math['pow'](0x2,reconnectAttempts),MAX_RECONNECT_DELAY);reconnectAttempts++,console['log']('[SSE\x20Worker]\x20Scheduling\x20reconnect\x20in\x20'+_0x4fe889+'ms\x20(attempt\x20'+reconnectAttempts+')'),reconnectTimeout=setTimeout(()=>{ports['size']>0x0&&connect(currentUserId);},_0x4fe889);}function broadcast(_0x5494b1){const _0x5998d3=[];ports['forEach'](_0x2362b8=>{try{_0x2362b8['postMessage'](_0x5494b1);}catch(_0x5bff6b){console['warn']('[SSE\x20Worker]\x20Failed\x20to\x20send\x20to\x20port,\x20removing:',_0x5bff6b),_0x5998d3['push'](_0x2362b8);}}),_0x5998d3['length']>0x0&&cleanUpDeadPorts(_0x5998d3),ports['size']===0x0&&eventSource&&(console['log']('[SSE\x20Worker]\x20No\x20more\x20connected\x20ports,\x20closing\x20SSE'),eventSource['close'](),eventSource=null,reconnectTimeout&&(clearTimeout(reconnectTimeout),reconnectTimeout=null));}function subscribeTask(_0x109569,_0x15f905){let _0x5befb1=taskStreams['get'](_0x15f905);!_0x5befb1&&(_0x5befb1={'eventSource':null,'reconnectTimeout':null,'reconnectAttempts':0x0,'subscribedPorts':new Set()},taskStreams['set'](_0x15f905,_0x5befb1));_0x5befb1['subscribedPorts']['add'](_0x109569);if(!_0x5befb1['eventSource']||_0x5befb1['eventSource']['readyState']===EventSource['CLOSED'])connectTaskStream(_0x15f905);else{if(_0x5befb1['eventSource']['readyState']===EventSource['OPEN'])try{_0x109569['postMessage']({'type':'task:connected','taskId':_0x15f905});}catch(_0xf6b30a){}}}function unsubscribeTask(_0x58bca4,_0x2b1c9f){const _0x2158fc=taskStreams['get'](_0x2b1c9f);if(!_0x2158fc)return;_0x2158fc['subscribedPorts']['delete'](_0x58bca4),_0x2158fc['subscribedPorts']['size']===0x0&&deferredCloseTaskStream(_0x2b1c9f);}function connectTaskStream(_0x338acc){const _0x52123c=taskStreams['get'](_0x338acc);if(!_0x52123c)return;_0x52123c['eventSource']&&(_0x52123c['eventSource']['close'](),_0x52123c['eventSource']=null);try{_0x52123c['eventSource']=new EventSource('/tasks/'+_0x338acc+'/stream');for(const _0x3dab5b of TASK_STREAM_EVENTS){_0x52123c['eventSource']['addEventListener'](_0x3dab5b,_0x1828fc=>{broadcastToTask(_0x338acc,'task:'+_0x3dab5b,_0x1828fc['data']),_0x52123c['reconnectAttempts']=0x0;});}_0x52123c['eventSource']['addEventListener']('open',()=>{broadcastToTask(_0x338acc,'task:connected','{}'),_0x52123c['reconnectAttempts']=0x0;}),_0x52123c['eventSource']['addEventListener']('error',()=>{broadcastToTask(_0x338acc,'task:error',JSON['stringify']({'error':'Connection\x20error'})),_0x52123c['eventSource']&&(_0x52123c['eventSource']['close'](),_0x52123c['eventSource']=null),scheduleTaskReconnect(_0x338acc);});}catch(_0x5046c3){console['error']('[SSE\x20Worker]\x20Failed\x20to\x20create\x20task\x20EventSource\x20for\x20'+_0x338acc+':',_0x5046c3),broadcastToTask(_0x338acc,'task:error',JSON['stringify']({'error':_0x5046c3['message']})),scheduleTaskReconnect(_0x338acc);}}function broadcastToTask(_0x2b8c5f,_0x1f88e8,_0x44f210){const _0x3e4593=taskStreams['get'](_0x2b8c5f);if(!_0x3e4593)return;const _0x20fabc=[];_0x3e4593['subscribedPorts']['forEach'](_0x41aedf=>{try{_0x41aedf['postMessage']({'type':_0x1f88e8,'taskId':_0x2b8c5f,'data':_0x44f210});}catch(_0x53f2b2){_0x20fabc['push'](_0x41aedf);}}),_0x20fabc['length']>0x0&&(_0x20fabc['forEach'](_0x218918=>_0x3e4593['subscribedPorts']['delete'](_0x218918)),cleanUpDeadPorts(_0x20fabc),_0x3e4593['subscribedPorts']['size']===0x0&&closeTaskStream(_0x2b8c5f));}function closeTaskStream(_0x316c8a){const _0x23b17a=taskStreams['get'](_0x316c8a);if(!_0x23b17a)return;_0x23b17a['eventSource']&&_0x23b17a['eventSource']['close'](),_0x23b17a['reconnectTimeout']&&clearTimeout(_0x23b17a['reconnectTimeout']),taskStreams['delete'](_0x316c8a);}function deferredCloseTaskStream(_0x780320){setTimeout(()=>{const _0x1fac84=taskStreams['get'](_0x780320);_0x1fac84&&_0x1fac84['subscribedPorts']['size']===0x0&&closeTaskStream(_0x780320);},0x0);}function scheduleTaskReconnect(_0x518e2e){const _0x38b942=taskStreams['get'](_0x518e2e);if(!_0x38b942||_0x38b942['subscribedPorts']['size']===0x0)return;_0x38b942['reconnectTimeout']&&clearTimeout(_0x38b942['reconnectTimeout']);const _0x21fec4=Math['min'](0x3e8*Math['pow'](0x2,_0x38b942['reconnectAttempts']),MAX_RECONNECT_DELAY);_0x38b942['reconnectAttempts']++,console['log']('[SSE\x20Worker]\x20Scheduling\x20task\x20stream\x20reconnect\x20for\x20'+_0x518e2e+'\x20in\x20'+_0x21fec4+'ms'),_0x38b942['reconnectTimeout']=setTimeout(()=>{_0x38b942['subscribedPorts']['size']>0x0&&connectTaskStream(_0x518e2e);},_0x21fec4);}function cleanUpDeadPorts(_0x3036b4){for(const _0x30ba00 of _0x3036b4){ports['delete'](_0x30ba00),taskStreams['forEach']((_0x70139f,_0x4441df)=>{_0x70139f['subscribedPorts']['delete'](_0x30ba00),_0x70139f['subscribedPorts']['size']===0x0&&closeTaskStream(_0x4441df);});}}function removePortFromAllTasks(_0xadd407){taskStreams['forEach']((_0x3fbfbf,_0x36fbaa)=>{_0x3fbfbf['subscribedPorts']['has'](_0xadd407)&&(_0x3fbfbf['subscribedPorts']['delete'](_0xadd407),_0x3fbfbf['subscribedPorts']['size']===0x0&&closeTaskStream(_0x36fbaa));});}self['onconnect']=function(_0xb0a897){const _0x3fbeda=_0xb0a897['ports'][0x0];ports['add'](_0x3fbeda),console['log']('[SSE\x20Worker]\x20New\x20port\x20connected.\x20Total\x20ports:\x20'+ports['size']),_0x3fbeda['onmessage']=function(_0x37dc12){const {action:_0x220d74,userId:_0x3d753b,taskId:_0x535ae5}=_0x37dc12['data'];switch(_0x220d74){case'connect':connect(_0x3d753b);eventSource&&eventSource['readyState']===EventSource['OPEN']&&_0x3fbeda['postMessage']({'type':'connected'});break;case'disconnect':ports['delete'](_0x3fbeda),removePortFromAllTasks(_0x3fbeda),console['log']('[SSE\x20Worker]\x20Port\x20disconnected.\x20Total\x20ports:\x20'+ports['size']);ports['size']===0x0&&eventSource&&(eventSource['close'](),eventSource=null,reconnectTimeout&&(clearTimeout(reconnectTimeout),reconnectTimeout=null));break;case'changeFilter':_0x3d753b!==currentUserId&&connect(_0x3d753b);break;case'subscribeTask':subscribeTask(_0x3fbeda,_0x535ae5);break;case'unsubscribeTask':unsubscribeTask(_0x3fbeda,_0x535ae5);break;default:console['warn']('[SSE\x20Worker]\x20Unknown\x20action:',_0x220d74);}},_0x3fbeda['onmessageerror']=function(_0x263c9f){console['error']('[SSE\x20Worker]\x20Port\x20message\x20error:',_0x263c9f),ports['delete'](_0x3fbeda),removePortFromAllTasks(_0x3fbeda);},_0x3fbeda['start']();};
|
|
@@ -6880,6 +6880,42 @@ select option[value=""] {
|
|
|
6880
6880
|
font-size: 15px;
|
|
6881
6881
|
}
|
|
6882
6882
|
|
|
6883
|
+
.context-usage-meta {
|
|
6884
|
+
display: flex;
|
|
6885
|
+
align-items: center;
|
|
6886
|
+
gap: 10px;
|
|
6887
|
+
min-height: 20px;
|
|
6888
|
+
}
|
|
6889
|
+
|
|
6890
|
+
.context-usage-bar {
|
|
6891
|
+
width: 128px;
|
|
6892
|
+
height: 8px;
|
|
6893
|
+
flex: 0 0 auto;
|
|
6894
|
+
overflow: hidden;
|
|
6895
|
+
border-radius: 999px;
|
|
6896
|
+
background: rgba(148, 163, 184, 0.24);
|
|
6897
|
+
}
|
|
6898
|
+
|
|
6899
|
+
.context-usage-fill {
|
|
6900
|
+
width: 0;
|
|
6901
|
+
height: 100%;
|
|
6902
|
+
border-radius: inherit;
|
|
6903
|
+
background: var(--color-accent);
|
|
6904
|
+
transition: width 0.2s ease, background-color 0.2s ease;
|
|
6905
|
+
}
|
|
6906
|
+
|
|
6907
|
+
.context-usage-fill.context-usage-ok {
|
|
6908
|
+
background: var(--color-success);
|
|
6909
|
+
}
|
|
6910
|
+
|
|
6911
|
+
.context-usage-fill.context-usage-warning {
|
|
6912
|
+
background: var(--color-warning);
|
|
6913
|
+
}
|
|
6914
|
+
|
|
6915
|
+
.context-usage-fill.context-usage-danger {
|
|
6916
|
+
background: var(--color-danger);
|
|
6917
|
+
}
|
|
6918
|
+
|
|
6883
6919
|
.log-window {
|
|
6884
6920
|
border: 1px solid var(--color-border);
|
|
6885
6921
|
border-radius: var(--radius-small);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export function toDisplayAgentName(
|
|
1
|
+
export function toDisplayAgentName(_0x3dcfee,{fallback:fallback='Unknown'}={}){const _0x3d12e8=String(_0x3dcfee||'')['trim']()['toLowerCase']();if(!_0x3d12e8)return fallback;return _0x3d12e8['charAt'](0x0)['toUpperCase']()+_0x3d12e8['slice'](0x1);}export function escapeRegExp(_0x2cb0e0){return String(_0x2cb0e0)['replace'](/[.*+?^${}()|[\]\\]/g,'\x5c$&');}export function compareJudgmentsForAliasOrder(_0x3eafc3,_0x438fe2){const _0x45f27e=String(_0x3eafc3?.['createdAt']||''),_0x14f74a=String(_0x438fe2?.['createdAt']||'');if(_0x45f27e!==_0x14f74a)return _0x45f27e['localeCompare'](_0x14f74a);return String(_0x3eafc3?.['taskId']||'')['localeCompare'](String(_0x438fe2?.['taskId']||''));}export function parseJudgeAliasNumber(_0x241a0c,_0x461336){const _0x4e752d=typeof _0x241a0c==='string'?_0x241a0c['trim']():'',_0x1645ab=toDisplayAgentName(_0x461336,{'fallback':''});if(!_0x4e752d||!_0x1645ab)return null;const _0xe870ad=_0x4e752d['toLowerCase'](),_0x32b0e2=_0x1645ab['toLowerCase']();if(_0xe870ad===_0x32b0e2||_0xe870ad===_0x32b0e2+'\x20judge')return 0x1;const _0x249a30=[new RegExp('^'+escapeRegExp(_0x1645ab)+'\x5cs+(\x5cd+)$','i'),new RegExp('^'+escapeRegExp(_0x1645ab)+'\x5cs+Judge\x5cs+(\x5cd+)$','i')];for(const _0x2c97dd of _0x249a30){const _0x5af505=_0x4e752d['match'](_0x2c97dd);if(_0x5af505){const _0x1a3248=Number(_0x5af505[0x1]);if(Number['isInteger'](_0x1a3248)&&_0x1a3248>0x0)return _0x1a3248;}}return null;}export function formatJudgeDisplayName({alias:_0x318372,agent:_0x1a6f1c,number:number=null,hasDuplicates:hasDuplicates=![]}={}){const _0x364abf=toDisplayAgentName(_0x1a6f1c,{'fallback':'Judge'}),_0x392db2=typeof _0x318372==='string'?_0x318372['trim']():'';if(Number['isInteger'](number)&&number>0x0)return _0x364abf+'\x20Judge\x20'+number;if(_0x392db2)return/\bjudge\b/i['test'](_0x392db2)?_0x392db2:_0x392db2+'\x20Judge';if(hasDuplicates)return _0x364abf+'\x20Judge';return _0x364abf==='Judge'?_0x364abf:_0x364abf+'\x20Judge';}export function buildJudgmentDisplayNameMap(_0x5b0c98=[]){const _0x5dec77=Array['isArray'](_0x5b0c98)?_0x5b0c98['filter'](Boolean):[],_0x577b7a=new Map();_0x5dec77['forEach'](_0x382145=>{const _0xbc0f5f=_0x382145?.['judgeAgent']||_0x382145?.['envVars']?.['CODER_AGENT']||'unknown',_0x2ebd18=String(_0xbc0f5f||'')['trim']()['toLowerCase']()||'unknown';!_0x577b7a['has'](_0x2ebd18)&&_0x577b7a['set'](_0x2ebd18,[]),_0x577b7a['get'](_0x2ebd18)['push'](_0x382145);});const _0x3cb1cf=new Map();return _0x577b7a['forEach'](_0x5d99c1=>{const _0x3b3d3d=[..._0x5d99c1]['sort'](compareJudgmentsForAliasOrder),_0x49007e=_0x3b3d3d['length']>0x1,_0x4561e2=new Set(),_0xc131d9=new Map();_0x49007e&&_0x3b3d3d['forEach'](_0x2dba80=>{const _0x2646e9=parseJudgeAliasNumber(_0x2dba80?.['judgeAlias'],_0x2dba80?.['judgeAgent']);if(!Number['isInteger'](_0x2646e9)||_0x2646e9<=0x0||_0x4561e2['has'](_0x2646e9))return;_0xc131d9['set'](_0x2dba80['taskId'],_0x2646e9),_0x4561e2['add'](_0x2646e9);});let _0x25b207=0x1;const _0xaacdc=()=>{while(_0x4561e2['has'](_0x25b207)){_0x25b207+=0x1;}return _0x4561e2['add'](_0x25b207),_0x25b207;};_0x3b3d3d['forEach'](_0x4df8f0=>{let _0x908add=_0xc131d9['get'](_0x4df8f0['taskId'])||null;_0x49007e&&_0x908add===null&&!String(_0x4df8f0?.['judgeAlias']||'')['trim']()&&(_0x908add=_0xaacdc()),_0x3cb1cf['set'](_0x4df8f0['taskId'],formatJudgeDisplayName({'alias':_0x4df8f0?.['judgeAlias']||null,'agent':_0x4df8f0?.['judgeAgent']||_0x4df8f0?.['envVars']?.['CODER_AGENT']||'unknown','number':_0x908add,'hasDuplicates':_0x49007e}));});}),_0x3cb1cf;}export function buildTaskNavigationHref(_0x3635bc,{currentUrl:_0x39900d,groupedTaskIds:groupedTaskIds=[],groupId:groupId=null}={}){const _0x15175f=new URL(_0x39900d),_0x15b782=String(_0x3635bc||'')['trim'](),_0x395f58=String(groupId||'')['trim'](),_0x304f93=Array['isArray'](groupedTaskIds)?groupedTaskIds['map'](_0x3031d8=>String(_0x3031d8||'')['trim']())['filter'](Boolean):[],_0xdebfd3=Boolean(_0x395f58)||_0x304f93['length']>0x1;if(!_0xdebfd3)return _0x15b782&&_0x15175f['searchParams']['set']('id',_0x15b782),_0x15175f['searchParams']['delete']('groupId'),_0x15175f['toString']();const _0x5db02c=_0x304f93['includes'](_0x15b782)?_0x304f93:[..._0x304f93,_0x15b782]['filter'](Boolean);if(_0x5db02c['length']>0x0)_0x15175f['searchParams']['set']('id',_0x5db02c['join'](','));else _0x15b782&&_0x15175f['searchParams']['set']('id',_0x15b782);return _0x395f58?_0x15175f['searchParams']['set']('groupId',_0x395f58):_0x15175f['searchParams']['delete']('groupId'),_0x15175f['toString']();}
|
|
@@ -695,6 +695,17 @@
|
|
|
695
695
|
<dt>Duration</dt>
|
|
696
696
|
<dd id="meta-duration">—</dd>
|
|
697
697
|
</div>
|
|
698
|
+
<div id="meta-context-usage-wrapper" hidden>
|
|
699
|
+
<dt>Context Usage</dt>
|
|
700
|
+
<dd>
|
|
701
|
+
<div class="context-usage-meta">
|
|
702
|
+
<div class="context-usage-bar" aria-hidden="true">
|
|
703
|
+
<div class="context-usage-fill" id="context-usage-fill"></div>
|
|
704
|
+
</div>
|
|
705
|
+
<span id="context-usage-text">—</span>
|
|
706
|
+
</div>
|
|
707
|
+
</dd>
|
|
708
|
+
</div>
|
|
698
709
|
<div>
|
|
699
710
|
<dt>Exit code</dt>
|
|
700
711
|
<dd id="meta-exit">—</dd>
|