@antelopejs/dms-ai 0.9.0 → 0.9.2

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 (293) hide show
  1. package/README.md +32 -34
  2. package/dist/constants/http.d.ts +1 -0
  3. package/dist/constants/http.js +1 -0
  4. package/dist/constants/http.js.map +1 -1
  5. package/dist/database/catalog.js +21 -3
  6. package/dist/database/catalog.js.map +1 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/lifecycle/sidecar-owner.js.map +1 -1
  9. package/dist/lifecycle/skill-sources.js +19 -146
  10. package/dist/lifecycle/skill-sources.js.map +1 -1
  11. package/dist/lifecycle/spawn-sidecar.js +2 -2
  12. package/dist/lifecycle/spawn-sidecar.js.map +1 -1
  13. package/dist/lifecycle/terminate-process.d.ts +1 -0
  14. package/dist/lifecycle/terminate-process.js +8 -4
  15. package/dist/lifecycle/terminate-process.js.map +1 -1
  16. package/dist/logging/log-buffer.js +22 -14
  17. package/dist/logging/log-buffer.js.map +1 -1
  18. package/dist/pages/settings/availability.js +41 -5
  19. package/dist/pages/settings/availability.js.map +1 -1
  20. package/dist/pages/settings/options.d.ts +2 -1
  21. package/dist/pages/settings/options.js +29 -8
  22. package/dist/pages/settings/options.js.map +1 -1
  23. package/dist/pages/settings/sections.js +15 -4
  24. package/dist/pages/settings/sections.js.map +1 -1
  25. package/dist/pages-registry.js +2 -6
  26. package/dist/pages-registry.js.map +1 -1
  27. package/dist/routes/activity.js +4 -3
  28. package/dist/routes/activity.js.map +1 -1
  29. package/dist/routes/banner.d.ts +2 -1
  30. package/dist/routes/banner.js +4 -1
  31. package/dist/routes/banner.js.map +1 -1
  32. package/dist/routes/builder.d.ts +5 -5
  33. package/dist/routes/builder.js +62 -44
  34. package/dist/routes/builder.js.map +1 -1
  35. package/dist/routes/changes.js +8 -7
  36. package/dist/routes/changes.js.map +1 -1
  37. package/dist/routes/codex-account.js +11 -5
  38. package/dist/routes/codex-account.js.map +1 -1
  39. package/dist/routes/content-json.d.ts +6 -0
  40. package/dist/routes/content-json.js +12 -0
  41. package/dist/routes/content-json.js.map +1 -0
  42. package/dist/routes/metrics.js +8 -8
  43. package/dist/routes/metrics.js.map +1 -1
  44. package/dist/routes/settings.js +4 -3
  45. package/dist/routes/settings.js.map +1 -1
  46. package/dist/routes/sidecar-answers.d.ts +10 -0
  47. package/dist/routes/sidecar-answers.js +90 -0
  48. package/dist/routes/sidecar-answers.js.map +1 -0
  49. package/dist/routes/sidecar-results.d.ts +2 -1
  50. package/dist/routes/sidecar-results.js +8 -2
  51. package/dist/routes/sidecar-results.js.map +1 -1
  52. package/dist/routes/skills.d.ts +2 -2
  53. package/dist/routes/skills.js +3 -2
  54. package/dist/routes/skills.js.map +1 -1
  55. package/dist/routes/status.js +23 -4
  56. package/dist/routes/status.js.map +1 -1
  57. package/dist/sidecar/answer-schemas.d.ts +8 -0
  58. package/dist/sidecar/answer-schemas.js +60 -0
  59. package/dist/sidecar/answer-schemas.js.map +1 -0
  60. package/dist/sidecar/http-client.d.ts +4 -2
  61. package/dist/sidecar/http-client.js +5 -2
  62. package/dist/sidecar/http-client.js.map +1 -1
  63. package/dist/sidecar/index.d.ts +1 -0
  64. package/dist/sidecar/index.js +1 -0
  65. package/dist/sidecar/index.js.map +1 -1
  66. package/dist/sidecar/settings-values.d.ts +3 -0
  67. package/dist/sidecar/settings-values.js +33 -1
  68. package/dist/sidecar/settings-values.js.map +1 -1
  69. package/dist/types/status.d.ts +2 -2
  70. package/dist/vocabulary/enumerations.js +2 -0
  71. package/dist/vocabulary/enumerations.js.map +1 -1
  72. package/frontend-vue/app/chat/components/ChatView.vue +16 -49
  73. package/frontend-vue/app/chat/components/Composer.vue +23 -39
  74. package/frontend-vue/app/chat/components/NoticeCard.vue +9 -0
  75. package/frontend-vue/app/chat/components/ProviderNotice.vue +14 -3
  76. package/frontend-vue/app/chat/composables/conversation-events.ts +0 -3
  77. package/frontend-vue/app/chat/composables/useConversationMode.ts +8 -11
  78. package/frontend-vue/app/chat/composables/useFollowScroll.ts +77 -0
  79. package/frontend-vue/app/chat/constants/modes.ts +15 -0
  80. package/frontend-vue/app/chat/constants/protocol.ts +0 -1
  81. package/frontend-vue/app/chat/constants/settings.ts +1 -1
  82. package/frontend-vue/app/chat/types/protocol.ts +11 -9
  83. package/frontend-vue/app/chat/types/settings.ts +7 -2
  84. package/frontend-vue/app/chat/utils/permission-view.ts +1 -0
  85. package/frontend-vue/app/views/constants.ts +2 -0
  86. package/frontend-vue/app/views/types.ts +3 -1
  87. package/frontend-vue/i18n/locales/dms-ai-pages-en-GB.json +21 -11
  88. package/frontend-vue/i18n/locales/dms-ai-pages-fr-FR.json +21 -11
  89. package/frontend-vue/i18n/locales/dms-ai-panel-en-GB.json +11 -21
  90. package/frontend-vue/i18n/locales/dms-ai-panel-fr-FR.json +11 -21
  91. package/frontend-vue/i18n/locales/dms-ai-views-en-GB.json +2 -0
  92. package/frontend-vue/i18n/locales/dms-ai-views-fr-FR.json +2 -0
  93. package/frontend-vue/package.json +1 -1
  94. package/frontend-vue/tests/chat/chat-scroll.test.ts +251 -0
  95. package/frontend-vue/tests/chat/conversation-events.test.ts +1 -3
  96. package/frontend-vue/tests/chat/provider-notice.test.ts +33 -0
  97. package/frontend-vue/tests/chat-panel.test.ts +2 -4
  98. package/frontend-vue/tests/panel-modes.test.ts +146 -0
  99. package/frontend-vue/tests/panel-questions.test.ts +1 -19
  100. package/frontend-vue/tests/panel-states.test.ts +12 -16
  101. package/frontend-vue/tests/support/fake-layout.ts +119 -0
  102. package/frontend-vue/tests/support/panel-harness.ts +14 -6
  103. package/frontend-vue/tests/support/setup-layout.ts +3 -0
  104. package/frontend-vue/tests/support/stubs.ts +2 -0
  105. package/frontend-vue/vitest.config.ts +1 -0
  106. package/package.json +16 -10
  107. package/sidecar/dist/agent/always-ask-files.d.ts +2 -0
  108. package/sidecar/dist/agent/always-ask-files.js +34 -0
  109. package/sidecar/dist/agent/always-ask-files.js.map +1 -0
  110. package/sidecar/dist/agent/conversation-modes.d.ts +3 -12
  111. package/sidecar/dist/agent/conversation-modes.js +16 -69
  112. package/sidecar/dist/agent/conversation-modes.js.map +1 -1
  113. package/sidecar/dist/agent/effective-mode.d.ts +2 -5
  114. package/sidecar/dist/agent/effective-mode.js +1 -15
  115. package/sidecar/dist/agent/effective-mode.js.map +1 -1
  116. package/sidecar/dist/agent/permission-bus.d.ts +1 -2
  117. package/sidecar/dist/agent/permission-bus.js +1 -3
  118. package/sidecar/dist/agent/permission-bus.js.map +1 -1
  119. package/sidecar/dist/agent/permission-preview.d.ts +6 -0
  120. package/sidecar/dist/agent/permission-preview.js +35 -10
  121. package/sidecar/dist/agent/permission-preview.js.map +1 -1
  122. package/sidecar/dist/agent/permission-rules.js +2 -2
  123. package/sidecar/dist/agent/permission-rules.js.map +1 -1
  124. package/sidecar/dist/agent/project-secrets.d.ts +7 -0
  125. package/sidecar/dist/agent/project-secrets.js +61 -0
  126. package/sidecar/dist/agent/project-secrets.js.map +1 -0
  127. package/sidecar/dist/agent/provider.d.ts +5 -4
  128. package/sidecar/dist/agent/runner.d.ts +3 -2
  129. package/sidecar/dist/agent/runner.js +9 -3
  130. package/sidecar/dist/agent/runner.js.map +1 -1
  131. package/sidecar/dist/agent/session.d.ts +3 -3
  132. package/sidecar/dist/agent/session.js.map +1 -1
  133. package/sidecar/dist/agent/tool-kinds.d.ts +7 -1
  134. package/sidecar/dist/agent/tool-kinds.js +24 -5
  135. package/sidecar/dist/agent/tool-kinds.js.map +1 -1
  136. package/sidecar/dist/agent/typecheck.js +14 -1
  137. package/sidecar/dist/agent/typecheck.js.map +1 -1
  138. package/sidecar/dist/audit/activity-query.js +2 -0
  139. package/sidecar/dist/audit/activity-query.js.map +1 -1
  140. package/sidecar/dist/audit/activity.js +1 -0
  141. package/sidecar/dist/audit/activity.js.map +1 -1
  142. package/sidecar/dist/audit/call-audit.js.map +1 -1
  143. package/sidecar/dist/builder/builder-client.d.ts +3 -1
  144. package/sidecar/dist/builder/builder-client.js +13 -1
  145. package/sidecar/dist/builder/builder-client.js.map +1 -1
  146. package/sidecar/dist/constants/audit.d.ts +1 -3
  147. package/sidecar/dist/constants/audit.js +2 -1
  148. package/sidecar/dist/constants/audit.js.map +1 -1
  149. package/sidecar/dist/constants/builder.d.ts +3 -0
  150. package/sidecar/dist/constants/builder.js +3 -0
  151. package/sidecar/dist/constants/builder.js.map +1 -1
  152. package/sidecar/dist/constants/claude.d.ts +6 -0
  153. package/sidecar/dist/constants/claude.js +6 -0
  154. package/sidecar/dist/constants/claude.js.map +1 -1
  155. package/sidecar/dist/constants/codex.d.ts +4 -0
  156. package/sidecar/dist/constants/codex.js +4 -0
  157. package/sidecar/dist/constants/codex.js.map +1 -1
  158. package/sidecar/dist/constants/permissions.d.ts +2 -0
  159. package/sidecar/dist/constants/permissions.js +23 -0
  160. package/sidecar/dist/constants/permissions.js.map +1 -1
  161. package/sidecar/dist/constants/project-secrets.d.ts +5 -0
  162. package/sidecar/dist/constants/project-secrets.js +20 -0
  163. package/sidecar/dist/constants/project-secrets.js.map +1 -0
  164. package/sidecar/dist/constants/providers.d.ts +2 -0
  165. package/sidecar/dist/constants/providers.js +1 -0
  166. package/sidecar/dist/constants/providers.js.map +1 -1
  167. package/sidecar/dist/constants/settings.d.ts +1 -2
  168. package/sidecar/dist/constants/settings.js +2 -9
  169. package/sidecar/dist/constants/settings.js.map +1 -1
  170. package/sidecar/dist/constants/tool-kinds.d.ts +67 -2
  171. package/sidecar/dist/constants/tool-kinds.js +111 -34
  172. package/sidecar/dist/constants/tool-kinds.js.map +1 -1
  173. package/sidecar/dist/index.js.map +1 -1
  174. package/sidecar/dist/mcp/http-binding.js +1 -1
  175. package/sidecar/dist/mcp/http-binding.js.map +1 -1
  176. package/sidecar/dist/mcp/tools/builder-compose.d.ts +4 -4
  177. package/sidecar/dist/mcp/tools/builder-compose.js +4 -3
  178. package/sidecar/dist/mcp/tools/builder-compose.js.map +1 -1
  179. package/sidecar/dist/mcp/tools/builder-expr.d.ts +5 -2
  180. package/sidecar/dist/mcp/tools/builder-expr.js +8 -11
  181. package/sidecar/dist/mcp/tools/builder-expr.js.map +1 -1
  182. package/sidecar/dist/mcp/tools/builder-gate.js +3 -1
  183. package/sidecar/dist/mcp/tools/builder-gate.js.map +1 -1
  184. package/sidecar/dist/mcp/tools/builder-project.d.ts +2 -1
  185. package/sidecar/dist/mcp/tools/builder-project.js +94 -16
  186. package/sidecar/dist/mcp/tools/builder-project.js.map +1 -1
  187. package/sidecar/dist/mcp/tools/builder-queries.d.ts +6 -6
  188. package/sidecar/dist/mcp/tools/builder-queries.js +9 -10
  189. package/sidecar/dist/mcp/tools/builder-queries.js.map +1 -1
  190. package/sidecar/dist/mcp/tools/builder-table-view.js +10 -8
  191. package/sidecar/dist/mcp/tools/builder-table-view.js.map +1 -1
  192. package/sidecar/dist/mcp/tools/builder.d.ts +14 -14
  193. package/sidecar/dist/mcp/tools/builder.js +17 -12
  194. package/sidecar/dist/mcp/tools/builder.js.map +1 -1
  195. package/sidecar/dist/protocol/events.d.ts +97 -63
  196. package/sidecar/dist/protocol/events.js +14 -8
  197. package/sidecar/dist/protocol/events.js.map +1 -1
  198. package/sidecar/dist/protocol/messages.d.ts +54 -49
  199. package/sidecar/dist/protocol/messages.js +8 -13
  200. package/sidecar/dist/protocol/messages.js.map +1 -1
  201. package/sidecar/dist/providers/claude/config.d.ts +3 -3
  202. package/sidecar/dist/providers/claude/config.js +4 -2
  203. package/sidecar/dist/providers/claude/config.js.map +1 -1
  204. package/sidecar/dist/providers/claude/provider.js +20 -26
  205. package/sidecar/dist/providers/claude/provider.js.map +1 -1
  206. package/sidecar/dist/providers/claude/safe-mode.d.ts +5 -5
  207. package/sidecar/dist/providers/claude/safe-mode.js +49 -30
  208. package/sidecar/dist/providers/claude/safe-mode.js.map +1 -1
  209. package/sidecar/dist/providers/claude/sdk-loader.js +2 -5
  210. package/sidecar/dist/providers/claude/sdk-loader.js.map +1 -1
  211. package/sidecar/dist/providers/claude/secret-files.d.ts +2 -0
  212. package/sidecar/dist/providers/claude/secret-files.js +50 -0
  213. package/sidecar/dist/providers/claude/secret-files.js.map +1 -0
  214. package/sidecar/dist/providers/claude/session-stream.d.ts +4 -9
  215. package/sidecar/dist/providers/claude/session-stream.js +22 -0
  216. package/sidecar/dist/providers/claude/session-stream.js.map +1 -1
  217. package/sidecar/dist/providers/claude/tool-guard.d.ts +14 -0
  218. package/sidecar/dist/providers/claude/tool-guard.js +112 -0
  219. package/sidecar/dist/providers/claude/tool-guard.js.map +1 -0
  220. package/sidecar/dist/providers/codex/adapter.d.ts +10 -0
  221. package/sidecar/dist/providers/codex/adapter.js +20 -5
  222. package/sidecar/dist/providers/codex/adapter.js.map +1 -1
  223. package/sidecar/dist/providers/codex/client.d.ts +3 -1
  224. package/sidecar/dist/providers/codex/client.js +26 -14
  225. package/sidecar/dist/providers/codex/client.js.map +1 -1
  226. package/sidecar/dist/providers/codex/config.d.ts +6 -17
  227. package/sidecar/dist/providers/codex/config.js +9 -56
  228. package/sidecar/dist/providers/codex/config.js.map +1 -1
  229. package/sidecar/dist/providers/codex/mcp-elicitation.d.ts +21 -0
  230. package/sidecar/dist/providers/codex/mcp-elicitation.js +66 -0
  231. package/sidecar/dist/providers/codex/mcp-elicitation.js.map +1 -0
  232. package/sidecar/dist/providers/codex/module.js +1 -1
  233. package/sidecar/dist/providers/codex/module.js.map +1 -1
  234. package/sidecar/dist/providers/codex/patch-directories.d.ts +6 -0
  235. package/sidecar/dist/providers/codex/patch-directories.js +53 -0
  236. package/sidecar/dist/providers/codex/patch-directories.js.map +1 -0
  237. package/sidecar/dist/providers/codex/permission-profiles.d.ts +11 -0
  238. package/sidecar/dist/providers/codex/permission-profiles.js +37 -0
  239. package/sidecar/dist/providers/codex/permission-profiles.js.map +1 -0
  240. package/sidecar/dist/providers/codex/permissions.d.ts +13 -4
  241. package/sidecar/dist/providers/codex/permissions.js +28 -2
  242. package/sidecar/dist/providers/codex/permissions.js.map +1 -1
  243. package/sidecar/dist/providers/codex/process.d.ts +1 -0
  244. package/sidecar/dist/providers/codex/process.js +3 -1
  245. package/sidecar/dist/providers/codex/process.js.map +1 -1
  246. package/sidecar/dist/providers/codex/protocol/common.d.ts +16 -4
  247. package/sidecar/dist/providers/codex/protocol/index.d.ts +2 -2
  248. package/sidecar/dist/providers/codex/protocol/index.js +1 -1
  249. package/sidecar/dist/providers/codex/protocol/index.js.map +1 -1
  250. package/sidecar/dist/providers/codex/protocol/v2.d.ts +23 -32
  251. package/sidecar/dist/providers/codex/provider.js +16 -15
  252. package/sidecar/dist/providers/codex/provider.js.map +1 -1
  253. package/sidecar/dist/providers/codex/secret-file-globs.d.ts +2 -0
  254. package/sidecar/dist/providers/codex/secret-file-globs.js +45 -0
  255. package/sidecar/dist/providers/codex/secret-file-globs.js.map +1 -0
  256. package/sidecar/dist/providers/codex/skills.d.ts +36 -3
  257. package/sidecar/dist/providers/codex/skills.js +16 -0
  258. package/sidecar/dist/providers/codex/skills.js.map +1 -1
  259. package/sidecar/dist/providers/types.d.ts +3 -1
  260. package/sidecar/dist/providers/types.js +2 -2
  261. package/sidecar/dist/providers/types.js.map +1 -1
  262. package/sidecar/dist/server/http-routes.js +1 -1
  263. package/sidecar/dist/server/http-routes.js.map +1 -1
  264. package/sidecar/dist/server/permission-events.d.ts +1 -1
  265. package/sidecar/dist/server/permission-events.js +5 -8
  266. package/sidecar/dist/server/permission-events.js.map +1 -1
  267. package/sidecar/dist/server/routing.js +0 -5
  268. package/sidecar/dist/server/routing.js.map +1 -1
  269. package/sidecar/dist/server/tool-calls.d.ts +0 -2
  270. package/sidecar/dist/server/tool-calls.js +20 -20
  271. package/sidecar/dist/server/tool-calls.js.map +1 -1
  272. package/sidecar/dist/server/turns.js +9 -1
  273. package/sidecar/dist/server/turns.js.map +1 -1
  274. package/sidecar/dist/server/ws.js +4 -15
  275. package/sidecar/dist/server/ws.js.map +1 -1
  276. package/sidecar/dist/skills/skill-usage.js +2 -2
  277. package/sidecar/dist/skills/skill-usage.js.map +1 -1
  278. package/sidecar/dist/state/change-sets.js.map +1 -1
  279. package/sidecar/dist/state/settings-store.d.ts +13 -5
  280. package/sidecar/dist/state/settings-store.js +33 -8
  281. package/sidecar/dist/state/settings-store.js.map +1 -1
  282. package/sidecar/dist/state/settings-types.d.ts +15 -2
  283. package/sidecar/dist/state/settings-types.js +14 -1
  284. package/sidecar/dist/state/settings-types.js.map +1 -1
  285. package/sidecar/dist/state/store.js +1 -4
  286. package/sidecar/dist/state/store.js.map +1 -1
  287. package/sidecar/dist/state/types.d.ts +7 -6
  288. package/sidecar/dist/state/types.js.map +1 -1
  289. package/sidecar/package.json +2 -1
  290. package/skills/dms-ai/SKILL.md +2 -1
  291. package/skills/dms-external-database/SKILL.md +5 -2
  292. package/frontend-vue/app/chat/components/FullAutoBanner.vue +0 -76
  293. package/frontend-vue/app/chat/components/FullAutoDialog.vue +0 -103
