uz
Feedback
ToCode

ToCode

Kanalga Telegramโ€™da oโ€˜tish

ื˜ื™ืคื™ื ืงืฆืจื™ื ืœืžืชื›ื ืชื™ื ืžืืช ื™ื ื•ืŸ ืคืจืง

Ko'proq ko'rsatish
1 419
Obunachilar
Ma'lumot yo'q24 soatlar
+17 kunlar
-430 kunlar
Postlar arxiv
ToCode
1 419
๐Ÿ“Œ ืื– ืขื“ื™ื™ืŸ ืฆืจื™ืš ื”ื•ื“ืขื•ืช ืงื•ืžื™ื˜? ื‘ 2026 ืกื•ื›ื ื™ ืงื™ื“ื•ื“ ื™ื•ื“ืขื™ื ืœื›ืชื•ื‘ ื”ื•ื“ืขื•ืช ืงื•ืžื™ื˜ ื˜ื•ื‘ื•ืช ื™ื•ืชืจ ืžืื™ืชื ื• ื’ื ื‘ื“ื™ืขื‘ื“. ื ื™ืกื™ืชื™ ืืช ื–ื” - ื”ืคืจื•ืžืคื˜:
explain the commit 
1. what changed?
2. why?
3. what's still left to do for this issue?
ืขื ื”ืงื•ืžื™ื˜ ืฉืขืฉื™ืชื™ ื›ืืŸ: https://github.com/ynonp/langlets-rails/commit/c07821619789ce2c814f9056088f0b083c7e92c7 ื ืชืŸ ืœื™ ื”ืกื‘ืจ ื”ืจื‘ื” ื™ื•ืชืจ ื˜ื•ื‘ ื•ืžื“ื•ื™ืง ืžื–ื” ืฉืื ื™ ื›ืชื‘ืชื™ ื‘ื”ื•ื“ืขืช ื”ืงื•ืžื™ื˜. ื”ื•ื ื’ื ื”ื–ื›ื™ืจ ืœื™ ืฉื”ืงื•ืžื™ื˜ ื”ื–ื” ื‘ื›ืœืœ ื›ืœืœ 4 ืฉื™ื ื•ื™ื™ื ื ืคืจื“ื™ื, ื›ืฉื”ื•ื“ืขืช ื”ืงื•ืžื™ื˜ ืžื“ื‘ืจืช ืขืœ ืฉื™ื ื•ื™ ืื—ื“. ืžื™ ืฉื™ืงืจื ืืช ื”ืงื•ื“ ืขื ื”ื”ืกื‘ืจ ืฉืœ ื” AI ื™ืงื‘ืœ ื”ืกื‘ืจ ื”ืจื‘ื” ื™ื•ืชืจ ื˜ื•ื‘ ืœืžื” ืงืจื” ืฉื. ื•ืขื›ืฉื™ื• ื”ืฉืืœื” ื‘ื›ื•ืชืจืช ื”ื™ื ื”ืชืœื‘ื˜ื•ืช ืืžื™ืชื™ืช. ืœืžื” ืœื ืœืชืช ืœ AI ืœื›ืชื•ื‘ ืืช ื”ื•ื“ืขืช ื”ืงื•ืžื™ื˜ ื”ื–ืืช ืžืจืืฉ ื•ืœืจื•ืฅ ื™ื•ืชืจ ืžื”ืจ? ืžื” ื”ื˜ืขื ืœื›ืชื•ื‘ ื”ื•ื“ืขื•ืช ืงื•ืžื™ื˜ ืœื ืžื“ื•ื™ืงื•ืช ื‘ืขืฆืžื™? ื‘ืžืงืจื” ื‘ื“ื•ื’ืžื” ื”ื•ื“ืขืช ื”ืงื•ืžื™ื˜ ืฉืœื™ ืœื ื”ื™ืชื” ืžื“ื•ื™ืงืช ื›ื™ ื ืชืชื™ ืœ AI ืœื›ืชื•ื‘ ื›ืžื” ืคื™ืฆ'ืจื™ื ื‘ืžืงื‘ื™ืœ ื•ื“ื—ืคืชื™ ื”ื›ืœ ื‘ืœื™ ืœืงืจื•ื ืœืขื•ืžืง. ืื ื–ืืช ืฉื™ื˜ืช ื”ืขื‘ื•ื“ื” ื‘ืจื•ืจ ืฉื—ื‘ืœ ืขืœ ื”ื–ืžืŸ. ืื‘ืœ ืœืžืจื•ืช ืฉ AI ืžืชืืจ ื™ื•ืคื™ ืžื” ืงืจื” ื‘ืงื•ืžื™ื˜, ื”ื•ื ืœื ื™ื•ื“ืข ืืช ื”ืงื•ื ื˜ืงืกื˜ ื”ืืžื™ืชื™, ืืช ื”ืกื™ื‘ื” ื”ืืžื™ืชื™ืช ื‘ื’ืœืœื” ื“ื—ืคืชื™ ื“ื•ื•ืงื ืืช ื”ืงื•ื“ ื”ื–ื”. ื”ื•ื ืœื ื™ื•ื“ืข ืื™ื–ื” ืื•ืคืฆื™ื•ืช ืื—ืจื•ืช ื‘ื“ืงืชื™, ืžื” ื—ืฉื‘ืชื™ ืฉืขืœื•ืœ ืœื”ืฉืชื‘ืฉ, ืžื” ื”ืฉืชื‘ืฉ ืื• ืœื ื”ืฉืชื‘ืฉ ื‘ืกื•ืฃ, ื‘ืงื™ืฆื•ืจ ืืช ื›ืœ ื”ืžืกื‘ื™ื‘ ืฉืœ ื”ืคื™ืฆ'ืจ. ื‘ 2026 ื”ื•ื“ืขืช ืงื•ืžื™ื˜ ืœื ืฆืจื™ื›ื” ืœืกืคืจ ืžื” ืงืจื”. ื—ื‘ืœ ืขืœ ื”ื‘ื™ื˜ื™ื. ืื‘ืœ ื”ื™ื ื›ืŸ ืฆืจื™ื›ื” ืœืกืคืจ ืืช ืกื™ืคื•ืจ ื”ืจืงืข. ื”ื•ื“ืขืช ืงื•ืžื™ื˜ ื˜ื•ื‘ื” ื”ื™ื ื›ืžื• ืžื›ื•ื ืช ื–ืžืŸ ืฉืœื•ืงื—ืช ืื•ืชื ื• ื™ืฉืจ ืœืื•ืชื• ืจื’ืข ื‘ื–ืžืŸ ื‘ื• ื”ื—ืœื˜ื ื• ืœื“ื—ื•ืฃ ื“ื•ื•ืงื ืืช ื”ืงื•ื“ ื”ื–ื”. ื”ื™ื Context Dump ืฉืœ ืžื™ ืฉื™ืฉื‘ ืœื™ื“ ื”ื”ื’ื” ื•ื”ื—ืœื™ื˜ ืฉื–ื” ืžื•ื›ืŸ. ื”ืจื‘ื” ืคืขืžื™ื ื›ื“ืื™ ืœืฉืœื‘ ื›ื•ื—ื•ืช. ืกื•ื›ืŸ ื”ืงื™ื“ื•ื“ ื™ื›ืชื•ื‘ ื”ื•ื“ืขื•ืช ืงื•ืžื™ื˜ ืื•ื˜ื•ืžื˜ื™ื•ืช ื‘ืขื ืฃ ืžืฉืœื•. ื‘ืจื’ืข ืฉื–ื” ืžื•ื›ืŸ ืื ื™ ืขื•ื‘ืจ ืขื ืจื™ื‘ื™ื™ืก, ื‘ื•ื—ืจ ืื™ื–ื” ืงื•ืžื™ื˜ื™ื ื”ื™ื• ื‘ืขืœื™ ืžืฉืžืขื•ืช ื‘ืชื”ืœื™ืš ื”ืคื™ืชื•ื—, ื›ื•ืชื‘ ืœื”ื ื”ื•ื“ืขื•ืช ืงื•ืžื™ื˜ ืžืฉืžืขื•ืชื™ื•ืช ื•ื–ื•ืจืง ืืช ื›ืœ ื”ื™ืชืจ. ืœื "ืœืžื” ืชื™ืงื ืชื™ ืืช ื–ื”" ืื• "ืžื” ื”ื™ื” ืฉื‘ื•ืจ", ืืœื "ืœืžื” ื“ื•ื•ืงื ืืช ื–ื”", "ืžื” ื”ื™ื• ื”ืืคืฉืจื•ื™ื•ืช ื”ืื—ืจื•ืช" ื•ืืคื™ืœื• ืžื” ื‘ื“ื™ื•ืง ื”ืœืงื•ื— ืจืื” ื•ืืžืจ ื›ืฉื”ื•ื ื“ื™ื•ื•ื— ืขืœ ื”ื‘ืื’.

ToCode
1 419
ื›ืฉืื ื—ื ื• ืขื•ื‘ื“ื™ื ืขื ืกื•ื›ืŸ ืงื™ื“ื•ื“ ืื ื—ื ื• ืžื›ื ื™ืกื™ื ืฉื•ืชืฃ ืœื ืฆืคื•ื™ ืœืžื—ืฉื‘. ืจื•ื‘ ื”ื–ืžืŸ ืฉื•ืชืฃ ื–ื” ื™ืขื–ื•ืจ ืœื ื• ืœื›ืชื•ื‘ ืงื•ื“ ืžื”ืจ ื™ื•ืชืจ ื•ื˜ื•ื‘ ื™ื•ืชืจ ืื‘ืœ ื”ืฉื’ื—ื” ื•ื‘ื™ื“ื•ื“ ื”ื ื”ื›ืจื—ื™ื™ื ื›ื“ื™ ืฉื“ื‘ืจื™ื ืœื ื™ื™ืฉื‘ืจื•. ื”ื“ื‘ืจื™ื ื”ืžืจื›ื–ื™ื™ื ืฉืขืœื™ื ื• ืœืฉื™ื ืœื‘ ืืœื™ื”ื ื‘ืขื‘ื•ื“ื” ื”ืฉื•ื˜ืคืช: 1. ืงืจืืชื™ ื•ืื ื™ ืžื‘ื™ืŸ ื›ืœ ืฉื•ืจื” ืฉื”ืกื•ื›ืŸ ื›ืชื‘, ื”ื™ื ืžืชืื™ืžื” ืœืคืจื•ื™ืงื˜ ืฉืœื™ ื•ืœื ื™ื•ืฆืจืช ื‘ืขื™ื•ืช ืื‘ื˜ื—ื” ื—ื“ืฉื•ืช. 2. ื”ืกื•ื›ืŸ ืจืฅ ื‘ืกื‘ื™ื‘ื” ืžื‘ื•ื“ื“ืช - ื’ื ืื ื”ื•ื ื™ื—ืœื™ื˜ ืœืฉื‘ื•ืจ ื“ื‘ืจื™ื ืื™ืŸ ืœื• ื™ื›ื•ืœืช ืœืขืฉื•ืช ื ื–ืง ืืžื™ืชื™. ื‘ื•ื•ื‘ื™ื ืจ ื‘ื™ื•ื ื—ืžื™ืฉื™ ื”ืฉื‘ื•ืข ื ื“ื‘ืจ ื‘ื”ืจื—ื‘ื” ืขืœ ื›ืœ ื”ืžืงืจื™ื ืžื›ืืŸ ื•ื“ื•ื’ืžืื•ืช ื ื•ืกืคื•ืช. ืžื•ื–ืžื ื™ื ืœื”ืฆื˜ืจืฃ ืืœื™ื ื• ื‘ืงื™ืฉื•ืจ: https://www.tocode.co.il/talking_ai

