Go to file
Lucio Lelii b13c2019eb Let a retriever-backed field fall back to free text in two more places
The backend already publishes /retriever/LLM/models/open, which says
whether a provider's model field is a fixed list or free text - Gemini
has used it in production for a while, through generic-node.ts's own
leaf-field editor. Two other renderers never asked that question, and a
provider that cannot list (any hosted one with no listing endpoint) got
stuck there with an empty, unusable select instead:

  - container-node.ts's own field editor decided select-versus-text from
    retrieverKey alone, synchronously, before the free-text question could
    even be asked. toDialogFieldType now takes the answer as an argument,
    resolved first through a new fetchRetrieverFreeText.
  - Nested objects - an LLMDescriptor inside a container's configuration
    or an array item, reached through the buildSchemaObjectDialog both
    generic-node.ts and container-node.ts share - had no way to ask at
    all. SchemaObjectDialogHooks grows an optional loadFreeText hook; when
    it says yes, loadOptions is skipped entirely (the same fetch a
    listable retriever would otherwise make and throw away) and the field
    is forced to text. One fix in the shared function covers both
    components that call it.

Deliberately not "an empty options list means free text" - that heuristic
would be wrong for a retriever whose empty list is a real answer, a
project's global inputs among them, where nothing to choose from is not
the same question as nothing to type. A property with no loadFreeText
hook, or one that answers no, keeps rendering as a select, empty or not,
exactly as before.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-17 12:30:43 +02:00
.vscode refactor: code quality improvements (tasks 1-15) 2026-04-09 14:53:02 +02:00
docker refactor: code quality improvements (tasks 1-15) 2026-04-09 14:53:02 +02:00
docs Complete the user guide in English and render it to PDF 2026-09-16 12:10:09 +02:00
public solved node input output issue 2026-01-28 17:19:57 +01:00
src Let a retriever-backed field fall back to free text in two more places 2026-09-17 12:30:43 +02:00
.dockerignore Add suspended execution resume support and production Docker setup 2026-03-22 10:35:30 +01:00
.editorconfig initial commit 2025-12-11 12:51:55 +01:00
.gitignore initial commit 2025-12-11 12:51:55 +01:00
.postcssrc.json initial commit 2025-12-11 12:51:55 +01:00
CITATION.cff Release under the AGPL with an attribution term 2026-09-16 12:09:49 +02:00
Dockerfile turnstile siteKey added with a env var 2026-03-26 13:51:31 +01:00
LICENSE Release under the AGPL with an attribution term 2026-09-16 12:09:49 +02:00
LICENSE-ADDENDUM Release under the AGPL with an attribution term 2026-09-16 12:09:49 +02:00
NOTICE Release under the AGPL with an attribution term 2026-09-16 12:09:49 +02:00
README.md Release under the AGPL with an attribution term 2026-09-16 12:09:49 +02:00
angular.json Add suspended execution resume support and production Docker setup 2026-03-22 10:35:30 +01:00
components.json first commit 2026-01-07 16:07:33 +01:00
nginx.conf Add suspended execution resume support and production Docker setup 2026-03-22 10:35:30 +01:00
package-lock.json refactor: code quality improvements (tasks 1-15) 2026-04-09 14:53:02 +02:00
package.json Release under the AGPL with an attribution term 2026-09-16 12:09:49 +02:00
tsconfig.app.json modified for deprecation 2026-04-10 09:08:38 +02:00
tsconfig.json modified for deprecation 2026-04-10 09:08:38 +02:00
tsconfig.spec.json modified for deprecation 2026-04-10 09:08:38 +02:00

README.md

HumAInFlow

This project was generated using Angular CLI version 21.0.3.

Development server

To start a local development server, run:

ng serve

Once the server is running, open your browser and navigate to http://localhost:4200/. The application will automatically reload whenever you modify any of the source files.

Code scaffolding

Angular CLI includes powerful code scaffolding tools. To generate a new component, run:

ng generate component component-name

For a complete list of available schematics (such as components, directives, or pipes), run:

ng generate --help

Building

To build the project run:

ng build

This will compile your project and store the build artifacts in the dist/ directory. By default, the production build optimizes your application for performance and speed.

Running unit tests

To execute unit tests with the Vitest test runner, use the following command:

ng test

Running end-to-end tests

For end-to-end (e2e) testing, run:

ng e2e

Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs.

Additional Resources

For more information on using the Angular CLI, including detailed command references, visit the Angular CLI Overview and Command Reference page.

BUILD DOCKER IMAGE

docker buildx build –platform linux/amd64,linux/arm64 -t luciolelii/humainflow-gui:latest . –push

License

Copyright (C) 2025-2026 Lucio Lelii — ISTI-CNR.

HumAIn Flow is released under the GNU Affero General Public License v3.0 or later (LICENSE), with an additional attribution term under section 7(b) of that license (LICENSE-ADDENDUM).

In practice this means:

  • you may use, study, modify and redistribute it freely;

  • if you run a modified version as a network service, you must offer its source to the users of that service;

  • any work based on it must keep the attribution below, both in the source and where the interface shows its legal notices:

    Based on HumAIn Flow, originally developed by Lucio Lelii (ISTI-CNR) — https://github.com/luciolelii/humanaiFlow-angular

If you use HumAIn Flow in academic work, please cite it — see CITATION.cff.