@witty-ai/skill-insight 0.5.0-beta → 0.7.0-beta

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 (303) hide show
  1. package/.env.example +6 -0
  2. package/.next/standalone/.next/BUILD_ID +1 -1
  3. package/.next/standalone/.next/app-path-routes-manifest.json +4 -0
  4. package/.next/standalone/.next/build-manifest.json +2 -2
  5. package/.next/standalone/.next/prerender-manifest.json +3 -3
  6. package/.next/standalone/.next/routes-manifest.json +24 -0
  7. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  8. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  15. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  17. package/.next/standalone/.next/server/app/_not-found.rsc +4 -4
  18. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  19. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  20. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  21. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  22. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  23. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  24. package/.next/standalone/.next/server/app/api/config/create/route.js +4 -3
  25. package/.next/standalone/.next/server/app/api/config/create/route.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/api/config/route.js +5 -4
  27. package/.next/standalone/.next/server/app/api/config/route.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/api/data/route.js +6 -5
  29. package/.next/standalone/.next/server/app/api/data/route.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/api/evaluation/route.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/api/otel/v1/logs/route.js +6 -5
  32. package/.next/standalone/.next/server/app/api/otel/v1/logs/route.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/api/otel/v1/traces/route.js +4 -3
  34. package/.next/standalone/.next/server/app/api/otel/v1/traces/route.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/api/proxy/[taskId]/[...path]/route.js +1 -1
  36. package/.next/standalone/.next/server/app/api/proxy/[taskId]/end/route.js +4 -3
  37. package/.next/standalone/.next/server/app/api/proxy/[taskId]/end/route.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/api/rejudge/route.js +6 -5
  39. package/.next/standalone/.next/server/app/api/rejudge/route.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/api/session/route.js +4 -4
  41. package/.next/standalone/.next/server/app/api/session/route.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route/app-paths-manifest.json +3 -0
  43. package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route/build-manifest.json +11 -0
  44. package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route/server-reference-manifest.json +4 -0
  45. package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route.js +6 -0
  46. package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route.js.map +5 -0
  47. package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route.js.nft.json +1 -0
  48. package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route_client-reference-manifest.js +2 -0
  49. package/.next/standalone/.next/server/app/api/setup/opencode-tui/route/app-paths-manifest.json +3 -0
  50. package/.next/standalone/.next/server/app/api/setup/opencode-tui/route/build-manifest.json +11 -0
  51. package/.next/standalone/.next/server/app/api/setup/opencode-tui/route/server-reference-manifest.json +4 -0
  52. package/.next/standalone/.next/server/app/api/setup/opencode-tui/route.js +6 -0
  53. package/.next/standalone/.next/server/app/api/setup/opencode-tui/route.js.map +5 -0
  54. package/.next/standalone/.next/server/app/api/setup/opencode-tui/route.js.nft.json +1 -0
  55. package/.next/standalone/.next/server/app/api/setup/opencode-tui/route_client-reference-manifest.js +2 -0
  56. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/download/route.js.nft.json +1 -1
  57. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/route.js +3 -2
  58. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/route.js.nft.json +1 -1
  59. package/.next/standalone/.next/server/app/api/skills/[id]/versions/route.js +5 -2
  60. package/.next/standalone/.next/server/app/api/skills/[id]/versions/route.js.nft.json +1 -1
  61. package/.next/standalone/.next/server/app/api/skills/automation/import/route.js +5 -2
  62. package/.next/standalone/.next/server/app/api/skills/automation/import/route.js.nft.json +1 -1
  63. package/.next/standalone/.next/server/app/api/skills/logs/route.js +6 -5
  64. package/.next/standalone/.next/server/app/api/skills/logs/route.js.nft.json +1 -1
  65. package/.next/standalone/.next/server/app/api/skills/route.js +3 -2
  66. package/.next/standalone/.next/server/app/api/skills/route.js.nft.json +1 -1
  67. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route/app-paths-manifest.json +3 -0
  68. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route/build-manifest.json +11 -0
  69. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route/server-reference-manifest.json +4 -0
  70. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route.js +8 -0
  71. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route.js.map +5 -0
  72. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route.js.nft.json +1 -0
  73. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route_client-reference-manifest.js +2 -0
  74. package/.next/standalone/.next/server/app/api/skills/upload/route.js +5 -2
  75. package/.next/standalone/.next/server/app/api/skills/upload/route.js.nft.json +1 -1
  76. package/.next/standalone/.next/server/app/api/task-stats/route/app-paths-manifest.json +3 -0
  77. package/.next/standalone/.next/server/app/api/task-stats/route/build-manifest.json +11 -0
  78. package/.next/standalone/.next/server/app/api/task-stats/route/server-reference-manifest.json +4 -0
  79. package/.next/standalone/.next/server/app/api/task-stats/route.js +12 -0
  80. package/.next/standalone/.next/server/app/api/task-stats/route.js.map +5 -0
  81. package/.next/standalone/.next/server/app/api/task-stats/route.js.nft.json +1 -0
  82. package/.next/standalone/.next/server/app/api/task-stats/route_client-reference-manifest.js +2 -0
  83. package/.next/standalone/.next/server/app/api/upload/route.js +5 -4
  84. package/.next/standalone/.next/server/app/api/upload/route.js.nft.json +1 -1
  85. package/.next/standalone/.next/server/app/details/page/react-loadable-manifest.json +2 -2
  86. package/.next/standalone/.next/server/app/details/page.js.nft.json +1 -1
  87. package/.next/standalone/.next/server/app/details/page_client-reference-manifest.js +1 -1
  88. package/.next/standalone/.next/server/app/details.html +1 -1
  89. package/.next/standalone/.next/server/app/details.rsc +5 -5
  90. package/.next/standalone/.next/server/app/details.segments/_full.segment.rsc +5 -5
  91. package/.next/standalone/.next/server/app/details.segments/_head.segment.rsc +1 -1
  92. package/.next/standalone/.next/server/app/details.segments/_index.segment.rsc +3 -3
  93. package/.next/standalone/.next/server/app/details.segments/_tree.segment.rsc +2 -2
  94. package/.next/standalone/.next/server/app/details.segments/details/__PAGE__.segment.rsc +2 -2
  95. package/.next/standalone/.next/server/app/details.segments/details.segment.rsc +1 -1
  96. package/.next/standalone/.next/server/app/index.html +1 -1
  97. package/.next/standalone/.next/server/app/index.rsc +5 -5
  98. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  99. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +5 -5
  100. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  101. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +3 -3
  102. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  103. package/.next/standalone/.next/server/app/login/page.js.nft.json +1 -1
  104. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  105. package/.next/standalone/.next/server/app/login.html +1 -1
  106. package/.next/standalone/.next/server/app/login.rsc +5 -5
  107. package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +5 -5
  108. package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
  109. package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +3 -3
  110. package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  111. package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  112. package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
  113. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  114. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  115. package/.next/standalone/.next/server/app/skills/page.js.nft.json +1 -1
  116. package/.next/standalone/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  117. package/.next/standalone/.next/server/app/skills.html +1 -1
  118. package/.next/standalone/.next/server/app/skills.rsc +5 -5
  119. package/.next/standalone/.next/server/app/skills.segments/_full.segment.rsc +5 -5
  120. package/.next/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  121. package/.next/standalone/.next/server/app/skills.segments/_index.segment.rsc +3 -3
  122. package/.next/standalone/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  123. package/.next/standalone/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +2 -2
  124. package/.next/standalone/.next/server/app/skills.segments/skills.segment.rsc +1 -1
  125. package/.next/standalone/.next/server/app-paths-manifest.json +4 -0
  126. package/.next/standalone/.next/server/chunks/[root-of-the-server]__02ddba88._.js +1 -1
  127. package/.next/standalone/.next/server/chunks/[root-of-the-server]__15dbd1f2._.js +3 -0
  128. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1c95bcde._.js +1 -1
  129. package/.next/standalone/.next/server/chunks/[root-of-the-server]__23efcd78._.js +3 -0
  130. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4a6d443b._.js +1 -1
  131. package/.next/standalone/.next/server/chunks/[root-of-the-server]__53775b48._.js +1 -1
  132. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5444db55._.js +1 -1
  133. package/.next/standalone/.next/server/chunks/[root-of-the-server]__591248f3._.js +1 -1
  134. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5d8178f6._.js +1 -1
  135. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6261d672._.js +3 -0
  136. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6923eecf._.js +1 -1
  137. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6fc12878._.js +1 -1
  138. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8402dfd1._.js +3 -0
  139. package/.next/standalone/.next/server/chunks/[root-of-the-server]__863cf6de._.js +1 -1
  140. package/.next/standalone/.next/server/chunks/[root-of-the-server]__89404730._.js +3 -0
  141. package/.next/standalone/.next/server/chunks/[root-of-the-server]__98b3de5e._.js +1 -1
  142. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9d551ea2._.js +1 -1
  143. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a4d3d791._.js +1 -1
  144. package/.next/standalone/.next/server/chunks/[root-of-the-server]__aa3d72e3._.js +3 -0
  145. package/.next/standalone/.next/server/chunks/[root-of-the-server]__aa5c8858._.js +2 -2
  146. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b11acc79._.js +1 -1
  147. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ba01f286._.js +1 -1
  148. package/.next/standalone/.next/server/chunks/[root-of-the-server]__bd91659b._.js +1 -1
  149. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c200214a._.js +1 -1
  150. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c20da96a._.js +3 -0
  151. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c602c518._.js +3 -0
  152. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d7fab946._.js +1 -1
  153. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d8c1808b._.js +1 -1
  154. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d9b9fecc._.js +1 -1
  155. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ddf63a21._.js +3 -0
  156. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e280561d._.js +1 -1
  157. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e550423c._.js +1 -1
  158. package/.next/standalone/.next/server/chunks/[root-of-the-server]__f9e66e02._.js +3 -0
  159. package/.next/standalone/.next/server/chunks/_33c0c729._.js +1 -1
  160. package/.next/standalone/.next/server/chunks/_3e8b4d8c._.js +1 -1
  161. package/.next/standalone/.next/server/chunks/_46f10554._.js +3 -0
  162. package/.next/standalone/.next/server/chunks/_4c806e26._.js +3 -0
  163. package/.next/standalone/.next/server/chunks/_cd3d20ca._.js +1 -1
  164. package/.next/standalone/.next/server/chunks/_ddffef3e._.js +1 -1
  165. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_setup_opencode-tui_route_actions_fc8ae29f.js +3 -0
  166. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_skills_sync-enterprise_route_actions_0ca45899.js +3 -0
  167. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_task-stats_route_actions_983505cd.js +3 -0
  168. package/.next/standalone/.next/server/chunks/ce889_server_app_api_setup_opencode-commands_si-optimizer_route_actions_fcde30ef.js +3 -0
  169. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_c33286ed.js +47 -4
  170. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_f42faeee.js +1 -1
  171. package/.next/standalone/.next/server/chunks/src_98433cb8._.js +237 -0
  172. package/.next/standalone/.next/server/chunks/src_c8971a2d._.js +57 -8
  173. package/.next/standalone/.next/server/chunks/src_lib_119f6c7b._.js +3 -0
  174. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__9ab7cc4a._.js → [root-of-the-server]__082c32a2._.js} +2 -2
  175. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__51073007._.js +1 -1
  176. package/.next/standalone/.next/server/chunks/ssr/_049876f0._.js +1 -1
  177. package/.next/standalone/.next/server/chunks/ssr/_09546b95._.js +1 -1
  178. package/.next/standalone/.next/server/chunks/ssr/_8f5379ab._.js +1 -1
  179. package/.next/standalone/.next/server/chunks/ssr/_c8c8c083._.js +9 -9
  180. package/.next/standalone/.next/server/chunks/ssr/{_b121f1ae._.js → _e2faf4f5._.js} +2 -2
  181. package/.next/standalone/.next/server/chunks/ssr/_fd46f439._.js +2 -1
  182. package/.next/standalone/.next/server/chunks/ssr/node_modules_dagre-d3-es_src_dagre_index_3582f3d0.js +1 -1
  183. package/.next/standalone/.next/server/chunks/ssr/node_modules_lodash-es_a1341fea._.js +1 -1
  184. package/.next/standalone/.next/server/chunks/ssr/node_modules_lodash-es_e1de6ed8._.js +1 -1
  185. package/.next/standalone/.next/server/chunks/ssr/src_66a70595._.js +1 -1
  186. package/.next/standalone/.next/server/chunks/ssr/src_app_login_page_tsx_72f58654._.js +1 -1
  187. package/.next/standalone/.next/server/pages/404.html +1 -1
  188. package/.next/standalone/.next/server/pages/500.html +2 -2
  189. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  190. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  191. package/.next/standalone/.next/static/chunks/{737b8cff3c6a4e30.js → 015467355d3866a3.js} +1 -1
  192. package/.next/standalone/.next/static/chunks/09f192c9b0609ad8.js +1 -0
  193. package/.next/standalone/.next/static/chunks/1945a5514fbc393c.css +1 -0
  194. package/.next/{static/chunks/07c9f28a269c701a.js → standalone/.next/static/chunks/361e4cf1e9a71ccb.js} +1 -1
  195. package/.next/{static/chunks/5432ce4a494bc74d.js → standalone/.next/static/chunks/60bc50374fd32f20.js} +3 -3
  196. package/.next/standalone/.next/static/chunks/{251551dcdf74a60d.js → 65bac0880a87bff3.js} +1 -1
  197. package/.next/standalone/.next/static/chunks/961f7fa606dd26a8.js +1 -0
  198. package/.next/standalone/.next/static/chunks/bab2ffd4f527acfb.js +1 -0
  199. package/.next/standalone/.next/static/chunks/c513373e5cfedd5b.js +2 -0
  200. package/.next/standalone/.next/static/chunks/ca3017e51e817855.js +1 -0
  201. package/.next/{static/chunks/7e35f4cf2e266022.js → standalone/.next/static/chunks/cb104c3cb4c52833.js} +1 -1
  202. package/.next/{static/chunks/ff6357067630b168.js → standalone/.next/static/chunks/e13d208072a48316.js} +1 -1
  203. package/.next/standalone/.next/static/chunks/{e09d9ee16fe90255.js → f786bb68e17b12b4.js} +1 -1
  204. package/.next/standalone/.next/static/chunks/fc61b990c5ec4ef4.js +109 -0
  205. package/.next/standalone/node_modules/.prisma/client/edge.js +7 -3
  206. package/.next/standalone/node_modules/.prisma/client/index-browser.js +4 -0
  207. package/.next/standalone/node_modules/.prisma/client/index.js +7 -3
  208. package/.next/standalone/node_modules/.prisma/client/package.json +1 -1
  209. package/.next/standalone/node_modules/.prisma/client/schema.prisma +26 -22
  210. package/.next/standalone/node_modules/.prisma/client/wasm.js +4 -0
  211. package/.next/standalone/node_modules/adm-zip/util/constants.js +142 -0
  212. package/.next/standalone/node_modules/adm-zip/util/decoder.js +5 -0
  213. package/.next/standalone/node_modules/adm-zip/util/errors.js +63 -0
  214. package/.next/standalone/node_modules/adm-zip/util/fattr.js +76 -0
  215. package/.next/standalone/node_modules/adm-zip/util/index.js +5 -0
  216. package/.next/standalone/node_modules/adm-zip/util/utils.js +339 -0
  217. package/.next/standalone/package.json +6 -2
  218. package/.next/standalone/prisma/schema.prisma +7 -3
  219. package/.next/standalone/scripts/opencode_plugin.ts +158 -50
  220. package/.next/standalone/scripts/opencode_tui_plugin.tsx +308 -0
  221. package/.next/standalone/scripts/si-optimizer.md +5 -0
  222. package/.next/static/chunks/{737b8cff3c6a4e30.js → 015467355d3866a3.js} +1 -1
  223. package/.next/static/chunks/09f192c9b0609ad8.js +1 -0
  224. package/.next/static/chunks/1945a5514fbc393c.css +1 -0
  225. package/.next/{standalone/.next/static/chunks/07c9f28a269c701a.js → static/chunks/361e4cf1e9a71ccb.js} +1 -1
  226. package/.next/{standalone/.next/static/chunks/5432ce4a494bc74d.js → static/chunks/60bc50374fd32f20.js} +3 -3
  227. package/.next/static/chunks/{251551dcdf74a60d.js → 65bac0880a87bff3.js} +1 -1
  228. package/.next/static/chunks/961f7fa606dd26a8.js +1 -0
  229. package/.next/static/chunks/bab2ffd4f527acfb.js +1 -0
  230. package/.next/static/chunks/c513373e5cfedd5b.js +2 -0
  231. package/.next/static/chunks/ca3017e51e817855.js +1 -0
  232. package/.next/{standalone/.next/static/chunks/7e35f4cf2e266022.js → static/chunks/cb104c3cb4c52833.js} +1 -1
  233. package/.next/{standalone/.next/static/chunks/ff6357067630b168.js → static/chunks/e13d208072a48316.js} +1 -1
  234. package/.next/static/chunks/{e09d9ee16fe90255.js → f786bb68e17b12b4.js} +1 -1
  235. package/.next/static/chunks/fc61b990c5ec4ef4.js +109 -0
  236. package/package.json +6 -2
  237. package/prisma/schema.prisma +7 -3
  238. package/scripts/activate_telemetry.sh +44 -1
  239. package/scripts/opencode_plugin.ts +158 -50
  240. package/scripts/opencode_tui_plugin.tsx +308 -0
  241. package/scripts/si-optimizer.md +5 -0
  242. package/scripts/utils.js +0 -1
  243. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1013b265._.js +0 -3
  244. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1ce5e3b8._.js +0 -3
  245. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6d8053e2._.js +0 -3
  246. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b835ea7f._.js +0 -3
  247. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e2f0baee._.js +0 -3
  248. package/.next/standalone/.next/server/chunks/[root-of-the-server]__fc05579d._.js +0 -3
  249. package/.next/standalone/.next/server/chunks/_41a98bd8._.js +0 -3
  250. package/.next/standalone/.next/server/chunks/src_497d2ad2._.js +0 -175
  251. package/.next/standalone/.next/server/chunks/src_lib_12408140._.js +0 -3
  252. package/.next/standalone/.next/static/chunks/01eddf501c574a44.js +0 -1
  253. package/.next/standalone/.next/static/chunks/1e782a49beaf489c.js +0 -1
  254. package/.next/standalone/.next/static/chunks/4071dbec4cf7e72e.js +0 -109
  255. package/.next/standalone/.next/static/chunks/67bd1a5de2195779.js +0 -1
  256. package/.next/standalone/.next/static/chunks/a87b5e84254095a5.js +0 -1
  257. package/.next/standalone/.next/static/chunks/c6bd2818656b1f20.css +0 -1
  258. package/.next/standalone/.next/static/chunks/dc59a07a8f327b40.js +0 -1
  259. package/.next/standalone/LICENSE +0 -21
  260. package/.next/standalone/bin/cli.js +0 -106
  261. package/.next/standalone/custom-models.example.json +0 -21
  262. package/.next/standalone/eslint.config.mjs +0 -18
  263. package/.next/standalone/features/feature-skill-used-jump-link/design/2026-03-18-skill-used-jump-link-design.md +0 -126
  264. package/.next/standalone/features/feature-skill-used-jump-link/feature.json +0 -32
  265. package/.next/standalone/features/feature-skill-used-jump-link/issue.md +0 -32
  266. package/.next/standalone/features/feature-skill-used-jump-link/plans/2026-03-18-skill-used-jump-link.md +0 -528
  267. package/.next/standalone/next.config.ts +0 -41
  268. package/.next/standalone/scripts/activate_telemetry.sh +0 -159
  269. package/.next/standalone/scripts/create_migration_package.sh +0 -124
  270. package/.next/standalone/scripts/fix_models.js +0 -66
  271. package/.next/standalone/scripts/init_opengauss.py +0 -284
  272. package/.next/standalone/scripts/install.js +0 -273
  273. package/.next/standalone/scripts/logs.js +0 -38
  274. package/.next/standalone/scripts/otel_data/logs.jsonl +0 -12
  275. package/.next/standalone/scripts/otel_data/metrics.jsonl +0 -21
  276. package/.next/standalone/scripts/otel_data/raw_requests.jsonl +0 -8
  277. package/.next/standalone/scripts/otel_data/raw_requests.jsonl.bak +0 -6
  278. package/.next/standalone/scripts/otel_receiver.py +0 -580
  279. package/.next/standalone/scripts/postinstall.js +0 -192
  280. package/.next/standalone/scripts/publish-npm.js +0 -401
  281. package/.next/standalone/scripts/restart.js +0 -26
  282. package/.next/standalone/scripts/restart.sh +0 -138
  283. package/.next/standalone/scripts/restart_dev.sh +0 -132
  284. package/.next/standalone/scripts/start.js +0 -291
  285. package/.next/standalone/scripts/status.js +0 -41
  286. package/.next/standalone/scripts/stop.js +0 -90
  287. package/.next/standalone/scripts/sync_skills.js +0 -216
  288. package/.next/standalone/scripts/utils.js +0 -235
  289. package/.next/standalone/tests/setup_skill_optimizer.sh +0 -118
  290. package/.next/standalone/tsconfig.json +0 -34
  291. package/.next/static/chunks/01eddf501c574a44.js +0 -1
  292. package/.next/static/chunks/1e782a49beaf489c.js +0 -1
  293. package/.next/static/chunks/4071dbec4cf7e72e.js +0 -109
  294. package/.next/static/chunks/67bd1a5de2195779.js +0 -1
  295. package/.next/static/chunks/a87b5e84254095a5.js +0 -1
  296. package/.next/static/chunks/c6bd2818656b1f20.css +0 -1
  297. package/.next/static/chunks/dc59a07a8f327b40.js +0 -1
  298. /package/.next/standalone/.next/static/{H581Rok68JtPV4bAVVH3l → iKG72t8Hpebb09DcIpKUJ}/_buildManifest.js +0 -0
  299. /package/.next/standalone/.next/static/{H581Rok68JtPV4bAVVH3l → iKG72t8Hpebb09DcIpKUJ}/_clientMiddlewareManifest.json +0 -0
  300. /package/.next/standalone/.next/static/{H581Rok68JtPV4bAVVH3l → iKG72t8Hpebb09DcIpKUJ}/_ssgManifest.js +0 -0
  301. /package/.next/static/{H581Rok68JtPV4bAVVH3l → iKG72t8Hpebb09DcIpKUJ}/_buildManifest.js +0 -0
  302. /package/.next/static/{H581Rok68JtPV4bAVVH3l → iKG72t8Hpebb09DcIpKUJ}/_clientMiddlewareManifest.json +0 -0
  303. /package/.next/static/{H581Rok68JtPV4bAVVH3l → iKG72t8Hpebb09DcIpKUJ}/_ssgManifest.js +0 -0
