@schlenkr/ragents 0.1.4 → 0.1.5
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/README.md
CHANGED
|
@@ -22,7 +22,8 @@ npm install -g @schlenkr/ragents
|
|
|
22
22
|
RAGENTS_TOKEN=<token> ragents connect https://ragents.example.com
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
- `start <profile|path>` - start a profile shipped with the package (`core`, `developer
|
|
25
|
+
- `start <profile|path>` - start a profile shipped with the package (`core`, `developer`,
|
|
26
|
+
`showcase`), your
|
|
26
27
|
own `ragents.config.<name>.ts` anywhere on disk, or a stand that `connect` already fetched,
|
|
27
28
|
without asking the server. The web interface is built for that set of plugins when it is
|
|
28
29
|
missing or was last built for another profile or host version; the result goes to
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@schlenkr/ragents",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"description": "RAgents-Host: Server, Engine, Plugins und Werkzeuge ohne Quell-Checkout",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agents",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"fsharp",
|
|
12
12
|
"vscode"
|
|
13
13
|
],
|
|
14
|
-
"homepage": "https://github.
|
|
14
|
+
"homepage": "https://schlenkr.github.io/RAgents/",
|
|
15
15
|
"bugs": {
|
|
16
16
|
"url": "https://github.com/SchlenkR/RAgents/issues"
|
|
17
17
|
},
|
|
@@ -5,7 +5,7 @@ export const referenceWalkthroughs = [
|
|
|
5
5
|
description: "Die Mini-App bleibt als Kachel sichtbar; ihr Besitzer ist auch ohne eigene Kachel erreichbar.",
|
|
6
6
|
tags: ["Anwendungsfall", "Konzeptdemo", "Kachelfläche"],
|
|
7
7
|
steps: [
|
|
8
|
-
"Im Profil
|
|
8
|
+
"Im Profil showcase Sammelboard einrichten öffnen und den Leitfaden abschließen. Erwartung: Die Liste steht als Kachel auf der Fläche; ihr Besitzer hat keine eigene Kachel.",
|
|
9
9
|
"In der Kopfzeile Actors öffnen und den Namen des Listenbesitzers wählen. Erwartung: Rechts öffnen sich dessen Chat und Details, ohne die Kachelaufteilung zu ändern.",
|
|
10
10
|
"Den Besitzer aus der Kopfzeile auf die Kachel der Liste ziehen und rechts andocken. Erwartung: Seine Kachel erscheint neben der Liste; die Mini-App bleibt bedienbar und behält ihre Einträge.",
|
|
11
11
|
"Die neue Kachel über das Kreuz in ihrer Kopfzeile wieder entfernen und die App erneut bedienen. Erwartung: Actor und Funktionen arbeiten weiter; sein Name bleibt in der Kopfzeile erreichbar.",
|
|
@@ -17,7 +17,7 @@ export const referenceWalkthroughs = [
|
|
|
17
17
|
description: "Kacheln lassen sich persönlich umstellen und wieder auf die Programmvorgabe zurücksetzen.",
|
|
18
18
|
tags: ["Anwendungsfall", "Konzeptdemo", "Kachelfläche"],
|
|
19
19
|
steps: [
|
|
20
|
-
"Im Profil
|
|
20
|
+
"Im Profil showcase den Einstieg Gesprächsrunde einrichten ausführen und den Aufbau abwarten. Die vom Run gesetzte Aufteilung ansehen.",
|
|
21
21
|
"Eine Kachel an ihrer Kopfzeile fassen und am oberen Rand einer anderen Kachel andocken. Erwartung: Die Aufteilung ändert sich sofort; alle Gesprächspartner arbeiten weiter.",
|
|
22
22
|
"Die Trennlinie zwischen zwei Kacheln verschieben und denselben Run im selben Browser neu laden. Erwartung: Die persönliche Aufteilung bleibt erhalten; die Actors und die Programmanordnung sind unverändert.",
|
|
23
23
|
"In der Statusleiste Programmvorgabe übernehmen wählen. Erwartung: Die Fläche zeigt wieder die Aufteilung des Runs; der Knopf verschwindet, bis wieder eine eigene Änderung vorliegt.",
|
|
@@ -29,7 +29,7 @@ export const referenceWalkthroughs = [
|
|
|
29
29
|
description: "Der übergeordnete Koordinator liest vorhandene Runs, während die aktuelle Arbeitsfläche geöffnet bleibt.",
|
|
30
30
|
tags: ["Anwendungsfall", "Konzeptdemo", "Globaler Koordinator"],
|
|
31
31
|
steps: [
|
|
32
|
-
"Im Profil
|
|
32
|
+
"Im Profil showcase zwei kurze Unterhaltungen zu einer Leseliste und einem Wochenplan anlegen und ihre Antworten abwarten.",
|
|
33
33
|
"In die Eingabe Globaler Koordinator in der Kopfzeile klicken und damit seinen Verlauf öffnen. Um eine knappe Übersicht der beiden Unterhaltungen mit ihrem jeweiligen Arbeitsstand bitten.",
|
|
34
34
|
"Die Run-Liste über die Übersichtsecke oder Cmd+I auf macOS beziehungsweise Ctrl+I öffnen, beide Runs auswählen und die Antwort mit ihren tatsächlichen Unterhaltungen vergleichen. Erwartung: Der globale Chat kann beide Journale berücksichtigen; ein Run-Wechsel erhält seinen eigenen Verlauf.",
|
|
35
35
|
"Einen ungesendeten Entwurf oben eingeben, Escape drücken und den Verlauf wieder öffnen. Erwartung: Das Dropdown schließt ohne Stopp; Entwurf, aktueller Run und globales Gespräch bleiben erhalten.",
|
|
@@ -126,7 +126,7 @@ export const referenceWalkthroughs = [
|
|
|
126
126
|
description: "Eine TypeScript-Prüfung macht den zugehörigen Sprachserver in der Prozessanzeige sichtbar.",
|
|
127
127
|
tags: ["Anwendungsfall", "Konzeptdemo", "Prozessanzeige"],
|
|
128
128
|
steps: [
|
|
129
|
-
"Im Profil
|
|
129
|
+
"Im Profil showcase den Skill-Einstieg Fehler in einer Terminliste finden ausführen. Voraussetzung ist ein verfügbarer TypeScript-Sprachserver; eine fehlende Voraussetzung muss als Fehler gemeldet werden.",
|
|
130
130
|
"Nach dem Öffnen des Sprachservers die gemeinsame Kopfzeile des Runs ansehen. Erwartung: Der verwaltete Sprachserver erscheint als zu diesem Run gehörender Prozess.",
|
|
131
131
|
"Einen anderen Run öffnen und zurückwechseln. Erwartung: Die Prozessanzeige folgt dem ausgewählten Run und ist kein gemeinsames Verzeichnis aller Rechnerprozesse.",
|
|
132
132
|
"Die Prozessanzeige dient der Beobachtung. Sie bietet keinen Beenden-Knopf; fehlende Betriebssystemrechte oder Werkzeuge werden als sichtbarer Fehler gemeldet.",
|
|
@@ -138,7 +138,7 @@ export const referenceWalkthroughs = [
|
|
|
138
138
|
description: "Ein zeitlich begrenzter Demo-Webprozess erscheint mit seinem erkannten Port in der Kopfzeile.",
|
|
139
139
|
tags: ["Anwendungsfall", "Konzeptdemo", "Prozessanzeige"],
|
|
140
140
|
steps: [
|
|
141
|
-
"In einem eigenen
|
|
141
|
+
"In einem eigenen showcase-Run den Koordinator bitten, einen kleinen Node-Demoprozess im Run-Arbeitsverzeichnis vorzubereiten: Er liefert nur einen neutralen Begrüßungstext, bindet ausschließlich 127.0.0.1 auf einem freien Port und beendet sich nach zwei Minuten selbst. Keine zusätzlichen Pakete installieren und keinen Produktserver ersetzen.",
|
|
142
142
|
"Den vorbereiteten Demoprozess starten lassen und bei laufender Ausführung die Kopfzeile ansehen. Erwartung: Der Prozess erscheint mit einem Link auf seinen erkannten offenen Port.",
|
|
143
143
|
"Den Port-Link nur auf demselben Rechner öffnen. Erwartung: Die lokale Demoantwort erscheint; bei einem entfernten Server ist dessen Loopback-Adresse nicht die Adresse des Browsers.",
|
|
144
144
|
"Das vorgesehene automatische Ende abwarten. Erwartung: Der Eintrag verschwindet nach der nächsten Prozessaktualisierung. Run-Stopp oder das Schließen eines Tabs werden hier nicht als Beenden eines abgesetzten Dienstes versprochen.",
|
|
@@ -150,7 +150,7 @@ export const referenceWalkthroughs = [
|
|
|
150
150
|
description: "Ein Run schreibt einen kleinen Text; der Dateireiter zeigt Inhalt und spätere Änderung ohne eigenen Editor.",
|
|
151
151
|
tags: ["Anwendungsfall", "Konzeptdemo", "Dateien und Arbeitsverzeichnis"],
|
|
152
152
|
steps: [
|
|
153
|
-
"In einem neuen
|
|
153
|
+
"In einem neuen showcase-Run den Koordinator bitten, im Run-Arbeitsverzeichnis die Datei reading-list.md mit drei neutralen Lesethemen anzulegen.",
|
|
154
154
|
"Den Reiter Dateien öffnen, das Arbeitsverzeichnis aufklappen und reading-list.md auswählen. Erwartung: Der geschriebene Text erscheint als Vorschau.",
|
|
155
155
|
"Im Chat ein viertes Thema ergänzen lassen und zur weiterhin geöffneten Vorschau zurückkehren. Erwartung: Die Dateiänderung wird im Dateibrowser sichtbar.",
|
|
156
156
|
"Erwartung: Der Dateireiter bleibt eine Leseansicht. Änderungen erfolgen durch den beauftragten Actor und dessen Dateiwerkzeuge, nicht durch einen eingebauten Editor oder Löschknopf.",
|
|
@@ -162,8 +162,8 @@ export const referenceWalkthroughs = [
|
|
|
162
162
|
description: "Zwei unabhängige Arbeitsverzeichnisse enthalten eigene Dateien mit demselben Namen.",
|
|
163
163
|
tags: ["Anwendungsfall", "Konzeptdemo", "Dateien und Arbeitsverzeichnis"],
|
|
164
164
|
steps: [
|
|
165
|
-
"Einen
|
|
166
|
-
"Einen zweiten
|
|
165
|
+
"Einen showcase-Run Leseliste anlegen und darin notes.md mit dem Inhalt Lesen vorbereiten schreiben lassen.",
|
|
166
|
+
"Einen zweiten showcase-Run Wochenplan anlegen und dort ebenfalls notes.md schreiben lassen, diesmal mit dem Inhalt Woche planen. Keine Datei zwischen Runs kopieren.",
|
|
167
167
|
"In beiden Runs nacheinander den Reiter Dateien öffnen und notes.md lesen. Erwartung: Der gleiche Dateiname zeigt den jeweils eigenen Inhalt des Run-Arbeitsverzeichnisses.",
|
|
168
168
|
"Nur im Wochenplan eine Zeile ergänzen lassen und beide Vorschauen erneut prüfen. Erwartung: Die Datei des Leselisten-Runs ist unverändert.",
|
|
169
169
|
],
|
|
@@ -174,7 +174,7 @@ export const referenceWalkthroughs = [
|
|
|
174
174
|
description: "Eine abgeschlossene Actor-Funktion bleibt beim regulären Neustart desselben Profils erhalten.",
|
|
175
175
|
tags: ["Anwendungsfall", "Konzeptdemo", "Wiederherstellung nach Neustart"],
|
|
176
176
|
steps: [
|
|
177
|
-
"Im Profil
|
|
177
|
+
"Im Profil showcase Sammelboard einrichten öffnen und den Leitfaden abschließen. Einen eindeutig erkennbaren Eintrag hinzufügen und die bestätigte Aktualisierung der Liste abwarten.",
|
|
178
178
|
"Alle laufenden Arbeiten abschließen lassen. Den lokalen Server selbst über den für diese Installation verwendeten Startweg beenden und mit demselben Profil und Datenverzeichnis neu starten. Keine Daten löschen und keine zweite Serverinstanz parallel starten.",
|
|
179
179
|
"Die Anwendung erneut öffnen und denselben Run auswählen. Erwartung: Gespräch, Mini-App und bestätigter Listeneintrag sind wieder vorhanden.",
|
|
180
180
|
"Die Liste auf doppelte Einträge prüfen. Erwartung: Der Neustart stellt gespeicherten Zustand wieder her, führt die bereits abgeschlossene Hinzufügeaktion aber nicht erneut aus. Das Journal allein ersetzt keine vollständige Sicherung der übrigen Run-Dateien.",
|
|
@@ -186,7 +186,7 @@ export const referenceWalkthroughs = [
|
|
|
186
186
|
description: "Normale Unterhaltung und globaler Koordinator behalten ihre jeweils eigene Geschichte.",
|
|
187
187
|
tags: ["Anwendungsfall", "Konzeptdemo", "Wiederherstellung nach Neustart"],
|
|
188
188
|
steps: [
|
|
189
|
-
"In einem normalen
|
|
189
|
+
"In einem normalen showcase-Run drei Lernziele besprechen und im globalen Chat eine knappe Übersicht dieses Runs anfordern. Beide Antworten vollständig abwarten und die globale Modellwahl merken.",
|
|
190
190
|
"Den lokalen Server selbst über den vorhandenen Startweg neu starten, mit demselben Profil und Datenverzeichnis. Keine Dateien entfernen oder zwischen Installationen übertragen.",
|
|
191
191
|
"Den normalen Run und anschließend den globalen Chat öffnen. Erwartung: Beide bisherigen Verläufe und die globale Modellwahl sind erhalten.",
|
|
192
192
|
"Im normalen Run um den nächsten Schritt zu den Lernzielen bitten. Die neue Antwort als neue Arbeit behandeln; der Neustart hat alte Modellaufrufe nicht wiederholt. Ein beim Neustart noch offener Turn wäre unterbrochen abgeschlossen worden und wird nicht automatisch erneut ausgeführt.",
|
package/ragents.config.core.ts
CHANGED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// Schaufenster: das Profil core und zusätzlich die mitgelieferten Beispiele aus ragents.reference.
|
|
2
|
+
import { env, provisioned, type RAgentsConfig } from "./apps/server/src/config-definition.js";
|
|
3
|
+
|
|
4
|
+
export const config = {
|
|
5
|
+
host: {
|
|
6
|
+
PORT: 4713,
|
|
7
|
+
PRODUCT_PROFILE: "showcase",
|
|
8
|
+
COMPACTION_MODEL: "google/gemma-4-26b-a4b-it",
|
|
9
|
+
PRODUCT_ID: "ragents-showcase",
|
|
10
|
+
PRODUCT_TITLE: "RAgents Showcase",
|
|
11
|
+
PLUGINS: [
|
|
12
|
+
"ragents.orchestration",
|
|
13
|
+
"ragents.workspace",
|
|
14
|
+
"ragents.product",
|
|
15
|
+
"ragents.overseer",
|
|
16
|
+
"ragents.activity",
|
|
17
|
+
"ragents.processes",
|
|
18
|
+
"ragents.documents",
|
|
19
|
+
"ragents.browser",
|
|
20
|
+
"ragents.ask",
|
|
21
|
+
"ragents.todo",
|
|
22
|
+
"ragents.watch",
|
|
23
|
+
"ragents.transcript",
|
|
24
|
+
"ragents.actor-programs",
|
|
25
|
+
"ragents.reference",
|
|
26
|
+
"ragents.lsp-roslyn",
|
|
27
|
+
"ragents.lsp-fsharp",
|
|
28
|
+
"ragents.lsp-typescript",
|
|
29
|
+
"ragents.model-relay",
|
|
30
|
+
"ragents.profile-distribution",
|
|
31
|
+
],
|
|
32
|
+
},
|
|
33
|
+
|
|
34
|
+
"ragents.product": {
|
|
35
|
+
OPENROUTER_API_KEY: env("OPENROUTER_API_KEY"),
|
|
36
|
+
AGENT_MODEL: "z-ai/glm-5.3-flash",
|
|
37
|
+
AGENT_MODELS: [
|
|
38
|
+
"deepseek/deepseek-v4-flash-0731",
|
|
39
|
+
"deepseek/deepseek-v4-pro-0813",
|
|
40
|
+
"qwen/qwen3.8-max",
|
|
41
|
+
"z-ai/glm-5.3",
|
|
42
|
+
"z-ai/glm-5.3-flash",
|
|
43
|
+
"qwen/qwen3.8-flash",
|
|
44
|
+
"moonshotai/kimi-k3",
|
|
45
|
+
"minimax/minimax-m3",
|
|
46
|
+
"qwen/qwen3.8-27b",
|
|
47
|
+
"moonshotai/kimi-k2.7-code",
|
|
48
|
+
],
|
|
49
|
+
AGENT_COORDINATOR_MODEL: "z-ai/glm-5.3-flash",
|
|
50
|
+
AGENT_COORDINATOR_THINKING: "high",
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
// Modell-Relay: Aliasse für andere RAgents-Server, die ihre Modelle von hier beziehen.
|
|
54
|
+
"ragents.model-relay": {
|
|
55
|
+
RELAY_MODELS: ["showcase-standard=openrouter/z-ai/glm-5.3-flash", "showcase-coordinator=openrouter/deepseek/deepseek-v4-flash-0731"],
|
|
56
|
+
},
|
|
57
|
+
|
|
58
|
+
"ragents.lsp-roslyn": {
|
|
59
|
+
ROSLYN_LANGUAGE_SERVER: provisioned("ragents.lsp-roslyn", "roslyn/Microsoft.CodeAnalysis.LanguageServer.dll"),
|
|
60
|
+
},
|
|
61
|
+
"ragents.lsp-fsharp": {
|
|
62
|
+
FSHARP_LANGUAGE_SERVER: provisioned("ragents.lsp-fsharp", "fsautocomplete/fsautocomplete.dll"),
|
|
63
|
+
},
|
|
64
|
+
} as const satisfies RAgentsConfig;
|
|
@@ -22,7 +22,7 @@ const SKIPPED_IN_PACKAGE = /^scripts\/.*\.test\.tsx?$/;
|
|
|
22
22
|
const packagePath = (packageRoot: string, file: string): string => path.relative(packageRoot, file).split(path.sep).join("/");
|
|
23
23
|
|
|
24
24
|
/** Die neutralen Profile des Repositories; ragents start fährt sie aus dem Paket wie aus dem Checkout. */
|
|
25
|
-
export const PACKAGED_PROFILES = ["core", "developer"] as const;
|
|
25
|
+
export const PACKAGED_PROFILES = ["core", "developer", "showcase"] as const;
|
|
26
26
|
|
|
27
27
|
export const PACKAGE_LICENSE = "PolyForm-Shield-1.0.0";
|
|
28
28
|
export const PACKAGE_AUTHOR = "Ronald Schlenker";
|
|
@@ -217,7 +217,7 @@ export const buildPackage = async (target: string, root = repositoryRoot): Promi
|
|
|
217
217
|
version: readPackageVersion(root),
|
|
218
218
|
description: "RAgents-Host: Server, Engine, Plugins und Werkzeuge ohne Quell-Checkout",
|
|
219
219
|
keywords: [...PACKAGE_KEYWORDS],
|
|
220
|
-
homepage:
|
|
220
|
+
homepage: "https://schlenkr.github.io/RAgents/",
|
|
221
221
|
bugs: { url: `${REPOSITORY_URL}/issues` },
|
|
222
222
|
license: PACKAGE_LICENSE,
|
|
223
223
|
author: PACKAGE_AUTHOR,
|
package/scripts/remote/start.ts
CHANGED
|
@@ -8,7 +8,7 @@ import { localProfile } from "../../apps/server/src/profile-target.ts";
|
|
|
8
8
|
import { startCached, startProfile, type CachedProfile } from "./connect.ts";
|
|
9
9
|
|
|
10
10
|
const usage = (): string => `Verwendung: ragents start <profil|pfad> [--port <n>]
|
|
11
|
-
Startet ein Profil dieses Hosts (core, developer), eine eigene ragents.config.<profil>.ts an
|
|
11
|
+
Startet ein Profil dieses Hosts (core, developer, showcase), eine eigene ragents.config.<profil>.ts an
|
|
12
12
|
beliebiger Stelle oder einen Stand, den ragents connect schon geholt hat, ohne den Server zu
|
|
13
13
|
fragen. Ein eigenes Profil bekommt sein Web beim Start gebaut, ein geholter Stand bringt es aus
|
|
14
14
|
demselben Cache mit. Ohne Argument nennt der Befehl die Profile im Cache.`;
|