@witty-ai/skill-insight 0.4.0-beta → 0.6.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 (347) hide show
  1. package/.env.example +55 -5
  2. package/.next/standalone/.next/BUILD_ID +1 -1
  3. package/.next/standalone/.next/app-path-routes-manifest.json +5 -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 +30 -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 +3 -3
  18. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  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/organization/route/app-paths-manifest.json +3 -0
  25. package/.next/standalone/.next/server/app/api/auth/organization/route/build-manifest.json +11 -0
  26. package/.next/standalone/.next/server/app/api/auth/organization/route/server-reference-manifest.json +4 -0
  27. package/.next/standalone/.next/server/app/api/auth/organization/route.js +7 -0
  28. package/.next/standalone/.next/server/app/api/auth/organization/route.js.map +5 -0
  29. package/.next/standalone/.next/server/app/api/auth/organization/route.js.nft.json +1 -0
  30. package/.next/standalone/.next/server/app/api/auth/organization/route_client-reference-manifest.js +2 -0
  31. package/.next/standalone/.next/server/app/api/config/create/route.js +2 -2
  32. package/.next/standalone/.next/server/app/api/config/create/route.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/api/config/route.js +4 -4
  34. package/.next/standalone/.next/server/app/api/config/route.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/api/data/route.js +3 -3
  36. package/.next/standalone/.next/server/app/api/data/route.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/api/executions/[executionId]/analyze-match/route.js +1 -1
  38. package/.next/standalone/.next/server/app/api/executions/[executionId]/analyze-match/route.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/api/otel/v1/logs/route.js +3 -3
  40. package/.next/standalone/.next/server/app/api/otel/v1/logs/route.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/api/otel/v1/traces/route.js +2 -2
  42. package/.next/standalone/.next/server/app/api/otel/v1/traces/route.js.nft.json +1 -1
  43. package/.next/standalone/.next/server/app/api/proxy/[taskId]/[...path]/route.js +1 -1
  44. package/.next/standalone/.next/server/app/api/proxy/[taskId]/[...path]/route.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/api/proxy/[taskId]/end/route.js +5 -5
  46. package/.next/standalone/.next/server/app/api/proxy/[taskId]/end/route.js.nft.json +1 -1
  47. package/.next/standalone/.next/server/app/api/rejudge/route.js +3 -3
  48. package/.next/standalone/.next/server/app/api/rejudge/route.js.nft.json +1 -1
  49. package/.next/standalone/.next/server/app/api/session/route.js +3 -3
  50. package/.next/standalone/.next/server/app/api/session/route.js.nft.json +1 -1
  51. package/.next/standalone/.next/server/app/api/settings/route.js +1 -1
  52. package/.next/standalone/.next/server/app/api/settings/route.js.nft.json +1 -1
  53. package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route/app-paths-manifest.json +3 -0
  54. package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route/build-manifest.json +11 -0
  55. package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route/server-reference-manifest.json +4 -0
  56. package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route.js +6 -0
  57. package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route.js.map +5 -0
  58. package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route.js.nft.json +1 -0
  59. package/.next/standalone/.next/server/app/api/setup/opencode-commands/si-optimizer/route_client-reference-manifest.js +2 -0
  60. package/.next/standalone/.next/server/app/api/setup/opencode-tui/route/app-paths-manifest.json +3 -0
  61. package/.next/standalone/.next/server/app/api/setup/opencode-tui/route/build-manifest.json +11 -0
  62. package/.next/standalone/.next/server/app/api/setup/opencode-tui/route/server-reference-manifest.json +4 -0
  63. package/.next/standalone/.next/server/app/api/setup/opencode-tui/route.js +6 -0
  64. package/.next/standalone/.next/server/app/api/setup/opencode-tui/route.js.map +5 -0
  65. package/.next/standalone/.next/server/app/api/setup/opencode-tui/route.js.nft.json +1 -0
  66. package/.next/standalone/.next/server/app/api/setup/opencode-tui/route_client-reference-manifest.js +2 -0
  67. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/download/route.js.nft.json +1 -1
  68. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/parse-flow/route.js +1 -1
  69. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/parse-flow/route.js.nft.json +1 -1
  70. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/route.js +3 -2
  71. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/route.js.nft.json +1 -1
  72. package/.next/standalone/.next/server/app/api/skills/automation/import/route.js.nft.json +1 -1
  73. package/.next/standalone/.next/server/app/api/skills/logs/route.js +2 -2
  74. package/.next/standalone/.next/server/app/api/skills/logs/route.js.nft.json +1 -1
  75. package/.next/standalone/.next/server/app/api/skills/route.js +3 -2
  76. package/.next/standalone/.next/server/app/api/skills/route.js.nft.json +1 -1
  77. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route/app-paths-manifest.json +3 -0
  78. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route/build-manifest.json +11 -0
  79. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route/server-reference-manifest.json +4 -0
  80. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route.js +8 -0
  81. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route.js.map +5 -0
  82. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route.js.nft.json +1 -0
  83. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route_client-reference-manifest.js +2 -0
  84. package/.next/standalone/.next/server/app/api/task-stats/route/app-paths-manifest.json +3 -0
  85. package/.next/standalone/.next/server/app/api/task-stats/route/build-manifest.json +11 -0
  86. package/.next/standalone/.next/server/app/api/task-stats/route/server-reference-manifest.json +4 -0
  87. package/.next/standalone/.next/server/app/api/task-stats/route.js +11 -0
  88. package/.next/standalone/.next/server/app/api/task-stats/route.js.map +5 -0
  89. package/.next/standalone/.next/server/app/api/task-stats/route.js.nft.json +1 -0
  90. package/.next/standalone/.next/server/app/api/task-stats/route_client-reference-manifest.js +2 -0
  91. package/.next/standalone/.next/server/app/api/upload/route.js +2 -2
  92. package/.next/standalone/.next/server/app/api/upload/route.js.nft.json +1 -1
  93. package/.next/standalone/.next/server/app/details/page/react-loadable-manifest.json +2 -2
  94. package/.next/standalone/.next/server/app/details/page.js.nft.json +1 -1
  95. package/.next/standalone/.next/server/app/details/page_client-reference-manifest.js +1 -1
  96. package/.next/standalone/.next/server/app/details.html +1 -1
  97. package/.next/standalone/.next/server/app/details.rsc +4 -4
  98. package/.next/standalone/.next/server/app/details.segments/_full.segment.rsc +4 -4
  99. package/.next/standalone/.next/server/app/details.segments/_head.segment.rsc +1 -1
  100. package/.next/standalone/.next/server/app/details.segments/_index.segment.rsc +3 -3
  101. package/.next/standalone/.next/server/app/details.segments/_tree.segment.rsc +2 -2
  102. package/.next/standalone/.next/server/app/details.segments/details/__PAGE__.segment.rsc +2 -2
  103. package/.next/standalone/.next/server/app/details.segments/details.segment.rsc +1 -1
  104. package/.next/standalone/.next/server/app/index.html +1 -1
  105. package/.next/standalone/.next/server/app/index.rsc +4 -4
  106. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  107. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +4 -4
  108. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  109. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +3 -3
  110. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  111. package/.next/standalone/.next/server/app/login/page.js.nft.json +1 -1
  112. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  113. package/.next/standalone/.next/server/app/login.html +1 -1
  114. package/.next/standalone/.next/server/app/login.rsc +4 -4
  115. package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +4 -4
  116. package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
  117. package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +3 -3
  118. package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  119. package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  120. package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
  121. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  122. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  123. package/.next/standalone/.next/server/app/skills/page.js.nft.json +1 -1
  124. package/.next/standalone/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  125. package/.next/standalone/.next/server/app/skills.html +1 -1
  126. package/.next/standalone/.next/server/app/skills.rsc +4 -4
  127. package/.next/standalone/.next/server/app/skills.segments/_full.segment.rsc +4 -4
  128. package/.next/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  129. package/.next/standalone/.next/server/app/skills.segments/_index.segment.rsc +3 -3
  130. package/.next/standalone/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  131. package/.next/standalone/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +2 -2
  132. package/.next/standalone/.next/server/app/skills.segments/skills.segment.rsc +1 -1
  133. package/.next/standalone/.next/server/app-paths-manifest.json +5 -0
  134. package/.next/standalone/.next/server/chunks/[root-of-the-server]__02ddba88._.js +3 -0
  135. package/.next/standalone/.next/server/chunks/[root-of-the-server]__15dbd1f2._.js +3 -0
  136. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1ce5e3b8._.js +3 -0
  137. package/.next/standalone/.next/server/chunks/[root-of-the-server]__4a6d443b._.js +3 -0
  138. package/.next/standalone/.next/server/chunks/[root-of-the-server]__53775b48._.js +3 -0
  139. package/.next/standalone/.next/server/chunks/[root-of-the-server]__5444db55._.js +3 -0
  140. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6923eecf._.js +3 -0
  141. package/.next/standalone/.next/server/chunks/[root-of-the-server]__6d8053e2._.js +1 -1
  142. package/.next/standalone/.next/server/chunks/[root-of-the-server]__8402dfd1._.js +3 -0
  143. package/.next/standalone/.next/server/chunks/[root-of-the-server]__863cf6de._.js +1 -1
  144. package/.next/standalone/.next/server/chunks/[root-of-the-server]__89404730._.js +3 -0
  145. package/.next/standalone/.next/server/chunks/[root-of-the-server]__98b3de5e._.js +3 -0
  146. package/.next/standalone/.next/server/chunks/[root-of-the-server]__a4d3d791._.js +3 -0
  147. package/.next/standalone/.next/server/chunks/[root-of-the-server]__aa5c8858._.js +2 -2
  148. package/.next/standalone/.next/server/chunks/[root-of-the-server]__bd91659b._.js +3 -0
  149. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c200214a._.js +3 -0
  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]__d7fab946._.js +3 -0
  152. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d8c1808b._.js +1 -1
  153. package/.next/standalone/.next/server/chunks/[root-of-the-server]__d9b9fecc._.js +3 -0
  154. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ddf63a21._.js +3 -0
  155. package/.next/standalone/.next/server/chunks/[root-of-the-server]__f9e66e02._.js +3 -0
  156. package/.next/standalone/.next/server/chunks/_3e8b4d8c._.js +1 -1
  157. package/.next/standalone/.next/server/chunks/_41a98bd8._.js +1 -1
  158. package/.next/standalone/.next/server/chunks/_4c806e26._.js +3 -0
  159. package/.next/standalone/.next/server/chunks/_cd3d20ca._.js +1 -1
  160. package/.next/standalone/.next/server/chunks/_ddffef3e._.js +1 -1
  161. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_auth_organization_route_actions_f58710b7.js +3 -0
  162. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_setup_opencode-tui_route_actions_fc8ae29f.js +3 -0
  163. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_skills_sync-enterprise_route_actions_0ca45899.js +3 -0
  164. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_task-stats_route_actions_983505cd.js +3 -0
  165. package/.next/standalone/.next/server/chunks/ce889_server_app_api_setup_opencode-commands_si-optimizer_route_actions_fcde30ef.js +3 -0
  166. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_c33286ed.js +47 -43
  167. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_f42faeee.js +1 -1
  168. package/.next/standalone/.next/server/chunks/src_98433cb8._.js +175 -0
  169. package/.next/standalone/.next/server/chunks/src_lib_12408140._.js +1 -1
  170. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__5d576168._.js → [root-of-the-server]__40353d98._.js} +1 -1
  171. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__89851212._.js → [root-of-the-server]__480fcd92._.js} +1 -1
  172. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__28978655._.js → [root-of-the-server]__48f8fbcb._.js} +1 -1
  173. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__a5ef0b61._.js → [root-of-the-server]__49921b2a._.js} +1 -1
  174. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__317833f9._.js → [root-of-the-server]__593be3d6._.js} +1 -1
  175. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__ca101543._.js → [root-of-the-server]__5e9ff641._.js} +1 -1
  176. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__90641614._.js → [root-of-the-server]__66cc6ff2._.js} +1 -1
  177. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__cda1e286._.js → [root-of-the-server]__9889bdc8._.js} +1 -1
  178. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__42ba97b6._.js → [root-of-the-server]__9905ca7a._.js} +2 -2
  179. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__9ab7cc4a._.js +3 -0
  180. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__7bb97139._.js → [root-of-the-server]__9d6b7d48._.js} +1 -1
  181. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__6b8b9bb9._.js → [root-of-the-server]__b8edc8c6._.js} +1 -1
  182. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__b9972e88._.js → [root-of-the-server]__d691ecb0._.js} +1 -1
  183. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__52851239._.js → [root-of-the-server]__e5ddfd15._.js} +1 -1
  184. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__9630dedf._.js → [root-of-the-server]__f72f330e._.js} +1 -1
  185. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__99ab66d7._.js → [root-of-the-server]__f843e085._.js} +1 -1
  186. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__d424fa04._.js → [root-of-the-server]__fd69d276._.js} +2 -2
  187. package/.next/standalone/.next/server/chunks/ssr/{_7688d7cd._.js → _049876f0._.js} +2 -2
  188. package/.next/standalone/.next/server/chunks/ssr/{_72a74a0c._.js → _09546b95._.js} +2 -2
  189. package/.next/standalone/.next/server/chunks/ssr/_8f5379ab._.js +1 -1
  190. package/.next/standalone/.next/server/chunks/ssr/{node_modules_cf1f3d2c._.js → _b121f1ae._.js} +2 -2
  191. package/.next/standalone/.next/server/chunks/ssr/_c8c8c083._.js +2 -2
  192. package/.next/standalone/.next/server/chunks/ssr/_fd46f439._.js +2 -1
  193. package/.next/standalone/.next/server/chunks/ssr/{node_modules_f2653232._.js → node_modules_039c6a11._.js} +1 -1
  194. package/.next/standalone/.next/server/chunks/ssr/{node_modules_da87f0e3._.js → node_modules_0d3530cd._.js} +2 -2
  195. package/.next/standalone/.next/server/chunks/ssr/{node_modules_afb1ecef._.js → node_modules_0e883565._.js} +1 -1
  196. package/.next/standalone/.next/server/chunks/ssr/{node_modules_8d9e56b7._.js → node_modules_11dbf165._.js} +2 -2
  197. package/.next/standalone/.next/server/chunks/ssr/{node_modules_76d6c533._.js → node_modules_2041c122._.js} +2 -2
  198. package/.next/standalone/.next/server/chunks/ssr/{node_modules_b007145b._.js → node_modules_235267bb._.js} +1 -1
  199. package/.next/standalone/.next/server/chunks/ssr/{node_modules_11d81adf._.js → node_modules_25dfb0ba._.js} +2 -2
  200. package/.next/standalone/.next/server/chunks/ssr/{node_modules_4ea9b27b._.js → node_modules_2b12c669._.js} +2 -2
  201. package/.next/standalone/.next/server/chunks/ssr/{node_modules_cc19e85c._.js → node_modules_32996880._.js} +2 -2
  202. package/.next/standalone/.next/server/chunks/ssr/{node_modules_62621b34._.js → node_modules_35885fe9._.js} +2 -2
  203. package/.next/standalone/.next/server/chunks/ssr/{node_modules_ed4150ad._.js → node_modules_38a95353._.js} +2 -2
  204. package/.next/standalone/.next/server/chunks/ssr/{node_modules_f596a14c._.js → node_modules_3a317c51._.js} +1 -1
  205. package/.next/standalone/.next/server/chunks/ssr/{node_modules_fddab329._.js → node_modules_44966ab2._.js} +1 -1
  206. package/.next/standalone/.next/server/chunks/ssr/{node_modules_e272ac31._.js → node_modules_53af751a._.js} +2 -2
  207. package/.next/standalone/.next/server/chunks/ssr/{node_modules_abf4f826._.js → node_modules_5f539891._.js} +1 -1
  208. package/.next/standalone/.next/server/chunks/ssr/{node_modules_86b6ffa4._.js → node_modules_60402210._.js} +1 -1
  209. package/.next/standalone/.next/server/chunks/ssr/{node_modules_3769cd60._.js → node_modules_60eccfb6._.js} +1 -1
  210. package/.next/standalone/.next/server/chunks/ssr/{node_modules_fdf808cf._.js → node_modules_632c098c._.js} +1 -1
  211. package/.next/standalone/.next/server/chunks/ssr/{node_modules_442994dc._.js → node_modules_6c42f75c._.js} +1 -1
  212. package/.next/standalone/.next/server/chunks/ssr/{node_modules_5b6dbbc3._.js → node_modules_6fbe276d._.js} +2 -2
  213. package/.next/standalone/.next/server/chunks/ssr/{node_modules_6716e25d._.js → node_modules_740e9d59._.js} +2 -2
  214. package/.next/standalone/.next/server/chunks/ssr/{node_modules_ed1f1845._.js → node_modules_7a3d551c._.js} +1 -1
  215. package/.next/standalone/.next/server/chunks/ssr/{node_modules_4f41f172._.js → node_modules_861cb9cf._.js} +2 -2
  216. package/.next/standalone/.next/server/chunks/ssr/{node_modules_2aaea4ea._.js → node_modules_8a892761._.js} +1 -1
  217. package/.next/standalone/.next/server/chunks/ssr/{node_modules_3964c298._.js → node_modules_a5a4946e._.js} +1 -1
  218. package/.next/standalone/.next/server/chunks/ssr/{node_modules_3d9afa91._.js → node_modules_a712c937._.js} +1 -1
  219. package/.next/standalone/.next/server/chunks/ssr/{node_modules_330b9e3c._.js → node_modules_a8c276dd._.js} +2 -2
  220. package/.next/standalone/.next/server/chunks/ssr/{node_modules_ad69a9e4._.js → node_modules_acc9d529._.js} +1 -1
  221. package/.next/standalone/.next/server/chunks/ssr/{node_modules_8301968d._.js → node_modules_ad07ab39._.js} +1 -1
  222. package/.next/standalone/.next/server/chunks/ssr/{node_modules_1d88c7cc._.js → node_modules_b38efa22._.js} +1 -1
  223. package/.next/standalone/.next/server/chunks/ssr/{node_modules_e20e8c2a._.js → node_modules_b4ef036d._.js} +2 -2
  224. package/.next/standalone/.next/server/chunks/ssr/{node_modules_2e206c58._.js → node_modules_b6bad701._.js} +2 -2
  225. package/.next/standalone/.next/server/chunks/ssr/{node_modules_c90fa812._.js → node_modules_b9810024._.js} +1 -1
  226. package/.next/standalone/.next/server/chunks/ssr/{node_modules_db8af6e3._.js → node_modules_b9ad808d._.js} +1 -1
  227. package/.next/standalone/.next/server/chunks/ssr/{node_modules_7287189a._.js → node_modules_bc287d9f._.js} +1 -1
  228. package/.next/standalone/.next/server/chunks/ssr/{node_modules_2e38bc5c._.js → node_modules_c6469d93._.js} +1 -1
  229. package/.next/standalone/.next/server/chunks/ssr/{node_modules_c657890f._.js → node_modules_c704e802._.js} +1 -1
  230. package/.next/standalone/.next/server/chunks/ssr/{node_modules_b8803ba6._.js → node_modules_cda46cfc._.js} +2 -2
  231. package/.next/standalone/.next/server/chunks/ssr/{node_modules_aa6da06c._.js → node_modules_cf171d0c._.js} +1 -1
  232. package/.next/standalone/.next/server/chunks/ssr/node_modules_dagre-d3-es_src_dagre_index_3582f3d0.js +1 -1
  233. package/.next/standalone/.next/server/chunks/ssr/{node_modules_2d9e03d1._.js → node_modules_e8927fc2._.js} +1 -1
  234. package/.next/standalone/.next/server/chunks/ssr/node_modules_lodash-es_a1341fea._.js +1 -1
  235. package/.next/standalone/.next/server/chunks/ssr/node_modules_lodash-es_e1de6ed8._.js +1 -1
  236. package/.next/standalone/.next/server/chunks/ssr/src_app_login_page_tsx_72f58654._.js +1 -1
  237. package/.next/standalone/.next/server/pages/404.html +1 -1
  238. package/.next/standalone/.next/server/pages/500.html +2 -2
  239. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  240. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  241. package/.next/standalone/.next/static/chunks/1e782a49beaf489c.js +1 -0
  242. package/.next/standalone/.next/static/chunks/{01eddf501c574a44.js → 4ee8dc41c9f15b7b.js} +1 -1
  243. package/.next/standalone/.next/static/chunks/67bd1a5de2195779.js +1 -0
  244. package/.next/standalone/.next/static/chunks/{737b8cff3c6a4e30.js → 9445b2873a413c58.js} +1 -1
  245. package/.next/standalone/.next/static/chunks/94dfb15df65ef720.js +2 -0
  246. package/.next/standalone/.next/static/chunks/9d1c5c3494fa53de.js +109 -0
  247. package/.next/standalone/.next/static/chunks/c6bd2818656b1f20.css +1 -0
  248. package/.next/standalone/.next/static/chunks/{e09d9ee16fe90255.js → cd0fde15dc0dfcca.js} +1 -1
  249. package/.next/standalone/.next/static/chunks/{6d12c79948c7e0ac.js → dc59a07a8f327b40.js} +1 -1
  250. package/.next/standalone/.next/static/chunks/{ff6357067630b168.js → e13d208072a48316.js} +1 -1
  251. package/.next/standalone/node_modules/.prisma/client/edge.js +6 -3
  252. package/.next/standalone/node_modules/.prisma/client/index-browser.js +3 -0
  253. package/.next/standalone/node_modules/.prisma/client/index.js +6 -3
  254. package/.next/standalone/node_modules/.prisma/client/package.json +1 -1
  255. package/.next/standalone/node_modules/.prisma/client/schema.prisma +12 -9
  256. package/.next/standalone/node_modules/.prisma/client/wasm.js +3 -0
  257. package/.next/standalone/node_modules/adm-zip/util/constants.js +142 -0
  258. package/.next/standalone/node_modules/adm-zip/util/decoder.js +5 -0
  259. package/.next/standalone/node_modules/adm-zip/util/errors.js +63 -0
  260. package/.next/standalone/node_modules/adm-zip/util/fattr.js +76 -0
  261. package/.next/standalone/node_modules/adm-zip/util/index.js +5 -0
  262. package/.next/standalone/node_modules/adm-zip/util/utils.js +339 -0
  263. package/.next/standalone/package.json +6 -2
  264. package/.next/standalone/prisma/schema.prisma +3 -0
  265. package/.next/standalone/scripts/opencode_plugin.ts +279 -40
  266. package/.next/standalone/scripts/opencode_tui_plugin.tsx +308 -0
  267. package/.next/standalone/scripts/si-optimizer.md +5 -0
  268. package/.next/static/chunks/1e782a49beaf489c.js +1 -0
  269. package/.next/static/chunks/{01eddf501c574a44.js → 4ee8dc41c9f15b7b.js} +1 -1
  270. package/.next/static/chunks/67bd1a5de2195779.js +1 -0
  271. package/.next/static/chunks/{737b8cff3c6a4e30.js → 9445b2873a413c58.js} +1 -1
  272. package/.next/static/chunks/94dfb15df65ef720.js +2 -0
  273. package/.next/static/chunks/9d1c5c3494fa53de.js +109 -0
  274. package/.next/static/chunks/c6bd2818656b1f20.css +1 -0
  275. package/.next/static/chunks/{e09d9ee16fe90255.js → cd0fde15dc0dfcca.js} +1 -1
  276. package/.next/static/chunks/{6d12c79948c7e0ac.js → dc59a07a8f327b40.js} +1 -1
  277. package/.next/static/chunks/{ff6357067630b168.js → e13d208072a48316.js} +1 -1
  278. package/package.json +6 -2
  279. package/prisma/schema.prisma +3 -0
  280. package/scripts/activate_telemetry.sh +44 -1
  281. package/scripts/opencode_plugin.ts +279 -40
  282. package/scripts/opencode_tui_plugin.tsx +308 -0
  283. package/scripts/si-optimizer.md +5 -0
  284. package/scripts/utils.js +0 -1
  285. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0fceba52._.js +0 -3
  286. package/.next/standalone/.next/server/chunks/[root-of-the-server]__13132848._.js +0 -3
  287. package/.next/standalone/.next/server/chunks/[root-of-the-server]__30769f6e._.js +0 -3
  288. package/.next/standalone/.next/server/chunks/[root-of-the-server]__426bc4ab._.js +0 -3
  289. package/.next/standalone/.next/server/chunks/[root-of-the-server]__610d08bc._.js +0 -3
  290. package/.next/standalone/.next/server/chunks/[root-of-the-server]__75e3674c._.js +0 -3
  291. package/.next/standalone/.next/server/chunks/[root-of-the-server]__761462f8._.js +0 -3
  292. package/.next/standalone/.next/server/chunks/[root-of-the-server]__9aa700a4._.js +0 -3
  293. package/.next/standalone/.next/server/chunks/[root-of-the-server]__b7ad2649._.js +0 -3
  294. package/.next/standalone/.next/server/chunks/[root-of-the-server]__c00180dd._.js +0 -3
  295. package/.next/standalone/.next/server/chunks/[root-of-the-server]__e2f0baee._.js +0 -3
  296. package/.next/standalone/.next/server/chunks/[root-of-the-server]__ed8f9b78._.js +0 -3
  297. package/.next/standalone/.next/server/chunks/[root-of-the-server]__fc05579d._.js +0 -3
  298. package/.next/standalone/.next/server/chunks/src_497d2ad2._.js +0 -175
  299. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__082c32a2._.js +0 -3
  300. package/.next/standalone/.next/static/chunks/222a937a6c859036.js +0 -1
  301. package/.next/standalone/.next/static/chunks/2a3dd49367e2c198.js +0 -1
  302. package/.next/standalone/.next/static/chunks/3e33f7adc10a38d3.js +0 -109
  303. package/.next/standalone/.next/static/chunks/428e6cf64b115e9d.css +0 -1
  304. package/.next/standalone/.next/static/chunks/62129f27f303a5ba.js +0 -1
  305. package/.next/standalone/LICENSE +0 -21
  306. package/.next/standalone/bin/cli.js +0 -106
  307. package/.next/standalone/custom-models.example.json +0 -21
  308. package/.next/standalone/eslint.config.mjs +0 -18
  309. package/.next/standalone/features/feature-skill-used-jump-link/design/2026-03-18-skill-used-jump-link-design.md +0 -126
  310. package/.next/standalone/features/feature-skill-used-jump-link/feature.json +0 -32
  311. package/.next/standalone/features/feature-skill-used-jump-link/issue.md +0 -32
  312. package/.next/standalone/features/feature-skill-used-jump-link/plans/2026-03-18-skill-used-jump-link.md +0 -528
  313. package/.next/standalone/next.config.ts +0 -29
  314. package/.next/standalone/scripts/activate_telemetry.sh +0 -159
  315. package/.next/standalone/scripts/create_migration_package.sh +0 -124
  316. package/.next/standalone/scripts/fix_models.js +0 -66
  317. package/.next/standalone/scripts/init_opengauss.py +0 -284
  318. package/.next/standalone/scripts/install.js +0 -273
  319. package/.next/standalone/scripts/logs.js +0 -38
  320. package/.next/standalone/scripts/otel_data/logs.jsonl +0 -12
  321. package/.next/standalone/scripts/otel_data/metrics.jsonl +0 -21
  322. package/.next/standalone/scripts/otel_data/raw_requests.jsonl +0 -8
  323. package/.next/standalone/scripts/otel_data/raw_requests.jsonl.bak +0 -6
  324. package/.next/standalone/scripts/otel_receiver.py +0 -580
  325. package/.next/standalone/scripts/postinstall.js +0 -192
  326. package/.next/standalone/scripts/publish-npm.js +0 -401
  327. package/.next/standalone/scripts/restart.js +0 -26
  328. package/.next/standalone/scripts/restart.sh +0 -138
  329. package/.next/standalone/scripts/restart_dev.sh +0 -132
  330. package/.next/standalone/scripts/start.js +0 -291
  331. package/.next/standalone/scripts/status.js +0 -41
  332. package/.next/standalone/scripts/stop.js +0 -90
  333. package/.next/standalone/scripts/sync_skills.js +0 -216
  334. package/.next/standalone/scripts/utils.js +0 -235
  335. package/.next/standalone/tests/setup_skill_optimizer.sh +0 -118
  336. package/.next/standalone/tsconfig.json +0 -34
  337. package/.next/static/chunks/222a937a6c859036.js +0 -1
  338. package/.next/static/chunks/2a3dd49367e2c198.js +0 -1
  339. package/.next/static/chunks/3e33f7adc10a38d3.js +0 -109
  340. package/.next/static/chunks/428e6cf64b115e9d.css +0 -1
  341. package/.next/static/chunks/62129f27f303a5ba.js +0 -1
  342. /package/.next/standalone/.next/static/{Eytv_Fh4x2HPaupjXiAYj → 0uvhCJooDO_gMNlKOaHwB}/_buildManifest.js +0 -0
  343. /package/.next/standalone/.next/static/{Eytv_Fh4x2HPaupjXiAYj → 0uvhCJooDO_gMNlKOaHwB}/_clientMiddlewareManifest.json +0 -0
  344. /package/.next/standalone/.next/static/{Eytv_Fh4x2HPaupjXiAYj → 0uvhCJooDO_gMNlKOaHwB}/_ssgManifest.js +0 -0
  345. /package/.next/static/{Eytv_Fh4x2HPaupjXiAYj → 0uvhCJooDO_gMNlKOaHwB}/_buildManifest.js +0 -0
  346. /package/.next/static/{Eytv_Fh4x2HPaupjXiAYj → 0uvhCJooDO_gMNlKOaHwB}/_clientMiddlewareManifest.json +0 -0
  347. /package/.next/static/{Eytv_Fh4x2HPaupjXiAYj → 0uvhCJooDO_gMNlKOaHwB}/_ssgManifest.js +0 -0
