@witty-ai/skill-insight 0.3.0-beta → 0.5.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 (412) hide show
  1. package/.env.example +51 -6
  2. package/.next/standalone/.next/BUILD_ID +1 -1
  3. package/.next/standalone/.next/app-path-routes-manifest.json +2 -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 +12 -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/auth/apikey/route.js +2 -2
  25. package/.next/standalone/.next/server/app/api/auth/apikey/route.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/api/auth/organization/route/app-paths-manifest.json +3 -0
  27. package/.next/standalone/.next/server/app/api/auth/organization/route/build-manifest.json +11 -0
  28. package/.next/standalone/.next/server/app/api/auth/organization/route/server-reference-manifest.json +4 -0
  29. package/.next/standalone/.next/server/app/api/auth/organization/route.js +7 -0
  30. package/.next/standalone/.next/server/app/api/auth/organization/route.js.map +5 -0
  31. package/.next/standalone/.next/server/app/api/auth/organization/route.js.nft.json +1 -0
  32. package/.next/standalone/.next/server/app/api/auth/organization/route_client-reference-manifest.js +2 -0
  33. package/.next/standalone/.next/server/app/api/config/create/route.js +5 -5
  34. package/.next/standalone/.next/server/app/api/config/create/route.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/api/config/route.js +5 -4
  36. package/.next/standalone/.next/server/app/api/config/route.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/api/config/status/route.js +2 -2
  38. package/.next/standalone/.next/server/app/api/config/status/route.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/api/data/route.js +5 -4
  40. package/.next/standalone/.next/server/app/api/data/route.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/api/executions/[executionId]/analyze-match/route.js +4 -4
  42. package/.next/standalone/.next/server/app/api/executions/[executionId]/analyze-match/route.js.nft.json +1 -1
  43. package/.next/standalone/.next/server/app/api/guide/route/app-paths-manifest.json +3 -0
  44. package/.next/standalone/.next/server/app/api/guide/route/build-manifest.json +11 -0
  45. package/.next/standalone/.next/server/app/api/guide/route/server-reference-manifest.json +4 -0
  46. package/.next/standalone/.next/server/app/api/guide/route.js +7 -0
  47. package/.next/standalone/.next/server/app/api/guide/route.js.map +5 -0
  48. package/.next/standalone/.next/server/app/api/guide/route.js.nft.json +1 -0
  49. package/.next/standalone/.next/server/app/api/guide/route_client-reference-manifest.js +2 -0
  50. package/.next/standalone/.next/server/app/api/otel/v1/logs/route.js +5 -4
  51. package/.next/standalone/.next/server/app/api/otel/v1/logs/route.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/api/otel/v1/traces/route.js +5 -4
  53. package/.next/standalone/.next/server/app/api/otel/v1/traces/route.js.nft.json +1 -1
  54. package/.next/standalone/.next/server/app/api/proxy/[taskId]/[...path]/route.js +3 -3
  55. package/.next/standalone/.next/server/app/api/proxy/[taskId]/[...path]/route.js.nft.json +1 -1
  56. package/.next/standalone/.next/server/app/api/proxy/[taskId]/end/route.js +5 -4
  57. package/.next/standalone/.next/server/app/api/proxy/[taskId]/end/route.js.nft.json +1 -1
  58. package/.next/standalone/.next/server/app/api/proxy/[taskId]/start/route.js +2 -2
  59. package/.next/standalone/.next/server/app/api/proxy/[taskId]/start/route.js.nft.json +1 -1
  60. package/.next/standalone/.next/server/app/api/rejudge/route.js +5 -4
  61. package/.next/standalone/.next/server/app/api/rejudge/route.js.nft.json +1 -1
  62. package/.next/standalone/.next/server/app/api/session/route.js +5 -5
  63. package/.next/standalone/.next/server/app/api/session/route.js.nft.json +1 -1
  64. package/.next/standalone/.next/server/app/api/settings/route.js +2 -2
  65. package/.next/standalone/.next/server/app/api/settings/route.js.nft.json +1 -1
  66. package/.next/standalone/.next/server/app/api/settings/test/route.js +2 -2
  67. package/.next/standalone/.next/server/app/api/settings/test/route.js.nft.json +1 -1
  68. package/.next/standalone/.next/server/app/api/skills/[id]/activate/route.js +2 -2
  69. package/.next/standalone/.next/server/app/api/skills/[id]/activate/route.js.nft.json +1 -1
  70. package/.next/standalone/.next/server/app/api/skills/[id]/toggle/route.js +2 -2
  71. package/.next/standalone/.next/server/app/api/skills/[id]/toggle/route.js.nft.json +1 -1
  72. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/download/route.js +3 -3
  73. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/download/route.js.nft.json +1 -1
  74. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/parse-flow/route.js +4 -4
  75. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/parse-flow/route.js.nft.json +1 -1
  76. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/route.js +2 -2
  77. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/route.js.nft.json +1 -1
  78. package/.next/standalone/.next/server/app/api/skills/[id]/versions/route.js +2 -2
  79. package/.next/standalone/.next/server/app/api/skills/[id]/versions/route.js.nft.json +1 -1
  80. package/.next/standalone/.next/server/app/api/skills/automation/import/route.js +2 -2
  81. package/.next/standalone/.next/server/app/api/skills/automation/import/route.js.nft.json +1 -1
  82. package/.next/standalone/.next/server/app/api/skills/automation/push/route.js +2 -2
  83. package/.next/standalone/.next/server/app/api/skills/automation/push/route.js.nft.json +1 -1
  84. package/.next/standalone/.next/server/app/api/skills/by-name/route.js +2 -2
  85. package/.next/standalone/.next/server/app/api/skills/by-name/route.js.nft.json +1 -1
  86. package/.next/standalone/.next/server/app/api/skills/logs/route.js +5 -4
  87. package/.next/standalone/.next/server/app/api/skills/logs/route.js.nft.json +1 -1
  88. package/.next/standalone/.next/server/app/api/skills/route.js +2 -2
  89. package/.next/standalone/.next/server/app/api/skills/route.js.nft.json +1 -1
  90. package/.next/standalone/.next/server/app/api/skills/upload/route.js +2 -2
  91. package/.next/standalone/.next/server/app/api/skills/upload/route.js.nft.json +1 -1
  92. package/.next/standalone/.next/server/app/api/sync/manifest/route.js +2 -2
  93. package/.next/standalone/.next/server/app/api/sync/manifest/route.js.nft.json +1 -1
  94. package/.next/standalone/.next/server/app/api/sync/opencode/route.js +2 -2
  95. package/.next/standalone/.next/server/app/api/sync/opencode/route.js.nft.json +1 -1
  96. package/.next/standalone/.next/server/app/api/upload/route.js +5 -3
  97. package/.next/standalone/.next/server/app/api/upload/route.js.nft.json +1 -1
  98. package/.next/standalone/.next/server/app/details/page/react-loadable-manifest.json +3 -3
  99. package/.next/standalone/.next/server/app/details/page.js.nft.json +1 -1
  100. package/.next/standalone/.next/server/app/details/page_client-reference-manifest.js +1 -1
  101. package/.next/standalone/.next/server/app/details.html +1 -1
  102. package/.next/standalone/.next/server/app/details.rsc +5 -5
  103. package/.next/standalone/.next/server/app/details.segments/_full.segment.rsc +5 -5
  104. package/.next/standalone/.next/server/app/details.segments/_head.segment.rsc +1 -1
  105. package/.next/standalone/.next/server/app/details.segments/_index.segment.rsc +3 -3
  106. package/.next/standalone/.next/server/app/details.segments/_tree.segment.rsc +2 -2
  107. package/.next/standalone/.next/server/app/details.segments/details/__PAGE__.segment.rsc +2 -2
  108. package/.next/standalone/.next/server/app/details.segments/details.segment.rsc +1 -1
  109. package/.next/standalone/.next/server/app/index.html +1 -1
  110. package/.next/standalone/.next/server/app/index.rsc +5 -5
  111. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  112. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +5 -5
  113. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  114. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +3 -3
  115. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  116. package/.next/standalone/.next/server/app/login/page.js.nft.json +1 -1
  117. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  118. package/.next/standalone/.next/server/app/login.html +1 -1
  119. package/.next/standalone/.next/server/app/login.rsc +5 -5
  120. package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +5 -5
  121. package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
  122. package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +3 -3
  123. package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  124. package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  125. package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
  126. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  127. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  128. package/.next/standalone/.next/server/app/skills/page.js.nft.json +1 -1
  129. package/.next/standalone/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  130. package/.next/standalone/.next/server/app/skills.html +1 -1
  131. package/.next/standalone/.next/server/app/skills.rsc +5 -5
  132. package/.next/standalone/.next/server/app/skills.segments/_full.segment.rsc +5 -5
  133. package/.next/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  134. package/.next/standalone/.next/server/app/skills.segments/_index.segment.rsc +3 -3
  135. package/.next/standalone/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  136. package/.next/standalone/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +2 -2
  137. package/.next/standalone/.next/server/app/skills.segments/skills.segment.rsc +1 -1
  138. package/.next/standalone/.next/server/app-paths-manifest.json +2 -0
  139. package/.next/standalone/.next/server/chunks/[root-of-the-server]__02ddba88._.js +3 -0
  140. package/.next/standalone/.next/server/chunks/[root-of-the-server]__05e510f4._.js +3 -0
  141. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0a140a5a._.js +122 -0
  142. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1013b265._.js +3 -0
  143. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1c95bcde._.js +3 -0
  144. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1ce5e3b8._.js +3 -0
  145. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4a6d443b._.js +3 -0
  146. package/.next/standalone/.next/server/chunks/[root-of-the-server]__53775b48._.js +3 -0
  147. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5444db55._.js +3 -0
  148. package/.next/standalone/.next/server/chunks/[root-of-the-server]__591248f3._.js +3 -0
  149. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5d8178f6._.js +3 -0
  150. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6923eecf._.js +3 -0
  151. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6d8053e2._.js +3 -0
  152. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6fc12878._.js +3 -0
  153. package/.next/standalone/.next/server/chunks/[root-of-the-server]__73ce6d21._.js +3 -0
  154. package/.next/standalone/.next/server/chunks/[root-of-the-server]__863cf6de._.js +3 -0
  155. package/.next/standalone/.next/server/chunks/[root-of-the-server]__98b3de5e._.js +3 -0
  156. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9d551ea2._.js +3 -0
  157. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a4d3d791._.js +3 -0
  158. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__c6c98b22._.js → [root-of-the-server]__aa5c8858._.js} +3 -3
  159. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b11acc79._.js +3 -0
  160. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b835ea7f._.js +3 -0
  161. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ba01f286._.js +3 -0
  162. package/.next/standalone/.next/server/chunks/[root-of-the-server]__bd91659b._.js +3 -0
  163. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c200214a._.js +3 -0
  164. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d7fab946._.js +3 -0
  165. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d8c1808b._.js +3 -0
  166. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d9b9fecc._.js +3 -0
  167. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e280561d._.js +3 -0
  168. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e2f0baee._.js +3 -0
  169. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e550423c._.js +3 -0
  170. package/.next/standalone/.next/server/chunks/[root-of-the-server]__fc05579d._.js +3 -0
  171. package/.next/standalone/.next/server/chunks/_33c0c729._.js +1 -1
  172. package/.next/standalone/.next/server/chunks/_41a98bd8._.js +3 -0
  173. package/.next/standalone/.next/server/chunks/_c48f7c66._.js +1 -1
  174. package/.next/standalone/.next/server/chunks/_c82df3e0._.js +3 -3
  175. package/.next/standalone/.next/server/chunks/_cd3d20ca._.js +1 -1
  176. package/.next/standalone/.next/server/chunks/_fa49adfa._.js +3 -3
  177. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_auth_organization_route_actions_f58710b7.js +3 -0
  178. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_guide_route_actions_6c188449.js +3 -0
  179. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_c33286ed.js +71 -110
  180. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_f42faeee.js +1 -400
  181. package/.next/standalone/.next/server/chunks/src_497d2ad2._.js +22 -22
  182. package/.next/standalone/.next/server/chunks/src_c8971a2d._.js +1 -1
  183. package/.next/standalone/.next/server/chunks/src_lib_12408140._.js +3 -0
  184. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__5d576168._.js → [root-of-the-server]__40353d98._.js} +1 -1
  185. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__89851212._.js → [root-of-the-server]__480fcd92._.js} +1 -1
  186. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__72a7f3ed._.js → [root-of-the-server]__48f8fbcb._.js} +1 -1
  187. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__438a2c90._.js → [root-of-the-server]__49921b2a._.js} +1 -1
  188. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__51073007._.js +1 -1
  189. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__c9e3c893._.js → [root-of-the-server]__593be3d6._.js} +1 -1
  190. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__ca101543._.js → [root-of-the-server]__5e9ff641._.js} +1 -1
  191. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__90641614._.js → [root-of-the-server]__66cc6ff2._.js} +1 -1
  192. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__37bfda90._.js → [root-of-the-server]__9889bdc8._.js} +1 -1
  193. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__42ba97b6._.js → [root-of-the-server]__9905ca7a._.js} +2 -2
  194. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__9ab7cc4a._.js +3 -0
  195. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__7bb97139._.js → [root-of-the-server]__9d6b7d48._.js} +1 -1
  196. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__6b8b9bb9._.js → [root-of-the-server]__b8edc8c6._.js} +1 -1
  197. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1dfe61f8._.js → [root-of-the-server]__d691ecb0._.js} +1 -1
  198. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__d0917d6e._.js → [root-of-the-server]__e5ddfd15._.js} +1 -1
  199. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__e5e3a145._.js → [root-of-the-server]__f72f330e._.js} +1 -1
  200. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__99ab66d7._.js → [root-of-the-server]__f843e085._.js} +1 -1
  201. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__8a82ef12._.js → [root-of-the-server]__fd69d276._.js} +2 -2
  202. package/.next/standalone/.next/server/chunks/ssr/{_7688d7cd._.js → _049876f0._.js} +2 -2
  203. package/.next/standalone/.next/server/chunks/ssr/{_981cd263._.js → _09546b95._.js} +2 -2
  204. package/.next/standalone/.next/server/chunks/ssr/_8f5379ab._.js +1 -1
  205. package/.next/standalone/.next/server/chunks/ssr/{node_modules_cf1f3d2c._.js → _b121f1ae._.js} +2 -2
  206. package/.next/standalone/.next/server/chunks/ssr/_c8c8c083._.js +18 -42
  207. package/.next/standalone/.next/server/chunks/ssr/_fd46f439._.js +3 -0
  208. package/.next/standalone/.next/server/chunks/ssr/{node_modules_a4a1f3c3._.js → node_modules_039c6a11._.js} +1 -1
  209. package/.next/standalone/.next/server/chunks/ssr/{node_modules_a7a82280._.js → node_modules_0d3530cd._.js} +2 -2
  210. package/.next/standalone/.next/server/chunks/ssr/{node_modules_0c2939c3._.js → node_modules_0e883565._.js} +1 -1
  211. package/.next/standalone/.next/server/chunks/ssr/{node_modules_8d9e56b7._.js → node_modules_11dbf165._.js} +2 -2
  212. package/.next/standalone/.next/server/chunks/ssr/{node_modules_76d6c533._.js → node_modules_2041c122._.js} +2 -2
  213. package/.next/standalone/.next/server/chunks/ssr/{node_modules_b007145b._.js → node_modules_235267bb._.js} +1 -1
  214. package/.next/standalone/.next/server/chunks/ssr/{node_modules_11d81adf._.js → node_modules_25dfb0ba._.js} +2 -2
  215. package/.next/standalone/.next/server/chunks/ssr/{node_modules_205ce1c9._.js → node_modules_2b12c669._.js} +2 -2
  216. package/.next/standalone/.next/server/chunks/ssr/{node_modules_cc19e85c._.js → node_modules_32996880._.js} +2 -2
  217. package/.next/standalone/.next/server/chunks/ssr/{node_modules_62621b34._.js → node_modules_35885fe9._.js} +2 -2
  218. package/.next/standalone/.next/server/chunks/ssr/{node_modules_ee43cfd6._.js → node_modules_38a95353._.js} +2 -2
  219. package/.next/standalone/.next/server/chunks/ssr/{node_modules_f596a14c._.js → node_modules_3a317c51._.js} +1 -1
  220. package/.next/standalone/.next/server/chunks/ssr/{node_modules_776b68cf._.js → node_modules_44966ab2._.js} +1 -1
  221. package/.next/standalone/.next/server/chunks/ssr/node_modules_514c148b._.js +3 -0
  222. package/.next/standalone/.next/server/chunks/ssr/{node_modules_e272ac31._.js → node_modules_53af751a._.js} +2 -2
  223. package/.next/standalone/.next/server/chunks/ssr/{node_modules_23d38260._.js → node_modules_5f539891._.js} +1 -1
  224. package/.next/standalone/.next/server/chunks/ssr/{node_modules_86b6ffa4._.js → node_modules_60402210._.js} +1 -1
  225. package/.next/standalone/.next/server/chunks/ssr/{node_modules_3769cd60._.js → node_modules_60eccfb6._.js} +1 -1
  226. package/.next/standalone/.next/server/chunks/ssr/{node_modules_fdf808cf._.js → node_modules_632c098c._.js} +1 -1
  227. package/.next/standalone/.next/server/chunks/ssr/{node_modules_60cf7de2._.js → node_modules_6c42f75c._.js} +1 -1
  228. package/.next/standalone/.next/server/chunks/ssr/{node_modules_2f215d2b._.js → node_modules_6fbe276d._.js} +2 -2
  229. package/.next/standalone/.next/server/chunks/ssr/{node_modules_4cd41088._.js → node_modules_740e9d59._.js} +2 -2
  230. package/.next/standalone/.next/server/chunks/ssr/{node_modules_d0af4cb2._.js → node_modules_7a3d551c._.js} +1 -1
  231. package/.next/standalone/.next/server/chunks/ssr/{node_modules_4f41f172._.js → node_modules_861cb9cf._.js} +2 -2
  232. package/.next/standalone/.next/server/chunks/ssr/{node_modules_db8af6e3._.js → node_modules_8a892761._.js} +1 -1
  233. package/.next/standalone/.next/server/chunks/ssr/{node_modules_28fef057._.js → node_modules_a5a4946e._.js} +1 -1
  234. package/.next/standalone/.next/server/chunks/ssr/{node_modules_3d9afa91._.js → node_modules_a712c937._.js} +1 -1
  235. package/.next/standalone/.next/server/chunks/ssr/{node_modules_330b9e3c._.js → node_modules_a8c276dd._.js} +2 -2
  236. package/.next/standalone/.next/server/chunks/ssr/{node_modules_abf4f826._.js → node_modules_acc9d529._.js} +1 -1
  237. package/.next/standalone/.next/server/chunks/ssr/{node_modules_39a3e684._.js → node_modules_ad07ab39._.js} +1 -1
  238. package/.next/standalone/.next/server/chunks/ssr/{node_modules_1d88c7cc._.js → node_modules_b38efa22._.js} +1 -1
  239. package/.next/standalone/.next/server/chunks/ssr/{node_modules_8633bac6._.js → node_modules_b4ef036d._.js} +2 -2
  240. package/.next/standalone/.next/server/chunks/ssr/{node_modules_abc9e5a6._.js → node_modules_b6bad701._.js} +2 -2
  241. package/.next/standalone/.next/server/chunks/ssr/{node_modules_c90fa812._.js → node_modules_b9810024._.js} +1 -1
  242. package/.next/standalone/.next/server/chunks/ssr/{node_modules_f56b62b0._.js → node_modules_b9ad808d._.js} +1 -1
  243. package/.next/standalone/.next/server/chunks/ssr/{node_modules_7287189a._.js → node_modules_bc287d9f._.js} +1 -1
  244. package/.next/standalone/.next/server/chunks/ssr/{node_modules_5ab83f0a._.js → node_modules_c411d7df._.js} +2 -2
  245. package/.next/standalone/.next/server/chunks/ssr/{node_modules_c98dd942._.js → node_modules_c6469d93._.js} +1 -1
  246. package/.next/standalone/.next/server/chunks/ssr/{node_modules_6391b0cd._.js → node_modules_c704e802._.js} +1 -1
  247. package/.next/standalone/.next/server/chunks/ssr/{node_modules_df113a74._.js → node_modules_cda46cfc._.js} +2 -2
  248. package/.next/standalone/.next/server/chunks/ssr/{node_modules_aa6da06c._.js → node_modules_cf171d0c._.js} +1 -1
  249. package/.next/standalone/.next/server/chunks/ssr/{node_modules_be61cdef._.js → node_modules_e8927fc2._.js} +1 -1
  250. package/.next/standalone/.next/server/chunks/ssr/node_modules_katex_dist_katex_mjs_d037b3b1._.js +1 -1
  251. package/.next/standalone/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-7R4GIKGN_mjs_e5dda8cc._.js +1 -1
  252. package/.next/standalone/.next/server/chunks/ssr/src_66a70595._.js +1 -1
  253. package/.next/standalone/.next/server/chunks/ssr/src_app_login_page_tsx_72f58654._.js +1 -1
  254. package/.next/standalone/.next/server/pages/404.html +1 -1
  255. package/.next/standalone/.next/server/pages/500.html +2 -2
  256. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  257. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  258. package/.next/standalone/.next/static/chunks/{d60f0b3e2f4689ac.js → 01eddf501c574a44.js} +1 -1
  259. package/.next/{static/chunks/ec0de430276c8209.js → standalone/.next/static/chunks/078d76156083f265.js} +1 -1
  260. package/.next/standalone/.next/static/chunks/{6a17b619eed04f07.js → 07c9f28a269c701a.js} +2 -2
  261. package/.next/standalone/.next/static/chunks/1e782a49beaf489c.js +1 -0
  262. package/.next/{static/chunks/55723b38de737547.js → standalone/.next/static/chunks/21105f8885631d60.js} +1 -1
  263. package/.next/standalone/.next/static/chunks/4071dbec4cf7e72e.js +109 -0
  264. package/.next/{static/chunks/052f178ab7519d8d.js → standalone/.next/static/chunks/5432ce4a494bc74d.js} +2 -2
  265. package/.next/standalone/.next/static/chunks/59cd76b8d89e776a.js +1 -0
  266. package/.next/standalone/.next/static/chunks/67bd1a5de2195779.js +1 -0
  267. package/.next/standalone/.next/static/chunks/6baf949fafec6be3.js +1 -0
  268. package/.next/standalone/.next/static/chunks/737b8cff3c6a4e30.js +1 -0
  269. package/.next/standalone/.next/static/chunks/7e35f4cf2e266022.js +1 -0
  270. package/.next/standalone/.next/static/chunks/a87b5e84254095a5.js +1 -0
  271. package/.next/standalone/.next/static/chunks/b43afe7d924243d9.js +2 -0
  272. package/.next/standalone/.next/static/chunks/c6bd2818656b1f20.css +1 -0
  273. package/.next/{static/chunks/559e55a53f22f5d1.js → standalone/.next/static/chunks/c875bd2ff662b46f.js} +1 -1
  274. package/.next/{static/chunks/6d12c79948c7e0ac.js → standalone/.next/static/chunks/dc59a07a8f327b40.js} +1 -1
  275. package/.next/standalone/.next/static/chunks/e09d9ee16fe90255.js +1 -0
  276. package/.next/standalone/.next/static/chunks/{20337e5244416041.js → e20b02ee30c11a26.js} +1 -1
  277. package/.next/standalone/.next/static/chunks/ff6357067630b168.js +1 -0
  278. package/.next/standalone/LICENSE +1 -1
  279. package/.next/standalone/bin/cli.js +1 -1
  280. package/.next/standalone/features/feature-skill-used-jump-link/design/2026-03-18-skill-used-jump-link-design.md +126 -0
  281. package/.next/standalone/features/feature-skill-used-jump-link/feature.json +32 -0
  282. package/.next/standalone/features/feature-skill-used-jump-link/issue.md +32 -0
  283. package/.next/standalone/features/feature-skill-used-jump-link/plans/2026-03-18-skill-used-jump-link.md +528 -0
  284. package/.next/standalone/next.config.ts +14 -2
  285. package/.next/standalone/node_modules/.prisma/client/edge.js +23 -5
  286. package/.next/standalone/node_modules/.prisma/client/index-browser.js +20 -2
  287. package/.next/standalone/node_modules/.prisma/client/index.js +23 -5
  288. package/.next/standalone/node_modules/.prisma/client/package.json +1 -1
  289. package/.next/standalone/node_modules/.prisma/client/schema.prisma +19 -2
  290. package/.next/standalone/node_modules/.prisma/client/wasm.js +20 -2
  291. package/.next/standalone/node_modules/@img/colour/color.cjs +11 -9
  292. package/.next/standalone/node_modules/@img/colour/package.json +21 -8
  293. package/.next/standalone/package.json +1 -1
  294. package/.next/standalone/prisma/schema.prisma +19 -2
  295. package/.next/standalone/scripts/activate_telemetry.sh +24 -24
  296. package/.next/standalone/scripts/claude_watcher_client.ts +9 -7
  297. package/.next/standalone/scripts/init_opengauss.py +15 -0
  298. package/.next/standalone/scripts/install.js +68 -35
  299. package/.next/standalone/scripts/logs.js +1 -1
  300. package/.next/standalone/scripts/openclaw_watcher_client.ts +9 -7
  301. package/.next/standalone/scripts/opencode_plugin.ts +278 -46
  302. package/.next/standalone/scripts/postinstall.js +80 -38
  303. package/.next/standalone/scripts/restart.js +1 -1
  304. package/.next/standalone/scripts/start.js +84 -60
  305. package/.next/standalone/scripts/status.js +1 -1
  306. package/.next/standalone/scripts/stop.js +38 -14
  307. package/.next/standalone/scripts/sync_skills.js +5 -5
  308. package/.next/standalone/scripts/utils.js +91 -23
  309. package/.next/standalone/tests/setup_skill_optimizer.sh +118 -0
  310. package/.next/static/chunks/{d60f0b3e2f4689ac.js → 01eddf501c574a44.js} +1 -1
  311. package/.next/{standalone/.next/static/chunks/ec0de430276c8209.js → static/chunks/078d76156083f265.js} +1 -1
  312. package/.next/static/chunks/{6a17b619eed04f07.js → 07c9f28a269c701a.js} +2 -2
  313. package/.next/static/chunks/1e782a49beaf489c.js +1 -0
  314. package/.next/{standalone/.next/static/chunks/55723b38de737547.js → static/chunks/21105f8885631d60.js} +1 -1
  315. package/.next/static/chunks/4071dbec4cf7e72e.js +109 -0
  316. package/.next/{standalone/.next/static/chunks/052f178ab7519d8d.js → static/chunks/5432ce4a494bc74d.js} +2 -2
  317. package/.next/static/chunks/59cd76b8d89e776a.js +1 -0
  318. package/.next/static/chunks/67bd1a5de2195779.js +1 -0
  319. package/.next/static/chunks/6baf949fafec6be3.js +1 -0
  320. package/.next/static/chunks/737b8cff3c6a4e30.js +1 -0
  321. package/.next/static/chunks/7e35f4cf2e266022.js +1 -0
  322. package/.next/static/chunks/a87b5e84254095a5.js +1 -0
  323. package/.next/static/chunks/b43afe7d924243d9.js +2 -0
  324. package/.next/static/chunks/c6bd2818656b1f20.css +1 -0
  325. package/.next/{standalone/.next/static/chunks/559e55a53f22f5d1.js → static/chunks/c875bd2ff662b46f.js} +1 -1
  326. package/.next/{standalone/.next/static/chunks/6d12c79948c7e0ac.js → static/chunks/dc59a07a8f327b40.js} +1 -1
  327. package/.next/static/chunks/e09d9ee16fe90255.js +1 -0
  328. package/.next/static/chunks/{20337e5244416041.js → e20b02ee30c11a26.js} +1 -1
  329. package/.next/static/chunks/ff6357067630b168.js +1 -0
  330. package/LICENSE +1 -1
  331. package/README.md +7 -6
  332. package/bin/cli.js +1 -1
  333. package/package.json +1 -1
  334. package/prisma/schema.prisma +19 -2
  335. package/scripts/activate_telemetry.sh +24 -24
  336. package/scripts/claude_watcher_client.ts +9 -7
  337. package/scripts/init_opengauss.py +15 -0
  338. package/scripts/install.js +68 -35
  339. package/scripts/logs.js +1 -1
  340. package/scripts/openclaw_watcher_client.ts +9 -7
  341. package/scripts/opencode_plugin.ts +278 -46
  342. package/scripts/postinstall.js +80 -38
  343. package/scripts/restart.js +1 -1
  344. package/scripts/start.js +84 -60
  345. package/scripts/status.js +1 -1
  346. package/scripts/stop.js +38 -14
  347. package/scripts/sync_skills.js +5 -5
  348. package/scripts/utils.js +91 -23
  349. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1306e4eb._.js +0 -3
  350. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1809fb2b._.js +0 -3
  351. package/.next/standalone/.next/server/chunks/[root-of-the-server]__19594bdd._.js +0 -3
  352. package/.next/standalone/.next/server/chunks/[root-of-the-server]__19db3d34._.js +0 -3
  353. package/.next/standalone/.next/server/chunks/[root-of-the-server]__2b2e7f49._.js +0 -3
  354. package/.next/standalone/.next/server/chunks/[root-of-the-server]__3c02de9b._.js +0 -3
  355. package/.next/standalone/.next/server/chunks/[root-of-the-server]__3f3ad12b._.js +0 -3
  356. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4c1ad182._.js +0 -3
  357. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4dce0fe6._.js +0 -3
  358. package/.next/standalone/.next/server/chunks/[root-of-the-server]__582cdc68._.js +0 -3
  359. package/.next/standalone/.next/server/chunks/[root-of-the-server]__625e84f3._.js +0 -3
  360. package/.next/standalone/.next/server/chunks/[root-of-the-server]__68b5a8b3._.js +0 -3
  361. package/.next/standalone/.next/server/chunks/[root-of-the-server]__704b8533._.js +0 -3
  362. package/.next/standalone/.next/server/chunks/[root-of-the-server]__78ea20f2._.js +0 -3
  363. package/.next/standalone/.next/server/chunks/[root-of-the-server]__7f754db9._.js +0 -3
  364. package/.next/standalone/.next/server/chunks/[root-of-the-server]__824c33e1._.js +0 -3
  365. package/.next/standalone/.next/server/chunks/[root-of-the-server]__92449e6d._.js +0 -3
  366. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9465727f._.js +0 -3
  367. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9c3018b5._.js +0 -3
  368. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a12846e0._.js +0 -3
  369. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a637116a._.js +0 -3
  370. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a8f83ee4._.js +0 -3
  371. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a8ffc1b1._.js +0 -3
  372. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a9cb205c._.js +0 -122
  373. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ab7048b0._.js +0 -3
  374. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ac25e4ae._.js +0 -3
  375. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ae5ac9cd._.js +0 -3
  376. package/.next/standalone/.next/server/chunks/[root-of-the-server]__bebf4267._.js +0 -3
  377. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c5ae3ebd._.js +0 -3
  378. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ebdafae4._.js +0 -3
  379. package/.next/standalone/.next/server/chunks/[root-of-the-server]__eefd5f5b._.js +0 -3
  380. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__082c32a2._.js +0 -3
  381. package/.next/standalone/.next/server/chunks/ssr/_b7889f85._.js +0 -3
  382. package/.next/standalone/.next/server/chunks/ssr/node_modules_0b762d3e._.js +0 -3
  383. package/.next/standalone/.next/static/chunks/024c9acb4aa490c8.js +0 -1
  384. package/.next/standalone/.next/static/chunks/104f2c1fb93033c0.js +0 -1
  385. package/.next/standalone/.next/static/chunks/222a937a6c859036.js +0 -1
  386. package/.next/standalone/.next/static/chunks/2e1b2125198a02c4.js +0 -1
  387. package/.next/standalone/.next/static/chunks/32b26ff1bbd034fd.js +0 -1
  388. package/.next/standalone/.next/static/chunks/428e6cf64b115e9d.css +0 -1
  389. package/.next/standalone/.next/static/chunks/62e251619a96dc26.js +0 -1
  390. package/.next/standalone/.next/static/chunks/65c652f23d2d68bd.js +0 -133
  391. package/.next/standalone/.next/static/chunks/876e2d70185fd438.js +0 -1
  392. package/.next/standalone/.next/static/chunks/c647b2e4532050e0.js +0 -1
  393. package/.next/standalone/.next/static/chunks/d2e574310159a10b.js +0 -1
  394. package/.next/standalone/.next/static/chunks/dab1749712763979.js +0 -2
  395. package/.next/static/chunks/024c9acb4aa490c8.js +0 -1
  396. package/.next/static/chunks/104f2c1fb93033c0.js +0 -1
  397. package/.next/static/chunks/222a937a6c859036.js +0 -1
  398. package/.next/static/chunks/2e1b2125198a02c4.js +0 -1
  399. package/.next/static/chunks/32b26ff1bbd034fd.js +0 -1
  400. package/.next/static/chunks/428e6cf64b115e9d.css +0 -1
  401. package/.next/static/chunks/62e251619a96dc26.js +0 -1
  402. package/.next/static/chunks/65c652f23d2d68bd.js +0 -133
  403. package/.next/static/chunks/876e2d70185fd438.js +0 -1
  404. package/.next/static/chunks/c647b2e4532050e0.js +0 -1
  405. package/.next/static/chunks/d2e574310159a10b.js +0 -1
  406. package/.next/static/chunks/dab1749712763979.js +0 -2
  407. /package/.next/standalone/.next/static/{Zt2VD1Py2IilfVNJL-9Wm → H581Rok68JtPV4bAVVH3l}/_buildManifest.js +0 -0
  408. /package/.next/standalone/.next/static/{Zt2VD1Py2IilfVNJL-9Wm → H581Rok68JtPV4bAVVH3l}/_clientMiddlewareManifest.json +0 -0
  409. /package/.next/standalone/.next/static/{Zt2VD1Py2IilfVNJL-9Wm → H581Rok68JtPV4bAVVH3l}/_ssgManifest.js +0 -0
  410. /package/.next/static/{Zt2VD1Py2IilfVNJL-9Wm → H581Rok68JtPV4bAVVH3l}/_buildManifest.js +0 -0
  411. /package/.next/static/{Zt2VD1Py2IilfVNJL-9Wm → H581Rok68JtPV4bAVVH3l}/_clientMiddlewareManifest.json +0 -0
  412. /package/.next/static/{Zt2VD1Py2IilfVNJL-9Wm → H581Rok68JtPV4bAVVH3l}/_ssgManifest.js +0 -0
