mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-10-03 17:34:12 +02:00
Live mode: an AI assistant acts on the open project while the user watches
A new setting, Configurer QElectroTech > Général > "Autoriser un assistant IA à agir sur le projet ouvert", off by default. Off, nothing changes: no channel is opened. On, every start shows a warning first -- Continuer, Pas pour cette session, or Désactiver -- and nothing can connect until the user answers Continuer. It waits for any other start-up question to be answered, so the two never stack. Accepted, LiveServer opens a local socket only the user's account can use, with a random name and token written to live-session.json in the data folder for the qet MCP server, and removed when the channel closes. One JSON request per line: status (project, folio on screen, selection, last undo step, stored scripts), run_script and run_stored. Requests are queued out of the socket handler before they run (the lesson of PR #861). Each run is one undo step named "Assistant : <name>". The status bar shows the mode and the assistant's last action with a ✓ or ✗ and the time, and an Arrêter button that closes the channel for the session. Unticking the setting closes it at once. QetScripting::runSource() runs script text and, for a live run, returns what qet.log() wrote, the error with its line and the undo step instead of showing boxes; qet.showMessage() is logged rather than opening a box nobody asked for. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -64,6 +64,28 @@ namespace QetScripting {
|
||||
bool runOnProject(const QString &scriptPath, QETProject *project, DiagramView *view = nullptr,
|
||||
const QString &title = QString());
|
||||
|
||||
/**
|
||||
@brief What a live run (an assistant acting on the open project,
|
||||
see LiveServer) reports instead of showing: what the script
|
||||
logged, the error if it threw, and the undo step it left, empty
|
||||
if it changed nothing.
|
||||
*/
|
||||
struct LiveRun
|
||||
{
|
||||
QStringList log;
|
||||
QString error;
|
||||
QString undoText;
|
||||
};
|
||||
|
||||
/**
|
||||
@brief Run @p source as runOnProject() runs a file. @p fileName is
|
||||
what errors name; @p title names the undo step. With @p live, no
|
||||
box is shown: qet.log() and errors are collected there, and
|
||||
qet.showMessage() is logged rather than shown.
|
||||
*/
|
||||
bool runSource(const QString &source, const QString &fileName, const QString &title,
|
||||
QETProject *project, DiagramView *view, LiveRun *live);
|
||||
|
||||
}
|
||||
|
||||
#endif // QET_SCRIPTING_H
|
||||
|
||||
Reference in New Issue
Block a user