@agentunion/kite 1.5.0 → 1.6.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.
Files changed (574) hide show
  1. package/.claude/skills/kite/checklists/feature-checklist.md +496 -0
  2. package/.claude/skills/kite/references/event-patterns.md +180 -0
  3. package/.claude/skills/kite/references/health-check.md +202 -0
  4. package/.claude/skills/kite/references/http-service.md +199 -0
  5. package/.claude/skills/kite/references/module-md-spec.md +172 -0
  6. package/.claude/skills/kite/references/multi-connection.md +147 -0
  7. package/.claude/skills/kite/references/rpc-patterns.md +199 -0
  8. package/.claude/skills/kite/references/shutdown-sequence.md +146 -0
  9. package/.claude/skills/kite/references/stdin-protocol.md +147 -0
  10. package/.claude/skills/kite/references/test-center-integration.md +178 -0
  11. package/.claude/skills/kite/references/ws-lifecycle.md +301 -0
  12. package/.claude/skills/kite/skill.md +272 -0
  13. package/.claude/skills/kite/templates/go/README.md +20 -0
  14. package/.claude/skills/kite/templates/node/entry.js +134 -0
  15. package/.claude/skills/kite/templates/node/module.md +16 -0
  16. package/.claude/skills/kite/templates/node/server.js +351 -0
  17. package/.claude/skills/kite/templates/node/server_http.js +90 -0
  18. package/.claude/skills/kite/templates/python/entry.py +425 -0
  19. package/.claude/skills/kite/templates/python/module.md +26 -0
  20. package/.claude/skills/kite/templates/python/server.py +447 -0
  21. package/.claude/skills/kite/templates/python/server_http.py +433 -0
  22. package/cli.js +38 -4
  23. package/core/env_checker.py +96 -0
  24. package/docs/05-/347/237/255/344/277/241/350/256/244/350/257/201/344/270/216/347/224/250/346/210/267/344/277/241/346/201/257/346/216/245/345/217/243/346/226/207/346/241/243.md +507 -0
  25. package/docs/ACP/345/215/217/350/256/256/345/205/274/345/256/271/346/226/271/346/241/210.md +138 -0
  26. package/docs/CI/344/270/216AI/350/207/252/345/212/250/345/214/226/346/265/213/350/257/225/346/226/271/346/241/210.md +75 -0
  27. package/docs/CLI/345/274/200/345/217/221/350/256/241/345/210/222.md +595 -0
  28. package/docs/ClaudeCode/350/277/234/347/250/213/345/215/217/344/275/234/347/263/273/347/273/237-/346/212/200/346/234/257/350/257/204/344/274/260.md +535 -0
  29. package/docs/ClaudeCode/350/277/234/347/250/213/345/215/217/344/275/234/347/263/273/347/273/237/350/256/276/350/256/241.md +631 -0
  30. package/docs/Evol-App/344/275/277/347/224/250KernelClient/346/224/271/351/200/240/345/256/214/346/210/220.md +342 -0
  31. package/docs/Evol/346/216/247/345/210/266/345/217/260/346/217/222/344/273/266/345/214/226/346/236/266/346/236/204/346/246/202/350/246/201.md +604 -0
  32. package/docs/Evol/346/216/247/345/210/266/345/217/260/346/217/222/344/273/266/345/214/226/346/236/266/346/236/204/350/256/276/350/256/241.md +1708 -0
  33. package/docs/Evol/346/250/241/345/235/227/350/256/276/350/256/241/346/226/271/346/241/210.md +1154 -0
  34. package/docs/Evol/351/241/265/351/235/242/346/217/222/344/273/266/345/214/226-Evol/346/250/241/345/235/227/345/256/236/346/226/275/346/214/207/345/215/227.md +403 -0
  35. package/docs/Evol/351/241/265/351/235/242/346/217/222/344/273/266/345/214/226-/345/244/226/351/203/250/346/250/241/345/235/227/346/216/245/345/205/245/346/214/207/345/215/227.md +468 -0
  36. package/docs/HTTP-RPC/350/277/201/347/247/273/345/210/260WebSocket/350/256/241/345/210/222.md +318 -0
  37. package/docs/INDEX.md +388 -0
  38. package/docs/KITE_DOCS_GUIDE.md +33 -0
  39. package/docs/Kernel-Client-Kite-Token/346/224/257/346/214/201/345/256/236/346/226/275/345/256/214/346/210/220.md +330 -0
  40. package/docs/Kernel/344/270/273/345/212/250Ping/346/234/272/345/210/266-/346/255/243/347/241/256/345/256/236/347/216/260.md +235 -0
  41. package/docs/Kernel/344/270/273/345/212/250Ping/346/234/272/345/210/266/345/256/236/346/226/275/346/200/273/347/273/223.md +204 -0
  42. package/docs/Kite/345/256/211/350/243/205/351/227/256/351/242/230/350/247/243/345/206/263/346/226/271/346/241/210.md +362 -0
  43. package/docs/Kite/346/216/247/345/210/266/345/217/260/346/217/222/344/273/266/345/214/226/346/236/266/346/236/204/350/256/276/350/256/241-/347/273/210/346/236/201/347/233/256/346/240/207.md +721 -0
  44. package/docs/Kite/346/216/247/345/210/266/345/217/260/347/273/237/344/270/200WebSocket/346/224/271/351/200/240/346/226/271/346/241/210.md +821 -0
  45. package/docs/Kite/346/241/206/346/236/266/350/256/276/350/256/241/01-/346/241/206/346/236/266/345/256/232/344/275/215.md +12 -0
  46. package/docs/Kite/346/241/206/346/236/266/350/256/276/350/256/241/02-/346/240/270/345/277/203/346/246/202/345/277/265.md +341 -0
  47. package/docs/Kite/346/241/206/346/236/266/350/256/276/350/256/241/03-/347/263/273/347/273/237/346/236/266/346/236/204.md +257 -0
  48. package/docs/Kite/346/241/206/346/236/266/350/256/276/350/256/241/04-/346/250/241/345/235/227/350/247/204/350/214/203.md +263 -0
  49. package/docs/Kite/346/241/206/346/236/266/350/256/276/350/256/241/05-/346/240/270/345/277/203/346/265/201/347/250/213-/346/226/260/347/211/210.md +267 -0
  50. package/docs/Kite/346/241/206/346/236/266/350/256/276/350/256/241/05-/346/240/270/345/277/203/346/265/201/347/250/213.md +149 -0
  51. package/docs/Kite/346/241/206/346/236/266/350/256/276/350/256/241/06-/347/233/256/345/275/225/347/273/223/346/236/204.md +231 -0
  52. package/docs/Kite/346/241/206/346/236/266/350/256/276/350/256/241/07-/346/225/260/346/215/256/346/250/241/345/236/213.md +68 -0
  53. package/docs/Kite/346/241/206/346/236/266/350/256/276/350/256/241/08-/346/211/251/345/261/225/346/200/247.md +34 -0
  54. package/docs/Kite/346/241/206/346/236/266/350/256/276/350/256/241/09-/344/270/216/345/205/267/344/275/223/345/272/224/347/224/250/347/232/204/345/205/263/347/263/273.md +22 -0
  55. package/docs/Kite/346/241/206/346/236/266/350/256/276/350/256/241/README.md +46 -0
  56. package/docs/Kite/347/263/273/347/273/237/345/220/257/345/212/250/346/265/201/347/250/213.md +567 -0
  57. package/docs/Launcher/345/220/257/345/212/250/345/231/250/346/226/207/346/241/243.md +745 -0
  58. package/docs/Polyglot/350/277/220/350/241/214/346/227/266/344/270/216Clawdbot/345/205/274/345/256/271/346/200/247/350/256/276/350/256/241.md +321 -0
  59. package/docs/Redis/344/270/216/346/250/241/345/235/227/345/244/232/345/256/236/344/276/213/346/226/271/346/241/210.md +438 -0
  60. package/docs/Relay-Kite-Token/350/256/244/350/257/201/345/256/236/346/226/275/345/256/214/346/210/220.md +178 -0
  61. package/docs/Relay-Token/346/235/203/351/231/220/351/205/215/347/275/256/351/252/214/350/257/201.md +113 -0
  62. package/docs/Watchdog/345/201/245/345/272/267/346/243/200/346/237/245/344/270/216WebSocket-Ping/346/234/272/345/210/266/345/210/206/346/236/220.md +367 -0
  63. package/docs/Watchdog/350/265/204/346/272/220/347/233/221/346/216/247/347/255/226/347/225/245.md +92 -0
  64. package/docs/WebSocket/346/216/245/346/224/266/345/276/252/347/216/257/346/255/273/351/224/201/351/230/262/350/214/203/350/247/204/350/214/203.md +357 -0
  65. package/docs/WebSocket/350/277/236/346/216/245/351/237/247/346/200/247/344/270/216/351/207/215/350/277/236/346/234/272/345/210/266/345/256/214/346/225/264/346/226/271/346/241/210.md +531 -0
  66. package/docs/WebSocket/350/277/236/346/216/245/351/237/247/346/200/247/346/226/271/346/241/210.md +169 -0
  67. package/docs/WebSocket/351/207/215/350/277/236/346/234/272/345/210/266/346/265/213/350/257/225/346/212/245/345/221/212.md +169 -0
  68. package/docs/WebSocket/351/207/215/350/277/236/351/200/200/351/201/277/346/234/272/345/210/266/346/226/271/346/241/210.md +394 -0
  69. package/docs/Web/346/250/241/345/235/227/344/270/216Evol/346/250/241/345/235/227/351/207/215/346/236/204/345/210/206/346/236/220.md +521 -0
  70. package/docs/audit-api-guide.md +68 -0
  71. package/docs/audit-module-design.md +315 -0
  72. package/docs/audit-module-implementation-summary.md +149 -0
  73. package/docs/llm-context-design.md +52 -0
  74. package/docs/llm-test-enhancement-plan.md +970 -0
  75. package/docs/logs-api-guide.md +42 -0
  76. package/docs/npm/345/214/205Python/347/216/257/345/242/203/347/256/241/347/220/206/346/226/271/346/241/210.md +302 -0
  77. package/docs/npm/345/217/221/345/270/203/344/270/216CLI/344/275/277/347/224/250/346/214/207/345/215/227.md +245 -0
  78. package/docs/stdio/344/270/216/347/253/257/345/217/243/345/217/221/347/216/260/351/207/215/346/236/204.md +480 -0
  79. package/docs/web/346/250/241/345/235/227/344/270/255/350/275/254/346/234/215/345/212/241/350/256/276/350/256/241/346/226/271/346/241/210.md +449 -0
  80. package/docs//344/272/213/344/273/266/345/244/204/347/220/206/346/234/272/345/210/266.md +388 -0
  81. package/docs//344/272/213/344/273/266/345/244/204/347/220/206/350/247/204/350/214/203.md +113 -0
  82. package/docs//344/272/213/344/273/266/350/256/242/351/230/205/351/200/232/351/205/215/347/254/246/350/247/204/350/214/203.md +256 -0
  83. package/docs//344/272/213/344/273/266/351/230/237/345/210/227/345/274/271/346/200/247/347/256/241/347/220/206.md +449 -0
  84. package/docs//344/272/244/344/272/222/345/274/217/347/273/210/347/253/257/346/216/247/345/210/266/346/226/271/346/241/210.md +301 -0
  85. package/docs//344/273/243/347/220/206/345/220/257/345/212/250/345/231/250/344/270/216/345/256/271/345/231/250/345/214/226.md +140 -0
  86. package/docs//344/273/243/347/240/201/347/273/237/350/256/241/345/267/245/345/205/267/344/275/277/347/224/250/350/257/264/346/230/216.md +217 -0
  87. package/docs//344/274/230/351/233/205/351/200/200/345/207/272/350/247/204/350/214/203.md +362 -0
  88. package/docs//344/276/235/350/265/226/347/256/241/347/220/206/350/257/264/346/230/216.md +141 -0
  89. package/docs//344/277/256/345/244/215/346/235/203/351/231/220/351/227/256/351/242/230-evol-RPC/346/235/203/351/231/220.md +268 -0
  90. package/docs//345/210/240/351/231/244kernel-client-example/345/256/214/346/210/220.md +309 -0
  91. package/docs//345/210/240/351/231/244ws-management/345/256/214/346/210/220.md +418 -0
  92. package/docs//345/220/257/345/212/250/344/274/230/345/214/226/346/226/271/346/241/210.md +522 -0
  93. package/docs//345/220/257/345/212/250/344/276/235/350/265/226/344/270/216/346/216/222/345/272/217.md +105 -0
  94. package/docs//345/256/211/350/243/205/350/204/232/346/234/254/345/274/200/345/217/221/346/226/207/346/241/243.md +643 -0
  95. package/docs//345/256/214/346/225/264/345/220/257/345/212/250/346/265/201/347/250/213/350/256/276/350/256/241.md +452 -0
  96. package/docs//345/256/236/347/216/260/350/247/204/345/210/222.md +195 -0
  97. package/docs//345/277/203/350/267/263/346/234/272/345/210/266/351/207/215/346/236/204/346/200/273/347/273/223.md +166 -0
  98. package/docs//346/217/241/346/211/213/350/256/244/350/257/201/346/226/271/346/241/210-/345/256/211/345/205/250/345/256/241/346/237/245.md +176 -0
  99. package/docs//346/217/241/346/211/213/350/256/244/350/257/201/346/226/271/346/241/210.md +908 -0
  100. package/docs//346/226/207/346/241/243/346/233/264/346/226/260/346/270/205/345/215/225.md +83 -0
  101. package/docs//346/227/245/345/277/227/344/270/216/345/274/202/345/270/270/345/244/204/347/220/206/350/247/204/350/214/203.md +829 -0
  102. package/docs//346/227/245/345/277/227/350/260/203/350/257/225/345/256/236/346/210/230/346/214/207/345/215/227.md +25 -0
  103. package/docs//346/236/266/346/236/204/345/200/237/351/211/264/346/214/207/345/215/227.md +977 -0
  104. package/docs//346/236/266/346/236/204/346/224/271/351/200/240-/345/256/214/346/210/220/346/200/273/347/273/223.md +440 -0
  105. package/docs//346/236/266/346/236/204/347/216/260/347/212/266/344/270/216/347/273/210/346/236/201/347/233/256/346/240/207/345/257/271/346/257/224/345/210/206/346/236/220.md +508 -0
  106. package/docs//346/250/241/345/235/227/345/244/232/350/277/236/346/216/245/346/216/247/345/210/266/347/255/226/347/225/245.md +220 -0
  107. package/docs//346/250/241/345/235/227/345/256/211/350/243/205/346/234/272/345/210/266/350/256/276/350/256/241.md +500 -0
  108. package/docs//346/250/241/345/235/227/345/274/200/345/217/221/346/214/207/345/215/227.md +1824 -0
  109. package/docs//346/250/241/345/235/227/347/203/255/346/233/264/346/226/260.md +89 -0
  110. package/docs//346/250/241/345/235/227/350/277/234/347/250/213/351/203/250/347/275/262/345/274/200/345/217/221/350/247/204/350/214/203.md +460 -0
  111. package/docs//346/250/241/345/235/227/351/200/200/345/207/272/346/234/272/345/210/266/345/256/214/346/225/264/346/226/271/346/241/210.md +303 -0
  112. package/docs//346/250/241/345/235/227/351/205/215/347/275/256/345/212/240/350/275/275/344/270/216/347/203/255/351/207/215/350/275/275/350/247/204/350/214/203.md +369 -0
  113. package/docs//346/265/213/350/257/225/344/270/255/345/277/203/346/267/273/345/212/240/346/250/241/345/235/227/346/265/213/350/257/225/346/214/207/345/215/227.md +147 -0
  114. package/docs//347/211/210/346/234/254/351/224/201/345/256/232/347/216/257/345/242/203/347/256/241/347/220/206/346/226/271/346/241/210.md +331 -0
  115. package/docs//347/216/257/345/242/203/345/217/230/351/207/217/344/270/216/350/277/220/350/241/214/346/227/266/347/233/256/345/275/225/350/256/276/350/256/241.md +499 -0
  116. package/docs//347/216/257/345/242/203/347/256/241/347/220/206/345/256/214/346/225/264/346/226/271/346/241/210.md +334 -0
  117. package/docs//350/231/232/346/213/237/346/250/241/345/235/227/344/270/255/350/275/254/346/234/215/345/212/241/345/256/214/346/225/264/350/256/276/350/256/241.md +1496 -0
  118. package/docs//350/231/232/346/213/237/347/216/257/345/242/203/345/267/245/344/275/234/345/216/237/347/220/206.md +163 -0
  119. package/docs//350/256/241/345/210/222/347/256/241/347/220/206/345/231/250/344/275/277/347/224/250/346/214/207/345/215/227.md +196 -0
  120. package/docs//350/256/244/350/257/201/346/250/241/345/235/227/344/270/216Gateway/350/256/276/350/256/241/346/226/271/346/241/210.md +765 -0
  121. package/docs//350/277/234/347/250/213/346/250/241/345/235/227/350/256/276/350/256/241-/346/227/247/347/211/210.md +1117 -0
  122. package/docs//350/277/234/347/250/213/346/250/241/345/235/227/350/256/276/350/256/241.md +451 -0
  123. package/docs//351/207/215/346/236/204/346/234/272/345/210/266/346/270/205/345/215/225.md +192 -0
  124. package/docs//351/223/276/350/267/257/350/277/275/350/270/252/346/226/271/346/241/210.md +242 -0
  125. package/docs//351/231/215/347/272/247/347/255/226/347/225/245/350/256/276/350/256/241/346/226/271/346/241/210.md +618 -0
  126. package/extensions/agents/assistant/entry.py +113 -14
  127. package/extensions/agents/assistant/module.md +27 -22
  128. package/extensions/agents/assistant/server.py +291 -105
  129. package/extensions/channels/acp_channel/entry.py +114 -16
  130. package/extensions/channels/acp_channel/module.md +4 -0
  131. package/extensions/channels/acp_channel/server.py +396 -105
  132. package/extensions/channels/phone_channel/__init__.py +1 -0
  133. package/extensions/channels/phone_channel/entry.py +503 -0
  134. package/extensions/channels/phone_channel/module.md +31 -0
  135. package/extensions/channels/phone_channel/server.py +686 -0
  136. package/extensions/event_hub_bench/entry.py +55 -12
  137. package/extensions/event_hub_bench/module.md +27 -27
  138. package/extensions/services/audit/README.md +134 -0
  139. package/extensions/services/audit/collector.py +73 -0
  140. package/extensions/services/audit/entry.py +444 -0
  141. package/extensions/services/audit/module.md +66 -0
  142. package/extensions/services/audit/query_audit.py +111 -0
  143. package/extensions/services/audit/routes/__init__.py +1 -0
  144. package/extensions/services/audit/routes/routes_audit.py +113 -0
  145. package/extensions/services/audit/schemas/__init__.py +5 -0
  146. package/extensions/services/audit/schemas/audit_event.py +92 -0
  147. package/extensions/services/audit/server.py +542 -0
  148. package/extensions/services/audit/storage.py +95 -0
  149. package/extensions/services/auth/entry.py +1054 -0
  150. package/extensions/services/auth/module.md +31 -0
  151. package/extensions/services/auth/token_store.py +185 -0
  152. package/extensions/services/auth/verifiers/evol_account.py +101 -0
  153. package/extensions/services/auth/verifiers/kite_token.py +38 -0
  154. package/extensions/services/auth/verifiers/pairing_code.py +71 -0
  155. package/extensions/services/backup/entry.py +494 -197
  156. package/extensions/services/backup/module.md +4 -2
  157. package/extensions/services/dataclaw/api/__init__.py +0 -0
  158. package/extensions/services/dataclaw/api/admin.py +367 -0
  159. package/extensions/services/dataclaw/api/copyright.py +175 -0
  160. package/extensions/services/dataclaw/api/credits.py +177 -0
  161. package/extensions/services/dataclaw/api/data.py +179 -0
  162. package/extensions/services/dataclaw/api/demands.py +269 -0
  163. package/extensions/services/dataclaw/api/feeds.py +262 -0
  164. package/extensions/services/dataclaw/api/identity.py +505 -0
  165. package/extensions/services/dataclaw/api/notifications.py +104 -0
  166. package/extensions/services/dataclaw/api/reviews.py +138 -0
  167. package/extensions/services/dataclaw/api/search.py +153 -0
  168. package/extensions/services/dataclaw/api/subscriptions.py +157 -0
  169. package/extensions/services/dataclaw/config.json5 +96 -0
  170. package/extensions/services/dataclaw/core/__init__.py +0 -0
  171. package/extensions/services/dataclaw/core/auth.py +95 -0
  172. package/extensions/services/dataclaw/core/config.py +50 -0
  173. package/extensions/services/dataclaw/core/database.py +70 -0
  174. package/extensions/services/dataclaw/entry.py +416 -0
  175. package/extensions/services/dataclaw/gofeed/351/241/271/347/233/256/346/211/200/346/234/211/346/235/203/350/275/254/347/247/273/346/265/201/347/250/213/350/257/264/346/230/216.md +309 -0
  176. package/extensions/services/dataclaw/migrate.py +283 -0
  177. package/extensions/services/dataclaw/models/__init__.py +0 -0
  178. package/extensions/services/dataclaw/module.md +49 -0
  179. package/extensions/services/dataclaw/requirements.txt +18 -0
  180. package/extensions/services/dataclaw/server.py +759 -0
  181. package/extensions/services/dataclaw/services/__init__.py +0 -0
  182. package/extensions/services/dataclaw/services/agent_service.py +132 -0
  183. package/extensions/services/dataclaw/services/credit_service.py +235 -0
  184. package/extensions/services/dataclaw/services/email_service.py +140 -0
  185. package/extensions/services/dataclaw/services/feed_service.py +259 -0
  186. package/extensions/services/dataclaw/services/notification_service.py +209 -0
  187. package/extensions/services/dataclaw/services/oauth_service.py +275 -0
  188. package/extensions/services/dataclaw/services/pricing.py +102 -0
  189. package/extensions/services/dataclaw/services/quality.py +79 -0
  190. package/extensions/services/dataclaw/services/reputation.py +142 -0
  191. package/extensions/services/dataclaw/services/sms_service.py +174 -0
  192. package/extensions/services/dataclaw/static/css/common.css +853 -0
  193. package/extensions/services/dataclaw/static/css/themes/blue.css +42 -0
  194. package/extensions/services/dataclaw/static/css/themes/dark.css +42 -0
  195. package/extensions/services/dataclaw/static/css/themes/light.css +35 -0
  196. package/extensions/services/dataclaw/static/js/api.js +103 -0
  197. package/extensions/services/dataclaw/static/js/common.js +321 -0
  198. package/extensions/services/dataclaw/static/js/i18n.js +95 -0
  199. package/extensions/services/dataclaw/static/js/pages/admin.js +152 -0
  200. package/extensions/services/dataclaw/static/js/pages/dashboard.js +82 -0
  201. package/extensions/services/dataclaw/static/js/pages/feed-detail.js +180 -0
  202. package/extensions/services/dataclaw/static/js/pages/feed-manage.js +158 -0
  203. package/extensions/services/dataclaw/static/js/theme.js +46 -0
  204. package/extensions/services/dataclaw/static/locales/en-US.json +464 -0
  205. package/extensions/services/dataclaw/static/locales/ja-JP.json +464 -0
  206. package/extensions/services/dataclaw/static/locales/zh-CN.json +464 -0
  207. package/extensions/services/dataclaw/templates/admin/index.html +90 -0
  208. package/extensions/services/dataclaw/templates/base.html +136 -0
  209. package/extensions/services/dataclaw/templates/credits/balance.html +106 -0
  210. package/extensions/services/dataclaw/templates/credits/deposit.html +164 -0
  211. package/extensions/services/dataclaw/templates/credits/history.html +90 -0
  212. package/extensions/services/dataclaw/templates/dashboard.html +52 -0
  213. package/extensions/services/dataclaw/templates/demands/create.html +78 -0
  214. package/extensions/services/dataclaw/templates/demands/detail.html +136 -0
  215. package/extensions/services/dataclaw/templates/demands/list.html +94 -0
  216. package/extensions/services/dataclaw/templates/feeds/create.html +95 -0
  217. package/extensions/services/dataclaw/templates/feeds/detail.html +110 -0
  218. package/extensions/services/dataclaw/templates/feeds/list.html +110 -0
  219. package/extensions/services/dataclaw/templates/feeds/manage.html +88 -0
  220. package/extensions/services/dataclaw/templates/index.html +185 -0
  221. package/extensions/services/dataclaw/templates/login.html +246 -0
  222. package/extensions/services/dataclaw/templates/register.html +164 -0
  223. package/extensions/services/dataclaw/templates/settings/notifications.html +96 -0
  224. package/extensions/services/dataclaw/templates/settings/profile.html +167 -0
  225. package/extensions/services/dataclaw/templates/subscriptions/list.html +64 -0
  226. package/extensions/services/dataclaw/tests/__init__.py +0 -0
  227. package/extensions/services/dataclaw/tests/conftest.py +68 -0
  228. package/extensions/services/dataclaw/tests/integration/__init__.py +0 -0
  229. package/extensions/services/dataclaw/tests/integration/test_workflows.py +239 -0
  230. package/extensions/services/dataclaw/tests/unit/__init__.py +0 -0
  231. package/extensions/services/dataclaw/tests/unit/test_admin.py +70 -0
  232. package/extensions/services/dataclaw/tests/unit/test_copyright.py +63 -0
  233. package/extensions/services/dataclaw/tests/unit/test_credits.py +80 -0
  234. package/extensions/services/dataclaw/tests/unit/test_data.py +98 -0
  235. package/extensions/services/dataclaw/tests/unit/test_demands.py +106 -0
  236. package/extensions/services/dataclaw/tests/unit/test_feeds.py +98 -0
  237. package/extensions/services/dataclaw/tests/unit/test_identity.py +88 -0
  238. package/extensions/services/dataclaw/tests/unit/test_notifications.py +36 -0
  239. package/extensions/services/dataclaw/tests/unit/test_reviews.py +68 -0
  240. package/extensions/services/dataclaw/tests/unit/test_search.py +64 -0
  241. package/extensions/services/dataclaw/tests/unit/test_subscriptions.py +65 -0
  242. package/extensions/services/dataclaw/tests/unit/test_system.py +106 -0
  243. package/extensions/services/dataclaw/utils/__init__.py +0 -0
  244. package/extensions/services/dataclaw/utils/crypto.py +38 -0
  245. package/extensions/services/dataclaw/utils/id_generator.py +52 -0
  246. package/extensions/services/dataclaw/ws/__init__.py +0 -0
  247. package/extensions/services/dataclaw/ws/handler.py +163 -0
  248. package/extensions/services/dataclaw//345/215/217/350/256/2561-/351/241/271/347/233/256/346/235/241/344/273/266/346/216/210/346/235/203/344/270/216/350/202/241/346/235/203/345/257/271/344/273/267/345/215/217/350/256/256.md +243 -0
  249. package/extensions/services/dataclaw//345/215/217/350/256/2562-/351/241/271/347/233/256/350/264/255/344/271/260/346/235/203/344/270/216/345/244/226/345/214/205/345/247/224/346/211/230/345/274/200/345/217/221/345/215/217/350/256/256.md +434 -0
  250. package/extensions/services/evol/__init__.py +1 -0
  251. package/extensions/services/evol/async_http.py +551 -0
  252. package/extensions/services/evol/auth_manager.py +602 -443
  253. package/extensions/services/evol/config.json5 +16 -0
  254. package/extensions/services/evol/entry.py +568 -406
  255. package/extensions/services/evol/evol_api.py +969 -173
  256. package/extensions/services/evol/mfa_totp.py +77 -0
  257. package/extensions/services/evol/module.md +150 -32
  258. package/extensions/services/evol/nonce_pool.py +113 -0
  259. package/extensions/services/evol/oauth_manager.py +223 -0
  260. package/extensions/services/evol/pairing.py +3 -2
  261. package/extensions/services/evol/pairing_codes.jsonl +1 -0
  262. package/extensions/services/evol/relay.py +1031 -682
  263. package/extensions/services/evol/relay_config.json5 +85 -67
  264. package/extensions/services/evol/routes/routes_llm.py +231 -0
  265. package/extensions/services/evol/routes/routes_rpc.py +90 -89
  266. package/extensions/services/evol/routes/routes_test.py +11 -4
  267. package/extensions/services/evol/server.py +2426 -875
  268. package/extensions/services/evol/static/assets/CommissionView-Cs_ys6Gm.js +1 -0
  269. package/extensions/services/evol/static/assets/CommissionView-DACet_Oo.css +1 -0
  270. package/extensions/services/evol/static/assets/IframePage-DbO11U9G.js +1 -0
  271. package/extensions/services/evol/static/assets/IframePage-c572lT8i.css +1 -0
  272. package/extensions/services/evol/static/assets/TeamDetailView-DULrGD7k.css +1 -0
  273. package/extensions/services/evol/static/assets/TeamDetailView-gy_MBEqG.js +139 -0
  274. package/extensions/services/evol/static/assets/element-plus-Bd7pZkkM.js +63 -0
  275. package/extensions/services/evol/static/assets/index-CmMONKzG.css +1 -0
  276. package/extensions/services/evol/static/assets/index-D44bBe__.js +2 -0
  277. package/extensions/services/evol/static/assets/vue-vendor-DtF-__I4.js +29 -0
  278. package/extensions/services/evol/static/index.html +16 -781
  279. package/extensions/services/evol/static/logo.png +0 -0
  280. package/extensions/services/evol/stats_manager.py +243 -240
  281. package/extensions/services/evol/web/README.md +89 -0
  282. package/extensions/services/evol/web/build.bat +44 -0
  283. package/extensions/services/evol/web/index.html +13 -0
  284. package/extensions/services/evol/web/package-lock.json +1718 -0
  285. package/extensions/services/evol/web/package.json +26 -0
  286. package/extensions/services/evol/web/public/logo.png +0 -0
  287. package/extensions/services/evol/web/src/App.vue +7 -0
  288. package/extensions/services/evol/web/src/components/layout/AppHeader.vue +202 -0
  289. package/extensions/services/evol/web/src/components/layout/AppLayout.vue +61 -0
  290. package/extensions/services/evol/web/src/components/layout/AppSidebar.vue +115 -0
  291. package/extensions/services/evol/web/src/components/login/LoginPage.vue +271 -0
  292. package/extensions/services/evol/web/src/components/team/AddMemberModal.vue +181 -0
  293. package/extensions/services/evol/web/src/components/team/GroupTreeNode.vue +156 -0
  294. package/extensions/services/evol/web/src/components/team/TeamAlertConfig.vue +221 -0
  295. package/extensions/services/evol/web/src/components/team/TeamBillModal.vue +165 -0
  296. package/extensions/services/evol/web/src/components/team/TeamMembersAndGroups.vue +499 -0
  297. package/extensions/services/evol/web/src/components/team/TeamStatsPanel.vue +907 -0
  298. package/extensions/services/evol/web/src/components/team/TreeNode.vue +331 -0
  299. package/extensions/services/evol/web/src/components/team/stats/StatsExportProgress.vue +44 -0
  300. package/extensions/services/evol/web/src/components/team/stats/StatsHeader.vue +89 -0
  301. package/extensions/services/evol/web/src/components/team/stats/StatsMemberDetail.vue +415 -0
  302. package/extensions/services/evol/web/src/components/team/stats/StatsSummary.vue +42 -0
  303. package/extensions/services/evol/web/src/components/team/stats/helpers.ts +195 -0
  304. package/extensions/services/evol/web/src/components/team/stats/stats.css +741 -0
  305. package/extensions/services/evol/web/src/components/team/stats/useStatsApi.ts +114 -0
  306. package/extensions/services/evol/web/src/components/team/stats/useStatsCharts.ts +242 -0
  307. package/extensions/services/evol/web/src/components/team/stats/useStatsExport.ts +232 -0
  308. package/extensions/services/evol/web/src/composables/useFormatters.ts +42 -0
  309. package/extensions/services/evol/web/src/composables/useTheme.ts +52 -0
  310. package/extensions/services/evol/web/src/env.d.ts +7 -0
  311. package/extensions/services/evol/web/src/i18n/en.ts +361 -0
  312. package/extensions/services/evol/web/src/i18n/index.ts +36 -0
  313. package/extensions/services/evol/web/src/i18n/zh.ts +379 -0
  314. package/extensions/services/evol/web/src/main.ts +21 -0
  315. package/extensions/services/evol/web/src/router/index.ts +81 -0
  316. package/extensions/services/evol/web/src/services/kernel-client.ts +406 -0
  317. package/extensions/services/evol/web/src/stores/auth.ts +189 -0
  318. package/extensions/services/evol/web/src/stores/connection.ts +134 -0
  319. package/extensions/services/evol/web/src/stores/pages.ts +79 -0
  320. package/extensions/services/evol/web/src/styles/base.css +213 -0
  321. package/extensions/services/evol/web/src/styles/variables.css +138 -0
  322. package/extensions/services/evol/web/src/types/rpc.ts +35 -0
  323. package/extensions/services/evol/web/src/types/token.ts +87 -0
  324. package/extensions/services/evol/web/src/views/AccountView.vue +1532 -0
  325. package/extensions/services/evol/web/src/views/AiServiceView.vue +219 -0
  326. package/extensions/services/evol/web/src/views/CommissionView.vue +1220 -0
  327. package/extensions/services/evol/web/src/views/CreditsView.vue +131 -0
  328. package/extensions/services/evol/web/src/views/EndpointView.vue +163 -0
  329. package/extensions/services/evol/web/src/views/IframePage.vue +120 -0
  330. package/extensions/services/evol/web/src/views/TeamDetailView.vue +473 -0
  331. package/extensions/services/evol/web/src/views/TeamView.vue +332 -0
  332. package/extensions/services/evol/web/tsconfig.json +31 -0
  333. package/extensions/services/evol/web/tsconfig.node.json +10 -0
  334. package/extensions/services/evol/web/vite.config.ts +49 -0
  335. package/extensions/services/evolmem/__init__.py +0 -0
  336. package/extensions/services/evolmem/entry.py +387 -0
  337. package/extensions/services/evolmem/hooks/__init__.py +0 -0
  338. package/extensions/services/evolmem/hooks/assistant_stop.py +228 -0
  339. package/extensions/services/evolmem/hooks/common.py +76 -0
  340. package/extensions/services/evolmem/hooks/pre_tool_use.py +56 -0
  341. package/extensions/services/evolmem/hooks/session_end.py +133 -0
  342. package/extensions/services/evolmem/hooks/session_start.py +229 -0
  343. package/extensions/services/evolmem/hooks/user_prompt.py +122 -0
  344. package/extensions/services/evolmem/module.md +48 -0
  345. package/extensions/services/evolmem/prompts/00-server-info.md +28 -0
  346. package/extensions/services/evolmem/prompts/01-behavior.md +46 -0
  347. package/extensions/services/evolmem/prompts/02-summary-format.md +112 -0
  348. package/extensions/services/evolmem/prompts/03-file-query.md +92 -0
  349. package/extensions/services/evolmem/prompts/04-topic-stats.md +11 -0
  350. package/extensions/services/evolmem/prompts/05-recent-topics.md +84 -0
  351. package/extensions/services/evolmem/scripts/__init__.py +0 -0
  352. package/extensions/services/evolmem/scripts/extract_keywords.py +40 -0
  353. package/extensions/services/evolmem/scripts/search_topics.py +91 -0
  354. package/extensions/services/evolmem/server.py +641 -0
  355. package/extensions/services/gateway/entry.py +964 -0
  356. package/extensions/services/gateway/module.md +29 -0
  357. package/extensions/services/gateway/nonce_pool.py +65 -0
  358. package/extensions/services/gateway/relay.py +133 -0
  359. package/extensions/services/gateway/ws_server.py +285 -0
  360. package/extensions/services/kite_console/auth_manager.py +603 -0
  361. package/extensions/services/kite_console/config.json5 +19 -0
  362. package/extensions/services/kite_console/config_loader.py +117 -0
  363. package/extensions/services/kite_console/entry.py +528 -0
  364. package/extensions/services/kite_console/evol_api.py +179 -0
  365. package/extensions/services/kite_console/evol_config.json5 +29 -0
  366. package/extensions/services/kite_console/mfa_totp.py +77 -0
  367. package/extensions/services/kite_console/migrate_tokens.py +122 -0
  368. package/extensions/services/kite_console/module.md +37 -0
  369. package/extensions/services/kite_console/nonce_pool.py +113 -0
  370. package/extensions/services/kite_console/oauth_manager.py +223 -0
  371. package/extensions/services/kite_console/pairing.py +280 -0
  372. package/extensions/services/kite_console/pairing_codes.jsonl +2 -0
  373. package/extensions/services/kite_console/relay.py +1350 -0
  374. package/extensions/services/kite_console/relay_config.json5 +96 -0
  375. package/extensions/services/kite_console/routes/__init__.py +1 -0
  376. package/extensions/services/kite_console/routes/routes_llm.py +231 -0
  377. package/extensions/services/kite_console/routes/routes_proxy.py +115 -0
  378. package/extensions/services/kite_console/routes/routes_rpc.py +89 -0
  379. package/extensions/services/kite_console/routes/routes_test.py +68 -0
  380. package/extensions/services/kite_console/server.py +1742 -0
  381. package/extensions/services/{evol → kite_console}/static/css/style.css +656 -2
  382. package/extensions/services/kite_console/static/index.html +1524 -0
  383. package/extensions/services/{evol → kite_console}/static/js/dialog.js +11 -4
  384. package/extensions/services/kite_console/static/js/evol-app.js +7740 -0
  385. package/extensions/services/{evol/static/js/evol-app.js → kite_console/static/js/evol-app.js.backup} +2777 -1949
  386. package/extensions/services/kite_console/static/js/kernel-client.js +560 -0
  387. package/extensions/services/{evol/static/js/kernel-client.js → kite_console/static/js/kernel-client.js.backup} +41 -3
  388. package/extensions/services/{evol → kite_console}/static/js/registry-tests.js +7 -0
  389. package/extensions/services/kite_console/static/js/tests/ARCHITECTURE.md +67 -0
  390. package/extensions/services/kite_console/static/js/tests/README.md +140 -0
  391. package/extensions/services/kite_console/static/js/tests/index.js +161 -0
  392. package/extensions/services/kite_console/static/js/tests/integration/auth.js +120 -0
  393. package/extensions/services/kite_console/static/js/tests/integration/channel-interaction.js +188 -0
  394. package/extensions/services/kite_console/static/js/tests/integration/elastic-connection.js +115 -0
  395. package/extensions/services/kite_console/static/js/tests/integration/full-workflow.js +43 -0
  396. package/extensions/services/kite_console/static/js/tests/integration/multi-instance.js +304 -0
  397. package/extensions/services/kite_console/static/js/tests/integration/nested-rpc.js +266 -0
  398. package/extensions/services/kite_console/static/js/tests/integration/pingpong.js +25 -0
  399. package/extensions/services/kite_console/static/js/tests/integration/redis.js +227 -0
  400. package/extensions/services/kite_console/static/js/tests/integration/registry-core.js +52 -0
  401. package/extensions/services/kite_console/static/js/tests/integration/remote-deploy.js +85 -0
  402. package/extensions/services/kite_console/static/js/tests/integration/require-init.js +96 -0
  403. package/extensions/services/kite_console/static/js/tests/integration/scaling-control.js +193 -0
  404. package/extensions/services/kite_console/static/js/tests/integration/trace.js +109 -0
  405. package/extensions/services/kite_console/static/js/tests/modules/acp_channel.js +339 -0
  406. package/extensions/services/kite_console/static/js/tests/modules/auth.js +96 -0
  407. package/extensions/services/kite_console/static/js/tests/modules/backup.js +49 -0
  408. package/extensions/services/kite_console/static/js/tests/modules/gateway.js +41 -0
  409. package/extensions/services/kite_console/static/js/tests/modules/kernel.js +90 -0
  410. package/extensions/services/kite_console/static/js/tests/modules/launcher.js +75 -0
  411. package/extensions/services/kite_console/static/js/tests/modules/multi_instance.js +129 -0
  412. package/extensions/services/kite_console/static/js/tests/modules/phone_channel.js +364 -0
  413. package/extensions/services/kite_console/static/js/tests/modules/redis.js +178 -0
  414. package/extensions/services/kite_console/static/js/tests/modules/watchdog.js +60 -0
  415. package/extensions/services/kite_console/static/js/tests/modules/web.js +70 -0
  416. package/extensions/services/kite_console/static/js/tests/test-runner.js +123 -0
  417. package/extensions/services/kite_console/static/js/virtual-list.js +200 -0
  418. package/extensions/services/kite_console/static/test_kernel_client_token.html +352 -0
  419. package/extensions/services/kite_console/stats_manager.py +247 -0
  420. package/extensions/services/logs/README.md +215 -0
  421. package/extensions/services/logs/api_logger.py +37 -0
  422. package/extensions/services/logs/baseline.py +121 -0
  423. package/extensions/services/logs/cleaner.py +76 -0
  424. package/extensions/services/logs/entry.py +449 -0
  425. package/extensions/services/logs/formatter.py +129 -0
  426. package/extensions/services/logs/module.md +38 -0
  427. package/extensions/services/logs/quick_diagnostic.py +128 -0
  428. package/extensions/services/logs/routes/__init__.py +1 -0
  429. package/extensions/services/logs/routes/routes_logs.py +218 -0
  430. package/extensions/services/logs/routes/routes_logs.py.backup +173 -0
  431. package/extensions/services/logs/scanner.py +100 -0
  432. package/extensions/services/logs/searcher.py +263 -0
  433. package/extensions/services/logs/server.py +553 -0
  434. package/extensions/services/logs.zip +0 -0
  435. package/extensions/services/model_service/config.json5 +30 -0
  436. package/extensions/services/model_service/entry.py +620 -171
  437. package/extensions/services/model_service/module.md +11 -2
  438. package/extensions/services/proxy/__init__.py +0 -0
  439. package/extensions/services/proxy/aid_manager.py +419 -0
  440. package/extensions/services/proxy/auth_bridge.py +182 -0
  441. package/extensions/services/proxy/config_store.py +79 -0
  442. package/extensions/services/proxy/entry.py +528 -0
  443. package/extensions/services/proxy/evol/presenter/agentIdPresenter.py +2 -2
  444. package/extensions/services/proxy/evol/presenter/apikeyPresenter.py +18 -28
  445. package/extensions/services/proxy/evol/presenter/configPresenter.py +80 -1127
  446. package/extensions/services/proxy/evol/presenter/userPresenter.py +71 -477
  447. package/extensions/services/proxy/evol/server/claude_proxy_async.py +11 -7
  448. package/extensions/services/proxy/module.md +151 -0
  449. package/extensions/services/proxy/server.py +952 -271
  450. package/extensions/services/redis/ALIGNMENT_CHECKLIST.md +121 -0
  451. package/extensions/services/redis/ALIGNMENT_STATUS.md +548 -0
  452. package/extensions/services/redis/config.json5 +8 -0
  453. package/extensions/services/redis/entry.py +1509 -0
  454. package/extensions/services/redis/entry.py.backup +405 -0
  455. package/extensions/services/redis/module.md +48 -0
  456. package/extensions/services/redis/redis_builtin.py +332 -0
  457. package/extensions/services/redis/redis_external.py +164 -0
  458. package/extensions/services/testUi/entry.py +446 -0
  459. package/extensions/services/testUi/module.md +18 -0
  460. package/extensions/services/testUi/ui/cards.html +131 -0
  461. package/extensions/services/testUi/ui/index.html +22 -0
  462. package/extensions/services/testUi/ui/particles.html +143 -0
  463. package/extensions/services/watchdog/entry.py +1258 -793
  464. package/extensions/services/watchdog/module.md +2 -0
  465. package/extensions/services/watchdog/monitor.py +465 -87
  466. package/extensions/services/web/auth_manager.py +602 -0
  467. package/extensions/services/web/config.json5 +11 -0
  468. package/extensions/services/web/entry.py +598 -478
  469. package/extensions/services/web/mfa_totp.py +77 -0
  470. package/extensions/services/web/module.md +16 -13
  471. package/extensions/services/web/nonce_pool.py +113 -0
  472. package/extensions/services/web/oauth_manager.py +223 -0
  473. package/extensions/services/web/pairing.py +3 -2
  474. package/extensions/services/web/pairing_codes.jsonl +1 -0
  475. package/extensions/services/web/relay.py +442 -63
  476. package/extensions/services/web/relay_config.json5 +1 -2
  477. package/extensions/services/web/routes/routes_rpc.py +6 -6
  478. package/extensions/services/web/server.py +360 -173
  479. package/extensions/services/web/static/index.html +1752 -1738
  480. package/extensions/services/web/static/js/app.js +32 -0
  481. package/extensions/services/web/static/js/kernel-client.js +48 -9
  482. package/extensions/services/web/vendor/bluetooth/audio.py +1 -1
  483. package/extensions/services/web/vendor/config.py +2 -2
  484. package/extensions/services/web/vendor/storage/identity.py +1 -1
  485. package/kernel/entry.py +77 -23
  486. package/kernel/event_hub.py +1122 -74
  487. package/kernel/module.md +2 -1
  488. package/kernel/registry_store.py +208 -11
  489. package/kernel/rpc_router.py +1400 -491
  490. package/kernel/server.py +1021 -134
  491. package/kite_cli/__init__.py +9 -1
  492. package/kite_cli/builders/__init__.py +4 -0
  493. package/kite_cli/builders/base.py +67 -0
  494. package/kite_cli/builders/custom.py +31 -0
  495. package/kite_cli/builders/detector.py +56 -0
  496. package/kite_cli/builders/go.py +34 -0
  497. package/kite_cli/builders/gradle.py +41 -0
  498. package/kite_cli/builders/maven.py +36 -0
  499. package/kite_cli/builders/npm.py +44 -0
  500. package/kite_cli/builders/python.py +37 -0
  501. package/kite_cli/commands/BUILD_GUIDE.md +109 -0
  502. package/kite_cli/commands/build.py +142 -0
  503. package/kite_cli/commands/check.py +60 -0
  504. package/kite_cli/commands/config.py +156 -0
  505. package/kite_cli/commands/deps.py +58 -0
  506. package/kite_cli/commands/deps_install.py +7 -7
  507. package/kite_cli/commands/disable.py +162 -0
  508. package/kite_cli/commands/enable.py +162 -0
  509. package/kite_cli/commands/export.py +96 -0
  510. package/kite_cli/commands/import_cmd.py +110 -0
  511. package/kite_cli/commands/install.py +50 -23
  512. package/kite_cli/commands/install_skill.py +107 -0
  513. package/kite_cli/commands/list.py +128 -31
  514. package/kite_cli/commands/outdated.py +202 -0
  515. package/kite_cli/commands/search.py +33 -17
  516. package/kite_cli/commands/update.py +115 -2
  517. package/kite_cli/commands/venv_setup.py +6 -6
  518. package/kite_cli/commands/why.py +48 -0
  519. package/kite_cli/core/config_manager.py +145 -0
  520. package/kite_cli/core/downloader.py +32 -2
  521. package/kite_cli/main.py +153 -7
  522. package/kite_cli/utils/colors.py +153 -0
  523. package/kite_cli/utils/dependency_graph.py +209 -0
  524. package/kite_cli/utils/process.py +55 -0
  525. package/kite_cli/utils/progress.py +207 -0
  526. package/kite_cli/utils/table.py +101 -0
  527. package/launcher/count_lines.py +192 -43
  528. package/launcher/entry.py +4543 -2802
  529. package/launcher/logging_setup.py +54 -1
  530. package/launcher/module.md +32 -6
  531. package/launcher/module_scanner.py +93 -20
  532. package/launcher/process_manager.py +355 -76
  533. package/main.py +6 -0
  534. package/package.json +4 -1
  535. package/requirements.txt +41 -38
  536. package/scripts/auto-fix-deps.py +128 -0
  537. package/scripts/env-manager.js +25 -2
  538. package/scripts/final-test.js +78 -0
  539. package/scripts/setup-python-env.js +700 -191
  540. package/scripts/test-alluser.js +48 -0
  541. package/scripts/test-different-version.js +86 -0
  542. package/scripts/test-direct.js +63 -0
  543. package/scripts/test-extract-installer.js +28 -0
  544. package/scripts/test-install-log.js +54 -0
  545. package/scripts/test-installer.js +39 -0
  546. package/scripts/test-integration.js +250 -0
  547. package/scripts/test-real-install.js +210 -0
  548. package/scripts/test-targetdir.js +49 -0
  549. package/scripts/test-venv-real.js +47 -0
  550. package/scripts/test-venv-simple.js +57 -0
  551. package/scripts/test-wait.js +49 -0
  552. package/scripts/test-with-log.js +63 -0
  553. package/extensions/services/evol/config.yaml +0 -149
  554. package/extensions/services/evol/routes/routes_management_ws.py +0 -127
  555. package/extensions/services/evol/static/index_evol.html +0 -14
  556. package/extensions/services/evol/static/js/app.js +0 -6304
  557. package/extensions/services/evol/static/js/auth.js +0 -326
  558. package/extensions/services/evol/static/js/evol-app-fixed.js +0 -50
  559. package/extensions/services/evol/static/js/evol-app.js.bak +0 -1800
  560. package/extensions/services/evol/static/js/kernel-client-example.js +0 -228
  561. package/extensions/services/evol/static/js/main.js +0 -141
  562. package/extensions/services/evol/static/js/stats.js +0 -217
  563. package/extensions/services/evol/static/js/token-manager.js +0 -175
  564. package/extensions/services/proxy/CHANGELOG_20260308.md +0 -258
  565. package/extensions/services/proxy/_fix_prints.py +0 -133
  566. package/extensions/services/proxy/_fix_prints2.py +0 -87
  567. package/extensions/services/proxy/console_auth.py +0 -109
  568. package/extensions/services/proxy/logs/websocket.log +0 -260
  569. package/extensions/services/proxy/main.py +0 -240
  570. package/extensions/services/proxy/requirements.txt +0 -13
  571. package/extensions/services/web/config.yaml +0 -149
  572. /package/extensions/services/{evol → kite_console}/static/pairing.html +0 -0
  573. /package/extensions/services/{evol → kite_console}/static/test_registry.html +0 -0
  574. /package/extensions/services/{evol → kite_console}/static/test_relay.html +0 -0