@@ -1,7 +1,7 @@
1
1
  #!/bin/bash
2
2
 
3
3
  # =============================================================================
4
- # Witty-Skill-Insight Official Setup Script (Fixed Path Logic)
4
+ # Skill-Insight Official Setup Script (Fixed Path Logic)
5
5
  #
6
6
  # Installs native telemetry hooks for Claude Code and OpenCode.
7
7
  # =============================================================================
@@ -18,7 +18,7 @@ fi
18
18
  SCRIPTS_DIR="$( cd -- "$( dirname -- "$SELF_PATH" )" &> /dev/null && pwd )"
19
19
  PROJECT_ROOT="$( dirname "$SCRIPTS_DIR" )"
20
20
 
21
- echo "🚀 Starting Witty-Skill-Insight Telemetry Setup..."
21
+ echo "🚀 Starting Skill-Insight Telemetry Setup..."
22
22
  echo "📂 Project Root: $PROJECT_ROOT"
23
23
 
24
24
  # --- 1. Load Configurations ---
@@ -39,43 +39,43 @@ if [ -f "$OPENCODE_PLUGIN_SRC" ]; then
39
39
  cp "$OPENCODE_PLUGIN_SRC" "$OPENCODE_PLUGIN_DEST"
40
40
  echo "✅ OpenCode Plugin installed to $OPENCODE_PLUGIN_DEST"
