Commit 9ba4d04
committed
skills: add event notification system for Terminal, WebUI, and Telegram
Introduces SkillNotifier observer interface that fires events when
skills are loaded, autoloaded, suggested, saved, or deleted. All three
interfaces (Terminal renderer, WebUI WebSocket, Telegram inline
keyboard) consume these events via unified SkillEventHandler config.
New:
- internal/skills/notifier.go: SkillEvent, SkillNotifier, NoopNotifier, MultiNotifier
- internal/skills/notifier_test.go: unit tests for notifier
- Agent.SkillManager() accessor for post-agent learning
- learnAndSuggest(): non-interactive heuristic runner shared by all paths
- renderNotifier bridges renderer to skill events (Terminal)
- SkillEventHandler on odek.Config (WebUI + Telegram)
Changed:
- render.go: SkillLoaded, SkillAutoLoaded, SkillSuggested, SkillSaved, SkillDeleted
- tools.go: SkillManager.Notifier field; events in RecordUsage, SkillSaveTool, SkillDeleteTool
- odek.go: autoloaded/loaded events in New(); adapters for render + callback
- main.go: runLearnLoop refactored into learnAndSuggest + CLI prompting
- serve.go: learnAndSuggest after agent; skill_prompt_response WS handler
- telegram.go: suggested inline keyboard; skill_save/skill_skip callbacks; learnAndSuggest
- Full test coverage: 17 new test functions across render, skills, and agent packages1 parent f4f7232 commit 9ba4d04
11 files changed
Lines changed: 871 additions & 41 deletions
File tree
- cmd/odek
- internal
- render
- skills
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1253 | 1253 | | |
1254 | 1254 | | |
1255 | 1255 | | |
1256 | | - | |
1257 | | - | |
1258 | | - | |
| 1256 | + | |
| 1257 | + | |
| 1258 | + | |
| 1259 | + | |
| 1260 | + | |
| 1261 | + | |
1259 | 1262 | | |
1260 | 1263 | | |
1261 | 1264 | | |
| |||
1276 | 1279 | | |
1277 | 1280 | | |
1278 | 1281 | | |
1279 | | - | |
1280 | | - | |
1281 | | - | |
1282 | 1282 | | |
1283 | | - | |
1284 | | - | |
1285 | | - | |
| 1283 | + | |
| 1284 | + | |
1286 | 1285 | | |
1287 | 1286 | | |
1288 | | - | |
1289 | | - | |
1290 | | - | |
1291 | | - | |
| 1287 | + | |
| 1288 | + | |
| 1289 | + | |
| 1290 | + | |
1292 | 1291 | | |
1293 | 1292 | | |
| 1293 | + | |
| 1294 | + | |
| 1295 | + | |
| 1296 | + | |
| 1297 | + | |
| 1298 | + | |
| 1299 | + | |
| 1300 | + | |
| 1301 | + | |
| 1302 | + | |
| 1303 | + | |
| 1304 | + | |
| 1305 | + | |
| 1306 | + | |
| 1307 | + | |
| 1308 | + | |
| 1309 | + | |
| 1310 | + | |
| 1311 | + | |
| 1312 | + | |
1294 | 1313 | | |
| 1314 | + | |
| 1315 | + | |
1295 | 1316 | | |
1296 | 1317 | | |
1297 | 1318 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
266 | 266 | | |
267 | 267 | | |
268 | 268 | | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
269 | 278 | | |
270 | 279 | | |
271 | 280 | | |
| |||
337 | 346 | | |
338 | 347 | | |
339 | 348 | | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
340 | 371 | | |
341 | 372 | | |
342 | 373 | | |
| |||
532 | 563 | | |
533 | 564 | | |
534 | 565 | | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
535 | 572 | | |
536 | 573 | | |
537 | 574 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| 22 | + | |
22 | 23 | | |
23 | 24 | | |
24 | 25 | | |
| |||
37 | 38 | | |
38 | 39 | | |
39 | 40 | | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
40 | 45 | | |
41 | 46 | | |
42 | 47 | | |
| |||
134 | 139 | | |
135 | 140 | | |
136 | 141 | | |
137 | | - | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
138 | 149 | | |
139 | 150 | | |
140 | 151 | | |
| |||
352 | 363 | | |
353 | 364 | | |
354 | 365 | | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
355 | 390 | | |
356 | 391 | | |
357 | 392 | | |
| |||
630 | 665 | | |
631 | 666 | | |
632 | 667 | | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
633 | 674 | | |
634 | 675 | | |
635 | 676 | | |
636 | 677 | | |
637 | 678 | | |
638 | 679 | | |
639 | 680 | | |
| 681 | + | |
640 | 682 | | |
641 | 683 | | |
642 | 684 | | |
| |||
690 | 732 | | |
691 | 733 | | |
692 | 734 | | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
693 | 765 | | |
694 | 766 | | |
695 | 767 | | |
| |||
763 | 835 | | |
764 | 836 | | |
765 | 837 | | |
| 838 | + | |
| 839 | + | |
| 840 | + | |
| 841 | + | |
| 842 | + | |
| 843 | + | |
| 844 | + | |
| 845 | + | |
| 846 | + | |
| 847 | + | |
766 | 848 | | |
767 | 849 | | |
768 | 850 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
286 | 286 | | |
287 | 287 | | |
288 | 288 | | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
289 | 333 | | |
290 | 334 | | |
291 | 335 | | |
| |||
0 commit comments