@vpxa/aikit 0.1.59 → 0.1.61

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 (553) hide show
  1. package/README.md +38 -3
  2. package/package.json +2 -1
  3. package/packages/aikit-client/dist/index.d.ts +146 -4
  4. package/packages/aikit-client/dist/index.js +5 -1
  5. package/packages/analyzers/dist/index.d.ts +309 -11
  6. package/packages/analyzers/dist/index.js +54 -1
  7. package/packages/chunker/dist/index.d.ts +451 -18
  8. package/packages/chunker/dist/index.js +24 -1
  9. package/packages/cli/dist/{commands/init/constants.js → constants-D3v4VDf0.js} +1 -1
  10. package/packages/cli/dist/index.js +15 -2
  11. package/packages/cli/dist/init-D0CiV9PX.js +7 -0
  12. package/packages/cli/dist/scaffold-CJwkHf-q.js +2 -0
  13. package/packages/cli/dist/{commands/init/templates.js → templates-DJ7EC5vw.js} +1 -1
  14. package/packages/cli/dist/user-HmJYNt5b.js +5 -0
  15. package/packages/core/dist/index.d.ts +357 -6
  16. package/packages/core/dist/index.js +1 -1
  17. package/packages/dashboard/dist/assets/{index-Cdke3KDK.js → index-C6D-PCp0.js} +7 -7
  18. package/packages/dashboard/dist/assets/index-C6D-PCp0.js.map +1 -0
  19. package/packages/dashboard/dist/index.html +1 -1
  20. package/packages/elicitation/dist/index.d.ts +139 -4
  21. package/packages/elicitation/dist/index.js +1 -1
  22. package/packages/embeddings/dist/index.d.ts +45 -2
  23. package/packages/embeddings/dist/index.js +1 -1
  24. package/packages/enterprise-bridge/dist/index.d.ts +275 -7
  25. package/packages/enterprise-bridge/dist/index.js +1 -1
  26. package/packages/flows/dist/index.d.ts +345 -12
  27. package/packages/flows/dist/index.js +15 -1
  28. package/packages/indexer/dist/index.d.ts +196 -6
  29. package/packages/indexer/dist/index.js +1 -1
  30. package/packages/present/dist/index.html +314 -313
  31. package/packages/server/dist/curated-manager-DX-_oJg0.js +5 -0
  32. package/packages/server/dist/index.d.ts +139 -1
  33. package/packages/server/dist/index.js +1 -1
  34. package/packages/server/dist/server-eMZ64H9b.js +1274 -0
  35. package/packages/store/dist/index.d.ts +316 -5
  36. package/packages/store/dist/index.js +90 -1
  37. package/packages/store/dist/lance-store-jdHZp-V4.js +1 -0
  38. package/packages/tools/dist/index.d.ts +2161 -61
  39. package/packages/tools/dist/index.js +117 -1
  40. package/packages/tui/dist/{App-CoMyn2kt.js → App-DobfqTPH.js} +1 -1
  41. package/packages/tui/dist/App.d.ts +1 -1
  42. package/packages/tui/dist/App.js +1 -1
  43. package/packages/tui/dist/{LogPanel-CDItCD0E.js → LogPanel-DGeptKim.js} +3 -3
  44. package/packages/tui/dist/hooks/useKBClient.d.ts +1 -1
  45. package/packages/tui/dist/{index-MXJeXmCf.d.ts → index-floZQwfo.d.ts} +2 -1
  46. package/packages/tui/dist/index.d.ts +1 -1
  47. package/packages/tui/dist/index.js +1 -1
  48. package/packages/tui/dist/panels/LogPanel.js +1 -1
  49. package/scaffold/definitions/bodies.mjs +47 -0
  50. package/scaffold/definitions/protocols.mjs +9 -0
  51. package/scaffold/definitions/tools.mjs +15 -0
  52. package/scaffold/general/agents/Debugger.agent.md +9 -0
  53. package/scaffold/general/agents/Documenter.agent.md +9 -0
  54. package/scaffold/general/agents/Frontend.agent.md +9 -0
  55. package/scaffold/general/agents/Implementer.agent.md +9 -0
  56. package/scaffold/general/agents/Orchestrator.agent.md +47 -0
  57. package/scaffold/general/agents/Planner.agent.md +9 -0
  58. package/scaffold/general/agents/Refactor.agent.md +9 -0
  59. package/scaffold/general/agents/Security.agent.md +9 -0
  60. package/scaffold/general/agents/_shared/code-agent-base.md +9 -0
  61. package/scaffold/general/skills/aikit/SKILL.md +71 -7
  62. package/packages/aikit-client/dist/direct-client.d.ts +0 -37
  63. package/packages/aikit-client/dist/direct-client.js +0 -1
  64. package/packages/aikit-client/dist/mcp-client.d.ts +0 -19
  65. package/packages/aikit-client/dist/mcp-client.js +0 -4
  66. package/packages/aikit-client/dist/parsers.d.ts +0 -35
  67. package/packages/aikit-client/dist/parsers.js +0 -2
  68. package/packages/aikit-client/dist/types.d.ts +0 -62
  69. package/packages/aikit-client/dist/types.js +0 -1
  70. package/packages/analyzers/dist/blast-radius-analyzer.d.ts +0 -19
  71. package/packages/analyzers/dist/blast-radius-analyzer.js +0 -6
  72. package/packages/analyzers/dist/dependency-analyzer.d.ts +0 -32
  73. package/packages/analyzers/dist/dependency-analyzer.js +0 -8
  74. package/packages/analyzers/dist/diagram-generator.d.ts +0 -16
  75. package/packages/analyzers/dist/diagram-generator.js +0 -2
  76. package/packages/analyzers/dist/entry-point-analyzer.d.ts +0 -40
  77. package/packages/analyzers/dist/entry-point-analyzer.js +0 -4
  78. package/packages/analyzers/dist/knowledge-producer.d.ts +0 -40
  79. package/packages/analyzers/dist/knowledge-producer.js +0 -26
  80. package/packages/analyzers/dist/pattern-analyzer.d.ts +0 -15
  81. package/packages/analyzers/dist/pattern-analyzer.js +0 -2
  82. package/packages/analyzers/dist/regex-call-graph.d.ts +0 -10
  83. package/packages/analyzers/dist/regex-call-graph.js +0 -1
  84. package/packages/analyzers/dist/structure-analyzer.d.ts +0 -19
  85. package/packages/analyzers/dist/structure-analyzer.js +0 -4
  86. package/packages/analyzers/dist/symbol-analyzer.d.ts +0 -14
  87. package/packages/analyzers/dist/symbol-analyzer.js +0 -9
  88. package/packages/analyzers/dist/ts-call-graph.d.ts +0 -29
  89. package/packages/analyzers/dist/ts-call-graph.js +0 -1
  90. package/packages/analyzers/dist/types.d.ts +0 -110
  91. package/packages/analyzers/dist/types.js +0 -1
  92. package/packages/chunker/dist/call-graph-extractor.d.ts +0 -25
  93. package/packages/chunker/dist/call-graph-extractor.js +0 -1
  94. package/packages/chunker/dist/chunker-factory.d.ts +0 -19
  95. package/packages/chunker/dist/chunker-factory.js +0 -1
  96. package/packages/chunker/dist/chunker.interface.d.ts +0 -13
  97. package/packages/chunker/dist/chunker.interface.js +0 -1
  98. package/packages/chunker/dist/code-chunker.d.ts +0 -17
  99. package/packages/chunker/dist/code-chunker.js +0 -11
  100. package/packages/chunker/dist/extractors/call-extractor.d.ts +0 -24
  101. package/packages/chunker/dist/extractors/call-extractor.js +0 -1
  102. package/packages/chunker/dist/extractors/entry-point-detector.d.ts +0 -14
  103. package/packages/chunker/dist/extractors/entry-point-detector.js +0 -1
  104. package/packages/chunker/dist/extractors/import-extractor.d.ts +0 -14
  105. package/packages/chunker/dist/extractors/import-extractor.js +0 -1
  106. package/packages/chunker/dist/extractors/pattern-detector.d.ts +0 -14
  107. package/packages/chunker/dist/extractors/pattern-detector.js +0 -1
  108. package/packages/chunker/dist/extractors/scope-resolver.d.ts +0 -26
  109. package/packages/chunker/dist/extractors/scope-resolver.js +0 -1
  110. package/packages/chunker/dist/extractors/symbol-extractor.d.ts +0 -14
  111. package/packages/chunker/dist/extractors/symbol-extractor.js +0 -3
  112. package/packages/chunker/dist/extractors/types.d.ts +0 -44
  113. package/packages/chunker/dist/extractors/types.js +0 -1
  114. package/packages/chunker/dist/generic-chunker.d.ts +0 -15
  115. package/packages/chunker/dist/generic-chunker.js +0 -5
  116. package/packages/chunker/dist/markdown-chunker.d.ts +0 -17
  117. package/packages/chunker/dist/markdown-chunker.js +0 -3
  118. package/packages/chunker/dist/wasm/languages.d.ts +0 -18
  119. package/packages/chunker/dist/wasm/languages.js +0 -1
  120. package/packages/chunker/dist/wasm/query-executor.d.ts +0 -70
  121. package/packages/chunker/dist/wasm/query-executor.js +0 -1
  122. package/packages/chunker/dist/wasm/runtime.d.ts +0 -44
  123. package/packages/chunker/dist/wasm/runtime.js +0 -1
  124. package/packages/chunker/dist/wasm/types.d.ts +0 -84
  125. package/packages/chunker/dist/wasm/types.js +0 -1
  126. package/packages/chunker/dist/wasm-chunker.d.ts +0 -23
  127. package/packages/chunker/dist/wasm-chunker.js +0 -6
  128. package/packages/cli/dist/aikit-init.d.ts +0 -59
  129. package/packages/cli/dist/aikit-init.js +0 -1
  130. package/packages/cli/dist/commands/analyze.d.ts +0 -6
  131. package/packages/cli/dist/commands/analyze.js +0 -2
  132. package/packages/cli/dist/commands/context-cmds.d.ts +0 -6
  133. package/packages/cli/dist/commands/context-cmds.js +0 -1
  134. package/packages/cli/dist/commands/environment.d.ts +0 -6
  135. package/packages/cli/dist/commands/environment.js +0 -1
  136. package/packages/cli/dist/commands/execution.d.ts +0 -6
  137. package/packages/cli/dist/commands/execution.js +0 -1
  138. package/packages/cli/dist/commands/flow.d.ts +0 -6
  139. package/packages/cli/dist/commands/flow.js +0 -1
  140. package/packages/cli/dist/commands/graph.d.ts +0 -6
  141. package/packages/cli/dist/commands/graph.js +0 -6
  142. package/packages/cli/dist/commands/init/adapters.d.ts +0 -28
  143. package/packages/cli/dist/commands/init/adapters.js +0 -1
  144. package/packages/cli/dist/commands/init/config.d.ts +0 -10
  145. package/packages/cli/dist/commands/init/config.js +0 -3
  146. package/packages/cli/dist/commands/init/constants.d.ts +0 -46
  147. package/packages/cli/dist/commands/init/curated.d.ts +0 -7
  148. package/packages/cli/dist/commands/init/curated.js +0 -1
  149. package/packages/cli/dist/commands/init/frontmatter.d.ts +0 -79
  150. package/packages/cli/dist/commands/init/frontmatter.js +0 -2
  151. package/packages/cli/dist/commands/init/index.d.ts +0 -36
  152. package/packages/cli/dist/commands/init/index.js +0 -5
  153. package/packages/cli/dist/commands/init/manifest.d.ts +0 -72
  154. package/packages/cli/dist/commands/init/manifest.js +0 -1
  155. package/packages/cli/dist/commands/init/scaffold.d.ts +0 -58
  156. package/packages/cli/dist/commands/init/scaffold.js +0 -1
  157. package/packages/cli/dist/commands/init/templates.d.ts +0 -9
  158. package/packages/cli/dist/commands/init/user.d.ts +0 -61
  159. package/packages/cli/dist/commands/init/user.js +0 -5
  160. package/packages/cli/dist/commands/knowledge.d.ts +0 -6
  161. package/packages/cli/dist/commands/knowledge.js +0 -1
  162. package/packages/cli/dist/commands/search.d.ts +0 -6
  163. package/packages/cli/dist/commands/search.js +0 -1
  164. package/packages/cli/dist/commands/system.d.ts +0 -6
  165. package/packages/cli/dist/commands/system.js +0 -4
  166. package/packages/cli/dist/commands/upgrade.d.ts +0 -6
  167. package/packages/cli/dist/commands/upgrade.js +0 -1
  168. package/packages/cli/dist/commands/workspace.d.ts +0 -6
  169. package/packages/cli/dist/commands/workspace.js +0 -1
  170. package/packages/cli/dist/context.d.ts +0 -7
  171. package/packages/cli/dist/context.js +0 -1
  172. package/packages/cli/dist/helpers.d.ts +0 -55
  173. package/packages/cli/dist/helpers.js +0 -5
  174. package/packages/cli/dist/types.d.ts +0 -9
  175. package/packages/cli/dist/types.js +0 -1
  176. package/packages/core/dist/constants.d.ts +0 -74
  177. package/packages/core/dist/constants.js +0 -1
  178. package/packages/core/dist/content-detector.d.ts +0 -13
  179. package/packages/core/dist/content-detector.js +0 -1
  180. package/packages/core/dist/errors.d.ts +0 -20
  181. package/packages/core/dist/errors.js +0 -1
  182. package/packages/core/dist/global-registry.d.ts +0 -69
  183. package/packages/core/dist/global-registry.js +0 -1
  184. package/packages/core/dist/logger.d.ts +0 -32
  185. package/packages/core/dist/logger.js +0 -1
  186. package/packages/core/dist/types.d.ts +0 -149
  187. package/packages/core/dist/types.js +0 -1
  188. package/packages/dashboard/dist/assets/index-Cdke3KDK.js.map +0 -1
  189. package/packages/elicitation/dist/build.d.ts +0 -14
  190. package/packages/elicitation/dist/build.js +0 -1
  191. package/packages/elicitation/dist/fields.d.ts +0 -32
  192. package/packages/elicitation/dist/fields.js +0 -1
  193. package/packages/elicitation/dist/normalize.d.ts +0 -15
  194. package/packages/elicitation/dist/normalize.js +0 -1
  195. package/packages/elicitation/dist/types.d.ts +0 -88
  196. package/packages/elicitation/dist/types.js +0 -1
  197. package/packages/embeddings/dist/embedder.interface.d.ts +0 -26
  198. package/packages/embeddings/dist/embedder.interface.js +0 -1
  199. package/packages/embeddings/dist/onnx-embedder.d.ts +0 -23
  200. package/packages/embeddings/dist/onnx-embedder.js +0 -1
  201. package/packages/enterprise-bridge/dist/cache.d.ts +0 -28
  202. package/packages/enterprise-bridge/dist/cache.js +0 -1
  203. package/packages/enterprise-bridge/dist/er-client.d.ts +0 -37
  204. package/packages/enterprise-bridge/dist/er-client.js +0 -1
  205. package/packages/enterprise-bridge/dist/evolution-collector.d.ts +0 -62
  206. package/packages/enterprise-bridge/dist/evolution-collector.js +0 -1
  207. package/packages/enterprise-bridge/dist/policy-store.d.ts +0 -45
  208. package/packages/enterprise-bridge/dist/policy-store.js +0 -1
  209. package/packages/enterprise-bridge/dist/push-adapter.d.ts +0 -23
  210. package/packages/enterprise-bridge/dist/push-adapter.js +0 -1
  211. package/packages/enterprise-bridge/dist/result-merger.d.ts +0 -14
  212. package/packages/enterprise-bridge/dist/result-merger.js +0 -1
  213. package/packages/enterprise-bridge/dist/types.d.ts +0 -81
  214. package/packages/enterprise-bridge/dist/types.js +0 -1
  215. package/packages/flows/dist/adapters/claude-plugin.d.ts +0 -25
  216. package/packages/flows/dist/adapters/claude-plugin.js +0 -3
  217. package/packages/flows/dist/adapters/copilot.d.ts +0 -12
  218. package/packages/flows/dist/adapters/copilot.js +0 -1
  219. package/packages/flows/dist/adapters/index.d.ts +0 -12
  220. package/packages/flows/dist/adapters/index.js +0 -1
  221. package/packages/flows/dist/adapters/native.d.ts +0 -10
  222. package/packages/flows/dist/adapters/native.js +0 -1
  223. package/packages/flows/dist/adapters/openspec.d.ts +0 -40
  224. package/packages/flows/dist/adapters/openspec.js +0 -1
  225. package/packages/flows/dist/builtins.d.ts +0 -16
  226. package/packages/flows/dist/builtins.js +0 -1
  227. package/packages/flows/dist/foundation.d.ts +0 -20
  228. package/packages/flows/dist/foundation.js +0 -11
  229. package/packages/flows/dist/git.d.ts +0 -53
  230. package/packages/flows/dist/git.js +0 -2
  231. package/packages/flows/dist/loader.d.ts +0 -13
  232. package/packages/flows/dist/loader.js +0 -2
  233. package/packages/flows/dist/registry.d.ts +0 -23
  234. package/packages/flows/dist/registry.js +0 -1
  235. package/packages/flows/dist/state-machine.d.ts +0 -23
  236. package/packages/flows/dist/state-machine.js +0 -1
  237. package/packages/flows/dist/symlinks.d.ts +0 -17
  238. package/packages/flows/dist/symlinks.js +0 -1
  239. package/packages/flows/dist/types.d.ts +0 -127
  240. package/packages/flows/dist/types.js +0 -1
  241. package/packages/indexer/dist/file-hasher.d.ts +0 -13
  242. package/packages/indexer/dist/file-hasher.js +0 -1
  243. package/packages/indexer/dist/filesystem-crawler.d.ts +0 -29
  244. package/packages/indexer/dist/filesystem-crawler.js +0 -1
  245. package/packages/indexer/dist/graph-extractor.d.ts +0 -22
  246. package/packages/indexer/dist/graph-extractor.js +0 -1
  247. package/packages/indexer/dist/hash-cache.d.ts +0 -24
  248. package/packages/indexer/dist/hash-cache.js +0 -1
  249. package/packages/indexer/dist/incremental-indexer.d.ts +0 -73
  250. package/packages/indexer/dist/incremental-indexer.js +0 -1
  251. package/packages/indexer/dist/smart-index-scheduler.d.ts +0 -47
  252. package/packages/indexer/dist/smart-index-scheduler.js +0 -1
  253. package/packages/server/dist/api.d.ts +0 -3
  254. package/packages/server/dist/api.js +0 -1
  255. package/packages/server/dist/auto-gc.d.ts +0 -30
  256. package/packages/server/dist/auto-gc.js +0 -1
  257. package/packages/server/dist/background-task.d.ts +0 -47
  258. package/packages/server/dist/background-task.js +0 -1
  259. package/packages/server/dist/completions.d.ts +0 -14
  260. package/packages/server/dist/completions.js +0 -1
  261. package/packages/server/dist/compression-interceptor.d.ts +0 -12
  262. package/packages/server/dist/compression-interceptor.js +0 -1
  263. package/packages/server/dist/config.d.ts +0 -16
  264. package/packages/server/dist/cross-workspace.d.ts +0 -43
  265. package/packages/server/dist/cross-workspace.js +0 -1
  266. package/packages/server/dist/curated-manager.d.ts +0 -92
  267. package/packages/server/dist/curated-manager.js +0 -5
  268. package/packages/server/dist/dashboard-static.d.ts +0 -27
  269. package/packages/server/dist/elicitor.d.ts +0 -18
  270. package/packages/server/dist/elicitor.js +0 -1
  271. package/packages/server/dist/idle-timer.d.ts +0 -33
  272. package/packages/server/dist/idle-timer.js +0 -1
  273. package/packages/server/dist/mcp-logging.d.ts +0 -11
  274. package/packages/server/dist/mcp-logging.js +0 -1
  275. package/packages/server/dist/memory-monitor.d.ts +0 -37
  276. package/packages/server/dist/memory-monitor.js +0 -1
  277. package/packages/server/dist/output-schemas.d.ts +0 -244
  278. package/packages/server/dist/output-schemas.js +0 -1
  279. package/packages/server/dist/prompts.d.ts +0 -13
  280. package/packages/server/dist/prompts.js +0 -13
  281. package/packages/server/dist/replay-interceptor.d.ts +0 -23
  282. package/packages/server/dist/replay-interceptor.js +0 -1
  283. package/packages/server/dist/resource-links.d.ts +0 -34
  284. package/packages/server/dist/resource-links.js +0 -1
  285. package/packages/server/dist/resources/curated-resources.d.ts +0 -13
  286. package/packages/server/dist/resources/curated-resources.js +0 -2
  287. package/packages/server/dist/resources/resource-notifier.d.ts +0 -45
  288. package/packages/server/dist/resources/resource-notifier.js +0 -1
  289. package/packages/server/dist/resources/resources.d.ts +0 -8
  290. package/packages/server/dist/resources/resources.js +0 -2
  291. package/packages/server/dist/sampling.d.ts +0 -41
  292. package/packages/server/dist/sampling.js +0 -2
  293. package/packages/server/dist/server.d.ts +0 -63
  294. package/packages/server/dist/server.js +0 -3
  295. package/packages/server/dist/structured-content-guard.d.ts +0 -28
  296. package/packages/server/dist/structured-content-guard.js +0 -1
  297. package/packages/server/dist/task-manager.d.ts +0 -40
  298. package/packages/server/dist/task-manager.js +0 -1
  299. package/packages/server/dist/tool-metadata.d.ts +0 -38
  300. package/packages/server/dist/tool-metadata.js +0 -1
  301. package/packages/server/dist/tool-prefix.d.ts +0 -12
  302. package/packages/server/dist/tool-prefix.js +0 -1
  303. package/packages/server/dist/tool-timeout.d.ts +0 -27
  304. package/packages/server/dist/tool-timeout.js +0 -1
  305. package/packages/server/dist/tools/analyze.tools.d.ts +0 -14
  306. package/packages/server/dist/tools/analyze.tools.js +0 -8
  307. package/packages/server/dist/tools/audit.tool.d.ts +0 -8
  308. package/packages/server/dist/tools/audit.tool.js +0 -1
  309. package/packages/server/dist/tools/brainstorm.tool.d.ts +0 -7
  310. package/packages/server/dist/tools/brainstorm.tool.js +0 -9
  311. package/packages/server/dist/tools/bridge.tools.d.ts +0 -34
  312. package/packages/server/dist/tools/bridge.tools.js +0 -15
  313. package/packages/server/dist/tools/config.tool.d.ts +0 -8
  314. package/packages/server/dist/tools/config.tool.js +0 -12
  315. package/packages/server/dist/tools/context.tools.d.ts +0 -15
  316. package/packages/server/dist/tools/context.tools.js +0 -10
  317. package/packages/server/dist/tools/evolution.tools.d.ts +0 -7
  318. package/packages/server/dist/tools/evolution.tools.js +0 -5
  319. package/packages/server/dist/tools/execution.tools.d.ts +0 -14
  320. package/packages/server/dist/tools/execution.tools.js +0 -4
  321. package/packages/server/dist/tools/flow.tools.d.ts +0 -7
  322. package/packages/server/dist/tools/flow.tools.js +0 -16
  323. package/packages/server/dist/tools/forge.tools.d.ts +0 -13
  324. package/packages/server/dist/tools/forge.tools.js +0 -10
  325. package/packages/server/dist/tools/forget.tool.d.ts +0 -8
  326. package/packages/server/dist/tools/forget.tool.js +0 -1
  327. package/packages/server/dist/tools/graph.tool.d.ts +0 -7
  328. package/packages/server/dist/tools/graph.tool.js +0 -29
  329. package/packages/server/dist/tools/infra.tools.d.ts +0 -10
  330. package/packages/server/dist/tools/infra.tools.js +0 -5
  331. package/packages/server/dist/tools/list.tool.d.ts +0 -7
  332. package/packages/server/dist/tools/list.tool.js +0 -2
  333. package/packages/server/dist/tools/lookup.tool.d.ts +0 -7
  334. package/packages/server/dist/tools/lookup.tool.js +0 -3
  335. package/packages/server/dist/tools/manipulation.tools.d.ts +0 -10
  336. package/packages/server/dist/tools/manipulation.tools.js +0 -4
  337. package/packages/server/dist/tools/onboard.tool.d.ts +0 -12
  338. package/packages/server/dist/tools/onboard.tool.js +0 -2
  339. package/packages/server/dist/tools/persistence.tools.d.ts +0 -10
  340. package/packages/server/dist/tools/persistence.tools.js +0 -5
  341. package/packages/server/dist/tools/policy.tools.d.ts +0 -7
  342. package/packages/server/dist/tools/policy.tools.js +0 -3
  343. package/packages/server/dist/tools/present/browser.d.ts +0 -4
  344. package/packages/server/dist/tools/present/browser.js +0 -93
  345. package/packages/server/dist/tools/present/helpers.d.ts +0 -19
  346. package/packages/server/dist/tools/present/helpers.js +0 -16
  347. package/packages/server/dist/tools/present/html.d.ts +0 -18
  348. package/packages/server/dist/tools/present/html.js +0 -5
  349. package/packages/server/dist/tools/present/index.d.ts +0 -2
  350. package/packages/server/dist/tools/present/index.js +0 -1
  351. package/packages/server/dist/tools/present/markdown.d.ts +0 -32
  352. package/packages/server/dist/tools/present/markdown.js +0 -11
  353. package/packages/server/dist/tools/present/templates.d.ts +0 -14
  354. package/packages/server/dist/tools/present/templates.js +0 -472
  355. package/packages/server/dist/tools/present/tool.d.ts +0 -27
  356. package/packages/server/dist/tools/present/tool.js +0 -39
  357. package/packages/server/dist/tools/present-blocks.d.ts +0 -46
  358. package/packages/server/dist/tools/present-blocks.js +0 -27
  359. package/packages/server/dist/tools/present-charts.d.ts +0 -31
  360. package/packages/server/dist/tools/present-charts.js +0 -34
  361. package/packages/server/dist/tools/present-theme.d.ts +0 -14
  362. package/packages/server/dist/tools/present-theme.js +0 -396
  363. package/packages/server/dist/tools/present-utils.d.ts +0 -11
  364. package/packages/server/dist/tools/present-utils.js +0 -1
  365. package/packages/server/dist/tools/present.tool.d.ts +0 -2
  366. package/packages/server/dist/tools/present.tool.js +0 -1
  367. package/packages/server/dist/tools/produce.tool.d.ts +0 -7
  368. package/packages/server/dist/tools/produce.tool.js +0 -4
  369. package/packages/server/dist/tools/read.tool.d.ts +0 -7
  370. package/packages/server/dist/tools/read.tool.js +0 -2
  371. package/packages/server/dist/tools/reindex.tool.d.ts +0 -11
  372. package/packages/server/dist/tools/reindex.tool.js +0 -9
  373. package/packages/server/dist/tools/remember.tool.d.ts +0 -9
  374. package/packages/server/dist/tools/remember.tool.js +0 -4
  375. package/packages/server/dist/tools/replay.tool.d.ts +0 -6
  376. package/packages/server/dist/tools/replay.tool.js +0 -3
  377. package/packages/server/dist/tools/restore.tool.d.ts +0 -6
  378. package/packages/server/dist/tools/restore.tool.js +0 -3
  379. package/packages/server/dist/tools/search.tool.d.ts +0 -11
  380. package/packages/server/dist/tools/search.tool.js +0 -10
  381. package/packages/server/dist/tools/status.tool.d.ts +0 -28
  382. package/packages/server/dist/tools/status.tool.js +0 -3
  383. package/packages/server/dist/tools/update.tool.d.ts +0 -8
  384. package/packages/server/dist/tools/update.tool.js +0 -1
  385. package/packages/server/dist/tools/utility.tools.d.ts +0 -15
  386. package/packages/server/dist/tools/utility.tools.js +0 -13
  387. package/packages/server/dist/version-check.d.ts +0 -32
  388. package/packages/store/dist/graph-store.interface.d.ts +0 -159
  389. package/packages/store/dist/graph-store.interface.js +0 -1
  390. package/packages/store/dist/lance-store.d.ts +0 -46
  391. package/packages/store/dist/lance-store.js +0 -1
  392. package/packages/store/dist/sqlite-graph-store.d.ts +0 -57
  393. package/packages/store/dist/sqlite-graph-store.js +0 -90
  394. package/packages/store/dist/store-factory.d.ts +0 -12
  395. package/packages/store/dist/store-factory.js +0 -1
  396. package/packages/store/dist/store.interface.d.ts +0 -54
  397. package/packages/store/dist/store.interface.js +0 -1
  398. package/packages/tools/dist/audit.d.ts +0 -65
  399. package/packages/tools/dist/audit.js +0 -6
  400. package/packages/tools/dist/batch.d.ts +0 -23
  401. package/packages/tools/dist/batch.js +0 -1
  402. package/packages/tools/dist/changelog.d.ts +0 -36
  403. package/packages/tools/dist/changelog.js +0 -2
  404. package/packages/tools/dist/check.d.ts +0 -48
  405. package/packages/tools/dist/check.js +0 -2
  406. package/packages/tools/dist/checkpoint.d.ts +0 -19
  407. package/packages/tools/dist/checkpoint.js +0 -1
  408. package/packages/tools/dist/codemod.d.ts +0 -39
  409. package/packages/tools/dist/codemod.js +0 -2
  410. package/packages/tools/dist/compact.d.ts +0 -47
  411. package/packages/tools/dist/compact.js +0 -3
  412. package/packages/tools/dist/compress-output.d.ts +0 -38
  413. package/packages/tools/dist/compress-output.js +0 -1
  414. package/packages/tools/dist/compression/delta-cache.d.ts +0 -29
  415. package/packages/tools/dist/compression/delta-cache.js +0 -1
  416. package/packages/tools/dist/compression/engine.d.ts +0 -34
  417. package/packages/tools/dist/compression/engine.js +0 -4
  418. package/packages/tools/dist/compression/litm.d.ts +0 -20
  419. package/packages/tools/dist/compression/litm.js +0 -1
  420. package/packages/tools/dist/compression/mmr.d.ts +0 -24
  421. package/packages/tools/dist/compression/mmr.js +0 -1
  422. package/packages/tools/dist/compression/rules/docker.d.ts +0 -11
  423. package/packages/tools/dist/compression/rules/docker.js +0 -3
  424. package/packages/tools/dist/compression/rules/generic.d.ts +0 -11
  425. package/packages/tools/dist/compression/rules/generic.js +0 -3
  426. package/packages/tools/dist/compression/rules/git.d.ts +0 -11
  427. package/packages/tools/dist/compression/rules/git.js +0 -3
  428. package/packages/tools/dist/compression/rules/index.d.ts +0 -14
  429. package/packages/tools/dist/compression/rules/index.js +0 -1
  430. package/packages/tools/dist/compression/rules/kubectl.d.ts +0 -11
  431. package/packages/tools/dist/compression/rules/kubectl.js +0 -3
  432. package/packages/tools/dist/compression/rules/lint.d.ts +0 -11
  433. package/packages/tools/dist/compression/rules/lint.js +0 -3
  434. package/packages/tools/dist/compression/rules/npm.d.ts +0 -11
  435. package/packages/tools/dist/compression/rules/npm.js +0 -3
  436. package/packages/tools/dist/compression/rules/test-runner.d.ts +0 -11
  437. package/packages/tools/dist/compression/rules/test-runner.js +0 -3
  438. package/packages/tools/dist/compression/scoring.d.ts +0 -26
  439. package/packages/tools/dist/compression/scoring.js +0 -1
  440. package/packages/tools/dist/compression/types.d.ts +0 -61
  441. package/packages/tools/dist/compression/types.js +0 -1
  442. package/packages/tools/dist/config-extractor.d.ts +0 -9
  443. package/packages/tools/dist/config-extractor.js +0 -7
  444. package/packages/tools/dist/data-transform.d.ts +0 -12
  445. package/packages/tools/dist/data-transform.js +0 -1
  446. package/packages/tools/dist/dead-symbols.d.ts +0 -28
  447. package/packages/tools/dist/dead-symbols.js +0 -2
  448. package/packages/tools/dist/delegate.d.ts +0 -36
  449. package/packages/tools/dist/delegate.js +0 -1
  450. package/packages/tools/dist/diagram-builder.d.ts +0 -9
  451. package/packages/tools/dist/diagram-builder.js +0 -9
  452. package/packages/tools/dist/diff-parse.d.ts +0 -28
  453. package/packages/tools/dist/diff-parse.js +0 -3
  454. package/packages/tools/dist/digest.d.ts +0 -55
  455. package/packages/tools/dist/digest.js +0 -6
  456. package/packages/tools/dist/dogfood-log.d.ts +0 -49
  457. package/packages/tools/dist/dogfood-log.js +0 -2
  458. package/packages/tools/dist/encode.d.ts +0 -16
  459. package/packages/tools/dist/encode.js +0 -1
  460. package/packages/tools/dist/env-info.d.ts +0 -30
  461. package/packages/tools/dist/env-info.js +0 -1
  462. package/packages/tools/dist/eval.d.ts +0 -15
  463. package/packages/tools/dist/eval.js +0 -2
  464. package/packages/tools/dist/evidence-map.d.ts +0 -92
  465. package/packages/tools/dist/evidence-map.js +0 -2
  466. package/packages/tools/dist/file-cache.d.ts +0 -41
  467. package/packages/tools/dist/file-cache.js +0 -3
  468. package/packages/tools/dist/file-summary.d.ts +0 -52
  469. package/packages/tools/dist/file-summary.js +0 -2
  470. package/packages/tools/dist/file-walk.d.ts +0 -6
  471. package/packages/tools/dist/file-walk.js +0 -1
  472. package/packages/tools/dist/find-examples.d.ts +0 -29
  473. package/packages/tools/dist/find-examples.js +0 -3
  474. package/packages/tools/dist/find.d.ts +0 -49
  475. package/packages/tools/dist/find.js +0 -1
  476. package/packages/tools/dist/forge-classify.d.ts +0 -44
  477. package/packages/tools/dist/forge-classify.js +0 -2
  478. package/packages/tools/dist/forge-ground.d.ts +0 -61
  479. package/packages/tools/dist/forge-ground.js +0 -1
  480. package/packages/tools/dist/git-context.d.ts +0 -25
  481. package/packages/tools/dist/git-context.js +0 -3
  482. package/packages/tools/dist/graph-query.d.ts +0 -98
  483. package/packages/tools/dist/graph-query.js +0 -1
  484. package/packages/tools/dist/guide.d.ts +0 -25
  485. package/packages/tools/dist/guide.js +0 -1
  486. package/packages/tools/dist/health.d.ts +0 -16
  487. package/packages/tools/dist/health.js +0 -2
  488. package/packages/tools/dist/http-request.d.ts +0 -25
  489. package/packages/tools/dist/http-request.js +0 -1
  490. package/packages/tools/dist/lane.d.ts +0 -41
  491. package/packages/tools/dist/lane.js +0 -6
  492. package/packages/tools/dist/measure.d.ts +0 -42
  493. package/packages/tools/dist/measure.js +0 -2
  494. package/packages/tools/dist/onboard-utils.d.ts +0 -12
  495. package/packages/tools/dist/onboard-utils.js +0 -1
  496. package/packages/tools/dist/onboard.d.ts +0 -50
  497. package/packages/tools/dist/onboard.js +0 -18
  498. package/packages/tools/dist/parse-output.d.ts +0 -84
  499. package/packages/tools/dist/parse-output.js +0 -2
  500. package/packages/tools/dist/path-resolver.d.ts +0 -14
  501. package/packages/tools/dist/path-resolver.js +0 -1
  502. package/packages/tools/dist/process-manager.d.ts +0 -20
  503. package/packages/tools/dist/process-manager.js +0 -1
  504. package/packages/tools/dist/queue.d.ts +0 -40
  505. package/packages/tools/dist/queue.js +0 -1
  506. package/packages/tools/dist/regex-test.d.ts +0 -33
  507. package/packages/tools/dist/regex-test.js +0 -1
  508. package/packages/tools/dist/regex-utils.d.ts +0 -8
  509. package/packages/tools/dist/regex-utils.js +0 -1
  510. package/packages/tools/dist/rename.d.ts +0 -31
  511. package/packages/tools/dist/rename.js +0 -2
  512. package/packages/tools/dist/replay.d.ts +0 -59
  513. package/packages/tools/dist/replay.js +0 -4
  514. package/packages/tools/dist/response-envelope.d.ts +0 -43
  515. package/packages/tools/dist/response-envelope.js +0 -1
  516. package/packages/tools/dist/restore-points.d.ts +0 -22
  517. package/packages/tools/dist/restore-points.js +0 -1
  518. package/packages/tools/dist/schema-validate.d.ts +0 -25
  519. package/packages/tools/dist/schema-validate.js +0 -1
  520. package/packages/tools/dist/scope-map.d.ts +0 -51
  521. package/packages/tools/dist/scope-map.js +0 -1
  522. package/packages/tools/dist/snippet.d.ts +0 -35
  523. package/packages/tools/dist/snippet.js +0 -1
  524. package/packages/tools/dist/stash.d.ts +0 -14
  525. package/packages/tools/dist/stash.js +0 -1
  526. package/packages/tools/dist/stratum-card.d.ts +0 -30
  527. package/packages/tools/dist/stratum-card.js +0 -4
  528. package/packages/tools/dist/symbol.d.ts +0 -45
  529. package/packages/tools/dist/symbol.js +0 -3
  530. package/packages/tools/dist/synthesis-engine.d.ts +0 -13
  531. package/packages/tools/dist/synthesis-engine.js +0 -6
  532. package/packages/tools/dist/test-run.d.ts +0 -28
  533. package/packages/tools/dist/test-run.js +0 -2
  534. package/packages/tools/dist/text-utils.d.ts +0 -24
  535. package/packages/tools/dist/text-utils.js +0 -2
  536. package/packages/tools/dist/time-utils.d.ts +0 -20
  537. package/packages/tools/dist/time-utils.js +0 -1
  538. package/packages/tools/dist/trace.d.ts +0 -43
  539. package/packages/tools/dist/trace.js +0 -2
  540. package/packages/tools/dist/truncation.d.ts +0 -66
  541. package/packages/tools/dist/truncation.js +0 -11
  542. package/packages/tools/dist/watch.d.ts +0 -32
  543. package/packages/tools/dist/watch.js +0 -1
  544. package/packages/tools/dist/web-fetch.d.ts +0 -47
  545. package/packages/tools/dist/web-fetch.js +0 -8
  546. package/packages/tools/dist/web-search.d.ts +0 -25
  547. package/packages/tools/dist/web-search.js +0 -1
  548. package/packages/tools/dist/workset.d.ts +0 -47
  549. package/packages/tools/dist/workset.js +0 -1
  550. package/scaffold/__tests__/copilot-inline-shared-protocols.test.mjs +0 -39
  551. /package/packages/server/dist/{config.js → config-C5IU9Lau.js} +0 -0
  552. /package/packages/server/dist/{dashboard-static.js → dashboard-static-BfIe0Si1.js} +0 -0
  553. /package/packages/server/dist/{version-check.js → version-check-D4j0Pykd.js} +0 -0