41
41
 
42
- # --- 2.1 Setup Witty Config (~/.witty/.env) ---
43
- WITTY_CONFIG_DIR="$HOME/.witty"
44
- WITTY_CONFIG_FILE="$WITTY_CONFIG_DIR/.env"
45
- mkdir -p "$WITTY_CONFIG_DIR"
42
+ # --- 2.1 Setup Skill-Insight Config (~/.skill-insight/.env) ---
43
+ SKILL_INSIGHT_CONFIG_DIR="$HOME/.skill-insight"
44
+ SKILL_INSIGHT_CONFIG_FILE="$SKILL_INSIGHT_CONFIG_DIR/.env"
45
+ mkdir -p "$SKILL_INSIGHT_CONFIG_DIR"
46
46
 
47
47
  EXISTING_KEY=""
48
48
  EXISTING_HOST=""
49
- if [ -f "$WITTY_CONFIG_FILE" ]; then
49
+ if [ -f "$SKILL_INSIGHT_CONFIG_FILE" ]; then
50
50
  # match only UNCOMMENTED lines
51
- EXISTING_KEY=$(grep '^WITTY_INSIGHT_API_KEY=' "$WITTY_CONFIG_FILE" | head -n 1 | cut -d'=' -f2-)
52
- EXISTING_HOST=$(grep '^WITTY_INSIGHT_HOST=' "$WITTY_CONFIG_FILE" | head -n 1 | cut -d'=' -f2-)
51
+ EXISTING_KEY=$(grep '^SKILL_INSIGHT_API_KEY=' "$SKILL_INSIGHT_CONFIG_FILE" | head -n 1 | cut -d'=' -f2-)
52
+ EXISTING_HOST=$(grep '^SKILL_INSIGHT_HOST=' "$SKILL_INSIGHT_CONFIG_FILE" | head -n 1 | cut -d'=' -f2-)
53
53
  fi