@@ -0,0 +1,263 @@
1
+ # 4. 模块规范
2
+
3
+ ## 4.1 统一模块结构
4
+
5
+ 系统中所有组件都是模块,包括内核、模型服务、任务系统、Agent。每个模块遵循统一的目录结构:
6
+
7
+ ```
8
+ {module_name}/
9
+ ├── entry.py ← 入口文件(统一命名)
10
+ ├── module.md ← 模块描述(frontmatter + 说明文档)
11
+ ├── tools/ ← 模块自有工具
12
+ │ └── {tool_name}/
13
+ │ ├── tool.md ← 工具定义(frontmatter + 使用说明)
14
+ │ └── handler.py ← 必须实现 execute() 和 check_permission()
15
+ ├── skills/ ← 模块安装的技能
16
+ │ └── {skill_name}/
17
+ │ ├── skill.md ← 技能定义(frontmatter + 使用说明)
18
+ │ └── ...
19
+ ├── permissions/ ← 本模块上下文中的工具/技能权限规则
20
+ │ └── {tool_or_skill_name}.json
21
+ └── ... ← 模块自有代码
22
+ ```
23
+
24
+ ## 4.2 module.md 格式
25
+
26
+ ```markdown
27
+ ---
28
+ name: example_module
29
+ display_name: "示例模块"
30
+ version: "1.0"
31
+ type: channel | infrastructure | kernel | service | agent
32
+ state: enabled # enabled(自动启动)| manual(手动启停)| disabled(禁用,需 owner 解锁)
33
+ runtime: python # python | node | binary — 决定 Launcher 用什么命令启动模块
34
+ entry: entry.py # 入口文件名,相对于模块目录
35
+ preferred_port: 0 # 0 = OS 分配;非零 = 优先尝试此端口
36
+ depends_on: # 可选,启动依赖(Launcher 按拓扑序保证依赖先就绪)
37
+ - event_hub
38
+ - kernel
39
+
40
+ events:
41
+ - example.event.type1
42
+ - example.event.type2
43
+
44
+ subscriptions:
45
+ - channel.message.*
46
+ - session.started
47
+
48
+ launch: # 可选,自定义启动参数(不填则完全保持默认行为)
49
+ cmd: ["python3.11", "-u", "main.py", "--mode", "prod"] # 覆盖 runtime+entry
50
+ env: # 额外环境变量(合并到基础 env 之上)
51
+ MY_VAR: "value"
52
+ cwd: "./subdir" # 工作目录(相对于 module_dir)
53
+ boot_stdin: false # 是否通过 stdin 传 boot_info(默认 true)
54
+ timeout: 60 # 等待 module.ready 的秒数(默认 30)
55
+ ---
56
+
57
+ # 示例模块
58
+
59
+ 模块的详细说明文档。LLM 可以通过阅读本文档了解模块的功能和使用方法。
60
+
61
+ ## 功能说明
62
+
63
+ ...
64
+
65
+ ## 使用示例
66
+
67
+ ...
68
+
69
+ ## 注意事项
70
+
71
+ ...
72
+ ```
73
+
74
+ ## 4.3 entry.py 启动协议
75
+
76
+ Launcher 通过 stdin 管道向模块传入 JSON 消息。模块启动时读取即可:
77
+
78
+ ```
79
+ 第 1 行: {"token": "tok_abc..."}
80
+ 第 2 行: {"kite": "kernel_port", "kernel_port": 52340}
81
+ ```
82
+
83
+ **标准启动流程(先订阅,再注册):**
84
+
85
+ 1. 读取 stdin 拿到 `token` 和 `kernel_port`
86
+ 2. 连接 Kernel WebSocket(`ws://127.0.0.1:{kernel_port}/ws?token={token}&id={module_id}`)
87
+ 3. RPC `event.subscribe` — 订阅关心的事件(**先做**)
88
+ 4. RPC `registry.register` — 注册模块信息,声明已订阅的事件(**后做**,注册是报告,不能报告还没做的事)
89
+ 5. RPC `event.publish` — 发布 `module.ready` 事件(**必须**)
90
+ 6. 进入主循环(监听事件、处理 RPC 请求)
91
+ 7. 退出时 RPC `registry.deregister`
92
+
93
+ **`module.ready` 事件:**
94
+
95
+ 模块完成初始化并注册到 Kernel 后,**必须**通过 Kernel 发布 `module.ready` 事件。这是所有模块必须支持的标准事件,Launcher 以收到此事件作为"启动成功"的判定标准:
96
+
97
+ ```json
98
+ {
99
+ "jsonrpc": "2.0",
100
+ "id": "uuid",
101
+ "method": "event.publish",
102
+ "params": {
103
+ "event_id": "uuid",
104
+ "event": "module.ready",
105
+ "data": {
106
+ "module_id": "conversation",
107
+ "graceful_shutdown": true
108
+ }
109
+ }
110
+ }
111
+ ```
112
+
113
+ **Launcher 侧行为:**
114
+
115
+ 1. 发布 `module.starting` 事件(通知其他模块)
116
+ 2. 启动子进程
117
+ 3. 等待 `module.ready` 事件(超时秒数由 `launch.timeout` 配置,默认 30s)
118
+ 4. 收到 ready → 发布 `module.started` 事件,控制台输出日志
119
+ 5. 超时未收到 → 打印 WARNING,仍视为已启动(降级处理)
120
+
121
+ **启动依赖:**
122
+
123
+ 模块可在 `module.md` 中通过 `depends_on` 字段声明启动依赖。Launcher 按拓扑序启动,确保依赖模块的 `module.ready` 已收到后再启动当前模块。Kernel 的启动顺序由 Launcher 硬编码保证,不需要声明 `depends_on`。
124
+
125
+ **模块注册内容:**
126
+
127
+ 模块启动后通过 RPC `registry.register` 提交完整注册信息。工具、Hook、事件均使用**字典结构**(名称做 key),便于 lookup 通过点号路径直接命中:
128
+
129
+ ```json
130
+ {
131
+ "module_id": "conversation",
132
+ "module_type": "agent",
133
+ "name": "对话 Agent",
134
+ "version": "1.0.0",
135
+ "graceful_shutdown": true,
136
+
137
+ "tools": {
138
+ "read_file": {
139
+ "endpoint": "/tools/read_file",
140
+ "description": "读取文件内容",
141
+ "parameters": {"path": "string"}
142
+ },
143
+ "write_file": {
144
+ "endpoint": "/tools/write_file",
145
+ "description": "写入文件",
146
+ "parameters": {"path": "string", "content": "string"}
147
+ }
148
+ },
149
+
150
+ "hooks": {
151
+ "before_llm_call": {
152
+ "endpoint": "/hooks/before_llm_call",
153
+ "priority": 10
154
+ },
155
+ "session_end": {
156
+ "endpoint": "/hooks/session_end",
157
+ "priority": 5
158
+ }
159
+ },
160
+
161
+ "events_publish": {
162
+ "agent.response.generated": {}
163
+ },
164
+
165
+ "events_subscribe": {
166
+ "channel.message.received": {},
167
+ "session.ended": {}
168
+ },
169
+
170
+ "metadata": {}
171
+ }
172
+ ```
173
+
174
+ Kernel 根据这些信息提供服务发现、能力索引、hook 链查询。
175
+
176
+ **RPC 方法注册(tools.rpc):**
177
+
178
+ 模块通过 `tools.rpc` 字段注册自己提供的 RPC 方法,供其他模块通过 `registry.lookup` 查询并调用。
179
+
180
+ **数据结构要求:**
181
+ - 必须使用**嵌套字典结构**,不能使用点号分隔的扁平字典
182
+ - 字典的 key 是路径片段,value 是下一层字典或最终的方法描述
183
+ - 这样 `registry.lookup` 才能通过点号路径(如 `tools.rpc.module.config.get`)匹配到方法
184
+
185
+ **标准示例:**
186
+ ```json
187
+ "tools": {
188
+ "rpc": {
189
+ "module": {
190
+ "config": {
191
+ "get": {"method": "get_settings", "description": "获取配置"},
192
+ "update": {"method": "update_settings", "description": "更新配置"},
193
+ "reset": {"method": "reset_settings", "description": "恢复默认配置"}
194
+ },
195
+ "health": {"method": "health_check", "description": "健康检查"},
196
+ "status": {"method": "get_status", "description": "状态查询"}
197
+ }
198
+ }
199
+ }
200
+ ```
201
+
202
+ **查询方式:**
203
+ ```python
204
+ # 前端或其他模块通过 registry.lookup 查询
205
+ result = await kernel_client.call("registry.lookup", {
206
+ "field": "tools.rpc.module.config.get",
207
+ "module": "backup"
208
+ })
209
+ # 返回: {"results": [{"module": "backup", "field": "tools.rpc.module.config.get", "value": {...}}]}
210
+
211
+ # 然后调用实际方法(方法名格式:module_id.method)
212
+ await kernel_client.call("backup.get_settings", {})
213
+ ```
214
+
215
+ **验证机制:**
216
+
217
+ Kernel 的 `registry.register` 会自动检查注册数据结构:
218
+ - 如果 `tools`、`hooks`、`events_publish` 等字段包含点号 key(如 `"module.config.get"`),会抛出 `ValueError` 并提示正确格式
219
+ - 必须使用嵌套字典结构,不能使用扁平的点号分隔 key
220
+
221
+ ## 4.4 模块职责
222
+
223
+ 模块的主要任务:
224
+ - **注册事件** — 声明自己会产生哪些事件
225
+ - **订阅事件** — 声明自己关心哪些事件
226
+ - **产生事件** — 发生事情时向事件中心发送事件
227
+ - **处理事件** — 收到订阅的事件后执行相应逻辑
228
+
229
+ ## 4.5 Agent 模块 Hook 调用规范
230
+
231
+ Agent 模块在关键流程节点上,必须按规范调用 hook。Hook 分两种类型,对应框架已有的两种基础设施:
232
+
233
+ - **void hook** — 通过事件中心发送事件,不等回复。用于通知、日志、统计。
234
+ - **modifying hook** — 调用注册中心中注册的 hook 接口,等待返回值。返回值可修改数据流或阻断流程。
235
+
236
+ 其他模块(辅助 Agent、服务等)启动后,到注册中心注册自己提供的 hook 处理接口。Agent 模块在对应节点调用时,由注册中心返回 hook 链中所有注册者的处理结果。
237
+
238
+ **Hook 调用点:**
239
+
240
+ | 流程节点 | 类型 | 机制 | 说明 |
241
+ |---------|------|------|------|
242
+ | 收到消息 | void | 发事件 | 通知其他模块有消息进来 |
243
+ | LLM 调用前 | modifying | 调接口 | 获取上下文注入、模型覆盖等 |
244
+ | LLM 调用后 | void | 发事件 | 通知结果,供日志/统计 |
245
+ | 工具调用前 | modifying | 调接口 | 权限检查、参数修改、阻断 |
246
+ | 工具调用后 | void | 发事件 | 通知结果 |
247
+ | 发送消息前 | modifying | 调接口 | 内容修改、取消发送 |
248
+ | 发送消息后 | void | 发事件 | 通知已发送 |
249
+ | 会话开始 | modifying | 调接口 | 获取初始上下文注入 |
250
+ | 会话结束 | void | 发事件 | 触发总结、身份检查等后处理 |
251
+ | 上下文压缩前 | modifying | 调接口 | 自定义压缩策略 |
252
+ | 上下文压缩后 | void | 发事件 | 记录压缩结果 |
253
+
254
+ **Hook 链执行规则:**
255
+ - 同一个 hook 点可以有多个注册者,按 priority 顺序调用
256
+ - modifying hook:前一个的返回值传给下一个(链式处理)
257
+ - 任何一个返回 `block: true`,流程中断
258
+ - 单个 hook 超时或失败不影响其他 hook(错误隔离)
259
+
260
+ **典型应用场景:**
261
+ - 上下文压缩:辅助模块注册 `before_llm_call` hook,检查 token 数,超阈值时返回压缩后的上下文
262
+ - 模型选择:服务模块注册 `before_llm_call` hook,根据 peer/channel/消息类型返回 `model_override`
263
+ - 会话总结:辅助模块订阅 `session.ended` 事件(void),异步执行总结和身份检查
@@ -0,0 +1,267 @@
1
+ # 5. 核心流程(新版 - Kernel 统一架构)
2
+
3
+ ## 5.1 系统启动流程
4
+
5
+ ### 5.1.1 Token 生成与分发机制
6
+
7
+ ```mermaid
8
+ sequenceDiagram
9
+ participant L as Launcher
10
+ participant K as Kernel
11
+ participant M as 其他模块
12
+
13
+ Note over L,K: Phase 1: Kernel 启动与 Token 生成
14
+ L->>K: 启动 Kernel 进程(无参数)
15
+ K->>K: 生成 launcher_token
16
+ K->>K: 绑定端口
17
+ K-->>L: stdout: {"kite":"port", "port":N, "token":"launcher_token"}
18
+
19
+ Note over L,K: Phase 2: Launcher 连接与模块扫描
20
+ L->>L: 保存 launcher_token
21
+ L->>K: WebSocket 连接(携带 launcher_token)
22
+ L->>K: RPC: event.subscribe([">"])
23
+ L->>K: RPC: registry.register({module_id:"launcher"})
24
+ K->>K: Launcher 注册成功
25
+ K-->>L: 发布 module.ready (source: kernel)
26
+
27
+ L->>L: 扫描所有模块
28
+ L->>K: RPC: kernel.generate_tokens({modules:["mod1","mod2",...]})
29
+ K->>K: 生成所有模块的 token
30
+ K-->>L: 返回 {tokens: {"mod1":"tok1", "mod2":"tok2"}}
31
+
32
+ Note over L,M: Phase 3: 启动其他模块
33
+ L->>M: 启动模块进程
34
+ L->>M: stdin: {"token":"mod_token", "kernel_port":N}
35
+ M->>K: WebSocket 连接(携带 mod_token)
36
+ M->>K: RPC: event.subscribe([...])
37
+ M->>K: RPC: registry.register({module_id:"mod"})
38
+ M->>K: RPC: event.publish("module.ready")
39
+ K-->>L: 转发 module.ready
40
+ ```
41
+
42
+ ### 5.1.2 完整启动时序
43
+
44
+ ```mermaid
45
+ sequenceDiagram
46
+ participant L as Launcher
47
+ participant K as Kernel
48
+ participant W as Watchdog
49
+ participant B as Backup
50
+ participant MS as Model Service
51
+ participant Web as Web Admin
52
+
53
+ Note over L,K: 1. Kernel 启动
54
+ L->>K: 启动进程
55
+ K->>K: 生成 launcher_token
56
+ K->>K: 绑定端口
57
+ K-->>L: stdout: port + token
58
+
59
+ Note over L,K: 2. Launcher 连接
60
+ L->>K: WS 连接 (token)
61
+ L->>K: event.subscribe([">"])
62
+ L->>K: registry.register(launcher)
63
+ K-->>L: module.ready (kernel)
64
+
65
+ Note over L,K: 3. 生成模块 Token
66
+ L->>L: 扫描模块
67
+ L->>K: kernel.generate_tokens
68
+ K-->>L: 返回所有 token
69
+
70
+ Note over L,W: 4. 启动 Watchdog
71
+ L->>W: 启动 + stdin(token, port)
72
+ W->>K: WS 连接
73
+ W->>K: event.subscribe
74
+ W->>K: registry.register
75
+ W->>K: event.publish(ready)
76
+ K-->>L: 转发 ready
77
+
78
+ Note over L,B: 5. 启动 Backup
79
+ L->>B: 启动 + stdin(token, port)
80
+ B->>K: WS 连接
81
+ B->>K: event.subscribe
82
+ B->>K: registry.register
83
+ B->>K: event.publish(ready)
84
+ K-->>L: 转发 ready
85
+
86
+ Note over L,MS: 6. 启动 Model Service
87
+ L->>MS: 启动 + stdin(token, port)
88
+ MS->>K: WS 连接
89
+ MS->>K: event.subscribe
90
+ MS->>K: registry.register
91
+ MS->>K: event.publish(ready)
92
+ K-->>L: 转发 ready
93
+
94
+ Note over L,Web: 7. 启动 Web Admin
95
+ L->>Web: 启动 + stdin(token, port)
96
+ Web->>K: WS 连接
97
+ Web->>K: event.subscribe
98
+ Web->>K: registry.register
99
+ Web->>K: event.publish(ready)
100
+ K-->>L: 转发 ready
101
+
102
+ Note over L: 8. 系统就绪
103
+ ```
104
+
105
+ ### 5.1.3 模块标准启动流程
106
+
107
+ ```mermaid
108
+ flowchart TD
109
+ Start([模块进程启动]) --> ReadStdin[从 stdin 读取 token + kernel_port]
110
+ ReadStdin --> Connect[连接 Kernel WebSocket<br/>携带 token 验证]
111
+ Connect --> Subscribe[RPC: event.subscribe<br/>订阅需要的事件]
112
+ Subscribe --> Register[RPC: registry.register<br/>注册自身信息]
113
+ Register --> Ready[RPC: event.publish<br/>发布 module.ready]
114
+ Ready --> Running([进入运行循环])
115
+
116
+ style Subscribe fill:#e1f5ff
117
+ style Register fill:#fff4e1
118
+ style Ready fill:#e8f5e9
119
+ ```
120
+
121
+ ## 5.2 Token 流转机制
122
+
123
+ ### 5.2.1 设计原则
124
+
125
+ **谁需要 token 谁生成 token**
126
+
127
+ - Kernel 需要验证所有连接,所以 Kernel 生成所有 token
128
+ - Launcher 的 token:Kernel 通过 stdout 直接传递
129
+ - 其他模块的 token:Kernel 生成后通过 RPC 返回给 Launcher,Launcher 再通过 stdin 传递给模块
130
+
131
+ ### 5.2.2 Token 类型
132
+
133
+ | Token 类型 | 生成者 | 传递路径 | 用途 |
134
+ |-----------|--------|---------|------|
135
+ | launcher_token | Kernel | Kernel stdout → Launcher | Launcher 连接 Kernel 验证 |
136
+ | module_token | Kernel | Kernel RPC → Launcher stdin → 模块 | 模块连接 Kernel 验证 |
137
+
138
+ ### 5.2.3 Token 生成流程
139
+
140
+ ```mermaid
141
+ flowchart LR
142
+ K[Kernel] -->|stdout| L[Launcher]
143
+ L -->|RPC: generate_tokens| K
144
+ K -->|返回 tokens| L
145
+ L -->|stdin| M1[模块1]
146
+ L -->|stdin| M2[模块2]
147
+ L -->|stdin| M3[模块3]
148
+
149
+ style K fill:#ffebee
150
+ style L fill:#e3f2fd
151
+ style M1 fill:#f3e5f5
152
+ style M2 fill:#f3e5f5
153
+ style M3 fill:#f3e5f5
154
+ ```
155
+
156
+ ## 5.3 订阅与注册顺序
157
+
158
+ ### 5.3.1 设计原则
159
+
160
+ **先订阅,再注册**
161
+
162
+ - 订阅(event.subscribe):实际操作,告诉事件中心"请给我发这些事件"
163
+ - 注册(registry.register):声明报告,告诉注册中心"我订阅了这些事件"
164
+ - 注册是报告,不能报告还没做的事
165
+
166
+ ### 5.3.2 标准顺序
167
+
168
+ ```mermaid
169
+ sequenceDiagram
170
+ participant M as 模块
171
+ participant K as Kernel
172
+
173
+ M->>K: 1. event.subscribe<br/>实际订阅事件
174
+ Note over M,K: 订阅完成,可以接收事件
175
+
176
+ M->>K: 2. registry.register<br/>声明 events_subscribe
177
+ Note over M,K: 注册完成,报告已订阅
178
+
179
+ M->>K: 3. event.publish<br/>发布 module.ready
180
+ Note over M,K: 模块就绪
181
+ ```
182
+
183
+ ### 5.3.3 错误示例
184
+
185
+ ```mermaid
186
+ sequenceDiagram
187
+ participant M as 模块
188
+ participant K as Kernel
189
+
190
+ M->>K: ❌ 1. registry.register<br/>声明 events_subscribe
191
+ Note over M,K: 错误:报告了还没做的事
192
+
193
+ M->>K: 2. event.subscribe<br/>实际订阅事件
194
+ Note over M,K: 订阅完成
195
+ ```
196
+
197
+ ## 5.4 事件驱动流程(通用)
198
+
199
+ ```mermaid
200
+ sequenceDiagram
201
+ participant MA as 模块 A
202
+ participant K as Kernel
203
+ participant MB as 模块 B
204
+ participant MC as 模块 C
205
+
206
+ MA->>K: RPC: event.publish<br/>{event_id, event, data}
207
+ K->>K: 查询订阅关系<br/>检查去重表
208
+ K-->>MB: 转发事件 (JSON-RPC 通知)
209
+ K-->>MC: 转发事件 (JSON-RPC 通知)
210
+
211
+ MB->>MB: 处理事件
212
+ MC->>MC: 处理事件
213
+
214
+ Note over MB: 可能产生新事件<br/>可能调用工具
215
+ ```
216
+
217
+ ## 5.5 模块生命周期状态
218
+
219
+ ```mermaid
220
+ stateDiagram-v2
221
+ [*] --> Starting: Launcher 启动进程
222
+ Starting --> Connecting: 读取 stdin (token + port)
223
+ Connecting --> Subscribing: WebSocket 连接成功
224
+ Subscribing --> Registering: event.subscribe 完成
225
+ Registering --> Ready: registry.register 完成
226
+ Ready --> Running: event.publish(module.ready)
227
+ Running --> Stopping: 收到 shutdown 信号
228
+ Stopping --> [*]: 进程退出
229
+
230
+ Running --> Running: 处理事件/RPC
231
+ ```
232
+
233
+ ## 5.6 启动完成判定
234
+
235
+ **启动完成条件:**
236
+
237
+ 所有要启动的模块,状态要么是 `ready`(收到了 module.ready),要么是 `exiting`(进程已退出)
238
+
239
+ ```mermaid
240
+ flowchart TD
241
+ Start([Launcher 启动所有模块]) --> Check{检查所有模块状态}
242
+ Check -->|有模块 pending| Wait[等待 module.ready]
243
+ Wait --> Check
244
+ Check -->|全部 ready 或 exiting| Done([启动完成])
245
+
246
+ style Done fill:#e8f5e9
247
+ ```
248
+
249
+ ## 5.7 与旧架构的差异
250
+
251
+ ### 主要变化
252
+
253
+ | 方面 | 旧架构 (Registry + Event Hub) | 新架构 (Kernel 统一) |
254
+ |------|------------------------------|---------------------|
255
+ | **Token 生成** | Launcher 生成所有 token | Kernel 生成所有 token |
256
+ | **Token 传递** | Launcher → 模块 (stdin) | Kernel → Launcher (stdout/RPC) → 模块 (stdin) |
257
+ | **架构** | Registry + Event Hub 分离 | 合并为 Kernel |
258
+ | **端点数量** | 2 个(Registry HTTP + Event Hub WS) | 1 个(Kernel WS) |
259
+ | **订阅顺序** | 未明确强调 | 明确要求先订阅再注册 |
260
+ | **Ready 机制** | Registry 延迟发送 ready | Kernel 在 Launcher 注册后发送 |
261
+
262
+ ### 设计理念
263
+
264
+ 1. **谁需要 token 谁生成**:Kernel 需要验证所有连接,所以由 Kernel 生成
265
+ 2. **先订阅再注册**:注册是报告,不能报告还没做的事
266
+ 3. **统一架构**:Registry + Event Hub 合并,简化通信路径
267
+ 4. **解耦设计**:虽然合并在一个进程,但注册中心和事件中心仍保持代码解耦
@@ -0,0 +1,149 @@
1
+ # 5. 核心流程
2
+
3
+ ## 5.1 系统启动流程
4
+
5
+ ```
6
+ main.py → Launcher (launcher/)
7
+
8
+ ├─① 生成所有模块专属 token
9
+ │ → 启动 Kernel 子进程,通过 stdin 传入 boot_info token 和 tokens 映射表
10
+ │ → Kernel 绑定端口,通过 stdout 回传端口,就绪
11
+ │ → Launcher 连接 Kernel WebSocket,订阅所有事件
12
+ │ → Launcher 通过 RPC 向 Kernel 注册自身
13
+
14
+ └─② 扫描 launcher/、kernel/ 和 extensions/ 下所有模块的 module.md
15
+ → 过滤出 config_state: enabled 的模块
16
+ → manual / disabled 状态的模块跳过
17
+ → 并行启动所有 enabled 模块
18
+ → 通过 stdin 向每个模块传入 {"token": "..."} 和 kernel_port
19
+
20
+ ├─ Model Service (extensions/services/model_service/)
21
+ │ → 连接 Kernel WebSocket
22
+ │ → 通过 RPC 向 Kernel 注册
23
+ │ → 注册 LLM 配置
24
+ │ → 发布 module.ready 事件
25
+
26
+ ├─ Task System (extensions/services/task_system/)
27
+ │ → 连接 Kernel WebSocket
28
+ │ → 通过 RPC 向 Kernel 注册
29
+ │ → 注册任务管理接口和工具
30
+ │ → 订阅 session.ended 等事件
31
+ │ → 发布 module.ready 事件
32
+
33
+ ├─ Web Admin (extensions/services/web/)
34
+ │ → 连接 Kernel WebSocket
35
+ │ → 通过 RPC 向 Kernel 注册
36
+ │ → 发现各模块接口 → 提供管理界面
37
+ │ → 发布 module.ready 事件
38
+
39
+ └─ 各 Channel / Agent (extensions/channels/*, extensions/agents/*)
40
+ → 连接 Kernel WebSocket
41
+ → 通过 RPC 向 Kernel 注册
42
+ → 订阅事件
43
+ → 发布 module.ready 事件
44
+ ```
45
+
46
+ ## 5.2 事件驱动流程(通用)
47
+
48
+ ```
49
+ 模块 A 产生事件
50
+
51
+ ├─① 通过 Kernel WebSocket 发送 JSON-RPC 请求
52
+ │ → method: "event.publish"
53
+ │ → params: {event_id, event, data}
54
+
55
+ ├─② Kernel 查询订阅关系
56
+ │ → 找到订阅了该事件的模块列表
57
+ │ → 检查去重表(event_id)
58
+
59
+ ├─③ Kernel 转发事件
60
+ │ → 通过 WebSocket 发送 JSON-RPC 通知给订阅者
61
+
62
+ └─④ 订阅者收到事件
63
+ → 执行相应处理逻辑
64
+ → 可能产生新事件
65
+ → 可能调用工具
66
+ ```
67
+
68
+ ## 5.3 工具调用流程
69
+
70
+ ```
71
+ LLM 输出 tool_call(工具名 + args)
72
+
73
+ ├─① Agent 模块工具调用层拦截
74
+ │ → 通过 Kernel RPC 查询工具地址(registry.lookup)
75
+ │ → 使用 Kernel 传入的 permission_context 构造 context
76
+
77
+ ├─② 通过 Kernel RPC 调用工具提供者
78
+ │ → method: "{tool_provider_module}.{tool_name}"
79
+ │ → params: {args, context}
80
+
81
+ └─③ 工具提供者处理
82
+ → 独立验证 owner 身份(读取 agent 身份 profile.md 中的 owners 列表)
83
+ → 调用 handler 的 check_permission(args, context)
84
+ → 返回 None → 调用 execute(args, context) → 返回结果
85
+ → 返回拒绝原因 → 直接返回,不调用 execute()
86
+ ```
87
+
88
+ ## 5.4 会话生命周期
89
+
90
+ ```
91
+ 事件触发(如 channel.message.received)
92
+
93
+ ├─① Kernel 收到事件
94
+ │ → 判断是否需要创建会话
95
+ │ → 查询身份信息
96
+ │ → 判断工作模式(托管/授权)
97
+
98
+ ├─② [托管模式] 启动 dispatcher Agent
99
+ │ → LLM 决策:接受 / 拒绝 / 转发 / 其他
100
+
101
+ ├─③ [决定接受] 创建会话
102
+ │ → 生成会话 ID
103
+ │ → 记录参与者、渠道、方向
104
+ │ → 发送事件: session.started
105
+
106
+ ├─④ 启动 conversation Agent
107
+ │ → 加载提示词(方向 + 来源 + 身份档案)
108
+ │ → 进入对话循环
109
+ │ → 可按需启动 intent / retrieval Agent
110
+
111
+ ├─⑤ 会话结束
112
+ │ → 发送事件: session.ended
113
+ │ → 启动 post Agent
114
+ │ → 生成总结
115
+ │ → 评估结果
116
+ │ → 可能创建后续任务
117
+
118
+ └─⑥ 任务创建(如需)
119
+ → 调用工具: create_task
120
+ → Task System 接收任务
121
+ ```
122
+
123
+ ## 5.5 任务执行流程
124
+
125
+ ```
126
+ 任务创建
127
+
128
+ ├─① Task System 收到任务
129
+ │ → 保存到任务队列
130
+ │ → 发送事件: task.created
131
+
132
+ ├─② Kernel 收到 task.created 事件
133
+ │ → 启动 planner Agent(如需)
134
+ │ → 规划执行步骤
135
+
136
+ ├─③ 执行任务
137
+ │ → 可能创建会话
138
+ │ → 可能调用工具
139
+ │ → 可能产生事件
140
+
141
+ ├─④ 任务完成
142
+ │ → Agent 调用工具: submit_task
143
+ │ → Task System 更新状态
144
+ │ → 发送事件: task.completed
145
+
146
+ └─⑤ 后续处理
147
+ → post Agent 评估结果
148
+ → 可能创建新任务
149
+ ```