diff --git a/package.json b/package.json index b0f1705..bd07f17 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "amerc-site", - "version": "1.0.0-legion", + "version": "1.1.0-chat", "private": true, "type": "module", "scripts": { diff --git a/src/AgentPlatform.jsx b/src/AgentPlatform.jsx index 8c42b99..27ab2a3 100644 --- a/src/AgentPlatform.jsx +++ b/src/AgentPlatform.jsx @@ -1,6 +1,7 @@ import React, { useCallback, useEffect, useRef, useState } from 'react'; import { api } from './api.js'; import { copyToast } from './toast.js'; +import ChatPanel, { SessionLog } from './Chat.jsx'; const STATUS_COLOR = { online: '#36f0b0', pending: '#f2b85f', lost: '#ff9f5a', down: '#ff7a8c' }; const TAG_EMOJI = { backend: 'πŸ› οΈ', model: '🧠', frontend: '🎨', ui: 'πŸ–ŒοΈ', web: '🌐', data: 'πŸ“Š', devops: 'βš™οΈ', ml: 'πŸ€–', security: 'πŸ”', api: 'πŸ”Œ', bot: 'πŸ€–', chat: 'πŸ’¬', test: 'πŸ§ͺ', docs: 'πŸ“„', design: '✏️', ops: '🚦', research: 'πŸ”¬' }; @@ -174,12 +175,14 @@ function ClassModal({ id, auth, onClose }) { ); } -// ---- Use an instance: chatbox + web-pty ---------------------------------- +// ---- Use an instance: native chat + web-pty ------------------------------- export function UsePanel({ instance, onClose }) { const [mode, setMode] = useState('chatbox'); const [sess, setSess] = useState(null); const [accesskey, setAccesskey] = useState(instance.accesskey || ''); const [err, setErr] = useState(''); + const needKey = !instance.accesskey && instance.visibility !== 'public'; + const [keyOk, setKeyOk] = useState(!needKey); const start = useCallback(async () => { setErr(''); try { @@ -187,7 +190,6 @@ export function UsePanel({ instance, onClose }) { setSess(r); } catch (e) { setErr(e.message); } }, [instance.id, mode, accesskey]); - useEffect(() => { if (instance.accesskey) start(); }, []); // owner: auto-start return (
@@ -198,26 +200,23 @@ export function UsePanel({ instance, onClose }) {
- {!sess && ( + {needKey && !keyOk && (
- {!instance.accesskey && instance.visibility !== 'public' && ( - setAccesskey(e.target.value)} /> - )} - + setAccesskey(e.target.value)} /> + +
+ )} + {mode === 'chatbox' && keyOk && } + {mode === 'webpty' && keyOk && !sess && ( +
+ {err &&

{err}

}
)} - {sess && ( + {mode === 'webpty' && sess && ( <> -