54
54
 
55
55
  # API Key Selection Logic
56
56
  API_KEY=""
57
57
  if [ -n "$EXISTING_KEY" ]; then
58
- echo "🔑 Found existing API Key in $WITTY_CONFIG_FILE."
58
+ echo "🔑 Found existing API Key in $SKILL_INSIGHT_CONFIG_FILE."
59
59
  read -p "👉 Use existing key? (y/N, Default: y): " USE_EXISTING < /dev/tty
60
60
  if [[ "$USE_EXISTING" =~ ^[Nn]$ ]]; then
61
61
  read -p "👉 Please enter your NEW API Key: " API_KEY < /dev/tty
62
62
  else
63
63
  API_KEY="$EXISTING_KEY"
64
64
  fi
65
- elif [ -n "$WITTY_INSIGHT_API_KEY" ]; then
66
- echo "🔑 Found API Key in current environment/env file: $WITTY_INSIGHT_API_KEY"
65
+ elif [ -n "$SKILL_INSIGHT_API_KEY" ]; then
66
+ echo "🔑 Found API Key in current environment/env file: $SKILL_INSIGHT_API_KEY"
67
67
  read -p "👉 Use this key for global config? (y/N, Default: y): " USE_ENV < /dev/tty
68
68
  if [[ "$USE_ENV" =~ ^[Nn]$ ]]; then
