@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
@@ -22,6 +22,9 @@ let uploadedSessions = new Map(); // sessionId -> uploaded message count
22
22
  let sessionGraph = new Map(); // parent_id -> [child_ids]
23
23
  let pendingChildSessions = new Map(); // child_id -> {parent_id, data}
24
24
  let lastDeltaByPartField = new Map();
25
+ let sessionParentById = new Map();
26
+ let sessionAgentById = new Map();
27
+ let subagentTypeBySessionId = new Map();
25
28
 
26
29
  const STORE_PATH = path.join(os.homedir(), '.opencode', 'witty_plugin_session_store.json');
27
30
 
@@ -131,6 +134,27 @@ function loadStore() {
131
134
  }
132
135
  }
133
136
  }
137
+
138
+ if (data.sessionParentById) {
139
+ const diskParents = new Map(data.sessionParentById);
140
+ for (const [sid, pid] of diskParents.entries()) {
141
+ if (!sessionParentById.has(sid) && pid) sessionParentById.set(sid, pid);
142
+ }
143
+ }
144
+
145
+ if (data.sessionAgentById) {
146
+ const diskAgents = new Map(data.sessionAgentById);
147
+ for (const [sid, agentName] of diskAgents.entries()) {
148
+ if (!sessionAgentById.has(sid) && agentName) sessionAgentById.set(sid, agentName);
149
+ }
150
+ }
151
+
152
+ if (data.subagentTypeBySessionId) {
153
+ const diskTypes = new Map(data.subagentTypeBySessionId);
154
+ for (const [sid, t] of diskTypes.entries()) {
155
+ if (!subagentTypeBySessionId.has(sid) && t) subagentTypeBySessionId.set(sid, t);
156
+ }
157
+ }
134
158
 
135
159
  logDebug(`Loaded store (merged): ${sessionStore.size} messages`);
136
160
  }
@@ -156,6 +180,9 @@ function saveStore() {
156
180
  uploadedSessions: Array.from(uploadedSessions.entries()),
157
181
  sessionGraph: Array.from(sessionGraph.entries()),
158
182
  pendingChildSessions: Array.from(pendingChildSessions.entries()),
183
+ sessionParentById: Array.from(sessionParentById.entries()),
184
+ sessionAgentById: Array.from(sessionAgentById.entries()),
185
+ subagentTypeBySessionId: Array.from(subagentTypeBySessionId.entries()),
159
186
  timestamp: new Date().toISOString()
160
187
  };
161
188
  fs.writeFileSync(STORE_PATH, JSON.stringify(data, null, 2), 'utf8');
@@ -290,7 +317,8 @@ function collectSessionMessages(sessionId) {
290
317
  timeInfo: entry.info.time,
291
318
  partBasedDuration: partBasedDuration,
292
319
  modelID: entry.info.modelID,
293
- model: entry.info.model
320
+ model: entry.info.model,
321
+ agent: entry.info.agent
294
322
  });
295
323
  }
296
324
  }
@@ -315,32 +343,53 @@ function cleanupOrphanedSessions() {
315
343
  }
316
344
  }
317
345
 