package/README.md CHANGED
@@ -1,42 +1,42 @@
1
1
  <div align="center">
2
2
 
3
- # @antelopejs/dms-ai
3
+ # `@antelopejs/dms-ai`
4
4
 
5
- <a href="https://www.npmjs.com/package/@antelopejs/dms-ai"><img alt="npm" src="https://img.shields.io/npm/v/@antelopejs/dms-ai?style=for-the-badge&labelColor=000000&color=000000"></a>
6
- <a href="./LICENSE"><img alt="License" src="https://img.shields.io/npm/l/@antelopejs/dms-ai?style=for-the-badge&labelColor=000000&color=000000"></a>
7
- <a href="https://discord.gg/g4pFt6eXqu"><img alt="Discord" src="https://img.shields.io/badge/Discord-18181B?logo=discord&style=for-the-badge&color=000000"></a>
8
- <a href="https://dms.antelopejs.com/docs/modules/ai"><img alt="Documentation" src="https://img.shields.io/badge/Docs-18181B?style=for-the-badge&color=000000"></a>
5
+ <a href="https://www.npmjs.com/package/@antelopejs/dms-ai"><img alt="npm" src="https://img.shields.io/npm/v/@antelopejs/dms-ai?style=for-the-badge&labelColor=000000&color=000000" data-illustration></a>
6
+ <a href="./LICENSE"><img alt="License" src="https://img.shields.io/npm/l/@antelopejs/dms-ai?style=for-the-badge&labelColor=000000&color=000000" data-illustration></a>
7
+ <a href="https://discord.gg/g4pFt6eXqu"><img alt="Discord" src="https://img.shields.io/badge/Discord-18181B?logo=discord&style=for-the-badge&color=000000" data-illustration></a>
8
+ <a href="https://dms.antelopejs.com/docs/modules/ai"><img alt="Documentation" src="https://img.shields.io/badge/Docs-18181B?style=for-the-badge&color=000000" data-illustration></a>
9
9
 