@@ -1,79 +0,0 @@
1
- //#region packages/cli/src/commands/init/frontmatter.d.ts
2
- /**
3
- * Init module — YAML frontmatter parsing and merging for agent files.
4
- *
5
- * Agent `.agent.md` files use YAML frontmatter with fields like `tools`, `model`,
6
- * `description`, and `argument-hint`. When updating these files, we need to
7
- * merge new tools while preserving user customizations (model choice, extra tools).
8
- *
9
- * This is a lightweight parser — no full YAML dependency. It handles the specific
10
- * frontmatter format used by Copilot agent files.
11
- */
12
- interface ParsedFrontmatter {
13
- /** Raw key-value pairs from YAML frontmatter. */
14
- fields: Record<string, string>;
15
- /** Parsed metadata sub-fields nested under `metadata:`. */
16
- metadata: Record<string, string>;
17
- /** Parsed tools array (from YAML inline array syntax). */
18
- tools: string[];
19
- /** Body content after the closing `---`. */
20
- body: string;
21
- }
22
- /**
23
- * Structured metadata for SKILL.md files — HeraSpec-inspired.
24
- * All fields beyond name/description are optional for backward compatibility.
25
- */
26
- interface SkillFrontmatter {
27
- name: string;
28
- description: string;
29
- category?: 'cross-cutting' | 'domain' | 'project';
30
- domain?: string;
31
- applicability?: 'always' | 'on-demand';
32
- inputs?: string[];
33
- outputs?: string[];
34
- requires?: string[];
35
- relatedSkills?: string[];
36
- tools?: string[];
37
- model?: string;
38
- 'argument-hint'?: string;
39
- }
40
- /**
41
- * Parse a markdown file with YAML frontmatter.
42
- *
43
- * Expects format:
44
- * ```
45
- * ---
46
- * key: value
47
- * tools: [tool1, tool2]
48
- * ---
49
- * body content
50
- * ```
51
- */
52
- declare function parseFrontmatter(content: string): ParsedFrontmatter;
53
- /**
54
- * Parse SKILL.md frontmatter into a typed SkillFrontmatter object.
55
- * Uses parseFrontmatter() internally, then maps array fields.
56
- */
57
- declare function parseSkillFrontmatter(content: string): SkillFrontmatter;
58
- /**
59
- * Parse a YAML inline array: `[tool1, tool2, tool3]` → string[]
60
- */
61
- declare function parseToolsArray(value: string): string[];
62
- /**
63
- * Serialize tools array back to YAML inline syntax.
64
- */
65
- declare function serializeToolsArray(tools: string[]): string;
66
- /**
67
- * Merge two parsed frontmatter files (source = new upstream, deployed = user's current).
68
- *
69
- * Merge rules:
70
- * - `tools`: UNION of both arrays (add new, keep user-added). Order: source first, then user extras.
71
- * - `model`: KEEP deployed (user's choice).
72
- * - `description`, `argument-hint`: TAKE from source (upstream updates).
73
- * - Body: TAKE from source (structural changes come from upstream).
74
- *
75
- * Returns the merged file content as a string.
76
- */
77
- declare function mergeFrontmatter(sourceContent: string, deployedContent: string): string;
78
- //#endregion
79
- export { ParsedFrontmatter, SkillFrontmatter, mergeFrontmatter, parseFrontmatter, parseSkillFrontmatter, parseToolsArray, serializeToolsArray };
@@ -1,2 +0,0 @@
1
- const e=[`inputs`,`outputs`,`requires`,`relatedSkills`],t=[`model`],n=[`category`,`domain`,`applicability`],r=new Set([`__proto__`,`constructor`,`prototype`]);function i(e,t){return e.metadata[t]??e.fields[t]}function a(e,t){let n=i(e,t);return n?c(n):[]}function o(e){let t=Object.create(null),n=Object.create(null),i=[],a=e,o=e.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);if(!o)return{fields:t,metadata:n,tools:i,body:a};let s=o[1];a=o[2];let l=!1;for(let e of s.split(/\r?\n/)){if(l){if(e.trim()===``)continue;let t=e.match(/^\s{2,}(\S+?):\s*(.*)$/);if(t){let[,e,i]=t;if(r.has(e))continue;n[e]=i;continue}l=!1}let a=e.match(/^(\S+?):\s*(.*)$/);if(!a)continue;let[,o,s]=a;if(o===`metadata`&&s.trim()===``){l=!0;continue}r.has(o)||(t[o]=s,o===`tools`&&(i=c(s)))}return{fields:t,metadata:n,tools:i,body:a}}function s(t){let n=o(t),r={name:n.fields.name??``,description:n.fields.description??``},s=i(n,`category`);s&&(r.category=s);let c=i(n,`domain`);c&&(r.domain=c);let l=i(n,`applicability`);l&&(r.applicability=l),n.fields.model&&(r.model=n.fields.model),n.fields[`argument-hint`]&&(r[`argument-hint`]=n.fields[`argument-hint`]),n.tools.length>0&&(r.tools=n.tools);for(let t of e){let e=a(n,t);e.length>0&&(r[t]=e)}return r}function c(e){let t=e.trim();if(!t.startsWith(`[`)||!t.endsWith(`]`))return[];let n=t.slice(1,-1).trim();return n?n.split(`,`).map(e=>e.trim()).filter(Boolean):[]}function l(e){return`[${e.join(`, `)}]`}function u(r,s){let c=o(r),u=o(s),d={...c.fields},f={...c.metadata};for(let[e,t]of Object.entries(u.metadata))e in f||(f[e]=t);for(let e of t)u.fields[e]&&(d[e]=u.fields[e]);for(let e of n){let t=i(u,e);t&&(f[e]=t)}for(let t of[...n,...e])delete d[t];delete d.metadata;let p=c.tools,m=u.tools,h=new Set(p),g=m.filter(e=>!h.has(e)),_=[...p,...g];_.length>0&&(d.tools=l(_));for(let t of e){let e=a(c,t),n=a(u,t),r=new Set(e),i=n.filter(e=>!r.has(e)),o=[...e,...i];o.length>0?f[t]=l(o):delete f[t]}let v=[`---`],y=[`name`,`description`,`argument-hint`,`tools`,`model`],b=[`category`,`domain`,`applicability`,`inputs`,`outputs`,`requires`,`relatedSkills`],x=new Set;for(let e of y)e in d&&(v.push(`${e}: ${d[e]}`),x.add(e));for(let[e,t]of Object.entries(d))x.has(e)||v.push(`${e}: ${t}`);let S=[],C=new Set;for(let e of b){let t=f[e];t&&(S.push(` ${e}: ${t}`),C.add(e))}for(let[e,t]of Object.entries(f))!C.has(e)&&t&&S.push(` ${e}: ${t}`);return S.length>0&&(v.push(`metadata:`),v.push(...S)),v.push(`---`),`${v.join(`
2
- `)}\n${c.body}`}export{u as mergeFrontmatter,o as parseFrontmatter,s as parseSkillFrontmatter,c as parseToolsArray,l as serializeToolsArray};
@@ -1,36 +0,0 @@
1
- //#region packages/cli/src/commands/init/index.d.ts
2
- /**
3
- * `aikit init` — scaffold AI Kit in the current directory.
4
- *
5
- * Creates aikit.config.json, .gitignore entry, IDE-specific config,
6
- * agent instruction files, skills, scaffold agents/prompts,
7
- * and curated knowledge directories.
8
- *
9
- * This is the main orchestrator that wires together the focused modules:
10
- * config.ts — aikit.config.json + .gitignore
11
- * adapters.ts — IDE detection + adapter interface
12
- * scaffold.ts — copy scaffold agents/prompts + skills from package
13
- * curated.ts — curated knowledge directories
14
- * templates.ts — copilot-instructions.md + AGENTS.md content
15
- */
16
- declare function initProject(options: {
17
- force: boolean;
18
- }): Promise<void>;
19
- /**
20
- * Smart init — scaffold-only if user-level detected, full workspace otherwise.
21
- */
22
- declare function initSmart(options: {
23
- force: boolean;
24
- }): Promise<void>;
25
- /**
26
- * Scaffold-only init for workspaces when user-level mode is active.
27
- * Creates instruction files, scaffold agents/prompts, and curated dirs
28
- * but does NOT create aikit.config.json, mcp.json, or local skills.
29
- */
30
- declare function initScaffoldOnly(options: {
31
- force: boolean;
32
- }): Promise<void>;
33
- /** Generate a JSON guide report comparing installed vs source files. */
34
- declare function guideProject(): Promise<void>;
35
- //#endregion
36
- export { guideProject, initProject, initScaffoldOnly, initSmart };
@@ -1,5 +0,0 @@
1
- import{FLOW_DIRS as e,SKILL_NAMES as t}from"./constants.js";import{detectIde as n,getAdapter as r}from"./adapters.js";import{ensureGitignore as i,getServerName as a,writeKbConfig as o}from"./config.js";import{createCuratedDirs as s}from"./curated.js";import{guideFlows as c,guideScaffold as l,guideSkills as u,smartCopyClaudeCommands as d,smartCopyFlows as f,smartCopyScaffold as p,smartCopySkills as m}from"./scaffold.js";import{readFileSync as h}from"node:fs";import{dirname as g,resolve as _}from"node:path";import{fileURLToPath as v}from"node:url";import{isUserInstalled as y}from"../../../../core/dist/index.js";async function b(c){let l=process.cwd();if(!o(l,c.force))return;i(l);let u=a(),b=r(n(l));b.writeMcpConfig(l,u),b.writeInstructions(l,u),b.writeAgentsMd(l,u);let x=_(g(v(import.meta.url)),`..`,`..`,`..`,`..`,`..`),S=JSON.parse(h(_(x,`package.json`),`utf-8`)).version;m(l,x,[...t],S,c.force),f(l,x,[...e],S,c.force),p(l,x,b.scaffoldDir,S,c.force),d(l,x,S,c.force),s(l),console.log(`
2
- AI Kit initialized! Next steps:`),console.log(` aikit reindex Index your codebase`),console.log(` aikit search Search indexed content`),console.log(` aikit serve Start MCP server for IDE integration`),y()&&console.log(`
3
- Note: User-level AI Kit is also installed. This workspace uses its own local data store.`)}async function x(e){y()?await S(e):await b(e)}async function S(t){let o=process.cwd(),c=a(),l=r(n(o));l.writeInstructions(o,c),l.writeAgentsMd(o,c);let u=_(g(v(import.meta.url)),`..`,`..`,`..`,`..`,`..`),m=JSON.parse(h(_(u,`package.json`),`utf-8`)).version;p(o,u,l.scaffoldDir,m,t.force),d(o,u,m,t.force),f(o,u,[...e],m,t.force),s(o),i(o),console.log(`
4
- Workspace scaffolded for user-level AI Kit! Files added:`),console.log(` Instruction files (AGENTS.md, copilot-instructions.md, etc.)`),console.log(` .ai/curated/ directories`),console.log(` .github/agents/ & .github/prompts/`),console.log(`
5
- The user-level AI Kit server will auto-index this workspace when opened in your IDE.`)}async function C(){let i=process.cwd(),a=r(n(i)),o=_(g(v(import.meta.url)),`..`,`..`,`..`,`..`,`..`),s=[...u(i,o,[...t]),...c(i,o,[...e]),...l(i,o,a.scaffoldDir)],d={summary:{total:s.length,new:s.filter(e=>e.status===`new`).length,outdated:s.filter(e=>e.status===`outdated`).length,current:s.filter(e=>e.status===`current`).length},files:s};console.log(JSON.stringify(d,null,2))}export{C as guideProject,b as initProject,S as initScaffoldOnly,x as initSmart};
@@ -1,72 +0,0 @@
1
- //#region packages/cli/src/commands/init/manifest.d.ts
2
- /**
3
- * Init module — scaffold manifest for smart updates.
4
- *
5
- * Tracks which scaffold files have been deployed and their source hashes,
6
- * enabling incremental updates that preserve user customizations while
7
- * applying new features from upstream.
8
- *
9
- * Manifest file: `.aikit-scaffold.json` stored alongside the scaffold root
10
- * (e.g. `~/.copilot/.aikit-scaffold.json` for user-level, `.github/.aikit-scaffold.json` for workspace).
11
- */
12
- /**
13
- * How a file should be updated when the source changes:
14
- *
15
- * - `overwrite`: Replace entirely (shared protocols, templates, skills).
16
- * - `merge-frontmatter`: Merge YAML frontmatter tools (union), keep user model,
17
- * replace body. Used for agent .md files that users may customize.
18
- * - `regenerate`: Re-run the template generator (copilot-instructions.md, CLAUDE.md).
19
- */
20
- type UpdateStrategy = 'overwrite' | 'merge-frontmatter' | 'regenerate';
21
- interface ManifestEntry {
22
- /** SHA-256 hash (16-char hex) of the source content when deployed. */
23
- sourceHash: string;
24
- /** Update strategy for this file. */
25
- strategy: UpdateStrategy;
26
- /** ISO timestamp of last deployment. */
27
- updatedAt: string;
28
- }
29
- interface ScaffoldManifest {
30
- /** Package version that generated this manifest. */
31
- version: string;
32
- /** ISO timestamp of manifest creation/update. */
33
- generatedAt: string;
34
- /** File entries keyed by relative path from scaffold root. */
35
- files: Record<string, ManifestEntry>;
36
- }
37
- /** Compute a 16-char hex SHA-256 hash of content (consistent with file-hasher). */
38
- declare function hashContent(content: string): string;
39
- /** Read and parse a manifest file; returns null if missing or invalid. */
40
- declare function readManifest(manifestPath: string): ScaffoldManifest | null;
41
- /** Write a manifest to disk. */
42
- declare function writeManifest(manifestPath: string, manifest: ScaffoldManifest): void;
43
- /**
44
- * Determine the update strategy for a file based on its relative path.
45
- *
46
- * Strategy rules:
47
- * - *.agent.md (not under _shared/) → merge-frontmatter
48
- * - SKILL.md (not under _shared/ or templates/) → merge-frontmatter
49
- * - _shared/*.md, templates/*.md → overwrite
50
- * - *.prompt.md, README.md → overwrite
51
- * - Everything else → overwrite
52
- */
53
- declare function getUpdateStrategy(relativePath: string): UpdateStrategy;
54
- /**
55
- * Check whether a deployed file needs updating.
56
- *
57
- * Returns:
58
- * - `'new'`: File not in manifest (first deployment).
59
- * - `'outdated'`: Source hash changed since last deployment.
60
- * - `'current'`: Source hash matches — no update needed.
61
- */
62
- declare function getFileStatus(manifest: ScaffoldManifest | null, relativePath: string, sourceContent: string): 'new' | 'outdated' | 'current';
63
- /**
64
- * Record a file deployment in the manifest.
65
- */
66
- declare function recordDeployment(manifest: ScaffoldManifest, relativePath: string, sourceContent: string, strategy?: UpdateStrategy): void;
67
- /**
68
- * Create a fresh manifest for a new deployment.
69
- */
70
- declare function createManifest(version: string): ScaffoldManifest;
71
- //#endregion
72
- export { ManifestEntry, ScaffoldManifest, UpdateStrategy, createManifest, getFileStatus, getUpdateStrategy, hashContent, readManifest, recordDeployment, writeManifest };
@@ -1 +0,0 @@
1
- import{existsSync as e,readFileSync as t,writeFileSync as n}from"node:fs";import{createHash as r}from"node:crypto";function i(e){return r(`sha256`).update(e).digest(`hex`).slice(0,16)}function a(n){if(!e(n))return null;try{let e=t(n,`utf-8`),r=JSON.parse(e);return!r.version||!r.files?null:r}catch{return null}}function o(e,t){n(e,`${JSON.stringify(t,null,2)}\n`,`utf-8`)}function s(e){return e.endsWith(`.agent.md`)&&!e.startsWith(`_shared/`)&&!e.startsWith(`agents/_shared/`)&&!e.startsWith(`templates/`)||e.endsWith(`SKILL.md`)&&!e.startsWith(`_shared/`)&&!e.startsWith(`templates/`)?`merge-frontmatter`:`overwrite`}function c(e,t,n){if(!e)return`new`;let r=e.files[t];return r?r.sourceHash===i(n)?`current`:`outdated`:`new`}function l(e,t,n,r){e.files[t]={sourceHash:i(n),strategy:r??s(t),updatedAt:new Date().toISOString()}}function u(e){return{version:e,generatedAt:new Date().toISOString(),files:{}}}export{u as createManifest,c as getFileStatus,s as getUpdateStrategy,i as hashContent,a as readManifest,l as recordDeployment,o as writeManifest};
@@ -1,58 +0,0 @@
1
- import { ScaffoldManifest } from "./manifest.js";
2
-
3
- //#region packages/cli/src/commands/init/scaffold.d.ts
4
- interface GuideFileEntry {
5
- status: 'new' | 'outdated' | 'current';
6
- relativePath: string;
7
- sourcePath: string;
8
- content?: string;
9
- }
10
- /** Recursively copy a directory. When force=false, skip files that already exist. */
11
- declare function copyDirectoryRecursive(srcDir: string, destDir: string, logPrefix?: string, force?: boolean): void;
12
- /**
13
- * Manifest-aware recursive copy with per-file merge strategies.
14
- *
15
- * For each file:
16
- * - `new`: Deploy and record in manifest.
17
- * - `outdated` + `overwrite` strategy: Replace entirely.
18
- * - `outdated` + `merge-frontmatter`: Merge tools (union), keep user model, update body.
19
- * - `current`: Skip (source unchanged).
20
- * - `force=true`: Always overwrite (resets manifest entry).
21
- */
22
- declare function smartCopyDirectory(srcDir: string, destDir: string, manifest: ScaffoldManifest, logPrefix?: string, force?: boolean): void;
23
- /**
24
- * Smart-copy scaffold files with manifest tracking.
25
- * Reads/creates manifest at `<destRoot>/.aikit-scaffold.json`.
26
- */
27
- declare function smartCopyScaffold(cwd: string, pkgRoot: string, ide: string, version: string, force?: boolean): void;
28
- /**
29
- * Smart-copy skill files with manifest tracking.
30
- */
31
- declare function smartCopySkills(cwd: string, pkgRoot: string, skillNames: string[], version: string, force?: boolean): void;
32
- /**
33
- * Smart-copy a directory with a standalone manifest (for user-level scaffold).
34
- * Manifest stored at `<destRoot>/.aikit-scaffold.json`.
35
- */
36
- declare function smartCopySubdir(srcDir: string, destRoot: string, subdir: string, version: string, force?: boolean): void;
37
- /** Copy scaffold files for a given IDE into the workspace .github/ directory. */
38
- declare function copyScaffold(cwd: string, pkgRoot: string, ide: string, force?: boolean): void;
39
- /** Copy skill directories from the package into .github/skills/. */
40
- declare function copySkills(cwd: string, pkgRoot: string, skillNames: string[], force?: boolean): void;
41
- /** Generate guide report for scaffold files — compare source vs destination. */
42
- declare function guideScaffold(cwd: string, pkgRoot: string, ide: string): GuideFileEntry[];
43
- /** Generate guide report for skill files — compare source vs destination. */
44
- declare function guideSkills(cwd: string, pkgRoot: string, skillNames: string[]): GuideFileEntry[];
45
- /**
46
- * Smart-copy built-in flow step files with manifest tracking.
47
- * Copies from scaffold/flows/<flowName>/steps/ into .github/flows/<flowName>/steps/.
48
- */
49
- declare function smartCopyFlows(cwd: string, pkgRoot: string, flowDirs: string[], version: string, force?: boolean): void;
50
- /** Generate guide report for flow step files. */
51
- declare function guideFlows(cwd: string, pkgRoot: string, flowDirs: string[]): GuideFileEntry[];
52
- /**
53
- * Copy Claude Code slash commands from scaffold/claude-code/commands/ to .claude/commands/.
54
- * Uses the same manifest-based tracking as other scaffold copy functions.
55
- */
56
- declare function smartCopyClaudeCommands(cwd: string, pkgRoot: string, version: string, force?: boolean): void;
57
- //#endregion
58
- export { GuideFileEntry, copyDirectoryRecursive, copyScaffold, copySkills, guideFlows, guideScaffold, guideSkills, smartCopyClaudeCommands, smartCopyDirectory, smartCopyFlows, smartCopyScaffold, smartCopySkills, smartCopySubdir };
@@ -1 +0,0 @@
1
- import{mergeFrontmatter as e}from"./frontmatter.js";import{createManifest as t,getFileStatus as n,getUpdateStrategy as r,readManifest as i,recordDeployment as a,writeManifest as o}from"./manifest.js";import{copyFileSync as s,existsSync as c,mkdirSync as l,readFileSync as u,readdirSync as d,rmSync as f,statSync as p,unlinkSync as m,writeFileSync as h}from"node:fs";import{dirname as g,resolve as _}from"node:path";import{createHash as v}from"node:crypto";function y(e,t,n=``,r=!1){l(t,{recursive:!0});for(let i of d(e)){let a=_(e,i),o=_(t,i),l=n?`${n}/${i}`:i;p(a).isDirectory()?y(a,o,l,r):(r||!c(o))&&s(a,o)}}function b(t,i,o,s=``,f=!1){if(c(t)){l(i,{recursive:!0});for(let m of d(t)){let d=_(t,m),v=_(i,m),y=s?`${s}/${m}`:m;if(p(d).isDirectory()){b(d,v,o,y,f);continue}let x=u(d,`utf-8`);if(f){l(g(v),{recursive:!0}),h(v,x,`utf-8`),a(o,y,x);continue}let S=n(o,y,x);if(S!==`current`){if(S===`new`&&!c(v)){l(g(v),{recursive:!0}),h(v,x,`utf-8`),a(o,y,x);continue}if(S===`new`&&c(v)){a(o,y,x);continue}r(y)===`merge-frontmatter`&&c(v)?h(v,e(x,u(v,`utf-8`)),`utf-8`):(l(g(v),{recursive:!0}),h(v,x,`utf-8`)),a(o,y,x)}}}}function x(e,t,n,r){let i=new Set;if(c(e)){let t=(e,n)=>{for(let a of d(e)){let o=_(e,a),s=n?`${n}/${a}`:a;p(o).isDirectory()?t(o,s):i.add(`${r}/${s}`)}};t(e,``)}let a=[];for(let e of Object.keys(n.files)){if(!e.startsWith(`${r}/`)||i.has(e))continue;let o=_(t,e.slice(r.length+1));c(o)&&(m(o),a.push(e)),delete n.files[e]}return a}function S(e,n,r,a,s=!1){let l=_(n,`scaffold`,r),u=_(e,`.github`),d=_(u,`.aikit-scaffold.json`),f=i(d)??t(a);f.version=a;for(let e of[`agents`,`prompts`]){let t=_(l,e);c(t)&&b(t,_(u,e),f,e,s)}if(s)for(let e of[`agents`,`prompts`]){let t=x(_(l,e),_(u,e),f,e);for(let e of t)console.log(` Removed orphaned scaffold file: ${e}`)}o(d,f)}function C(e,n,r,a,s=!1){let l=_(e,`.github`),u=_(l,`.aikit-scaffold.json`),d=i(u)??t(a);d.version=a;for(let e of r){let t=_(n,`scaffold`,`general`,`skills`,e);c(t)&&b(t,_(l,`skills`,e),d,`skills/${e}`,s)}o(u,d)}function w(e,n,r,a,s=!1){let l=_(e,r);if(!c(l))return;let u=_(n,r),d=_(n,`.aikit-scaffold.json`),f=i(d)??t(a);if(f.version=a,b(l,u,f,r,s),s){let e=x(l,u,f,r);for(let t of e)console.log(` Removed orphaned scaffold file: ${t}`)}o(d,f)}function T(e,t,n,r){if(c(e))for(let i of d(e)){let a=_(e,i),o=n?`${n}/${i}`:i;if(p(a).isDirectory())T(a,_(t,i),o,r);else{let e=_(t,i),n=u(a,`utf-8`);c(e)?n===u(e,`utf-8`)?r.push({status:`current`,relativePath:o,sourcePath:a}):r.push({status:`outdated`,relativePath:o,sourcePath:a,content:n}):r.push({status:`new`,relativePath:o,sourcePath:a,content:n})}}}function E(e,t,n,r=!1){let i=_(t,`scaffold`,n);for(let t of[`agents`,`prompts`]){let n=_(i,t),a=_(e,`.github`,t);c(n)&&y(n,a,``,r)}}function D(e,t,n,r=!1){for(let i of n){let n=_(t,`scaffold`,`general`,`skills`,i);c(n)&&y(n,_(e,`.github`,`skills`,i),`skills/${i}`,r)}}function O(e,t,n){let r=[],i=_(t,`scaffold`,n);for(let t of[`agents`,`prompts`])T(_(i,t),_(e,`.github`,t),t,r);return r}function k(e,t,n){let r=[];for(let i of n){let n=_(t,`scaffold`,`general`,`skills`,i);c(n)&&T(n,_(e,`.github`,`skills`,i),`skills/${i}`,r)}return r}function A(e,n,r,a,s=!1){let l=_(e,`.github`),u=_(l,`.aikit-scaffold.json`),d=i(u)??t(a);d.version=a;for(let e of r){let t=_(n,`scaffold`,`flows`,e,`steps`);if(!c(t))continue;let r=_(l,`flows`,e,`skills`);c(r)&&f(r,{recursive:!0,force:!0}),b(t,_(l,`flows`,e,`steps`),d,`flows/${e}/steps`,s)}o(u,d)}function j(e,t,n){let r=[];for(let i of n){let n=_(t,`scaffold`,`flows`,i,`steps`);c(n)&&T(n,_(e,`.github`,`flows`,i,`steps`),`flows/${i}/steps`,r)}return r}function M(e,t,n,r=!1){let i=_(t,`scaffold`,`claude-code`,`commands`);if(!c(i))return;let a=_(e,`.claude`),o=_(a,`.aikit-scaffold.json`),s;s=c(o)?JSON.parse(u(o,`utf-8`)):{version:n,generatedAt:new Date().toISOString(),files:{}},s.version=n,s.generatedAt=new Date().toISOString(),l(_(a,`commands`),{recursive:!0});let f=d(i);for(let e of f){let t=_(i,e);if(!p(t).isFile())continue;let n=`commands/${e}`,o=_(a,n),l=u(t,`utf-8`),d=v(`sha256`).update(l).digest(`hex`).slice(0,16),f=s.files[n];if(f&&!r&&c(o)){let e=u(o,`utf-8`);if(v(`sha256`).update(e).digest(`hex`).slice(0,16)!==f.sourceHash)continue}h(o,l,`utf-8`),s.files[n]={sourceHash:d,strategy:`overwrite`,updatedAt:new Date().toISOString()}}if(r){let e=x(i,_(a,`commands`),s,`commands`);for(let t of e)console.log(` Removed orphaned scaffold file: ${t}`)}h(o,JSON.stringify(s,null,2),`utf-8`)}export{y as copyDirectoryRecursive,E as copyScaffold,D as copySkills,j as guideFlows,O as guideScaffold,k as guideSkills,M as smartCopyClaudeCommands,b as smartCopyDirectory,A as smartCopyFlows,S as smartCopyScaffold,C as smartCopySkills,w as smartCopySubdir};
@@ -1,9 +0,0 @@
1
- //#region packages/cli/src/commands/init/templates.d.ts
2
- /**
3
- * Init module — instruction and AGENTS.md template builders.
4
- * Content for copilot-instructions.md and AGENTS.md.
5
- */
6
- declare function buildCopilotInstructions(projectName: string, serverName: string): string;
7
- declare function buildAgentsMd(projectName: string, serverName: string): string;
8
- //#endregion
9
- export { buildAgentsMd, buildCopilotInstructions };
@@ -1,61 +0,0 @@
1
- //#region packages/cli/src/commands/init/user.d.ts
2
- /**
3
- * `aikit init --user` — configure AI Kit as a user-level MCP server.
4
- *
5
- * Auto-detects all installed IDEs, writes user-level mcp.json for each,
6
- * installs skills to a user-level location, and creates the shared data store.
7
- */
8
- /** Represents a user-level IDE config location. */
9
- interface UserLevelIdePath {
10
- ide: string;
11
- configDir: string;
12
- mcpConfigPath: string;
13
- /**
14
- * User-level scaffold root for agents/prompts/skills.
15
- * VS Code: ~/.copilot, Claude Code: ~/.claude, Cursor: ~/.cursor, Windsurf: ~/.windsurf.
16
- * Null if the IDE has no user-level scaffold support.
17
- */
18
- globalScaffoldRoot: string | null;
19
- /**
20
- * User-level instruction file root (may differ from scaffold root).
21
- * VS Code uses ~/.copilot/instructions/ for .instructions.md files.
22
- * When null, falls back to globalScaffoldRoot.
23
- */
24
- instructionsRoot: string | null;
25
- }
26
- /**
27
- * Detect all installed IDEs by checking if their user-level config directory exists.
28
- */
29
- declare function detectInstalledIdes(): UserLevelIdePath[];
30
- /**
31
- * Write or merge the AI Kit server entry into a user-level mcp.json.
32
- * Preserves all existing non-AI Kit entries. Backs up existing file before writing.
33
- */
34
- declare function writeUserLevelMcpConfig(idePath: UserLevelIdePath, serverName: string, force?: boolean): void;
35
- /**
36
- * Merge aikit-related settings into a VS Code-family IDE's settings.json.
37
- * Preserves all existing settings. Only writes keys defined in VSCODE_SETTINGS.
38
- */
39
- declare function writeVscodeSettings(idePath: UserLevelIdePath, force?: boolean): void;
40
- /**
41
- * Install agents, prompts, skills, and instruction files to each detected IDE's
42
- * global scaffold root.
43
- *
44
- * Each IDE has its own global discovery path:
45
- * - VS Code / VSCodium: ~/.copilot/ (agents/, prompts/, skills/, instructions/)
46
- * - Claude Code: ~/.claude/ (CLAUDE.md, agents/)
47
- * - Cursor: ~/.cursor/ (rules/aikit.mdc, agents/, prompts/, skills/)
48
- * - Windsurf: ~/.windsurf/ (rules/aikit.md, agents/, prompts/, skills/)
49
- *
50
- * Multiple IDEs may share the same root (e.g. VS Code + VSCodium both use ~/.copilot/).
51
- * We deduplicate scaffold files but generate IDE-specific instruction files.
52
- */
53
- declare function installGlobalScaffold(pkgRoot: string, ides: UserLevelIdePath[], serverName: string, version: string, force?: boolean): void;
54
- /**
55
- * Main orchestrator for `aikit init --user`.
56
- */
57
- declare function initUser(options: {
58
- force: boolean;
59
- }): Promise<void>;
60
- //#endregion
61
- export { UserLevelIdePath, detectInstalledIdes, initUser, installGlobalScaffold, writeUserLevelMcpConfig, writeVscodeSettings };
@@ -1,5 +0,0 @@
1
- import{FLOW_DIRS as e,MCP_SERVER_ENTRY as t,SERVER_NAME as n,SKILL_NAMES as r,VSCODE_SETTINGS as i}from"./constants.js";import{buildAgentsMd as a,buildCopilotInstructions as o}from"./templates.js";import{smartCopySubdir as s}from"./scaffold.js";import{existsSync as c,mkdirSync as l,readFileSync as u,rmSync as d,unlinkSync as f,writeFileSync as p}from"node:fs";import{dirname as m,resolve as h}from"node:path";import{fileURLToPath as g}from"node:url";import{getGlobalDataDir as _,saveRegistry as v}from"../../../../core/dist/index.js";import{homedir as y}from"node:os";function b(){let e=y(),t=process.platform,n=[],r=h(e,`.copilot`),i=h(r,`instructions`),a=h(e,`.claude`),o=h(e,`.cursor`),s=h(e,`.windsurf`);if(t===`win32`){let t=process.env.APPDATA??h(e,`AppData`,`Roaming`);n.push({ide:`VS Code`,configDir:h(t,`Code`,`User`),mcpConfigPath:h(t,`Code`,`User`,`mcp.json`),globalScaffoldRoot:r,instructionsRoot:i},{ide:`VS Code Insiders`,configDir:h(t,`Code - Insiders`,`User`),mcpConfigPath:h(t,`Code - Insiders`,`User`,`mcp.json`),globalScaffoldRoot:r,instructionsRoot:i},{ide:`VSCodium`,configDir:h(t,`VSCodium`,`User`),mcpConfigPath:h(t,`VSCodium`,`User`,`mcp.json`),globalScaffoldRoot:r,instructionsRoot:i},{ide:`Cursor`,configDir:h(t,`Cursor`,`User`),mcpConfigPath:h(t,`Cursor`,`User`,`mcp.json`),globalScaffoldRoot:o,instructionsRoot:null},{ide:`Cursor Nightly`,configDir:h(t,`Cursor Nightly`,`User`),mcpConfigPath:h(t,`Cursor Nightly`,`User`,`mcp.json`),globalScaffoldRoot:o,instructionsRoot:null},{ide:`Windsurf`,configDir:h(t,`Windsurf`,`User`),mcpConfigPath:h(t,`Windsurf`,`User`,`mcp.json`),globalScaffoldRoot:s,instructionsRoot:null})}else if(t===`darwin`){let t=h(e,`Library`,`Application Support`);n.push({ide:`VS Code`,configDir:h(t,`Code`,`User`),mcpConfigPath:h(t,`Code`,`User`,`mcp.json`),globalScaffoldRoot:r,instructionsRoot:i},{ide:`VS Code Insiders`,configDir:h(t,`Code - Insiders`,`User`),mcpConfigPath:h(t,`Code - Insiders`,`User`,`mcp.json`),globalScaffoldRoot:r,instructionsRoot:i},{ide:`VSCodium`,configDir:h(t,`VSCodium`,`User`),mcpConfigPath:h(t,`VSCodium`,`User`,`mcp.json`),globalScaffoldRoot:r,instructionsRoot:i},{ide:`Cursor`,configDir:h(t,`Cursor`,`User`),mcpConfigPath:h(t,`Cursor`,`User`,`mcp.json`),globalScaffoldRoot:o,instructionsRoot:null},{ide:`Cursor Nightly`,configDir:h(t,`Cursor Nightly`,`User`),mcpConfigPath:h(t,`Cursor Nightly`,`User`,`mcp.json`),globalScaffoldRoot:o,instructionsRoot:null},{ide:`Windsurf`,configDir:h(t,`Windsurf`,`User`),mcpConfigPath:h(t,`Windsurf`,`User`,`mcp.json`),globalScaffoldRoot:s,instructionsRoot:null})}else{let t=process.env.XDG_CONFIG_HOME??h(e,`.config`);n.push({ide:`VS Code`,configDir:h(t,`Code`,`User`),mcpConfigPath:h(t,`Code`,`User`,`mcp.json`),globalScaffoldRoot:r,instructionsRoot:i},{ide:`VS Code Insiders`,configDir:h(t,`Code - Insiders`,`User`),mcpConfigPath:h(t,`Code - Insiders`,`User`,`mcp.json`),globalScaffoldRoot:r,instructionsRoot:i},{ide:`VSCodium`,configDir:h(t,`VSCodium`,`User`),mcpConfigPath:h(t,`VSCodium`,`User`,`mcp.json`),globalScaffoldRoot:r,instructionsRoot:i},{ide:`Cursor`,configDir:h(t,`Cursor`,`User`),mcpConfigPath:h(t,`Cursor`,`User`,`mcp.json`),globalScaffoldRoot:o,instructionsRoot:null},{ide:`Cursor Nightly`,configDir:h(t,`Cursor Nightly`,`User`),mcpConfigPath:h(t,`Cursor Nightly`,`User`,`mcp.json`),globalScaffoldRoot:o,instructionsRoot:null},{ide:`Windsurf`,configDir:h(t,`Windsurf`,`User`),mcpConfigPath:h(t,`Windsurf`,`User`,`mcp.json`),globalScaffoldRoot:s,instructionsRoot:null})}return n.push({ide:`Claude Code`,configDir:h(e,`.claude`),mcpConfigPath:h(e,`.claude`,`mcp.json`),globalScaffoldRoot:a,instructionsRoot:null}),n.push({ide:`Copilot CLI`,configDir:r,mcpConfigPath:h(r,`mcp-config.json`),globalScaffoldRoot:null,instructionsRoot:null}),n.filter(e=>c(e.configDir))}function x(e,n,r=!1){let{mcpConfigPath:i,configDir:a}=e,o={...t},s={};if(c(i)){try{let e=u(i,`utf-8`);s=JSON.parse(e)}catch{let e=`${i}.bak`;p(e,u(i,`utf-8`),`utf-8`),console.log(` Backed up invalid ${i} to ${e}`),s={}}if((s.servers??s.mcpServers??{})[n]&&!r){console.log(` ${e.ide}: ${n} already configured (use --force to update)`);return}}let d=new Set([`VS Code`,`VS Code Insiders`,`VSCodium`,`Windsurf`]).has(e.ide)?`servers`:`mcpServers`,f=s[d]??{};e.ide===`Copilot CLI`?f[n]={...o,tools:[`*`]}:f[n]=o,s[d]=f,l(a,{recursive:!0}),p(i,`${JSON.stringify(s,null,2)}\n`,`utf-8`),console.log(` ${e.ide}: configured ${n} in ${i}`)}const S=new Set([`VS Code`,`VS Code Insiders`,`VSCodium`]);function C(e,t=!1){if(!S.has(e.ide))return;let n=h(e.configDir,`settings.json`),r={};if(c(n))try{let e=u(n,`utf-8`);r=JSON.parse(e)}catch{console.log(` ${e.ide}: skipped settings.json (invalid JSON)`);return}let a=!1;for(let[e,n]of Object.entries(i))if(typeof n==`object`&&n){let t=typeof r[e]==`object`&&r[e]!==null?r[e]:{},i={...t,...n};JSON.stringify(i)!==JSON.stringify(t)&&(r[e]=i,a=!0)}else (t||!(e in r))&&(r[e]=n,a=!0);a&&(p(n,`${JSON.stringify(r,null,2)}\n`,`utf-8`),console.log(` ${e.ide}: updated settings.json`))}function w(t,n,i,u,f=!1){let m=new Set;for(let e of n)e.globalScaffoldRoot&&m.add(e.globalScaffoldRoot);if(m.size===0){console.log(` No IDEs with global scaffold support detected.`);return}let g=h(t,`scaffold`,`general`);for(let n of m){s(g,n,`agents`,u,f),s(g,n,`prompts`,u,f);let i=0;for(let e of r)c(h(g,`skills`,e))&&(s(g,n,`skills/${e}`,u,f),i++);for(let r of e){let e=h(t,`scaffold`,`flows`,r);if(!c(h(e,`steps`)))continue;let i=h(n,`flows`,r);l(i,{recursive:!0});let a=h(i,`skills`);c(a)&&(d(a,{recursive:!0,force:!0}),console.log(` ${n}: migrated ${r} flow to steps/ layout`)),s(e,i,`steps`,u,f)}console.log(` ${n}: scaffold updated (${i} skills)`)}let _=new Set,v=o(`aikit`,i),b=a(`aikit`,i);for(let e of n){if(!e.globalScaffoldRoot)continue;let t=e.globalScaffoldRoot;if(e.ide===`Claude Code`){let e=h(t,`CLAUDE.md`);p(e,`${v}\n---\n\n${b}`,`utf-8`),_.add(e)}else if(e.ide===`VS Code`||e.ide===`VS Code Insiders`||e.ide===`VSCodium`){let n=e.instructionsRoot??t;l(n,{recursive:!0});let r=h(n,`copilot-instructions.md`);_.has(r)||(p(r,`---\napplyTo: "**"\n---\n\n${v}\n---\n\n${b}`,`utf-8`),_.add(r));let i=h(y(),`.github`),a=h(i,`copilot-instructions.md`);_.has(a)||(l(i,{recursive:!0}),p(a,`${v}\n---\n\n${b}`,`utf-8`),_.add(a)),s(g,e.configDir,`prompts`,u,f)}else if(e.ide===`Cursor`||e.ide===`Cursor Nightly`){let e=h(t,`rules`);l(e,{recursive:!0});let n=h(e,`aikit.mdc`);_.has(n)||(p(n,`${v}\n---\n\n${b}`,`utf-8`),_.add(n))}else if(e.ide===`Windsurf`){let e=h(t,`rules`);l(e,{recursive:!0});let n=h(e,`aikit.md`);_.has(n)||(p(n,`${v}\n---\n\n${b}`,`utf-8`),_.add(n))}}_.size>0&&console.log(` Instruction files: ${[..._].join(`, `)}`)}function T(e){let t=[];for(let n of e){if(!n.globalScaffoldRoot)continue;let e=n.globalScaffoldRoot;if(n.ide===`VS Code`||n.ide===`VS Code Insiders`||n.ide===`VSCodium`){let r=n.instructionsRoot??e;t.push(h(r,`kb.instructions.md`)),t.push(h(r,`aikit.instructions.md`))}else n.ide===`Cursor`||n.ide===`Cursor Nightly`?t.push(h(e,`rules`,`kb.mdc`)):n.ide===`Windsurf`&&t.push(h(e,`rules`,`kb.md`))}for(let e of t)c(e)&&(f(e),console.log(` Removed legacy file: ${e}`))}async function E(e){let t=n,r=h(m(g(import.meta.url)),`..`,`..`,`..`,`..`,`..`,`package.json`),i=JSON.parse(u(r,`utf-8`)).version;console.log(`Initializing @vpxa/aikit v${i}...\n`);let a=_();l(a,{recursive:!0}),console.log(` Global data store: ${a}`),v({version:1,workspaces:{}}),console.log(` Created registry.json`);let o=b();if(o.length===0)console.log(`
2
- No supported IDEs detected. You can manually add the MCP server config.`);else{console.log(`\n Detected ${o.length} IDE(s):`);for(let n of o)x(n,t,e.force),C(n,e.force)}let s=h(m(g(import.meta.url)),`..`,`..`,`..`,`..`,`..`);console.log(`
3
- Installing scaffold files:`),w(s,o,t,i,e.force),T(o),console.log(`
4
- User-level AI Kit installation complete!`),console.log(`
5
- Next steps:`),console.log(` 1. Open any workspace in your IDE`),console.log(` 2. The AI Kit server will auto-start and index the workspace`),console.log(` 3. Agents, prompts, skills & instructions are available globally`),console.log(` 4. No per-workspace init needed — just open a project and start coding`)}export{b as detectInstalledIdes,E as initUser,w as installGlobalScaffold,x as writeUserLevelMcpConfig,C as writeVscodeSettings};
@@ -1,6 +0,0 @@
1
- import { Command } from "../types.js";
2
-
3
- //#region packages/cli/src/commands/knowledge.d.ts
4
- declare const knowledgeCommands: Command[];
5
- //#endregion
6
- export { knowledgeCommands };
@@ -1 +0,0 @@
1
- import{ctx as e}from"../context.js";import{extractNumFlag as t,extractStrFlag as n,readStdin as r,splitCsv as i}from"../helpers.js";import{compact as a}from"../../../tools/dist/index.js";const o=[{name:`remember`,description:`Store curated knowledge`,usage:`aikit remember <title> --category <cat> [--tags tag1,tag2]`,run:async t=>{let a=n(t,`--category`,``).trim(),o=i(n(t,`--tags`,``)),s=t.shift()?.trim()??``,c=await r(),l=c.trim().length>0?c:t.join(` `).trim();(!s||!a||!l.trim())&&(console.error(`Usage: aikit remember <title> --category <cat> [--tags tag1,tag2]`),process.exit(1));let{curated:u}=await e(),d=await u.remember(s,l,a,o);console.log(`Stored curated entry`),console.log(` Path: ${d.path}`),console.log(` Category: ${a}`),o.length>0&&console.log(` Tags: ${o.join(`, `)}`)}},{name:`forget`,description:`Remove a curated entry`,usage:`aikit forget <path> --reason <reason>`,run:async t=>{let r=n(t,`--reason`,``).trim(),i=t.shift()?.trim()??``;(!i||!r)&&(console.error(`Usage: aikit forget <path> --reason <reason>`),process.exit(1));let{curated:a}=await e(),o=await a.forget(i,r);console.log(`Removed curated entry: ${o.path}`)}},{name:`read`,description:`Read a curated entry`,usage:`aikit read <path>`,run:async t=>{let n=t.shift()?.trim()??``;n||(console.error(`Usage: aikit read <path>`),process.exit(1));let{curated:r}=await e(),i=await r.read(n);console.log(i.title),console.log(`─`.repeat(60)),console.log(`Path: ${i.path}`),console.log(`Category: ${i.category}`),console.log(`Version: ${i.version}`),console.log(`Tags: ${i.tags.length>0?i.tags.join(`, `):`None`}`),console.log(``),console.log(i.content)}},{name:`list`,description:`List curated entries`,usage:`aikit list [--category <cat>] [--tag <tag>]`,run:async t=>{let r=n(t,`--category`,``).trim()||void 0,i=n(t,`--tag`,``).trim()||void 0,{curated:a}=await e(),o=await a.list({category:r,tag:i});if(o.length===0){console.log(`No curated entries found.`);return}console.log(`Curated entries (${o.length})`),console.log(`─`.repeat(60));for(let e of o){console.log(e.path),console.log(` ${e.title}`),console.log(` Category: ${e.category} | Version: ${e.version}`),console.log(` Tags: ${e.tags.length>0?e.tags.join(`, `):`None`}`);let t=e.contentPreview.replace(/\s+/g,` `).trim();t&&console.log(` Preview: ${t}`),console.log(``)}}},{name:`update`,description:`Update a curated entry`,usage:`aikit update <path> --reason <reason>`,run:async t=>{let i=n(t,`--reason`,``).trim(),a=t.shift()?.trim()??``,o=await r();(!a||!i||!o.trim())&&(console.error(`Usage: aikit update <path> --reason <reason>`),process.exit(1));let{curated:s}=await e(),c=await s.update(a,o,i);console.log(`Updated curated entry`),console.log(` Path: ${c.path}`),console.log(` Version: ${c.version}`)}},{name:`compact`,description:`Compress text for context`,usage:`aikit compact <query> [--path <file>] [--max-chars N] [--segmentation paragraph|sentence|line]`,run:async i=>{let o=t(i,`--max-chars`,3e3),s=n(i,`--path`,``).trim()||void 0,c=n(i,`--segmentation`,`paragraph`),l=i.join(` `).trim(),u=s?void 0:await r();(!l||!s&&!u?.trim())&&(console.error(`Usage: aikit compact <query> --path <file> OR cat file | aikit compact <query>`),process.exit(1));let{embedder:d}=await e(),f=await a(d,{text:u,path:s,query:l,maxChars:o,segmentation:c});console.log(`Compressed ${f.originalChars} chars to ${f.compressedChars} chars`),console.log(`Ratio: ${(f.ratio*100).toFixed(1)}% | Segments: ${f.segmentsKept}/${f.segmentsTotal}`),console.log(``),console.log(f.text)}}];export{o as knowledgeCommands};
@@ -1,6 +0,0 @@
1
- import { Command } from "../types.js";
2
-
3
- //#region packages/cli/src/commands/search.d.ts
4
- declare const searchCommands: Command[];
5
- //#endregion
6
- export { searchCommands };
@@ -1 +0,0 @@
1
- import{ctx as e}from"../context.js";import{extractNumFlag as t,extractStrFlag as n,formatFocusRanges as r,printDeadSymbolsResult as i,printExamplesResult as a,printSymbolInfo as o,printTraceResult as s,rrf as c}from"../helpers.js";import{find as l,findDeadSymbols as u,findExamples as d,scopeMap as f,symbol as p,trace as m}from"../../../tools/dist/index.js";const h=[{name:`search`,description:`Search the AI Kit index`,usage:`aikit search <query> [--limit N] [--mode hybrid|semantic|keyword] [--graph-hops 0-3]`,run:async r=>{let i=t(r,`--limit`,5),a=n(r,`--mode`,`hybrid`),o=t(r,`--graph-hops`,0),s=r.join(` `).trim();s||(console.error(`Usage: aikit search <query>`),process.exit(1));let{embedder:l,store:u,graphStore:d}=await e(),f=await l.embedQuery(s),p;if(a===`keyword`)p=await u.ftsSearch(s,{limit:i});else if(a===`semantic`)p=await u.search(f,{limit:i});else{let[e,t]=await Promise.all([u.search(f,{limit:i*2}),u.ftsSearch(s,{limit:i*2}).catch(()=>[])]);p=c(e,t).slice(0,i)}if(p.length===0){console.log(`No results found.`);return}for(let{record:e,score:t}of p){console.log(`\n${`─`.repeat(60)}`),console.log(`[${(t*100).toFixed(1)}%] ${e.sourcePath}:${e.startLine}-${e.endLine}`),console.log(` Type: ${e.contentType} | Origin: ${e.origin}`),e.tags.length>0&&console.log(` Tags: ${e.tags.join(`, `)}`),console.log(``);let n=e.content.length>500?`${e.content.slice(0,500)}...`:e.content;console.log(n)}if(console.log(`\n${`─`.repeat(60)}`),console.log(`${p.length} result(s) found.`),o>0&&p.length>0)try{let{graphAugmentSearch:e}=await import(`../../../tools/dist/index.js`),t=(await e(d,p.map(e=>({recordId:e.record.id,score:e.score,sourcePath:e.record.sourcePath})),{hops:o,maxPerHit:5})).filter(e=>e.graphContext.nodes.length>0);if(t.length>0){console.log(`\nGraph context (${o} hop${o>1?`s`:``}):\n`);for(let e of t){console.log(` ${e.sourcePath}:`);for(let t of e.graphContext.nodes.slice(0,5))console.log(` → ${t.name} (${t.type})`);for(let t of e.graphContext.edges.slice(0,5))console.log(` → ${t.fromId} --[${t.type}]--> ${t.toId}`)}}}catch(e){console.error(`[graph] augmentation failed: ${e.message}`)}}},{name:`find`,description:`Run federated search across indexed content and files`,usage:`aikit find [query] [--glob <pattern>] [--pattern <regex>] [--limit N]`,run:async r=>{let i=t(r,`--limit`,10),a=n(r,`--glob`,``).trim()||void 0,o=n(r,`--pattern`,``).trim()||void 0,s=r.join(` `).trim()||void 0;!s&&!a&&!o&&(console.error(`Usage: aikit find [query] [--glob <pattern>] [--pattern <regex>] [--limit N]`),process.exit(1));let{embedder:c,store:u}=await e(),d=await l(c,u,{query:s,glob:a,pattern:o,limit:i});if(d.results.length===0){console.log(`No matches found.`);return}console.log(`Strategies: ${d.strategies.join(`, `)}`),console.log(`Results: ${d.results.length} shown (${d.totalFound} total)`);for(let e of d.results){let t=e.lineRange?`:${e.lineRange.start}-${e.lineRange.end}`:``;console.log(`\n[${e.source}] ${e.path}${t}`),console.log(` Score: ${(e.score*100).toFixed(1)}%`),e.preview&&console.log(` ${e.preview.replace(/\s+/g,` `).trim()}`)}}},{name:`scope-map`,description:`Generate a reading plan for a task`,usage:`aikit scope-map <task> [--max-files N]`,run:async n=>{let i=t(n,`--max-files`,15),a=n.join(` `).trim();a||(console.error(`Usage: aikit scope-map <task> [--max-files N]`),process.exit(1));let{embedder:o,store:s}=await e(),c=await f(o,s,{task:a,maxFiles:i});console.log(`Task: ${c.task}`),console.log(`Files: ${c.files.length}`),console.log(`Estimated tokens: ${c.totalEstimatedTokens}`),console.log(``),console.log(`Reading order:`);for(let e of c.readingOrder)console.log(` ${e}`);for(let[e,t]of c.files.entries())console.log(`\n${e+1}. ${t.path}`),console.log(` Relevance: ${(t.relevance*100).toFixed(1)}% | Tokens: ${t.estimatedTokens}`),console.log(` Why: ${t.reason}`),t.focusRanges.length>0&&console.log(` Focus: ${r(t.focusRanges)}`)}},{name:`symbol`,description:`Resolve a symbol definition, imports, and references`,usage:`aikit symbol <name> [--limit N]`,run:async n=>{let r=t(n,`--limit`,20),i=n.join(` `).trim();i||(console.error(`Usage: aikit symbol <name> [--limit N]`),process.exit(1));let{embedder:a,store:s}=await e();o(await p(a,s,{name:i,limit:r}))}},{name:`trace`,description:`Trace forward/backward flow for a symbol or file location`,usage:`aikit trace <start> [--direction forward|backward|both] [--max-depth N]`,run:async r=>{let i=n(r,`--direction`,`both`).trim()||`both`,a=t(r,`--max-depth`,3),o=r.join(` `).trim();(!o||![`forward`,`backward`,`both`].includes(i))&&(console.error(`Usage: aikit trace <start> [--direction forward|backward|both] [--max-depth N]`),process.exit(1));let{embedder:c,store:l}=await e();s(await m(c,l,{start:o,direction:i,maxDepth:a}))}},{name:`examples`,description:`Find real code examples of a symbol or pattern`,usage:`aikit examples <query> [--limit N] [--content-type type]`,run:async r=>{let i=t(r,`--limit`,5),o=n(r,`--content-type`,``).trim()||void 0,s=r.join(` `).trim();s||(console.error(`Usage: aikit examples <query> [--limit N] [--content-type type]`),process.exit(1));let{embedder:c,store:l}=await e();a(await d(c,l,{query:s,limit:i,contentType:o}))}},{name:`dead-symbols`,description:`Find exported symbols that appear to be unused`,usage:`aikit dead-symbols [--limit N]`,run:async n=>{let r=t(n,`--limit`,100),{embedder:a,store:o}=await e();i(await u(a,o,{limit:r}))}},{name:`lookup`,description:`Look up indexed content by record ID or source path`,usage:`aikit lookup <id>`,run:async t=>{let n=t.join(` `).trim();n||(console.error(`Usage: aikit lookup <id>`),process.exit(1));let{store:r}=await e(),i=await r.getById(n);if(i){console.log(i.id),console.log(`─`.repeat(60)),console.log(`Path: ${i.sourcePath}`),console.log(`Chunk: ${i.chunkIndex+1}/${i.totalChunks}`),console.log(`Lines: ${i.startLine}-${i.endLine}`),console.log(`Type: ${i.contentType} | Origin: ${i.origin}`),i.tags.length>0&&console.log(`Tags: ${i.tags.join(`, `)}`),console.log(``),console.log(i.content);return}let a=await r.getBySourcePath(n);if(a.length===0){console.log(`No indexed content found for: ${n}`);return}a.sort((e,t)=>e.chunkIndex-t.chunkIndex),console.log(n),console.log(`─`.repeat(60)),console.log(`Chunks: ${a.length} | Type: ${a[0].contentType}`);for(let e of a){let t=e.startLine?` (lines ${e.startLine}-${e.endLine})`:``;console.log(`\nChunk ${e.chunkIndex+1}/${e.totalChunks}${t}`),console.log(e.content)}}}];export{h as searchCommands};
@@ -1,6 +0,0 @@
1
- import { Command } from "../types.js";
2
-
3
- //#region packages/cli/src/commands/system.d.ts
4
- declare const systemCommands: Command[];
5
- //#endregion
6
- export { systemCommands };
@@ -1,4 +0,0 @@
1
- import{ctx as e}from"../context.js";import{executeCliBatchOperation as t,extractStrFlag as n,parseBatchPayload as r,printCheckResult as i,readInput as a}from"../helpers.js";import{dirname as o,resolve as s}from"node:path";import{fileURLToPath as c}from"node:url";import{audit as l,batch as u,check as d,guide as f,health as p,replayClear as m,replayList as h,replayTrim as g}from"../../../tools/dist/index.js";import{fork as _}from"node:child_process";const v=o(c(import.meta.url)),y=[{name:`status`,description:`Show AI Kit index status and statistics`,run:async()=>{let{isUserInstalled:t,getGlobalDataDir:n,computePartitionKey:r,listWorkspaces:i}=await import(`../../../core/dist/index.js`),{existsSync:a}=await import(`node:fs`),o=process.cwd(),c=t(),l=a(s(o,`.vscode`,`mcp.json`)),u,d;if(c&&l)u=`workspace (overrides user-level for this workspace)`,d=s(o,`.aikit-data`);else if(c){let e=r(o);u=a(s(o,`AGENTS.md`))?`user (workspace scaffolded)`:`user (workspace not scaffolded)`,d=s(n(),e)}else u=`workspace`,d=s(o,`.aikit-data`);if(console.log(`AI Kit Status`),console.log(`─`.repeat(40)),console.log(` Mode: ${u}`),console.log(` Data: ${d}`),c&&!l){let e=i();console.log(` Registry: ${e.length} workspace(s) enrolled`)}try{let{store:t}=await e(),n=await t.getStats(),r=await t.listSourcePaths();console.log(` Records: ${n.totalRecords}`),console.log(` Files: ${n.totalFiles}`),console.log(` Indexed: ${n.lastIndexedAt??`Never`}`),console.log(` Backend: ${n.storeBackend}`),console.log(` Model: ${n.embeddingModel}`),console.log(``),console.log(`Content Types:`);for(let[e,t]of Object.entries(n.contentTypeBreakdown))console.log(` ${e}: ${t}`);if(r.length>0){console.log(``),console.log(`Files (${r.length} total):`);for(let e of r.slice(0,20))console.log(` ${e}`);r.length>20&&console.log(` ... and ${r.length-20} more`)}}catch{console.log(``),console.log(" Index not available — run `aikit reindex` to index this workspace.")}c&&!l&&!a(s(o,`AGENTS.md`))&&(console.log(``),console.log(" Action: Run `npx @vpxa/aikit init` to add AGENTS.md and copilot-instructions.md"))}},{name:`reindex`,description:`Re-index the AI Kit index from configured sources`,usage:`aikit reindex [--full]`,run:async t=>{let n=t.includes(`--full`),{store:r,indexer:i,curated:a,config:o}=await e();console.log(`Indexing sources...`);let s=e=>{e.phase===`chunking`&&e.currentFile&&process.stdout.write(`\r [${e.filesProcessed+1}/${e.filesTotal}] ${e.currentFile}`),e.phase===`done`&&process.stdout.write(`
2
- `)},c;n?(console.log(`Dropping existing index for full reindex...`),c=await i.reindexAll(o,s)):c=await i.index(o,s),console.log(`Done: ${c.filesProcessed} files, ${c.chunksCreated} chunks in ${(c.durationMs/1e3).toFixed(1)}s`),console.log(`Building FTS index...`),await r.createFtsIndex(),console.log(`Re-indexing curated entries...`);let l=await a.reindexAll();console.log(`Curated: ${l.indexed} entries restored`)}},{name:`serve`,description:`Start the MCP server (stdio or HTTP)`,usage:`aikit serve [--transport stdio|http] [--port N]`,run:async e=>{let t=s(v,`..`,`..`,`..`,`server`,`dist`,`index.js`),r=n(e,`--transport`,`stdio`),i=n(e,`--port`,`3210`),a=_(t,[],{stdio:r===`stdio`?[`pipe`,`pipe`,`inherit`,`ipc`]:`inherit`,env:{...process.env,AIKIT_TRANSPORT:r,AIKIT_PORT:i}});r===`stdio`&&a.stdin&&a.stdout&&(process.stdin.pipe(a.stdin),a.stdout.pipe(process.stdout)),a.on(`exit`,e=>process.exit(e??0)),process.on(`SIGINT`,()=>a.kill(`SIGINT`)),process.on(`SIGTERM`,()=>a.kill(`SIGTERM`)),await new Promise(()=>{})}},{name:`init`,description:`Initialize AI Kit in the current directory`,usage:`aikit init [--user|--workspace] [--force] [--guide]`,run:async e=>{let t=e.includes(`--user`),n=e.includes(`--workspace`),r=e.includes(`--guide`),i=e.includes(`--force`);if(t&&n&&(console.error(`Cannot use --user and --workspace together.`),process.exit(1)),r){let{guideProject:e}=await import(`./init/index.js`);await e();return}if(t){let{initUser:e}=await import(`./init/user.js`);await e({force:i})}else if(n){let{initProject:e}=await import(`./init/index.js`);await e({force:i})}else{let{initSmart:e}=await import(`./init/index.js`);await e({force:i})}}},{name:`check`,description:`Run incremental typecheck and lint`,usage:`aikit check [--cwd <dir>] [--files f1,f2] [--skip-types] [--skip-lint] [--detail summary|errors|full]`,run:async e=>{let t=n(e,`--cwd`,``).trim()||void 0,r=n(e,`--files`,``),a=n(e,`--detail`,`full`)||`full`,o=r.split(`,`).map(e=>e.trim()).filter(Boolean),s=!1;e.includes(`--skip-types`)&&(e.splice(e.indexOf(`--skip-types`),1),s=!0);let c=!1;e.includes(`--skip-lint`)&&(e.splice(e.indexOf(`--skip-lint`),1),c=!0);let l=await d({cwd:t,files:o.length>0?o:void 0,skipTypes:s,skipLint:c,detail:a});i(l),l.passed||(process.exitCode=1)}},{name:`batch`,description:`Execute built-in operations from JSON input`,usage:`aikit batch [--file path] [--concurrency N]`,run:async i=>{let o=n(i,`--file`,``).trim()||void 0,s=(()=>{let e=i.indexOf(`--concurrency`);if(e===-1||e+1>=i.length)return 0;let t=Number.parseInt(i.splice(e,2)[1],10);return Number.isNaN(t)?0:t})(),c=await a(o);c.trim()||(console.error(`Usage: aikit batch [--file path] [--concurrency N]`),process.exit(1));let l=r(c),d=s>0?s:l.concurrency,f=l.operations.some(e=>e.type!==`check`)?await e():null,p=await u(l.operations,async e=>t(e,f),{concurrency:d});console.log(JSON.stringify(p,null,2)),p.some(e=>e.status===`error`)&&(process.exitCode=1)}},{name:`health`,description:`Run project health checks on the current directory`,usage:`aikit health [path]`,run:async e=>{let t=p(e.shift());console.log(`Project Health: ${t.path}`),console.log(`─`.repeat(50));for(let e of t.checks){let t=e.status===`pass`?`+`:e.status===`warn`?`~`:`X`;console.log(` [${t}] ${e.name}: ${e.message}`)}console.log(`─`.repeat(50)),console.log(`Score: ${t.score}% — ${t.summary}`)}},{name:`audit`,description:`Run a unified project audit (structure, deps, patterns, health, dead symbols, check)`,usage:`aikit audit [path] [--checks structure,dependencies,patterns,health,dead_symbols,check,entry_points] [--detail summary|full]`,run:async t=>{let{store:r,embedder:i}=await e(),a=n(t,`--detail`,`summary`)||`summary`,o=n(t,`--checks`,``),s=o?o.split(`,`).map(e=>e.trim()):void 0,c=await l(r,i,{path:t.shift()||`.`,checks:s,detail:a});if(c.ok){if(console.log(c.summary),c.next&&c.next.length>0){console.log(`
3
- Suggested next steps:`);for(let e of c.next)console.log(` → ${e.tool}: ${e.reason}`)}}else console.error(c.error?.message??`Audit failed`),process.exitCode=1}},{name:`guide`,description:`Tool discovery — recommend AI Kit tools for a given goal`,usage:`aikit guide <goal> [--max N]`,run:async e=>{let t=e.indexOf(`--max`),n=5;t!==-1&&t+1<e.length&&(n=Number.parseInt(e.splice(t,2)[1],10)||5);let r=e.join(` `).trim();r||(console.error(`Usage: aikit guide <goal> [--max N]`),console.error(`Example: aikit guide "audit this project"`),process.exit(1));let i=f(r,n);console.log(`Workflow: ${i.workflow}`),console.log(` ${i.description}\n`),console.log(`Recommended tools:`);for(let e of i.tools){let t=e.suggestedArgs?` ${JSON.stringify(e.suggestedArgs)}`:``;console.log(` ${e.order}. ${e.tool} — ${e.reason}${t}`)}i.alternativeWorkflows.length>0&&console.log(`\nAlternatives: ${i.alternativeWorkflows.join(`, `)}`)}},{name:`replay`,description:`Show recent tool invocation audit trail`,usage:`aikit replay [--last N] [--tool <name>] [--source mcp|cli]`,run:async e=>{let t=h({last:Number.parseInt(e[e.indexOf(`--last`)+1],10)||20,tool:e.includes(`--tool`)?e[e.indexOf(`--tool`)+1]:void 0,source:e.includes(`--source`)?e[e.indexOf(`--source`)+1]:void 0});if(t.length===0){console.log(`No replay entries. Activity is logged when tools are invoked.`);return}console.log(`Replay Log (${t.length} entries)\n`);for(let e of t){let t=e.ts.split(`T`)[1]?.split(`.`)[0]??e.ts,n=e.status===`ok`?`✓`:`✗`;console.log(`${t} ${n} ${e.tool} (${e.durationMs}ms) [${e.source}]`),console.log(` in: ${e.input}`),console.log(` out: ${e.output}`)}g().catch(()=>{})}},{name:`replay-clear`,description:`Clear the replay audit trail`,run:async()=>{m(),console.log(`Replay log cleared.`)}},{name:`tui`,description:`Launch interactive terminal dashboard (human monitoring)`,run:async()=>{try{let{launch:t}=await import(`../../../tui/dist/index.js`),{DirectKBClient:n}=await import(`../../../aikit-client/dist/index.js`),{store:r,embedder:i,graphStore:a,curated:o}=await e();t(new n({store:r,embedder:i,graphStore:a,listCurated:async()=>(await o.list()).map(e=>({...e,content:e.contentPreview})),readCurated:e=>o.read(e)}))}catch(e){throw e.code===`ERR_MODULE_NOT_FOUND`&&(console.error(`TUI requires ink and react. Install them with:
4
- pnpm add -D ink react @types/react`),process.exit(1)),e}}},{name:`dashboard`,description:`Launch web dashboard for knowledge graph visualization`,usage:`aikit dashboard [--port <port>] [--no-open]`,run:async e=>{let t=e.indexOf(`--port`),n=t!==-1&&e[t+1]?Number.parseInt(e[t+1],10):3210,r=Number.isFinite(n)?n:3210,i=e.includes(`--no-open`);console.log(`Starting AI Kit server on port ${r}...`);let{spawn:a}=await import(`node:child_process`),{platform:o}=await import(`node:os`),c=s(v,`..`,`..`,`..`,`server`,`dist`,`index.js`),l=a(process.execPath,[c,`--transport`,`http`,`--port`,String(r)],{stdio:[`ignore`,`pipe`,`pipe`],env:{...process.env,AIKIT_TRANSPORT:`http`,AIKIT_PORT:String(r)}}),u=`http://localhost:${r}/_dashboard/`,d=`http://localhost:${r}/health`,f=!1;for(let e=0;e<30;e+=1){try{if((await fetch(d)).ok){f=!0;break}}catch{}await new Promise(e=>setTimeout(e,1e3))}if(f||(console.error(`Server failed to start within 30 seconds.`),l.kill(),process.exit(1)),console.log(`AI Kit Dashboard: ${u}`),console.log(`Press Ctrl+C to stop.`),!i){let e=o();e===`win32`?a(`cmd`,[`/c`,`start`,``,u],{stdio:`ignore`,detached:!0}).unref():a(e===`darwin`?`open`:`xdg-open`,[u],{stdio:`ignore`,detached:!0}).unref()}let p=()=>{l.kill(),process.exit(0)};process.on(`SIGINT`,p),process.on(`SIGTERM`,p),await new Promise(e=>{l.on(`exit`,()=>e())})}}];export{y as systemCommands};
@@ -1,6 +0,0 @@
1
- import { Command } from "../types.js";
2
-
3
- //#region packages/cli/src/commands/upgrade.d.ts
4
- declare const upgradeCommands: Command[];
5
- //#endregion
6
- export { upgradeCommands };
@@ -1 +0,0 @@
1
- import{FLOW_DIRS as e,SKILL_NAMES as t}from"./init/constants.js";import{existsSync as n,readFileSync as r}from"node:fs";import{dirname as i,resolve as a}from"node:path";import{fileURLToPath as o}from"node:url";const s=[{name:`upgrade`,description:`Upgrade AI Kit agents, prompts, and skills to the latest version (user-level and workspace-level)`,usage:`aikit upgrade`,run:async()=>{let{initUser:s}=await import(`./init/user.js`);await s({force:!0});let c=process.cwd(),l=n(a(c,`.github`,`.aikit-scaffold.json`)),u=n(a(c,`.github`,`agents`)),d=n(a(c,`.github`,`prompts`)),f=n(a(c,`.claude`,`commands`));if(l||u||d||f){let{initScaffoldOnly:e}=await import(`./init/index.js`);await e({force:!0})}if(n(a(c,`.github`,`skills`))){let{smartCopySkills:n}=await import(`./init/scaffold.js`),s=a(i(o(import.meta.url)),`..`,`..`,`..`,`..`),l=JSON.parse(r(a(s,`package.json`),`utf-8`)).version;n(c,s,[...t],l,!0);let{smartCopyFlows:u}=await import(`./init/scaffold.js`);u(c,s,[...e],l,!0)}}}];export{s as upgradeCommands};
@@ -1,6 +0,0 @@
1
- import { Command } from "../types.js";
2
-
3
- //#region packages/cli/src/commands/workspace.d.ts
4
- declare const workspaceCommands: Command[];
5
- //#endregion
6
- export { workspaceCommands };
@@ -1 +0,0 @@
1
- import{extractStrFlag as e,parseMaybeJsonString as t,printWorkset as n,readStdin as r,splitCsv as i}from"../helpers.js";import{addToWorkset as a,deleteWorkset as o,getWorkset as s,laneCreate as c,laneDiff as l,laneDiscard as u,laneList as d,laneMerge as f,laneStatus as p,listWorksets as m,queueClear as h,queueCreate as g,queueDelete as _,queueDone as v,queueFail as y,queueGet as b,queueList as x,queueNext as S,queuePush as C,removeFromWorkset as w,saveWorkset as T,stashClear as E,stashDelete as D,stashGet as O,stashList as k,stashSet as A}from"../../../tools/dist/index.js";const j=[{name:`workset`,description:`Manage saved file sets`,usage:`aikit workset <action> [name] [--files f1,f2] [--description desc]`,run:async t=>{let r=t.shift()?.trim(),c=i(e(t,`--files`,``)),l=e(t,`--description`,``).trim()||void 0,u=t.shift()?.trim();switch(r||(console.error(`Usage: aikit workset <action> [name] [--files f1,f2] [--description desc]`),console.error(`Actions: save, get, list, delete, add, remove`),process.exit(1)),r){case`save`:{(!u||c.length===0)&&(console.error(`Usage: aikit workset save <name> --files f1,f2 [--description desc]`),process.exit(1));let e=T(u,c,{description:l});console.log(`Saved workset: ${e.name}`),n(e);return}case`get`:{u||(console.error(`Usage: aikit workset get <name>`),process.exit(1));let e=s(u);if(!e){console.log(`No workset found: ${u}`);return}n(e);return}case`list`:{let e=m();if(e.length===0){console.log(`No worksets saved.`);return}console.log(`Worksets (${e.length})`),console.log(`─`.repeat(60));for(let t of e)n(t),console.log(``);return}case`delete`:{u||(console.error(`Usage: aikit workset delete <name>`),process.exit(1));let e=o(u);console.log(e?`Deleted workset: ${u}`:`No workset found: ${u}`);return}case`add`:{(!u||c.length===0)&&(console.error(`Usage: aikit workset add <name> --files f1,f2`),process.exit(1));let e=a(u,c);console.log(`Updated workset: ${e.name}`),n(e);return}case`remove`:{(!u||c.length===0)&&(console.error(`Usage: aikit workset remove <name> --files f1,f2`),process.exit(1));let e=w(u,c);if(!e){console.log(`No workset found: ${u}`);return}console.log(`Updated workset: ${e.name}`),n(e);return}default:console.error(`Unknown workset action: ${r}`),console.error(`Actions: save, get, list, delete, add, remove`),process.exit(1)}}},{name:`stash`,description:`Persist and retrieve named intermediate values`,usage:`aikit stash <set|get|list|delete|clear> [key] [value]`,run:async e=>{let n=e.shift()?.trim(),i=e.shift()?.trim();switch(n||(console.error(`Usage: aikit stash <set|get|list|delete|clear> [key] [value]`),process.exit(1)),n){case`set`:{i||(console.error(`Usage: aikit stash set <key> <value>`),process.exit(1));let n=e.join(` `),a=n.trim()?``:await r(),o=A(i,t(n||a));console.log(`Stored stash entry: ${o.key}`),console.log(` Type: ${o.type}`),console.log(` Stored: ${o.storedAt}`);return}case`get`:{i||(console.error(`Usage: aikit stash get <key>`),process.exit(1));let e=O(i);if(!e){console.log(`No stash entry found: ${i}`);return}console.log(JSON.stringify(e,null,2));return}case`list`:{let e=k();if(e.length===0){console.log(`No stash entries saved.`);return}console.log(`Stash entries (${e.length})`),console.log(`─`.repeat(60));for(let t of e)console.log(`${t.key} (${t.type})`),console.log(` Stored: ${t.storedAt}`);return}case`delete`:{i||(console.error(`Usage: aikit stash delete <key>`),process.exit(1));let e=D(i);console.log(e?`Deleted stash entry: ${i}`:`No stash entry found: ${i}`);return}case`clear`:{let e=E();console.log(`Cleared ${e} stash entr${e===1?`y`:`ies`}.`);return}default:console.error(`Unknown stash action: ${n}`),console.error(`Actions: set, get, list, delete, clear`),process.exit(1)}}},{name:`lane`,description:`Manage verified lanes — isolated file copies for parallel exploration`,usage:`aikit lane <create|list|status|diff|merge|discard> [name] [--files f1,f2]`,run:async t=>{let n=t.shift();if((!n||![`create`,`list`,`status`,`diff`,`merge`,`discard`].includes(n))&&(console.error(`Usage: aikit lane <create|list|status|diff|merge|discard> [name] [--files f1,f2]`),process.exit(1)),n===`list`){let e=d();if(e.length===0){console.log(`No active lanes.`);return}for(let t of e)console.log(`${t.name} (${t.sourceFiles.length} files, created ${t.createdAt})`);return}let r=t.shift();switch(r||(console.error(`Lane name is required for "${n}".`),process.exit(1)),n){case`create`:{let n=e(t,`--files`,``);n||(console.error(`Usage: aikit lane create <name> --files file1.ts,file2.ts`),process.exit(1));let i=c(r,n.split(`,`).map(e=>e.trim()));console.log(`Lane "${i.name}" created with ${i.sourceFiles.length} files.`);break}case`status`:{let e=p(r);console.log(`Lane: ${e.name}`),console.log(`Modified: ${e.modified} | Added: ${e.added} | Deleted: ${e.deleted}`);for(let t of e.entries)console.log(` ${t.status.padEnd(10)} ${t.file}`);break}case`diff`:{let e=l(r);console.log(`Lane: ${e.name} — ${e.modified} modified, ${e.added} added, ${e.deleted} deleted`);for(let t of e.entries)t.diff&&(console.log(`\n--- ${t.file} (${t.status})`),console.log(t.diff));break}case`merge`:{let e=f(r);console.log(`Merged ${e.filesMerged} files from lane "${e.name}".`);for(let t of e.files)console.log(` ${t}`);break}case`discard`:{let e=u(r);console.log(e?`Lane "${r}" discarded.`:`Lane "${r}" not found.`);break}}}},{name:`queue`,description:`Manage task queues for sequential agent operations`,usage:`aikit queue <create|push|next|done|fail|get|list|clear|delete> [name] [args]`,run:async e=>{let t=e.shift();if((!t||![`create`,`push`,`next`,`done`,`fail`,`get`,`list`,`clear`,`delete`].includes(t))&&(console.error(`Usage: aikit queue <create|push|next|done|fail|get|list|clear|delete> [name] [args]`),process.exit(1)),t===`list`){let e=x();if(e.length===0){console.log(`No queues.`);return}for(let t of e)console.log(`${t.name} pending:${t.pending} done:${t.done} failed:${t.failed} total:${t.total}`);return}let n=e.shift();switch(n||(console.error(`Queue name is required for "${t}".`),process.exit(1)),t){case`create`:{let e=g(n);console.log(`Queue "${e.name}" created.`);break}case`push`:{let t=C(n,e.join(` `)||`Untitled task`);console.log(`Pushed "${t.title}" (${t.id}) to queue "${n}".`);break}case`next`:{let e=S(n);console.log(e?`Next: ${e.title} (${e.id})`:`No pending items in queue "${n}".`);break}case`done`:{let t=e.shift();t||(console.error(`Usage: aikit queue done <name> <id>`),process.exit(1));let r=v(n,t);console.log(`Marked "${r.title}" as done.`);break}case`fail`:{let t=e.shift(),r=e.join(` `)||`Unknown error`;t||(console.error(`Usage: aikit queue fail <name> <id> [error message]`),process.exit(1));let i=y(n,t,r);console.log(`Marked "${i.title}" as failed: ${r}`);break}case`get`:{let e=b(n);if(!e){console.log(`Queue "${n}" not found.`);return}console.log(`Queue: ${e.name} (${e.items.length} items)`);for(let t of e.items){let e=t.error?` — ${t.error}`:``;console.log(` ${t.status.padEnd(12)} ${t.id} ${t.title}${e}`)}break}case`clear`:{let e=h(n);console.log(`Cleared ${e} completed/failed items from queue "${n}".`);break}case`delete`:{let e=_(n);console.log(e?`Queue "${n}" deleted.`:`Queue "${n}" not found.`);break}}}}];export{j as workspaceCommands};
@@ -1,7 +0,0 @@
1
- import { KBContext } from "./aikit-init.js";
2
-
3
- //#region packages/cli/src/context.d.ts
4
- declare function ctx(): Promise<KBContext>;
5
- declare function getCtx(): KBContext | null;
6
- //#endregion
7
- export { type KBContext, ctx, getCtx };
@@ -1 +0,0 @@
1
- import{initKB as e}from"./aikit-init.js";let t=null;async function n(){return t||=await e(),t}function r(){return t}export{n as ctx,r as getCtx};
@@ -1,55 +0,0 @@
1
- import { KBContext } from "./aikit-init.js";
2
- import { SearchResult } from "../../core/dist/index.js";
3
- import { BatchOperation, ManagedProcess, check, checkpointSave, diffParse, fileSummary, findDeadSymbols, findExamples, gitContext, parseOutput, symbol, testRun, trace } from "../../tools/dist/index.js";
4
-
5
- //#region packages/cli/src/helpers.d.ts
6
- declare function extractNumFlag(args: string[], flag: string, defaultValue: number): number;
7
- declare function extractStrFlag(args: string[], flag: string, defaultValue: string): string;
8
- declare function extractBoolFlag(args: string[], flag: string): boolean;
9
- declare function readStdin(): Promise<string>;
10
- declare function readInput(filePath?: string): Promise<string>;
11
- declare function splitCsv(value: string): string[];
12
- declare function parseBatchPayload(input: string): {
13
- operations: BatchOperation[];
14
- concurrency?: number;
15
- };
16
- declare function validateBatchOperations(value: unknown): BatchOperation[];
17
- declare function formatFocusRanges(ranges: Array<{
18
- start: number;
19
- end: number;
20
- heading?: string;
21
- }>): string;
22
- declare function printParsedOutput(result: ReturnType<typeof parseOutput>): void;
23
- declare function printCheckResult(result: Awaited<ReturnType<typeof check>>): void;
24
- declare function printCheckSection(label: string, passed: boolean, errors: Array<{
25
- file: string;
26
- line?: number;
27
- column?: number;
28
- severity: 'error' | 'warning' | 'info';
29
- code?: string;
30
- message: string;
31
- }>): void;
32
- declare function printTestRunResult(result: Awaited<ReturnType<typeof testRun>>): void;
33
- declare function printGitContext(result: Awaited<ReturnType<typeof gitContext>>): void;
34
- declare function printDiffFiles(files: ReturnType<typeof diffParse>): void;
35
- declare function printTraceResult(result: Awaited<ReturnType<typeof trace>>): void;
36
- declare function printExamplesResult(result: Awaited<ReturnType<typeof findExamples>>): void;
37
- declare function printManagedProcess(info: ManagedProcess): void;
38
- declare function printDeadSymbolsResult(result: Awaited<ReturnType<typeof findDeadSymbols>>): void;
39
- declare function printFileSummary(summary: Awaited<ReturnType<typeof fileSummary>>): void;
40
- declare function printSymbolInfo(result: Awaited<ReturnType<typeof symbol>>): void;
41
- declare function printWorkset(workset: {
42
- name: string;
43
- files: string[];
44
- created: string;
45
- updated: string;
46
- description?: string;
47
- }): void;
48
- declare function printCheckpoint(checkpoint: ReturnType<typeof checkpointSave>): void;
49
- declare function printSection(label: string, items: string[]): void;
50
- declare function parseMaybeJsonString(value: string): unknown;
51
- declare function parseRecordString(value: string): Record<string, unknown>;
52
- declare function rrf(vecResults: SearchResult[], ftsResults: SearchResult[], k?: number): SearchResult[];
53
- declare function executeCliBatchOperation(operation: BatchOperation, context: KBContext | null): Promise<unknown>;
54
- //#endregion
55
- export { executeCliBatchOperation, extractBoolFlag, extractNumFlag, extractStrFlag, formatFocusRanges, parseBatchPayload, parseMaybeJsonString, parseRecordString, printCheckResult, printCheckSection, printCheckpoint, printDeadSymbolsResult, printDiffFiles, printExamplesResult, printFileSummary, printGitContext, printManagedProcess, printParsedOutput, printSection, printSymbolInfo, printTestRunResult, printTraceResult, printWorkset, readInput, readStdin, rrf, splitCsv, validateBatchOperations };
@@ -1,5 +0,0 @@
1
- import{resolve as e}from"node:path";import{readFile as t}from"node:fs/promises";import{check as n,find as r}from"../../tools/dist/index.js";function i(e,t,n){let r=e.indexOf(t);if(r===-1||r+1>=e.length)return n;let i=Number.parseInt(e.splice(r,2)[1],10);return Number.isNaN(i)?n:i}function a(e,t,n){let r=e.indexOf(t);return r===-1||r+1>=e.length?n:e.splice(r,2)[1]}function o(e,t){let n=e.indexOf(t);return n===-1?!1:(e.splice(n,1),!0)}async function s(){if(process.stdin.isTTY)return``;let e=[];for await(let t of process.stdin)e.push(t);return Buffer.concat(e).toString(`utf-8`)}async function c(n){return n?t(e(n),`utf-8`):s()}function l(e){return e.split(`,`).map(e=>e.trim()).filter(Boolean)}function u(e){let t=JSON.parse(e);if(Array.isArray(t))return{operations:d(t)};if(t&&typeof t==`object`&&`operations`in t){let e=t;return{operations:d(e.operations),concurrency:typeof e.concurrency==`number`?e.concurrency:void 0}}throw Error(`Batch input must be an array of operations or an object with an operations array.`)}function d(e){if(!Array.isArray(e))throw Error(`Batch operations must be an array.`);return e.map((e,t)=>{if(!e||typeof e!=`object`)throw Error(`Batch operation at index ${t} must be an object.`);let n=e;if(typeof n.id!=`string`||n.id.length===0)throw Error(`Batch operation at index ${t} is missing a valid id.`);if(typeof n.type!=`string`||n.type.length===0)throw Error(`Batch operation ${n.id} is missing a valid type.`);if(!n.args||typeof n.args!=`object`||Array.isArray(n.args))throw Error(`Batch operation ${n.id} must include an args object.`);return{id:n.id,type:n.type,args:n.args}})}function f(e){return e.map(e=>{let t=e.heading?` ${e.heading}`:``;return`${e.start}-${e.end}${t}`}).join(`, `)}function p(e){switch(e.tool){case`tsc`:case`biome`:console.log(`${e.tool} errors: ${e.errors.length}`);for(let t of e.errors){let e=[t.line,t.column].filter(e=>e!==void 0).join(`:`),n=e?`${t.file}:${e}`:t.file,r=t.code?` ${t.code}`:``;console.log(`- ${n} [${t.severity}${r}] ${t.message}`)}return;case`vitest`:console.log(`Vitest summary`),console.log(` Passed: ${e.summary.passed}`),console.log(` Failed: ${e.summary.failed}`),console.log(` Skipped: ${e.summary.skipped}`),e.summary.duration!==void 0&&console.log(` Duration: ${e.summary.duration}ms`);for(let t of e.summary.tests)t.status===`fail`&&(console.log(`- ${t.name}${t.file?` (${t.file})`:``}`),t.error&&console.log(` ${t.error}`));return;case`git-status`:console.log(`Branch: ${e.status.branch??`unknown`}`),console.log(`Staged: ${e.status.staged.length}`);for(let t of e.status.staged)console.log(` ${t.status} ${t.file}`);console.log(`Unstaged: ${e.status.unstaged.length}`);for(let t of e.status.unstaged)console.log(` ${t.status} ${t.file}`);console.log(`Untracked: ${e.status.untracked.length}`);for(let t of e.status.untracked)console.log(` ?? ${t}`);return}}function m(e){console.log(`Overall: ${e.passed?`passed`:`failed`}`),h(`tsc`,e.tsc.passed,e.tsc.errors),h(`biome`,e.biome.passed,e.biome.errors)}function h(e,t,n){console.log(`${e}: ${t?`passed`:`${n.length} issue(s)`}`);for(let e of n){let t=[e.line,e.column].filter(e=>e!==void 0).join(`:`),n=t?`${e.file}:${t}`:e.file,r=e.code?` ${e.code}`:``;console.log(` - ${n} [${e.severity}${r}] ${e.message}`)}}function g(e){console.log(`Vitest: ${e.passed?`passed`:`failed`}`),console.log(` Duration: ${e.durationMs}ms`),console.log(` Passed: ${e.summary.passed}`),console.log(` Failed: ${e.summary.failed}`),console.log(` Skipped: ${e.summary.skipped}`),e.summary.suites!==void 0&&console.log(` Suites: ${e.summary.suites}`);let t=e.summary.tests.filter(e=>e.status===`fail`);if(t.length!==0){console.log(`Failed tests:`);for(let e of t)console.log(` - ${e.name}${e.file?` (${e.file})`:``}`),e.error&&console.log(` ${e.error}`)}}function _(e){console.log(`Branch: ${e.branch}`),console.log(`Staged: ${e.status.staged.length}`);for(let t of e.status.staged)console.log(` - ${t}`);console.log(`Modified: ${e.status.modified.length}`);for(let t of e.status.modified)console.log(` - ${t}`);console.log(`Untracked: ${e.status.untracked.length}`);for(let t of e.status.untracked)console.log(` - ${t}`);if(console.log(``),console.log(`Recent commits:`),e.recentCommits.length===0)console.log(` none`);else for(let t of e.recentCommits)console.log(` - ${t.hash} ${t.message}`),console.log(` ${t.author} @ ${t.date}`);e.diff&&(console.log(``),console.log(`Diff stat:`),console.log(e.diff))}function v(e){if(e.length===0){console.log(`No diff files found.`);return}for(let t of e){let e=t.oldPath?` (from ${t.oldPath})`:``;console.log(`${t.path}${e}`),console.log(` Status: ${t.status}`),console.log(` Changes: +${t.additions} -${t.deletions}`),console.log(` Hunks: ${t.hunks.length}`);for(let e of t.hunks){let t=e.header?` ${e.header}`:``;console.log(` @@ -${e.oldStart},${e.oldLines} +${e.newStart},${e.newLines} @@${t}`)}}}function y(e){if(console.log(`Start: ${e.start}`),console.log(`Direction: ${e.direction}`),console.log(`Depth reached: ${e.depth}`),console.log(`Nodes: ${e.nodes.length}`),e.nodes.length===0){console.log(`No trace nodes found.`);return}for(let t of e.nodes)console.log(` - [${t.relationship}] ${t.path}:${t.line} ${t.symbol}`)}function b(e){if(console.log(`Query: ${e.query}`),console.log(`Examples: ${e.examples.length} shown (${e.totalFound} total)`),e.examples.length===0){console.log(`No matching examples found.`);return}for(let t of e.examples){console.log(``),console.log(`${t.path}:${t.startLine}-${t.endLine}`),console.log(` Context: ${t.context}`),console.log(` Relevance: ${(t.relevance*100).toFixed(1)}%`);for(let e of t.content.split(`
2
- `))console.log(` ${e}`)}}function x(e){console.log(e.id),console.log(` Command: ${e.command}${e.args.length>0?` ${e.args.join(` `)}`:``}`),console.log(` PID: ${e.pid??`unknown`}`),console.log(` Status: ${e.status}`),console.log(` Started: ${e.startedAt}`),e.exitCode!==void 0&&console.log(` Exit code: ${e.exitCode}`),console.log(` Logs: ${e.logs.length}`)}function S(e){if(console.log(`Exports scanned: ${e.totalExports}`),console.log(`Dead in source: ${e.totalDeadSource} (actionable)`),console.log(`Dead in docs: ${e.totalDeadDocs} (informational)`),e.totalDeadSource===0&&e.totalDeadDocs===0){console.log(`No dead symbols found.`);return}if(e.deadInSource.length>0){console.log(`
3
- Dead in source (actionable):`);for(let t of e.deadInSource)console.log(` - ${t.path}:${t.line} ${t.kind} ${t.name}`)}if(e.deadInDocs.length>0){console.log(`
4
- Dead in docs (informational):`);for(let t of e.deadInDocs)console.log(` - ${t.path}:${t.line} ${t.kind} ${t.name}`)}}function C(e){console.log(e.path),console.log(` Language: ${e.language}`),console.log(` Lines: ${e.lines}`),console.log(` Estimated tokens: ~${e.estimatedTokens}`),console.log(``),D(`Imports`,e.imports),D(`Exports`,e.exports),D(`Functions`,e.functions.map(e=>`${e.name} @ line ${e.line}${e.exported?` [exported]`:``}`)),D(`Classes`,e.classes.map(e=>`${e.name} @ line ${e.line}${e.exported?` [exported]`:``}`)),D(`Interfaces`,e.interfaces.map(e=>`${e.name} @ line ${e.line}`)),D(`Types`,e.types.map(e=>`${e.name} @ line ${e.line}`))}function w(e){if(console.log(`Symbol: ${e.name}`),e.definedIn?console.log(`Defined in: ${e.definedIn.path}:${e.definedIn.line} (${e.definedIn.kind})`):console.log(`Defined in: not found`),console.log(``),console.log(`Imported by:`),e.importedBy.length===0)console.log(` none`);else for(let t of e.importedBy)console.log(` - ${t.path}:${t.line} ${t.importStatement}`);if(console.log(``),console.log(`Referenced in:`),e.referencedIn.length===0)console.log(` none`);else for(let t of e.referencedIn)console.log(` - ${t.path}:${t.line} ${t.context}`)}function T(e){console.log(e.name),console.log(` Files: ${e.files.length}`),console.log(` Updated: ${e.updated}`),e.description&&console.log(` Description: ${e.description}`);for(let t of e.files)console.log(` - ${t}`)}function E(e){if(console.log(e.id),console.log(` Label: ${e.label}`),console.log(` Created: ${e.createdAt}`),e.notes&&console.log(` Notes: ${e.notes}`),e.files?.length){console.log(` Files: ${e.files.length}`);for(let t of e.files)console.log(` - ${t}`)}console.log(` Data:`);for(let t of JSON.stringify(e.data,null,2).split(`
5
- `))console.log(` ${t}`)}function D(e,t){if(console.log(`${e}:`),t.length===0){console.log(` none`),console.log(``);return}for(let e of t)console.log(` - ${e}`);console.log(``)}function O(e){let t=e.trim();if(!t)return``;try{return JSON.parse(t)}catch{return e}}function k(e){let t=e.trim();if(!t)return{};let n=JSON.parse(t);if(!n||typeof n!=`object`||Array.isArray(n))throw Error(`Checkpoint data must be a JSON object.`);return n}function A(e,t,n=60){let r=new Map;for(let t=0;t<e.length;t++){let i=e[t];r.set(i.record.id,{record:i.record,score:1/(n+t+1)})}for(let e=0;e<t.length;e++){let i=t[e],a=r.get(i.record.id);a?a.score+=1/(n+e+1):r.set(i.record.id,{record:i.record,score:1/(n+e+1)})}return[...r.values()].sort((e,t)=>t.score-e.score)}async function j(e,t){switch(e.type){case`search`:{if(!t)throw Error(`search operation requires AI Kit context`);let n=typeof e.args.query==`string`?e.args.query.trim():``;if(!n)throw Error(`search operation requires a query`);let r=typeof e.args.limit==`number`?e.args.limit:5,i=e.args.search_mode===`semantic`||e.args.search_mode===`keyword`?e.args.search_mode:`hybrid`,a=typeof e.args.content_type==`string`?e.args.content_type:void 0,o=typeof e.args.min_score==`number`?e.args.min_score:.25;if(i===`keyword`)return(await t.store.ftsSearch(n,{limit:r,contentType:a,minScore:o})).slice(0,r);let s=await t.embedder.embedQuery(n);if(i===`semantic`)return t.store.search(s,{limit:r,contentType:a,minScore:o});let[c,l]=await Promise.all([t.store.search(s,{limit:r*2,contentType:a,minScore:o}),t.store.ftsSearch(n,{limit:r*2,contentType:a,minScore:o}).catch(()=>[])]);return A(c,l).slice(0,r)}case`find`:{if(!t)throw Error(`find operation requires AI Kit context`);let n=typeof e.args.query==`string`?e.args.query:void 0,i=typeof e.args.glob==`string`?e.args.glob:void 0,a=typeof e.args.pattern==`string`?e.args.pattern:void 0,o=typeof e.args.limit==`number`?e.args.limit:10,s=typeof e.args.content_type==`string`?e.args.content_type:void 0,c=typeof e.args.cwd==`string`?e.args.cwd:void 0;if(!n&&!i&&!a)throw Error(`find operation requires query, glob, or pattern`);return r(t.embedder,t.store,{query:n,glob:i,pattern:a,limit:o,contentType:s,cwd:c})}case`check`:return n({files:Array.isArray(e.args.files)?e.args.files.filter(e=>typeof e==`string`):void 0,cwd:typeof e.args.cwd==`string`?e.args.cwd:void 0,skipTypes:e.args.skip_types===!0,skipLint:e.args.skip_lint===!0});default:throw Error(`Unsupported batch operation type: ${e.type}`)}}export{j as executeCliBatchOperation,o as extractBoolFlag,i as extractNumFlag,a as extractStrFlag,f as formatFocusRanges,u as parseBatchPayload,O as parseMaybeJsonString,k as parseRecordString,m as printCheckResult,h as printCheckSection,E as printCheckpoint,S as printDeadSymbolsResult,v as printDiffFiles,b as printExamplesResult,C as printFileSummary,_ as printGitContext,x as printManagedProcess,p as printParsedOutput,D as printSection,w as printSymbolInfo,g as printTestRunResult,y as printTraceResult,T as printWorkset,c as readInput,s as readStdin,A as rrf,l as splitCsv,d as validateBatchOperations};
@@ -1,9 +0,0 @@
1
- //#region packages/cli/src/types.d.ts
2
- interface Command {
3
- name: string;
4
- description: string;
5
- usage?: string;
6
- run: (args: string[]) => Promise<void>;
7
- }
8
- //#endregion
9
- export { Command };
@@ -1 +0,0 @@
1
- export{};