@thorrangonak/kanka 0.3.0 → 0.3.1
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/dist/cli.js +1 -1
- package/dist/extensions/bilgi-komutlari.js +1 -1
- package/dist/extensions/turkce-aliaslar.d.ts +13 -19
- package/dist/extensions/turkce-aliaslar.d.ts.map +1 -1
- package/dist/extensions/turkce-aliaslar.js +100 -78
- package/dist/extensions/turkce-aliaslar.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -17,7 +17,7 @@ import turkceKomutlarExtension from "./extensions/turkce-komutlar.js";
|
|
|
17
17
|
import turkceModExtension from "./extensions/turkce-mod.js";
|
|
18
18
|
import subagentExtension from "./subagent/index.js";
|
|
19
19
|
// package.json'dan versiyonu oku (build sırasında dist'e kopyalanacak)
|
|
20
|
-
const VERSION = "0.3.
|
|
20
|
+
const VERSION = "0.3.1";
|
|
21
21
|
/**
|
|
22
22
|
* Komut satırı argümanlarında yardım/versiyon istenmiş mi?
|
|
23
23
|
* Hem Türkçe (--yardım, --versiyon) hem İngilizce (--help, --version) bayrakları yakalar.
|
|
@@ -9,7 +9,7 @@ import * as fs from "node:fs";
|
|
|
9
9
|
import * as path from "node:path";
|
|
10
10
|
import { fileURLToPath } from "node:url";
|
|
11
11
|
import { parseFrontmatter } from "@earendil-works/pi-coding-agent";
|
|
12
|
-
const KANKA_VERSION = "0.3.
|
|
12
|
+
const KANKA_VERSION = "0.3.1";
|
|
13
13
|
/**
|
|
14
14
|
* Paket içindeki bundled-agents/ klasöründen agent meta bilgisini okur.
|
|
15
15
|
*/
|
|
@@ -1,27 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Türkçe Slash Komut Alias Extension
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* Kullanıcı `/sıkıştır` yazınca otomatik olarak `/compact`'a dönüşür.
|
|
4
|
+
* İki kategoride alias sağlıyoruz:
|
|
6
5
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* 1. **Gerçek alias'lar (Tier 1)** — Extension API üzerinden direkt action çağrılır:
|
|
7
|
+
* /sıkıştır, /özet → ctx.compact()
|
|
8
|
+
* /yenile → ctx.reload()
|
|
9
|
+
* /yeni → ctx.newSession()
|
|
10
|
+
*
|
|
11
|
+
* 2. **Yönlendirici alias'lar (Tier 2)** — Pi'nin TUI seviyesi komutlarına
|
|
12
|
+
* extension API'den erişilemiyor (login, settings, fork, copy vb.). Bu komutlar
|
|
13
|
+
* çağrılınca kullanıcıyı pi'nin orijinal komutuna yönlendiriyoruz.
|
|
14
|
+
*
|
|
15
|
+
* Not: Pi'nin slash komut parser'ı `emitInput`'tan ÖNCE çalıştığı için, sadece
|
|
16
|
+
* text transform yapan bir alias çalışmıyor — bu yüzden kanka kendi extension
|
|
17
|
+
* komutlarını `registerCommand` ile kayıt ediyor ve action'ları manuel tetikliyor.
|
|
10
18
|
*/
|
|
11
19
|
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
12
|
-
interface SlashAlias {
|
|
13
|
-
/** Türkçe komut (slash'sız) */
|
|
14
|
-
turkce: string;
|
|
15
|
-
/** Pi'nin orijinal komutu (slash'sız) */
|
|
16
|
-
pi: string;
|
|
17
|
-
/** Komut açıklaması (yardım için) */
|
|
18
|
-
aciklama: string;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Türkçe → Pi alias eşleştirmeleri.
|
|
22
|
-
* ASCII'siz Türkçe versiyonlar da eklendi (klavye kolaylığı).
|
|
23
|
-
*/
|
|
24
|
-
export declare const SLASH_ALIASLAR: SlashAlias[];
|
|
25
20
|
export default function turkceAliaslarExtension(pi: ExtensionAPI): void;
|
|
26
|
-
export {};
|
|
27
21
|
//# sourceMappingURL=turkce-aliaslar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turkce-aliaslar.d.ts","sourceRoot":"","sources":["../../src/extensions/turkce-aliaslar.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"turkce-aliaslar.d.ts","sourceRoot":"","sources":["../../src/extensions/turkce-aliaslar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAA2B,MAAM,iCAAiC,CAAC;AAyC7F,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,EAAE,EAAE,YAAY,QAyE/D"}
|
|
@@ -1,90 +1,112 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Türkçe Slash Komut Alias Extension
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* Kullanıcı `/sıkıştır` yazınca otomatik olarak `/compact`'a dönüşür.
|
|
4
|
+
* İki kategoride alias sağlıyoruz:
|
|
6
5
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* 1. **Gerçek alias'lar (Tier 1)** — Extension API üzerinden direkt action çağrılır:
|
|
7
|
+
* /sıkıştır, /özet → ctx.compact()
|
|
8
|
+
* /yenile → ctx.reload()
|
|
9
|
+
* /yeni → ctx.newSession()
|
|
10
|
+
*
|
|
11
|
+
* 2. **Yönlendirici alias'lar (Tier 2)** — Pi'nin TUI seviyesi komutlarına
|
|
12
|
+
* extension API'den erişilemiyor (login, settings, fork, copy vb.). Bu komutlar
|
|
13
|
+
* çağrılınca kullanıcıyı pi'nin orijinal komutuna yönlendiriyoruz.
|
|
14
|
+
*
|
|
15
|
+
* Not: Pi'nin slash komut parser'ı `emitInput`'tan ÖNCE çalıştığı için, sadece
|
|
16
|
+
* text transform yapan bir alias çalışmıyor — bu yüzden kanka kendi extension
|
|
17
|
+
* komutlarını `registerCommand` ile kayıt ediyor ve action'ları manuel tetikliyor.
|
|
10
18
|
*/
|
|
11
19
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
20
|
+
* Pi'nin TUI seviyesi komutları — extension'dan tetiklenemez.
|
|
21
|
+
* Kullanıcıya orijinal komutu hatırlat.
|
|
14
22
|
*/
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
{ turkce: "
|
|
18
|
-
{ turkce: "
|
|
19
|
-
{ turkce: "
|
|
20
|
-
{ turkce: "
|
|
21
|
-
|
|
22
|
-
{ turkce: "
|
|
23
|
-
{ turkce: "
|
|
24
|
-
{ turkce: "
|
|
25
|
-
{ turkce: "
|
|
26
|
-
{ turkce: "
|
|
27
|
-
{ turkce: "
|
|
28
|
-
|
|
29
|
-
{ turkce: "
|
|
30
|
-
{ turkce: "
|
|
31
|
-
{ turkce: "
|
|
32
|
-
{ turkce: "
|
|
33
|
-
{ turkce: "
|
|
34
|
-
{ turkce: "
|
|
35
|
-
{ turkce: "
|
|
36
|
-
{ turkce: "
|
|
37
|
-
{ turkce: "
|
|
38
|
-
|
|
39
|
-
{ turkce: "
|
|
40
|
-
{ turkce: "
|
|
41
|
-
{ turkce: "
|
|
42
|
-
{ turkce: "cikis", pi: "logout", aciklama: "Provider'dan çıkış (ASCII)" },
|
|
43
|
-
// Sistem
|
|
44
|
-
{ turkce: "ayarlar", pi: "settings", aciklama: "Ayarlar TUI'sini aç" },
|
|
45
|
-
{ turkce: "yenile", pi: "reload", aciklama: "Runtime'ı yeniden yükle (config + extension)" },
|
|
46
|
-
{ turkce: "kısayollar", pi: "hotkeys", aciklama: "Klavye kısayollarını göster" },
|
|
47
|
-
{ turkce: "kisayollar", pi: "hotkeys", aciklama: "Klavye kısayolları (ASCII)" },
|
|
48
|
-
{ turkce: "değişiklikler", pi: "changelog", aciklama: "Pi changelog'unu göster" },
|
|
49
|
-
{ turkce: "degisiklikler", pi: "changelog", aciklama: "Changelog (ASCII)" },
|
|
50
|
-
{ turkce: "hata-ayıkla", pi: "debug", aciklama: "Debug bilgisini göster" },
|
|
51
|
-
{ turkce: "hata-ayikla", pi: "debug", aciklama: "Debug bilgisi (ASCII)" },
|
|
23
|
+
const YONLENDIRME_ALIASLARI = [
|
|
24
|
+
{ turkce: "çatalla", piKomut: "/fork", aciklama: "Oturumu fork et" },
|
|
25
|
+
{ turkce: "catalla", piKomut: "/fork", aciklama: "Oturumu fork et" },
|
|
26
|
+
{ turkce: "klonla", piKomut: "/clone", aciklama: "Oturumu klonla" },
|
|
27
|
+
{ turkce: "devam", piKomut: "/resume", aciklama: "Bir oturumdan devam et" },
|
|
28
|
+
{ turkce: "ağaç", piKomut: "/tree", aciklama: "Oturum ağacını göster" },
|
|
29
|
+
{ turkce: "agac", piKomut: "/tree", aciklama: "Oturum ağacı" },
|
|
30
|
+
{ turkce: "isim", piKomut: "/name", aciklama: "Mevcut oturumu adlandır" },
|
|
31
|
+
{ turkce: "içeal", piKomut: "/import", aciklama: "Oturum dosyası içe al" },
|
|
32
|
+
{ turkce: "iceal", piKomut: "/import", aciklama: "Oturum içe al" },
|
|
33
|
+
{ turkce: "aktar", piKomut: "/export", aciklama: "Oturumu HTML'e aktar" },
|
|
34
|
+
{ turkce: "dışaver", piKomut: "/export", aciklama: "HTML'e aktar" },
|
|
35
|
+
{ turkce: "disaver", piKomut: "/export", aciklama: "HTML'e aktar" },
|
|
36
|
+
{ turkce: "paylaş", piKomut: "/share", aciklama: "Oturumu paylaş" },
|
|
37
|
+
{ turkce: "paylas", piKomut: "/share", aciklama: "Oturumu paylaş" },
|
|
38
|
+
{ turkce: "kopyala", piKomut: "/copy", aciklama: "Son asistan mesajını kopyala" },
|
|
39
|
+
{ turkce: "giriş", piKomut: "/login", aciklama: "Provider'a giriş yap" },
|
|
40
|
+
{ turkce: "giris", piKomut: "/login", aciklama: "Provider'a giriş" },
|
|
41
|
+
{ turkce: "çıkış", piKomut: "/logout", aciklama: "Provider'dan çıkış" },
|
|
42
|
+
{ turkce: "cikis", piKomut: "/logout", aciklama: "Provider'dan çıkış" },
|
|
43
|
+
{ turkce: "ayarlar", piKomut: "/settings", aciklama: "Ayarlar TUI'sini aç" },
|
|
44
|
+
{ turkce: "kısayollar", piKomut: "/hotkeys", aciklama: "Klavye kısayolları" },
|
|
45
|
+
{ turkce: "kisayollar", piKomut: "/hotkeys", aciklama: "Klavye kısayolları" },
|
|
46
|
+
{ turkce: "değişiklikler", piKomut: "/changelog", aciklama: "Pi changelog'u" },
|
|
47
|
+
{ turkce: "degisiklikler", piKomut: "/changelog", aciklama: "Pi changelog" },
|
|
48
|
+
{ turkce: "hata-ayıkla", piKomut: "/debug", aciklama: "Debug bilgisi" },
|
|
49
|
+
{ turkce: "hata-ayikla", piKomut: "/debug", aciklama: "Debug bilgisi" },
|
|
52
50
|
];
|
|
53
|
-
/**
|
|
54
|
-
* `/turkce` formatındaki bir komutu `/pi` formatına çevirir.
|
|
55
|
-
* Eşleşme yoksa orijinal metni döner.
|
|
56
|
-
*/
|
|
57
|
-
function aliasCevir(text) {
|
|
58
|
-
if (!text.startsWith("/"))
|
|
59
|
-
return null;
|
|
60
|
-
// Slash sonrası kısmı al
|
|
61
|
-
const slashSonrasi = text.slice(1);
|
|
62
|
-
// İlk boşluğa kadar = komut, sonrası = argüman
|
|
63
|
-
const bosluk = slashSonrasi.indexOf(" ");
|
|
64
|
-
const komut = bosluk === -1 ? slashSonrasi : slashSonrasi.slice(0, bosluk);
|
|
65
|
-
const argumanlar = bosluk === -1 ? "" : slashSonrasi.slice(bosluk);
|
|
66
|
-
// Alias bul (case-sensitive, çünkü Türkçe karakterler önemli)
|
|
67
|
-
const alias = SLASH_ALIASLAR.find((a) => a.turkce === komut);
|
|
68
|
-
if (!alias)
|
|
69
|
-
return null;
|
|
70
|
-
return `/${alias.pi}${argumanlar}`;
|
|
71
|
-
}
|
|
72
51
|
export default function turkceAliaslarExtension(pi) {
|
|
73
|
-
//
|
|
74
|
-
//
|
|
75
|
-
//
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
52
|
+
// ───────────────────────────────────────────────
|
|
53
|
+
// TIER 1: Gerçek alias'lar (action API üzerinden)
|
|
54
|
+
// ───────────────────────────────────────────────
|
|
55
|
+
const sikistirHandler = async (args, ctx) => {
|
|
56
|
+
const ozelTalimat = args?.trim() || undefined;
|
|
57
|
+
ctx.ui.notify(ozelTalimat
|
|
58
|
+
? `Context sıkıştırılıyor (özel talimat: "${ozelTalimat}")...`
|
|
59
|
+
: "Context sıkıştırılıyor...", "info");
|
|
60
|
+
ctx.compact({ customInstructions: ozelTalimat });
|
|
61
|
+
};
|
|
62
|
+
pi.registerCommand("sıkıştır", {
|
|
63
|
+
description: "Context'i sıkıştır (compact). İsteğe bağlı: özel özet talimatı.",
|
|
64
|
+
handler: sikistirHandler,
|
|
65
|
+
});
|
|
66
|
+
pi.registerCommand("sikistir", {
|
|
67
|
+
description: "Context'i sıkıştır (ASCII)",
|
|
68
|
+
handler: sikistirHandler,
|
|
69
|
+
});
|
|
70
|
+
pi.registerCommand("özet", {
|
|
71
|
+
description: "Context'i sıkıştır (alias: /sıkıştır)",
|
|
72
|
+
handler: sikistirHandler,
|
|
73
|
+
});
|
|
74
|
+
pi.registerCommand("ozet", {
|
|
75
|
+
description: "Context'i sıkıştır (ASCII)",
|
|
76
|
+
handler: sikistirHandler,
|
|
77
|
+
});
|
|
78
|
+
pi.registerCommand("yenile", {
|
|
79
|
+
description: "Runtime'ı yeniden yükle (config + extension)",
|
|
80
|
+
handler: async (_args, ctx) => {
|
|
81
|
+
ctx.ui.notify("Runtime yeniden yükleniyor...", "info");
|
|
82
|
+
await ctx.reload();
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
pi.registerCommand("yeniden-yukle", {
|
|
86
|
+
description: "Runtime'ı yeniden yükle (ASCII alias)",
|
|
87
|
+
handler: async (_args, ctx) => {
|
|
88
|
+
ctx.ui.notify("Runtime yeniden yukleniyor...", "info");
|
|
89
|
+
await ctx.reload();
|
|
90
|
+
},
|
|
91
|
+
});
|
|
92
|
+
pi.registerCommand("yeni-oturum", {
|
|
93
|
+
description: "Yeni oturum başlat",
|
|
94
|
+
handler: async (_args, ctx) => {
|
|
95
|
+
ctx.ui.notify("Yeni oturum başlatılıyor...", "info");
|
|
96
|
+
await ctx.newSession();
|
|
97
|
+
},
|
|
88
98
|
});
|
|
99
|
+
// ───────────────────────────────────────────────
|
|
100
|
+
// TIER 2: Yönlendirici alias'lar
|
|
101
|
+
// (Pi TUI'sine erişim yok, kullanıcıyı orijinal komuta yönlendir)
|
|
102
|
+
// ───────────────────────────────────────────────
|
|
103
|
+
for (const alias of YONLENDIRME_ALIASLARI) {
|
|
104
|
+
pi.registerCommand(alias.turkce, {
|
|
105
|
+
description: `${alias.aciklama} (kanka: ${alias.piKomut} yaz)`,
|
|
106
|
+
handler: async (_args, ctx) => {
|
|
107
|
+
ctx.ui.notify(`Bu komut için pi'nin yerel komutu lazım kanka:\n ${alias.piKomut}\n\n(Pi TUI seviyesi komutlar extension'lardan tetiklenemiyor.\nYazıp Enter'a bas, aynı işi yapar.)`, "info");
|
|
108
|
+
},
|
|
109
|
+
});
|
|
110
|
+
}
|
|
89
111
|
}
|
|
90
112
|
//# sourceMappingURL=turkce-aliaslar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turkce-aliaslar.js","sourceRoot":"","sources":["../../src/extensions/turkce-aliaslar.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"turkce-aliaslar.js","sourceRoot":"","sources":["../../src/extensions/turkce-aliaslar.ts"],"names":[],"mappings":"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"}
|