69
69
  read -p "👉 Please enter your API Key: " API_KEY < /dev/tty
70
70
  else
71
- API_KEY="$WITTY_INSIGHT_API_KEY"
71
+ API_KEY="$SKILL_INSIGHT_API_KEY"
72
72
  fi
73
73
  else
74
74
  read -p "👉 Please enter your API Key: " API_KEY < /dev/tty
75
75
  fi
76
76
 
77
77
  # -- Host Logic --
78
- NEW_HOST="${WITTY_INSIGHT_HOST:-127.0.0.1:3000}"
78
+ NEW_HOST="${SKILL_INSIGHT_HOST:-127.0.0.1:3000}"
79
79
  FINAL_HOST="$NEW_HOST"
80
80
  if [ -n "$EXISTING_HOST" ] && [ "$EXISTING_HOST" != "$NEW_HOST" ]; then
81
81
  echo "🌐 Current Host in global config: $EXISTING_HOST"
@@ -90,17 +90,17 @@ if [ -f "$OPENCODE_PLUGIN_SRC" ]; then
90
90
  echo "⚠️ Warning: No API Key provided. Data reporting will fail."
91
91
  fi
92
92
 
93
- echo "⚙️ Syncing configuration to $WITTY_CONFIG_FILE..."
94
- touch "$WITTY_CONFIG_FILE"
95
- cp "$WITTY_CONFIG_FILE" "${WITTY_CONFIG_FILE}.bak"
96
- grep -v "^WITTY_INSIGHT_API_KEY=" "${WITTY_CONFIG_FILE}.bak" | grep -v "^WITTY_INSIGHT_HOST=" > "$WITTY_CONFIG_FILE"
97
- echo "WITTY_INSIGHT_API_KEY=$API_KEY" >> "$WITTY_CONFIG_FILE"
98
- echo "WITTY_INSIGHT_HOST=$FINAL_HOST" >> "$WITTY_CONFIG_FILE"
99
- rm "${WITTY_CONFIG_FILE}.bak"
93
+ echo "⚙️ Syncing configuration to $SKILL_INSIGHT_CONFIG_FILE..."
94
+ touch "$SKILL_INSIGHT_CONFIG_FILE"
95
+ cp "$SKILL_INSIGHT_CONFIG_FILE" "${SKILL_INSIGHT_CONFIG_FILE}.bak"
96
+ grep -v "^SKILL_INSIGHT_API_KEY=" "${SKILL_INSIGHT_CONFIG_FILE}.bak" | grep -v "^SKILL_INSIGHT_HOST=" > "$SKILL_INSIGHT_CONFIG_FILE"
97
+ echo "SKILL_INSIGHT_API_KEY=$API_KEY" >> "$SKILL_INSIGHT_CONFIG_FILE"
98
+ echo "SKILL_INSIGHT_HOST=$FINAL_HOST" >> "$SKILL_INSIGHT_CONFIG_FILE"
99
+ rm "${SKILL_INSIGHT_CONFIG_FILE}.bak"
100
100
  echo "✅ Configuration updated (Other settings preserved)."
