taskmonkey-cli 0.4.1 → 0.4.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "taskmonkey-cli",
3
- "version": "0.4.1",
3
+ "version": "0.4.3",
4
4
  "description": "TaskMonkey CLI — Remote dev tools for tenant config editing and tool testing",
5
5
  "bin": {
6
6
  "tm": "./bin/tm.js",
@@ -0,0 +1,6 @@
1
+ .tmrc
2
+ .claude/
3
+ docs/
4
+ CLAUDE.md
5
+ AGENTS.md
6
+ node_modules/
@@ -63,6 +63,18 @@ export async function pull() {
63
63
  written++;
64
64
  }
65
65
 
66
+ // Create .gitignore if it doesn't exist
67
+ const gitignorePath = join(config._configDir, '.gitignore');
68
+ if (!existsSync(gitignorePath)) {
69
+ const __filename = fileURLToPath(import.meta.url);
70
+ const gitignoreSrc = resolve(dirname(__filename), '..', '..', 'skills', 'gitignore');
71
+ if (existsSync(gitignoreSrc)) {
72
+ writeFileSync(gitignorePath, readFileSync(gitignoreSrc, 'utf8'));
73
+ console.log(chalk.cyan(` .gitignore (created)`));
74
+ written++;
75
+ }
76
+ }
77
+
66
78
  // Install Claude Code skills to .claude/commands/
67
79
  const skillsInstalled = installSkills(config._configDir);
68
80
  written += skillsInstalled;
@@ -85,7 +97,7 @@ function installSkills(targetDir) {
85
97
  if (!existsSync(skillsDir)) return 0;
86
98
 
87
99
  let count = 0;
88
- const files = readdirSync(skillsDir).filter(f => f.endsWith('.md'));
100
+ const files = readdirSync(skillsDir).filter(f => f.endsWith('.md') && f !== 'gitignore');
89
101
  for (const file of files) {
90
102
  const content = readFileSync(join(skillsDir, file), 'utf8');
91
103
  writeFileSync(join(commandsDir, file), content);
@@ -122,6 +134,40 @@ Bei allen anderen Nachrichten arbeite normal weiter ohne Begrüßung.
122
134
  Du arbeitest an der Konfiguration des **${tenant}**-Tenants auf der TaskMonkey-Plattform.
123
135
  TaskMonkey ist eine KI-Chat-Plattform mit konfigurierbaren Tools, Prompts und Monkey Tasks.
124
136
 
137
+ ## WICHTIG: Architektur verstehen
138
+
139
+ Du bearbeitest hier **nur Konfigurationsdateien** (PHP). Der Code wird NICHT lokal ausgeführt.
140
+
141
+ \`\`\`
142
+ Lokal (dieses Verzeichnis) Server (TaskMonkey)
143
+ ────────────────────────── ────────────────────
144
+ Config-Dateien bearbeiten → tm sync / tm watch
145
+
146
+ Server liest Config
147
+ Server führt Tools aus
148
+ Server hat SSH-Keys, DB-Zugang etc.
149
+
150
+ tm test-tool / tm chat ← Ergebnis kommt zurück
151
+ \`\`\`
152
+
153
+ **Das bedeutet konkret:**
154
+ - Du schreibst KEINEN ausführbaren PHP-Code, der lokal läuft
155
+ - Du konfigurierst Tools, Prompts und Tasks als PHP-Arrays
156
+ - SSH-Keys, API-Credentials etc. liegen auf dem Server, nicht lokal
157
+ - Wenn du etwas testen willst: \`tm sync\` dann \`tm test-tool\` oder \`tm chat\`
158
+ - Der Server hat bereits Zugang zu externen Diensten (Datenbanken, APIs, SSH)
159
+ - Du musst nur die **Config** schreiben, die beschreibt WAS getan werden soll
160
+
161
+ **Beispiel DatabaseGateway:**
162
+ - Der Server hat bereits SSH-Zugang zu Remote-Servern (konfiguriert in \`database_connections.php\`)
163
+ - Du definierst nur das Tool, das den Gateway nutzt — der Server führt es aus
164
+ - Frage NICHT nach SSH-Keys oder Passwörtern — die sind serverseitig konfiguriert
165
+
166
+ **Beispiel API-Verbindung:**
167
+ - API-Credentials stehen in \`apis.php\` (bereits auf dem Server)
168
+ - Tools referenzieren APIs per Name: \`'api' => 'jtl'\`
169
+ - Du musst keine URLs oder Tokens kennen
170
+
125
171
  ## Erste Schritte
126
172
 
127
173
  1. Lies \`docs/TenantConfig.md\` — die vollständige Referenz aller Config-Keys