@coralai/sps-cli 0.55.12 → 0.56.0

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 (431) hide show
  1. package/dist/commands/cardMarkComplete.d.ts.map +1 -1
  2. package/dist/commands/cardMarkComplete.js +6 -3
  3. package/dist/commands/cardMarkComplete.js.map +1 -1
  4. package/dist/commands/projectInit.d.ts +18 -16
  5. package/dist/commands/projectInit.d.ts.map +1 -1
  6. package/dist/commands/projectInit.js +59 -186
  7. package/dist/commands/projectInit.js.map +1 -1
  8. package/dist/commands/skillCommand.js +7 -4
  9. package/dist/commands/skillCommand.js.map +1 -1
  10. package/dist/commands/tick.d.ts +2 -20
  11. package/dist/commands/tick.d.ts.map +1 -1
  12. package/dist/commands/tick.js +58 -1
  13. package/dist/commands/tick.js.map +1 -1
  14. package/dist/console/index.d.ts.map +1 -1
  15. package/dist/console/index.js +4 -0
  16. package/dist/console/index.js.map +1 -1
  17. package/dist/console/routes/chat.d.ts.map +1 -1
  18. package/dist/console/routes/chat.js +121 -0
  19. package/dist/console/routes/chat.js.map +1 -1
  20. package/dist/console/routes/projects.d.ts +0 -6
  21. package/dist/console/routes/projects.d.ts.map +1 -1
  22. package/dist/console/routes/projects.js +11 -2
  23. package/dist/console/routes/projects.js.map +1 -1
  24. package/dist/console/routes/providers.d.ts +10 -0
  25. package/dist/console/routes/providers.d.ts.map +1 -0
  26. package/dist/console/routes/providers.js +63 -0
  27. package/dist/console/routes/providers.js.map +1 -0
  28. package/dist/console/routes/smartarrange.d.ts +4 -0
  29. package/dist/console/routes/smartarrange.d.ts.map +1 -0
  30. package/dist/console/routes/smartarrange.js +107 -0
  31. package/dist/console/routes/smartarrange.js.map +1 -0
  32. package/dist/console/routes/system.d.ts.map +1 -1
  33. package/dist/console/routes/system.js +28 -0
  34. package/dist/console/routes/system.js.map +1 -1
  35. package/dist/console/routes/workers.d.ts.map +1 -1
  36. package/dist/console/routes/workers.js +36 -4
  37. package/dist/console/routes/workers.js.map +1 -1
  38. package/dist/console-assets/assets/index-CWkYVI5d.js +600 -0
  39. package/dist/console-assets/assets/index-CnUBHNsN.css +10 -0
  40. package/dist/console-assets/index.html +2 -2
  41. package/dist/core/agents/AcpBackend.d.ts +24 -0
  42. package/dist/core/agents/AcpBackend.d.ts.map +1 -0
  43. package/dist/core/agents/AcpBackend.js +86 -0
  44. package/dist/core/agents/AcpBackend.js.map +1 -0
  45. package/dist/core/agents/AgentBackend.d.ts +53 -0
  46. package/dist/core/agents/AgentBackend.d.ts.map +1 -0
  47. package/dist/core/agents/AgentBackend.js +18 -0
  48. package/dist/core/agents/AgentBackend.js.map +1 -0
  49. package/dist/core/agents/ClaudeAcpBackend.d.ts +13 -0
  50. package/dist/core/agents/ClaudeAcpBackend.d.ts.map +1 -0
  51. package/dist/core/agents/ClaudeAcpBackend.js +14 -0
  52. package/dist/core/agents/ClaudeAcpBackend.js.map +1 -0
  53. package/dist/core/agents/ClaudeSdkBackend.d.ts +26 -0
  54. package/dist/core/agents/ClaudeSdkBackend.d.ts.map +1 -0
  55. package/dist/core/agents/ClaudeSdkBackend.js +102 -0
  56. package/dist/core/agents/ClaudeSdkBackend.js.map +1 -0
  57. package/dist/core/agents/CodexAppServerBackend.d.ts +33 -0
  58. package/dist/core/agents/CodexAppServerBackend.d.ts.map +1 -0
  59. package/dist/core/agents/CodexAppServerBackend.js +168 -0
  60. package/dist/core/agents/CodexAppServerBackend.js.map +1 -0
  61. package/dist/core/agents/OpenAiAgentBackend.d.ts +39 -0
  62. package/dist/core/agents/OpenAiAgentBackend.d.ts.map +1 -0
  63. package/dist/core/agents/OpenAiAgentBackend.js +132 -0
  64. package/dist/core/agents/OpenAiAgentBackend.js.map +1 -0
  65. package/dist/core/agents/agentsMd.d.ts +2 -0
  66. package/dist/core/agents/agentsMd.d.ts.map +1 -0
  67. package/dist/core/agents/agentsMd.js +22 -0
  68. package/dist/core/agents/agentsMd.js.map +1 -0
  69. package/dist/core/agents/localTracing.d.ts +3 -0
  70. package/dist/core/agents/localTracing.d.ts.map +1 -0
  71. package/dist/core/agents/localTracing.js +42 -0
  72. package/dist/core/agents/localTracing.js.map +1 -0
  73. package/dist/core/agents/resolveBackend.d.ts +26 -0
  74. package/dist/core/agents/resolveBackend.d.ts.map +1 -0
  75. package/dist/core/agents/resolveBackend.js +27 -0
  76. package/dist/core/agents/resolveBackend.js.map +1 -0
  77. package/dist/core/agents/workerOutputSink.d.ts +4 -0
  78. package/dist/core/agents/workerOutputSink.d.ts.map +1 -0
  79. package/dist/core/agents/workerOutputSink.js +39 -0
  80. package/dist/core/agents/workerOutputSink.js.map +1 -0
  81. package/dist/core/config.d.ts +6 -0
  82. package/dist/core/config.d.ts.map +1 -1
  83. package/dist/core/config.js +4 -0
  84. package/dist/core/config.js.map +1 -1
  85. package/dist/core/intel/RuntimeSession.d.ts +16 -0
  86. package/dist/core/intel/RuntimeSession.d.ts.map +1 -0
  87. package/dist/core/intel/RuntimeSession.js +89 -0
  88. package/dist/core/intel/RuntimeSession.js.map +1 -0
  89. package/dist/core/intel/agentsConfig.d.ts +20 -0
  90. package/dist/core/intel/agentsConfig.d.ts.map +1 -0
  91. package/dist/core/intel/agentsConfig.js +68 -0
  92. package/dist/core/intel/agentsConfig.js.map +1 -0
  93. package/dist/core/intel/planStore.d.ts +23 -0
  94. package/dist/core/intel/planStore.d.ts.map +1 -0
  95. package/dist/core/intel/planStore.js +67 -0
  96. package/dist/core/intel/planStore.js.map +1 -0
  97. package/dist/core/intel/types.d.ts +86 -0
  98. package/dist/core/intel/types.d.ts.map +1 -0
  99. package/dist/core/intel/types.js +8 -0
  100. package/dist/core/intel/types.js.map +1 -0
  101. package/dist/core/memory.d.ts.map +1 -1
  102. package/dist/core/memory.js +9 -12
  103. package/dist/core/memory.js.map +1 -1
  104. package/dist/core/memoryIngest.d.ts +18 -0
  105. package/dist/core/memoryIngest.d.ts.map +1 -0
  106. package/dist/core/memoryIngest.js +56 -0
  107. package/dist/core/memoryIngest.js.map +1 -0
  108. package/dist/core/memoryProvider.d.ts +63 -0
  109. package/dist/core/memoryProvider.d.ts.map +1 -0
  110. package/dist/core/memoryProvider.js +205 -0
  111. package/dist/core/memoryProvider.js.map +1 -0
  112. package/dist/core/skillStore.d.ts.map +1 -1
  113. package/dist/core/skillStore.js +2 -1
  114. package/dist/core/skillStore.js.map +1 -1
  115. package/dist/core/skills/SkillsManager.d.ts +38 -0
  116. package/dist/core/skills/SkillsManager.d.ts.map +1 -0
  117. package/dist/core/skills/SkillsManager.js +231 -0
  118. package/dist/core/skills/SkillsManager.js.map +1 -0
  119. package/dist/core/skills/distribution.d.ts +64 -0
  120. package/dist/core/skills/distribution.d.ts.map +1 -0
  121. package/dist/core/skills/distribution.js +269 -0
  122. package/dist/core/skills/distribution.js.map +1 -0
  123. package/dist/core/skills/index.d.ts +13 -0
  124. package/dist/core/skills/index.d.ts.map +1 -0
  125. package/dist/core/skills/index.js +13 -0
  126. package/dist/core/skills/index.js.map +1 -0
  127. package/dist/core/skills/types.d.ts +44 -0
  128. package/dist/core/skills/types.d.ts.map +1 -0
  129. package/dist/core/skills/types.js +9 -0
  130. package/dist/core/skills/types.js.map +1 -0
  131. package/dist/core/taskPrompts.d.ts +0 -12
  132. package/dist/core/taskPrompts.d.ts.map +1 -1
  133. package/dist/core/taskPrompts.js +0 -14
  134. package/dist/core/taskPrompts.js.map +1 -1
  135. package/dist/core/transcriptIngest.d.ts +37 -0
  136. package/dist/core/transcriptIngest.d.ts.map +1 -0
  137. package/dist/core/transcriptIngest.js +137 -0
  138. package/dist/core/transcriptIngest.js.map +1 -0
  139. package/dist/core/wiki/types.d.ts +282 -745
  140. package/dist/core/wiki/types.d.ts.map +1 -1
  141. package/dist/core/wiki/types.js +1 -1
  142. package/dist/core/wiki/types.js.map +1 -1
  143. package/dist/engines/SmartArrangeEngine.d.ts +75 -0
  144. package/dist/engines/SmartArrangeEngine.d.ts.map +1 -0
  145. package/dist/engines/SmartArrangeEngine.js +112 -0
  146. package/dist/engines/SmartArrangeEngine.js.map +1 -0
  147. package/dist/engines/StageEngine.d.ts +3 -17
  148. package/dist/engines/StageEngine.d.ts.map +1 -1
  149. package/dist/engines/StageEngine.js +13 -91
  150. package/dist/engines/StageEngine.js.map +1 -1
  151. package/dist/engines/smartarrange/AcpWorkerExec.d.ts +35 -0
  152. package/dist/engines/smartarrange/AcpWorkerExec.d.ts.map +1 -0
  153. package/dist/engines/smartarrange/AcpWorkerExec.js +71 -0
  154. package/dist/engines/smartarrange/AcpWorkerExec.js.map +1 -0
  155. package/dist/engines/smartarrange/cardSink.d.ts +29 -0
  156. package/dist/engines/smartarrange/cardSink.d.ts.map +1 -0
  157. package/dist/engines/smartarrange/cardSink.js +43 -0
  158. package/dist/engines/smartarrange/cardSink.js.map +1 -0
  159. package/dist/engines/smartarrange/runner.d.ts +24 -0
  160. package/dist/engines/smartarrange/runner.d.ts.map +1 -0
  161. package/dist/engines/smartarrange/runner.js +116 -0
  162. package/dist/engines/smartarrange/runner.js.map +1 -0
  163. package/dist/engines/smartarrange/screenshot.d.ts +5 -0
  164. package/dist/engines/smartarrange/screenshot.d.ts.map +1 -0
  165. package/dist/engines/smartarrange/screenshot.js +117 -0
  166. package/dist/engines/smartarrange/screenshot.js.map +1 -0
  167. package/dist/main.js +127 -92
  168. package/dist/main.js.map +1 -1
  169. package/dist/manager/worker-manager-impl.d.ts.map +1 -1
  170. package/dist/manager/worker-manager-impl.js +7 -0
  171. package/dist/manager/worker-manager-impl.js.map +1 -1
  172. package/dist/providers/LLMClient.d.ts +32 -0
  173. package/dist/providers/LLMClient.d.ts.map +1 -0
  174. package/dist/providers/LLMClient.js +108 -0
  175. package/dist/providers/LLMClient.js.map +1 -0
  176. package/dist/providers/MarkdownTaskBackend.d.ts.map +1 -1
  177. package/dist/providers/MarkdownTaskBackend.js +3 -2
  178. package/dist/providers/MarkdownTaskBackend.js.map +1 -1
  179. package/dist/providers/llm/chatTools.d.ts +11 -0
  180. package/dist/providers/llm/chatTools.d.ts.map +1 -0
  181. package/dist/providers/llm/chatTools.js +57 -0
  182. package/dist/providers/llm/chatTools.js.map +1 -0
  183. package/dist/providers/llm/codexAuth.d.ts +8 -0
  184. package/dist/providers/llm/codexAuth.d.ts.map +1 -0
  185. package/dist/providers/llm/codexAuth.js +57 -0
  186. package/dist/providers/llm/codexAuth.js.map +1 -0
  187. package/dist/providers/llm/codexModel.d.ts +14 -0
  188. package/dist/providers/llm/codexModel.d.ts.map +1 -0
  189. package/dist/providers/llm/codexModel.js +96 -0
  190. package/dist/providers/llm/codexModel.js.map +1 -0
  191. package/dist/providers/llm/localSubscription.d.ts +15 -0
  192. package/dist/providers/llm/localSubscription.d.ts.map +1 -0
  193. package/dist/providers/llm/localSubscription.js +66 -0
  194. package/dist/providers/llm/localSubscription.js.map +1 -0
  195. package/dist/providers/llm/modelFactory.d.ts +14 -0
  196. package/dist/providers/llm/modelFactory.d.ts.map +1 -0
  197. package/dist/providers/llm/modelFactory.js +22 -0
  198. package/dist/providers/llm/modelFactory.js.map +1 -0
  199. package/dist/providers/llm/monitorSkills.d.ts +6 -0
  200. package/dist/providers/llm/monitorSkills.d.ts.map +1 -0
  201. package/dist/providers/llm/monitorSkills.js +37 -0
  202. package/dist/providers/llm/monitorSkills.js.map +1 -0
  203. package/dist/providers/llm/probeTools.d.ts +7 -0
  204. package/dist/providers/llm/probeTools.d.ts.map +1 -0
  205. package/dist/providers/llm/probeTools.js +84 -0
  206. package/dist/providers/llm/probeTools.js.map +1 -0
  207. package/dist/providers/llm/providers.d.ts +26 -0
  208. package/dist/providers/llm/providers.d.ts.map +1 -0
  209. package/dist/providers/llm/providers.js +68 -0
  210. package/dist/providers/llm/providers.js.map +1 -0
  211. package/dist/providers/llm/skillTools.d.ts +4 -0
  212. package/dist/providers/llm/skillTools.d.ts.map +1 -0
  213. package/dist/providers/llm/skillTools.js +42 -0
  214. package/dist/providers/llm/skillTools.js.map +1 -0
  215. package/dist/providers/llm/workerTools.d.ts +9 -0
  216. package/dist/providers/llm/workerTools.d.ts.map +1 -0
  217. package/dist/providers/llm/workerTools.js +111 -0
  218. package/dist/providers/llm/workerTools.js.map +1 -0
  219. package/dist/providers/mcp/spsMcpServer.d.ts +15 -0
  220. package/dist/providers/mcp/spsMcpServer.d.ts.map +1 -0
  221. package/dist/providers/mcp/spsMcpServer.js +67 -0
  222. package/dist/providers/mcp/spsMcpServer.js.map +1 -0
  223. package/dist/providers/mcp/spsMcpStdio.d.ts +2 -0
  224. package/dist/providers/mcp/spsMcpStdio.d.ts.map +1 -0
  225. package/dist/providers/mcp/spsMcpStdio.js +32 -0
  226. package/dist/providers/mcp/spsMcpStdio.js.map +1 -0
  227. package/dist/providers/mcp/spsMcpStdioConfig.d.ts +11 -0
  228. package/dist/providers/mcp/spsMcpStdioConfig.d.ts.map +1 -0
  229. package/dist/providers/mcp/spsMcpStdioConfig.js +19 -0
  230. package/dist/providers/mcp/spsMcpStdioConfig.js.map +1 -0
  231. package/dist/server.d.ts +23 -0
  232. package/dist/server.d.ts.map +1 -1
  233. package/dist/server.js +23 -0
  234. package/dist/server.js.map +1 -1
  235. package/dist/services/ChatService.d.ts +8 -0
  236. package/dist/services/ChatService.d.ts.map +1 -1
  237. package/dist/services/ChatService.js +2 -0
  238. package/dist/services/ChatService.js.map +1 -1
  239. package/dist/services/LogService.d.ts +1 -1
  240. package/dist/services/LogService.d.ts.map +1 -1
  241. package/dist/services/LogService.js +3 -2
  242. package/dist/services/LogService.js.map +1 -1
  243. package/dist/services/ProjectService.d.ts +12 -2
  244. package/dist/services/ProjectService.d.ts.map +1 -1
  245. package/dist/services/ProjectService.js +1 -0
  246. package/dist/services/ProjectService.js.map +1 -1
  247. package/dist/services/SkillService.js +11 -13
  248. package/dist/services/SkillService.js.map +1 -1
  249. package/dist/services/SmartArrangeService.d.ts +12 -0
  250. package/dist/services/SmartArrangeService.d.ts.map +1 -0
  251. package/dist/services/SmartArrangeService.js +37 -0
  252. package/dist/services/SmartArrangeService.js.map +1 -0
  253. package/dist/services/SystemService.d.ts +20 -0
  254. package/dist/services/SystemService.d.ts.map +1 -1
  255. package/dist/services/SystemService.js +93 -0
  256. package/dist/services/SystemService.js.map +1 -1
  257. package/dist/services/WorkerService.d.ts +8 -0
  258. package/dist/services/WorkerService.d.ts.map +1 -1
  259. package/dist/services/WorkerService.js +73 -3
  260. package/dist/services/WorkerService.js.map +1 -1
  261. package/dist/services/container.d.ts +2 -0
  262. package/dist/services/container.d.ts.map +1 -1
  263. package/dist/services/container.js +2 -0
  264. package/dist/services/container.js.map +1 -1
  265. package/dist/shared/localTime.d.ts +8 -0
  266. package/dist/shared/localTime.d.ts.map +1 -0
  267. package/dist/shared/localTime.js +11 -0
  268. package/dist/shared/localTime.js.map +1 -0
  269. package/dist/shared/runtimePaths.d.ts +1 -1
  270. package/dist/shared/runtimePaths.d.ts.map +1 -1
  271. package/dist/shared/runtimePaths.js +2 -2
  272. package/dist/shared/runtimePaths.js.map +1 -1
  273. package/dist/shared/runtimeSchemas.d.ts +74 -245
  274. package/dist/shared/runtimeSchemas.d.ts.map +1 -1
  275. package/dist/shared/runtimeSchemas.js +2 -2
  276. package/dist/shared/runtimeSchemas.js.map +1 -1
  277. package/monitor-skills/probe-playbook/SKILL.md +32 -0
  278. package/monitor-skills/visual-rubric/SKILL.md +34 -0
  279. package/package.json +8 -8
  280. package/project-template/.claude/hooks/stop.sh +3 -1
  281. package/dist/console-assets/assets/index-BvWWj69G.js +0 -557
  282. package/dist/console-assets/assets/index-Eo4PuNPl.css +0 -10
  283. package/dist/interfaces/ACPClient.d.ts +0 -107
  284. package/dist/interfaces/ACPClient.d.ts.map +0 -1
  285. package/dist/interfaces/ACPClient.js +0 -17
  286. package/dist/interfaces/ACPClient.js.map +0 -1
  287. package/dist/interfaces/AgentRuntime.d.ts +0 -40
  288. package/dist/interfaces/AgentRuntime.d.ts.map +0 -1
  289. package/dist/interfaces/AgentRuntime.js +0 -17
  290. package/dist/interfaces/AgentRuntime.js.map +0 -1
  291. package/dist/manager/agentmemory.d.ts +0 -6
  292. package/dist/manager/agentmemory.d.ts.map +0 -1
  293. package/dist/manager/agentmemory.js +0 -73
  294. package/dist/manager/agentmemory.js.map +0 -1
  295. package/dist/models/acp.d.ts +0 -64
  296. package/dist/models/acp.d.ts.map +0 -1
  297. package/dist/models/acp.js +0 -17
  298. package/dist/models/acp.js.map +0 -1
  299. package/dist/providers/LocalACPClient.d.ts +0 -27
  300. package/dist/providers/LocalACPClient.d.ts.map +0 -1
  301. package/dist/providers/LocalACPClient.js +0 -26
  302. package/dist/providers/LocalACPClient.js.map +0 -1
  303. package/dist/providers/adapters/AcpSdkAdapter.d.ts +0 -24
  304. package/dist/providers/adapters/AcpSdkAdapter.d.ts.map +0 -1
  305. package/dist/providers/adapters/AcpSdkAdapter.js +0 -439
  306. package/dist/providers/adapters/AcpSdkAdapter.js.map +0 -1
  307. package/dist/providers/adapters/acp-fs-handlers.d.ts +0 -26
  308. package/dist/providers/adapters/acp-fs-handlers.d.ts.map +0 -1
  309. package/dist/providers/adapters/acp-fs-handlers.js +0 -61
  310. package/dist/providers/adapters/acp-fs-handlers.js.map +0 -1
  311. package/dist/providers/adapters/acp-permissions.d.ts +0 -42
  312. package/dist/providers/adapters/acp-permissions.d.ts.map +0 -1
  313. package/dist/providers/adapters/acp-permissions.js +0 -76
  314. package/dist/providers/adapters/acp-permissions.js.map +0 -1
  315. package/dist/providers/adapters/acp-session-accumulator.d.ts +0 -55
  316. package/dist/providers/adapters/acp-session-accumulator.d.ts.map +0 -1
  317. package/dist/providers/adapters/acp-session-accumulator.js +0 -133
  318. package/dist/providers/adapters/acp-session-accumulator.js.map +0 -1
  319. package/dist/providers/adapters/acp-terminal-manager.d.ts +0 -56
  320. package/dist/providers/adapters/acp-terminal-manager.d.ts.map +0 -1
  321. package/dist/providers/adapters/acp-terminal-manager.js +0 -127
  322. package/dist/providers/adapters/acp-terminal-manager.js.map +0 -1
  323. package/project-template/logs/.gitkeep +0 -0
  324. package/skills/architecture-decision-records/SKILL.md +0 -207
  325. package/skills/backend/SKILL.md +0 -62
  326. package/skills/backend/references/api-design.md +0 -168
  327. package/skills/backend/references/caching.md +0 -181
  328. package/skills/backend/references/data-access.md +0 -173
  329. package/skills/backend/references/layering.md +0 -181
  330. package/skills/backend/references/observability.md +0 -190
  331. package/skills/backend/references/resilience.md +0 -201
  332. package/skills/backend/references/security.md +0 -186
  333. package/skills/backend-architect/SKILL.md +0 -119
  334. package/skills/code-reviewer/SKILL.md +0 -143
  335. package/skills/coding-standards/SKILL.md +0 -60
  336. package/skills/coding-standards/references/clean-code.md +0 -258
  337. package/skills/coding-standards/references/code-review.md +0 -192
  338. package/skills/coding-standards/references/commits-and-prs.md +0 -226
  339. package/skills/coding-standards/references/error-strategy.md +0 -193
  340. package/skills/coding-standards/references/naming.md +0 -185
  341. package/skills/coding-standards/references/tdd.md +0 -171
  342. package/skills/database/SKILL.md +0 -53
  343. package/skills/database/references/indexing.md +0 -190
  344. package/skills/database/references/migrations.md +0 -199
  345. package/skills/database/references/nosql.md +0 -185
  346. package/skills/database/references/queries.md +0 -295
  347. package/skills/database/references/scaling.md +0 -203
  348. package/skills/database/references/schema.md +0 -191
  349. package/skills/database-optimizer/SKILL.md +0 -168
  350. package/skills/debugging-workflow/SKILL.md +0 -244
  351. package/skills/dev-worker/SKILL.md +0 -40
  352. package/skills/dev-worker/references/architect.md +0 -139
  353. package/skills/dev-worker/references/backend.md +0 -163
  354. package/skills/dev-worker/references/frontend.md +0 -122
  355. package/skills/dev-worker/references/fullstack.md +0 -179
  356. package/skills/dev-worker/references/optimizer.md +0 -151
  357. package/skills/dev-worker/references/phaser.md +0 -109
  358. package/skills/dev-worker/references/prototyper.md +0 -171
  359. package/skills/dev-worker/references/reviewer.md +0 -122
  360. package/skills/dev-worker/references/security.md +0 -154
  361. package/skills/dev-worker/references/senior.md +0 -155
  362. package/skills/dev-worker/references/typescript.md +0 -65
  363. package/skills/dev-worker/references/writer.md +0 -201
  364. package/skills/devops/SKILL.md +0 -55
  365. package/skills/devops/references/ci-cd.md +0 -204
  366. package/skills/devops/references/containers.md +0 -272
  367. package/skills/devops/references/deploy.md +0 -201
  368. package/skills/devops/references/iac.md +0 -252
  369. package/skills/devops/references/observability.md +0 -228
  370. package/skills/devops/references/secrets.md +0 -178
  371. package/skills/devops-automator/SKILL.md +0 -164
  372. package/skills/frontend/SKILL.md +0 -52
  373. package/skills/frontend/references/accessibility.md +0 -222
  374. package/skills/frontend/references/components.md +0 -206
  375. package/skills/frontend/references/performance.md +0 -219
  376. package/skills/frontend/references/routing.md +0 -209
  377. package/skills/frontend/references/state.md +0 -190
  378. package/skills/frontend/references/testing.md +0 -216
  379. package/skills/frontend-developer/SKILL.md +0 -115
  380. package/skills/git-workflow/SKILL.md +0 -355
  381. package/skills/golang/SKILL.md +0 -49
  382. package/skills/golang/references/concurrency.md +0 -284
  383. package/skills/golang/references/errors.md +0 -241
  384. package/skills/golang/references/idioms.md +0 -285
  385. package/skills/golang/references/testing.md +0 -238
  386. package/skills/java/SKILL.md +0 -50
  387. package/skills/java/references/concurrency.md +0 -194
  388. package/skills/java/references/idioms.md +0 -283
  389. package/skills/java/references/testing.md +0 -228
  390. package/skills/kotlin/SKILL.md +0 -47
  391. package/skills/kotlin/references/coroutines.md +0 -240
  392. package/skills/kotlin/references/idioms.md +0 -268
  393. package/skills/kotlin/references/testing.md +0 -219
  394. package/skills/mobile/SKILL.md +0 -50
  395. package/skills/mobile/references/architecture.md +0 -204
  396. package/skills/mobile/references/navigation.md +0 -158
  397. package/skills/mobile/references/performance.md +0 -152
  398. package/skills/mobile/references/platform.md +0 -166
  399. package/skills/mobile/references/state-and-data.md +0 -174
  400. package/skills/python/SKILL.md +0 -51
  401. package/skills/python/THIRD_PARTY.md +0 -14
  402. package/skills/python/references/async.md +0 -218
  403. package/skills/python/references/error-handling.md +0 -254
  404. package/skills/python/references/idioms.md +0 -279
  405. package/skills/python/references/packaging.md +0 -233
  406. package/skills/python/references/testing.md +0 -269
  407. package/skills/python/references/typing.md +0 -292
  408. package/skills/qa-tester/SKILL.md +0 -186
  409. package/skills/rust/SKILL.md +0 -50
  410. package/skills/rust/references/async.md +0 -224
  411. package/skills/rust/references/errors.md +0 -240
  412. package/skills/rust/references/ownership.md +0 -263
  413. package/skills/rust/references/testing.md +0 -274
  414. package/skills/rust/references/traits.md +0 -250
  415. package/skills/security-engineer/SKILL.md +0 -157
  416. package/skills/sps-memory/SKILL.md +0 -213
  417. package/skills/sps-pipeline/SKILL.md +0 -476
  418. package/skills/swift/SKILL.md +0 -48
  419. package/skills/swift/references/concurrency.md +0 -280
  420. package/skills/swift/references/idioms.md +0 -334
  421. package/skills/swift/references/testing.md +0 -229
  422. package/skills/tax-worker/SKILL.md +0 -150
  423. package/skills/tax-worker/references/account-codes.md +0 -165
  424. package/skills/typescript/SKILL.md +0 -51
  425. package/skills/typescript/references/async.md +0 -241
  426. package/skills/typescript/references/errors.md +0 -208
  427. package/skills/typescript/references/idioms.md +0 -246
  428. package/skills/typescript/references/testing.md +0 -225
  429. package/skills/typescript/references/tooling.md +0 -208
  430. package/skills/typescript/references/types.md +0 -259
  431. package/skills/wiki-update/SKILL.md +0 -300