101
101
 
102
102
  # NEW: Register Sync Hook into .zshrc / .bashrc
103
- SYNC_SCRIPT="$HOME/.witty/sync_skills.js"
103
+ SYNC_SCRIPT="$HOME/.skill-insight/sync_skills.js"
104
104
  if [ -f "$SYNC_SCRIPT" ]; then
105
105
  SHELL_RC="$HOME/.zshrc"
106
106
  [ -f "$HOME/.bashrc" ] && SHELL_RC="$HOME/.bashrc"
@@ -108,7 +108,7 @@ if [ -f "$OPENCODE_PLUGIN_SRC" ]; then
108
108
  # Add aliases if not present
109
109
  if ! grep -q "witty_sync_wrapper" "$SHELL_RC"; then
110
110
  echo "" >> "$SHELL_RC"
111
- echo "# Witty-Skill-Insight Auto-Sync" >> "$SHELL_RC"
111
+ echo "# Skill-Insight Auto-Sync" >> "$SHELL_RC"
112
112
  echo "alias opencode='node $SYNC_SCRIPT --agent opencode && opencode'" >> "$SHELL_RC"
113
113
  echo "alias claude='node $SYNC_SCRIPT --agent claude && claude'" >> "$SHELL_RC"
114
114
  echo "✅ Auto-sync aliases added to $SHELL_RC"
@@ -153,7 +153,7 @@ unset DEEPSEEK_BASE_URL
153
153
  unset OPENAI_BASE_URL
154
154
 
155
155
  echo ""
156
- echo "🌟 Witty-Skill-Insight Telemetry: READY"
156
+ echo "🌟 Skill-Insight Telemetry: READY"
157
157
  echo "------------------------------------------------"
158
158
  echo "To test, run: opencode run 'hello'"
159
159
  echo ""