318
- function collectSessionWithChildren(sessionId) {
319
- const messages = collectSessionMessages(sessionId);
320
- const childSessionIds = sessionGraph.get(sessionId) || [];
321
-
322
- logDebug(`Collecting ${childSessionIds.length} child sessions for ${sessionId}`);
323
-
324
- for (const childId of childSessionIds) {
325
- const childData = pendingChildSessions.get(childId);
346
+ function findRootSessionId(sessionId) {
347
+ let cur = sessionId;
348
+ const visited = new Set();
349
+ while (cur && cur.startsWith('ses') && !visited.has(cur)) {
350
+ visited.add(cur);
351
+ const p = sessionParentById.get(cur);
352
+ if (!p || !p.startsWith('ses')) break;
353
+ cur = p;
354
+ }
355
+ return cur;
356
+ }
357
+
358
+ function collectSessionWithDescendants(rootSessionId) {
359
+ const messages = collectSessionMessages(rootSessionId);
360
+ const mergedSessionIds = [];
361
+ const visited = new Set();
362
+ const stack = Array.isArray(sessionGraph.get(rootSessionId)) ? [...sessionGraph.get(rootSessionId)] : [];
363
+
364
+ while (stack.length > 0) {
365
+ const sid = stack.pop();
366
+ if (!sid || visited.has(sid)) continue;
367
+ visited.add(sid);
368
+
369
+ const childData = pendingChildSessions.get(sid);
326
370
  if (childData && childData.messages) {
327
- logDebug(`Merging ${childData.messages.length} messages from child ${childId}`);
328
-
329
- // Convert roles in child sessions
371
+ logDebug(`Merging ${childData.messages.length} messages from child ${sid}`);
372
+ const name =
373
+ sessionAgentById.get(sid) ||
374
+ subagentTypeBySessionId.get(sid) ||
375
+ null;
330
376
  const subagentMessages = childData.messages.map(msg => {
331
377
  if (msg.role === 'assistant') {
332
- return { ...msg, role: 'subagent' };
378
+ return { ...msg, role: 'subagent', subagent_name: name || msg.agent, subagent_session_id: sid };
333
379
  } else if (msg.role === 'user') {
334
380
  return { ...msg, role: 'opencode' };
335
381
  }
336
382
  return msg;
337
383
  });
338
-
339
384
  messages.push(...subagentMessages);
385
+ mergedSessionIds.push(sid);
340
386
  }
387
+
388
+ const next = sessionGraph.get(sid) || [];
389
+ for (const x of next) stack.push(x);
341
390
  }
342
-
343
- return { messages, childSessionIds };
391
+
392
+ return { messages, mergedSessionIds };
344
393
  }
345
394
 
346
395
  export default async function WittySkillInsightPlugin(input) {
@@ -399,9 +448,26 @@ export default async function WittySkillInsightPlugin(input) {
399
448
 
400
449
  // logDebug(`Event: ${event.type}`);
401
450
 
402
- try {
451
+ try {
403
452
  // Attempt to find session ID in various places
404
- const sessionId = event.session_id || event.properties?.sessionID || event.payload?.session_id;
453
+ let sessionId = event.session_id || event.properties?.sessionID || event.payload?.session_id;
454
+ let eagerFlush = false;
455
+
456
+ if (event.type === 'session.created' || event.type === 'session.updated') {
457
+ const sessionInfo = event.properties?.info || event.payload?.info;
458
+ if (sessionInfo && sessionInfo.id) {
459
+ const sid = sessionInfo.id;
460
+ const pid = sessionInfo.parentID || sessionInfo.parentId || sessionInfo.parent_id;
461
+ if (pid && pid.startsWith('ses')) {
462
+ sessionParentById.set(sid, pid);
463
+ if (!sessionGraph.has(pid)) sessionGraph.set(pid, []);
464
+ if (!sessionGraph.get(pid).includes(sid)) {
465
+ sessionGraph.get(pid).push(sid);
466
+ logDebug(`Session created: ${sid} is child of ${pid}`);
467
+ }
468
+ }
469
+ }
470
+ }
405
471
 
406
472
  // 1. Accumulate Message Metadata
407
473
  if (event.type === 'message.created' || event.type === 'message.updated') {
@@ -416,11 +482,22 @@ export default async function WittySkillInsightPlugin(input) {
416
482
  });
417
483
  }
418
484
  const entry = sessionStore.get(msgId);
485
+ if (!sessionId) sessionId = info.sessionID || info.sessionId || entry.info?.sessionID;
419
486
  if (sessionId) entry.info.sessionID = sessionId;
420
487
  // Merge info
421
488
  Object.assign(entry.info, info);
422
489
  if (info.tool_calls || info.toolCalls) entry.info.tool_calls = info.tool_calls || info.toolCalls;
423
490
  if (info.function_call || info.functionCall) entry.info.function_call = info.function_call || info.functionCall;
491
+
492
+ if (entry.info?.sessionID && entry.info?.agent) {
493
+ if (!sessionAgentById.has(entry.info.sessionID)) {
494
+ sessionAgentById.set(entry.info.sessionID, entry.info.agent);
495
+ }
496
+ }
497
+
498
+ if (entry.info?.role === 'assistant' && (entry.info.finish || entry.info.time?.completed != null)) {
499
+ eagerFlush = true;
500
+ }
424
501
  }
425
502
  }
426
503
 
@@ -441,6 +518,7 @@ export default async function WittySkillInsightPlugin(input) {
441
518
  });
442
519
  }
443
520
  const entry = sessionStore.get(msgId);
521
+ if (!sessionId) sessionId = entry.info?.sessionID || part.sessionID || part.session_id;
444
522
  if (!(entry.parts instanceof Map)) entry.parts = new Map(Array.isArray(entry.parts) ? entry.parts : []);
445
523
  if (entry.toolParts && !(entry.toolParts instanceof Map)) entry.toolParts = new Map(Array.isArray(entry.toolParts) ? entry.toolParts : []);
446
524
 
@@ -515,21 +593,30 @@ export default async function WittySkillInsightPlugin(input) {
515
593
  if (tp.tool === 'task' && tp.state.output) {
516
594
  try {
517
595
  const taskOutput = tp.state.output;
518
- const taskIdMatch = taskOutput.match(/task_id:\s*(\w+)/);
519
- if (taskIdMatch && taskIdMatch[1]) {
520
- const subagentSessionId = taskIdMatch[1];
521
- if (subagentSessionId.startsWith('ses')) {
522
- // Establish parent-child relationship
523
- const parentSessionId = entry.info.sessionID || sessionId;
524
- if (parentSessionId) {
525
- if (!sessionGraph.has(parentSessionId)) {
526
- sessionGraph.set(parentSessionId, []);
527
- }
528
- if (!sessionGraph.get(parentSessionId).includes(subagentSessionId)) {
529
- sessionGraph.get(parentSessionId).push(subagentSessionId);
530
- logDebug(`Task detected: ${subagentSessionId} is child of ${parentSessionId}`);
531
- }
596
+ let subagentSessionId = null;
597
+ const m1 = taskOutput.match(/<task_metadata>[\s\S]*?session_id:\s*(ses_[A-Za-z0-9]+)[\s\S]*?<\/task_metadata>/i);
598
+ const m2 = taskOutput.match(/session_id:\s*(ses_[A-Za-z0-9]+)/i);
599
+ const m3 = taskOutput.match(/task\(\s*session_id\s*=\s*\"(ses_[A-Za-z0-9]+)\"/i);
600
+ const m4 = taskOutput.match(/task_id:\s*(\w+)/i);
601
+ const candidate = (m1 && m1[1]) || (m2 && m2[1]) || (m3 && m3[1]) || (m4 && m4[1]) || null;
602
+ if (candidate && String(candidate).startsWith('ses')) subagentSessionId = String(candidate);
603
+
604
+ if (subagentSessionId) {
605
+ const parentSessionId = entry.info.sessionID || sessionId;
606
+ if (parentSessionId) {
607
+ if (!sessionGraph.has(parentSessionId)) sessionGraph.set(parentSessionId, []);
608
+ if (!sessionGraph.get(parentSessionId).includes(subagentSessionId)) {
609
+ sessionGraph.get(parentSessionId).push(subagentSessionId);
610
+ logDebug(`Task detected: ${subagentSessionId} is child of ${parentSessionId}`);
532
611
  }
612
+ if (!sessionParentById.has(subagentSessionId)) {
613
+ sessionParentById.set(subagentSessionId, parentSessionId);
614
+ }
615
+ }
616
+
617
+ const t = tp.state?.input?.subagent_type;
618
+ if (t && !subagentTypeBySessionId.has(subagentSessionId)) {
619
+ subagentTypeBySessionId.set(subagentSessionId, t);
533
620
  }
534
621
  }
535
622
  } catch (e) {
@@ -566,6 +653,7 @@ export default async function WittySkillInsightPlugin(input) {
566
653
  }
567
654
 
568
655
  const entry = sessionStore.get(msgId);
656
+ if (!sessionId) sessionId = entry.info?.sessionID;
569
657
  if (!(entry.parts instanceof Map)) entry.parts = new Map(Array.isArray(entry.parts) ? entry.parts : []);
570
658
 
571
659
  const dedupeKey = `${msgId}:${partId}:${field}`;
@@ -606,7 +694,7 @@ export default async function WittySkillInsightPlugin(input) {
606
694
  }
607
695
 
608
696
  // 3. Upload on Session Idle
609
- if (event.type === "session.idle") {
697
+ if (event.type === "session.idle" || eagerFlush) {
610
698
  if (!sessionId || !sessionId.startsWith("ses")) return;
611
699
 
612
700
  // Reload store from disk to pick up any data written by
@@ -614,15 +702,18 @@ export default async function WittySkillInsightPlugin(input) {
614
702
  // from within the opencode interactive interface).
615
703
  loadStore();
616
704
 
617
- // Only treat a session as "child" when it was detected via Task tool
618
- // (i.e. registered in sessionGraph). Do NOT rely on event.parentID because
619
- // nested `opencode run ...` can also set parentID and we want both sessions uploaded.
620
705
  let foundParentId = null;
621
- for (const [potentialParent, childIds] of sessionGraph.entries()) {
622
- if (childIds.includes(sessionId)) {
623
- foundParentId = potentialParent;
624
- logDebug(`Found parent ${foundParentId} for for child ${sessionId} from sessionGraph`);
625
- break;
706
+ const directParent = sessionParentById.get(sessionId);
707
+ if (directParent && Array.isArray(sessionGraph.get(directParent)) && sessionGraph.get(directParent).includes(sessionId)) {
708
+ foundParentId = directParent;
709
+ logDebug(`Found parent ${foundParentId} for for child ${sessionId} from sessionParentById`);
710
+ } else {
711
+ for (const [potentialParent, childIds] of sessionGraph.entries()) {
712
+ if (childIds.includes(sessionId)) {
713
+ foundParentId = potentialParent;
714
+ logDebug(`Found parent ${foundParentId} for for child ${sessionId} from sessionGraph`);
715
+ break;
716
+ }
626
717
  }
627
718
  }
628
719
 
@@ -647,14 +738,16 @@ export default async function WittySkillInsightPlugin(input) {
647
738
  });
648
739
  logDebug(`Stored ${childMessages.length} messages for child session ${sessionId}`);
649
740
  }
650
-
651
- return; // Don't upload child session separately
741
+
742
+ const rootId = findRootSessionId(foundParentId) || foundParentId;
743
+ if (!rootId || rootId === sessionId) return;
744
+ sessionId = rootId;
652
745
  }
653
746
 
654
747
  logDebug(`Session Idle: ${sessionId}. Messages in store: ${sessionStore.size}`);
655
748
 
656
749
  // This is a parent session, collect all messages including children
657
- const { messages, childSessionIds } = collectSessionWithChildren(sessionId);
750
+ const { messages, mergedSessionIds } = collectSessionWithDescendants(sessionId);
658
751
 
659
752
  if (messages.length === 0) {
660
753
  logDebug(`No messages found for session ${sessionId}, skipping upload.`);
@@ -662,11 +755,10 @@ export default async function WittySkillInsightPlugin(input) {
662
755
  }
663
756
 
664
757
  // Cleanup child session data after successful upload
665
- for (const childId of childSessionIds) {
758
+ for (const childId of mergedSessionIds) {
666
759
  pendingChildSessions.delete(childId);
667
760
  logDebug(`Cleaned up child session ${childId}`);
668
761
  }
669
- sessionGraph.delete(sessionId);
670
762
 
671
763
  // Cleanup orphaned child sessions (older than 1 hour)
672
764
  cleanupOrphanedSessions();
@@ -688,6 +780,7 @@ export default async function WittySkillInsightPlugin(input) {
688
780
  let totalOutputTokens = 0;
689
781
  let totalCacheReadInputTokens = 0;
690
782
  let totalCacheCreationInputTokens = 0;
783
+ let totalReasoningTokens = 0;
691
784
  let llmCallCount = 0;
692
785
  let toolCallCount = 0;
693
786
  let toolCallErrorCount = 0;
@@ -695,11 +788,14 @@ export default async function WittySkillInsightPlugin(input) {
695
788
 
696
789
  for (const m of messages) {
697
790
  if (m.role === 'user' && !firstUserQuery) firstUserQuery = m.content;
791
+ const isCompletion = m.role === 'assistant' || m.role === 'subagent';
698
792
  if (m.role === 'assistant') {
699
- llmCallCount++;
700
793
  lastAssistantContent = m.content;
701
794
  if (m.model) model = m.model;
702
795
  else if (m.modelID) model = m.modelID;
796
+ }
797
+ if (isCompletion) {
798
+ llmCallCount++;
703
799
 
704
800
  // Token logic
705
801
  const u = m.usage;
@@ -717,11 +813,18 @@ export default async function WittySkillInsightPlugin(input) {
717
813
  const cacheReadToks = Number(u.cache?.read || u.cache_read_input_tokens || 0);
718
814
  const cacheCreateToks = Number(u.cache?.write || u.cache_creation_input_tokens || 0);
719
815
  const inputToks = Number(u.input_tokens || u.input || 0); // base input only (excludes cache)
720
- const outputToks = Number(u.output_tokens || u.output || 0);
816
+ const rawOutputToks = Number(u.output_tokens || u.output || 0);
817
+ const reasoningToks = Number(u.reasoning || u.reasoning_tokens || u.completion_tokens_details?.reasoning_tokens || 0);
818
+ // OpenCode reports reasoning separately from output; DeepSeek API includes it in output.
819
+ // Normalize: output_tokens should always include reasoning tokens.
820
+ const outputToks = (u.reasoning !== undefined && reasoningToks > 0 && rawOutputToks < reasoningToks)
821
+ ? rawOutputToks + reasoningToks
822
+ : rawOutputToks;
721
823
  totalInputTokens += inputToks;
722
824
  totalOutputTokens += outputToks;
723
825
  totalCacheReadInputTokens += cacheReadToks;
724
826
  totalCacheCreationInputTokens += cacheCreateToks;
827
+ totalReasoningTokens += reasoningToks;
725
828
  const callTotal = inputToks + cacheReadToks + cacheCreateToks + outputToks;
726
829
  if (callTotal > maxSingleCallTokens) maxSingleCallTokens = callTotal;
727
830
  }
@@ -767,6 +870,7 @@ export default async function WittySkillInsightPlugin(input) {
767
870
  cache_read_input_tokens: totalCacheReadInputTokens,
768
871
  cache_creation_input_tokens: totalCacheCreationInputTokens,
769
872
  max_single_call_tokens: maxSingleCallTokens,
873
+ reasoning_tokens: totalReasoningTokens,
770
874
  final_result: lastAssistantContent,
771
875
  interactions: messages.map(m => ({
772
876
  role: m.role,
@@ -775,7 +879,10 @@ export default async function WittySkillInsightPlugin(input) {
775
879
  function_call: m.function_call || m.functionCall,
776
880
  usage: m.usage,
777
881
  timestamp: m.timestamp,
778
- timeInfo: m.timeInfo
882
+ timeInfo: m.timeInfo,
883
+ agent: m.agent,
884
+ subagent_name: m.subagent_name,
885
+ subagent_session_id: m.subagent_session_id
779
886
  })),
780
887
  timestamp: new Date().toISOString()
781
888
  };
@@ -911,8 +1018,9 @@ try {
911
1018
  }
912
1019
  } catch (err) {
913
1020
  logDebug(`Plugin Exception: ${err.message}`);
1021
+ } finally {
1022
+ saveStore();
914
1023
  }
915
- saveStore();
916
1024
  }
917
1025
  };
918
1026
  }