10
- An AI development assistant inside the [AntelopeJS DMS](https://github.com/AntelopeJS/dms) dashboard.
10
+ **An AI development assistant inside the [AntelopeJS DMS](https://github.com/AntelopeJS/dms) dashboard.**
11
11
 
12
12
  </div>
13
13
 
14
- ![A conversation in the chat panel: two applied checkpoints with their files, an auto-fix turn and the assistant's summary](./docs/images/chat-conversation.webp)
14
+ <img data-illustration alt="Screen recording from the AntelopeJS DMS film. The assistant panel opens next to a dashboard with Claude Code as the coding agent, and the request Add a card with the sites that stopped reporting is typed under the caption Or describe it. The assistant then reports Added the card Delayed sites with Typecheck passed, the changed files dashboard/page.ts and dashboard/stats.ts, and the buttons Review diff and Undo, under the caption A change set. Review it. Undo it." src="./docs/images/assistant.gif">
15
15
 
16
16
  ## What it does
17
17
 
18
- - Docks a chat panel next to any page (`Ctrl` `Shift` `K`), with the page as context.
19
- - Runs a coding agent (Claude Code by default, or OpenAI's Codex) in a local sidecar that reads the project, its loaded modules and their skills.
20
- - Edits pages through the [Builder](https://github.com/AntelopeJS/dms-builder) in Safe mode, or writes code, then typechecks and shows the result live.
18
+ - Docks a chat panel next to any page, with the page as context. `Ctrl` `Shift` `K` opens it.
19
+ - Runs a coding agent in a local sidecar. The agent is Claude Code by default, or OpenAI's Codex, and it reads the project, its loaded modules and their skills.
20
+ - Edits pages through the [Builder](https://github.com/AntelopeJS/dms-builder) in Safe mode, or writes code in Code mode. It then typechecks and shows the result live.
21
21
  - Saves every turn that touches the project as a change set you can review, undo and redo.
22
- - Adds an owner-only **Assistant** module: Overview, Changes, Activity, Skills and Settings.
22
+ - Adds an **Assistant** module for owners, with the **Overview**, **Changes**, **Activity**, **Skills** and **Settings** pages.
23
23
 
24
- The assistant is a development tool: the backend and the sidecar refuse to run with `NODE_ENV=production`.
24
+ The assistant is a development tool. With `NODE_ENV=production`, the backend starts no sidecar and the dashboard shows no assistant. The sidecar exits if you start it yourself in production.
25
25
 
26
26
  ## Install
27
27
 
28
- Run the AntelopeJS CLI from the root of a project that already loads `@antelopejs/dms`:
28
+ From the root of a project that already loads `@antelopejs/dms`, add the module with the AntelopeJS CLI:
29
29
 
30
30
  ```bash
31
31
  ajs project modules add @antelopejs/dms-ai
32
- ajs project modules add @antelopejs/dms-builder # recommended: enables Safe mode
32
+ ajs project modules add @antelopejs/dms-builder # optional, turns on Safe mode
33
33
  ```
34
34
 
35
35
  ## Quick start
36
36
 
37
- Point the sidecar at the origin the `api` module reserved:
37
+ Point the sidecar at the origin that the `api` module reserved:
38
38
 
39
- ```ts
39
+ ```ts fragment
40
40
  // antelope.config.ts
41
41
  "dms-ai": {
42
42
  source: { type: "package", package: "@antelopejs/dms-ai" },
@@ -46,7 +46,9 @@ Point the sidecar at the origin the `api` module reserved:
46
46
  },
47
47
  ```
48
48
 
49
- Claude Code runs with its own credentials (its login, or `ANTHROPIC_API_KEY` in the backend's environment). Codex runs on your ChatGPT plan: install `@openai/codex` at the pinned version, then press **Sign in with ChatGPT** in Assistant › Settings (on a remote DMS, paste the address OpenAI sends you back to with **Paste the return address**). No OpenAI API key is used. Restart the backend, then the frontend, sign in as an owner and press `Ctrl` `Shift` `K` (`⌘` `⇧` `K` on macOS). Set `DMS_AI=0` to start the backend without the sidecar.
49
+ Claude Code runs with its own credentials, either its login or `ANTHROPIC_API_KEY` in the backend's environment. Codex runs on your ChatGPT plan and uses no OpenAI API key. To use Codex, install `@openai/codex` at the version that `peerDependencies` pins, then press **Sign in with ChatGPT** in **Assistant** › **Settings**. On a DMS that runs on another machine, finish the sign-in with **Paste the return address**.
50
+
51
+ Restart the backend, then the frontend. Sign in as an owner and press `Ctrl` `Shift` `K` (`⌘` `⇧` `K` on macOS). To start the backend without the sidecar, set `DMS_AI=0`.
50
52
 
51
53
  ## Requirements
52
54
 
@@ -54,37 +56,33 @@ Claude Code runs with its own credentials (its login, or `ANTHROPIC_API_KEY` in
54
56
 
55
57
  | Package | Supported | Tested with |
56
58
  | ---------------------------------------- | ----------------- | ----------- |
57
- | `@antelopejs/interface-api` | `>=0.0.15 <1.0.0` | `0.0.15` |
58
- | `@antelopejs/interface-core` | `>=0.2.4 <1.0.0` | `0.2.4` |
59
+ | `@antelopejs/agent-skills` | `^0.1.0` | `0.1.0` |
60
+ | `@antelopejs/interface-api` | `>=0.3.0 <1.0.0` | `0.3.0` |
61
+ | `@antelopejs/interface-core` | `>=0.4.0 <1.0.0` | `0.4.0` |
59
62
  | `@antelopejs/interface-database-catalog` | `>=0.0.1 <1.0.0` | `0.0.2` |
60
- | `@antelopejs/interface-dms` | `>=0.9.0 <1.0.0` | `0.9.0` |
61
- | `@antelopejs/interface-dms-builder` | `>=0.3.0 <1.0.0` | `0.3.0` |
63
+ | `@antelopejs/interface-dms` | `>=0.12.0 <1.0.0` | `0.12.0` |
64
+ | `@antelopejs/interface-dms-builder` | `>=0.4.0 <1.0.0` | `0.4.0` |
62
65
 
63
66
  <!-- antelopejs-docs-compat:end -->
64
67
 
65
- | Package | Version |
66
- | --- | --- |
67
- | `@antelopejs/dms` | `>=0.13.1 <1.0.0` |
68
- | `@antelopejs/interface-dms` | `>=0.9.0 <1.0.0` |
69
- | `@antelopejs/dms-frontend` (renderer) | `>=0.9.1 <0.10.0` |
70
- | `@antelopejs/dms-builder` (optional, Safe mode) | `>=0.4.0` |
68
+ The module needs a DMS backend in a release that implements the `@antelopejs/interface-dms` range in the table. The dashboard needs an `@antelopejs/dms-frontend` renderer in the range that `engines["@antelopejs/dms-frontend"]` of `frontend-vue/package.json` declares. The `ajs dms` CLI refuses to build the module with a renderer outside that range. `@antelopejs/dms-builder` is optional and turns on Safe mode.
71
69
 
72
70
  ## Documentation
73
71
 
74
72
  - [Introduction](https://dms.antelopejs.com/docs/modules/ai/introduction)
75
73
  - [Installation](https://dms.antelopejs.com/docs/modules/ai/installation)
76
- - [Configuration](https://dms.antelopejs.com/docs/modules/ai/configuration): agent providers, Codex, Safe mode, remote access
74
+ - [Configuration](https://dms.antelopejs.com/docs/modules/ai/configuration), with the agent providers, Codex, Safe mode and remote access
77
75
  - [Usage](https://dms.antelopejs.com/docs/modules/ai/usage/chat)
78
76
  - [Extending](https://dms.antelopejs.com/docs/modules/ai/extending)
79
77
  - [FAQ](https://dms.antelopejs.com/docs/modules/ai/faq)
80
78
 
81
- The guide's sources live in [`docs/`](./docs). The package ships the `dms-ai`, `dms-builder-safe` and `dms-ai-code-mode` Claude Code skills in [`skills/`](./skills), declared under `antelopeJs.skills` and loaded into the assistant's agent.
79
+ The guide's sources live in [`docs/`](./docs). The package ships four agent skills in [`skills/`](./skills): `dms-ai`, `dms-ai-code-mode`, `dms-builder-safe` and `dms-external-database`. `antelopeJs.skills` declares them, and the assistant loads them into its agent.
82
80
 
83
81
  ## Contributing
84
82
 
85
- Read [CONTRIBUTING.md](./CONTRIBUTING.md) before opening a pull request.
83
+ Read [CONTRIBUTING.md](./CONTRIBUTING.md) before you open a pull request.
86
84
 
87
- One install from the repository root includes the backend, shipped Vue frontend and sidecar. Each keeps its own lockfile. The playground remains independent and needs its own install for local development. Builds use the installed dependencies and do not install them again.
85
+ One install from the repository root installs the backend, the shipped Vue frontend and the sidecar. Each of the three keeps its own lockfile. The playground is separate and needs its own install for local development. The builds use the installed dependencies and do not install them again.
88
86
 
89
87
  ```bash
90
88
  pnpm install --frozen-lockfile
@@ -101,9 +99,9 @@ pnpm test:node # every backend suite, after a single build
101
99
  <details>
102
100
  <summary>Repository notes</summary>
103
101
 
104
- - The module registers `frontend-vue` through `AddFrontendModule` with the Vue 3 renderer. The chat panel, `DmsAiChatPanel`, is a docked side panel (`registerSidePanel`): the DMS renders it once for the whole app, so it lives through Inertia navigations and keeps its open state and width in a cookie. The command palette's assistant mode answers with `DmsAiPaletteAnswer` (`registerCommandPaletteAssistant`). The chat's code is under `frontend-vue/app/chat`. The renderer bundles the icons it finds in `.vue` files, so an icon name belongs in the component that shows it.
105
- - To build and typecheck the Vue source, set `DMS_FRONTEND_WORKSPACE` to the absolute path of a generated Inertia workspace that includes this module, then run `pnpm --dir frontend-vue build` and `pnpm --dir frontend-vue typecheck`.
106
- - `pnpm test:node` runs every backend suite after one build (`DMS_PREBUILT=1` skips the build when `dist/` is fresh, as in CI): `test:frontend-registration` (backend registration, sidecar inputs, `$dms_ai` keys in both locales), `test:routes` (the `/ai/*` routes against a stand-in sidecar) and `test:sidecar-lifecycle` (hot reload, restart, stale sidecar, Ctrl+C). The opt-in Codex acceptance suite runs with `CODEX_ACCEPTANCE=1 pnpm --dir sidecar test:acceptance`.
102
+ - The module registers `frontend-vue` through `AddFrontendModule` with the Vue renderer. The chat panel, `DmsAiChatPanel`, is a docked side panel (`registerSidePanel`). The DMS renders it once for the whole app, so the panel stays mounted across Inertia navigations and keeps its open state and width in a cookie. The command palette's assistant mode answers with `DmsAiPaletteAnswer` (`registerCommandPaletteAssistant`). The chat's code is under `frontend-vue/app/chat`. The renderer bundles the icons it finds in `.vue` files, so an icon name belongs in the component that shows it.
103
+ - To build and typecheck the Vue source, set `DMS_FRONTEND_WORKSPACE` to the absolute path of a generated Inertia workspace that includes this module. Then run `pnpm --dir frontend-vue build` and `pnpm --dir frontend-vue typecheck`.
104
+ - `pnpm test:node` builds once, then runs every suite in `tests/` except the sidecar build smoke test (`pnpm test:sidecar-smoke`). `DMS_PREBUILT=1` skips the build when `dist/` is fresh, as in CI. Each suite also has its own script, for example `test:frontend-registration` (backend registration, sidecar inputs, `$dms_ai` keys in both locales), `test:routes` (the `/ai/*` routes against a stand-in sidecar) and `test:sidecar-lifecycle` (hot reload, restart, stale sidecar, `Ctrl` `C`). The opt-in Codex acceptance suite runs with `CODEX_ACCEPTANCE=1 pnpm --dir sidecar test:acceptance`.
107
105
 
108
106
  </details>
109
107
 
@@ -2,6 +2,7 @@ export declare const HTTP_STATUS: {
2
2
  readonly OK: 200;
3
3
  readonly NO_CONTENT: 204;
4
4
  readonly BAD_REQUEST: 400;
5
+ readonly BAD_GATEWAY: 502;
5
6
  readonly UNAVAILABLE: 503;
6
7
  };
7
8
  export declare const ASSISTANT_UNAVAILABLE_MESSAGE = "The assistant isn't running.";
@@ -6,6 +6,7 @@ exports.HTTP_STATUS = {
6
6
  OK: 200,
7
7
  NO_CONTENT: 204,
8
8
  BAD_REQUEST: 400,
9
+ BAD_GATEWAY: 502,
9
10
  UNAVAILABLE: sidecar_1.SIDECAR_UNAVAILABLE_STATUS,
10
11
  };
11
12
  exports.ASSISTANT_UNAVAILABLE_MESSAGE = "The assistant isn't running.";
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/constants/http.ts"],"names":[],"mappings":";;;AAAA,uCAAuD;AAE1C,QAAA,WAAW,GAAG;IACzB,EAAE,EAAE,GAAG;IACP,UAAU,EAAE,GAAG;IACf,WAAW,EAAE,GAAG;IAChB,WAAW,EAAE,oCAA0B;CAC/B,CAAC;AAGE,QAAA,6BAA6B,GAAG,8BAA8B,CAAC;AAE/D,QAAA,yBAAyB,GAAG,oCAAoC,CAAC;AAEjE,QAAA,gBAAgB,GAAG,yBAAyB,CAAC"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/constants/http.ts"],"names":[],"mappings":";;;AAAA,uCAAuD;AAE1C,QAAA,WAAW,GAAG;IACzB,EAAE,EAAE,GAAG;IACP,UAAU,EAAE,GAAG;IACf,WAAW,EAAE,GAAG;IAChB,WAAW,EAAE,GAAG;IAChB,WAAW,EAAE,oCAA0B;CAC/B,CAAC;AAGE,QAAA,6BAA6B,GAAG,8BAA8B,CAAC;AAE/D,QAAA,yBAAyB,GAAG,oCAAoC,CAAC;AAEjE,QAAA,gBAAgB,GAAG,yBAAyB,CAAC"}
@@ -11,6 +11,20 @@ function catalogConnections() {
11
11
  ? lookup()
12
12
  : (0, interface_core_1.RunWithResponsibleModule)(OWN_MODULE, lookup);
13
13
  }
14
+ function isCatalogConnection(loaded) {
15
+ return (typeof loaded === "object" &&
16
+ loaded !== null &&
17
+ "Info" in loaded &&
18
+ typeof loaded.Info === "function" &&
19
+ "ListRelations" in loaded &&
20
+ typeof loaded.ListRelations === "function" &&
21
+ "DescribeRelations" in loaded &&
22
+ typeof loaded.DescribeRelations === "function" &&
23
+ "Profile" in loaded &&
24
+ typeof loaded.Profile === "function" &&
25
+ "CheckReference" in loaded &&
26
+ typeof loaded.CheckReference === "function");
27
+ }
14
28
  function listConnections() {
15
29
  return catalogConnections()
16
30
  .map((connection) => connection.id)
@@ -18,8 +32,12 @@ function listConnections() {
18
32
  }
19
33
  function catalogOf(id) {
20
34
  const connection = catalogConnections().find((candidate) => candidate.id === id);
21
- return connection
22
- ? require(connection.path)
23
- : undefined;
35
+ if (!connection)
36
+ return undefined;
37
+ const loaded = require(connection.path);
38
+ if (!isCatalogConnection(loaded)) {
39
+ throw new TypeError(`Catalog connection ${id} does not answer the interface-database-catalog functions`);
40
+ }
41
+ return loaded;
24
42
  }
25
43
  //# sourceMappingURL=catalog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/database/catalog.ts"],"names":[],"mappings":";;AA+BA,0CAIC;AAGD,8BAOC;AA7CD,+DAKoC;AAEpC,oDAA0D;AAO1D,MAAM,UAAU,GAAG,IAAA,qCAAoB,GAAE,CAAC;AAE1C,SAAS,kBAAkB;IACzB,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,IAAA,sCAAqB,EAAC,4BAAiB,CAAC,CAAC;IAC9D,OAAO,UAAU,KAAK,SAAS;QAC7B,CAAC,CAAC,MAAM,EAAE;QACV,CAAC,CAAC,IAAA,yCAAwB,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACnD,CAAC;AAUD,SAAgB,eAAe;IAC7B,OAAO,kBAAkB,EAAE;SACxB,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;SAClC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC3E,CAAC;AAGD,SAAgB,SAAS,CAAC,EAAU;IAClC,MAAM,UAAU,GAAG,kBAAkB,EAAE,CAAC,IAAI,CAC1C,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CACnC,CAAC;IACF,OAAO,UAAU;QACf,CAAC,CAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAuB;QACjD,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/database/catalog.ts"],"names":[],"mappings":";;AAqDA,0CAIC;AAOD,8BAYC;AA5ED,+DAKoC;AAEpC,oDAA0D;AAO1D,MAAM,UAAU,GAAG,IAAA,qCAAoB,GAAE,CAAC;AAE1C,SAAS,kBAAkB;IACzB,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,IAAA,sCAAqB,EAAC,4BAAiB,CAAC,CAAC;IAC9D,OAAO,UAAU,KAAK,SAAS;QAC7B,CAAC,CAAC,MAAM,EAAE;QACV,CAAC,CAAC,IAAA,yCAAwB,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACnD,CAAC;AAUD,SAAS,mBAAmB,CAAC,MAAe;IAC1C,OAAO,CACL,OAAO,MAAM,KAAK,QAAQ;QAC1B,MAAM,KAAK,IAAI;QACf,MAAM,IAAI,MAAM;QAChB,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU;QACjC,eAAe,IAAI,MAAM;QACzB,OAAO,MAAM,CAAC,aAAa,KAAK,UAAU;QAC1C,mBAAmB,IAAI,MAAM;QAC7B,OAAO,MAAM,CAAC,iBAAiB,KAAK,UAAU;QAC9C,SAAS,IAAI,MAAM;QACnB,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU;QACpC,gBAAgB,IAAI,MAAM;QAC1B,OAAO,MAAM,CAAC,cAAc,KAAK,UAAU,CAC5C,CAAC;AACJ,CAAC;AAOD,SAAgB,eAAe;IAC7B,OAAO,kBAAkB,EAAE;SACxB,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;SAClC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC3E,CAAC;AAOD,SAAgB,SAAS,CAAC,EAAU;IAClC,MAAM,UAAU,GAAG,kBAAkB,EAAE,CAAC,IAAI,CAC1C,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CACnC,CAAC;IACF,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAClC,MAAM,MAAM,GAAY,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,SAAS,CACjB,sBAAsB,EAAE,2DAA2D,CACpF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAcA,8BAEC;AAOD,sBAkBC;AAOD,0BAEC;AAlDD,gEAA6D;AAC7D,yDAAmE;AACnE,iDAAwD;AACxD,kDAAsD;AACtD,qCAA8D;AAC9D,iDAAyD;AACzD,2DAA8D;AAC9D,6DAAgE;AAChE,6DAAyD;AACzD,qDAAuD;AACvD,mBAAiB;AACjB,oBAAkB;AAClB,uDAAmD;AAEnD,SAAgB,SAAS,CAAC,MAAe;IACvC,IAAA,kBAAS,EAAC,qBAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AACvD,CAAC;AAOM,KAAK,UAAU,KAAK;IACzB,IAAA,4BAAe,GAAE,CAAC;IAClB,MAAM,IAAA,wBAAiB,EAAC,IAAA,gCAAc,GAAE,CAAC,CAAC;IAC1C,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACtC,MAAM,CAAC,WAAW,EAAE,SAAS,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACjE,IAAA,iCAAkB,GAAE;QACpB,IAAA,mCAAmB,EAAC,eAAe,CAAC;QACpC,IAAA,6BAAkB,GAAE;KACrB,CAAC,CAAC;IACH,KAAK,IAAA,4BAAY,EAAC;QAChB,eAAe;QACf,GAAG,IAAA,kBAAS,GAAE;QACd,WAAW;QACX,SAAS;QACT,cAAc;KACf,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACf,iBAAO,CAAC,KAAK,CAAC,GAAG,4BAAkB,gBAAgB,EAAE,GAAG,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC;AAOD,SAAgB,OAAO;IACrB,IAAA,0BAAe,GAAE,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAeA,8BAEC;AAOD,sBAkBC;AAOD,0BAEC;AAnDD,gEAA6D;AAC7D,yDAAmE;AACnE,iDAAwD;AACxD,kDAAsD;AACtD,qCAA8D;AAC9D,iDAAyD;AACzD,2DAA8D;AAC9D,6DAAgE;AAChE,6DAAyD;AACzD,qDAAuD;AACvD,mBAAiB;AACjB,oBAAkB;AAClB,uDAAmD;AAGnD,SAAgB,SAAS,CAAC,MAAe;IACvC,IAAA,kBAAS,EAAC,qBAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AACvD,CAAC;AAOM,KAAK,UAAU,KAAK;IACzB,IAAA,4BAAe,GAAE,CAAC;IAClB,MAAM,IAAA,wBAAiB,EAAC,IAAA,gCAAc,GAAE,CAAC,CAAC;IAC1C,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACtC,MAAM,CAAC,WAAW,EAAE,SAAS,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACjE,IAAA,iCAAkB,GAAE;QACpB,IAAA,mCAAmB,EAAC,eAAe,CAAC;QACpC,IAAA,6BAAkB,GAAE;KACrB,CAAC,CAAC;IACH,KAAK,IAAA,4BAAY,EAAC;QAChB,eAAe;QACf,GAAG,IAAA,kBAAS,GAAE;QACd,WAAW;QACX,SAAS;QACT,cAAc;KACf,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QACxB,iBAAO,CAAC,KAAK,CAAC,GAAG,4BAAkB,gBAAgB,EAAE,GAAG,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC;AAOD,SAAgB,OAAO;IACrB,IAAA,0BAAe,GAAE,CAAC;AACpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sidecar-owner.js","sourceRoot":"","sources":["../../src/lifecycle/sidecar-owner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sidecar-owner.js","sourceRoot":"","sources":["../../src/lifecycle/sidecar-owner.ts"],"names":[],"mappings":"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"}
@@ -1,47 +1,13 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.collectSkillSources = collectSkillSources;
7
- const promises_1 = require("node:fs/promises");
8
- const node_module_1 = require("node:module");
9
- const node_path_1 = __importDefault(require("node:path"));
10
4
  const zod_1 = require("zod");
5
+ const agent_skills_1 = require("@antelopejs/agent-skills");
11
6
  const logging_1 = require("@antelopejs/interface-core/logging");
12
7
  const modules_1 = require("@antelopejs/interface-core/modules");
13
8
  const sidecar_1 = require("../constants/sidecar");
14
- const SkillDirSchema = zod_1.z.string().min(1);
15
9
  const LocalPathSchema = zod_1.z.string().min(1);
16
- const PackageManifestSchema = zod_1.z
17
- .object({
18
- name: zod_1.z.string().optional().catch(undefined),
19
- antelopeJs: zod_1.z
20
- .object({ skills: zod_1.z.array(zod_1.z.unknown()).optional().catch(undefined) })
21
- .optional()
22
- .catch(undefined),
23
- dependencies: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional().catch(undefined),
24
- devDependencies: zod_1.z
25
- .record(zod_1.z.string(), zod_1.z.unknown())
26
- .optional()
27
- .catch(undefined),
28
- optionalDependencies: zod_1.z
29
- .record(zod_1.z.string(), zod_1.z.unknown())
30
- .optional()
31
- .catch(undefined),
32
- })
33
- .catch({});
34
- const PACKAGE_JSON_FILE = "package.json";
35
- const NODE_MODULES_DIR = "node_modules";
36
10
  const FALLBACK_PLUGIN_NAME = "skills";
37
- const MODULE_DEPENDENCY_FIELDS = [
38
- "dependencies",
39
- "optionalDependencies",
40
- ];
41
- const PROJECT_DEPENDENCY_FIELDS = [
42
- ...MODULE_DEPENDENCY_FIELDS,
43
- "devDependencies",
44
- ];
45
11
  function sanitizePluginName(name) {
46
12
  const cleaned = name.toLowerCase().replace(/[^a-z0-9-]+/g, "-");
47
13
  const trimmed = cleaned.replace(/^-+|-+$/g, "");
@@ -54,105 +20,16 @@ function toPluginName(name) {
54
20
  function toDependencyPluginName(name) {
55
21
  return sanitizePluginName(name);
56
22
  }
57
- function readDeclaredSkillDirs(pkg) {
58
- return (pkg.antelopeJs?.skills ?? []).flatMap((entry) => {
59
- const dir = SkillDirSchema.safeParse(entry);
60
- return dir.success ? [dir.data] : [];
61
- });
62
- }
63
- async function readPackageJson(dir) {
64
- try {
65
- const raw = await (0, promises_1.readFile)(node_path_1.default.join(dir, PACKAGE_JSON_FILE), "utf8");
66
- return PackageManifestSchema.parse(JSON.parse(raw));
67
- }
68
- catch {
69
- return null;
70
- }
71
- }
72
- function skillSourcesFromPackage(pkg, baseDir, pluginName) {
73
- return readDeclaredSkillDirs(pkg).map((rel) => ({
74
- module: pluginName,
75
- dir: node_path_1.default.resolve(baseDir, rel),
76
- }));
77
- }
78
- function listDependencyNames(pkg, fields) {
79
- return fields.flatMap((field) => Object.keys(pkg[field] ?? {}));
80
- }
81
- async function toRealDir(dir) {
82
- try {
83
- return await (0, promises_1.realpath)(dir);
84
- }
85
- catch {
86
- return dir;
87
- }
88
- }
89
- function resolveDependencyDirViaRequire(dep, fromDir) {
90
- try {
91
- const requireFrom = (0, node_module_1.createRequire)(node_path_1.default.join(fromDir, PACKAGE_JSON_FILE));
92
- const manifestPath = requireFrom.resolve(`${dep}/${PACKAGE_JSON_FILE}`);
93
- return node_path_1.default.dirname(manifestPath);
94
- }
95
- catch {
96
- return null;
97
- }
23
+ function pluginNameOf(skillPackage) {
24
+ return skillPackage.kind === "module"
25
+ ? toPluginName(skillPackage.name)
26
+ : toDependencyPluginName(skillPackage.name);
98
27
  }
99
- async function isReadable(filePath) {
100
- try {
101
- await (0, promises_1.access)(filePath);
102
- return true;
103
- }
104
- catch {
105
- return false;
106
- }
107
- }
108
- async function resolveDependencyDirViaWalk(dep, fromDir) {
109
- let current = node_path_1.default.resolve(fromDir);
110
- for (;;) {
111
- const candidate = node_path_1.default.join(current, NODE_MODULES_DIR, ...dep.split("/"));
112
- if (await isReadable(node_path_1.default.join(candidate, PACKAGE_JSON_FILE))) {
113
- return candidate;
114
- }
115
- const parent = node_path_1.default.dirname(current);
116
- if (parent === current)
117
- return null;
118
- current = parent;
119
- }
120
- }
121
- async function readDependencySkillSources(dep, fromDir) {
122
- const realFromDir = await toRealDir(fromDir);
123
- const depDir = resolveDependencyDirViaRequire(dep, realFromDir) ??
124
- (await resolveDependencyDirViaWalk(dep, realFromDir));
125
- if (depDir === null)
126
- return null;
127
- const pkg = await readPackageJson(depDir);
128
- return skillSourcesFromPackage(pkg ?? {}, depDir, toDependencyPluginName(pkg?.name ?? dep));
129
- }
130
- function scanDependencyOnce(dep, fromDir, scans) {
131
- const inFlight = scans.get(dep);
132
- if (inFlight !== undefined)
133
- return inFlight;
134
- const scan = readDependencySkillSources(dep, fromDir).then((sources) => sources ?? []);
135
- scans.set(dep, scan);
136
- return scan;
137
- }
138
- async function readAllDependencySkillSources(localPath, dependencies, scans) {
139
- const nested = await Promise.all(dependencies.map((dep) => scanDependencyOnce(dep, localPath, scans)));
140
- return nested.flat();
141
- }
142
- async function readLoadedModule(id, localPath) {
143
- const pkg = await readPackageJson(localPath);
144
- return pkg === null ? null : { localPath, name: pkg.name ?? id, pkg };
145
- }
146
- async function readModuleSkillSources(loaded, scans) {
147
- const own = skillSourcesFromPackage(loaded.pkg, loaded.localPath, toPluginName(loaded.name));
148
- const fromDependencies = await readAllDependencySkillSources(loaded.localPath, listDependencyNames(loaded.pkg, MODULE_DEPENDENCY_FIELDS), scans);
149
- return [...own, ...fromDependencies];
150
- }
151
- async function readProjectSkillSources(projectRoot, scans) {
152
- const pkg = await readPackageJson(projectRoot);
153
- if (pkg === null)
154
- return [];
155
- return readAllDependencySkillSources(projectRoot, listDependencyNames(pkg, PROJECT_DEPENDENCY_FIELDS), scans);
28
+ function toSkillSources(skillPackages) {
29
+ return skillPackages.flatMap((skillPackage) => skillPackage.skillDirs.map((dir) => ({
30
+ module: pluginNameOf(skillPackage),
31
+ dir,
32
+ })));
156
33
  }
157
34
  function dedupeBy(sources, key, onDrop) {
158
35
  const seen = new Set();
@@ -166,27 +43,23 @@ function dedupeBy(sources, key, onDrop) {
166
43
  return true;
167
44
  });
168
45
  }
169
- async function readLoadedModulesSkillSources(scans) {
46
+ async function listLoadedModules() {
170
47
  const ids = await (0, modules_1.ListModules)();
171
48
  const read = await Promise.all(ids.map((id) => (0, modules_1.GetModuleInfo)(id)
172
49
  .then((info) => {
173
50
  const localPath = LocalPathSchema.safeParse(info.localPath);
174
- return localPath.success
175
- ? readLoadedModule(id, localPath.data)
176
- : null;
51
+ return localPath.success ? { dir: localPath.data, id } : null;
177
52
  })
178
53
  .catch(() => null)));
179
- const loaded = read.filter((entry) => entry !== null);
180
- for (const entry of loaded)
181
- scans.set(entry.name, Promise.resolve([]));
182
- const nested = await Promise.all(loaded.map((entry) => readModuleSkillSources(entry, scans)));
183
- return nested.flat();
54
+ return read.filter((ref) => ref !== null);
184
55
  }
185
56
  async function gather(projectRoot) {
186
- const scans = new Map();
187
- const fromModules = await readLoadedModulesSkillSources(scans);
188
- const fromProject = await readProjectSkillSources(projectRoot, scans);
189
- const byDir = dedupeBy([...fromModules, ...fromProject], (source) => source.dir);
57
+ const skillPackages = (0, agent_skills_1.collectSkillPackages)({
58
+ modules: await listLoadedModules(),
59
+ project: projectRoot,
60
+ onWarning: (message) => logging_1.Logging.Warn(`${sidecar_1.SIDECAR_LOG_PREFIX} ${message}`),
61
+ });
62
+ const byDir = dedupeBy(toSkillSources(skillPackages), (source) => source.dir);
190
63
  return dedupeBy(byDir, (source) => source.module, (dropped) => logging_1.Logging.Warn(`${sidecar_1.SIDECAR_LOG_PREFIX} skill dir ${dropped.dir} ignored: plugin name "${dropped.module}" already has a skill dir`));
191
64
  }
192
65
  async function collectSkillSources(projectRoot) {
@@ -1 +1 @@
1
- {"version":3,"file":"skill-sources.js","sourceRoot":"","sources":["../../src/lifecycle/skill-sources.ts"],"names":[],"mappings":";;;;;AAqXA,kDAwBC;AA7YD,+CAA8D;AAC9D,6CAA4C;AAC5C,0DAA6B;AAC7B,6BAAwB;AACxB,gEAA6D;AAC7D,gEAAgF;AAChF,kDAG8B;AAY9B,MAAM,cAAc,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACzC,MAAM,eAAe,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAM1C,MAAM,qBAAqB,GAAG,OAAC;KAC5B,MAAM,CAAC;IACN,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IAC5C,UAAU,EAAE,OAAC;SACV,MAAM,CAAC,EAAE,MAAM,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;SACpE,QAAQ,EAAE;SACV,KAAK,CAAC,SAAS,CAAC;IACnB,YAAY,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IAC3E,eAAe,EAAE,OAAC;SACf,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC;SAC/B,QAAQ,EAAE;SACV,KAAK,CAAC,SAAS,CAAC;IACnB,oBAAoB,EAAE,OAAC;SACpB,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC;SAC/B,QAAQ,EAAE;SACV,KAAK,CAAC,SAAS,CAAC;CACpB,CAAC;KACD,KAAK,CAAC,EAAE,CAAC,CAAC;AAQb,MAAM,iBAAiB,GAAG,cAAc,CAAC;AACzC,MAAM,gBAAgB,GAAG,cAAc,CAAC;AACxC,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AACtC,MAAM,wBAAwB,GAAsB;IAClD,cAAc;IACd,sBAAsB;CACvB,CAAC;AAMF,MAAM,yBAAyB,GAAsB;IACnD,GAAG,wBAAwB;IAC3B,iBAAiB;CAClB,CAAC;AAEF,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAChD,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC;AAC7D,CAAC;AAOD,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7E,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC;AAQD,SAAS,sBAAsB,CAAC,IAAY;IAC1C,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAoB;IACjD,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACtD,MAAM,GAAG,GAAG,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC5C,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,GAAW;IACxC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,IAAA,mBAAQ,EAAC,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAC;QACtE,OAAO,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAC9B,GAAoB,EACpB,OAAe,EACf,UAAkB;IAElB,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC9C,MAAM,EAAE,UAAU;QAClB,GAAG,EAAE,mBAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;KAChC,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,mBAAmB,CAC1B,GAAoB,EACpB,MAAyB;IAEzB,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,GAAW;IAClC,IAAI,CAAC;QACH,OAAO,MAAM,IAAA,mBAAQ,EAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAQD,SAAS,8BAA8B,CACrC,GAAW,EACX,OAAe;IAEf,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAA,2BAAa,EAAC,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC;QACzE,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,iBAAiB,EAAE,CAAC,CAAC;QACxE,OAAO,mBAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,QAAgB;IACxC,IAAI,CAAC;QACH,MAAM,IAAA,iBAAM,EAAC,QAAQ,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAOD,KAAK,UAAU,2BAA2B,CACxC,GAAW,EACX,OAAe;IAEf,IAAI,OAAO,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC,SAAS,CAAC;QACR,MAAM,SAAS,GAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1E,IAAI,MAAM,UAAU,CAAC,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC;YAC9D,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,MAAM,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC;QACpC,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;AACH,CAAC;AAMD,KAAK,UAAU,0BAA0B,CACvC,GAAW,EACX,OAAe;IAEf,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,MAAM,GACV,8BAA8B,CAAC,GAAG,EAAE,WAAW,CAAC;QAChD,CAAC,MAAM,2BAA2B,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;IACxD,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,uBAAuB,CAC5B,GAAG,IAAI,EAAE,EACT,MAAM,EACN,sBAAsB,CAAC,GAAG,EAAE,IAAI,IAAI,GAAG,CAAC,CACzC,CAAC;AACJ,CAAC;AAUD,SAAS,kBAAkB,CACzB,GAAW,EACX,OAAe,EACf,KAAwB;IAExB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAC5C,MAAM,IAAI,GAAG,0BAA0B,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CACxD,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,CAC3B,CAAC;IACF,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACrB,OAAO,IAAI,CAAC;AACd,CAAC;AAOD,KAAK,UAAU,6BAA6B,CAC1C,SAAiB,EACjB,YAAsB,EACtB,KAAwB;IAExB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CACrE,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC;AAQD,KAAK,UAAU,gBAAgB,CAC7B,EAAU,EACV,SAAiB;IAEjB,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,CAAC;IAC7C,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC;AACxE,CAAC;AAMD,KAAK,UAAU,sBAAsB,CACnC,MAAoB,EACpB,KAAwB;IAExB,MAAM,GAAG,GAAG,uBAAuB,CACjC,MAAM,CAAC,GAAG,EACV,MAAM,CAAC,SAAS,EAChB,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAC1B,CAAC;IACF,MAAM,gBAAgB,GAAG,MAAM,6BAA6B,CAC1D,MAAM,CAAC,SAAS,EAChB,mBAAmB,CAAC,MAAM,CAAC,GAAG,EAAE,wBAAwB,CAAC,EACzD,KAAK,CACN,CAAC;IACF,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,gBAAgB,CAAC,CAAC;AACvC,CAAC;AAUD,KAAK,UAAU,uBAAuB,CACpC,WAAmB,EACnB,KAAwB;IAExB,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;IAC/C,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAC5B,OAAO,6BAA6B,CAClC,WAAW,EACX,mBAAmB,CAAC,GAAG,EAAE,yBAAyB,CAAC,EACnD,KAAK,CACN,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CACf,OAAsB,EACtB,GAAmB,EACnB,MAAsC;IAEtC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;QAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;YACjB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AASD,KAAK,UAAU,6BAA6B,CAC1C,KAAwB;IAExB,MAAM,GAAG,GAAG,MAAM,IAAA,qBAAW,GAAE,CAAC;IAChC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACb,IAAA,uBAAa,EAAC,EAAE,CAAC;SACd,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACb,MAAM,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5D,OAAO,SAAS,CAAC,OAAO;YACtB,CAAC,CAAC,gBAAgB,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC;YACtC,CAAC,CAAC,IAAI,CAAC;IACX,CAAC,CAAC;SACD,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CACrB,CACF,CAAC;IACF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;IACtD,KAAK,MAAM,KAAK,IAAI,MAAM;QAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAC5D,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,WAAmB;IACvC,MAAM,KAAK,GAAsB,IAAI,GAAG,EAAE,CAAC;IAC3C,MAAM,WAAW,GAAG,MAAM,6BAA6B,CAAC,KAAK,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG,MAAM,uBAAuB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,QAAQ,CACpB,CAAC,GAAG,WAAW,EAAE,GAAG,WAAW,CAAC,EAChC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CACvB,CAAC;IACF,OAAO,QAAQ,CACb,KAAK,EACL,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EACzB,CAAC,OAAO,EAAE,EAAE,CACV,iBAAO,CAAC,IAAI,CACV,GAAG,4BAAkB,cAAc,OAAO,CAAC,GAAG,0BAA0B,OAAO,CAAC,MAAM,2BAA2B,CAClH,CACJ,CAAC;AACJ,CAAC;AAOM,KAAK,UAAU,mBAAmB,CACvC,WAAmB;IAEnB,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,EAAE;YAClD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,iCAAuB,CAAC,CAAC;YACrE,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CACtB,CAAC,CAAC,EAAE,EAAE;gBACJ,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,OAAO,CAAC,CAAC,CAAC,CAAC;YACb,CAAC,EACD,GAAG,EAAE;gBACH,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,OAAO,CAAC,EAAE,CAAC,CAAC;YACd,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,iBAAO,CAAC,KAAK,CACX,GAAG,4BAAkB,mCAAmC,EACxD,GAAG,CACJ,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"skill-sources.js","sourceRoot":"","sources":["../../src/lifecycle/skill-sources.ts"],"names":[],"mappings":"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"}
@@ -176,8 +176,8 @@ function trySpawnChild(args, logPath) {
176
176
  }
177
177
  }
178
178
  async function learnPortFromLock(root, childPid) {
179
- const deadline = Date.now() + sidecar_1.SIDECAR_SPAWN_TIMEOUT_MS;
180
- while (Date.now() < deadline) {
179
+ const polls = Math.ceil(sidecar_1.SIDECAR_SPAWN_TIMEOUT_MS / sidecar_1.SIDECAR_LOCK_POLL_INTERVAL_MS);
180
+ for (let poll = 0; poll < polls && (0, terminate_process_1.isProcessAlive)(childPid); poll += 1) {
181
181
  const lock = readLock(root);
182
182
  if (lock !== null && lock.pid === childPid) {
183
183
  logging_1.Logging.Info(`${sidecar_1.SIDECAR_LOG_PREFIX} sidecar listening on port ${lock.port}`);
@@ -1 +1 @@
1
- {"version":3,"file":"spawn-sidecar.js","sourceRoot":"","sources":["../../src/lifecycle/spawn-sidecar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spawn-sidecar.js","sourceRoot":"","sources":["../../src/lifecycle/spawn-sidecar.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
+ export declare function isProcessAlive(pid: number): boolean;
1
2
  export declare function terminateProcess(pid: number | undefined, timeoutMs: number): Promise<void>;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isProcessAlive = isProcessAlive;
3
4
  exports.terminateProcess = terminateProcess;
4
5
  const sidecar_1 = require("../constants/sidecar");
5
6
  const LIVENESS_SIGNAL = 0;
@@ -12,17 +13,20 @@ function signalProcess(pid, signal) {
12
13
  return false;
13
14
  }
14
15
  }
16
+ function isProcessAlive(pid) {
17
+ return signalProcess(pid, LIVENESS_SIGNAL);
18
+ }
15
19
  function delay(ms) {
16
20
  return new Promise((resolve) => setTimeout(resolve, ms));
17
21
  }
18
22
  async function waitForExit(pid, timeoutMs) {
19
- const deadline = Date.now() + timeoutMs;
20
- while (Date.now() < deadline) {
21
- if (!signalProcess(pid, LIVENESS_SIGNAL))
23
+ const polls = Math.ceil(timeoutMs / sidecar_1.SIDECAR_EXIT_POLL_INTERVAL_MS);
24
+ for (let poll = 0; poll < polls; poll += 1) {
25
+ if (!isProcessAlive(pid))
22
26
  return true;
23
27
  await delay(sidecar_1.SIDECAR_EXIT_POLL_INTERVAL_MS);
24
28
  }
25
- return !signalProcess(pid, LIVENESS_SIGNAL);
29
+ return !isProcessAlive(pid);
26
30
  }
27
31
  async function terminateProcess(pid, timeoutMs) {
28
32
  if (pid === undefined || !signalProcess(pid, "SIGTERM"))
@@ -1 +1 @@
1
- {"version":3,"file":"terminate-process.js","sourceRoot":"","sources":["../../src/lifecycle/terminate-process.ts"],"names":[],"mappings":";;AA8BA,4CAOC;AArCD,kDAAqE;AAErE,MAAM,eAAe,GAAG,CAAC,CAAC;AAE1B,SAAS,aAAa,CAAC,GAAW,EAAE,MAA+B;IACjE,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,SAAiB;IACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,eAAe,CAAC;YAAE,OAAO,IAAI,CAAC;QACtD,MAAM,KAAK,CAAC,uCAA6B,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;AAC9C,CAAC;AAMM,KAAK,UAAU,gBAAgB,CACpC,GAAuB,EACvB,SAAiB;IAEjB,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC;QAAE,OAAO;IAChE,IAAI,MAAM,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC;QAAE,OAAO;IAC9C,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"terminate-process.js","sourceRoot":"","sources":["../../src/lifecycle/terminate-process.ts"],"names":[],"mappings":";;AAcA,wCAEC;AAuBD,4CAOC;AA9CD,kDAAqE;AAErE,MAAM,eAAe,GAAG,CAAC,CAAC;AAE1B,SAAS,aAAa,CAAC,GAAW,EAAE,MAA+B;IACjE,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAGD,SAAgB,cAAc,CAAC,GAAW;IACxC,OAAO,aAAa,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAMD,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,SAAiB;IACvD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,uCAA6B,CAAC,CAAC;IACnE,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACtC,MAAM,KAAK,CAAC,uCAA6B,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC;AAMM,KAAK,UAAU,gBAAgB,CACpC,GAAuB,EACvB,SAAiB;IAEjB,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC;QAAE,OAAO;IAChE,IAAI,MAAM,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC;QAAE,OAAO;IAC9C,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AAChC,CAAC"}
@@ -10,28 +10,36 @@ const logs_1 = require("../constants/logs");
10
10
  function isObject(value) {
11
11
  return typeof value === "object" && value !== null;
12
12
  }
13
- function sanitizeArg(arg) {
14
- if (arg instanceof Error) {
15
- return { name: arg.name, message: arg.message, stack: arg.stack };
13
+ function summarizeError(error) {
14
+ return { name: error.name, message: error.message, stack: error.stack };
15
+ }
16
+ function sanitizeObject(value) {
17
+ try {
18
+ JSON.stringify(value);
19
+ return value;
20
+ }
21
+ catch {
22
+ return value.toString();
16
23
  }
17
- if (isObject(arg)) {
18
- try {
19
- JSON.stringify(arg);
20
- return arg;
21
- }
22
- catch {
23
- const printable = arg;
24
- return printable.toString();
25
- }
24
+ }
25
+ function sanitizeArgs(args) {
26
+ const sanitized = [];
27
+ for (const arg of args) {
28
+ if (arg instanceof Error)
29
+ sanitized.push(summarizeError(arg));
30
+ else if (isObject(arg))
31
+ sanitized.push(sanitizeObject(arg));
32
+ else
33
+ sanitized.push(arg);
26
34
  }
27
- return arg;
35
+ return sanitized;
28
36
  }
29
37
  function toBuffered(log) {
30
38
  return {
31
39
  time: log.time,
32
40
  channel: log.channel,
33
41
  levelId: log.levelId,
34
- args: Array.isArray(log.args) ? log.args.map(sanitizeArg) : [],
42
+ args: Array.isArray(log.args) ? sanitizeArgs(log.args) : [],
35
43
  };
36
44
  }
37
45
  function clampLimit(limit) {