@@ -0,0 +1,308 @@
1
+ // @ts-nocheck
2
+ /** @jsxImportSource @opentui/solid */
3
+ import { Show, createEffect, createMemo, createSignal } from "solid-js"
4
+ import fs from "fs"
5
+ import os from "os"
6
+ import path from "path"
7
+ import { spawn } from "child_process"
8
+
9
+ function parseBool(input: unknown, defaultValue: boolean) {
10
+ if (input === undefined || input === null) return defaultValue
11
+ const value = String(input).trim().toLowerCase()
12
+ if (!value) return defaultValue
13
+ if (value === "1" || value === "true" || value === "yes" || value === "y" || value === "on") return true
14
+ if (value === "0" || value === "false" || value === "no" || value === "n" || value === "off") return false
15
+ return defaultValue
16
+ }
17
+
18
+ function loadSkillInsightConfig() {
19
+ const config: Record<string, string> = {}
20
+ try {
21
+ const envPath = path.join(os.homedir(), ".skill-insight", ".env")
22
+ if (fs.existsSync(envPath)) {
23
+ const content = fs.readFileSync(envPath, "utf8")
24
+ for (const line of content.split("\n")) {
25
+ const match = line.match(/^\s*([\w_]+)\s*=\s*(.*)?\s*$/)
26
+ if (!match) continue
27
+ const key = match[1]
28
+ const raw = (match[2] || "").trim()
29
+ const value = raw.replace(/^['"](.*)['"]$/, "$1")
30
+ config[key] = value
31
+ }
32
+ }
33
+ } catch {}
34
+
35
+ const apiKey = config["SKILL_INSIGHT_API_KEY"] || process.env.SKILL_INSIGHT_API_KEY
36
+ const host = config["SKILL_INSIGHT_HOST"] || process.env.SKILL_INSIGHT_HOST
37
+ const showTaskStats = parseBool(
38
+ config["SKILL_INSIGHT_SHOW_TASK_STATS"] ?? process.env.SKILL_INSIGHT_SHOW_TASK_STATS,
39
+ true,
40
+ )
41
+
42
+ return { apiKey, host, showTaskStats }
43
+ }
44
+
45
+ function normalizeHost(host: string) {
46
+ const raw = host.trim()
47
+ if (!raw) return null
48
+ try {
49
+ const urlStr = raw.match(/^https?:\/\//) ? raw : `http://${raw}`
50
+ const u = new URL(urlStr)
51
+ return u
52
+ } catch {
53
+ return null
54
+ }
55
+ }
56
+
57
+ function formatLatencySeconds(input: unknown) {
58
+ const n = typeof input === "number" ? input : Number(input)
59
+ if (!Number.isFinite(n) || n < 0) return "-"
60
+ if (n < 10) return `${n.toFixed(2)}s`
61
+ if (n < 60) return `${n.toFixed(1)}s`
62
+ return `${Math.round(n)}s`
63
+ }
64
+
65
+ function formatNumber(input: unknown) {
66
+ const n = typeof input === "number" ? input : Number(input)
67
+ if (!Number.isFinite(n)) return "-"
68
+ return new Intl.NumberFormat("en-US").format(n)
69
+ }
70
+
71
+ async function sleep(ms: number) {
72
+ await new Promise((r) => setTimeout(r, ms))
73
+ }
74
+
75
+ async function fetchTaskStats(base: URL, taskId: string, apiKey?: string) {
76
+ const url = new URL("/api/task-stats", base)
77
+ url.searchParams.set("taskId", taskId)
78
+ url.searchParams.set("framework", "opencode")
79
+ const headers: Record<string, string> = {}
80
+ if (apiKey) headers["x-witty-api-key"] = apiKey
81
+
82
+ const res = await fetch(url, { headers })
83
+ if (!res.ok) return null
84
+ const json = (await res.json()) as any
85
+ if (!json || json.found !== true) return null
86
+ return json
87
+ }
88
+
89
+ function buildDetailsUrl(base: URL, taskId: string) {
90
+ const u = new URL("/details", base)
91
+ u.searchParams.set("framework", "opencode")
92
+ u.searchParams.set("expandTaskId", taskId)
93
+ return u.toString()
94
+ }
95
+
96
+ function openUrl(url: string) {
97
+ try {
98
+ if (process.platform === "darwin") {
99
+ spawn("open", [url], { stdio: "ignore", detached: true }).unref()
100
+ return true
101
+ }
102
+ if (process.platform === "win32") {
103
+ spawn("cmd", ["/c", "start", "", url], { stdio: "ignore", detached: true, windowsHide: true }).unref()
104
+ return true
105
+ }
106
+ spawn("xdg-open", [url], { stdio: "ignore", detached: true }).unref()
107
+ return true
108
+ } catch {
109
+ return false
110
+ }
111
+ }
112
+
113
+ function formatStatsMessage(stats: any, detailsUrl: string) {
114
+ const latency = formatLatencySeconds(stats?.latency)
115
+ const tokens = formatNumber(stats?.tokens)
116
+ const inputTokens = formatNumber(stats?.input_tokens)
117
+ const outputTokens = formatNumber(stats?.output_tokens)
118
+ const toolCalls = formatNumber(stats?.tool_call_count)
119
+ const llmCalls = formatNumber(stats?.llm_call_count)
120
+ return [
121
+ `时延: ${latency}`,
122
+ `Token: ${tokens} (入: ${inputTokens}, 出: ${outputTokens})`,
123
+ `LLM: ${llmCalls} | 工具: ${toolCalls}`,
124
+ `详情: ${detailsUrl}`,
125
+ ].join("\n")
126
+ }
127
+
128
+ function StatsFooter(props: {
129
+ api: any
130
+ sessionId: string
131
+ getEntry: (sid: string) => any
132
+ ensure: (sid: string) => void
133
+ config: { host?: string; apiKey?: string }
134
+ }) {
135
+ const theme = () => props.api.theme.current
136
+
137
+ createEffect(() => {
138
+ if (!props.sessionId) return
139
+ props.ensure(props.sessionId)
140
+ })
141
+
142
+ const entry = createMemo(() => {
143
+ if (!props.sessionId) return null
144
+ return props.getEntry(props.sessionId)
145
+ })
146
+
147
+ const title = createMemo(() => {
148
+ return "Skill Insight"
149
+ })
150
+
151
+ return (
152
+ <box gap={1}>
153
+ <Show when={!props.config.host}>
154
+ <box
155
+ backgroundColor={theme().backgroundElement}
156
+ paddingTop={1}
157
+ paddingBottom={1}
158
+ paddingLeft={2}
159
+ paddingRight={2}
160
+ flexDirection="column"
161
+ gap={0}
162
+ >
163
+ <text fg={theme().text}>
164
+ <b>Skill Insight</b>
165
+ </text>
166
+ <text fg={theme().textMuted}>未配置 SKILL_INSIGHT_HOST</text>
167
+ <text fg={theme().textMuted}>请在 ~/.skill-insight/.env 设置 SKILL_INSIGHT_HOST</text>
168
+ </box>
169
+ </Show>
170
+ <Show when={entry()}>
171
+ {(x: any) => (
172
+ <box
173
+ backgroundColor={theme().backgroundElement}
174
+ paddingTop={1}
175
+ paddingBottom={1}
176
+ paddingLeft={2}
177
+ paddingRight={2}
178
+ flexDirection="column"
179
+ gap={0}
180
+ >
181
+ <box flexDirection="row" justifyContent="space-between">
182
+ <text fg={theme().text}>
183
+ <b>{title()}</b>
184
+ </text>
185
+ </box>
186
+ <Show when={x().state === "loading"}>
187
+ <text fg={theme().textMuted}>等待任务执行完毕</text>
188
+ </Show>
189
+ <Show when={x().state === "error"}>
190
+ <text fg={theme().textMuted}>统计暂不可用</text>
191
+ </Show>
192
+ <Show when={x().state === "ready"}>
193
+ <text fg={theme().textMuted}>时延: {formatLatencySeconds(x().stats?.latency)}</text>
194
+ <text fg={theme().textMuted}>
195
+ Token: {formatNumber(x().stats?.tokens)} (入: {formatNumber(x().stats?.input_tokens)}, 出:{" "}
196
+ {formatNumber(x().stats?.output_tokens)})
197
+ </text>
198
+ <text fg={theme().textMuted}>
199
+ LLM: {formatNumber(x().stats?.llm_call_count)} | 工具: {formatNumber(x().stats?.tool_call_count)}
200
+ </text>
201
+ <text
202
+ fg={theme().primary}
203
+ onMouseDown={() => {
204
+ const ok = openUrl(x().detailsUrl)
205
+ if (!ok) props.api.ui.toast({ message: "打开失败(可复制链接到浏览器)", variant: "error" })
206
+ }}
207
+ >
208
+ <b>查看详情 ↗</b> <span style={{ fg: theme().textMuted }}>(点击打开)</span>
209
+ </text>
210
+ </Show>
211
+ </box>
212
+ )}
213
+ </Show>
214
+ <Show when={!entry()}>
215
+ <text fg={theme().textMuted}>Skill Insight:暂无任务统计</text>
216
+ </Show>
217
+ </box>
218
+ )
219
+ }
220
+
221
+ const tui = async (api: any) => {
222
+ const [entries, setEntries] = createSignal({})
223
+
224
+ const getEntry = (sid: string) => entries()[sid]
225
+ const setEntry = (sid: string, value: any) => {
226
+ const prev = entries()
227
+ setEntries({ ...prev, [sid]: value })
228
+ }
229
+
230
+ const ensure = async (sessionId: string, opts?: { force?: boolean }) => {
231
+ const existing = getEntry(sessionId)
232
+ if (existing?.state === "loading") return
233
+ if (!opts?.force && existing?.state === "ready") return
234
+
235
+ const cfg = loadSkillInsightConfig()
236
+ if (!cfg.showTaskStats) return
237
+ if (!cfg.host) return
238
+ const base = normalizeHost(cfg.host)
239
+ if (!base) return
240
+
241
+ const detailsUrl = buildDetailsUrl(base, sessionId)
242
+ setEntry(sessionId, {
243
+ sessionId,
244
+ state: "loading",
245
+ detailsUrl,
246
+ updatedAt: Date.now(),
247
+ prevTimestamp: existing?.stats?.timestamp,
248
+ })
249
+
250
+ let stats: any = null
251
+ const maxAttempts = 8
252
+ for (let i = 0; i < maxAttempts; i++) {
253
+ stats = await fetchTaskStats(base, sessionId, cfg.apiKey)
254
+ if (stats) {
255
+ if (opts?.force && existing?.stats?.timestamp && stats.timestamp) {
256
+ const prevMs = Date.parse(existing.stats.timestamp)
257
+ const curMs = Date.parse(stats.timestamp)
258
+ if (Number.isFinite(prevMs) && Number.isFinite(curMs) && curMs <= prevMs) {
259
+ stats = null
260
+ }
261
+ }
262
+ }
263
+ if (stats) break
264
+ await sleep(i < 2 ? 800 : 1200)
265
+ }
266
+
267
+ if (!stats) {
268
+ setEntry(sessionId, { sessionId, state: "error", detailsUrl, updatedAt: Date.now() })
269
+ return
270
+ }
271
+
272
+ setEntry(sessionId, { sessionId, state: "ready", detailsUrl, stats, updatedAt: Date.now() })
273
+ }
274
+
275
+ api.slots.register({
276
+ order: 80,
277
+ slots: {
278
+ sidebar_content(_ctx: any, props: any) {
279
+ const cfg = loadSkillInsightConfig()
280
+ if (!cfg.showTaskStats) return null
281
+ const sid = props?.session_id
282
+ if (!sid || typeof sid !== "string") return null
283
+ return <StatsFooter api={api} sessionId={sid} getEntry={getEntry} ensure={ensure} config={cfg} />
284
+ },
285
+ },
286
+ })
287
+
288
+ api.event.on("session.idle", async (evt: any) => {
289
+ const sessionId =
290
+ evt?.properties?.sessionId ||
291
+ evt?.properties?.sessionID ||
292
+ evt?.properties?.session_id ||
293
+ evt?.session_id ||
294
+ evt?.payload?.session_id
295
+
296
+ if (!sessionId || typeof sessionId !== "string") return
297
+ if (!sessionId.startsWith("ses")) return
298
+ api.kv.set("skill_insight_latest_session_id", sessionId)
299
+ ensure(sessionId, { force: true })
300
+ })
301
+ }
302
+
303
+ const plugin = {
304
+ id: "witty-skill-insight-task-stats",
305
+ tui,
306
+ }
307
+
308
+ export default plugin
@@ -0,0 +1,5 @@
1
+ ---
2
+ description: 优化技能或执行迭代优化
3
+ ---
4
+
5
+ !`if [ -n "$1" ]; then echo "使用skill-optimizer技能优化$1这个skill"; else echo "基于当前目录下的iter-config.yaml配置,使用iterative-optimizer技能进行迭代优化"; fi`