ToCode
1 419
๐Ÿ“Œ ื”ืกื›ื ื•ืช ื‘ื”ืจืฆืช ืกื•ื›ื ื™ ืงื™ื“ื•ื“ ืขืœ ื”ืžื›ื•ื ื” ืฉืœื ื• ืกื•ื›ื ื™ื ื—ื›ืžื™ื ื•ื‘ืคืจื˜ ืกื•ื›ื ื™ ืงื™ื“ื•ื“ ื”ื ื”ืชื•ื›ื ื” ื”ืจืืฉื•ื ื” ืฉืžื•ืชืงื ืช ื‘ืงื ื” ืžื™ื“ื” ื’ื“ื•ืœ ื•ืฉื”ืชื ื”ื’ื•ืชื” ืื™ื ื” ื“ื˜ืจืžื ื™ืกื˜ื™ืช. ืืฃ ืื—ื“ ืœื ื™ื›ื•ืœ ืœื“ืขืช ืžืจืืฉ ืžื” ืกื•ื›ืŸ ื”ืงื™ื“ื•ื“ ื™ืขืฉื” ื‘ืชื’ื•ื‘ื” ืœื”ื•ื“ืขื” ื”ื‘ืื”. ืžืืคื™ื™ืŸ ื–ื” ื—ื•ืฉืฃ ืื•ืชื ื• ืœืกื›ื ื•ืช ืื‘ื˜ื—ื” ืžืฉืžืขื•ืชื™ื•ืช ื‘ืขื‘ื•ื“ื” ืขื ืกื•ื›ื ื™ ืงื™ื“ื•ื“. ื‘ื•ืื• ื ืจืื” ื›ืžื” ื“ื•ื’ืžืื•ืช ืœื”ืคืชืขื•ืช ื›ืืœื” ืœืงืจืืช ื”ื•ื•ื‘ื™ื ืจ ื”ืฉื‘ื•ืข ืฉื™ืขืกื•ืง ื‘ืื‘ื˜ื—ืช ืžื™ื“ืข ื‘ืขื™ื“ืŸ ื”ืกื•ื›ื ื™ื ื”ื—ื›ืžื™ื. โœ ื”ืจืขืœืช ืžื•ื“ืœื™ ืฉืคื” ืžืงื•ืจ: https://ron.stoner.com/how-i-won-a-championship-that-doesnt-exist/ ื‘ืกื•ืฃ ื™ื ื•ืืจ 2025 ืจื•ืŸ ืกื˜ื•ื ืจ ื”ืขืœื” ืืชืจ ืขื ืชืžื•ื ื” ืฉืœ ื’ื‘ื™ืข ื‘ื• ื›ืชื•ื‘ ืฉื”ื•ื ื–ื›ื” ื‘ืืœื™ืคื•ืช ื”ื ื™ืžื™ืฅ ื”ืฉื ืชื™ืช ืฉื”ืชืงื™ื™ืžื” ื‘ืžื™ื ื›ืŸ. ื”ื•ื ื’ื ืขื“ื›ืŸ ืืช ื”ื“ืฃ ืฉืœ ื ื™ืžื™ืฅ ื‘ื•ื™ืงื™ืคื“ื™ื” ืขื ืงื™ืฉื•ืจ ืœื“ืฃ ื”ื ืฆื—ื•ืŸ ืฉืœื•. ื–ื” ื”ืกืคื™ืง ื‘ืฉื‘ื™ืœ ืœื’ืจื•ื ืœ ChatGPT ืœืžืฆื•ื ืืช ื”ืงื™ืฉื•ืจ ื•ืœืกืคืจ ืฉื”ื•ื ื”ื™ื” ื”ื–ื•ื›ื” ื‘ืชื’ื•ื‘ื” ืœืฉืืœื” ื‘ืฆ'ืื˜. ื”ืชืจื’ื™ืœ ืฉืœ ืกื˜ื•ื ืจ ื”ื•ื ืฉื˜ื—ื™. ืกื˜ื•ื ืจ ื’ืจื ืœืžื•ื“ืœ ืœื”ื™ืชืงืœ ื‘ืฉื ืฉืœื• ื‘ืžื”ืœืš ื—ื™ืคื•ืฉ ื‘ืจืฉืช - ืื‘ืœ ืžื‘ื”ื™ืจ ืœื ื• ืขื“ ื›ืžื” ืงืœ ืœืจืžื•ืช ืกื•ื›ื ื™ื ื—ื›ืžื™ื ื‘ืžื™ื•ื—ื“ ื›ืืœื” ืฉื™ื•ืฆืื™ื ืœื—ืคืฉ ื‘ืจืฉืช. ืื•ืชื• ืžื ื’ื ื•ืŸ ื™ื›ื•ืœ ืœื”ื™ื•ืช ืžื ื•ืฆืœ ืœืจืขื” ืขืœ ื™ื“ื™ ื’ื•ืจืžื™ื ื–ื“ื•ื ื™ื™ื ืฉื™ืงื™ืžื• ืืชืจื™ื ืฉื™ืคืจืกืžื• ื—ื‘ื™ืœื•ืช npm ืฉื”ืŸ ื‘ืขืฆื ืจื•ื’ืœื•ืช, ืื•ืชืŸ ื”ืกื•ื›ืŸ ื™ืชืงื™ืŸ ื‘ืœื™ ืœื”ื‘ื™ืŸ ืฉืžื“ื•ื‘ืจ ื‘ืจื•ื’ืœื”. โœ ื‘ืื’ ื‘ืกื•ื›ืŸ ื™ื•ืฆืจ ื—ื™ื•ื‘ ืžื•ื’ื–ื ืกื•ื›ื ื™ ืงื™ื“ื•ื“ ื”ื ื›ืœื™ ืคื™ืชื•ื— ื™ื™ื—ื•ื“ื™ ื‘ื›ืš ืฉื”ื ืžื—ื•ื‘ืจื™ื ืœื›ืจื˜ื™ืก ืืฉืจืื™, ื›ืš ืฉื›ื›ืœ ืฉื”ืกื•ื›ืŸ ืžืฉืชืžืฉ ื‘ื™ื•ืชืจ ื˜ื•ืงื ื™ื ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœืฉืœื ื™ื•ืชืจ. ืฉื ื™ ื‘ืื’ื™ื ืžืขื ื™ื™ื ื™ื ืžื‘ื”ื™ืจื™ื ืœื ื• ืฉื”ื—ื™ื‘ื•ืจ ื”ื–ื” ืืฃ ืคืขื ืœื ืขื•ื‘ื“ ื—ืœืง. ื‘ืžืงืจื” ืื—ื“ ืื ื˜ืจื•ืคื™ืง ื”ื—ืœื™ื˜ื• ืฉื”ื ืœื ืจื•ืฆื™ื ืœืืคืฉืจ ืœืขื•ื–ืจ ืื™ืฉื™ ื‘ืฉื Hermes ืœื”ืฉืชืžืฉ ื‘ืชื•ื›ื ื™ืช ื”ืžื ื•ื™ื™ื ืฉืœื”ื ืื– ื”ื ื ื™ืกื• ืœื ืชื‘ ื‘ืงืฉื•ืช ืž Hermes ืœื—ื™ื•ื‘ ื’ื‘ื•ื” ื™ื•ืชืจ. ื”ืชื•ืฆืื” ื”ื™ืชื” ืฉืžืกืคื™ืง ืœื›ืชื•ื‘ ืืช ื”ืžื™ืœื” HERMES.md ื‘ื”ื•ื“ืขืช ืงื•ืžื™ื˜ ื•ืงืœื•ื“ ืงื•ื“ ื™ื—ื™ื™ื‘ ืื•ืชืš ื‘ืชืฉืœื•ื ื’ื‘ื•ื” ื™ื•ืชืจ ืขืœ ื”ืคื™ืชื•ื—: https://github.com/anthropics/claude-code/issues/53262 ื‘ืžืงืจื” ืื—ืจ ืื•ืคืŸืงื•ื“ (ืขื•ื“ ืกื•ื›ืŸ ืงื™ื“ื•ื“) ื”ืชื—ื‘ืจ ืœืชื•ื›ื ื™ืช ื”ืžื ื•ื™ื™ื ืฉืœ ื’ื™ื˜ื”ืื‘ ืงื•ืคื™ื™ืœื•ื˜, ืื‘ืœ ื‘ื’ืœืœ ื‘ืื’ ื‘ืžืฆื‘ื™ื ืžืกื•ื™ืžื™ื ื”ืฉืชืžืฉ ื‘ื™ื•ืชืจ ื‘ืงืฉื•ืช ื‘ืชืฉืœื•ื ื•ื›ืš ืกื™ื™ื ืœืžืฉืชืžืฉื™ื ืืช ื”ืžื ื•ื™ ืžื•ืงื“ื: https://github.com/anomalyco/opencode/issues/16937 โœ ื˜ืขื•ืช ืฉืœ ื”ืžื•ื“ืœ ืžื•ื—ืงืช ื ืชื•ื ื™ ืคืจื•ื“ืงืฉืŸ ืžืงื•ืจ: https://x.com/lifeof_jer/status/2048103471019434248?s=46 ื’'ืจ ืงืจื™ื™ืŸ, ื”ืžื™ื™ืกื“ ืฉืœ PocketOS ื—ื™ื‘ื•ืจ ืืช ืงืœื•ื“ ืื•ืคื•ืก ืœืกื‘ื™ื‘ืช ื”ืคื™ืชื•ื— ืฉืœื• ื‘ Cursor. ื”ื•ื ืฉื›ื— ืฉื‘ืื™ื–ืฉื”ื• ืงื•ื‘ืฅ ื˜ืงืกื˜ ื‘ืชื™ืงื™ื™ืช ื”ืคืจื•ื™ืงื˜ ื”ื™ื” ื›ืชื•ื‘ ื˜ื•ืงืŸ ื”ื’ื™ืฉื” ืœืกื‘ื™ื‘ืช ื”ืคืจื•ื“ืงืฉืŸ - ื›ื“ื™ ืœื”ืจื™ืฅ ืชื”ืœื™ืš ืชื—ื–ื•ืงื” ืฉื’ืจืชื™. ืงืœื•ื“ ืื•ืคื•ืก ื ืชืงืœ ื‘ื‘ืขื™ื”, ื—ืฉื‘ ืฉืฆืจื™ืš ืœื™ืฆื•ืจ ืžื—ื“ืฉ ืืช ื”ืกื‘ื™ื‘ื”, ืžืฆื ืืช ื”ื˜ื•ืงืŸ ืฉืœ ืกื‘ื™ื‘ืช ื”ืคืจื•ื“ืงืฉืŸ ื•ื”ืฉืชืžืฉ ื‘ื• ื›ื“ื™ ืœื™ืฆื•ืจ ืžื—ื“ืฉ ืืช ืกื‘ื™ื‘ืช ื”ืคืจื•ื“ืงืฉืŸ - ื•ื›ืš ืžื—ืง ืืช ื›ืœ ื ืชื•ื ื™ ื”ืžืฉืชืžืฉื™ื. ื‘ืขื‘ื•ื“ื” ืขื ืกื•ื›ื ื™ ืงื™ื“ื•ื“ ืื ื—ื ื• ื ื•ื˜ื™ื ืœื—ืฉื•ื‘ ืฉื™ืฉ ืœื ื• ืขื•ื–ืจ ืื™ืฉื™ ืžื™ื•ืžืŸ ืขืœ ื”ืžื—ืฉื‘ ืฉืชืžื™ื“ ื™ืขืฉื” ืžื” ืฉื˜ื•ื‘ ืœืคืจื•ื™ืงื˜. ื–ื” ื ื›ื•ืŸ ื‘ 99% ืžื”ืžืงืจื™ื. ืœืฉืืจ ื”-1% ืขืœื™ื ื• ืœื•ื•ื“ื ืžื ื’ื ื•ื ื™ ื”ื’ื ื” ื˜ื•ื‘ื™ื ื‘ืกื‘ื™ื‘ื” ืฉื™ืžื ืขื• ืžืื ืฉื™ื ืื• ืกื•ื›ื ื™ื ืคื–ื™ื–ื™ื ืœืขืฉื•ืช ื ื–ืงื™ื. โœ ื”ื–ืจืงืช ืคืจื•ืžืคื˜ ืžื•ื‘ื™ืœื” ืœื”ืฉืชืœื˜ื•ืช ืขืœ ืžื›ื•ื ื•ืช ืžืงื•ืจ: https://neciudan.dev/cline-ci-got-compromised-here-is-how ื”ืฆื•ื•ืช ืฉืœ cline (ืขื•ื“ ืกื•ื›ืŸ ืงื™ื“ื•ื“) ืจืฆื” ืœืžื™ื™ืŸ ืืช ื”ื‘ืงืฉื•ืช ืฉื”ื ืžืงื‘ืœื™ื ืžืžืฉืชืžืฉื™ื ื‘ืืžืฆืขื•ืช AI. ืื– ื”ื ื™ืฆืจื• Github Action ืฉืžืคืขื™ืœ ืืช ืงืœื•ื“ ื›ื“ื™ ืœืฉื™ื ื›ืœ ืคื ื™ื” ื‘ืžืงื•ื ื”ืžืชืื™ื. ื”ืคืจื•ืžืคื˜ ืœืงืœื•ื“ ื”ื›ื™ืœ ืืช ื›ื•ืชืจืช ื” Issue ืฉื ืคืชื— ื•ื”ืกื•ื›ืŸ ื”ื•ืคืขืœ ืขื ื”ืจืฉืื” ืœื”ืจืฆืช ื›ืœื™ื:
allowed_non_write_users: "*"
claude_args: >-
  --allowedTools "Bash,Read,Write,Edit,Glob,Grep,WebFetch,WebSearch"
