* feat: add workspace search and runnable details tools to navigator mode Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: correct uFuzzy search result indexing in workspace search uFuzzy.search() returns [idxs, info, order] where order contains indices into idxs, not into the original haystack. The code was using order values directly as array indices, returning wrong results. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor: mutualize search_workspace and get_runnable_details tools - Move search_workspace tool def + implementation into shared.ts as createSearchWorkspaceTool() factory, used by navigator and flow modes - Move get_runnable_details tool into shared.ts as createGetRunnableDetailsTool() factory, used by navigator, flow, and script modes - Replace flow mode's scripts-only search_scripts with search_workspace that searches both scripts and flows - Add search_workspace and get_runnable_details to script mode - Remove duplicated WorkspaceScriptsSearch class from flow/core.ts Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: add get_runnable_details to flow mode system prompt Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: add hard limit on runnable content passed to AI context Truncate script content and flow value at 20k chars in get_runnable_details to avoid flooding the context window. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: make search_workspace type param required for strict schema OpenAI strict mode requires all properties in required array. Make type a required enum ('all', 'scripts', 'flows') instead of optional. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * cleaning * nit * cleaning * refactor: use shared createSearchWorkspaceTool in app mode Replace app mode's local list_workspace_runnables tool with the shared createSearchWorkspaceTool() factory, consistent with navigator, flow, and script modes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * search by keyword * cleaning * fix: document search_workspace and get_runnable_details in script mode system prompt Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: add get_runnable_details tool to app mode Without it, the AI can find scripts/flows but can't inspect their schema/content when configuring backend runnables with correct inputs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: race condition in WorkspaceRunnablesSearch workspace caching Track scriptsWorkspace and flowsWorkspace separately instead of a single shared workspace field. Previously, initScripts could update the shared workspace field, causing initFlows to skip re-fetching when the workspace changed (it saw the workspace already matched), returning stale data. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Windmill frontend
The Windmill frontend written in Svelte 5 + Tailwind CSS
The frontend is under AGPL, see the LICENSE file at the root of this repo