@@ -1,439 +0,0 @@
1
- /**
2
- * @module AcpSdkAdapter
3
- * @description ACP SDK 适配器,通过 JSON-RPC over stdio 实现 Agent 客户端协议通信
4
- *
5
- * @author eddy
6
- * @organization wykj
7
- * @ownership wykj/eddy
8
- *
9
- * @created 2026-03-31
10
- * @updated 2026-04-03
11
- *
12
- * @role adapter
13
- * @layer provider
14
- * @boundedContext acp
15
- */
16
- import { execFileSync, spawn } from 'node:child_process';
17
- import { readFileSync } from 'node:fs';
18
- import { resolve } from 'node:path';
19
- import { Readable, Writable } from 'node:stream';
20
- import { ClientSideConnection, ndJsonStream } from '@agentclientprotocol/sdk';
21
- import { FileSystemHandlers } from './acp-fs-handlers.js';
22
- import { resolvePermission } from './acp-permissions.js';
23
- import { SessionUpdateAccumulator } from './acp-session-accumulator.js';
24
- import { TerminalManager } from './acp-terminal-manager.js';
25
- /** Check if a command exists in PATH */
26
- function commandExists(cmd) {
27
- try {
28
- execFileSync('which', [cmd], { stdio: 'ignore' });
29
- return true;
30
- }
31
- catch {
32
- return false;
33
- }
34
- }
35
- /** Resolve agent command: prefer global binary, fallback to npx */
36
- function resolveAgent(globalBin, npxPkg) {
37
- if (commandExists(globalBin))
38
- return { command: globalBin, args: [] };
39
- return { command: 'npx', args: ['-y', npxPkg] };
40
- }
41
- const BUILTIN_AGENTS = {
42
- claude: resolveAgent('claude-agent-acp', '@agentclientprotocol/claude-agent-acp'),
43
- };
44
- /** Load custom agents from ~/.coral/agents.json, merge with builtins. */
45
- export function loadAgentRegistry() {
46
- const registry = { ...BUILTIN_AGENTS };
47
- try {
48
- const home = process.env.HOME || '/home/coral';
49
- const custom = JSON.parse(readFileSync(resolve(home, '.coral', 'agents.json'), 'utf-8'));
50
- if (custom && typeof custom === 'object') {
51
- for (const [name, entry] of Object.entries(custom)) {
52
- const e = entry;
53
- if (e.command) {
54
- registry[name] = { command: e.command, args: e.args ?? [] };
55
- }
56
- }
57
- }
58
- }
59
- catch { /* no custom agents file */ }
60
- return registry;
61
- }
62
- function isChildAlive(child) {
63
- return child.exitCode == null && child.signalCode == null && !child.killed;
64
- }
65
- // isPidAlive imported from outputParser for cross-process PID liveness check
66
- import { isProcessAlive as isPidAlive } from '../outputParser.js';
67
- export class AcpSdkAdapter {
68
- sessions = new Map();
69
- defaultPermissionMode;
70
- constructor(permissionMode) {
71
- this.defaultPermissionMode =
72
- permissionMode ?? process.env.ACP_PERMISSION_MODE ?? 'approve-all';
73
- }
74
- async ensureSession(input) {
75
- const existing = this.sessions.get(input.sessionName);
76
- if (existing && !input.resetExisting && isChildAlive(existing.child)) {
77
- return {
78
- sessionId: existing.sessionId,
79
- sessionState: existing.activePromise ? 'busy' : 'ready',
80
- paneText: existing.accumulator.getRecentText(),
81
- lastSeenAt: new Date().toISOString(),
82
- pid: existing.child.pid ?? null,
83
- };
84
- }
85
- if (existing) {
86
- await this.destroySession(existing);
87
- this.sessions.delete(input.sessionName);
88
- }
89
- // Resolve adapter command
90
- const allAgents = loadAgentRegistry();
91
- const registry = allAgents[input.tool];
92
- if (!registry)
93
- throw new Error(`Unknown ACP tool: ${input.tool}`);
94
- process.stderr.write(`[acp-adapter] Spawning ${input.tool}: ${registry.command} ${registry.args.join(' ')} (cwd=${input.cwd})\n`);
95
- // Spawn ACP adapter child process.
96
- // extraEnv flows through the shim to claude and then to hook scripts —
97
- // used by SPS to inject SPS_CARD_ID / SPS_STAGE / SPS_PROJECT / SPS_WORKER_SLOT.
98
- const child = spawn(registry.command, registry.args, {
99
- cwd: input.cwd,
100
- stdio: ['pipe', 'pipe', 'pipe'],
101
- env: { ...process.env, ...(input.extraEnv ?? {}) },
102
- });
103
- // IMPORTANT: Register spawn/error listeners and await spawn BEFORE any async
104
- // operations (like dynamic imports). Otherwise the spawn event can fire during
105
- // an await gap and the once('spawn') listener misses it.
106
- const spawnTimeout = setTimeout(() => {
107
- try {
108
- child.kill('SIGKILL');
109
- }
110
- catch { /* noop */ }
111
- }, 60_000);
112
- spawnTimeout.unref();
113
- try {
114
- await new Promise((resolve, reject) => {
115
- child.once('spawn', () => resolve());
116
- child.once('error', (err) => reject(new Error(`Failed to spawn ${input.tool} ACP adapter: ${err.message}`)));
117
- });
118
- }
119
- catch (err) {
120
- clearTimeout(spawnTimeout);
121
- throw err;
122
- }
123
- clearTimeout(spawnTimeout);
124
- process.stderr.write(`[acp-adapter] Spawn succeeded (pid=${child.pid}), establishing JSON-RPC...\n`);
125
- // Capture stderr to log file for crash diagnosis (safe to await here — spawn already resolved)
126
- const stderrLogFile = input.logsDir
127
- ? resolve(input.logsDir, `acp-stderr-${input.tool}-${Date.now()}.log`)
128
- : null;
129
- let stderrFd = null;
130
- if (stderrLogFile) {
131
- try {
132
- const { openSync, writeSync, closeSync } = await import('node:fs');
133
- stderrFd = openSync(stderrLogFile, 'a');
134
- child.stderr?.on('data', (chunk) => {
135
- try {
136
- writeSync(stderrFd, chunk);
137
- }
138
- catch { /* non-fatal */ }
139
- });
140
- child.once('exit', (code, signal) => {
141
- const exitInfo = `\n[acp-stderr] Process exited: code=${code}, signal=${signal}, pid=${child.pid}\n`;
142
- try {
143
- writeSync(stderrFd, Buffer.from(exitInfo));
144
- }
145
- catch { /* non-fatal */ }
146
- if (stderrFd != null)
147
- try {
148
- closeSync(stderrFd);
149
- }
150
- catch { /* noop */ }
151
- });
152
- }
153
- catch {
154
- child.stderr?.on('data', () => { });
155
- }
156
- }
157
- else {
158
- child.stderr?.on('data', () => { });
159
- }
160
- // Establish JSON-RPC connection over stdio
161
- const stream = ndJsonStream(Writable.toWeb(child.stdin), Readable.toWeb(child.stdout));
162
- const accumulator = new SessionUpdateAccumulator();
163
- const permissionMode = this.defaultPermissionMode;
164
- // Set up log file for sps logs compatibility
165
- if (input.logsDir) {
166
- const logFileName = `${input.sessionName}-acp-${Date.now()}.log`;
167
- accumulator.setLogFile(`${input.logsDir}/${logFileName}`);
168
- }
169
- const fsHandlers = new FileSystemHandlers({ cwd: input.cwd, permissionMode });
170
- const terminalMgr = new TerminalManager({ cwd: input.cwd, permissionMode });
171
- const conn = new ClientSideConnection(() => ({
172
- sessionUpdate: async (params) => {
173
- accumulator.handleUpdate(params.update);
174
- },
175
- requestPermission: async (params) => {
176
- accumulator.hasPendingPermission = true;
177
- const result = resolvePermission(params, permissionMode);
178
- accumulator.hasPendingPermission = false;
179
- return result;
180
- },
181
- readTextFile: async (params) => {
182
- return fsHandlers.readTextFile(params);
183
- },
184
- writeTextFile: async (params) => {
185
- return fsHandlers.writeTextFile(params);
186
- },
187
- createTerminal: async (params) => {
188
- return terminalMgr.createTerminal(params);
189
- },
190
- terminalOutput: async (params) => {
191
- return terminalMgr.terminalOutput(params);
192
- },
193
- waitForTerminalExit: async (params) => {
194
- return terminalMgr.waitForTerminalExit(params);
195
- },
196
- killTerminal: async (params) => {
197
- return terminalMgr.killTerminal(params);
198
- },
199
- releaseTerminal: async (params) => {
200
- return terminalMgr.releaseTerminal(params);
201
- },
202
- }), stream);
203
- // Protocol initialization
204
- process.stderr.write(`[acp-adapter] Initializing ${input.tool} ACP protocol...\n`);
205
- const _initResult = await conn.initialize({
206
- protocolVersion: 1,
207
- clientCapabilities: {
208
- fs: { readTextFile: true, writeTextFile: true },
209
- terminal: true,
210
- },
211
- });
212
- process.stderr.write(`[acp-adapter] Protocol initialized. Creating session...\n`);
213
- // Create new session
214
- const sessionResult = await conn.newSession({
215
- cwd: input.cwd,
216
- mcpServers: (input.mcpServers ?? []).map(s => ({
217
- name: s.name,
218
- command: s.command,
219
- args: s.args ?? [],
220
- env: s.env ?? [],
221
- })),
222
- });
223
- process.stderr.write(`[acp-adapter] Session created: ${sessionResult.sessionId}\n`);
224
- const session = {
225
- tool: input.tool,
226
- sessionId: sessionResult.sessionId,
227
- sessionName: input.sessionName,
228
- cwd: input.cwd,
229
- child,
230
- conn,
231
- accumulator,
232
- activePromise: null,
233
- permissionMode,
234
- };
235
- this.sessions.set(input.sessionName, session);
236
- return {
237
- sessionId: sessionResult.sessionId,
238
- sessionState: 'ready',
239
- paneText: '',
240
- lastSeenAt: new Date().toISOString(),
241
- pid: child.pid ?? null,
242
- };
243
- }
244
- async startRun(input) {
245
- const session = this.sessions.get(input.sessionName);
246
- if (!session)
247
- throw new Error(`ACP session not found: ${input.sessionName}`);
248
- if (session.activePromise)
249
- throw new Error(`Session ${input.sessionName} already has active run`);
250
- session.accumulator.reset();
251
- // Non-blocking prompt — store promise but don't await
252
- session.activePromise = session.conn.prompt({
253
- sessionId: session.sessionId,
254
- prompt: [{ type: 'text', text: input.prompt }],
255
- });
256
- session.activePromise
257
- .then((result) => {
258
- session.accumulator.markComplete(result.stopReason ?? 'end_turn');
259
- session.activePromise = null;
260
- })
261
- .catch((err) => {
262
- const msg = err instanceof Error ? err.message : String(err);
263
- process.stderr.write(`[acp] Prompt failed for ${input.sessionName}: ${msg}\n`);
264
- session.accumulator.markComplete('failed');
265
- session.activePromise = null;
266
- });
267
- return {
268
- runId: `acp-${Date.now()}`,
269
- runState: 'running',
270
- paneText: '',
271
- lastSeenAt: new Date().toISOString(),
272
- pid: session.child.pid ?? null,
273
- };
274
- }
275
- async inspectSession(input) {
276
- const session = this.sessions.get(input.sessionName);
277
- // In-process session: direct check
278
- if (session && isChildAlive(session.child)) {
279
- return {
280
- sessionState: session.activePromise ? 'busy' : 'ready',
281
- paneText: session.accumulator.getRecentText(),
282
- lastSeenAt: new Date().toISOString(),
283
- };
284
- }
285
- // Cross-process fallback: check persisted PID liveness
286
- if (input.pid && isPidAlive(input.pid)) {
287
- return {
288
- sessionState: 'busy', // PID alive but not our process — assume busy
289
- paneText: '',
290
- lastSeenAt: new Date().toISOString(),
291
- };
292
- }
293
- return { sessionState: 'offline', paneText: '', lastSeenAt: new Date().toISOString() };
294
- }
295
- async inspectRun(input) {
296
- if (!input.activeRun) {
297
- return { runState: null, paneText: '', lastSeenAt: new Date().toISOString() };
298
- }
299
- const session = this.sessions.get(input.sessionName);
300
- // In-process session: detailed status from accumulator
301
- if (session && isChildAlive(session.child)) {
302
- // (handled below)
303
- }
304
- else if (input.pid && isPidAlive(input.pid)) {
305
- // Cross-process fallback: PID alive = running
306
- return { runState: 'running', paneText: '', lastSeenAt: new Date().toISOString() };
307
- }
308
- else {
309
- return { runState: 'lost', paneText: '', lastSeenAt: new Date().toISOString() };
310
- }
311
- const acc = session.accumulator;
312
- let runState;
313
- if (!session.activePromise) {
314
- // Prompt has returned
315
- runState = acc.stopReason === 'end_turn' ? 'completed'
316
- : acc.stopReason === 'cancelled' ? 'cancelled'
317
- : 'failed';
318
- }
319
- else if (acc.hasPendingPermission) {
320
- runState = 'needs_confirmation';
321
- }
322
- else if (acc.lastUpdateAt && acc.getRecentText().length > 0) {
323
- // Idle detection: if agent has produced output but no updates for 60s,
324
- // treat as completed. Some ACP adapters (e.g. codex-acp) may not
325
- // resolve the prompt() call even after the agent finishes.
326
- const idleMs = Date.now() - new Date(acc.lastUpdateAt).getTime();
327
- if (idleMs > 60_000) {
328
- acc.markComplete('end_turn');
329
- session.activePromise = null;
330
- runState = 'completed';
331
- }
332
- else {
333
- runState = 'running';
334
- }
335
- }
336
- else {
337
- runState = 'running';
338
- }
339
- return {
340
- runState,
341
- paneText: acc.getRecentText(),
342
- lastSeenAt: new Date().toISOString(),
343
- };
344
- }
345
- subscribe(sessionName, listener) {
346
- const session = this.sessions.get(sessionName);
347
- if (!session)
348
- return () => { };
349
- session.accumulator.addListener(listener);
350
- return () => session.accumulator.removeListener(listener);
351
- }
352
- async cancelRun(sessionName) {
353
- const session = this.sessions.get(sessionName);
354
- if (!session || !session.activePromise)
355
- return;
356
- try {
357
- await session.conn.cancel({ sessionId: session.sessionId });
358
- }
359
- catch {
360
- /* Agent may have already finished/crashed — safe to ignore */
361
- }
362
- // Mark accumulator complete so subscribers see cancellation and exit loop.
363
- // activePromise will also settle naturally via the cancel response.
364
- session.accumulator.markComplete('cancelled');
365
- }
366
- async stopSession(input) {
367
- const session = this.sessions.get(input.sessionName);
368
- if (!session)
369
- return;
370
- if (session.activePromise) {
371
- try {
372
- await session.conn.cancel({ sessionId: session.sessionId });
373
- }
374
- catch { /* Agent may already be dead */ }
375
- }
376
- await this.destroySession(session);
377
- this.sessions.delete(input.sessionName);
378
- }
379
- async destroySession(session) {
380
- const pid = session.child.pid;
381
- const log = (msg) => process.stderr.write(`[acp-adapter] ${msg}\n`);
382
- // Kill child + try to kill descendant processes
383
- try {
384
- session.child.kill('SIGTERM');
385
- }
386
- catch (e) {
387
- log(`SIGTERM child failed: ${e instanceof Error ? e.message : e}`);
388
- }
389
- if (pid) {
390
- try {
391
- process.kill(pid, 'SIGTERM');
392
- }
393
- catch { /* already dead */ }
394
- this.killDescendants(pid, 'SIGTERM');
395
- }
396
- await new Promise((resolve) => {
397
- const timeout = setTimeout(() => {
398
- try {
399
- session.child.kill('SIGKILL');
400
- }
401
- catch (e) {
402
- log(`SIGKILL child failed (pid=${pid}): ${e instanceof Error ? e.message : e}`);
403
- }
404
- if (pid) {
405
- try {
406
- process.kill(pid, 'SIGKILL');
407
- }
408
- catch (e) {
409
- log(`SIGKILL pid=${pid} failed: ${e instanceof Error ? e.message : e}`);
410
- }
411
- this.killDescendants(pid, 'SIGKILL');
412
- }
413
- resolve();
414
- }, 3_000);
415
- session.child.once('exit', () => {
416
- clearTimeout(timeout);
417
- resolve();
418
- });
419
- });
420
- }
421
- /** Kill all child processes of a given PID (Linux: pgrep -P). */
422
- killDescendants(parentPid, signal) {
423
- try {
424
- const out = execFileSync('pgrep', ['-P', String(parentPid)], { encoding: 'utf-8', timeout: 2000 });
425
- for (const line of out.trim().split('\n')) {
426
- const childPid = parseInt(line, 10);
427
- if (childPid > 0) {
428
- try {
429
- process.kill(childPid, signal);
430
- }
431
- catch { /* already dead */ }
432
- this.killDescendants(childPid, signal);
433
- }
434
- }
435
- }
436
- catch { /* pgrep not found or no children — expected */ }
437
- }
438
- }
439
- //# sourceMappingURL=AcpSdkAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AcpSdkAdapter.js","sourceRoot":"","sources":["../../../src/providers/adapters/AcpSdkAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- import type { PermissionMode } from './acp-permissions.js';
2
- interface ReadTextFileRequest {
3
- path: string;
4
- line?: number;
5
- limit?: number;
6
- }
7
- interface WriteTextFileRequest {
8
- path: string;
9
- content: string;
10
- }
11
- export declare class FileSystemHandlers {
12
- private readonly rootDir;
13
- private readonly permissionMode;
14
- constructor(opts: {
15
- cwd: string;
16
- permissionMode: PermissionMode;
17
- });
18
- readTextFile(params: ReadTextFileRequest): Promise<{
19
- content: string;
20
- }>;
21
- writeTextFile(params: WriteTextFileRequest): Promise<Record<string, never>>;
22
- private resolvePathWithinRoot;
23
- private sliceContent;
24
- }
25
- export {};
26
- //# sourceMappingURL=acp-fs-handlers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"acp-fs-handlers.d.ts","sourceRoot":"","sources":["../../../src/providers/adapters/acp-fs-handlers.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,oBAAoB;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;gBAEpC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,cAAc,CAAA;KAAE;IAK3D,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IASvE,aAAa,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAUjF,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,YAAY;CAOrB"}
@@ -1,61 +0,0 @@
1
- /**
2
- * @module acp-fs-handlers
3
- * @description ACP 文件系统处理器,处理文件读写回调并强制沙箱隔离
4
- *
5
- * @author eddy
6
- * @organization wykj
7
- * @ownership wykj/eddy
8
- *
9
- * @created 2026-03-31
10
- * @updated 2026-04-03
11
- *
12
- * @role adapter
13
- * @layer provider
14
- * @boundedContext acp
15
- */
16
- import { mkdir, readFile, writeFile } from 'node:fs/promises';
17
- import path from 'node:path';
18
- export class FileSystemHandlers {
19
- rootDir;
20
- permissionMode;
21
- constructor(opts) {
22
- this.rootDir = path.resolve(opts.cwd);
23
- this.permissionMode = opts.permissionMode;
24
- }
25
- async readTextFile(params) {
26
- if (this.permissionMode === 'deny-all') {
27
- throw new Error('Permission denied for fs/read_text_file (deny-all)');
28
- }
29
- const filePath = this.resolvePathWithinRoot(params.path);
30
- const content = await readFile(filePath, 'utf-8');
31
- return { content: this.sliceContent(content, params.line, params.limit) };
32
- }
33
- async writeTextFile(params) {
34
- if (this.permissionMode === 'deny-all') {
35
- throw new Error('Permission denied for fs/write_text_file (deny-all)');
36
- }
37
- const filePath = this.resolvePathWithinRoot(params.path);
38
- await mkdir(path.dirname(filePath), { recursive: true });
39
- await writeFile(filePath, params.content, 'utf-8');
40
- return {};
41
- }
42
- resolvePathWithinRoot(rawPath) {
43
- if (!path.isAbsolute(rawPath)) {
44
- throw new Error(`Path must be absolute: ${rawPath}`);
45
- }
46
- const resolved = path.resolve(rawPath);
47
- if (resolved !== this.rootDir && !resolved.startsWith(this.rootDir + path.sep)) {
48
- throw new Error(`Path outside allowed cwd subtree: ${resolved}`);
49
- }
50
- return resolved;
51
- }
52
- sliceContent(content, line, limit) {
53
- if (line == null && limit == null)
54
- return content;
55
- const lines = content.split('\n');
56
- const startIndex = Math.max(0, (line ?? 1) - 1);
57
- const endIndex = limit == null ? lines.length : Math.min(lines.length, startIndex + limit);
58
- return lines.slice(startIndex, endIndex).join('\n');
59
- }
60
- }
61
- //# sourceMappingURL=acp-fs-handlers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"acp-fs-handlers.js","sourceRoot":"","sources":["../../../src/providers/adapters/acp-fs-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,IAAI,MAAM,WAAW,CAAC;AAc7B,MAAM,OAAO,kBAAkB;IACZ,OAAO,CAAS;IAChB,cAAc,CAAiB;IAEhD,YAAY,IAAqD;QAC/D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAA2B;QAC5C,IAAI,IAAI,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAA4B;QAC9C,IAAI,IAAI,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,qBAAqB,CAAC,OAAe;QAC3C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,QAAQ,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/E,MAAM,IAAI,KAAK,CAAC,qCAAqC,QAAQ,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,YAAY,CAAC,OAAe,EAAE,IAAa,EAAE,KAAc;QACjE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO,OAAO,CAAC;QAClD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,KAAK,CAAC,CAAC;QAC3F,OAAO,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;CACF"}
@@ -1,42 +0,0 @@
1
- /**
2
- * @module acp-permissions
3
- * @description ACP 权限解析器,三层决策链自动审批工具调用权限
4
- *
5
- * @author eddy
6
- * @organization wykj
7
- * @ownership wykj/eddy
8
- *
9
- * @created 2026-03-31
10
- * @updated 2026-03-31
11
- *
12
- * @role adapter
13
- * @layer provider
14
- * @boundedContext acp
15
- */
16
- export type PermissionMode = 'approve-all' | 'approve-reads' | 'deny-all';
17
- interface PermissionParams {
18
- toolCall: {
19
- toolCallId?: string;
20
- title?: string;
21
- kind?: string;
22
- status?: string;
23
- };
24
- options: ReadonlyArray<{
25
- optionId: string;
26
- kind: string;
27
- name?: string;
28
- }>;
29
- }
30
- interface PermissionResponse {
31
- outcome: {
32
- outcome: 'selected';
33
- optionId: string;
34
- } | {
35
- outcome: 'cancelled';
36
- };
37
- }
38
- /** Infer tool kind from toolCall.kind or title keywords (aligned with acpx). */
39
- export declare function inferToolKind(params: Pick<PermissionParams, 'toolCall'>): string | undefined;
40
- export declare function resolvePermission(params: PermissionParams, mode: PermissionMode): PermissionResponse;
41
- export {};
42
- //# sourceMappingURL=acp-permissions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"acp-permissions.d.ts","sourceRoot":"","sources":["../../../src/providers/adapters/acp-permissions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,eAAe,GAAG,UAAU,CAAC;AAE1E,UAAU,gBAAgB;IACxB,QAAQ,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,OAAO,EAAE,aAAa,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;CACJ;AAED,UAAU,kBAAkB;IAC1B,OAAO,EACH;QAAE,OAAO,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GACzC;QAAE,OAAO,EAAE,WAAW,CAAA;KAAE,CAAC;CAC9B;AAaD,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,GAAG,MAAM,GAAG,SAAS,CAc5F;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,cAAc,GAAG,kBAAkB,CA4BpG"}