prompt: |
  **Issue:** #${{ github.event.issue.number }}
  **Title:** ${{ github.event.issue.title }}
ืœื ืœืงื— ื”ืจื‘ื” ื–ืžืŸ ืขื“ ืฉืคื•ืจืฆื™ื ืจืื• ืืช ื–ื” ื•ื™ืฆืจื• Issue ืขื ืฉื ืฉื’ืจื ืœืกื•ื›ืŸ ืœื”ืชืงื™ืŸ ื—ื‘ื™ืœืช npm ื–ื“ื•ื ื™ืช ืฉื”ื ื™ืฆืจื• ื•ื›ืš ื”ืฉืชืœื˜ื• ืขืœ ืžื›ื•ื ืช ื”ืžื™ื•ืŸ, ื•ืžืžื ื” ืขืœ ื›ืœ ื”ืคืจื•ื™ืงื˜. ืกื™ืคื•ืจ ื“ื•ืžื” ืงืจื” ืขื Coderabbit, ืกื‘ื™ื‘ื” ืœ Code Review ื•ืืคืฉืจ ืœืงืจื•ื ืขืœื™ื• ื›ืืŸ: https://kudelskisecurity.com/research/how-we-exploited-coderabbit-from-a-simple-pr-to-rce-and-write-access-on-1m-repositories โœ ืงื™ื“ื•ื“ ืžื”ื™ืจ ืžื•ื‘ื™ืœ ืœื™ื•ืชืจ ื‘ืื’ื™ื ื ืงื•ื“ื” ืื—ืจื•ื ื” ื‘ืจืฉื™ืžื” ื”ื™ื ืชืจื‘ื•ืช ื”ืขื‘ื•ื“ื” ืฉืœ ืขื™ื“ืŸ ื” AI - ืœื›ืชื•ื‘ ื”ืžื•ืŸ ืงื•ื“, ืœื“ื—ื•ืฃ ืžื”ืจ ืœืคืจื•ื“ืงืฉืŸ ืื—ืจื™ ื‘ื“ื™ืงื” ืงืฆืจื”, ืœืกืžื•ืš ืขืœ ื”ืกื•ื›ืŸ ืฉื›ื•ืชื‘ ืืช ื”ืงื•ื“ ื”ื ื›ื•ืŸ. ื›ื ืจืื” ืฉืžื™ื–ื•ื’ ืžื”ื™ืจ ืฉืœ ืคื™ืฆ'ืจื™ื ื”ื•ื ืื—ื“ ื”ื’ื•ืจืžื™ื ืœื‘ืื’ ื”ื–ื” ื‘ืื•ืคืŸืงื•ื“: https://github.com/anomalyco/opencode/security/advisories/GHSA-vxw4-wv6m-9hhh ืฉื ืื•ืคืŸืงื•ื“ ืคืชื—ื• ืฉืจืช HTTP ืฉืœื ื“ื•ืจืฉ ื”ื–ื“ื”ื•ืช ื•ืžืืคืฉืจ ื”ืจืฆืช ืคืงื•ื“ื•ืช ืขืœ ื”ืžื—ืฉื‘ ืฉืœ ื”ืžืคืชื—. ื”ืชื•ืฆืื” ื”ื™ื ืฉืืชืจื™ื ื–ื“ื•ื ื™ื™ื ื™ื›ื•ืœื™ื ืœื”ืจื™ืฅ ืงื•ื“ ื•ื›ืš ืœื”ืฉืชื™ืœ ืจื•ื’ืœื•ืช ื•ื•ื™ืจื•ืกื™ื ืขืœ ืžื—ืฉื‘ื™ื ืฉืœ ืžืคืชื—ื™ื ืฉืžืจื™ืฆื™ื ืื•ืคืŸืงื•ื“ ื•ื’ื•ืœืฉื™ื ืœืื•ืชื ืืชืจื™ื. โœ ืกื™ื›ื•ื

ToCode
1 419
๐Ÿ“Œ ื˜ื•ืงื ื™ื ืžื™ื•ืชืจื™ื ื‘ื™ืงืฉืชื™ ืžืงืœื•ื“ ืื•ืคื•ืก ืœื›ืชื•ื‘ ื“ื•ื’ืžื” ืœืืคืœื™ืงืฆื™ื™ืช Hello World ื‘ืคืœืืกืง. ื”ืงื•ื“ ืฉืœ main ืฉื”ื•ื ื›ืชื‘ ื”ื™ื”:
from app import create_app

app = create_app()


if __name__ == "__main__":
    app.run(host="127.0.0.1", port=5100, debug=True)