@@ -250,14 +250,14 @@ class ClaudeParser {
250
250
  // HTTP Upload (replaces saveExecutionRecord)
251
251
  // ============================================================================
252
252
 
253
- function loadWittyConfig(): { apiKey: string; host: string } {
253
+ function loadSkillInsightConfig(): { apiKey: string; host: string } {
254
254
  const config: { apiKey: string; host: string } = { apiKey: '', host: '' };
255
255
  try {
256
- const envPath = path.join(os.homedir(), '.witty', '.env');
256
+ const envPath = path.join(os.homedir(), '.skill-insight', '.env');
257
257
  if (fs.existsSync(envPath)) {
258
258
  const content = fs.readFileSync(envPath, 'utf-8');
259
- const apiKeyMatch = content.match(/WITTY_INSIGHT_API_KEY=(.*)/);
260
- const hostMatch = content.match(/WITTY_INSIGHT_HOST=(.*)/);
259
+ const apiKeyMatch = content.match(/SKILL_INSIGHT_API_KEY=(.*)/);
260
+ const hostMatch = content.match(/SKILL_INSIGHT_HOST=(.*)/);
261
261
  if (apiKeyMatch && apiKeyMatch[1]) {
262
262
  config.apiKey = apiKeyMatch[1].trim();
263
263
  }
@@ -266,13 +266,13 @@ function loadWittyConfig(): { apiKey: string; host: string } {
266
266
  }
267
267
  }
268
268
  } catch (e) {
269
- console.error('[ClaudeWatcher] Error reading witty config:', e);
269
+ console.error('[ClaudeWatcher] Error reading skill-insight config:', e);
270
270
  }
271
271
  return config;
272
272
  }
273
273
 
274
274
  async function uploadExecutionRecord(record: any): Promise<void> {
275
- const config = loadWittyConfig();
275
+ const config = loadSkillInsightConfig();
276
276
  if (!config.apiKey || !config.host) {
277
277
  console.error('[ClaudeWatcher] Missing API key or host in config');
278
278
  return;
@@ -289,10 +289,12 @@ async function uploadExecutionRecord(record: any): Promise<void> {
289
289
 
290
290
  const body = JSON.stringify(record);
291
291
 
292
+ const basePath = parsedUrl.pathname === '/' ? '' : parsedUrl.pathname;
293
+
292
294
  const options: http.RequestOptions = {
293
295
  hostname: parsedUrl.hostname,
294
296
  port: parsedUrl.port || (isHttps ? 443 : 80),
295
- path: '/api/upload',
297
+ path: `${basePath}/api/upload`,
296
298
  method: 'POST',
297
299
  headers: {
298
300
  'Content-Type': 'application/json',
@@ -154,6 +154,21 @@ TABLE_DEFINITIONS = {
154
154
  ("matchedAt", "TIMESTAMP DEFAULT CURRENT_TIMESTAMP"),
155
155
  ],
156
156
  "unique_constraints": []
157
+ },
158
+ "UserGuideState": {
159
+ "columns": [
160
+ ("id", "TEXT PRIMARY KEY"),
161
+ ("user", "TEXT UNIQUE NOT NULL"),
162
+ ("guideDisabled", "BOOLEAN DEFAULT FALSE"),
163
+ ("currentStep", "INTEGER DEFAULT 0"),
164
+ ("completedSteps", "TEXT DEFAULT '[]'"),
165
+ ("skippedSteps", "TEXT DEFAULT '[]'"),
166
+ ("lastShownAt", "TIMESTAMP"),
167
+ ("dismissedAt", "TIMESTAMP"),
168
+ ("createdAt", "TIMESTAMP DEFAULT CURRENT_TIMESTAMP"),
169
+ ("updatedAt", "TIMESTAMP DEFAULT CURRENT_TIMESTAMP"),
170
+ ],
171
+ "unique_constraints": []
157
172
  }
158
173
  }
159
174
 
@@ -16,7 +16,7 @@ async function runCommand(command, options = {}) {
16
16
  shell: true,
17
17
  ...options
18
18
  })
19
-
19
+
20
20
  proc.on('close', (code) => {
21
21
  if (code === 0) {
22
22
  resolve()
@@ -24,7 +24,7 @@ async function runCommand(command, options = {}) {
24
24
  reject(new Error(`Command failed with code ${code}`))
25
25
  }
26
26
  })
27
-
27
+
28
28
  proc.on('error', (err) => {
29
29
  reject(err)
30
30
  })
@@ -46,7 +46,7 @@ async function waitForService(port, maxRetries = 30, retryDelay = 1000) {
46
46
  async function getApiKey(port) {
47
47
  return new Promise((resolve, reject) => {
48
48
  const postData = JSON.stringify({ username: 'admin' })
49
-
49
+
50
50
  const options = {
51
51
  hostname: 'localhost',
52
52
  port: port,
@@ -57,7 +57,7 @@ async function getApiKey(port) {
57
57
  'Content-Length': Buffer.byteLength(postData)
58
58
  }
59
59
  }
60
-
60
+
61
61
  const req = http.request(options, (res) => {
62
62
  let data = ''
63
63
  res.on('data', (chunk) => { data += chunk })
@@ -78,11 +78,11 @@ async function getApiKey(port) {
78
78
  }
79
79
  })
80
80
  })
81
-
81
+
82
82
  req.on('error', (e) => {
83
83
  reject(e)
84
84
  })
85
-
85
+
86
86
  req.write(postData)
87
87
  req.end()
88
88
  })
@@ -90,13 +90,17 @@ async function getApiKey(port) {
90
90
 
91
91
  async function callAutoSetup(port, apiKey) {
92
92
  return new Promise((resolve, reject) => {
93
+ const isWindows = process.platform === 'win32'
93
94
  const options = {
94
95
  hostname: 'localhost',
95
96
  port: port,
96
97
  path: `/api/setup/auto?apiKey=${encodeURIComponent(apiKey)}&host=localhost:${port}`,
97
- method: 'GET'
98
+ method: 'GET',
99
+ headers: {
100
+ 'x-platform': isWindows ? 'windows' : 'unix'
101
+ }
98
102
  }
99
-
103
+
100
104
  const req = http.request(options, (res) => {
101
105
  let data = ''
102
106
  res.on('data', (chunk) => { data += chunk })
@@ -108,11 +112,11 @@ async function callAutoSetup(port, apiKey) {
108
112
  }
109
113
  })
110
114
  })
111
-
115
+
112
116
  req.on('error', (e) => {
113
117
  reject(e)
114
118
  })
115
-
119
+
116
120
  req.end()
117
121
  })
118
122
  }
@@ -120,16 +124,32 @@ async function callAutoSetup(port, apiKey) {
120
124
  async function run(options = {}) {
121
125
  let port = options.port || 3000
122
126
  const errors = []
123
-
127
+
124
128
  console.log('\n')
125
129
  console.log('╔════════════════════════════════════════════════════════════╗')
126
130
  console.log('║ ║')
127
- console.log('║ 🚀 Skill-Insight 一键部署 🚀 ║')
131
+ console.log('║ 🚀 Skill-insight 一键部署 🚀 ║')
128
132
  console.log('║ ║')
129
133
  console.log('╚════════════════════════════════════════════════════════════╝')
130
134
  console.log('')
131
-
135
+
132
136
  console.log('📦 【步骤 1/5】安装 npm 包...')
137
+
138
+ try {
139
+ const oldDbPath = path.join(process.cwd(), 'node_modules', '@witty-ai', 'skill-insight', 'data', 'witty_insight.db')
140
+ const newDbDir = path.join(os.homedir(), '.skill-insight', 'data')
141
+ const newDbPath = path.join(newDbDir, 'witty_insight.db')
142
+
143
+ if (fs.existsSync(oldDbPath) && !fs.existsSync(newDbPath)) {
144
+ console.log(' ⚠️ 检测到 node_modules 中存在旧版数据,正在执行迁移...')
145
+ if (!fs.existsSync(newDbDir)) fs.mkdirSync(newDbDir, { recursive: true })
146
+ fs.copyFileSync(oldDbPath, newDbPath)
147
+ console.log(' ✅ 旧版数据已成功迁移至安全目录')
148
+ }
149
+ } catch (e) {
150
+ console.log(' ⚠️ 数据迁移检测失败,跳过: ' + e.message)
151
+ }
152
+
133
153
  try {
134
154
  await runCommand('npm install @witty-ai/skill-insight', { silent: true })
135
155
  console.log(' ✅ npm 包安装成功\n')
@@ -137,21 +157,21 @@ async function run(options = {}) {
137
157
  errors.push({ step: 1, message: `npm install 失败: ${error.message}` })
138
158
  console.log(` ❌ npm 包安装失败: ${error.message}\n`)
139
159
  }
140
-
160
+
141
161
  const availablePort = findAvailablePort(port)
142
162
  if (availablePort !== port) {
143
163
  console.log(`🔄 端口 ${port} 已被占用,自动切换到端口 ${availablePort}\n`)
144
164
  port = availablePort
145
165
  }
146
-
166
+
147
167
  console.log('🔧 【步骤 2/5】启动服务...')
148
168
  try {
149
- const logPath = path.join(os.homedir(), '.witty', 'install.log')
169
+ const logPath = path.join(os.homedir(), '.skill-insight', 'install.log')
150
170
  const logDir = path.dirname(logPath)
151
171
  if (!fs.existsSync(logDir)) {
152
172
  fs.mkdirSync(logDir, { recursive: true })
153
173
  }
154
-
174
+
155
175
  const startProc = spawn('npx', ['@witty-ai/skill-insight', 'start', '--port', port.toString()], {
156
176
  stdio: ['ignore', fs.openSync(logPath, 'a'), fs.openSync(logPath, 'a')],
157
177
  shell: true,
@@ -163,7 +183,7 @@ async function run(options = {}) {
163
183
  errors.push({ step: 2, message: `启动服务失败: ${error.message}` })
164
184
  console.log(` ❌ 启动服务失败: ${error.message}\n`)
165
185
  }
166
-
186
+
167
187
  console.log('🔑 【步骤 3/5】等待服务就绪并获取 API Key...')
168
188
  let apiKey = null
169
189
  try {
@@ -173,36 +193,49 @@ async function run(options = {}) {
173
193
  throw new Error(`服务在端口 ${port} 未就绪`)
174
194
  }
175
195
  console.log(' ✅ 服务已就绪')
176
-
196
+
177
197
  apiKey = await getApiKey(port)
178
198
  console.log(' ✅ 获取到 API Key\n')
179
199
  } catch (error) {
180
200
  errors.push({ step: 3, message: `获取 API Key 失败: ${error.message}` })
181
201
  console.log(`\n ❌ 获取 API Key 失败: ${error.message}\n`)
182
202
  }
183
-
203
+
184
204
  console.log('🔌 【步骤 4/5】安装插件组件...')
185
205
  try {
186
206
  if (!apiKey) {
187
207
  throw new Error('没有可用的 API Key,跳过自动配置')
188
208
  }
189
-
209
+
190
210
  const scriptContent = await callAutoSetup(port, apiKey)
191
- const scriptPath = path.join(os.homedir(), '.witty', 'auto_setup.sh')
192
-
193
- fs.mkdirSync(path.dirname(scriptPath), { recursive: true })
194
- fs.writeFileSync(scriptPath, scriptContent, { mode: 0o755 })
195
- console.log(' ✅ 配置脚本已下载')
196
-
197
- console.log(' 📋 请选择要安装的框架...')
198
- await runCommand(`bash "${scriptPath}"`)
199
-
211
+ const isWindows = process.platform === 'win32'
212
+ const scriptDir = path.join(os.homedir(), '.skill-insight')
213
+
214
+ fs.mkdirSync(scriptDir, { recursive: true })
215
+
216
+ let scriptPath, executeCommand
217
+ if (isWindows) {
218
+ scriptPath = path.join(scriptDir, 'auto_setup.ps1')
219
+ fs.writeFileSync(scriptPath, scriptContent)
220
+ console.log(' ✅ 配置脚本已下载 (PowerShell)')
221
+ console.log(' 📋 请选择要安装的框架...')
222
+ executeCommand = `powershell -ExecutionPolicy Bypass -File "${scriptPath}"`
223
+ } else {
224
+ scriptPath = path.join(scriptDir, 'auto_setup.sh')
225
+ fs.writeFileSync(scriptPath, scriptContent, { mode: 0o755 })
226
+ console.log(' ✅ 配置脚本已下载 (Shell)')
227
+ console.log(' 📋 请选择要安装的框架...')
228
+ executeCommand = `bash "${scriptPath}"`
229
+ }
230
+
231
+ await runCommand(executeCommand)
232
+
200
233
  console.log('\n ✅ 插件安装完成\n')
201
234
  } catch (error) {
202
235
  errors.push({ step: 4, message: `插件安装失败: ${error.message}` })
203
236
  console.log(` ❌ 插件安装失败: ${error.message}\n`)
204
237
  }
205
-
238
+
206
239
  console.log('📚 【步骤 5/5】添加技能...')
207
240
  try {
208
241
  await runCommand('npx skills add https://atomgit.com/openeuler/witty-skill-insight.git')
@@ -211,11 +244,11 @@ async function run(options = {}) {
211
244
  errors.push({ step: 5, message: `添加技能失败: ${error.message}` })
212
245
  console.log(` ❌ 添加技能失败: ${error.message}\n`)
213
246
  }
214
-
247
+
215
248
  console.log('════════════════════════════════════════════════════════════')
216
249
  console.log(' 🎉 部署完成 🎉')
217
250
  console.log('════════════════════════════════════════════════════════════')
218
-
251
+
219
252
  if (errors.length > 0) {
220
253
  console.log('\n')
221
254
  console.log('⚠️ 以下步骤执行失败:')
@@ -227,7 +260,7 @@ async function run(options = {}) {
227
260
  console.log('\n')
228
261
  console.log('✅ 所有步骤执行成功!')
229
262
  }
230
-
263
+
231
264
  console.log('\n')
232
265
  console.log('┌─────────────────────────────────────────────────────────────┐')
233
266
  console.log('│ │')
@@ -237,4 +270,4 @@ async function run(options = {}) {
237
270
  console.log('')
238
271
  }
239
272
 
240
- module.exports = { run }
273
+ module.exports = { run }
@@ -12,7 +12,7 @@ async function run(options) {
12
12
  return
13
13
  }
14
14
 
15
- console.log('=== Witty-Skill-Insight Service Logs ===\n')
15
+ console.log('=== Skill-Insight Service Logs ===\n')
16
16
  console.log('Press Ctrl+C to exit\n')
17
17
 
18
18
  const tail = spawn('tail', ['-f', logPath], { stdio: 'inherit' })
@@ -221,14 +221,14 @@ class OpenClawParser {
221
221
  // HTTP Upload (replaces saveExecutionRecord)
222
222
  // ============================================================================
223
223
 
224
- function loadWittyConfig(): { apiKey: string; host: string } {
224
+ function loadSkillInsightConfig(): { apiKey: string; host: string } {
225
225
  const config: { apiKey: string; host: string } = { apiKey: '', host: '' };
226
226
  try {
227
- const envPath = path.join(os.homedir(), '.witty', '.env');
227
+ const envPath = path.join(os.homedir(), '.skill-insight', '.env');
228
228
  if (fs.existsSync(envPath)) {
229
229
  const content = fs.readFileSync(envPath, 'utf-8');
230
- const apiKeyMatch = content.match(/WITTY_INSIGHT_API_KEY=(.*)/);
231
- const hostMatch = content.match(/WITTY_INSIGHT_HOST=(.*)/);
230
+ const apiKeyMatch = content.match(/SKILL_INSIGHT_API_KEY=(.*)/);
231
+ const hostMatch = content.match(/SKILL_INSIGHT_HOST=(.*)/);
232
232
  if (apiKeyMatch && apiKeyMatch[1]) {
233
233
  config.apiKey = apiKeyMatch[1].trim();
234
234
  }
@@ -237,13 +237,13 @@ function loadWittyConfig(): { apiKey: string; host: string } {
237
237
  }
238
238
  }
239
239
  } catch (e) {
240
- console.error('[OpenClawWatcher] Error reading witty config:', e);
240
+ console.error('[OpenClawWatcher] Error reading skill-insight config:', e);
241
241
  }
242
242
  return config;
243
243
  }
244
244
 
245
245
  async function uploadExecutionRecord(record: any): Promise<void> {
246
- const config = loadWittyConfig();
246
+ const config = loadSkillInsightConfig();
247
247
  if (!config.apiKey || !config.host) {
248
248
  console.error('[OpenClawWatcher] Missing API key or host in config');
249
249
  return;
@@ -260,10 +260,12 @@ async function uploadExecutionRecord(record: any): Promise<void> {
260
260
 
261
261
  const body = JSON.stringify(record);
262
262
 
263
+ const basePath = parsedUrl.pathname === '/' ? '' : parsedUrl.pathname;
264
+
263
265
  const options: http.RequestOptions = {
264
266
  hostname: parsedUrl.hostname,
265
267
  port: parsedUrl.port || (isHttps ? 443 : 80),
266
- path: '/api/upload',
268
+ path: `${basePath}/api/upload`,
267
269
  method: 'POST',
268
270
  headers: {
269
271
  'Content-Type': 'application/json',