@@ -1,216 +0,0 @@
1
- "use strict";
2
- /**
3
- * Skill-Insight Skill Synchronizer
4
- *
5
- * Fetches configured skills from Dashboard and installs them locally.
6
- * Usage: node sync_skills.js [--check-only] [--agent <name>]
7
- *
8
- * Requires: ~/.skill-insight/.env configuration
9
- */
10
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- var desc = Object.getOwnPropertyDescriptor(m, k);
13
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
14
- desc = { enumerable: true, get: function() { return m[k]; } };
15
- }
16
- Object.defineProperty(o, k2, desc);
17
- }) : (function(o, m, k, k2) {
18
- if (k2 === undefined) k2 = k;
19
- o[k2] = m[k];
20
- }));
21
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
22
- Object.defineProperty(o, "default", { enumerable: true, value: v });
23
- }) : function(o, v) {
24
- o["default"] = v;
25
- });
26
- var __importStar = (this && this.__importStar) || (function () {
27
- var ownKeys = function(o) {
28
- ownKeys = Object.getOwnPropertyNames || function (o) {
29
- var ar = [];
30
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
31
- return ar;
32
- };
33
- return ownKeys(o);
34
- };
35
- return function (mod) {
36
- if (mod && mod.__esModule) return mod;
37
- var result = {};
38
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
39
- __setModuleDefault(result, mod);
40
- return result;
41
- };
42
- })();
43
- Object.defineProperty(exports, "__esModule", { value: true });
44
- const fs = __importStar(require("fs"));
45
- const http = __importStar(require("http"));
46
- const https = __importStar(require("https"));
47
- const os = __importStar(require("os"));
48
- const path = __importStar(require("path"));
49
- const AGENTS_DIR_MAP = {
50
- "opencode": ".opencode/skills",
51
- "openhands": ".openhands/skills",
52
- "claude": ".claude/skills",
53
- "deepagents": ".deepagents/skills"
54
- };
55
- function loadConfiguration() {
56
- let config = {};
57
- try {
58
- const envPath = path.join(os.homedir(), '.skill-insight', '.env');
59
- if (fs.existsSync(envPath)) {
60
- const content = fs.readFileSync(envPath, 'utf8');
61
- content.split('\n').forEach(line => {
62
- const match = line.match(/^\s*([\w_]+)\s*=\s*(.*)?\s*$/);
63
- if (match && match[1]) {
64
- config[match[1]] = (match[2] || '').trim().replace(/^['"](.*)['"]$/, '$1');
65
- }
66
- });
67
- }
68
- }
69
- catch (e) { }
70
- return {
71
- apiKey: config['SKILL_INSIGHT_API_KEY'] || process.env.SKILL_INSIGHT_API_KEY,
72
- host: config['SKILL_INSIGHT_HOST'] || process.env.SKILL_INSIGHT_HOST || '127.0.0.1:3000'
73
- };
74
- }
75
- async function fetchManifest(host) {
76
- const urlStr = host.match(/^https?:\/\//) ? host : `http://${host}`;
77
- const parsedUrl = new URL(urlStr);
78
- const requestModule = parsedUrl.protocol === 'https:' ? https : http;
79
- return new Promise((resolve, reject) => {
80
- const req = requestModule.get(`${urlStr}/api/sync/manifest`, (res) => {
81
- if (res.statusCode !== 200) {
82
- reject(new Error(`Failed to fetch manifest: ${res.statusCode}`));
83
- return;
84
- }
85
- let data = '';
86
- res.on('data', chunk => data += chunk);
87
- res.on('end', () => {
88
- try {
89
- resolve(JSON.parse(data));
90
- }
91
- catch (e) {
92
- reject(e);
93
- }
94
- });
95
- });
96
- req.on('error', reject);
97
- });
98
- }
99
- function ensureDir(dirPath) {
100
- if (!fs.existsSync(dirPath)) {
101
- fs.mkdirSync(dirPath, { recursive: true });
102
- }
103
- }
104
- // Simple unzip implementation using zlib if available or just raw write if not zipped
105
- // Note: This is a placeholder. Real implementations use 'adm-zip' or 'unzip' command.
106
- // For simplicity in a script without dependencies, we'll assume the /download endpoint returns raw content for single file
107
- // or we use system unzip command.
108
- async function downloadAndInstall(host, downloadPath, targetDir) {
109
- const urlStr = host.match(/^https?:\/\//) ? host : `http://${host}`;
110
- const parsedUrl = new URL(urlStr + downloadPath);
111
- const requestModule = parsedUrl.protocol === 'https:' ? https : http;
112
- // Use system curl/unzip if available for robustness
113
- const tempZip = path.join(os.tmpdir(), `witty_skill_${Date.now()}.zip`);
114
- return new Promise((resolve, reject) => {
115
- const file = fs.createWriteStream(tempZip);
116
- const req = requestModule.get(parsedUrl.href, (res) => {
117
- if (res.statusCode !== 200) {
118
- reject(new Error(`Download failed: ${res.statusCode}`));
119
- return;
120
- }
121
- res.pipe(file);
122
- file.on('finish', () => {
123
- file.close();
124
- // Unzip
125
- try {
126
- // Try unzip command
127
- const { execSync } = require('child_process');
128
- ensureDir(targetDir);
129
- // Clear target first? Maybe dangerous. Better overwrite.
130
- execSync(`unzip -o "${tempZip}" -d "${targetDir}"`, { stdio: 'ignore' });
131
- fs.unlinkSync(tempZip);
132
- resolve();
133
- }
134
- catch (e) {
135
- // Fallback or error
136
- fs.unlinkSync(tempZip);
137
- reject(e);
138
- }
139
- });
140
- });
141
- req.on('error', (err) => {
142
- fs.unlinkSync(tempZip);
143
- reject(err);
144
- });
145
- });
146
- }
147
- async function syncSkills(targetAgent) {
148
- const { host } = loadConfiguration();
149
- console.log(`🔄 Checking for skill updates from ${host}...`);
150
- try {
151
- const manifest = await fetchManifest(host);
152
- const remoteSkills = manifest.skills || [];
153
- if (remoteSkills.length === 0) {
154
- console.log("✓ No skills configured on dashboard.");
155
- return;
156
- }
157
- const agents = targetAgent ? [targetAgent] : Object.keys(AGENTS_DIR_MAP);
158
- let updatedCount = 0;
159
- for (const agent of agents) {
160
- const relativePath = AGENTS_DIR_MAP[agent];
161
- if (!relativePath)
162
- continue;
163
- // Resolve path relative to CWD (where user runs command)
164
- // OR relative to HOME? Standard is usually project root or HOME based on agent.
165
- // For global tools like OpenCode/Claude, it's usually ~/.opencode/skills
166
- // But AGENTS_DIR_MAP keys start with .
167
- // Let's assume paths are relative to CWD (Current Working Directory)
168
- // This prevents polluting global ~/.opencode, allowing project-specific skills
169
- const skillsDir = path.join(process.cwd(), relativePath);
170
- const manifestPath = path.join(skillsDir, 'manifest.json');
171
- let localManifest = {};
172
- try {
173
- if (fs.existsSync(manifestPath)) {
174
- localManifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8'));
175
- }
176
- }
177
- catch (e) { }
178
- for (const skill of remoteSkills) {
179
- const localVer = localManifest[skill.name]?.version || -1;
180
- if (skill.version > localVer) {
181
- console.log(`⬇️ [${agent}] Updating ${skill.name} (v${localVer} -> v${skill.version})...`);
182
- const targetSkillDir = path.join(skillsDir, skill.name);
183
- try {
184
- await downloadAndInstall(host, skill.downloadUrl, targetSkillDir);
185
- localManifest[skill.name] = {
186
- version: skill.version,
187
- updatedAt: new Date().toISOString()
188
- };
189
- updatedCount++;
190
- }
191
- catch (e) {
192
- console.error(`❌ Failed to update ${skill.name}:`, e);
193
- }
194
- }
195
- }
196
- if (updatedCount > 0) {
197
- ensureDir(skillsDir);
198
- fs.writeFileSync(manifestPath, JSON.stringify(localManifest, null, 2));
199
- }
200
- }
201
- if (updatedCount > 0) {
202
- console.log(`✅ Synced ${updatedCount} skills.`);
203
- }
204
- else {
205
- console.log("✓ All skills up to date.");
206
- }
207
- }
208
- catch (e) {
209
- console.error("⚠️ Skill sync failed (Dashboard offline?):", e.message);
210
- }
211
- }
212
- // Run
213
- const args = process.argv.slice(2);
214
- const agentArgIndex = args.indexOf('--agent');
215
- const targetAgent = agentArgIndex !== -1 ? args[agentArgIndex + 1] : undefined;
216
- syncSkills(targetAgent);
@@ -1,235 +0,0 @@
1
- const { execSync, spawn } = require('child_process')
2
- const fs = require('fs')
3
- const path = require('path')
4
- const http = require('http')
5
- const os = require('os')
6
-
7
- function getDataRoot() {
8
- if (process.env.SKILL_INSIGHT_DATA_DIR) {
9
- return process.env.SKILL_INSIGHT_DATA_DIR
10
- }
11
- if (__dirname.includes('node_modules')) {
12
- return path.join(os.homedir(), '.skill-insight')
13
- }
14
- return path.resolve(__dirname, '..')
15
- }
16
-
17
- function migrateDataIfNeeded() {
18
- const newDataRoot = path.join(os.homedir(), '.skill-insight')
19
- const newDbPath = path.join(newDataRoot, 'data', 'witty_insight.db')
20
- const oldDbPath = path.resolve(__dirname, '../data/witty_insight.db')
21
-
22
- const newExists = fs.existsSync(newDbPath)
23
- const oldExists = fs.existsSync(oldDbPath)
24
-
25
- if (newExists && oldExists) {
26
- console.log('Database already exists at new location, skipping migration')
27
- return
28
- }
29
-
30
- if (newExists && !oldExists) {
31
- console.log('Using existing database at ' + newDbPath)
32
- return
33
- }
34
-
35
- if (!newExists && oldExists) {
36
- console.log('Migrating database to new location...')
37
- const newDataPath = path.join(newDataRoot, 'data')
38
- if (!fs.existsSync(newDataPath)) {
39
- fs.mkdirSync(newDataPath, { recursive: true })
40
- }
41
- fs.copyFileSync(oldDbPath, newDbPath)
42
- console.log('✓ Database migrated to ' + newDbPath)
43
-
44
- try { fs.renameSync(oldDbPath, oldDbPath + '.bak') } catch (e) {}
45
- return
46
- }
47
-
48
- console.log('Creating new database at ' + newDbPath)
49
- }
50
-
51
- function findPidOnPort(port) {
52
- const platform = process.platform
53
-
54
- try {
55
- if (platform === 'win32') {
56
- const output = execSync(`netstat -ano | findstr :${port}`, { encoding: 'utf8' })
57
- const lines = output.trim().split('\n')
58
- for (const line of lines) {
59
- const parts = line.trim().split(/\s+/)
60
- if (parts.length >= 5) {
61
- const localAddress = parts[1]
62
- const state = parts[3]
63
- const pid = parts[4]
64
- const portMatch = localAddress.match(/:(\d+)$/)
65
- if (portMatch && parseInt(portMatch[1]) === port && state === 'LISTENING') {
66
- console.log(`[Windows] Found process ${pid} listening on port ${port}`)
67
- return pid
68
- }
69
- }
70
- }
71
- console.log(`[Windows] No process found listening on port ${port}`)
72
- } else {
73
- if (fs.existsSync('/usr/bin/lsof') || fs.existsSync('/usr/sbin/lsof')) {
74
- try {
75
- const pid = execSync(`lsof -t -i:${port} -sTCP:LISTEN`, { encoding: 'utf8' })
76
- if (pid.trim()) return pid.trim()
77
- } catch (e) {}
78
- }
79
-
80
- if (fs.existsSync('/bin/ss') || fs.existsSync('/usr/bin/ss')) {
81
- try {
82
- const output = execSync(`ss -lptn "sport = :${port}"`, { encoding: 'utf8' })
83
- const match = output.match(/pid=(\d+)/)
84
- if (match) return match[1]
85
- } catch (e) {}
86
- }
87
-
88
- if (fs.existsSync('/bin/netstat') || fs.existsSync('/usr/bin/netstat')) {
89
- try {
90
- const output = execSync(`netstat -nlp 2>/dev/null | grep ":${port} "`, { encoding: 'utf8' })
91
- const match = output.match(/(\d+)\//)
92
- if (match) return match[1]
93
- } catch (e) {}
94
- }
95
-
96
- try {
97
- const output = execSync(`fuser ${port}/tcp 2>/dev/null`, { encoding: 'utf8' })
98
- if (output.trim()) return output.trim()
99
- } catch (e) {}
100
- }
101
- } catch (e) {}
102
-
103
- return null
104
- }
105
-
106
- function isPortListening(port) {
107
- return new Promise((resolve) => {
108
- const req = http.request({
109
- hostname: 'localhost',
110
- port: port,
111
- path: '/',
112
- method: 'HEAD',
113
- timeout: 1000
114
- }, (res) => {
115
- resolve(true)
116
- })
117
-
118
- req.on('error', () => {
119
- resolve(false)
120
- })
121
-
122
- req.on('timeout', () => {
123
- req.destroy()
124
- resolve(false)
125
- })
126
-
127
- req.end()
128
- })
129
- }
130
-
131
- function killProcess(pid) {
132
- const platform = process.platform
133
-
134
- try {
135
- if (platform === 'win32') {
136
- console.log(`[Windows] Attempting to kill process with PID ${pid} using taskkill...`)
137
- execSync(`taskkill /F /PID ${pid}`, { stdio: 'ignore' })
138
- console.log(`[Windows] Successfully killed process ${pid}`)
139
- return true
140
- } else {
141
- console.log(`[Unix] Attempting to kill process with PID ${pid} using kill -9...`)
142
- execSync(`kill -9 ${pid}`, { stdio: 'ignore' })
143
- console.log(`[Unix] Successfully killed process ${pid}`)
144
- return true
145
- }
146
- } catch (e) {
147
- console.error(`Failed to kill process ${pid}: ${e.message}`)
148
- return false
149
- }
150
- }
151
-
152
- function getPort(options) {
153
- if (options.port) return options.port
154
- if (process.env.PORT) return parseInt(process.env.PORT)
155
-
156
- const envPath = path.join(process.cwd(), '.env')
157
- if (fs.existsSync(envPath)) {
158
- const envContent = fs.readFileSync(envPath, 'utf8')
159
- const match = envContent.match(/^PORT=(\d+)$/m)
160
- if (match) return parseInt(match[1])
161
- }
162
-
163
- return 3000
164
- }
165
-
166
- function ensureEnvFile(packageRoot) {
167
- const root = getDataRoot()
168
- const envPath = path.join(root, '.env')
169
- const envExamplePath = path.join(path.resolve(__dirname, '..'), '.env.example')
170
-
171
- if (!fs.existsSync(envPath) && fs.existsSync(envExamplePath)) {
172
- console.log('No .env found. Initializing from .env.example...')
173
- fs.mkdirSync(path.dirname(envPath), { recursive: true })
174
- fs.copyFileSync(envExamplePath, envPath)
175
- console.log('✓ .env file created at ' + envPath)
176
- }
177
- }
178
-
179
- function ensureDataDirectory(packageRoot) {
180
- const root = getDataRoot()
181
- const dataPath = path.join(root, 'data')
182
- if (!fs.existsSync(dataPath)) {
183
- console.log('Creating data directory...')
184
- fs.mkdirSync(dataPath, { recursive: true })
185
- console.log('✓ data directory created at ' + dataPath)
186
- }
187
- }
188
-
189
- function runCommand(command, options = {}) {
190
- return new Promise((resolve, reject) => {
191
- console.log(`Running: ${command}`)
192
- const [cmd, ...args] = command.split(' ')
193
- const proc = spawn(cmd, args, {
194
- stdio: 'inherit',
195
- shell: true,
196
- ...options
197
- })
198
-
199
- proc.on('close', (code) => {
200
- if (code === 0) {
201
- resolve()
202
- } else {
203
- reject(new Error(`Command failed with code ${code}`))
204
- }
205
- })
206
- })
207
- }
208
-
209
- function sleep(ms) {
210
- return new Promise(resolve => setTimeout(resolve, ms))
211
- }
212
-
213
- function findAvailablePort(startPort = 3000, maxAttempts = 100) {
214
- for (let port = startPort; port < startPort + maxAttempts; port++) {
215
- const pid = findPidOnPort(port)
216
- if (!pid) {
217
- return port
218
- }
219
- }
220
- return startPort
221
- }
222
-
223
- module.exports = {
224
- findPidOnPort,
225
- killProcess,
226
- getPort,
227
- ensureEnvFile,
228
- ensureDataDirectory,
229
- runCommand,
230
- sleep,
231
- isPortListening,
232
- findAvailablePort,
233
- getDataRoot,
234
- migrateDataIfNeeded
235
- }
@@ -1,118 +0,0 @@
1
- #!/bin/bash
2
-
3
- # Setup script for skill-optimizer testing
4
- # This script copies skill-optimizer to .opencode/skills directory
5
-
6
- set -e
7
-
8
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
9
- PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
10
- SKILL_SOURCE="$PROJECT_ROOT/skills/skill-optimizer"
11
- SKILL_TARGET="$PROJECT_ROOT/.opencode/skills/skill-optimizer"
12
- OVERWRITE_LOCAL=false
13
-
14
- usage() {
15
- echo "Usage: $(basename "$0") [--overwrite-local]"
16
- echo ""
17
- echo " --overwrite-local Overwrite local files in target (.env and .opt/)."
18
- echo " Default: preserve existing .env and .opt/ if present."
19
- }
20
-
21
- for arg in "$@"; do
22
- case "$arg" in
23
- --overwrite-local)
24
- OVERWRITE_LOCAL=true
25
- ;;
26
- -h|--help)
27
- usage
28
- exit 0
29
- ;;
30
- *)
31
- echo "❌ Error: Unknown argument: $arg"
32
- echo ""
33
- usage
34
- exit 1
35
- ;;
36
- esac
37
- done
38
-
39
- echo "=========================================="
40
- echo " Skill Optimizer Setup Script"
41
- echo "=========================================="
42
- echo ""
43
-
44
- # Check if source exists
45
- if [ ! -d "$SKILL_SOURCE" ]; then
46
- echo "❌ Error: skill-optimizer source not found at:"
47
- echo " $SKILL_SOURCE"
48
- exit 1
49
- fi
50
-
51
- if [ ! -f "$SKILL_SOURCE/SKILL.md" ]; then
52
- echo "❌ Error: SKILL.md not found in skill-optimizer"
53
- exit 1
54
- fi
55
-
56
- # Create target directory if not exists
57
- mkdir -p "$PROJECT_ROOT/.opencode/skills"
58
-
59
- if [ -d "$SKILL_TARGET" ]; then
60
- if [ "$OVERWRITE_LOCAL" = true ]; then
61
- echo "🔄 Removing existing skill-optimizer..."
62
- rm -rf "$SKILL_TARGET"
63
- echo "📦 Copying skill-optimizer to .opencode/skills/..."
64
- cp -r "$SKILL_SOURCE" "$SKILL_TARGET"
65
- else
66
- echo "�️ Preserving existing .env and .opt/ in target (use --overwrite-local to override)"
67
- TMP_DIR="$(mktemp -d)"
68
- cleanup() {
69
- rm -rf "$TMP_DIR"
70
- }
71
- trap cleanup EXIT
72
-
73
- cp -r "$SKILL_SOURCE" "$TMP_DIR/skill-optimizer"
74
-
75
- if [ -f "$SKILL_TARGET/.env" ]; then
76
- cp "$SKILL_TARGET/.env" "$TMP_DIR/skill-optimizer/.env"
77
- fi
78
-
79
- if [ -d "$SKILL_TARGET/.opt" ]; then
80
- rm -rf "$TMP_DIR/skill-optimizer/.opt"
81
- cp -R "$SKILL_TARGET/.opt" "$TMP_DIR/skill-optimizer/.opt"
82
- fi
83
-
84
- rm -rf "$SKILL_TARGET"
85
- mv "$TMP_DIR/skill-optimizer" "$SKILL_TARGET"
86
- trap - EXIT
87
- cleanup
88
- fi
89
- else
90
- echo "📦 Copying skill-optimizer to .opencode/skills/..."
91
- cp -r "$SKILL_SOURCE" "$SKILL_TARGET"
92
- fi
93
-
94
- # Verify
95
- if [ -f "$SKILL_TARGET/SKILL.md" ]; then
96
- echo ""
97
- echo "✅ Setup complete!"
98
- echo ""
99
- echo " Source: $SKILL_SOURCE"
100
- echo " Target: $SKILL_TARGET"
101
- echo ""
102
- echo "=========================================="
103
- echo " Next Steps"
104
- echo "=========================================="
105
- echo ""
106
- echo " 1. Restart opencode to load the skill:"
107
- echo " Exit current session and run 'opencode' again"
108
- echo ""
109
- echo " 2. Test the skill:"
110
- echo " opencode run '帮我优化 /path/to/your/skill'"
111
- echo ""
112
- echo " 3. Or test interactively in opencode session:"
113
- echo " > 帮我优化这个 skill: /path/to/skill"
114
- echo ""
115
- else
116
- echo "❌ Error: Failed to copy skill-optimizer"
117
- exit 1
118
- fi
@@ -1,34 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2017",
4
- "lib": ["dom", "dom.iterable", "esnext"],
5
- "allowJs": true,
6
- "skipLibCheck": true,
7
- "strict": true,
8
- "noEmit": true,
9
- "esModuleInterop": true,
10
- "module": "esnext",
11
- "moduleResolution": "bundler",
12
- "resolveJsonModule": true,
13
- "isolatedModules": true,
14
- "jsx": "react-jsx",
15
- "incremental": true,
16
- "plugins": [
17
- {
18
- "name": "next"
19
- }
20
- ],
21
- "paths": {
22
- "@/*": ["./src/*"]
23
- }
24
- },
25
- "include": [
26
- "next-env.d.ts",
27
- "**/*.ts",
28
- "**/*.tsx",
29
- ".next/types/**/*.ts",
30
- ".next/dev/types/**/*.ts",
31
- "**/*.mts"
32
- ],
33
- "exclude": ["node_modules"]
34
- }
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,18566,(e,t,r)=>{t.exports=e.r(76562)},94690,e=>{"use strict";var t=e.i(43476),r=e.i(18566),o=e.i(71645);let u=(0,o.createContext)(void 0);function i({children:e}){let[i,l]=(0,o.useState)(null),[s,n]=(0,o.useState)(null),a=(0,r.useRouter)(),c=(0,r.usePathname)();return(0,o.useEffect)(()=>{let e=localStorage.getItem("user_id"),t=localStorage.getItem("api_key");e?(l(e),t&&n(t)):"/login"!==c&&a.push("/login")},[c,a]),(0,t.jsx)(u.Provider,{value:{user:i,apiKey:s,login:(e,t)=>{localStorage.setItem("user_id",e),l(e),t&&(localStorage.setItem("api_key",t),n(t)),a.push("/")},logout:()=>{localStorage.removeItem("user_id"),localStorage.removeItem("api_key"),l(null),n(null),a.push("/login")}},children:e})}function l(){let e=(0,o.useContext)(u);if(void 0===e)throw Error("useAuth must be used within an AuthProvider");return e}e.s(["AuthProvider",()=>i,"useAuth",()=>l])},1661,e=>{"use strict";var t=e.i(43476),r=e.i(94690);function o({children:e}){return(0,t.jsx)(r.AuthProvider,{children:e})}e.s(["Providers",()=>o])}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,94542,e=>{"use strict";var r=e.i(43476),t=e.i(94690),i=e.i(18566),n=e.i(71645);function a(){let[e,a]=(0,n.useState)(""),[l,o]=(0,n.useState)(""),{login:s}=(0,t.useAuth)(),c=(0,i.useRouter)(),d=async r=>{if(r.preventDefault(),o(""),!e.trim())return void o("请输入邮箱地址");try{let r=await fetch("/api/auth/apikey",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:e.trim()})}),t=await r.json();r.ok?(s(t.username,t.apiKey),c.push("/")):o(t.error||"登录失败,请重试")}catch(e){console.error(e),o("网络错误,请检查连接")}};return(0,r.jsx)("div",{className:"login-container",children:(0,r.jsxs)("div",{className:"login-box",children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",gap:"1.5rem",marginBottom:"2.5rem"},children:[(0,r.jsx)("div",{style:{background:"linear-gradient(135deg, #38bdf8, #818cf8)",color:"white",fontWeight:"bold",fontSize:"1.8rem",padding:"0.8rem 1.2rem",borderRadius:"0.75rem",whiteSpace:"nowrap",boxShadow:"0 10px 15px -3px rgba(56, 189, 248, 0.4), 0 4px 6px -2px rgba(56, 189, 248, 0.2)"},children:"Skill"}),(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column"},children:[(0,r.jsx)("h1",{style:{fontSize:"3rem",fontWeight:"800",color:"#f8fafc",margin:0,lineHeight:1,letterSpacing:"-0.02em",textShadow:"0 2px 4px rgba(0,0,0,0.3)"},children:"Insight"}),(0,r.jsx)("span",{style:{fontSize:"1rem",color:"#94a3b8",letterSpacing:"0.1em",textTransform:"uppercase",marginTop:"0.25rem"},children:"智能体技能评估、分析与优化"})]})]}),(0,r.jsxs)("form",{className:"login-form",children:[(0,r.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,r.jsx)("label",{className:"login-label",htmlFor:"username",children:"邮箱地址"}),(0,r.jsx)("input",{className:"login-input",id:"username",type:"email",placeholder:"your.email@example.com",value:e,onChange:e=>{a(e.target.value),o("")},style:l?{borderColor:"#ef4444"}:{}}),l&&(0,r.jsxs)("div",{style:{color:"#ef4444",fontSize:"0.875rem",marginTop:"0.5rem",padding:"0.5rem 0.75rem",background:"rgba(239, 68, 68, 0.1)",borderRadius:"0.375rem",border:"1px solid rgba(239, 68, 68, 0.3)"},children:["⚠️ ",l]})]}),(0,r.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:(0,r.jsx)("button",{className:"login-btn",type:"button",onClick:d,children:"Sign In"})})]})]})})}e.s(["default",()=>a])}]);