ืคื•ืจื˜ 5100 ืฉื ื›ื™ ืื ื™ ื‘ื™ืงืฉืชื™. ืืช debug ื”ื•ื ื›ืชื‘ ืขืœ ื“ืขืช ืขืฆืžื• ื• host ื”ื•ื ืกืชื ืจืขืฉ. ืคืœืืกืง ืžืฉืชืžืฉ ื‘ 127.0.0.1 ื‘ืชื•ืจ ืขืจืš ื‘ืจื™ืจืช ืžื—ื“ืœ. ืžืจื’ืข ืฉืขืจืš ื–ื” ื ื›ืชื‘ ื”ื•ื ืžื’ื“ื™ืœ ืืช ื”ืงื•ื‘ืฅ, ืชื•ืคืก ื˜ื•ืงื ื™ื ื‘ื›ืœ ื‘ืงืฉื” ืขืชื™ื“ื™ืช ื•ืขืœื•ืœ ืœื’ืจื•ื ืœืžืคืชื—ื™ ืคื™ื™ืชื•ืŸ ืœืชื”ื•ืช ืœืžื” ื–ื” ืฉื. ื‘ืขื‘ื•ื“ื” ืืžื™ืชื™ืช ืขื ืกื•ื›ื ื™ ืงื™ื“ื•ื“ ืื ื™ ื ืชืงืœ ื‘ื”ืžื•ืŸ ื˜ื•ืงื ื™ื ืžื™ื•ืชืจื™ื ื•ืื ื™ ืžื•ื“ื” ืฉื™ืฉ ื”ืชืœื‘ื˜ื•ืช ืืžื™ืชื™ืช ืžื” ืขื•ืฉื™ื ืื™ืชื. ืžืฆื“ ืื—ื“ ืœื ืงื•ืช ืงื•ื“ ืฉืœ ืžืื•ืช ืฉื•ืจื•ืช ื™ื›ื•ืœ ืœื”ื™ื•ืช ืžืืชื’ืจ, ืžืฆื“ ืฉื ื™ ืœื”ืฉืื™ืจ ื˜ื•ืงื ื™ื ืžื™ื•ืชืจื™ื ืฉื’ื•ืจืžื™ื ืœืงื•ื“ ืœื”ื™ื•ืช ืคื—ื•ืช ื‘ืจื•ืจ ืจืง ื™ืกื‘ืš ืื•ืชื ื• ื‘ืขืชื™ื“. ื”ืคืชืจื•ืŸ ืฉืœื™ ื”ื™ื•ื ื”ื•ื ืœื•ื•ื“ื ืงื™ื•ื ื‘ื“ื™ืงื•ืช ืื•ื˜ื•ืžื˜ื™ื•ืช ืœื›ืœ ืคื™ืฆ'ืจ ื•ืื– ืœื ืงื•ืช ืืช ื”ืคื™ืฆ'ืจ ืœืคื™ ื”ื’ื“ืจืช ืกื•ื›ืŸ ื ื™ืงื•ื™ ื ืคืจื“. ืื ืกื•ื›ืŸ ื”ื ื™ืงื•ื™ ืžืคืกืคืก ืžื‘ื ื” ืžืกื•ื™ื ืื ื™ ืžื•ืกื™ืฃ ืื•ืชื• ืœืงื•ื‘ืฅ ื”ื•ืจืื•ืช ืกื•ื›ืŸ ื”ื ื™ืงื•ื™. ืื—ืจื™ ื”ื ื™ืงื•ื™ ืื ื™ ื™ื›ื•ืœ ืœื”ื™ืขื–ืจ ื‘ื‘ื“ื™ืงื•ืช ื”ืื•ื˜ื•ืžื˜ื™ื•ืช ื›ื“ื™ ืœื•ื•ื“ื ืฉืกื•ื›ืŸ ื”ื ื™ืงื•ื™ ืœื ืฉื‘ืจ ื›ืœื•ื, ื•ื›ืŸ ื›ืœ ื”ืชื”ืœื™ืš ื”ื–ื” ืงื•ืจื” ืื•ื˜ื•ื ื•ืžื™ืช. ื”ืžื˜ืจื” ื”ื™ื ืœืงื‘ืœ ืž AI ืงื•ื“ ืขื•ื‘ื“ ื‘ื• ืื ื™ ืžื‘ื™ืŸ ื›ืœ ื˜ื•ืงืŸ. ื .ื‘. ื’ื ื”ืžื•ื“ืœ ื•ื’ื ื” Harness ืื—ืจืื™ื ืœื˜ื•ืงื ื™ื ื”ืžื™ื•ืชืจื™ื. ืœืคืขืžื™ื ื™ื•ืชืจ ืงืœ ืœื”ืขืชื™ืง ืืช ื”ืคืจื•ืžืคื˜ ืœ pi ืื• ืœืงื•ืคื™ื™ืœื•ื˜ ื•ืœืจืื•ืช ืžื” ื”ื ื™ืขืฉื• ื‘ืžืงื•ื ืœื ืงื•ืช ืงื•ื“ ืžื ื•ืคื— ืฉืœ ืงืœื•ื“ ืงื•ื“. ื”ืžืฉื—ืง ื”ื•ื ืœื AI ืืœื ืคื™ื™ืชื•ืŸ. ืœื“ืขืช ืฉืœื ืฆืจื™ืš ืœืฆื™ื™ืŸ host=127.0.0.1 ื‘ืงืจื™ืื” ืœ run ื›ื™ ื–ื• ื‘ืจื™ืจืช ื”ืžื—ื“ืœ.

ToCode
1 419
๐Ÿ“Œ ื”ื•ืง ืœืงืœื•ื“ ืขื‘ื•ืจ ืงื•ืžื™ื˜ ืื—ืจื™ ื›ืœ ืฉื™ื ื•ื™ ืืชืžื•ืœ ื‘ื•ื•ื‘ื™ื ืจ ื”ืจืื™ืชื™ ืื™ืš ืœื”ืฉืชืžืฉ ื‘ื’ื™ื˜ ื‘ืขื‘ื•ื“ื” ืขื ืกื•ื›ื ื™ ืงื™ื“ื•ื“ ื•ืื—ืช ื”ื”ืžืœืฆื•ืช ื”ื—ืฉื•ื‘ื•ืช ื”ื™ืชื” ืœื ืœืคื—ื“ ืžืงื•ืžื™ื˜ื™ื. ื›ืœ ืคืขื ืฉื™ืฉ ืฉื™ื ื•ื™ ืงื•ื“ ืขื•ืฉื™ื ืงื•ืžื™ื˜ ื•ืื—ืจื™ ื–ื” ืื ืžืชื—ืจื˜ื™ื ืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘ git reset --hard ื›ื“ื™ ืœื—ื–ื•ืจ ืื—ื•ืจื”. ื—ืœืง ืžื”ืžืฉืชืชืคื™ื ื”ืขื™ืจื• ืฉืืคืฉืจ ืœืขืฉื•ืช ืืช ื”ืงื•ืžื™ื˜ื™ื ื”ืืœื” ืื•ื˜ื•ืžื˜ื™ืช ื•ืื– ืœื ืฉื•ื›ื—ื™ื. ื”ืœื›ืชื™ ืœื—ืงื•ืจ ืืช ื”ืจืขื™ื•ืŸ ื•ืฉืžื—ืชื™ ืœืจืื•ืช ืฉื–ื” ืขื‘ื“ ื“ื™ ื‘ืงืœื•ืช. ืื ืืชื ื‘ืงืœื•ื“ ืงื•ื“ ืืคืฉืจ ืœื™ืฆื•ืจ ืงื•ื‘ืฅ .claude/settings.json ื‘ืชื™ืงื™ื™ืช ื”ืคืจื•ื™ืงื˜ ืขื ื”ืชื•ื›ืŸ ื”ื‘ื:
{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "bash ~/.claude/hooks/auto-commit.sh",
            "async": true,
            "timeout": 30
          }
        ]
      }
    ]
  }
}
ื•ืื– ื”ืกืงืจื™ืคื˜ auto-commit.sh ื™ืจื•ืฅ ื›ืœ ืคืขื ืฉืงืœื•ื“ ืžืกื™ื™ื ืœื›ืชื•ื‘ ืชืฉื•ื‘ื”. ืืช ื”ืกืงืจื™ืคื˜ ืขืฆืžื• ื ืชืชื™ ืœืงืœื•ื“ ืœื›ืชื•ื‘ ื•ื”ื•ื ื ืจืื” ื›ืš:
#!/usr/bin/env bash
# Stop hook: auto-commit Claude's changes using the last user prompt
# as the commit message.

set -uo pipefail

INPUT=$(cat)
read -r STOP_HOOK_ACTIVE TRANSCRIPT_PATH PROJECT_DIR < <(
  printf '%s' "$INPUT" | jq -r '[.stop_hook_active // false, .transcript_path // "", .cwd // ""] | @tsv'
)

[ "$STOP_HOOK_ACTIVE" = "true" ] && exit 0

[ -n "$PROJECT_DIR" ] && cd "$PROJECT_DIR" 2>/dev/null || exit 0
git rev-parse --git-dir >/dev/null 2>&1 || exit 0
git add -A 2>/dev/null || exit 0
git diff --cached --quiet && exit 0

