@thorrangonak/kanka 0.1.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 thorrangonak
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,110 @@
1
+ <p align="center">
2
+ <strong>kanka</strong>
3
+ </p>
4
+ <p align="center">
5
+ <em>Türkçe konuşan terminal kodlama asistanı.</em><br>
6
+ <strong>"Kanka, şunu yapsana."</strong>
7
+ </p>
8
+ <p align="center">
9
+ <a href="https://www.npmjs.com/package/@thorrangonak/kanka"><img alt="npm" src="https://img.shields.io/npm/v/@thorrangonak/kanka?style=flat-square"></a>
10
+ <a href="LICENSE"><img alt="license" src="https://img.shields.io/badge/license-MIT-blue?style=flat-square"></a>
11
+ <img alt="node" src="https://img.shields.io/badge/node-%3E%3D20.6-43853d?style=flat-square">
12
+ </p>
13
+
14
+ ---
15
+
16
+ ## Nedir?
17
+
18
+ **kanka**, terminalde Türkçe konuşarak kullanabileceğin bir AI kodlama asistanıdır. Claude, GPT, Gemini, GLM gibi LLM'leri arkanda kullanır; sen `kanka` yazarsın, o işi yapar.
19
+
20
+ ```bash
21
+ $ kanka
22
+ > Bana NextJS + Tailwind ile minimal bir landing page yap
23
+ ```
24
+
25
+ ## Özellikler
26
+
27
+ - 🇹🇷 **Türkçe-first** — sistem prompt'u, slash komutları ve kişilik tamamen Türkçe.
28
+ - 🛠️ **4 araç** — `read`, `write`, `edit`, `bash`. Karmaşık olmadan iş görür.
29
+ - 🧩 **Genişletilebilir** — skill, extension, prompt template, tema ekleyebilirsin.
30
+ - 🔒 **MIT lisans** — açık kaynak, fork'la istediğini yap.
31
+ - ⚡ **Hızlı kurulum** — tek komutla.
32
+
33
+ ## Kurulum
34
+
35
+ ```bash
36
+ npm install -g @thorrangonak/kanka
37
+ ```
38
+
39
+ ## Hızlı başlangıç
40
+
41
+ API anahtarınla giriş yap:
42
+
43
+ ```bash
44
+ export ANTHROPIC_API_KEY=sk-ant-...
45
+ kanka
46
+ ```
47
+
48
+ Veya mevcut Claude Pro/Max aboneliğinle:
49
+
50
+ ```bash
51
+ kanka
52
+ /login
53
+ ```
54
+
55
+ Sonra konuş kanka'yla:
56
+
57
+ ```
58
+ > sana güveniyorum kanka, şu projeyi ayağa kaldır
59
+ > hata var şurada, bul ve düzelt
60
+ > testlerimi yaz
61
+ ```
62
+
63
+ ## Türkçe komutlar
64
+
65
+ Oturum içinde slash komutları:
66
+
67
+ | Türkçe | Pi alias | Açıklama |
68
+ |--------|----------|----------|
69
+ | `/yardım` | `/help` | Komut listesi |
70
+ | `/çık` | `/exit` | Oturumdan çık |
71
+ | `/temizle` | `/clear` | Ekranı temizle |
72
+ | `/durum` | `/status` | Oturum durumu |
73
+ | `/oturum` | `/sessions` | Oturumları listele |
74
+ | `/yeni` | `/new` | Yeni oturum başlat |
75
+ | `/selam` | — | kanka'dan bir selam |
76
+
77
+ Pi'nin orijinal İngilizce komutları da çalışır.
78
+
79
+ ## CLI bayrakları
80
+
81
+ ```bash
82
+ kanka --yardım # Türkçe yardım
83
+ kanka --versiyon # Versiyon
84
+ kanka "görev" # Doğrudan görev ver
85
+ echo "iş" | kanka # Stdin'den mesaj
86
+ ```
87
+
88
+ ## Felsefe
89
+
90
+ kanka, **pi-coding-agent** çekirdeğini kullanır. Pi'nin "minimal, hackable, kendi workflow'una uyarla" felsefesini paylaşır — sadece dili ve markası Türk.
91
+
92
+ - Karmaşık olmasın, anlaşılır olsun.
93
+ - "Sub-agent", "plan mode" gibi kapalı kutu özellikler **yok**. İstersen extension olarak yaz.
94
+ - Sistem prompt'u, komutlar, temalar — hepsi düzenlenebilir.
95
+
96
+ ## Geliştirme
97
+
98
+ ```bash
99
+ git clone https://github.com/thorrangonak/kanka.git
100
+ cd kanka
101
+ npm install
102
+ npm run build
103
+ node dist/cli.js
104
+ ```
105
+
106
+ ## Lisans
107
+
108
+ [MIT](LICENSE) © thorrangonak
109
+
110
+ `pi-coding-agent` (MIT) © Mario Zechner / Earendil Works üzerinde çalışır.
@@ -0,0 +1,9 @@
1
+ /**
2
+ * kanka CLI banner'ı. Açılışta gösterilir.
3
+ */
4
+ export declare function printBanner(version: string): void;
5
+ /**
6
+ * Karşılama mesajı (rastgele).
7
+ */
8
+ export declare function welcomeMessage(): string;
9
+ //# sourceMappingURL=banner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CA6BjD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CASvC"}
package/dist/banner.js ADDED
@@ -0,0 +1,43 @@
1
+ import chalk from "chalk";
2
+ /**
3
+ * kanka CLI banner'ı. Açılışta gösterilir.
4
+ */
5
+ export function printBanner(version) {
6
+ const logo = [
7
+ " ╦╔═╔═╗╔╗╔╦╔═╔═╗ ",
8
+ " ╠╩╗╠═╣║║║╠╩╗╠═╣ ",
9
+ " ╩ ╩╩ ╩╝╚╝╩ ╩╩ ╩ ",
10
+ ];
11
+ console.log();
12
+ for (const line of logo) {
13
+ console.log(chalk.cyan(line));
14
+ }
15
+ console.log();
16
+ console.log(chalk.bold.white(" kanka ") +
17
+ chalk.dim(`v${version}`) +
18
+ chalk.gray(" — ") +
19
+ chalk.italic.white("Kanka, şunu yapsana."));
20
+ console.log(chalk.dim(" Türkçe konuşan terminal kodlama asistanı"));
21
+ console.log();
22
+ console.log(chalk.dim(" Yardım: ") +
23
+ chalk.cyan("/yardım") +
24
+ chalk.dim(" Çıkış: ") +
25
+ chalk.cyan("/çık") +
26
+ chalk.dim(" veya ") +
27
+ chalk.cyan("Ctrl+C"));
28
+ console.log();
29
+ }
30
+ /**
31
+ * Karşılama mesajı (rastgele).
32
+ */
33
+ export function welcomeMessage() {
34
+ const messages = [
35
+ "Selam kanka! Ne yapalım?",
36
+ "Hazırım kanka, söyle bakalım.",
37
+ "Buradayım kanka. Ne lazım?",
38
+ "Eee kanka, anlat bakalım.",
39
+ "Selam! Hangi projeyi yapıyoruz kanka?",
40
+ ];
41
+ return messages[Math.floor(Math.random() * messages.length)];
42
+ }
43
+ //# sourceMappingURL=banner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"banner.js","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,MAAM,IAAI,GAAG;QACX,oBAAoB;QACpB,oBAAoB;QACpB,oBAAoB;KACrB,CAAC;IAEF,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QAC1B,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;QACnB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAC7C,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;QACrB,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;QAClB,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CACvB,CAAC;IACF,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,QAAQ,GAAG;QACf,0BAA0B;QAC1B,+BAA+B;QAC/B,4BAA4B;QAC5B,2BAA2B;QAC3B,uCAAuC;KACxC,CAAC;IACF,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAE,CAAC;AAChE,CAAC"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * kanka — Türkçe konuşan terminal kodlama asistanı.
4
+ *
5
+ * Pi'nin coding-agent çekirdeğini kullanır, üzerine Türkçe kişilik,
6
+ * Türkçe komutlar ve kanka markasını ekler.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;GAKG"}
package/dist/cli.js ADDED
@@ -0,0 +1,107 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * kanka — Türkçe konuşan terminal kodlama asistanı.
4
+ *
5
+ * Pi'nin coding-agent çekirdeğini kullanır, üzerine Türkçe kişilik,
6
+ * Türkçe komutlar ve kanka markasını ekler.
7
+ */
8
+ import { main } from "@earendil-works/pi-coding-agent";
9
+ import { printBanner } from "./banner.js";
10
+ import turkceKomutlarExtension from "./extensions/turkce-komutlar.js";
11
+ import turkceModExtension from "./extensions/turkce-mod.js";
12
+ // package.json'dan versiyonu oku (build sırasında dist'e kopyalanacak)
13
+ const VERSION = "0.1.0";
14
+ /**
15
+ * Komut satırı argümanlarında yardım/versiyon istenmiş mi?
16
+ * Hem Türkçe (--yardım, --versiyon) hem İngilizce (--help, --version) bayrakları yakalar.
17
+ * Böylece pi'nin kendi help/version çıktısı asla görünmez; kullanıcı her zaman kanka brand'i görür.
18
+ */
19
+ function isYardimVeyaVersiyon(args) {
20
+ for (const arg of args) {
21
+ if (arg === "--yardım" ||
22
+ arg === "--yardim" ||
23
+ arg === "-y" ||
24
+ arg === "--help" ||
25
+ arg === "-h") {
26
+ return "yardim";
27
+ }
28
+ if (arg === "--versiyon" ||
29
+ arg === "--version" ||
30
+ arg === "-v") {
31
+ return "versiyon";
32
+ }
33
+ }
34
+ return null;
35
+ }
36
+ /**
37
+ * Türkçe yardım metnini basar.
38
+ */
39
+ function yardimGoster() {
40
+ console.log(`
41
+ kanka — Türkçe konuşan terminal kodlama asistanı
42
+
43
+ KULLANIM
44
+ kanka [seçenekler] [komut]
45
+
46
+ SEÇENEKLER
47
+ --yardım, -y Bu yardım metnini göster
48
+ --versiyon, -v Versiyon numarasını göster
49
+
50
+ ÖRNEK
51
+ kanka İnteraktif moda başla
52
+ kanka "Bana bir Express app yaz" Doğrudan görev ver
53
+ echo "ne var ne yok" | kanka Stdin üzerinden mesaj gönder
54
+
55
+ OTURUM İÇİ KOMUTLAR (Türkçe)
56
+ /yardım Komut listesi
57
+ /çık Oturumdan çık
58
+ /temizle Ekranı temizle
59
+ /durum Oturum durumu
60
+ /oturum Oturumları listele
61
+ /yeni Yeni oturum başlat
62
+ /selam kanka'dan bir selam
63
+
64
+ OTURUM İÇİ KOMUTLAR (Pi orijinal — hepsi çalışır)
65
+ /help /exit /clear /status /sessions /new /model ...
66
+
67
+ DAHA FAZLASI
68
+ https://github.com/thorrangonak/kanka
69
+ `);
70
+ }
71
+ async function calistir() {
72
+ const args = process.argv.slice(2);
73
+ // Türkçe meta-bayraklar (pi'ye geçirmeden önce yakala)
74
+ const meta = isYardimVeyaVersiyon(args);
75
+ if (meta === "yardim") {
76
+ printBanner(VERSION);
77
+ yardimGoster();
78
+ return;
79
+ }
80
+ if (meta === "versiyon") {
81
+ console.log(`kanka v${VERSION}`);
82
+ return;
83
+ }
84
+ // İnteraktif modda mıyız? (TTY varsa banner basabiliriz)
85
+ const interaktif = process.stdin.isTTY && process.stdout.isTTY && args.length === 0;
86
+ if (interaktif) {
87
+ printBanner(VERSION);
88
+ }
89
+ // Pi'nin main fonksiyonunu kendi extension'larımızla çağır.
90
+ // extensionFactories listesi pi'nin extension yükleyicisine ek olarak çalışır.
91
+ try {
92
+ await main(args, {
93
+ extensionFactories: [turkceModExtension, turkceKomutlarExtension],
94
+ });
95
+ }
96
+ catch (e) {
97
+ const mesaj = e instanceof Error ? e.message : String(e);
98
+ console.error(`\nHata kanka: ${mesaj}\n`);
99
+ process.exit(1);
100
+ }
101
+ }
102
+ calistir().catch((e) => {
103
+ const mesaj = e instanceof Error ? e.message : String(e);
104
+ console.error(`\nBeklenmeyen hata kanka: ${mesaj}\n`);
105
+ process.exit(1);
106
+ });
107
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,uBAAuB,MAAM,iCAAiC,CAAC;AACtE,OAAO,kBAAkB,MAAM,4BAA4B,CAAC;AAE5D,uEAAuE;AACvE,MAAM,OAAO,GAAG,OAAO,CAAC;AAExB;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,IAAc;IAC3C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,IACC,GAAG,KAAK,UAAU;YAClB,GAAG,KAAK,UAAU;YAClB,GAAG,KAAK,IAAI;YACZ,GAAG,KAAK,QAAQ;YAChB,GAAG,KAAK,IAAI,EACX,CAAC;YACF,OAAO,QAAQ,CAAC;QACjB,CAAC;QACD,IACC,GAAG,KAAK,YAAY;YACpB,GAAG,KAAK,WAAW;YACnB,GAAG,KAAK,IAAI,EACX,CAAC;YACF,OAAO,UAAU,CAAC;QACnB,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAS,YAAY;IACpB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BZ,CAAC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,QAAQ;IACtB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,uDAAuD;IACvD,MAAM,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACvB,WAAW,CAAC,OAAO,CAAC,CAAC;QACrB,YAAY,EAAE,CAAC;QACf,OAAO;IACR,CAAC;IACD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;QACjC,OAAO;IACR,CAAC;IAED,yDAAyD;IACzD,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;IACpF,IAAI,UAAU,EAAE,CAAC;QAChB,WAAW,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAED,4DAA4D;IAC5D,+EAA+E;IAC/E,IAAI,CAAC;QACJ,MAAM,IAAI,CAAC,IAAI,EAAE;YAChB,kBAAkB,EAAE,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;SACjE,CAAC,CAAC;IACJ,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,KAAK,CAAC,iBAAiB,KAAK,IAAI,CAAC,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACF,CAAC;AAED,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;IAC/B,MAAM,KAAK,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,KAAK,CAAC,6BAA6B,KAAK,IAAI,CAAC,CAAC;IACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Türkçe Komutlar Extension
3
+ *
4
+ * kanka için Türkçe slash komutları:
5
+ * /yardım → Komut listesi (Türkçe)
6
+ * /çık → Oturumdan çık
7
+ * /selam → Karşılama mesajı (paskalya yumurtası)
8
+ *
9
+ * Not: Pi'nin orijinal komutları (/help, /exit, /clear, /status, /sessions, /new) da
10
+ * her zaman çalışmaya devam eder.
11
+ */
12
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
13
+ export default function turkceKomutlarExtension(pi: ExtensionAPI): void;
14
+ //# sourceMappingURL=turkce-komutlar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turkce-komutlar.d.ts","sourceRoot":"","sources":["../../src/extensions/turkce-komutlar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAkBpE,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,EAAE,EAAE,YAAY,QAqE/D"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Türkçe Komutlar Extension
3
+ *
4
+ * kanka için Türkçe slash komutları:
5
+ * /yardım → Komut listesi (Türkçe)
6
+ * /çık → Oturumdan çık
7
+ * /selam → Karşılama mesajı (paskalya yumurtası)
8
+ *
9
+ * Not: Pi'nin orijinal komutları (/help, /exit, /clear, /status, /sessions, /new) da
10
+ * her zaman çalışmaya devam eder.
11
+ */
12
+ const YARDIM_LISTESI = [
13
+ { turkce: "/yardım", orijinal: "/help", aciklama: "Komut listesini göster" },
14
+ { turkce: "/çık", orijinal: "/exit", aciklama: "kanka'dan çık" },
15
+ { turkce: "/temizle", orijinal: "/clear", aciklama: "Ekranı temizle" },
16
+ { turkce: "/durum", orijinal: "/status", aciklama: "Oturum durumunu göster" },
17
+ { turkce: "/oturum", orijinal: "/sessions", aciklama: "Oturumları listele" },
18
+ { turkce: "/yeni", orijinal: "/new", aciklama: "Yeni oturum başlat" },
19
+ { turkce: "/model", orijinal: "/model", aciklama: "Aktif modeli değiştir" },
20
+ ];
21
+ export default function turkceKomutlarExtension(pi) {
22
+ // /yardım — kanka'nın özel yardım menüsü
23
+ pi.registerCommand("yardım", {
24
+ description: "Komut listesini Türkçe göster",
25
+ handler: async (_args, ctx) => {
26
+ const satirlar = [
27
+ "",
28
+ "kanka — Türkçe komut listesi",
29
+ "─────────────────────────────",
30
+ ...YARDIM_LISTESI.map((k) => ` ${k.turkce.padEnd(12)} (${k.orijinal.padEnd(10)}) — ${k.aciklama}`),
31
+ "",
32
+ "Pi'nin orijinal İngilizce komutları da çalışır.",
33
+ "Bir şey yazmak için Enter'a bas, çıkmak için Ctrl+C.",
34
+ "",
35
+ ];
36
+ ctx.ui.notify(satirlar.join("\n"), "info");
37
+ },
38
+ });
39
+ // ASCII fallback
40
+ pi.registerCommand("yardim", {
41
+ description: "Komut listesini Türkçe göster (ASCII)",
42
+ handler: async (_args, ctx) => {
43
+ const satirlar = [
44
+ "",
45
+ "kanka — Türkçe komut listesi",
46
+ "─────────────────────────────",
47
+ ...YARDIM_LISTESI.map((k) => ` ${k.turkce.padEnd(12)} (${k.orijinal.padEnd(10)}) — ${k.aciklama}`),
48
+ "",
49
+ ];
50
+ ctx.ui.notify(satirlar.join("\n"), "info");
51
+ },
52
+ });
53
+ // /çık — graceful shutdown
54
+ pi.registerCommand("çık", {
55
+ description: "kanka'dan çık",
56
+ handler: async (_args, ctx) => {
57
+ ctx.ui.notify("Görüşmek üzere kanka! 👋", "info");
58
+ ctx.shutdown();
59
+ },
60
+ });
61
+ pi.registerCommand("cik", {
62
+ description: "kanka'dan çık (ASCII)",
63
+ handler: async (_args, ctx) => {
64
+ ctx.ui.notify("Görüşmek üzere kanka! 👋", "info");
65
+ ctx.shutdown();
66
+ },
67
+ });
68
+ // /selam — paskalya yumurtası
69
+ pi.registerCommand("selam", {
70
+ description: "kanka'dan bir selam al",
71
+ handler: async (_args, ctx) => {
72
+ const mesajlar = [
73
+ "Selamün aleyküm kanka.",
74
+ "Naber kanka, hazırım.",
75
+ "Eyvallah kanka, dinliyorum.",
76
+ "Selam selam, ne yapalım?",
77
+ ];
78
+ const secilen = mesajlar[Math.floor(Math.random() * mesajlar.length)];
79
+ ctx.ui.notify(secilen, "info");
80
+ },
81
+ });
82
+ }
83
+ //# sourceMappingURL=turkce-komutlar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turkce-komutlar.js","sourceRoot":"","sources":["../../src/extensions/turkce-komutlar.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Türkçe Mod Extension
3
+ *
4
+ * kanka'nın varsayılan davranışı: sistem prompt'una Türkçe asistan
5
+ * kişiliği enjekte eder. Tüm kullanıcı etkileşimi Türkçe olur.
6
+ */
7
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
8
+ export default function turkceModExtension(pi: ExtensionAPI): void;
9
+ //# sourceMappingURL=turkce-mod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turkce-mod.d.ts","sourceRoot":"","sources":["../../src/extensions/turkce-mod.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAGpE,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EAAE,EAAE,YAAY,QAQ1D"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Türkçe Mod Extension
3
+ *
4
+ * kanka'nın varsayılan davranışı: sistem prompt'una Türkçe asistan
5
+ * kişiliği enjekte eder. Tüm kullanıcı etkileşimi Türkçe olur.
6
+ */
7
+ import { KANKA_SYSTEM_PROMPT } from "../system-prompt.js";
8
+ export default function turkceModExtension(pi) {
9
+ pi.on("before_agent_start", async (event) => {
10
+ // Mevcut sistem prompt'unun sonuna kanka'nın Türkçe kişiliğini ekle.
11
+ // Temel tool talimatları korunur, üstüne Türkçe katman gelir.
12
+ return {
13
+ systemPrompt: `${event.systemPrompt}\n\n---\n\n${KANKA_SYSTEM_PROMPT}`,
14
+ };
15
+ });
16
+ }
17
+ //# sourceMappingURL=turkce-mod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turkce-mod.js","sourceRoot":"","sources":["../../src/extensions/turkce-mod.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EAAgB;IAC1D,EAAE,CAAC,EAAE,CAAC,oBAAoB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAC3C,qEAAqE;QACrE,8DAA8D;QAC9D,OAAO;YACN,YAAY,EAAE,GAAG,KAAK,CAAC,YAAY,cAAc,mBAAmB,EAAE;SACtE,CAAC;IACH,CAAC,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * kanka SDK — programatik kullanım için.
3
+ *
4
+ * Pi'nin SDK'sını yeniden export eder, üzerine kanka'nın Türkçe
5
+ * extension'larını ekler.
6
+ */
7
+ export { KANKA_SYSTEM_PROMPT } from "./system-prompt.js";
8
+ export { printBanner, welcomeMessage } from "./banner.js";
9
+ export { default as turkceModExtension } from "./extensions/turkce-mod.js";
10
+ export { default as turkceKomutlarExtension } from "./extensions/turkce-komutlar.js";
11
+ export { createAgentSession, createAgentSessionRuntime, SessionManager, AuthStorage, ModelRegistry, } from "@earendil-works/pi-coding-agent";
12
+ export type { AgentSession, AgentSessionEvent, ExtensionAPI, ExtensionContext, ExtensionFactory, } from "@earendil-works/pi-coding-agent";
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAGrF,OAAO,EACN,kBAAkB,EAClB,yBAAyB,EACzB,cAAc,EACd,WAAW,EACX,aAAa,GACb,MAAM,iCAAiC,CAAC;AAEzC,YAAY,EACX,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,GAChB,MAAM,iCAAiC,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,13 @@
1
+ /**
2
+ * kanka SDK — programatik kullanım için.
3
+ *
4
+ * Pi'nin SDK'sını yeniden export eder, üzerine kanka'nın Türkçe
5
+ * extension'larını ekler.
6
+ */
7
+ export { KANKA_SYSTEM_PROMPT } from "./system-prompt.js";
8
+ export { printBanner, welcomeMessage } from "./banner.js";
9
+ export { default as turkceModExtension } from "./extensions/turkce-mod.js";
10
+ export { default as turkceKomutlarExtension } from "./extensions/turkce-komutlar.js";
11
+ // Pi'nin temel SDK'sını da yeniden export et (kullanıcı kendi entegrasyonu için).
12
+ export { createAgentSession, createAgentSessionRuntime, SessionManager, AuthStorage, ModelRegistry, } from "@earendil-works/pi-coding-agent";
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAErF,kFAAkF;AAClF,OAAO,EACN,kBAAkB,EAClB,yBAAyB,EACzB,cAAc,EACd,WAAW,EACX,aAAa,GACb,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * kanka — Türkçe sistem prompt'u.
3
+ *
4
+ * Tüm agent davranışını Türkçe konuşma + yerel geliştirici kültürüne göre ayarlar.
5
+ */
6
+ export declare const KANKA_SYSTEM_PROMPT = "Sen \"kanka\" ad\u0131nda bir terminal kodlama asistan\u0131s\u0131n.\n\n## Ki\u015Fili\u011Fin\n- Kullan\u0131c\u0131yla **T\u00FCrk\u00E7e** konu\u015Fursun, samimi ama profesyonel.\n- Teknik terimleri \u0130ngilizce b\u0131rakabilirsin (commit, refactor, hook, prop, state, build).\n- \"Kanka\", \"abi\", \"tamam\" gibi g\u00FCndelik ifadelere do\u011Fal yakla\u015F\u0131rs\u0131n ama abartmazs\u0131n.\n- K\u0131sa ve net cevap verirsin. Gereksiz laf kalabal\u0131\u011F\u0131 yapmazs\u0131n.\n- Emin de\u011Filsen sorars\u0131n, uydurma yapmazs\u0131n.\n\n## \u00C7al\u0131\u015Fma Tarz\u0131n\n- Her zaman **TypeScript** tercih edersin (JavaScript yerine).\n- `any` yerine `unknown` kullan\u0131rs\u0131n.\n- Erken return (early return) pattern'i uygulars\u0131n.\n- Fonksiyonlar tek sorumluluk ilkesine uymal\u0131 (~40 sat\u0131r max).\n- Magic number/string kullanmazs\u0131n, sabit tan\u0131mlars\u0131n.\n- Hata y\u00F6netiminde `try/catch` bloklar\u0131nda `catch (e: unknown)` yazars\u0131n.\n- Callback yerine `async/await` kullan\u0131rs\u0131n.\n\n## \u0130simlendirme\n- De\u011Fi\u015Fken/fonksiyon: `camelCase`\n- S\u0131n\u0131f/Interface/Type: `PascalCase`\n- Sabitler: `UPPER_SNAKE_CASE`\n- Dosyalar: `kebab-case.ts`\n- Boolean: `is`, `has`, `can`, `should` \u00F6neki\n\n## Ara\u00E7lar\u0131n\n- `read` \u2014 Dosya oku\n- `write` \u2014 Dosya olu\u015Ftur / yeniden yaz\n- `edit` \u2014 Hassas d\u00FCzenleme (tam metin e\u015Fle\u015Fmesi)\n- `bash` \u2014 Komut \u00E7al\u0131\u015Ft\u0131r (ls, grep, find, git vb.)\n\n## Komutlar\u0131 kullan\u0131rken\n- `bash` ile `cat`/`sed` yerine `read` arac\u0131n\u0131 kullan.\n- Birden fazla ba\u011F\u0131ms\u0131z de\u011Fi\u015Fiklik varsa tek `edit` \u00E7a\u011Fr\u0131s\u0131nda `edits[]` dizisiyle yap.\n- Ba\u011F\u0131ms\u0131z tool \u00E7a\u011Fr\u0131lar\u0131n\u0131 paralel yap.\n- Dosya yollar\u0131n\u0131 net g\u00F6ster.\n\n## G\u00FCvenlik\n- API key, secret, token koda yazma. `.env` kullan.\n- `rm -rf`, `git push --force`, `DROP TABLE` gibi tehlikeli komutlardan \u00F6nce kullan\u0131c\u0131ya sor.\n- Input validation her zaman yap.\n\n## Git\n- Commit mesajlar\u0131: Conventional Commits (`feat:`, `fix:`, `docs:`, `refactor:`, `test:`, `chore:`)\n- main'e direkt commit etme, feature branch a\u00E7.\n\n## Cevap format\u0131\n- K\u0131sa ve eylem odakl\u0131.\n- Kod bloklar\u0131 i\u00E7in dil belirt (```ts, ```bash).\n- Uzun a\u00E7\u0131klama gerekirse ba\u015Fl\u0131klar (##) ve listeler kullan.\n- Sonunda \"ne yapay\u0131m \u015Fimdi?\" gibi sorular sorma; do\u011Frudan i\u015F yap.\n\nHadi ba\u015Flayal\u0131m. Kullan\u0131c\u0131n\u0131n ilk mesaj\u0131n\u0131 bekle.";
7
+ //# sourceMappingURL=system-prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,mBAAmB,2nFAoDkB,CAAC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * kanka — Türkçe sistem prompt'u.
3
+ *
4
+ * Tüm agent davranışını Türkçe konuşma + yerel geliştirici kültürüne göre ayarlar.
5
+ */
6
+ export const KANKA_SYSTEM_PROMPT = `Sen "kanka" adında bir terminal kodlama asistanısın.
7
+
8
+ ## Kişiliğin
9
+ - Kullanıcıyla **Türkçe** konuşursun, samimi ama profesyonel.
10
+ - Teknik terimleri İngilizce bırakabilirsin (commit, refactor, hook, prop, state, build).
11
+ - "Kanka", "abi", "tamam" gibi gündelik ifadelere doğal yaklaşırsın ama abartmazsın.
12
+ - Kısa ve net cevap verirsin. Gereksiz laf kalabalığı yapmazsın.
13
+ - Emin değilsen sorarsın, uydurma yapmazsın.
14
+
15
+ ## Çalışma Tarzın
16
+ - Her zaman **TypeScript** tercih edersin (JavaScript yerine).
17
+ - \`any\` yerine \`unknown\` kullanırsın.
18
+ - Erken return (early return) pattern'i uygularsın.
19
+ - Fonksiyonlar tek sorumluluk ilkesine uymalı (~40 satır max).
20
+ - Magic number/string kullanmazsın, sabit tanımlarsın.
21
+ - Hata yönetiminde \`try/catch\` bloklarında \`catch (e: unknown)\` yazarsın.
22
+ - Callback yerine \`async/await\` kullanırsın.
23
+
24
+ ## İsimlendirme
25
+ - Değişken/fonksiyon: \`camelCase\`
26
+ - Sınıf/Interface/Type: \`PascalCase\`
27
+ - Sabitler: \`UPPER_SNAKE_CASE\`
28
+ - Dosyalar: \`kebab-case.ts\`
29
+ - Boolean: \`is\`, \`has\`, \`can\`, \`should\` öneki
30
+
31
+ ## Araçların
32
+ - \`read\` — Dosya oku
33
+ - \`write\` — Dosya oluştur / yeniden yaz
34
+ - \`edit\` — Hassas düzenleme (tam metin eşleşmesi)
35
+ - \`bash\` — Komut çalıştır (ls, grep, find, git vb.)
36
+
37
+ ## Komutları kullanırken
38
+ - \`bash\` ile \`cat\`/\`sed\` yerine \`read\` aracını kullan.
39
+ - Birden fazla bağımsız değişiklik varsa tek \`edit\` çağrısında \`edits[]\` dizisiyle yap.
40
+ - Bağımsız tool çağrılarını paralel yap.
41
+ - Dosya yollarını net göster.
42
+
43
+ ## Güvenlik
44
+ - API key, secret, token koda yazma. \`.env\` kullan.
45
+ - \`rm -rf\`, \`git push --force\`, \`DROP TABLE\` gibi tehlikeli komutlardan önce kullanıcıya sor.
46
+ - Input validation her zaman yap.
47
+
48
+ ## Git
49
+ - Commit mesajları: Conventional Commits (\`feat:\`, \`fix:\`, \`docs:\`, \`refactor:\`, \`test:\`, \`chore:\`)
50
+ - main'e direkt commit etme, feature branch aç.
51
+
52
+ ## Cevap formatı
53
+ - Kısa ve eylem odaklı.
54
+ - Kod blokları için dil belirt (\`\`\`ts, \`\`\`bash).
55
+ - Uzun açıklama gerekirse başlıklar (##) ve listeler kullan.
56
+ - Sonunda "ne yapayım şimdi?" gibi sorular sorma; doğrudan iş yap.
57
+
58
+ Hadi başlayalım. Kullanıcının ilk mesajını bekle.`;
59
+ //# sourceMappingURL=system-prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDAoDe,CAAC"}
package/package.json ADDED
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "@thorrangonak/kanka",
3
+ "version": "0.1.0",
4
+ "description": "kanka — Türkçe konuşan terminal kodlama asistanı. 'Kanka, şunu yapsana.'",
5
+ "type": "module",
6
+ "bin": {
7
+ "kanka": "dist/cli.js"
8
+ },
9
+ "main": "./dist/index.js",
10
+ "types": "./dist/index.d.ts",
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "import": "./dist/index.js"
15
+ }
16
+ },
17
+ "files": [
18
+ "dist",
19
+ "README.md",
20
+ "LICENSE"
21
+ ],
22
+ "scripts": {
23
+ "build": "tsc && shx chmod +x dist/cli.js",
24
+ "dev": "tsc --watch",
25
+ "start": "node dist/cli.js",
26
+ "clean": "shx rm -rf dist",
27
+ "prepublishOnly": "npm run clean && npm run build"
28
+ },
29
+ "dependencies": {
30
+ "@earendil-works/pi-coding-agent": "^0.74.1",
31
+ "chalk": "^5.5.0"
32
+ },
33
+ "devDependencies": {
34
+ "@types/node": "^24.3.0",
35
+ "shx": "^0.4.0",
36
+ "typescript": "^5.7.3"
37
+ },
38
+ "keywords": [
39
+ "kanka",
40
+ "coding-agent",
41
+ "ai",
42
+ "llm",
43
+ "cli",
44
+ "turkish",
45
+ "türkçe",
46
+ "kodlama-asistanı"
47
+ ],
48
+ "author": "thorrangonak",
49
+ "license": "MIT",
50
+ "repository": {
51
+ "type": "git",
52
+ "url": "git+https://github.com/thorrangonak/kanka.git"
53
+ },
54
+ "homepage": "https://github.com/thorrangonak/kanka",
55
+ "bugs": {
56
+ "url": "https://github.com/thorrangonak/kanka/issues"
57
+ },
58
+ "engines": {
59
+ "node": ">=20.6.0"
60
+ }
61
+ }