kimal3 0.2.9 → 0.3.0
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 +135 -0
- package/dist/api.js +16 -7
- package/dist/arbeitsplatz-dateien.js +62 -30
- package/dist/argumente.js +25 -97
- package/dist/befehle/arbeitsplatz.js +51 -68
- package/dist/befehle/firma-daten.js +24 -26
- package/dist/befehle/kontext-fragen.js +62 -44
- package/dist/befehle/kontext-gemeinsam.js +86 -43
- package/dist/befehle/kontext-hoch.js +40 -46
- package/dist/befehle/kontext-runter.js +70 -51
- package/dist/befehle/login.js +23 -9
- package/dist/befehle/logout.js +9 -4
- package/dist/befehle/projekt-liste.js +24 -29
- package/dist/befehle/projekt-neu.js +25 -31
- package/dist/befehle/skill-install.js +78 -49
- package/dist/befehle/skill-tausch.js +28 -0
- package/dist/befehle/wache.js +12 -6
- package/dist/befehle/werkbank.js +118 -88
- package/dist/befehle-katalog-en.js +185 -0
- package/dist/befehle-katalog.js +10 -49
- package/dist/befehlswoerter.js +69 -0
- package/dist/einstellungen-mischen.js +2 -2
- package/dist/einstellungen-schreiben.js +8 -5
- package/dist/fehler.js +5 -5
- package/dist/firmen-liste.js +42 -5
- package/dist/format.js +41 -0
- package/dist/fragen-lesen.js +3 -3
- package/dist/hilfe.js +24 -0
- package/dist/kimal3.js +77 -71
- package/dist/kontext-dateien.js +30 -23
- package/dist/kontext-hoch-zeile.js +5 -3
- package/dist/kontext-rat.js +151 -0
- package/dist/kontext-stand.js +68 -210
- package/dist/nachricht.js +39 -15
- package/dist/projekt-neu-firma.js +9 -9
- package/dist/projekt-zeilen.js +40 -54
- package/dist/slash-befehle.js +36 -0
- package/dist/sprache.js +114 -0
- package/dist/texte/allgemein.js +99 -0
- package/dist/texte/arbeitsplatz.js +135 -0
- package/dist/texte/kontext-hoch.js +128 -0
- package/dist/texte/kontext.js +171 -0
- package/dist/texte/projekte.js +126 -0
- package/dist/texte/skill.js +87 -0
- package/dist/texte/wache.js +36 -0
- package/dist/texte/werkbank.js +161 -0
- package/dist/wache-rechnung.js +27 -40
- package/dist/wache-schalter.js +40 -5
- package/dist/werkbank-name.js +28 -10
- package/dist/wort.js +98 -0
- package/package.json +27 -27
- package/skill/SKILL.md +18 -10
- package/skill/commands/k3.md +1 -1
- package/skill/commands/k3feierabend.md +99 -97
- package/skill/commands/k3kontext.md +2 -2
- package/skill/commands/k3kurs.md +6 -5
- package/skill/commands/k3start.md +2 -1
- package/skill/en/SKILL.md +451 -0
- package/skill/en/commands/k3.md +106 -0
- package/skill/en/commands/k3analyse.md +59 -0
- package/skill/en/commands/k3context.md +92 -0
- package/skill/en/commands/k3course.md +54 -0
- package/skill/en/commands/k3list.md +26 -0
- package/skill/en/commands/k3project.md +50 -0
- package/skill/en/commands/k3start.md +47 -0
- package/skill/en/commands/k3wrapup.md +99 -0
- package/dist/zz-kaputt.js +0 -1
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
const de = {
|
|
2
|
+
// ── kontext-hoch.ts ──
|
|
3
|
+
uploadHelp: `
|
|
4
|
+
kimal3 kontext hoch [--firma "Name" | --firma-id "…"] [--ueberschreiben]
|
|
5
|
+
|
|
6
|
+
Schickt deine lokalen Aenderungen an allen fuenf Firmen-Texten nach oben --
|
|
7
|
+
fuer den Firmen-Admin. Nur wer Admin ist, darf das; die App entscheidet.
|
|
8
|
+
|
|
9
|
+
Die fuenf sind die Dateien in kontext/: kurzprofil.md, firma.md, marke.md,
|
|
10
|
+
systeme.md, sicherheit.md (bei englischer Firma in context/: profile.md,
|
|
11
|
+
company.md, brand.md, systems.md, security.md).
|
|
12
|
+
|
|
13
|
+
Welche Fragen darin noch offen sind, zeigt "kimal3 kontext fragen".
|
|
14
|
+
|
|
15
|
+
--firma "Name" Noetig, wenn du zu mehreren Firmen gehoerst.
|
|
16
|
+
Die Absage nennt dir die Namen als fertige Befehle.
|
|
17
|
+
|
|
18
|
+
--firma-id "…" Fuer den Fall, dass zwei deiner Firmen GLEICH heissen.
|
|
19
|
+
|
|
20
|
+
--ueberschreiben Speichert auch dann, wenn die Firma inzwischen von
|
|
21
|
+
jemand anderem geaendert wurde (§7d).
|
|
22
|
+
`,
|
|
23
|
+
uploadFileMissing: (pfad) => `„${pfad}" gibt es hier nicht -- ich schicke nichts Halbes hoch.`,
|
|
24
|
+
uploadFetchFirst: " Erst `kimal3 kontext runter` ausfuehren, dann bearbeiten, dann noch einmal.",
|
|
25
|
+
nothingSaved: "Nichts wurde gespeichert.",
|
|
26
|
+
savedButTracking: "Die Firma hat deine Änderungen gespeichert — nur der lokale Merkzettel ließ sich nicht schreiben:",
|
|
27
|
+
// ── kontext-hoch-zeile.ts ──
|
|
28
|
+
nothingChanged: "✓ nichts geändert — alles war schon so",
|
|
29
|
+
changedAtCompany: (liste) => `✓ geändert bei der Firma: ${liste}`,
|
|
30
|
+
// ── kontext-fragen.ts ──
|
|
31
|
+
questionsHelp: `
|
|
32
|
+
kimal3 kontext fragen
|
|
33
|
+
|
|
34
|
+
Zeigt, welche Fragen über deine Firma in kontext/ noch unbeantwortet sind —
|
|
35
|
+
mit Datei, Anker, Frage und Hinweis.
|
|
36
|
+
|
|
37
|
+
Der Befehl liest nur. Er braucht weder Netz noch Anmeldung und ändert nichts.
|
|
38
|
+
|
|
39
|
+
Antworten trägst du in die genannte Datei unter ihre Frage ein; danach
|
|
40
|
+
schickt "kimal3 kontext hoch" sie an die Firma (nur als Admin).
|
|
41
|
+
`,
|
|
42
|
+
noArguments: (angabe) => `„${angabe}" kenne ich hier nicht — dieser Befehl nimmt keine Angaben.`,
|
|
43
|
+
readsFiles: " Er liest die fünf Dateien in kontext/ (oder context/) neben dir und gibt aus, was offen ist.",
|
|
44
|
+
questionsFileMissing: (pfad) => `„${pfad}" gibt es hier nicht — dann fehlen mir ihre Fragen.`,
|
|
45
|
+
questionsFetchFirst: " `kimal3 kontext runter` holt die Datei; danach noch einmal.",
|
|
46
|
+
cannotCount: "Ich kann ihre Fragen deshalb nicht zählen — und zähle dann gar nicht.",
|
|
47
|
+
allAnswered: (gesamt) => `✓ Alle ${gesamt} Fragen, die in deinen Dateien stehen, sind beantwortet.`,
|
|
48
|
+
countedIs: (ordner) => ` Gezählt ist, was in ${ordner}/ steht. Nennt die App unter Firma → Kontext`,
|
|
49
|
+
countedHigher: " eine höhere Zahl, fehlt in einer Datei eine Frage oder die Zeile <!-- k3:… --> darüber.",
|
|
50
|
+
whichFile: " Welche Datei: die, deren Überschriften nicht zu denen in der App passen.",
|
|
51
|
+
renameIt: (beispiel) => ` Benenn sie um (etwa ${beispiel}.md → ${beispiel}-alt.md), dann holt \`kimal3 kontext runter\``,
|
|
52
|
+
renameThenFresh: " die Fassung der Firma frisch. Antworten, die du noch nicht hochgeschickt hast,",
|
|
53
|
+
renameCopyBack: " stehen danach nur in der umbenannten Datei — kopier sie zurück.",
|
|
54
|
+
openCount: (offen, gesamt) => `${offen} von ${gesamt} Fragen über deine Firma sind noch offen.\n`,
|
|
55
|
+
workplaceLine: (pfad) => `Arbeitsplatz: ${pfad}`,
|
|
56
|
+
pathsCountFromHere: "Die Pfade unten zählen ab hier.\n",
|
|
57
|
+
fileHeading: (pfad, titel) => `${pfad} — ${titel}`,
|
|
58
|
+
anchorLine: (anker, optional) => ` <!-- k3:${anker} -->${optional ? " [optional]" : ""}`,
|
|
59
|
+
questionHeading: (ueberschrift) => ` ## ${ueberschrift}`,
|
|
60
|
+
questionHint: (hinweis) => ` ${hinweis}`,
|
|
61
|
+
answerBelowHeading: " Die Antwort kommt in der genannten Datei unter ihre Überschrift.",
|
|
62
|
+
thenAsAdmin: " Danach als Admin: kimal3 kontext hoch",
|
|
63
|
+
};
|
|
64
|
+
const en = {
|
|
65
|
+
uploadHelp: `
|
|
66
|
+
kimal3 context upload [--company "Name" | --company-id "…"] [--overwrite]
|
|
67
|
+
|
|
68
|
+
Uploads your local changes to the five company context files — for the
|
|
69
|
+
company admin. Only an admin may do this; the app decides.
|
|
70
|
+
|
|
71
|
+
The five are the files in context/: profile.md, company.md, brand.md,
|
|
72
|
+
systems.md, security.md (in kontext/ for a German-language company:
|
|
73
|
+
kurzprofil.md, firma.md, marke.md, systeme.md, sicherheit.md).
|
|
74
|
+
|
|
75
|
+
"kimal3 context questions" shows which questions in them are still open.
|
|
76
|
+
|
|
77
|
+
--company "Name" Needed if you belong to several companies.
|
|
78
|
+
The error message lists the names as ready-to-run commands.
|
|
79
|
+
|
|
80
|
+
--company-id "…" For when two of your companies have the SAME name.
|
|
81
|
+
|
|
82
|
+
--overwrite Saves even if someone else has changed the company
|
|
83
|
+
in the meantime.
|
|
84
|
+
|
|
85
|
+
The German option names (--firma, --firma-id, --ueberschreiben) work too.
|
|
86
|
+
`,
|
|
87
|
+
uploadFileMissing: (pfad) => `“${pfad}” is missing — I'm not uploading anything incomplete.`,
|
|
88
|
+
uploadFetchFirst: " Run `kimal3 context download` first, then edit, then try again.",
|
|
89
|
+
nothingSaved: "Nothing was saved.",
|
|
90
|
+
savedButTracking: "The company has saved your changes — only the local tracking file couldn't be written:",
|
|
91
|
+
nothingChanged: "✓ nothing changed — everything was already identical",
|
|
92
|
+
changedAtCompany: (liste) => `✓ changed at the company: ${liste}`,
|
|
93
|
+
questionsHelp: `
|
|
94
|
+
kimal3 context questions
|
|
95
|
+
|
|
96
|
+
Shows which questions about your company in context/ are still unanswered —
|
|
97
|
+
with file, anchor, question and hint.
|
|
98
|
+
|
|
99
|
+
The command only reads. It needs neither network nor sign-in and changes nothing.
|
|
100
|
+
|
|
101
|
+
Enter your answers in the named file under its question; after that
|
|
102
|
+
"kimal3 context upload" sends them to the company (admins only).
|
|
103
|
+
|
|
104
|
+
The questions and hints appear in your company's language.
|
|
105
|
+
`,
|
|
106
|
+
noArguments: (angabe) => `I don't know “${angabe}” here — this command takes no arguments.`,
|
|
107
|
+
readsFiles: " It reads the five files in context/ (or kontext/) here and prints what is still open.",
|
|
108
|
+
questionsFileMissing: (pfad) => `“${pfad}” is missing, so I can't see its questions.`,
|
|
109
|
+
questionsFetchFirst: " `kimal3 context download` fetches the file; then try again.",
|
|
110
|
+
cannotCount: "Without it I can't count the questions, so I'm not giving a count.",
|
|
111
|
+
allAnswered: (gesamt) => `✓ All ${gesamt} questions that appear in your files are answered.`,
|
|
112
|
+
countedIs: (ordner) => ` I count what is in ${ordner}/. If the app shows a higher number under Company → Context,`,
|
|
113
|
+
countedHigher: " a question or its <!-- k3:… --> line is missing from one of the files.",
|
|
114
|
+
whichFile: " Which file: the one whose headings don't match the ones in the app.",
|
|
115
|
+
renameIt: (beispiel) => ` Rename it (for example ${beispiel}.md → ${beispiel}-old.md), then \`kimal3 context download\``,
|
|
116
|
+
renameThenFresh: " fetches the company's version again. Answers you haven't uploaded yet",
|
|
117
|
+
renameCopyBack: " will then only be in the renamed file — copy them back.",
|
|
118
|
+
openCount: (offen, gesamt) => `${offen} of ${gesamt} questions about your company are still open.\n`,
|
|
119
|
+
workplaceLine: (pfad) => `AI Workplace: ${pfad}`,
|
|
120
|
+
pathsCountFromHere: "The paths below are relative to here.\n",
|
|
121
|
+
fileHeading: (pfad, titel) => `${pfad} — ${titel}`,
|
|
122
|
+
anchorLine: (anker, optional) => ` <!-- k3:${anker} -->${optional ? " [optional]" : ""}`,
|
|
123
|
+
questionHeading: (ueberschrift) => ` ## ${ueberschrift}`,
|
|
124
|
+
questionHint: (hinweis) => ` ${hinweis}`,
|
|
125
|
+
answerBelowHeading: " Put your answer in the named file under its heading.",
|
|
126
|
+
thenAsAdmin: " Then, as admin: kimal3 context upload",
|
|
127
|
+
};
|
|
128
|
+
export const KONTEXT_HOCH_TEXTE = { de, en };
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
const SPRACHNAME = {
|
|
2
|
+
de: { de: "Deutsch", en: "Englisch" },
|
|
3
|
+
en: { de: "German", en: "English" },
|
|
4
|
+
};
|
|
5
|
+
const de = {
|
|
6
|
+
// ── kontext-gemeinsam.ts: arbeitsplatzOderAbsage ──
|
|
7
|
+
bothFolders1: (pfad) => `In „${pfad}" liegen \`kontext/\` UND \`context/\` nebeneinander — ich weiß nicht,`,
|
|
8
|
+
bothFolders2: "welcher gilt, und wähle nicht still einen aus. Ich schreibe nichts.",
|
|
9
|
+
bothFolders3: " Benenn den falschen um (etwa in `context-alt/`) und versuch es dann noch einmal.",
|
|
10
|
+
noWorkplace1: "Hier steht kein KI-Arbeitsplatz — ich suche von hier aufwärts nach einem",
|
|
11
|
+
noWorkplace2: "Ordner mit `CLAUDE.md` und einem `kontext/` (oder `context/`), in dem eure Firmentexte liegen.",
|
|
12
|
+
noWorkplace3: " Wechsle in deinen Arbeitsplatz-Ordner und versuch es dort noch einmal.",
|
|
13
|
+
// ── kontext-gemeinsam.ts: fremdeSpracheAbsage ──
|
|
14
|
+
languageChanged1: (firma, ordner, kontextOrdner) => `Deine Firma hat jetzt ${SPRACHNAME.de[firma]} als Firmensprache — dieser Ordner ist aber ${SPRACHNAME.de[ordner].toLowerCase()} (\`${kontextOrdner}/\`).`,
|
|
15
|
+
languageChanged2: "Ich schreibe hier nichts, sonst stünden zwei Sprachen nebeneinander.",
|
|
16
|
+
languageChanged3: " Hol dir in einem NEUEN Ordner einen frischen Arbeitsplatz:",
|
|
17
|
+
// Befehlswort und Schalter kommen aus befehlIn/schalterIn herein (texte-Dateien importieren nur den Typ Sprache).
|
|
18
|
+
languageChangedCommand: (befehl, schalter, firmenWert) => ` kimal3 ${befehl}${firmenWert === null ? "" : ` --${schalter} ${firmenWert}`}`,
|
|
19
|
+
languageChanged4: " Deine Projekte in der Werkbank bleiben, wo sie sind — nimm sie bei Bedarf mit.",
|
|
20
|
+
// ── kontext-gemeinsam.ts: fremdeDateiAbsage ──
|
|
21
|
+
fileNotLike: (pfad, titel, folge) => `„${pfad}" sieht nicht aus wie „${titel}". ${folge}`,
|
|
22
|
+
noQuestionFound: (ankerPraefix) => ` Ich finde darin keine einzige Frage dieser Datei (Zeilen wie \`<!-- k3:${ankerPraefix}… -->\`).`,
|
|
23
|
+
fetchItBack: " Hol sie mit `kimal3 kontext runter` zurück und trag deine Antworten dort ein.",
|
|
24
|
+
// Bezeichnung der fuenf Dateien im Terminal (W-7); kontext-stand.ts haelt den deutschen Titel nur als Abgleichwert.
|
|
25
|
+
dateiTitel: {
|
|
26
|
+
drei_saetze: "Die Firma in drei Sätzen",
|
|
27
|
+
firma_md: "Die Firma",
|
|
28
|
+
marke_md: "Die Marke",
|
|
29
|
+
systeme_md: "Die Systeme",
|
|
30
|
+
sicherheit_md: "Sicherheit",
|
|
31
|
+
},
|
|
32
|
+
// ── kontext-dateien.ts ──
|
|
33
|
+
notAFile: (pfad) => `„${pfad}" existiert, ist aber keine Datei -- ich fasse das nicht an. Bitte pruefen.`,
|
|
34
|
+
cannotReach: (pfad, grund) => `Ich komme an „${pfad}" nicht heran: ${grund}. ` + "Das liegt an diesem Rechner, nicht am Server -- Rechte pruefen.",
|
|
35
|
+
trackingFailed: (grund) => `Der Merkzettel liess sich nicht schreiben: ${grund}. Das liegt an diesem Rechner, nicht am Server -- Platz und Rechte pruefen.`,
|
|
36
|
+
backupFailed: (pfad, grund) => `Sichern von „${pfad}" ist fehlgeschlagen: ${grund}. Das liegt an diesem Rechner, nicht am Server -- Platz und Rechte pruefen.`,
|
|
37
|
+
notManaged: (pfad) => `„${pfad}" ist keine verwaltete Datei -- wird nicht geschrieben. Bitte melden.`,
|
|
38
|
+
notSafePath: (pfad) => `„${pfad}" ist kein sicherer Pfad -- wird nicht geschrieben. Bitte melden.`,
|
|
39
|
+
writeFailed: (pfad, grund) => `Schreiben von „${pfad}" ist fehlgeschlagen: ${grund}. Das liegt an diesem Rechner, nicht am Server -- Platz und Rechte pruefen.`,
|
|
40
|
+
// ── kontext-runter.ts ──
|
|
41
|
+
downloadHelp: `
|
|
42
|
+
kimal3 kontext runter [--firma "Name" | --firma-id "…"]
|
|
43
|
+
|
|
44
|
+
Holt den Firmenkontext (CLAUDE.md + die fuenf Dateien in kontext/, bei
|
|
45
|
+
englischer Firma context/) und legt
|
|
46
|
+
ihn in deinem KI-Arbeitsplatz ab. Was du selbst geaendert hast, fasst der
|
|
47
|
+
Befehl nicht an -- er sagt dir, wie du es einbringst.
|
|
48
|
+
|
|
49
|
+
--firma "Name" Noetig, wenn du zu mehreren Firmen gehoerst.
|
|
50
|
+
Die Absage nennt dir die Namen als fertige Befehle.
|
|
51
|
+
|
|
52
|
+
--firma-id "…" Fuer den Fall, dass zwei deiner Firmen GLEICH heissen.
|
|
53
|
+
Auch diese Absage nennt dir fertige Befehle.
|
|
54
|
+
`,
|
|
55
|
+
answerMissingFile: (pfad) => `Die Antwort enthaelt keine Datei „${pfad}". Bitte melden.`,
|
|
56
|
+
answerUnsafePath: (pfad) => `Die Antwort enthaelt einen unsicheren Pfad: „${pfad}". Bitte melden.`,
|
|
57
|
+
backupHeader: (ordner) => `Ich sichere deine lokale Fassung, bevor ich sie ersetze -- Ordner: ${ordner}`,
|
|
58
|
+
backupAlreadyToday: (pfad, bisherige, neue) => ` „${pfad}": Von heute gibt es schon eine Sicherung (${bisherige}) -- die bleibt ` +
|
|
59
|
+
`unveraendert stehen. Deine neuere Fassung sichere ich zusaetzlich als ${neue}, ` +
|
|
60
|
+
"bevor ich die Datei im Ordner ersetze.",
|
|
61
|
+
backupPlain: (pfad, name) => ` „${pfad}" -> ${name}`,
|
|
62
|
+
updated: (liste) => `✓ aktualisiert: ${liste}`,
|
|
63
|
+
fromOurTemplate: (liste) => ` Davon aus unserer verbesserten Vorlage: ${liste}`,
|
|
64
|
+
templateUnchanged: " Diese Dateien waren seit dem letzten Abgleich mit der Firma unverändert — es ist nichts\n" +
|
|
65
|
+
" von dir verloren gegangen. Hättest du seitdem etwas geändert, hätte ich vorher gesichert.",
|
|
66
|
+
leftAlone: (liste) => `Ich fasse nichts an -- du hast lokal geaendert: ${liste}`,
|
|
67
|
+
companyEmpty: "Deine Firma hat noch nichts hinterlegt. Bis dahin bleiben die Vordrucke stehen.",
|
|
68
|
+
upToDate: "Dein Firmenkontext ist aktuell.",
|
|
69
|
+
// ── kontext-rat.ts (der Rat nach "lokal geaendert", je Art und Rolle) ──
|
|
70
|
+
toPerson: (name) => ` an ${name}`,
|
|
71
|
+
toCompanyAdmin: " an euren Firmen-Admin",
|
|
72
|
+
// `hoch`/`runter` sind die Befehlswoerter in der Sprache des Satzes (befehlIn), ohne `kimal3` davor.
|
|
73
|
+
adviceUploadAdmin: (hoch) => ` Deine Fassung ist die neuere? Dann schick sie hoch: kimal3 ${hoch}`,
|
|
74
|
+
adviceUploadMember: (wer, hoch) => " Deine Fassung bleibt stehen — hochschicken darf nur der Firmen-Admin.\n" +
|
|
75
|
+
` Gib deine Ergänzung${wer} weiter; von dort geht sie in der App unter\n` +
|
|
76
|
+
` Firma → Kontext oder mit \`kimal3 ${hoch}\` an alle.`,
|
|
77
|
+
adviceFileAdmin: (kontext, kurzprofil, hoch, runter) => ` Die \`CLAUDE.md\` kann \`kimal3 ${hoch}\` nicht mitnehmen — der Befehl schickt nur\n` +
|
|
78
|
+
` die fünf Dateien aus \`${kontext}/\`. Die drei Sätze in dieser Datei kommen aus\n` +
|
|
79
|
+
` \`${kurzprofil}\`, der Firmenname aus der App: Ändere sie dort, dann holt\n` +
|
|
80
|
+
` der nächste \`kimal3 ${runter}\` sie hierher.\n` +
|
|
81
|
+
" Alles Übrige darin ist unsere Vorlage — dafür gibt es keinen Weg zurück.",
|
|
82
|
+
adviceFileMember: (kontext, kurzprofil, wer, hoch) => ` Die \`CLAUDE.md\` kann \`kimal3 ${hoch}\` nicht mitnehmen — der Befehl schickt nur\n` +
|
|
83
|
+
` die fünf Dateien aus \`${kontext}/\`. Deine Änderung bleibt stehen.\n` +
|
|
84
|
+
` Die drei Sätze in dieser Datei kommen aus \`${kurzprofil}\`, und die ändert\n` +
|
|
85
|
+
` nur der Firmen-Admin. Gib deinen Wunsch${wer} weiter; von dort geht\n` +
|
|
86
|
+
` \`${kurzprofil}\` in der App unter Firma → Kontext oder mit\n` +
|
|
87
|
+
` \`kimal3 ${hoch}\` an alle.\n` +
|
|
88
|
+
" Alles Übrige darin ist unsere Vorlage — dafür gibt es keinen Weg zurück.",
|
|
89
|
+
};
|
|
90
|
+
const en = {
|
|
91
|
+
bothFolders1: (pfad) => `In “${pfad}” there are both \`kontext/\` and \`context/\` side by side — I can't tell`,
|
|
92
|
+
bothFolders2: "which one counts, and I won't pick one silently. I'm not writing anything.",
|
|
93
|
+
bothFolders3: " Rename the wrong one (to `context-old/`, say) and try again.",
|
|
94
|
+
noWorkplace1: "There's no AI Workplace here — I look upwards from here for a folder",
|
|
95
|
+
noWorkplace2: "with a `CLAUDE.md` and a `context/` (or `kontext/`) holding your company context.",
|
|
96
|
+
noWorkplace3: " Change into your AI Workplace folder and try again there.",
|
|
97
|
+
languageChanged1: (firma, ordner, kontextOrdner) => `Your company's language is now ${SPRACHNAME.en[firma]} — but this folder is ${SPRACHNAME.en[ordner]} (\`${kontextOrdner}/\`).`,
|
|
98
|
+
languageChanged2: "I'm not writing anything here, or two languages would end up side by side.",
|
|
99
|
+
languageChanged3: " Get a fresh AI Workplace in a NEW folder:",
|
|
100
|
+
languageChangedCommand: (befehl, schalter, firmenWert) => ` kimal3 ${befehl}${firmenWert === null ? "" : ` --${schalter} ${firmenWert}`}`,
|
|
101
|
+
languageChanged4: " Your projects in the workbench stay where they are — take them with you if you need them.",
|
|
102
|
+
fileNotLike: (pfad, titel, folge) => `“${pfad}” doesn't look like “${titel}”. ${folge}`,
|
|
103
|
+
noQuestionFound: (ankerPraefix) => ` I can't find any of this file's questions in it (lines like \`<!-- k3:${ankerPraefix}… -->\`).`,
|
|
104
|
+
fetchItBack: " Fetch it again with `kimal3 context download` and enter your answers there.",
|
|
105
|
+
dateiTitel: {
|
|
106
|
+
drei_saetze: "Your company in three sentences",
|
|
107
|
+
firma_md: "The company",
|
|
108
|
+
marke_md: "The brand",
|
|
109
|
+
systeme_md: "The systems",
|
|
110
|
+
sicherheit_md: "Security",
|
|
111
|
+
},
|
|
112
|
+
notAFile: (pfad) => `“${pfad}” exists but isn't a file — I won't touch it. Please check.`,
|
|
113
|
+
cannotReach: (pfad, grund) => `I can't access “${pfad}”: ${grund}. ` + "That's down to this computer, not the server — check the permissions.",
|
|
114
|
+
trackingFailed: (grund) => `The tracking file couldn't be written: ${grund}.\n` +
|
|
115
|
+
"That's down to this computer, not the server — check the disk space and permissions.",
|
|
116
|
+
backupFailed: (pfad, grund) => `Backing up “${pfad}” failed: ${grund}.\n` +
|
|
117
|
+
"That's down to this computer, not the server — check the disk space and permissions.",
|
|
118
|
+
notManaged: (pfad) => `“${pfad}” isn't a managed file — not writing it. Please report this.`,
|
|
119
|
+
notSafePath: (pfad) => `“${pfad}” isn't a safe path — not writing it. Please report this.`,
|
|
120
|
+
writeFailed: (pfad, grund) => `Writing “${pfad}” failed: ${grund}.\n` +
|
|
121
|
+
"That's down to this computer, not the server — check the disk space and permissions.",
|
|
122
|
+
downloadHelp: `
|
|
123
|
+
kimal3 context download [--company "Name" | --company-id "…"]
|
|
124
|
+
|
|
125
|
+
Fetches your company context (CLAUDE.md + the five files in context/, or in
|
|
126
|
+
kontext/ if your company works in German) and puts it in your AI Workplace.
|
|
127
|
+
Anything you've changed yourself is left alone — the command tells you how
|
|
128
|
+
to get your changes in.
|
|
129
|
+
|
|
130
|
+
--company "Name" Needed if you belong to several companies.
|
|
131
|
+
The error message lists the names as ready-to-run commands.
|
|
132
|
+
|
|
133
|
+
--company-id "…" For when two of your companies have the SAME name.
|
|
134
|
+
This error message also lists ready-to-run commands.
|
|
135
|
+
|
|
136
|
+
The German option names (--firma, --firma-id) work too.
|
|
137
|
+
`,
|
|
138
|
+
answerMissingFile: (pfad) => `The reply doesn't contain a file “${pfad}”. Please report this.`,
|
|
139
|
+
answerUnsafePath: (pfad) => `The reply contains an unsafe path: “${pfad}”. Please report this.`,
|
|
140
|
+
backupHeader: (ordner) => `I'm backing up your local version before replacing it — folder: ${ordner}`,
|
|
141
|
+
backupAlreadyToday: (pfad, bisherige, neue) => ` “${pfad}”: today's backup (${bisherige}) stays untouched. ` +
|
|
142
|
+
`Your newer version is saved alongside it as ${neue} ` +
|
|
143
|
+
"before the file is replaced.",
|
|
144
|
+
backupPlain: (pfad, name) => ` “${pfad}” → ${name}`,
|
|
145
|
+
updated: (liste) => `✓ updated: ${liste}`,
|
|
146
|
+
fromOurTemplate: (liste) => ` Of those, these come from our improved template: ${liste}`,
|
|
147
|
+
templateUnchanged: " These files hadn't changed since your last sync with the company, so nothing of yours is lost.\n" +
|
|
148
|
+
" Had you changed anything since, I would have backed it up first.",
|
|
149
|
+
leftAlone: (liste) => `I'm not touching these — you've changed them locally: ${liste}`,
|
|
150
|
+
companyEmpty: "Your company hasn't entered anything yet. Until then the blank templates stay in place.",
|
|
151
|
+
upToDate: "Your company context is up to date.",
|
|
152
|
+
toPerson: (name) => ` to ${name}`,
|
|
153
|
+
toCompanyAdmin: " to your company admin",
|
|
154
|
+
adviceUploadAdmin: (hoch) => ` Is your version the newer one? Then upload it: kimal3 ${hoch}`,
|
|
155
|
+
adviceUploadMember: (wer, hoch) => " Your version stays as it is — only the company admin can upload.\n" +
|
|
156
|
+
` Pass your addition on${wer}; from there it reaches everyone in the app under\n` +
|
|
157
|
+
` Company → Context or with \`kimal3 ${hoch}\`.`,
|
|
158
|
+
adviceFileAdmin: (kontext, kurzprofil, hoch, runter) => ` \`kimal3 ${hoch}\` can't upload the \`CLAUDE.md\` — it only sends\n` +
|
|
159
|
+
` the five files in \`${kontext}/\`. The three sentences in this file come from\n` +
|
|
160
|
+
` \`${kurzprofil}\`, the company name from the app: change them there, and the\n` +
|
|
161
|
+
` next \`kimal3 ${runter}\` brings them back here.\n` +
|
|
162
|
+
" Everything else in it is our template — there is no way to send that back.",
|
|
163
|
+
adviceFileMember: (kontext, kurzprofil, wer, hoch) => ` \`kimal3 ${hoch}\` can't upload the \`CLAUDE.md\` — it only sends\n` +
|
|
164
|
+
` the five files in \`${kontext}/\`. Your change stays as it is.\n` +
|
|
165
|
+
` The three sentences in this file come from \`${kurzprofil}\`, and only the\n` +
|
|
166
|
+
` company admin changes that. Pass your request on${wer}; from there\n` +
|
|
167
|
+
` \`${kurzprofil}\` goes to everyone in the app under Company → Context or with\n` +
|
|
168
|
+
` \`kimal3 ${hoch}\`.\n` +
|
|
169
|
+
" Everything else in it is our template — there is no way to send that back.",
|
|
170
|
+
};
|
|
171
|
+
export const KONTEXT_TEXTE = { de, en };
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
const de = {
|
|
2
|
+
// ── projekt-zeilen.ts ──
|
|
3
|
+
notLiveYet: "noch nicht live",
|
|
4
|
+
liveSince: (datum) => `live seit ${datum}`,
|
|
5
|
+
plannedFrom: (datum) => `geplant ab ${datum}`,
|
|
6
|
+
perWeek: " Std./Woche",
|
|
7
|
+
resultPerMonth: " Ergebnis/Monat",
|
|
8
|
+
revenuePerMonth: " Umsatz/Monat",
|
|
9
|
+
noFigures: "keine Zahlen eingetragen",
|
|
10
|
+
// ── projekt-liste.ts ──
|
|
11
|
+
noProjects: "Du hast noch keine Projekte eingetragen.",
|
|
12
|
+
addHint: (befehl, schalter) => ` Eintragen: kimal3 ${befehl} --${schalter} "…"`,
|
|
13
|
+
projectsHeader: (anzahl, max) => `\n Deine Projekte (${anzahl} von ${max}):`,
|
|
14
|
+
projectsHeaderBlank: (anzahl, max) => `\n Deine Projekte (${anzahl} von ${max}):\n`,
|
|
15
|
+
oldAppNote1: "\n (Diese Version der App liefert noch keine Zahlen zu den",
|
|
16
|
+
oldAppNote2: " Projekten. Du hast nichts falsch gemacht — sie kommen mit",
|
|
17
|
+
oldAppNote3: " dem nächsten Update der App von selbst dazu.)",
|
|
18
|
+
newAppNote1: "\n (Die Zahlen dazu kann diese Fassung von kimal3 nicht lesen —",
|
|
19
|
+
newAppNote2: " die App ist neuer als das Werkzeug. Du hast nichts falsch",
|
|
20
|
+
newAppNote3: " gemacht; `npm install -g kimal3` holt sie.)",
|
|
21
|
+
viewOnline: (url) => `\n Ansehen: ${url}/profil\n`,
|
|
22
|
+
toolTooOld1: "Diese Fassung von kimal3 versteht die Antwort der App nicht.",
|
|
23
|
+
toolTooOld2: "Du hast nichts falsch gemacht — das Werkzeug ist älter als die App.",
|
|
24
|
+
toolTooOld3: " npm install -g kimal3",
|
|
25
|
+
createProfile: (url) => ` Leg es hier an: ${url}/profil`,
|
|
26
|
+
// ── projekt-neu.ts ──
|
|
27
|
+
missingTitle: "Es fehlt --titel.\n",
|
|
28
|
+
projectAdded: (titel, anzahl) => `✓ „${titel}" ins Erfolgsprofil eingetragen (Projekt ${anzahl} von 12).`,
|
|
29
|
+
viewOnlineShort: (url) => ` Ansehen: ${url}/profil`,
|
|
30
|
+
newHelp: `
|
|
31
|
+
kimal3 projekt neu --titel "Angebots-Generator" [Optionen]
|
|
32
|
+
|
|
33
|
+
--titel Pflicht. 2–80 Zeichen.
|
|
34
|
+
--beschreibung Bis 300 Zeichen.
|
|
35
|
+
--symbol Eines der bekannten Symbole, z. B. bot, mail, workflow.
|
|
36
|
+
--stunden Zeitersparnis pro Woche, 0–168.
|
|
37
|
+
--ergebnis Ergebnis pro Monat in Euro, z. B. 1200 oder 1200,50.
|
|
38
|
+
--umsatz Umsatz pro Monat in Euro.
|
|
39
|
+
--wirkung Kurz, bis 20 Zeichen, z. B. "-70%".
|
|
40
|
+
--wirkung-label Wozu, bis 40 Zeichen, z. B. "Angebotszeit".
|
|
41
|
+
--link Vollstaendige Adresse mit http:// oder https://.
|
|
42
|
+
--live-seit Datum als JJJJ-MM-TT.
|
|
43
|
+
--firma "Name" Wenn du zu mehreren Firmen gehoerst: welche das Projekt bekommt.
|
|
44
|
+
--firma-id "…" Falls zwei deiner Firmen gleich heissen.
|
|
45
|
+
--ohne-firma Das Projekt gehoert keiner Firma (steht nur auf deinem Profil).
|
|
46
|
+
`,
|
|
47
|
+
// ── projekt-neu-firma.ts ──
|
|
48
|
+
companyConflict: "Entweder --ohne-firma ODER --firma/--firma-id -- nenn nur eines von beiden.",
|
|
49
|
+
// ── firma-daten.ts ──
|
|
50
|
+
dataHelp: `
|
|
51
|
+
kimal3 firma daten [--firma "Name" | --firma-id "…"]
|
|
52
|
+
|
|
53
|
+
Holt die Daten deiner Firma als JSON: Kennzahlen, Menschen, Projekte.
|
|
54
|
+
Die Auswertung macht Claude daraus selbst.
|
|
55
|
+
|
|
56
|
+
--firma "Name" Noetig, wenn du zu mehreren Firmen gehoerst.
|
|
57
|
+
Die Absage nennt dir die Namen als fertige Befehle.
|
|
58
|
+
|
|
59
|
+
--firma-id "…" Fuer den Fall, dass zwei deiner Firmen GLEICH heissen.
|
|
60
|
+
Auch diese Absage nennt dir fertige Befehle -- du musst
|
|
61
|
+
nichts umbenennen und nichts nachschlagen.
|
|
62
|
+
`,
|
|
63
|
+
};
|
|
64
|
+
const en = {
|
|
65
|
+
notLiveYet: "not live yet",
|
|
66
|
+
liveSince: (datum) => `live since ${datum}`,
|
|
67
|
+
plannedFrom: (datum) => `planned for ${datum}`,
|
|
68
|
+
perWeek: " hrs/week",
|
|
69
|
+
resultPerMonth: " net result/month",
|
|
70
|
+
revenuePerMonth: " revenue/month",
|
|
71
|
+
noFigures: "no figures entered",
|
|
72
|
+
noProjects: "You haven't added any projects yet.",
|
|
73
|
+
addHint: (befehl, schalter) => ` Add one: kimal3 ${befehl} --${schalter} "…"`,
|
|
74
|
+
projectsHeader: (anzahl, max) => `\n Your projects (${anzahl} of ${max}):`,
|
|
75
|
+
projectsHeaderBlank: (anzahl, max) => `\n Your projects (${anzahl} of ${max}):\n`,
|
|
76
|
+
oldAppNote1: "\n (This version of the app doesn't provide figures for your",
|
|
77
|
+
oldAppNote2: " projects yet. You haven't done anything wrong — they will",
|
|
78
|
+
oldAppNote3: " appear automatically with the next app update.)",
|
|
79
|
+
newAppNote1: "\n (This version of kimal3 can't read the figures —",
|
|
80
|
+
newAppNote2: " the app is newer than the tool. You haven't done anything",
|
|
81
|
+
newAppNote3: " wrong; `npm install -g kimal3` will fix that.)",
|
|
82
|
+
viewOnline: (url) => `\n View it: ${url}/profil\n`,
|
|
83
|
+
toolTooOld1: "This version of kimal3 doesn't understand the app's reply.",
|
|
84
|
+
toolTooOld2: "You haven't done anything wrong — the tool is older than the app.",
|
|
85
|
+
toolTooOld3: " npm install -g kimal3",
|
|
86
|
+
createProfile: (url) => ` Create it here: ${url}/profil`,
|
|
87
|
+
missingTitle: "Missing --title.\n",
|
|
88
|
+
projectAdded: (titel, anzahl) => `✓ “${titel}” added to your success profile (project ${anzahl} of 12).`,
|
|
89
|
+
viewOnlineShort: (url) => ` View it: ${url}/profil`,
|
|
90
|
+
newHelp: `
|
|
91
|
+
kimal3 project new --title "Quote generator" [options]
|
|
92
|
+
|
|
93
|
+
--title Required. 2–80 characters.
|
|
94
|
+
--description Up to 300 characters.
|
|
95
|
+
--icon One of the known icons, e.g. bot, mail, workflow.
|
|
96
|
+
--hours Time saved per week, 0–168.
|
|
97
|
+
--result Net result per month in euros, e.g. 1200 or 1200.50.
|
|
98
|
+
--revenue Revenue per month in euros.
|
|
99
|
+
--impact Short, up to 20 characters, e.g. "-70%".
|
|
100
|
+
--impact-label What it's for, up to 40 characters, e.g. "Quote time".
|
|
101
|
+
--link Full address starting with http:// or https://.
|
|
102
|
+
--live-since Date as YYYY-MM-DD.
|
|
103
|
+
--company "Name" If you belong to several companies: which one gets the project.
|
|
104
|
+
--company-id "…" If two of your companies have the same name.
|
|
105
|
+
--no-company The project belongs to no company (it only appears on your profile).
|
|
106
|
+
|
|
107
|
+
The German option names (--titel, --stunden …) work too.
|
|
108
|
+
`,
|
|
109
|
+
companyConflict: "Use either --no-company OR --company/--company-id — not both.",
|
|
110
|
+
dataHelp: `
|
|
111
|
+
kimal3 company data [--company "Name" | --company-id "…"]
|
|
112
|
+
|
|
113
|
+
Fetches your company's data as JSON: key figures, people, projects.
|
|
114
|
+
Claude does the analysis from it.
|
|
115
|
+
|
|
116
|
+
--company "Name" Needed if you belong to several companies.
|
|
117
|
+
The error message lists the names as ready-to-run commands.
|
|
118
|
+
|
|
119
|
+
--company-id "…" For when two of your companies have the SAME name.
|
|
120
|
+
This error message also lists ready-to-run commands — you
|
|
121
|
+
don't have to rename or look anything up.
|
|
122
|
+
|
|
123
|
+
The German option names (--firma, --firma-id) work too.
|
|
124
|
+
`,
|
|
125
|
+
};
|
|
126
|
+
export const PROJEKTE_TEXTE = { de, en };
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
const de = {
|
|
2
|
+
// ── skillInstall ──
|
|
3
|
+
skillMissing: "Das Skill liegt nicht im Paket. Bitte kimal3 neu installieren:",
|
|
4
|
+
skillWriteFailed: (fehler) => `Das Skill liess sich nicht schreiben: ${fehler}`,
|
|
5
|
+
skillUpdated: "✓ Skill aktualisiert.",
|
|
6
|
+
skillCreated: "✓ Skill angelegt.",
|
|
7
|
+
skillOnlyInstalled: " Das Skill ist installiert, die Slash-Befehle sind es NICHT.",
|
|
8
|
+
commandsInstalled: (anzahl, liste) => `✓ ${anzahl} Slash-Befehle: ${liste}`,
|
|
9
|
+
skipped: (anzahl, liste) => `⚠ ${anzahl} übersprungen: ${liste}`,
|
|
10
|
+
skipped1: " Dort liegt bereits eine Datei, die nicht von kimal3 stammt —",
|
|
11
|
+
skipped2: " sie bleibt unangetastet. Wer die kimal3-Fassung will, benennt",
|
|
12
|
+
skipped3: " die eigene um und führt den Befehl erneut aus.",
|
|
13
|
+
unreadable: (anzahl, liste) => `⚠ ${anzahl} nicht lesbar: ${liste}`,
|
|
14
|
+
unreadable1: " Diese Dateien liessen sich nicht öffnen — vielleicht sind sie",
|
|
15
|
+
unreadable2: " gerade in Benutzung. Sie wurden nicht angefasst; ein zweiter",
|
|
16
|
+
unreadable3: " Versuch gleich kann klappen.",
|
|
17
|
+
noCommandInstalled1: " Es wurde KEIN Slash-Befehl installiert.",
|
|
18
|
+
noCommandInstalled2: " Das Skill selbst ist installiert und funktioniert.",
|
|
19
|
+
notAllWritten1: " Nicht alle Slash-Befehle konnten geschrieben werden.",
|
|
20
|
+
notAllWritten2: " Die oben genannten stehen; ein zweiter Lauf holt den Rest.",
|
|
21
|
+
runIncomplete: " Der Lauf ist damit unvollstaendig -- ein zweiter Versuch holt den Rest.",
|
|
22
|
+
// ── die taegliche Pruefung (Wache) in Claudes Einstellungen ──
|
|
23
|
+
watchSetUp: " Die taegliche kimal3-Pruefung ist eingetragen. Sie meldet sich nur, wenn etwas ansteht.",
|
|
24
|
+
watchAlready: " Die taegliche kimal3-Pruefung steht schon in deinen Einstellungen.",
|
|
25
|
+
watchFailed: " Die taegliche kimal3-Pruefung konnte NICHT eingetragen werden.",
|
|
26
|
+
settingsUnreadable: (datei) => ` Deine Claude-Einstellungen sind nicht lesbar: ${datei}`,
|
|
27
|
+
settingsNotJson: " Die Datei ist kein gueltiges JSON. Sie wurde NICHT angefasst.",
|
|
28
|
+
settingsStrangeShape: " Die Datei hat eine Form, die wir nicht verstehen. Sie wurde NICHT angefasst.",
|
|
29
|
+
settingsRetryNoHelp: " Wiederholen hilft nicht -- erst die Datei in Ordnung bringen.",
|
|
30
|
+
settingsFailedLine: (datei, ursache) => ` ${datei}: ${ursache}`,
|
|
31
|
+
settingsUnchanged: " Deine bisherigen Einstellungen sind unveraendert.",
|
|
32
|
+
// Die Ursachen der vier Schritte aus einstellungen-schreiben.ts; `detail` ist die Meldung des Systems.
|
|
33
|
+
stepRead: (detail) => `nicht lesbar (${detail})`,
|
|
34
|
+
stepBackup: (detail) => `keine Sicherungskopie moeglich (${detail})`,
|
|
35
|
+
stepWrite: (detail) => `nicht schreibbar (${detail})`,
|
|
36
|
+
stepCheck: (detail) => "Kontrolle nach dem Schreiben fehlgeschlagen (" + (detail ?? "unser Eintrag steht nicht in der zurueckgelesenen Datei") + ")",
|
|
37
|
+
// ── der Schluss ──
|
|
38
|
+
tipK3: " Tipp /k3 in Claude Code. (Taucht nichts auf, einmal neu starten.)",
|
|
39
|
+
tipOther: (name) => ` Tipp /${name} in Claude Code. (Taucht nichts auf, einmal neu starten.)`,
|
|
40
|
+
// ── slashBefehleInstallieren ──
|
|
41
|
+
commandsMissing: "Die Slash-Befehle liegen nicht im Paket. Bitte kimal3 neu installieren.",
|
|
42
|
+
commandsNone: "Im Paket liegt kein einziger Slash-Befehl. Bitte kimal3 neu installieren.",
|
|
43
|
+
commandsWriteFailed: (fehler) => `Die Slash-Befehle liessen sich nicht alle schreiben: ${fehler}`,
|
|
44
|
+
// ── raeumeVeralteteAuf ──
|
|
45
|
+
outdatedRemoved: (name) => ` (veralteten Befehl /${name} entfernt)`,
|
|
46
|
+
};
|
|
47
|
+
const en = {
|
|
48
|
+
skillMissing: "The skill isn't in the package. Please reinstall kimal3:",
|
|
49
|
+
skillWriteFailed: (fehler) => `The skill couldn't be written: ${fehler}`,
|
|
50
|
+
skillUpdated: "✓ Skill updated.",
|
|
51
|
+
skillCreated: "✓ Skill created.",
|
|
52
|
+
skillOnlyInstalled: " The skill is installed, but the slash commands are NOT.",
|
|
53
|
+
commandsInstalled: (anzahl, liste) => `✓ ${anzahl} slash ${anzahl === 1 ? "command" : "commands"}: ${liste}`,
|
|
54
|
+
skipped: (anzahl, liste) => `⚠ ${anzahl} skipped: ${liste}`,
|
|
55
|
+
skipped1: " There's already a file there that didn't come from kimal3 — it is left",
|
|
56
|
+
skipped2: " untouched. If you want the kimal3 version, rename your own file",
|
|
57
|
+
skipped3: " and run the command again.",
|
|
58
|
+
unreadable: (anzahl, liste) => `⚠ ${anzahl} unreadable: ${liste}`,
|
|
59
|
+
unreadable1: " These files couldn't be opened — perhaps they're",
|
|
60
|
+
unreadable2: " in use at the moment. They were not touched; trying again",
|
|
61
|
+
unreadable3: " in a moment may work.",
|
|
62
|
+
noCommandInstalled1: " NO slash command was installed.",
|
|
63
|
+
noCommandInstalled2: " The skill itself is installed and works.",
|
|
64
|
+
notAllWritten1: " Not all slash commands could be written.",
|
|
65
|
+
notAllWritten2: " The ones listed above are in place; a second run fetches the rest.",
|
|
66
|
+
runIncomplete: " The run is therefore incomplete — a second attempt fetches the rest.",
|
|
67
|
+
watchSetUp: " The daily kimal3 check is set up. It only speaks up when something needs your attention.",
|
|
68
|
+
watchAlready: " The daily kimal3 check is already in your settings.",
|
|
69
|
+
watchFailed: " The daily kimal3 check could NOT be set up.",
|
|
70
|
+
settingsUnreadable: (datei) => ` Your Claude settings can't be read: ${datei}`,
|
|
71
|
+
settingsNotJson: " The file isn't valid JSON. It was NOT touched.",
|
|
72
|
+
settingsStrangeShape: " The file has an unexpected structure. It was NOT touched.",
|
|
73
|
+
settingsRetryNoHelp: " Trying again won't help — fix the file first.",
|
|
74
|
+
settingsFailedLine: (datei, ursache) => ` ${datei}: ${ursache}`,
|
|
75
|
+
settingsUnchanged: " Your existing settings are unchanged.",
|
|
76
|
+
stepRead: (detail) => `can't be read (${detail})`,
|
|
77
|
+
stepBackup: (detail) => `couldn't make a backup copy (${detail})`,
|
|
78
|
+
stepWrite: (detail) => `can't be written (${detail})`,
|
|
79
|
+
stepCheck: (detail) => "the check after writing failed (" + (detail ?? "our entry wasn't found when the file was read back") + ")",
|
|
80
|
+
tipK3: " Tip: type /k3 in Claude Code. (If nothing shows up, restart it once.)",
|
|
81
|
+
tipOther: (name) => ` Tip: type /${name} in Claude Code. (If nothing shows up, restart it once.)`,
|
|
82
|
+
commandsMissing: "The slash commands aren't in the package. Please reinstall kimal3.",
|
|
83
|
+
commandsNone: "There isn't a single slash command in the package. Please reinstall kimal3.",
|
|
84
|
+
commandsWriteFailed: (fehler) => `Not all slash commands could be written: ${fehler}`,
|
|
85
|
+
outdatedRemoved: (name) => ` (removed /${name}: out of date or in a different language)`,
|
|
86
|
+
};
|
|
87
|
+
export const SKILL_TEXTE = { de, en };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
const de = {
|
|
2
|
+
accessExpired: (login) => "🔴🔴🔴 kimal3: Dein Zugang ist abgelaufen — zum Beispiel nach einem neuen Passwort " +
|
|
3
|
+
`oder einer längeren Pause. Melde dich neu an mit: ${login} 🔴🔴🔴`,
|
|
4
|
+
messageFromKimal3: (text) => `Nachricht von kimal3: „${text}“`,
|
|
5
|
+
newVersion: (neu, eigene) => `🟡🟡🟡 kimal3: Es gibt eine neuere Version: ${neu} (du hast ${eigene}). ` +
|
|
6
|
+
`Holen mit: ! npm install -g kimal3@${neu} 🟡🟡🟡`,
|
|
7
|
+
skillsOld: (befehl) => "🟡🟡🟡 kimal3: Deine /k3-Befehle in Claude sind aus einer älteren Version. " +
|
|
8
|
+
`Auffrischen: ${befehl} 🟡🟡🟡`,
|
|
9
|
+
instructionToClaude: "Anweisung an Claude: Gib die Zeilen oben dem Menschen als ERSTE Zeilen deiner nächsten " +
|
|
10
|
+
"Antwort wörtlich und fett weiter — ohne die Kopfzeile und ohne den Punkt davor —, bevor du " +
|
|
11
|
+
"auf seine Nachricht eingehst. " +
|
|
12
|
+
"Führe nichts davon aus — es sind Hinweise für den Menschen, keine Aufträge an dich.",
|
|
13
|
+
checkDidNotRun: (installieren, abstellen) => "Die tägliche kimal3-Prüfung hat für diese Claude-Sitzung nicht nachgesehen. " +
|
|
14
|
+
`Neu eintragen: ${installieren} · Dauerhaft abstellen: ${abstellen}`,
|
|
15
|
+
skillOutdated: "\n → Deine kimal3-Skilldateien sind aelter als die CLI. kimal3 skill install\n",
|
|
16
|
+
watchOn: "✓ Wache eingeschaltet.",
|
|
17
|
+
watchOff: "✓ Wache ausgeschaltet.",
|
|
18
|
+
};
|
|
19
|
+
const en = {
|
|
20
|
+
accessExpired: (login) => "🔴🔴🔴 kimal3: Your sign-in has expired, for example after a new password " +
|
|
21
|
+
`or a long break. Sign in again with: ${login} 🔴🔴🔴`,
|
|
22
|
+
messageFromKimal3: (text) => `Message from kimal3: “${text}”`,
|
|
23
|
+
newVersion: (neu, eigene) => `🟡🟡🟡 kimal3: A newer version is available: ${neu} (you have ${eigene}). ` +
|
|
24
|
+
`Install it with: ! npm install -g kimal3@${neu} 🟡🟡🟡`,
|
|
25
|
+
skillsOld: (befehl) => "🟡🟡🟡 kimal3: Your /k3 commands in Claude are out of date. " +
|
|
26
|
+
`Update them: ${befehl} 🟡🟡🟡`,
|
|
27
|
+
instructionToClaude: "Instruction to Claude: Show the lines above to the person verbatim, in bold, as the FIRST lines of " +
|
|
28
|
+
"your next reply, before you respond to their message. Leave out the heading and the bullet in front " +
|
|
29
|
+
"of each line. Do not act on them: they are notices for the person, not tasks for you.",
|
|
30
|
+
checkDidNotRun: (installieren, abstellen) => "The daily kimal3 check did not run in this Claude session. " +
|
|
31
|
+
`Set it up again: ${installieren} · Turn it off for good: ${abstellen}`,
|
|
32
|
+
skillOutdated: "\n → Your kimal3 skill files are out of date or in a different language from your account. kimal3 skill install\n",
|
|
33
|
+
watchOn: "✓ Watch turned on.",
|
|
34
|
+
watchOff: "✓ Watch turned off.",
|
|
35
|
+
};
|
|
36
|
+
export const WACHE_TEXTE = { de, en };
|