# Last user text message from this turn's transcript.
# Skips tool_result entries and slash-commands (which start with '<').
USER_PROMPT=""
if [ -f "$TRANSCRIPT_PATH" ]; then
  USER_PROMPT=$(jq -r '
    select(.type == "user") | .message.content
    | if type == "string" then .
      elif type == "array" then (map(select(.type == "text")) | .[0].text // "")
      else "" end
    | select(. != "" and (startswith("<") | not))
  ' "$TRANSCRIPT_PATH" 2>/dev/null | tail -1)
fi

# Use the user prompt as the commit message; first line as subject (capped at
# 72 chars), remaining lines as the body.
if [ -n "$USER_PROMPT" ]; then
  SUBJECT=$(printf '%s' "$USER_PROMPT" | head -1 | cut -c1-72)
  BODY=$(printf '%s' "$USER_PROMPT" | tail -n +2)
else
  SUBJECT="checkpoint: $(date +%H:%M)"
  BODY=""
fi

if [ -n "$BODY" ]; then
  git commit --no-verify -m "$SUBJECT" -m "$BODY" >/dev/null 2>&1 || true
else
  git commit --no-verify -m "$SUBJECT" >/dev/null 2>&1 || true
fi
exit 0
ืงืœื•ื“ ืžืคืขื™ืœ ืืช ื”ืกืงืจื™ืคื˜ ืขื JSON ืฉืœ ืžื™ื“ืข ืขืœ ื”ืฉื™ื—ื” ื”ืื—ืจื•ื ื”. ืžื” ืฉืžืขื ื™ื™ืŸ ืื•ืชื ื• ืžืชื•ืš ื” JSON ื”ื–ื” ื”ื•ื ื”ื”ื•ื“ืขื” ืฉืœ ื”ืžืฉืชืžืฉ, ื›ื™ ืื ื™ ืื•ื”ื‘ ืฉื”ืคืจื•ืžืคื˜ ืฉืœื™ ื”ื•ืคืš ืœื”ื•ื“ืขืช ื”ืงื•ืžื™ื˜ (ืื ืฆืจื™ืš ื”ื•ื“ืขื” ื™ื•ืชืจ ืžืชื•ื—ื›ืžืช ืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘ git commit --amend ื›ื“ื™ ืœืชืงืŸ). ืœื™ืชืจ ื‘ื˜ื—ื•ืŸ ืงืœื•ื“ ื”ื•ืกื™ืฃ --no-verify ืœืคืงื•ื“ืช ื”ืงื•ืžื™ื˜ ื›ื“ื™ ืœื“ืœื’ ืขืœ ืงื•ืžื™ื˜ ื”ื•ืงืก. ืื ื™ ื—ื•ืฉื‘ ืฉื–ื” ื”ื•ื’ืŸ ื•ืžืžื™ืœื ืœื ืžืฉืชืžืฉ ื‘ืงื•ืžื™ื˜ ื”ื•ืงืก. ื™ืฉ ื’ื ื‘ื“ื™ืงื” ื‘ื”ืชื—ืœื” ืฉืžื“ืœื’ืช ืขืœ ื›ืœ ื”ืกืงืจื™ืคื˜ ืื ืื ื—ื ื• ืœื ื‘ืชื•ืš ืจื™ืคื•. ืกืš ื”ื›ืœ ืจืขื™ื•ืŸ ืžืขื ื™ื™ืŸ. ืฉื™ืžื• ืœื‘ ืฉืืคืฉืจ ืœื”ืคืขื™ืœ ืืช ื” hook ืื• ืžืงื•ืžื™ืช ืœืคืจื•ื™ืงื˜ ื”ื ื•ื›ื—ื™ ืื• ื‘ืื•ืคืŸ ื’ืœื•ื‘ืืœื™ ืื ืจื•ืฉืžื™ื ืื•ืชื• ื‘ settings ืฉืœ ืงืœื•ื“ ื‘ืชื™ืงื™ื™ืช ื”ื‘ื™ืช. ืื ื™ ืžืชื›ื ืŸ ืœื”ืชื—ื™ืœ ืขื ืคืจื•ื™ืงื˜ ืื—ื“ ื•ืœืจืื•ืช ืื™ืš ื–ื” ื™ืขื‘ื•ื“ ืœืื•ืจืš ื–ืžืŸ.

ToCode
1 419
๐Ÿ“Œ ืื™ื˜ืจืฆื™ื•ืช ืžื”ื™ืจื•ืช, ืคื™ืฆ'ืจื™ื ืื™ื˜ื™ื™ื ื›ื•ืœื ืื•ืžืจื™ื ืฉืงื•ื“ ื”ืคืš ื–ื•ืœ ืืคื™ืœื• ื—ื™ื ื. ืื‘ืœ ืงื•ื“ ื”ื•ื ื—ื™ื ื ื›ืžื• ืฉื›ืœื‘ืœื‘ ื”ื•ื ื‘ื—ื™ื ื. ืื—ืจื™ ืฉื”ื›ื ืกืช ืื•ืชื• ืืชื” ืชืงื•ืข ืื™ืชื•. ื”ื”ื–ื“ืžื ื•ืช ื‘ AI ื”ื™ื ืœื ืœื™ื™ืฆืจ ื™ื•ืชืจ ืงื•ื“, ืื ื—ื ื• ืœื ืฆืจื™ื›ื™ื ื™ื•ืชืจ ืงื•ื“, ื‘ืจื•ื‘ ื”ืžืขืจื›ื•ืช ืžืžื™ืœื ื™ืฉ ื™ื•ืชืจ ืžื“ื™. ื”ื”ื–ื“ืžื ื•ืช ื”ื™ื ืœื™ื™ืฆืจ ืืช ื”ืงื•ื“ ื”ื ื›ื•ืŸ. ื™ื•ืชืจ ืื™ื˜ืจืฆื™ื•ืช, ื™ื•ืชืจ ืžื—ื™ืงื•ืช, ื™ื•ืชืจ ืฉื™ื ื•ื™ื™ื ืขื ืงื™ื™ื, ื™ื•ืชืจ ืžื™ื’ืจืฆื™ื•ืช, ืคื—ื•ืช ื”ื™ืงืฉืจื•ืช ืจื’ืฉื™ืช ืœืžื ื’ื ื•ื ื™ื. ื›ืฉ AI ื›ื•ืชื‘ ืœื™ ืฉื”ื•ื ื›ืชื‘ ืืช ื”ืงื•ื“ ืฉื™ืฉื‘ื•ืจ ื”ื›ื™ ืคื—ื•ืช ื“ื‘ืจื™ื ืื ื™ ืžื‘ื™ืŸ ืฉื™ืฉ ื‘ืขื™ื” ื‘ System Prompt. ื”ืžื˜ืจื” ื”ื™ื ืœื ืœืฉืžื•ืจ ืขืœ ื”ืงื™ื™ื ืืœื ืœื›ืชื•ื‘ ื•ืœื–ืจื•ืง, ืœื›ืชื•ื‘ ื•ืœื–ืจื•ืง. ืื™ื˜ืจืฆื™ื•ืช ืžื”ื™ืจื™ื, ืคื™ืฆ'ืจื™ื ืื™ื˜ื™ื™ื.

ToCode
1 419
5. ืื ื™ืฉ ื”ื•ื“ืขื•ืช ื ื™ื•ื•ื˜ ืžืžืชื™ื ื•ืช ื ื•ืกื™ืฃ ืื•ืชืŸ ืœืจืฉื™ืžืช ื”ื”ื•ื“ืขื•ืช ืฉืœ ื”ืฉื™ื—ื”. ืขื›ืฉื™ื• ืžื’ื™ืขื” ื”ืฉื•ืจื” ื”ื›ื™ ื—ืฉื•ื‘ื” ืฉืœ ื”ืคื•ื ืงืฆื™ื”:
const message = await streamAssistantResponse(currentContext, config, signal, emit, streamFn);
ืฉื•ืจื” ื–ื• ืคื•ื ื” ืœืžื•ื“ืœ ื•ืžื‘ืงืฉืช ืืช ื”ื”ื•ื“ืขื” ื”ื‘ืื”. ื”ืงื•ื ื˜ืงืกื˜ ื›ื•ืœืœ ืืช ื›ืœ ื”ื”ื•ื“ืขื•ืช ื‘ืฉื™ื—ื”. ืื ื”ืžื•ื“ืœ ื”ื—ื–ื™ืจ ืฉื’ื™ืื” ืื ื—ื ื• ืžืกื™ื™ืžื™ื ื›ืืŸ ืืช ื”ืคื•ื ืงืฆื™ื”, ืื ืœื ืื ื—ื ื• ืžืคืขื™ืœื™ื ืขื•ื“ ืฉื•ืจื” ื—ืฉื•ื‘ื”:
const toolCalls = message.content.filter((c) => c.type === "toolCall");
ืžื•ื“ืœื™ ืฉืคื” ืจื‘ื™ื ื™ื•ื“ืขื™ื ืœืขื‘ื•ื“ ืขื ื›ืœื™ื. ืขื‘ื•ื“ื” ืขื ื›ืœื™ื ืื•ืžืจืช ืฉื”ืžื•ื“ืœ ืžื—ื–ื™ืจ ืœืกื•ื›ืŸ ืื•ื‘ื™ืงื˜ ืฉืื•ืžืจ ืื™ื–ื” ื›ืœื™ ืฆืจื™ืš ืœื”ืคืขื™ืœ. ื›ืœื™ ื”ื•ื ืคื•ื ืงืฆื™ื” ืฉืกื•ื›ืŸ ื”ืงื™ื“ื•ื“ ืžื’ื“ื™ืจ ื•ื”ืžื•ื“ืœ ืฆืจื™ืš ืืช ื”ืชื•ืฆืื” ืฉืœื” ื›ื“ื™ ืœื‘ืฆืข ืžืฉื™ืžื”. ื›ืฉืชืฉื•ื‘ืช ื”ืžื•ื“ืœ ื›ื•ืœืœืช ื‘ืงืฉื•ืช ืœื”ืคืขืœืช ื›ืœื™ื ื”ืกื•ื›ืŸ ืชื•ืคืก ืืช ื”ื‘ืงืฉื•ืช ื•ืžืคืขื™ืœ ืืช ื”ื›ืœื™ื ื‘ืจืฉื™ืžื”. ื”ืกื•ื›ืŸ ื™ื•ืกื™ืฃ ืืช ืชื•ืฆืื•ืช ื”ืคืขืœืช ื”ื›ืœื™ื ืœืงื•ื ื˜ืงืกื˜ ื•ื‘ืื™ื˜ืจืฆื™ื” ื”ื‘ืื” ืฉืœ ื”ืœื•ืœืื” ื”ืžื•ื“ืœ ื›ื‘ืจ ื™ืงื‘ืœ ืืช ื”ื”ื•ื“ืขื•ืช ื™ื—ื“ ืขื ืชื•ืฆืื•ืช ื”ืคืขืœืช ื”ื›ืœื™ื ื›ื“ื™ ืฉืืคืฉืจ ื™ื”ื™ื” ืœื”ืชืงื“ื. ืื—ืจื™ ืฉืฉืœื—ื ื• ื”ื•ื“ืขื” ืœืžื•ื“ืœ, ืงื™ื‘ืœื ื• ืชืฉื•ื‘ื”, ื”ืคืขืœื ื• ื›ืœื™ื ื•ื”ื“ื‘ืงื ื• ืืช ื”ืชืฉื•ื‘ื•ืช ืฉืœื”ื ืขืœ ื”ืงื•ื ื˜ืงืกื˜ ืื ื—ื ื• ืžื’ื™ืขื™ื ืœื ืงื•ื“ื” ืฉื ืงืจืืช turn_end. ืคืื™ ื™ืืคืฉืจ ืœื ื• ืœื›ืชื•ื‘ ืชื•ืกืคื™ื ืฉื™ืชืคืกื• ืืช ื”ื ืงื•ื“ื” ื”ื–ืืช ื•ื™ืขืฆืจื• ืืช ื”ืœื•ืœืื” ื›ืืŸ, ื•ืื ืื™ืŸ ื‘ืงืฉื” ืžื™ื•ื—ื“ืช ืœืขืฆื™ืจื” ืื ื—ื ื• ืžืžืฉื™ื›ื™ื ืœืื™ื˜ืจืฆื™ื” ื”ื‘ืื”. ืœื•ืœืืช ื”ืคืขืœืช ื”ื›ืœื™ื ืชื™ืขืฆืจ ื›ืฉื”ืžื•ื“ืœ ืœื ื™ื‘ืงืฉ ืœื”ืคืขื™ืœ ืฉื•ื‘ ื›ืœื™ื, ื›ืฉื”ืกื•ื›ืŸ ื™ื—ืœื™ื˜ ืฉื”ืคืขืœื ื• ืžืกืคื™ืง ื›ืœื™ื ื•ืฆืจื™ืš ืœืขืฆื•ืจ ืื• ื›ืฉื›ืœ ื”ื›ืœื™ื ืžื—ื–ื™ืจื™ื ืขืจืš ืขืฆื™ืจื”. ืœื•ืœืืช ื”ืกื•ื›ืŸ ื”ื™ื ื”ืœื‘ ืฉืœ ืกื•ื›ื ื™ ืงื™ื“ื•ื“ ื•ื”ื™ื ืžื˜ืคืœืช ื‘ื›ืœ ื”ื•ื“ืขื” ืฉืื ื—ื ื• ืฉื•ืœื—ื™ื. ื‘ื–ื›ื•ืช ืคืื™ ืจืื™ื ื• ืื™ืš ื”ืœื•ืœืื” ื”ื–ื• ื‘ื ื•ื™ื” ื•ืžื” ื”ื™ื ืžืืคืฉืจืช. ื”ืœื•ืœืื” ืฉืงืจืื ื• ื ืงืจืืช ืœื•ืœืืช React ืฉื–ื” ืงื™ืฆื•ืจ ืฉืœ Reason ื• Act, ื•ื–ื” ืื•ืžืจ ืฉื”ืงื•ื“ ืฉื•ืœื— ื”ื•ื“ืขื” ืœืžื•ื“ืœ ืฉืคื”, ื ื•ืชืŸ ืœื• ื”ื–ื“ืžื ื•ืช ืœื”ืจื™ืฅ ื›ืœื™ื, ืฉื•ืœื— ืืช ื”ืชื•ืฆืื” ืฉืœ ื”ื›ืœื™ื ืฉื•ื‘ ืœืžื•ื“ืœ ื•ืžืžืฉื™ืš ื‘ืœื•ืœืื” ืขื“ ืฉืื™ืŸ ื™ื•ืชืจ ืงืœื™ื ืœื”ืคืขื™ืœ. โœ ืฉืืœื•ืช ืœืžื™ื˜ื™ื‘ื™ ืœื›ืช ืงืจืื• ืืช ื”ืงื•ื“ ื•ื ืกื• ืœื—ืฉื•ื‘: 1. ื‘ืื™ื–ื” ืžืฆื‘ื™ื ื ืจืฆื” ืœืขืฆื•ืจ ืืช ืœื•ืœืืช ื”ืกื•ื›ืŸ ื›ืฉื”ืžื•ื“ืœ ืจื•ืฆื” ืœื”ืžืฉื™ืš ื•ืœื”ืคืขื™ืœ ืขื•ื“ ื›ืœื™ื? 2. ืื™ื–ื” ื›ืœื™ื ืขืฉื•ื™ื™ื ืœื’ืจื•ื ืœืกื™ื•ื ื”ืœื•ืœืื”? 3. ื”ืื ืœื•ืœืื” ื–ื• ืžืชืื™ืžื” ืœื›ืœ ืžืฆื‘ื™ ื”ืขื‘ื•ื“ื” ืฉืื ื—ื ื• ืžื›ื™ืจื™ื ืขื ืกื•ื›ื ื™ื ื—ื›ืžื™ื? ืžื” ืงื•ืจื” ื‘ืžืฆื‘ ืชื›ื ื•ืŸ? ื‘ืžืฆื‘ ื˜ื™ื™ืก ืื•ื˜ื•ืžื˜ื™? ื‘ืžืฆื‘ Ask?

ToCode
1 419
๐Ÿ“Œ ืงืจื™ืื” ืžื•ื“ืจื›ืช ื‘ืœื•ืœืืช ื”ืกื•ื›ืŸ ืฉืœ ืคืื™ ืคืื™ ื”ื•ื ืกื•ื›ืŸ ืงื™ื“ื•ื“ ืžื™ื ื™ืžืœื™ืกื˜ื™, ืžื” ืฉืื•ืžืจ ืฉื”ื•ื ื›ื•ืœืœ ืžืขื˜ ืžืื•ื“ ืคื™ืฆ'ืจื™ื ื•ื‘ืฉื‘ื™ืœ ืœืงื‘ืœ ืžืžื ื• ืชื•ืฆืื•ืช ื˜ื•ื‘ื•ืช ืขืœื™ื ื• ืœื‘ื ื•ืช ืœื‘ื“ ื”ืจื—ื‘ื•ืช. ืขื•ื“ ื–ื” ืื•ืžืจ ืฉืืคืฉืจ ืœื”ื›ื ืก ื“ื™ ื‘ืงืœื•ืช ืœืงื•ื“ ืฉืœื• ื•ืœื”ื‘ื™ืŸ ืžื” ืงื•ืจื” ืฉื, ืฉื–ื” ื ืคืœื ืœืžื™ ืฉืจื•ืฆื” ืœื”ื‘ื™ืŸ ืื™ืš ื“ื‘ืจื™ื ืขื•ื‘ื“ื™ื. ื”ืจื™ืคื• ืฉืœ ืคืื™ ื ืžืฆื ื›ืืŸ: https://github.com/badlogic/pi-mono/ ื•ื‘ืฉื‘ื™ืœ ืœื”ื‘ื™ืŸ ืื™ืš ืขื•ื‘ื“ืช ืœื•ืœืืช ืกื•ื›ืŸ ื ืกืชื›ืœ ืขืœ ื”ืงื•ื‘ืฅ: https://github.com/badlogic/pi-mono/blob/main/packages/agent/src/agent-loop.ts ื•ื ื—ืคืฉ ืืช ื”ืคื•ื ืงืฆื™ื” runLoop. ื–ื” ื”ืžื™ืžื•ืฉ ื›ืžื• ืฉื”ื•ื - ืกื•ืคืจ ืงืจื™ื ื•ืžืชื•ืขื“:
async function runLoop(
 currentContext: AgentContext,
 newMessages: AgentMessage[],
 config: AgentLoopConfig,
 signal: AbortSignal | undefined,
 emit: AgentEventSink,
 streamFn?: StreamFn,
): Promise<void> {
 let firstTurn = true;
 // Check for steering messages at start (user may have typed while waiting)
 let pendingMessages: AgentMessage[] = (await config.getSteeringMessages?.()) || [];

 // Outer loop: continues when queued follow-up messages arrive after agent would stop
 while (true) {
  let hasMoreToolCalls = true;

  // Inner loop: process tool calls and steering messages
  while (hasMoreToolCalls || pendingMessages.length > 0) {
   if (!firstTurn) {
    await emit({ type: "turn_start" });
   } else {
    firstTurn = false;
   }

   // Process pending messages (inject before next assistant response)
   if (pendingMessages.length > 0) {
    for (const message of pendingMessages) {
     await emit({ type: "message_start", message });
     await emit({ type: "message_end", message });
     currentContext.messages.push(message);
     newMessages.push(message);
    }
    pendingMessages = [];
   }

   // Stream assistant response
   const message = await streamAssistantResponse(currentContext, config, signal, emit, streamFn);
   newMessages.push(message);

   if (message.stopReason === "error" || message.stopReason === "aborted") {
    await emit({ type: "turn_end", message, toolResults: [] });
    await emit({ type: "agent_end", messages: newMessages });
    return;
   }

   // Check for tool calls
   const toolCalls = message.content.filter((c) => c.type === "toolCall");

   const toolResults: ToolResultMessage[] = [];
   hasMoreToolCalls = false;
   if (toolCalls.length > 0) {
    const executedToolBatch = await executeToolCalls(currentContext, message, config, signal, emit);
    toolResults.push(...executedToolBatch.messages);
    hasMoreToolCalls = !executedToolBatch.terminate;

    for (const result of toolResults) {
     currentContext.messages.push(result);
     newMessages.push(result);
    }
   }

   await emit({ type: "turn_end", message, toolResults });

   if (
    await config.shouldStopAfterTurn?.({
     message,
     toolResults,
     context: currentContext,
     newMessages,
    })
   ) {
    await emit({ type: "agent_end", messages: newMessages });
    return;
   }

   pendingMessages = (await config.getSteeringMessages?.()) || [];
  }

  // Agent would stop here. Check for follow-up messages.
  const followUpMessages = (await config.getFollowUpMessages?.()) || [];
  if (followUpMessages.length > 0) {
   // Set as pending so inner loop processes them
   pendingMessages = followUpMessages;
   continue;
  }

  // No more messages, exit
  break;
 }

 await emit({ type: "agent_end", messages: newMessages });
}
ืืœื” ื”ื—ืœืงื™ื ื”ืžืจื›ื–ื™ื™ื: 1. ื”ืกื•ื›ืŸ ืžืืคืฉืจ ืœืžืฉืชืžืฉื™ื ืœื”ืงืœื™ื“ ื”ื•ื“ืขื•ืช ื‘ื–ืžืŸ ืฉื”ืžื•ื“ืœ ืžืฉืœื™ื ื˜ืงืกื˜. ืืœื” ื” pendingMessages ื•ืื ื—ื ื• ืžืงื‘ืœื™ื ืื•ืชืŸ ืžื”ืคื•ื ืงืฆื™ื” getSteeringMessages ื›ื‘ืจ ื‘ืชื—ื™ืœืช ื”ืคื•ื ืงืฆื™ื”. 2. ืœื•ืœืืช ื”ืกื•ื›ืŸ ืžื•ืจื›ื‘ืช ืžืœื•ืœืื” ื›ืคื•ืœื”, ื”ืœื•ืœืื” ื”ื—ื™ืฆื•ื ื™ืช ืžื˜ืคืœืช ื‘ื”ื•ื“ืขื•ืช ื ื•ืกืคื•ืช ืฉืื ื—ื ื• ื›ื•ืชื‘ื™ื ืื—ืจื™ ืฉื”ืกื•ื›ืŸ ืžืชื—ื™ืœ ืœืขื‘ื•ื“. ื”ืœื•ืœืื” ื”ืคื ื™ืžื™ืช ืื—ืจืื™ืช ืขืœ ืžืขื ื” ืœืคืจื•ืžืคื˜. 3. ื”ืœื•ืœืื” ื”ืคื ื™ืžื™ืช ืžืขื ื™ื™ื ืช - ืœืžื” ืฆืจื™ืš ืœืขื ื•ืช ืœืคืจื•ืžืคื˜ ื‘ืœื•ืœืื”? ืœืžื” ืœื ืœืฉืœื•ื— ืืช ื”ื”ื•ื“ืขื” ืœืžื•ื“ืœ, ืœืงื‘ืœ ื”ืฉืœืžื” ื•ื–ื”ื•? ื”ืชืฉื•ื‘ื” ื”ื™ื ืžื ื’ื ื•ืŸ ื‘ืกื™ืกื™ ืฉืœ ืกื•ื›ื ื™ ืงื™ื“ื•ื“ ืฉื ืงืจื ื”ืคืขืœืช ื›ืœื™ื. 4. ื ืฉื™ื ืœื‘ ืฉื›ืžืขื˜ ื‘ื›ืœ ืฉืœื‘ ื‘ืœื•ืœืื”, ื•ื–ื” ื ื›ื•ืŸ ื‘ืื•ืคืŸ ื›ืœืœื™ ืœืงื•ื“ ืฉืœ ืคืื™, ื™ืฉ ืœื ื• ืงืจื™ืื•ืช ืœ emit ืขื ืžื–ื”ื” ืื™ืจื•ืข. ืืœื” "ื ืงื•ื“ื•ืช ื”ืชื—ื‘ืจื•ืช". ื‘ืขื‘ื•ื“ื” ืขื ืคืื™ ื ื•ื›ืœ ืœื›ืชื•ื‘ ืชื•ืกืคื™ื ืฉื™ื•ืคืขืœื• ื‘ื›ืœ ื ืงื•ื“ืช ื”ืชื—ื‘ืจื•ืช ืฉื ืจืฆื”.

ToCode
1 419
๐Ÿ“Œ ืžืชื›ื ืช ืขื ืžื‘ืจื’ ื‘ื›ื™ืก ื‘ื˜ื™ื•ืœ ื‘ืฉื•ืง ื‘ืชืื™ืœื ื“ ื”ื‘ืช ืฉืœื™ ืจืฆืชื” ืœืงื ื•ืช ื—ืจื‘ ืื•ืจ. ื”ื™ืชื” ืจืง ื‘ืขื™ื” ืื—ืช ืขื ื”ื—ืจื‘: ื›ืœ ืคืขื ืฉื”ื“ืœืงืช ืืช ื”ืื•ืจ ื”ื™ื ื’ื ืขืฉืชื” ืจืขืฉ ื ื•ืจืื™. ื”ื™ืœื“ื” ืœื ืจืฆืชื” ืืช ื”ืจืขืฉ ื•ืื ื™ ื‘ื˜ื— ืœื ืจืฆื™ืชื™ ืืช ื”ืจืขืฉ. ื›ืฉืฉืืœืชื™ ืืช ื”ืžื•ื›ืจ ืื ื™ืฉ ื’ืจืกื” ืฉืœ ื”ื—ืจื‘ ื‘ืœื™ ื”ืจืขืฉ ื”ื•ื ืขื ื” ืฉืœื ืื‘ืœ ืœื ืœื“ืื•ื’ ื”ื•ื ืชื›ืฃ ืžืกื“ืจ, ื•ื‘ืืžืช ื”ื•ื ื”ื•ืฆื™ื ืžื”ื›ื™ืก ืžื‘ืจื’, ืคื™ืจืง ืืช ื”ื—ืจื‘, ื—ืชืš ืืช ื”ื—ื•ื˜ ืฉืœ ื”ืจืžืงื•ืœ, ื”ืจื›ื™ื‘ ื—ื–ืจื” ื•ืฉืœื•ื ืขืœ ื™ืฉืจืืœ, ื™ืฉ ืœื ื• ื—ืจื‘ ืื•ืจ ืฉืจืง ืขื•ืฉื” ืื•ืจ ื•ืœื ืžืจืขื™ืฉื”. ืขื•ื“ ืœืคื ื™ ืื•ืชื• ื˜ื™ื•ืœ ืคื’ืฉืชื™ ื”ืจื‘ื” ืžืคืชื—ื™ื ืฉื”ื—ื–ื™ืงื• ืžื‘ืจื’ ื•ื™ืจื˜ื•ืืœื™ ื‘ื›ื™ืก ื›ื“ื™ ืœืคืชื•ืจ ื›ืœ ื‘ืขื™ื”. ื”ืžืขืจื›ืช ืžื›ื•ืขืจืช? ืื™ืŸ ื‘ืขื™ื”, ื ื›ื ืกื™ื ืœืงื•ื“, ืžื•ืกื™ืคื™ื ื›ืžื” ืงื‘ืฆื™ CSS, ืœื ืฉื•ื‘ืจื™ื ืฉื•ื ื“ื‘ืจ ื•ืžื—ื‘ืจื™ื ื—ื–ืจื”. ื™ื•ืžื™ื™ื ืขื‘ื•ื“ื” ื•ื™ืฉ ืœืš ืขื™ืฆื•ื‘ ื—ื“ืฉ. ื”ืฉืจืช ืื™ื˜ื™? ืื™ืŸ ื‘ืขื™ื”, ื ื›ื ืกื™ื ืœืงื•ื“ ืฉืžืชืงืฉืจ ืขื ื” DB, ืžืฉืคืจื™ื ืืช ื”ืฉืื™ืœืชื•ืช, ืžื•ืกื™ืคื™ื ืื™ื ื“ืงืกื™ื ื•ื”ืคืงืง ืžืฉืชื—ืจืจ. ืžืชื›ื ืชื™ ื”ืžื‘ืจื’ ื”ื ืื ืฉื™ื ืกื•ืคืจ ืžืงืฆื•ืขื™ื™ื, ื”ื ื™ื•ื“ืขื™ื ืœื”ื›ื ืก ืœืžืขืจื›ืช ื‘ื–ื”ื™ืจื•ืช, ืœื—ื–ืง ื‘ื“ื™ื•ืง ืืช ื”ื‘ื•ืจื’ ืฉืฆืจื™ืš ื•ืœืขื–ื•ื‘ ื›ืฉื“ื‘ืจื™ื ื‘ืžืฆื‘ ืงืฆืช ื™ื•ืชืจ ื˜ื•ื‘ ืžืžื” ืฉื”ื™ื” ื›ืฉื”ืชื—ื™ืœื•. ื”ืฉื ื™ื ื”ืงืจื•ื‘ื•ืช ืœื ื™ืื™ืจื• ืคื ื™ื ืœืžืชื›ื ืชื™ ื”ืžื‘ืจื’. ื”ื‘ืขื™ื” ืฉืœ ืžืชื›ื ืชื™ ื”ืžื‘ืจื’ ื”ื™ื ืœื ื™ื“ืข ืžืงืฆื•ืขื™. ืื ื—ื ื• ืžื“ื‘ืจื™ื ืขืœ ืื ืฉื™ื ืฉื™ื›ื•ืœื™ื ืœื”ื›ื ืก ื•ืœืชืงืŸ ื›ืœ ืกื•ื’ ืฉืœ ืžืขืจื›ืช, ืงื•ืจืื™ื ืงื•ื“ ื‘ื›ืœ ืฉืคื”, ืžื–ื”ื™ื ื‘ืขื™ื•ืช ืœืคื ื™ ื›ื•ืœื ื•ืจื•ืื™ื ืืช ื”ืงืฉืจื™ื ื”ืขื“ื™ื ื™ื ื‘ื™ืŸ ื”ืžืขืจื›ื•ืช ืฉืื ืฉื™ื ืจื’ื™ืœื™ื ืžืคืกืคืกื™ื. ืžืชื›ื ืชื™ ื”ืžื‘ืจื’ ื™ื•ื“ืขื™ื ืžื” ื”ื ืขื•ืฉื™ื ื•ืื™ื–ื” ื—ื•ื˜ ื‘ื“ื™ื•ืง ืฆืจื™ืš ืœื ืชืง. ื”ื‘ืขื™ื” ืฉืœื”ื ื”ื™ื ื”ื’ื™ืฉื”. ืขื“ AI ื”ื™ื• ื”ืจื‘ื” ื‘ืขื™ื•ืช ืฉื”ื™ื” ื›ื“ืื™ ืœืคืชื•ืจ ืขื ื—ื™ื–ื•ืง ื‘ื•ืจื’ ืงื˜ืŸ. ื”ื™ื•ื AI ืžื—ื–ืง ืืช ื›ืœ ื”ื‘ืจื’ื™ื. ืื‘ืœ ื™ื•ืชืจ ืžื–ื”, ื” AI ื”ื•ืคืš ืชื™ืงื•ื ื™ื ืžืกื•ื‘ื›ื™ื ืœืžื”ื™ืจื™ื - ื‘ืชื ืื™ ืฉืื ื—ื ื• ื™ื•ื“ืขื™ื ืžื” ื‘ื“ื™ื•ืง ืฆืจื™ืš ืœืชืงืŸ. ืžืชื›ื ืช ืฉื™ืคื•ืฆื ื™ืง ื™ื›ื•ืœ ืœื–ื”ื•ืช ืžืขืงืฃ ืฉื™ืกื“ืจ 90% ืžื”ื‘ืขื™ื•ืช. ืขื“ ืœื ืžื–ืžืŸ ื”ื™ื™ืชื™ ื—ื•ืชื ืขืœ ื›ื–ื” ืคืชืจื•ืŸ ื‘ืœื™ ืœื—ืฉื•ื‘ ืคืขืžื™ื™ื, ื‘ื˜ื— ื›ืฉื–ื” ื‘ื ื‘ืžืงื•ื ืœืฉื ื•ืช ืขืฉืจื•ืช ืงื‘ืฆื™ ืงื•ื“. ื”ื™ื•ื? ื‘ืจื’ืข ืฉืื ื™ ืžื‘ื™ืŸ ืืช ื”ื‘ืขื™ื” ื•ืื™ืš ื”ืงื•ื“ ืืžื•ืจ ืœื”ื™ืจืื•ืช ืื ื™ ืฉื•ืœื— ืืช ืงืœื•ื“ ืœืฉื ื•ืช ืืช ื›ืœ ื”ืžืขืจื›ืช ื›ื“ื™ ืœื”ืชืื™ื ืœื’ื™ืฉื” ื”ื—ื“ืฉื” ื•ื”ื ื›ื•ื ื” ื•ืžืชืจื—ืง ืžืžืขืงืคื™ื. ื›ืœ ืžืขืงืฃ ืฉืื ื™ ืฉื ืจืง ื™ืขื•ื“ื“ ืืช ื”ืกื•ื›ืŸ ืœื™ื™ืฆืจ ืขื•ื“ ืขืฉืจื•ืช ืคืชืจื•ื ื•ืช ืขืงื•ืžื™ื. ื”ื’ื™ืข ื”ื–ืžืŸ ืœื”ื™ืคืจื“ ืžื”ืžื‘ืจื’ ื”ืงื˜ืŸ. ื‘ืฉื‘ื™ืœ ื”ืชื™ืงื•ื ื™ื ืฉืœ ื”ืขืชื™ื“ ื ืฆื˜ืจืš ืœืืžืฅ ื—ืฉื™ื‘ื” ืžืขืจื›ืชื™ืช.

ToCode
1 419
ื•ื .ื‘. ืกื•ืคืจ ืงืจื™ื˜ื™ ืœืคื•ืกื˜ ื”ื–ื” ืฉืฉื›ื—ืชื™ ื‘ื–ืžืŸ ื”ื›ืชื™ื‘ื” - ืงืจื™ืื” ื‘ื™ืงื•ืจืชื™ืช ืœื ืœืงื‘ืœ ืงื•ื“ ืฉ AI ื›ื•ืชื‘ ื‘ืœื™ ืฉืื ื™ ืžื‘ื™ืŸ ืืช ื–ื” ื›ืื™ืœื• ื–ื” ืงื•ื“ ืฉืื ื™ ื›ืชื‘ืชื™

ToCode
1 419
๐Ÿ“Œ ื—ืžืฉ ืžื™ื•ืžื ื•ื™ื•ืช ืงืจื™ื˜ื™ื•ืช ืœืžืคืชื—ื™ื ื‘ืขื™ื“ืŸ ื” AI ื›ืŸ ื”ืžืคืชื—ื™ื ื”ืžื•ื‘ื™ืœื™ื ื‘ืชืขืฉื™ื™ื” ื›ื‘ืจ ืžืฉืชืžืฉื™ื ื‘ AI ื›ื“ื™ ืœื›ืชื•ื‘ ืžืขืœ 90% ืžื”ืงื•ื“ ืฉื ื›ื ืก ืœืžื•ืฆืจ ืฉืœื”ื. ืฉืžืขืชื™ ื’ื ืขืœ ืฆื•ื•ืชื™ื ืฉืžืชืขืงืฉื™ื ืœื ืœืืคืฉืจ ืœืžืคืชื—ื™ื ืœื›ืชื•ื‘ ืงื•ื“ ื™ื“ื ื™ืช ื‘ืžื˜ืจื” ืœื–ื”ื•ืช Best Practices ื‘ืขื‘ื•ื“ื” ืขื AI, ื›ืœื•ืžืจ ื‘ืžืงื•ื ืœื›ืชื•ื‘ ืœื‘ื“ ืชืงืจื ืžืกื•ื“ืจ ืืช ื”ืคืœื˜ ืฉืœ ื” AI, ืชื‘ื™ืŸ ืœืžื” ื”ื•ื ืœื ื™ืฆืจ ืืช ื”ืงื•ื“ ืฉืจืฆื™ืช ื•ืชืชืงืŸ ืืช ื”ืคืจื•ืžืคื˜, ืงื•ื“ ื‘ืžืงื•ื ืื—ืจ, ืงื‘ืฆื™ ืชื™ืขื•ื“ ืื• ืžื” ืฉืœื ื™ื”ื™ื” ื›ื“ื™ ืœืงื‘ืœ ืืช ื”ืงื•ื“ ืฉืฆืจื™ืš. ื•ืœืžืจื•ืช ืฉืืฃ ืื—ื“ ืœื ื™ื•ื“ืข ืื™ืš ื™ืจืื” ื”ืžืงืฆื•ืข ืขื•ื“ ืฉื ืชื™ื™ื, ื™ืฉ ื›ืžื” ืžื™ื•ืžื ื•ื™ื•ืช ืฉื‘ื˜ื•ื— ื ืฆื˜ืจืš ื•ื›ื“ืื™ ืœืคืชื— ื›ื‘ืจ ืžืืชืžื•ืœ: ื”ืจืืฉื•ื ื” ื”ื™ื ื”ืžื™ื•ืžื ื•ืช ื”ื˜ื›ื ื™ืช, ื”ื™ื›ืจื•ืช ืขื ื”ื›ืœื™ื. ืกื•ื›ื ื™ ืงื™ื“ื•ื“ ื™ื›ื•ืœื™ื ืœืขื‘ื•ื“ ืžื”ืขื ืŸ, ืžืฉื•ืจืช ื”ืคืงื•ื“ื”, ืžืืคืœื™ืงืฆื™ื™ืช Desktop ืื• ืžืชื•ืš VS Code. ืฆืจื™ืš ืœื“ืขืช ืื™ืš ืœืคื ื•ืช ืืœื™ื”ื, ืžื” ืขื•ืฉื” ื›ืœ ื›ืคืชื•ืจ ื•ืžื” ื”ืคืขื•ืœื•ืช ื”ืžืจื›ื–ื™ื•ืช ืฉืืคืฉืจ ืœืขืฉื•ืช ืื™ืชื ื‘ื›ืœ ืกื‘ื™ื‘ื”. ื”ืžืคืชื—ื™ื ืฉืœ ื”ืขืชื™ื“ ื™ืจื’ื™ืฉื• ื‘ื ื•ื— ืœื“ื‘ืจ ืขื AI ื‘ื›ืœ ื›ืœื™ ื‘ื• ื”ื•ื ื ืžืฆื. ืžื™ื•ืžื ื•ืช ืฉื ื™ื” ื”ื™ื ื ื™ื”ื•ืœ ืงื•ื ื˜ืงืกื˜ (ืฉืœ ื” AI) ื•ื›ืชื™ื‘ืช ืคืจื•ืžืคื˜ื™ื. ื”ื”ื‘ื ื” ืฉื›ืœ ื“ื‘ืจ ื”ื•ื ืคืจื•ืžืคื˜ ื•ืฉืื ืื ื™ ืœื ืžืงื‘ืœ ืชืฉื•ื‘ื” ืžืกืคื™ืง ื˜ื•ื‘ื” ืžื”ืžื•ื“ืœ ืื ื™ ื™ื›ื•ืœ ืœื ืกื— ืคืจื•ืžืคื˜ ืื—ืจ ื•ืœืฉื ื•ืช ืืช ื”ืงืœื˜ ื›ื“ื™ ืœืฉืคืจ ืืช ื”ืชื•ืฆืื•ืช. ืกื•ื›ืŸ ืงื™ื“ื•ื“ ื”ื•ื ื›ืžื• ื˜ื™ื™ืก ืื•ื˜ื•ืžื˜ื™ ืœืงื•ื“. ื›ืชื™ื‘ืช ืงื•ื ื˜ืงืกื˜ ื•ืคืจื•ืžืคื˜ ื–ื” ื”ื’ื“ืจืช ื”ื™ืขื“ ืœื˜ื™ื™ืก ื”ืื•ื˜ื•ืžื˜ื™. ืžื™ื•ืžื ื•ืช ืฉืœื™ืฉื™ืช ื”ื™ื ื”ื’ื“ืจืช ื—ื™ื‘ื•ืจื™ื ื•ืชื”ืœื™ื›ื™ ืขื‘ื•ื“ื”: ืื™ืš ื”ืกื•ื›ืŸ ื™ื•ื“ืข ืฉื”ืงื•ื“ ืฉื”ื•ื ื›ืชื‘ ื ื›ื•ืŸ ืื• ืขื•ื‘ื“? ืื™ืš ื”ืงื•ื“ ืฉืงื™ื™ื ืืฆืœื ื• ื‘ืžืขืจื›ืช ืžืฉืคื™ืข ืขืœ ื”ืงื•ื“ ื”ื—ื“ืฉ ืฉื ื•ืฆืจ? ื•ืื™ืš ืื ื—ื ื• ืฉื•ืžืจื™ื ืขืœ ืื™ื›ื•ืช ื›ืฉืงื•ื“ ื ื›ืชื‘ ื™ื•ืชืจ ืžื”ืจ ืžืžื” ืฉืื ื—ื ื• ืžืฆืœื™ื—ื™ื ืœื”ื‘ื™ืŸ? ื‘ืฉื‘ื™ืœ ืœืฉืคืจ ืืช ืงืฆื‘ ื”ืคื™ืชื•ื— ื ืจืฆื” ืœื”ืจื™ืฅ ืกื•ื›ื ื™ื ื‘ืžืงื‘ื™ืœ ื•ืกื•ื›ื ื™ื ื‘ืขื ืŸ, ื ืจืฆื” ืœื‘ื ื•ืช ืžืขืจื›ื•ืช ืฉืžืคืชื—ื•ืช ืืช ืขืฆืžืŸ ื•ืžื–ื”ื•ืช ื‘ืขื™ื•ืช. ื‘ืฉื‘ื™ืœ ืœืฉืžื•ืจ ืขืœ ืื™ื›ื•ืช ื”ืงื•ื“ ื ืจืฆื” ืœื™ื™ืฆืจ ืฆื•ื•ืืจื™ ื‘ืงื‘ื•ืง ื•ืžื ื’ื ื•ื ื™ื ืฉื™ืืคืฉืจื• ืœืžืคืชื—ื™ื ืœื›ื•ื•ืŸ ืืช ื”ืกื•ื›ื ื™ื ืœืžื™ืžื•ืฉื™ื ืฉืื ื—ื ื• ื™ื•ื“ืขื™ื ืฉื”ื ื ื›ื•ื ื™ื. ื–ืืช ื›ื‘ืจ ื—ืฉื™ื‘ื” ืžืขืจื›ืชื™ืช ืขืœ ืชื”ืœื™ืš ื”ืคื™ืชื•ื— ื•ื ื™ืชื•ื— ื” Outputs ืฉืœ ื”ืชื”ืœื™ืš ื›ื“ื™ ืœืฉืคืจ ืื•ืชื•. ืžืœื‘ื“ ืฉืœื•ืฉืช ื”ืžื™ื•ืžื ื•ื™ื•ืช ื”ืืœื” ืฉื”ืŸ ื™ื™ื—ื•ื“ื™ื•ืช ืœ AI ืื ื™ ืžื–ื”ื” ืขื•ื“ ืฉืชื™ ืžื™ื•ืžื ื•ื™ื•ืช ืฉืชืžื™ื“ ื”ื™ื• ื—ืฉื•ื‘ื•ืช ื•ืžืงื‘ืœื•ืช ื—ื™ื–ื•ืง ืžืฉืžืขื•ืชื™ ื‘ืขื™ื“ืŸ ื”ื—ื“ืฉ: ื”ืจืืฉื•ื ื” ื”ื™ื ื”ืžื™ื•ืžื ื•ืช ื”ื”ื ื“ืกื™ืช, ืœื”ื‘ื™ืŸ ืžื” ืื ื™ ื‘ื•ื ื”, ืื™ืš ื”ื—ืœืงื™ื ื‘ืžืขืจื›ืช ืขื•ื‘ื“ื™ื, ืœืจืื•ืช ืžืงืจื™ ืงืฆื”, ืฉื’ื™ืื•ืช, ืœื”ื‘ื™ืŸ ืื™ืš ืงื•ื“ ื’ื•ืจื ืœืžืขืจื›ื•ืช ืœืขื‘ื•ื“. ื”ื™ื›ื•ืœืช ืœืงืจื•ื ื•ืœื”ื‘ื™ืŸ ืžื”ืจ. ืžื™ื•ืžื ื•ืช ืฉื ื™ื” ื”ื™ื ื ื™ื”ื•ืœ ืงื•ื ื˜ืงืกื˜, ืื‘ืœ ื”ืคืขื ืฉืœื ื•, ืžื” ืฉื ืงืจื Context Switching. ืžืคืชื—ื™ื ื›ื‘ืจ ื”ื™ื•ื ืขื•ื‘ื“ื™ื ื‘ืžืงื‘ื™ืœ ืขื ืžืกืคืจ ืกื•ื›ื ื™ ืงื™ื“ื•ื“ ื•ื”ืžืกืคืจื™ื ื”ืืœื” ืจืง ื™ื’ื“ืœื•. ืื ื—ื ื• ืงื•ืคืฆื™ื ืžืžืฉื™ืžื” ืœืžืฉื™ืžื”, ืžืกื•ื›ืŸ ืœืกื•ื›ืŸ, ืžืคื™ืฆ'ืจ ืœืคื™ืฆ'ืจ. ืื™ ืืคืฉืจ ืœื“ืžื™ื™ืŸ ื™ื•ืชืจ ืžืคืชื— ืฉื™ื•ืฉื‘ ืฉื‘ื•ืขื™ื™ื ื‘ื—ื“ืจ ืกื’ื•ืจ ืœืชื›ื ืŸ ืคื™ืฆ'ืจ ื•ืขื•ื“ ืฉืœื•ืฉื” ื—ื•ื“ืฉื™ื ืœื›ืชื•ื‘ ืืช ื”ืงื•ื“. ื”ืขืชื™ื“ ืžื•ืจื›ื‘ ืžืžืงื‘ื™ืœื™ื•ืช ื•ืžื‘ื™ืฆื•ืข ื”ืžื•ืŸ ืžืฉื™ืžื•ืช ื™ื—ื“. ืชื—ื•ื GenAI ื ืžืฆื ื‘ืคื™ืชื•ื— ื•ื›ืœ ื”ื–ืžืŸ ื™ืฉ ืžื•ืฆืจื™ื ื—ื“ืฉื™ื. ื”ืžื˜ืจื” ืฉืœื ื• ื”ื™ื ืœื ืœื”ื›ื™ืจ ื›ืœ ื›ืœื™ ืฉื™ื•ืฆื ืืœื ืœื”ืชืžืงื“ ื‘ืžื™ื•ืžื ื•ื™ื•ืช ื•ืœื—ืคืฉ ืืช ื”ื›ืœื™ื ืฉื™ืืคืฉืจื• ืœื ื• ืœื›ืชื•ื‘ ืงื•ื“ ืžื”ืจ ื™ื•ืชืจ ื‘ืœื™ ืœื”ืชืคืฉืจ ืขืœ ืื™ื›ื•ืช ื”ืžื•ืฆืจ.