@cursor/july 0.1.101 → 0.1.102

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 (374) hide show
  1. package/README.md +27 -0
  2. package/dist/channels/slack/api.d.ts +1 -1
  3. package/dist/channels/slack/api.d.ts.map +1 -1
  4. package/dist/channels/slack/api.js +3 -1
  5. package/dist/channels/slack/assistant.d.ts +1 -1
  6. package/dist/channels/slack/assistant.d.ts.map +1 -1
  7. package/dist/channels/slack/dispatch.d.ts +3 -2
  8. package/dist/channels/slack/dispatch.d.ts.map +1 -1
  9. package/dist/channels/slack/dispatch.js +28 -8
  10. package/dist/channels/slack/inbound.d.ts +8 -0
  11. package/dist/channels/slack/inbound.d.ts.map +1 -1
  12. package/dist/channels/slack/inbound.js +28 -0
  13. package/dist/channels/slack/manifest.d.ts.map +1 -1
  14. package/dist/channels/slack/manifest.js +2 -1
  15. package/dist/docs/404.html +2 -2
  16. package/dist/docs/ab.html +4 -4
  17. package/dist/docs/assets/{app.BASO9Kih.js → app.CLA03RCz.js} +1 -1
  18. package/dist/docs/assets/chunks/@localSearchIndexroot.FAqdWIXo.js +1 -0
  19. package/dist/docs/assets/chunks/{VPLocalSearchBox.DwkqxoE0.js → VPLocalSearchBox.ifxv-cJV.js} +1 -1
  20. package/dist/docs/assets/chunks/{theme.CCil_13e.js → theme.DWCwM6p-.js} +2 -2
  21. package/dist/docs/assets/concepts.md.rPzW2HZN.js +1 -0
  22. package/dist/docs/assets/guides_cloud-agents.md.DumwWXba.js +9 -0
  23. package/dist/docs/assets/guides_cloud-agents.md.DumwWXba.lean.js +1 -0
  24. package/dist/docs/assets/{guides_cloud-runtime.md.CkYbjnAX.js → guides_cloud-runtime.md.BRirbRAN.js} +1 -1
  25. package/dist/docs/assets/index.md.Kiht7ell.js +5 -0
  26. package/dist/docs/assets/{index.md.Bb4k8kUm.lean.js → index.md.Kiht7ell.lean.js} +1 -1
  27. package/dist/docs/assets/reference_extensions.md.9WQMZe1l.js +56 -0
  28. package/dist/docs/assets/reference_extensions.md.9WQMZe1l.lean.js +1 -0
  29. package/dist/docs/assets/{reference_project-layout.md.Bv4KOtlB.js → reference_project-layout.md.CA6QP6Lw.js} +2 -2
  30. package/dist/docs/assets/{reference_project-layout.md.Bv4KOtlB.lean.js → reference_project-layout.md.CA6QP6Lw.lean.js} +1 -1
  31. package/dist/docs/assets/{reference_skills.md.BFW9retM.js → reference_skills.md.l2ezAcaN.js} +1 -1
  32. package/dist/docs/assets/{reference_tools.md.CvAHsdSp.js → reference_tools.md.B1up2r9W.js} +1 -1
  33. package/dist/docs/assets/skills_framework-map.md.DDa4MeEW.js +1 -0
  34. package/dist/docs/assets/{skills_framework-map.md.BTi817yv.lean.js → skills_framework-map.md.DDa4MeEW.lean.js} +1 -1
  35. package/dist/docs/building-with-agents.html +4 -4
  36. package/dist/docs/concepts.html +5 -5
  37. package/dist/docs/concepts.md +3 -3
  38. package/dist/docs/deployment.html +4 -4
  39. package/dist/docs/evals.html +4 -4
  40. package/dist/docs/guides/agent-to-agent.html +4 -4
  41. package/dist/docs/guides/cloud-agents.html +35 -0
  42. package/dist/docs/guides/cloud-agents.md +93 -0
  43. package/dist/docs/guides/cloud-runtime.html +6 -6
  44. package/dist/docs/guides/cloud-runtime.md +2 -0
  45. package/dist/docs/guides/convert-automation.html +4 -4
  46. package/dist/docs/guides/github.html +4 -4
  47. package/dist/docs/guides/human-in-the-loop.html +4 -4
  48. package/dist/docs/guides/mcp-oauth.html +4 -4
  49. package/dist/docs/guides/opentelemetry.html +5 -5
  50. package/dist/docs/guides/slack.html +4 -4
  51. package/dist/docs/guides/webhooks.html +4 -4
  52. package/dist/docs/hashmap.json +1 -1
  53. package/dist/docs/hillclimbing.html +4 -4
  54. package/dist/docs/index.html +6 -6
  55. package/dist/docs/index.md +5 -1
  56. package/dist/docs/llms-full.txt +321 -4
  57. package/dist/docs/llms.txt +2 -0
  58. package/dist/docs/quickstart.html +4 -4
  59. package/dist/docs/reference/agent-config.html +4 -4
  60. package/dist/docs/reference/artifacts.html +4 -4
  61. package/dist/docs/reference/channels.html +5 -5
  62. package/dist/docs/reference/cli.html +4 -4
  63. package/dist/docs/reference/connections.html +4 -4
  64. package/dist/docs/reference/extensions.html +82 -0
  65. package/dist/docs/reference/extensions.md +200 -0
  66. package/dist/docs/reference/hooks.html +4 -4
  67. package/dist/docs/reference/http-api.html +4 -4
  68. package/dist/docs/reference/instructions.html +4 -4
  69. package/dist/docs/reference/playground.html +4 -4
  70. package/dist/docs/reference/project-layout.html +6 -6
  71. package/dist/docs/reference/project-layout.md +3 -0
  72. package/dist/docs/reference/prompt.html +4 -4
  73. package/dist/docs/reference/schedules.html +4 -4
  74. package/dist/docs/reference/sessions.html +4 -4
  75. package/dist/docs/reference/skills.html +6 -6
  76. package/dist/docs/reference/skills.md +2 -0
  77. package/dist/docs/reference/subagents.html +5 -5
  78. package/dist/docs/reference/tools.html +6 -6
  79. package/dist/docs/reference/tools.md +2 -0
  80. package/dist/docs/scaffolding-agents.html +4 -4
  81. package/dist/docs/skills/ab.html +4 -4
  82. package/dist/docs/skills/create-agent.html +4 -4
  83. package/dist/docs/skills/debug.html +4 -4
  84. package/dist/docs/skills/evals.html +4 -4
  85. package/dist/docs/skills/framework-map.html +5 -5
  86. package/dist/docs/skills/framework-map.md +1 -0
  87. package/dist/docs/skills/github.html +4 -4
  88. package/dist/docs/skills/hillclimb.html +4 -4
  89. package/dist/docs/skills/index.html +4 -4
  90. package/dist/docs/skills/mcp-auth.html +4 -4
  91. package/dist/docs/skills/otel.html +4 -4
  92. package/dist/docs/skills/setup-slack.html +4 -4
  93. package/dist/docs/storage.html +4 -4
  94. package/dist/docs/templates/agentic-owners.html +4 -4
  95. package/dist/docs/templates/agents-md.html +4 -4
  96. package/dist/docs/templates/code-wiki.html +4 -4
  97. package/dist/docs/templates/demo.html +4 -4
  98. package/dist/docs/templates/pr-autofixer.html +4 -4
  99. package/dist/docs/templates/security-help.html +4 -4
  100. package/dist/docs/templates/security-reviewer.html +4 -4
  101. package/dist/docs/templates/triage.html +4 -4
  102. package/dist/docs/troubleshooting.html +4 -4
  103. package/dist/extensions/cursor-cloud-agents/extension.d.ts +9 -7
  104. package/dist/extensions/cursor-cloud-agents/extension.d.ts.map +1 -1
  105. package/dist/extensions/cursor-cloud-agents/extension.js +9 -7
  106. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts +78 -0
  107. package/dist/extensions/cursor-cloud-agents/lib/backend.d.ts.map +1 -0
  108. package/dist/extensions/cursor-cloud-agents/lib/backend.js +286 -0
  109. package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts +5 -0
  110. package/dist/extensions/cursor-cloud-agents/lib/inputs.d.ts.map +1 -0
  111. package/dist/extensions/cursor-cloud-agents/lib/inputs.js +4 -0
  112. package/dist/extensions/cursor-cloud-agents/lib/transcript.d.ts +8 -0
  113. package/dist/extensions/cursor-cloud-agents/lib/transcript.d.ts.map +1 -0
  114. package/dist/extensions/cursor-cloud-agents/lib/transcript.js +15 -0
  115. package/dist/extensions/cursor-cloud-agents/skills/handoff.md +21 -7
  116. package/dist/extensions/cursor-cloud-agents/tools/cancel.d.ts +4 -0
  117. package/dist/extensions/cursor-cloud-agents/tools/cancel.d.ts.map +1 -0
  118. package/dist/extensions/cursor-cloud-agents/tools/cancel.js +26 -0
  119. package/dist/extensions/cursor-cloud-agents/tools/dump.d.ts +4 -0
  120. package/dist/extensions/cursor-cloud-agents/tools/dump.d.ts.map +1 -0
  121. package/dist/extensions/cursor-cloud-agents/tools/dump.js +54 -0
  122. package/dist/extensions/cursor-cloud-agents/tools/get.d.ts +4 -0
  123. package/dist/extensions/cursor-cloud-agents/tools/get.d.ts.map +1 -0
  124. package/dist/extensions/cursor-cloud-agents/tools/get.js +25 -0
  125. package/dist/extensions/cursor-cloud-agents/tools/launch.d.ts.map +1 -1
  126. package/dist/extensions/cursor-cloud-agents/tools/launch.js +14 -38
  127. package/dist/extensions/cursor-cloud-agents/tools/list.js +1 -1
  128. package/dist/extensions/cursor-cloud-agents/tools/reply.d.ts +4 -0
  129. package/dist/extensions/cursor-cloud-agents/tools/reply.d.ts.map +1 -0
  130. package/dist/extensions/cursor-cloud-agents/tools/{follow_up.js → reply.js} +12 -14
  131. package/dist/extensions.d.ts +38 -14
  132. package/dist/extensions.d.ts.map +1 -1
  133. package/dist/extensions.js +49 -12
  134. package/dist/files-backends/cursor-hosted.d.ts +0 -8
  135. package/dist/files-backends/cursor-hosted.d.ts.map +1 -1
  136. package/dist/files-backends/cursor-hosted.js +1 -11
  137. package/dist/files.d.ts +5 -1
  138. package/dist/files.d.ts.map +1 -1
  139. package/dist/files.js +22 -18
  140. package/dist/index.d.ts +3 -3
  141. package/dist/index.d.ts.map +1 -1
  142. package/dist/index.js +2 -2
  143. package/dist/internal/conversation-mirror.d.ts.map +1 -1
  144. package/dist/internal/conversation-mirror.js +13 -15
  145. package/dist/internal/cursor/backend-client.d.ts +8 -1
  146. package/dist/internal/cursor/backend-client.d.ts.map +1 -1
  147. package/dist/internal/cursor/backend-client.js +25 -9
  148. package/dist/internal/cursor/hosted-store-secrets.d.ts +11 -0
  149. package/dist/internal/cursor/hosted-store-secrets.d.ts.map +1 -1
  150. package/dist/internal/cursor/hosted-store-secrets.js +15 -0
  151. package/dist/internal/discovery/ab.d.ts +9 -0
  152. package/dist/internal/discovery/ab.d.ts.map +1 -0
  153. package/dist/internal/discovery/ab.js +101 -0
  154. package/dist/internal/discovery/agent-config.d.ts +35 -0
  155. package/dist/internal/discovery/agent-config.d.ts.map +1 -0
  156. package/dist/internal/discovery/agent-config.js +173 -0
  157. package/dist/internal/discovery/agent.d.ts +11 -0
  158. package/dist/internal/discovery/agent.d.ts.map +1 -0
  159. package/dist/internal/discovery/agent.js +306 -0
  160. package/dist/internal/discovery/channels.d.ts +10 -0
  161. package/dist/internal/discovery/channels.d.ts.map +1 -0
  162. package/dist/internal/discovery/channels.js +97 -0
  163. package/dist/internal/discovery/connections.d.ts +17 -0
  164. package/dist/internal/discovery/connections.d.ts.map +1 -0
  165. package/dist/internal/discovery/connections.js +436 -0
  166. package/dist/internal/discovery/context.d.ts +20 -0
  167. package/dist/internal/discovery/context.d.ts.map +1 -0
  168. package/dist/internal/discovery/context.js +30 -0
  169. package/dist/internal/discovery/cursor-plugin.d.ts +25 -0
  170. package/dist/internal/discovery/cursor-plugin.d.ts.map +1 -0
  171. package/dist/internal/discovery/cursor-plugin.js +570 -0
  172. package/dist/internal/discovery/extensions.d.ts +19 -0
  173. package/dist/internal/discovery/extensions.d.ts.map +1 -0
  174. package/dist/internal/discovery/extensions.js +238 -0
  175. package/dist/internal/discovery/fs.d.ts +15 -0
  176. package/dist/internal/discovery/fs.d.ts.map +1 -0
  177. package/dist/internal/discovery/fs.js +115 -0
  178. package/dist/internal/discovery/hooks.d.ts +7 -0
  179. package/dist/internal/discovery/hooks.d.ts.map +1 -0
  180. package/dist/internal/discovery/hooks.js +48 -0
  181. package/dist/internal/discovery/info.d.ts +6 -0
  182. package/dist/internal/discovery/info.d.ts.map +1 -0
  183. package/dist/internal/discovery/info.js +141 -0
  184. package/dist/internal/discovery/instructions.d.ts +7 -0
  185. package/dist/internal/discovery/instructions.d.ts.map +1 -0
  186. package/dist/internal/discovery/instructions.js +95 -0
  187. package/dist/internal/discovery/modules.d.ts +20 -0
  188. package/dist/internal/discovery/modules.d.ts.map +1 -0
  189. package/dist/internal/discovery/modules.js +101 -0
  190. package/dist/internal/discovery/names.d.ts +12 -0
  191. package/dist/internal/discovery/names.d.ts.map +1 -0
  192. package/dist/internal/discovery/names.js +36 -0
  193. package/dist/internal/discovery/project.d.ts +53 -0
  194. package/dist/internal/discovery/project.d.ts.map +1 -0
  195. package/dist/internal/discovery/project.js +239 -0
  196. package/dist/internal/discovery/runtime.d.ts +34 -0
  197. package/dist/internal/discovery/runtime.d.ts.map +1 -0
  198. package/dist/internal/discovery/runtime.js +98 -0
  199. package/dist/internal/discovery/schedules.d.ts +7 -0
  200. package/dist/internal/discovery/schedules.d.ts.map +1 -0
  201. package/dist/internal/discovery/schedules.js +97 -0
  202. package/dist/internal/discovery/seed-files.d.ts +7 -0
  203. package/dist/internal/discovery/seed-files.d.ts.map +1 -0
  204. package/dist/internal/discovery/seed-files.js +41 -0
  205. package/dist/internal/discovery/services.d.ts +17 -0
  206. package/dist/internal/discovery/services.d.ts.map +1 -0
  207. package/dist/internal/discovery/services.js +104 -0
  208. package/dist/internal/discovery/skills.d.ts +16 -0
  209. package/dist/internal/discovery/skills.d.ts.map +1 -0
  210. package/dist/internal/discovery/skills.js +151 -0
  211. package/dist/internal/discovery/subagent.d.ts +13 -0
  212. package/dist/internal/discovery/subagent.d.ts.map +1 -0
  213. package/dist/internal/discovery/subagent.js +19 -0
  214. package/dist/internal/discovery/tools.d.ts +18 -0
  215. package/dist/internal/discovery/tools.d.ts.map +1 -0
  216. package/dist/internal/discovery/tools.js +159 -0
  217. package/dist/internal/discovery.d.ts +8 -62
  218. package/dist/internal/discovery.d.ts.map +1 -1
  219. package/dist/internal/discovery.js +8 -2505
  220. package/dist/internal/framework-file-storage.js +6 -6
  221. package/dist/internal/framework-storage-selection.d.ts.map +1 -1
  222. package/dist/internal/framework-storage-selection.js +8 -7
  223. package/dist/internal/frontmatter.d.ts +11 -3
  224. package/dist/internal/frontmatter.d.ts.map +1 -1
  225. package/dist/internal/frontmatter.js +29 -3
  226. package/dist/internal/mcp-host.d.ts.map +1 -1
  227. package/dist/internal/mcp-host.js +37 -20
  228. package/dist/internal/otel/collector.d.ts +13 -0
  229. package/dist/internal/otel/collector.d.ts.map +1 -1
  230. package/dist/internal/otel/collector.js +84 -17
  231. package/dist/internal/otel/http.d.ts.map +1 -1
  232. package/dist/internal/otel/http.js +2 -10
  233. package/dist/internal/otel/mcp.d.ts +16 -0
  234. package/dist/internal/otel/mcp.d.ts.map +1 -0
  235. package/dist/internal/otel/mcp.js +68 -0
  236. package/dist/internal/otel/propagation.d.ts +6 -0
  237. package/dist/internal/otel/propagation.d.ts.map +1 -0
  238. package/dist/internal/otel/propagation.js +14 -0
  239. package/dist/internal/otel/runtime.d.ts.map +1 -1
  240. package/dist/internal/otel/runtime.js +2 -0
  241. package/dist/internal/session-engine.d.ts +5 -0
  242. package/dist/internal/session-engine.d.ts.map +1 -1
  243. package/dist/internal/session-engine.js +68 -32
  244. package/dist/internal/session-run-log.d.ts +2 -1
  245. package/dist/internal/session-run-log.d.ts.map +1 -1
  246. package/dist/internal/session-run-log.js +13 -14
  247. package/dist/internal/start-log-store.d.ts +1 -1
  248. package/dist/internal/start-log-store.d.ts.map +1 -1
  249. package/dist/internal/start-log-store.js +12 -14
  250. package/dist/internal/storage-coordinator.d.ts +4 -1
  251. package/dist/internal/storage-coordinator.d.ts.map +1 -1
  252. package/dist/internal/storage-coordinator.js +15 -13
  253. package/dist/internal/tool-catalog.d.ts.map +1 -1
  254. package/dist/internal/tool-catalog.js +9 -6
  255. package/dist/internal/turn-cost.d.ts +14 -0
  256. package/dist/internal/turn-cost.d.ts.map +1 -1
  257. package/dist/internal/turn-cost.js +41 -9
  258. package/dist/internal/v2-hosting.d.ts +22 -0
  259. package/dist/internal/v2-hosting.d.ts.map +1 -0
  260. package/dist/internal/v2-hosting.js +23 -0
  261. package/dist/otel.d.ts +16 -0
  262. package/dist/otel.d.ts.map +1 -1
  263. package/dist/otel.js +26 -0
  264. package/dist/playground/assets/index-B6C9S9nG.css +1 -0
  265. package/dist/playground/index.html +2 -2
  266. package/dist/storage-protocol.d.ts +24 -23
  267. package/dist/storage-protocol.d.ts.map +1 -1
  268. package/dist/storage-protocol.js +68 -65
  269. package/dist/storage.d.ts +2 -2
  270. package/dist/storage.d.ts.map +1 -1
  271. package/dist/storage.js +1 -1
  272. package/dist/tools.d.ts +9 -0
  273. package/dist/tools.d.ts.map +1 -1
  274. package/dist/tools.js +9 -0
  275. package/dist/types.d.ts +39 -3
  276. package/dist/types.d.ts.map +1 -1
  277. package/docs/README.md +5 -1
  278. package/docs/concepts.md +3 -3
  279. package/docs/guides/cloud-agents.md +98 -0
  280. package/docs/guides/cloud-runtime.md +2 -0
  281. package/docs/reference/extensions.md +205 -0
  282. package/docs/reference/project-layout.md +3 -0
  283. package/docs/reference/skills.md +2 -0
  284. package/docs/reference/tools.md +2 -0
  285. package/package.json +1 -1
  286. package/skills/framework-map/SKILL.md +1 -0
  287. package/src/channels/slack/api.ts +4 -2
  288. package/src/channels/slack/assistant.ts +1 -1
  289. package/src/channels/slack/dispatch.ts +27 -2
  290. package/src/channels/slack/inbound.ts +37 -0
  291. package/src/channels/slack/manifest.ts +2 -1
  292. package/src/extensions/cursor-cloud-agents/extension.ts +9 -7
  293. package/src/extensions/cursor-cloud-agents/lib/backend.ts +395 -0
  294. package/src/extensions/cursor-cloud-agents/lib/inputs.ts +5 -0
  295. package/src/extensions/cursor-cloud-agents/lib/transcript.ts +23 -0
  296. package/src/extensions/cursor-cloud-agents/skills/handoff.md +21 -7
  297. package/src/extensions/cursor-cloud-agents/tools/cancel.ts +19 -0
  298. package/src/extensions/cursor-cloud-agents/tools/dump.ts +51 -0
  299. package/src/extensions/cursor-cloud-agents/tools/get.ts +18 -0
  300. package/src/extensions/cursor-cloud-agents/tools/launch.ts +22 -42
  301. package/src/extensions/cursor-cloud-agents/tools/list.ts +1 -1
  302. package/src/extensions/cursor-cloud-agents/tools/reply.ts +34 -0
  303. package/src/extensions.ts +55 -12
  304. package/src/files-backends/cursor-hosted.ts +1 -17
  305. package/src/files.ts +43 -34
  306. package/src/index.ts +10 -1
  307. package/src/internal/conversation-mirror.ts +23 -18
  308. package/src/internal/cursor/backend-client.ts +32 -10
  309. package/src/internal/cursor/hosted-store-secrets.ts +27 -0
  310. package/src/internal/discovery/ab.ts +111 -0
  311. package/src/internal/discovery/agent-config.ts +222 -0
  312. package/src/internal/discovery/agent.ts +360 -0
  313. package/src/internal/discovery/channels.ts +103 -0
  314. package/src/internal/discovery/connections.ts +540 -0
  315. package/src/internal/discovery/context.ts +46 -0
  316. package/src/internal/discovery/cursor-plugin.ts +708 -0
  317. package/src/internal/discovery/extensions.ts +348 -0
  318. package/src/internal/discovery/fs.ts +108 -0
  319. package/src/internal/discovery/hooks.ts +45 -0
  320. package/src/internal/discovery/info.ts +179 -0
  321. package/src/internal/discovery/instructions.ts +113 -0
  322. package/src/internal/discovery/modules.ts +107 -0
  323. package/src/internal/discovery/names.ts +44 -0
  324. package/src/internal/discovery/project.ts +270 -0
  325. package/src/internal/discovery/runtime.ts +159 -0
  326. package/src/internal/discovery/schedules.ts +94 -0
  327. package/src/internal/discovery/seed-files.ts +37 -0
  328. package/src/internal/discovery/services.ts +124 -0
  329. package/src/internal/discovery/skills.ts +176 -0
  330. package/src/internal/discovery/subagent.ts +29 -0
  331. package/src/internal/discovery/tools.ts +182 -0
  332. package/src/internal/discovery.ts +20 -3081
  333. package/src/internal/framework-file-storage.ts +6 -6
  334. package/src/internal/framework-storage-selection.ts +9 -9
  335. package/src/internal/frontmatter.ts +36 -3
  336. package/src/internal/mcp-host.ts +84 -31
  337. package/src/internal/otel/collector.ts +125 -25
  338. package/src/internal/otel/http.ts +2 -12
  339. package/src/internal/otel/mcp.ts +69 -0
  340. package/src/internal/otel/propagation.ts +17 -0
  341. package/src/internal/otel/runtime.ts +2 -0
  342. package/src/internal/session-engine.ts +96 -11
  343. package/src/internal/session-run-log.ts +17 -16
  344. package/src/internal/start-log-store.ts +13 -16
  345. package/src/internal/storage-coordinator.ts +19 -16
  346. package/src/internal/tool-catalog.ts +9 -6
  347. package/src/internal/turn-cost.ts +47 -4
  348. package/src/internal/v2-hosting.ts +38 -0
  349. package/src/otel.ts +38 -0
  350. package/src/storage-protocol.ts +101 -91
  351. package/src/storage.ts +4 -0
  352. package/src/tools.ts +18 -0
  353. package/src/types.ts +43 -2
  354. package/dist/docs/assets/chunks/@localSearchIndexroot.DbFXINq2.js +0 -1
  355. package/dist/docs/assets/concepts.md.lwAgBIMI.js +0 -1
  356. package/dist/docs/assets/index.md.Bb4k8kUm.js +0 -5
  357. package/dist/docs/assets/skills_framework-map.md.BTi817yv.js +0 -1
  358. package/dist/extensions/cursor-cloud-agents/lib/cloud.d.ts +0 -30
  359. package/dist/extensions/cursor-cloud-agents/lib/cloud.d.ts.map +0 -1
  360. package/dist/extensions/cursor-cloud-agents/lib/cloud.js +0 -45
  361. package/dist/extensions/cursor-cloud-agents/tools/follow_up.d.ts +0 -4
  362. package/dist/extensions/cursor-cloud-agents/tools/follow_up.d.ts.map +0 -1
  363. package/dist/extensions/cursor-cloud-agents/tools/status.d.ts +0 -4
  364. package/dist/extensions/cursor-cloud-agents/tools/status.d.ts.map +0 -1
  365. package/dist/extensions/cursor-cloud-agents/tools/status.js +0 -41
  366. package/dist/playground/assets/index-DBQCwFp0.css +0 -1
  367. package/src/extensions/cursor-cloud-agents/lib/cloud.ts +0 -79
  368. package/src/extensions/cursor-cloud-agents/tools/follow_up.ts +0 -29
  369. package/src/extensions/cursor-cloud-agents/tools/status.ts +0 -39
  370. /package/dist/docs/assets/{concepts.md.lwAgBIMI.lean.js → concepts.md.rPzW2HZN.lean.js} +0 -0
  371. /package/dist/docs/assets/{guides_cloud-runtime.md.CkYbjnAX.lean.js → guides_cloud-runtime.md.BRirbRAN.lean.js} +0 -0
  372. /package/dist/docs/assets/{reference_skills.md.BFW9retM.lean.js → reference_skills.md.l2ezAcaN.lean.js} +0 -0
  373. /package/dist/docs/assets/{reference_tools.md.CvAHsdSp.lean.js → reference_tools.md.B1up2r9W.lean.js} +0 -0
  374. /package/dist/playground/assets/{index-BnNN1-EK.js → index-ZqNoT8Ie.js} +0 -0
@@ -0,0 +1,360 @@
1
+ /**
2
+ * Compile one `agent/` directory (and its subagents) into a {@link ResolvedAgent}.
3
+ */
4
+
5
+ import { join } from "node:path";
6
+ import { DEFAULT_MODEL, type ResolvedAgent } from "../../types.js";
7
+ import { builtinTools } from "../builtin-tools/index.js";
8
+ import { withIdentityPreamble } from "../workspace.js";
9
+ import {
10
+ isValidModelSetting,
11
+ loadAgentConfig,
12
+ resolveAgentCwd,
13
+ resolveArchitecture,
14
+ resolveConcurrency,
15
+ resolveHosting,
16
+ resolveLocalCwd,
17
+ runtimeArchitectureCompatibilityError,
18
+ } from "./agent-config.js";
19
+ import {
20
+ loadConnections,
21
+ loadHostConnections,
22
+ resolveMcpConnectionsDir,
23
+ } from "./connections.js";
24
+ import { type DiscoveryContext, displayPath } from "./context.js";
25
+ import { appendExtensions } from "./extensions.js";
26
+ import { findModuleFile, isDirectory, sortedEntries } from "./fs.js";
27
+ import { loadInstructions } from "./instructions.js";
28
+ import { validateName } from "./names.js";
29
+ import {
30
+ checkGrokBotRuntimeLimitations,
31
+ resolveRuntime,
32
+ warnCloudRuntimeLimitations,
33
+ } from "./runtime.js";
34
+ import { loadSeedFiles } from "./seed-files.js";
35
+ import { loadSkills } from "./skills.js";
36
+ import { subagent } from "./subagent.js";
37
+ import { appendBuiltinTools, loadTools } from "./tools.js";
38
+
39
+ export async function loadAgent(
40
+ ctx: DiscoveryContext,
41
+ agentDir: string,
42
+ options: { name: string; isRoot: boolean }
43
+ ): Promise<ResolvedAgent> {
44
+ const config = await loadAgentConfig(ctx, agentDir, options.isRoot);
45
+ const name = config?.name ?? options.name;
46
+ const authoredInstructions = await loadInstructions(
47
+ ctx,
48
+ agentDir,
49
+ config,
50
+ options.isRoot
51
+ );
52
+ // Subagents run as Cursor SDK custom subagents (prompt + description +
53
+ // model); their other slots are inert today, so don't load them — just
54
+ // warn that they exist.
55
+ if (!options.isRoot) {
56
+ await warnUnsupportedSubagentSlots(ctx, agentDir);
57
+ if (config?.builtinTools !== undefined) {
58
+ ctx.diagnostics.push({
59
+ severity: "warning",
60
+ path: displayPath(ctx, join(agentDir, "agent.ts")),
61
+ message: "builtinTools is not supported on subagents; ignoring.",
62
+ });
63
+ }
64
+ if (config?.tools !== undefined) {
65
+ ctx.diagnostics.push({
66
+ severity: "warning",
67
+ path: displayPath(ctx, join(agentDir, "agent.ts")),
68
+ message:
69
+ "tools is not supported on subagents (they keep the harness task-tool toolset); ignoring.",
70
+ });
71
+ }
72
+ if (config?.architecture !== undefined) {
73
+ ctx.diagnostics.push({
74
+ severity: "warning",
75
+ path: displayPath(ctx, join(agentDir, "agent.ts")),
76
+ message: "architecture is not supported on subagents; ignoring.",
77
+ });
78
+ }
79
+ const artifactsPath = await findModuleFile(agentDir, "artifacts");
80
+ if (artifactsPath !== undefined) {
81
+ ctx.diagnostics.push({
82
+ severity: "warning",
83
+ path: displayPath(ctx, artifactsPath),
84
+ message: "artifacts are not supported on subagents; ignoring.",
85
+ });
86
+ }
87
+ return subagent(name, {
88
+ description: config?.description,
89
+ model: config?.model,
90
+ prompt: authoredInstructions,
91
+ });
92
+ }
93
+
94
+ // Root agents without authored instructions stay undefined (diagnostic
95
+ // already recorded).
96
+ const instructions =
97
+ authoredInstructions === undefined
98
+ ? undefined
99
+ : withIdentityPreamble(name, authoredInstructions);
100
+ const tools = await loadTools(ctx, join(agentDir, "tools"));
101
+ const skills = await loadSkills(ctx, join(agentDir, "skills"));
102
+ const connections = await loadConnections(
103
+ ctx,
104
+ await resolveMcpConnectionsDir(ctx, agentDir)
105
+ );
106
+ const subagents = await loadSubagents(ctx, join(agentDir, "subagents"));
107
+ const extensions = await appendExtensions(ctx, join(agentDir, "extensions"), {
108
+ tools,
109
+ skills,
110
+ connections,
111
+ subagents,
112
+ });
113
+ const hostConnections = await loadHostConnections(ctx, agentDir, connections);
114
+ const seedFiles = await loadSeedFiles(ctx, agentDir);
115
+ const runtime = resolveRuntime(ctx, agentDir, config?.runtime);
116
+ // Keep authored `cloud` even when default runtime is local — per-session
117
+ // `send({ cloud })` merges it under cloudOverride for handoff sessions.
118
+ const cloud = config?.cloud;
119
+ const localWorkspaceDir = resolveAgentCwd(ctx, config?.local?.workspaceDir);
120
+ const localCwd = await resolveLocalCwd(
121
+ ctx,
122
+ config?.local?.cwd,
123
+ config?.local?.workspaceDir
124
+ );
125
+ const localSandbox = config?.local?.sandbox === true;
126
+ // Built-in tool allowlist (top-level `tools`). `[]` is meaningful (no
127
+ // native built-in tools), so presence is keyed on the field, not on
128
+ // emptiness. "mcp" is always granted alongside a configured allowlist:
129
+ // it is transport, not capability — this kit's own server tools ride the
130
+ // SDK custom-tool MCP path, so omitting it silently breaks
131
+ // `agent/tools/`, and what MCP actually exposes stays controlled by the
132
+ // second layer (authored tools, mcp-connections, the harness cwd's
133
+ // ambient config).
134
+ const authoredAllowlist = config?.tools;
135
+ const allowedTools =
136
+ authoredAllowlist === undefined || authoredAllowlist.includes("mcp")
137
+ ? authoredAllowlist
138
+ : [...authoredAllowlist, "mcp" as const];
139
+ // The allowlist states runtime-agnostic intent, but only the local
140
+ // harness can enforce it (the Cursor SDK rejects tool restrictions on
141
+ // cloud agents, and the Grok Bot harness has its own fixed toolset) — a
142
+ // non-local agent that declares one must fail at serve start, never run
143
+ // unrestricted. (Hybrid per-send cloud sessions fail closed in the
144
+ // session engine.)
145
+ if (allowedTools !== undefined && runtime !== "local") {
146
+ ctx.diagnostics.push({
147
+ severity: "error",
148
+ path: displayPath(ctx, join(agentDir, "agent.ts")),
149
+ message: `tools cannot be enforced on runtime: "${runtime}". Remove \`tools\` or run the agent on the local runtime.`,
150
+ });
151
+ }
152
+ // Per-session connection features (defineConnection auth/advertiseTools)
153
+ // only run on local turns: advertised tools are in-process server tools,
154
+ // and per-session headers cannot reach a cloud VM's MCP config. A
155
+ // non-local agent that declares them must fail at serve start — never
156
+ // run without the connection's tools or identity. (Hybrid per-send
157
+ // cloud sessions fail closed in the session engine.)
158
+ const perSessionConnection = connections.find(
159
+ (connection) =>
160
+ connection.advertiseTools === true || connection.auth !== undefined
161
+ );
162
+ if (perSessionConnection !== undefined && runtime !== "local") {
163
+ ctx.diagnostics.push({
164
+ severity: "error",
165
+ path: displayPath(ctx, join(agentDir, "agent.ts")),
166
+ message: `MCP connection "${perSessionConnection.name}" uses advertiseTools/auth, which only run on runtime: "local". Remove them or run the agent on the local runtime.`,
167
+ });
168
+ }
169
+ // `execution: "agent"` tool scripts run through the shell tool. Shell is
170
+ // a real capability, so it is never injected — but an allowlist that
171
+ // strands authored scripts deserves a loud diagnostic, not silence.
172
+ if (
173
+ allowedTools !== undefined &&
174
+ !allowedTools.includes("shell") &&
175
+ tools.some((tool) => tool.execution === "agent")
176
+ ) {
177
+ ctx.diagnostics.push({
178
+ severity: "warning",
179
+ path: displayPath(ctx, join(agentDir, "agent.ts")),
180
+ message:
181
+ '`tools` omits "shell" but this agent has execution: "agent" tools, which run as shell scripts; the model will not be able to run them.',
182
+ });
183
+ }
184
+ if (localCwd !== undefined && localWorkspaceDir !== undefined) {
185
+ ctx.diagnostics.push({
186
+ severity: "warning",
187
+ path: displayPath(ctx, join(agentDir, "agent.ts")),
188
+ message:
189
+ "local.workspaceDir pins every session to one directory, so local.cwd is unused. Drop one of them.",
190
+ });
191
+ }
192
+ const local =
193
+ localCwd === undefined && localWorkspaceDir === undefined && !localSandbox
194
+ ? undefined
195
+ : {
196
+ cwd: localCwd,
197
+ workspaceDir: localWorkspaceDir,
198
+ sandbox: localSandbox,
199
+ };
200
+ const hosting = resolveHosting(ctx, agentDir, config?.hosting);
201
+ const concurrency = resolveConcurrency(ctx, agentDir, config?.concurrency);
202
+ const architecture = resolveArchitecture(ctx, agentDir, config?.architecture);
203
+ const runtimeArchitectureError = runtimeArchitectureCompatibilityError({
204
+ runtime,
205
+ architecture,
206
+ });
207
+ if (runtimeArchitectureError !== undefined) {
208
+ ctx.diagnostics.push({
209
+ severity: "error",
210
+ path: displayPath(ctx, join(agentDir, "agent.ts")),
211
+ message: runtimeArchitectureError,
212
+ });
213
+ }
214
+
215
+ if (runtime === "cloud") {
216
+ warnCloudRuntimeLimitations(ctx, agentDir, {
217
+ agentTools: tools.filter((tool) => tool.execution === "agent").length,
218
+ skills: skills.length,
219
+ seedFiles: seedFiles.length,
220
+ hasCloudOptions: cloud !== undefined,
221
+ });
222
+ }
223
+ appendBuiltinTools(ctx, agentDir, tools, config?.builtinTools);
224
+
225
+ // After appendBuiltinTools so opted-in built-ins (server-executed) count.
226
+ if (runtime === "grokbot") {
227
+ checkGrokBotRuntimeLimitations(ctx, agentDir, {
228
+ serverTools: tools.filter((tool) => tool.execution === "server").length,
229
+ agentTools: tools.filter((tool) => tool.execution === "agent").length,
230
+ skills: skills.length,
231
+ seedFiles: seedFiles.length,
232
+ connections: connections.length + hostConnections.length,
233
+ subagents: subagents.length,
234
+ hasCloudOptions: cloud !== undefined,
235
+ hasLocalSandbox: localSandbox,
236
+ });
237
+ }
238
+
239
+ return {
240
+ name,
241
+ description: config?.description,
242
+ // Root agents always get a concrete model: authored value or DEFAULT_MODEL.
243
+ model: isValidModelSetting(config?.model) ? config.model : DEFAULT_MODEL,
244
+ instructions,
245
+ runtime,
246
+ cloud,
247
+ local,
248
+ ...(allowedTools === undefined ? {} : { allowedTools }),
249
+ hosting,
250
+ concurrency,
251
+ ...(architecture === undefined ? {} : { architecture }),
252
+ tools,
253
+ skills,
254
+ extensions,
255
+ connections,
256
+ hostConnections,
257
+ subagents,
258
+ seedFiles,
259
+ };
260
+ }
261
+
262
+ async function loadSubagents(
263
+ ctx: DiscoveryContext,
264
+ subagentsDir: string
265
+ ): Promise<ResolvedAgent[]> {
266
+ if (!(await isDirectory(subagentsDir))) {
267
+ return [];
268
+ }
269
+ const subagents: ResolvedAgent[] = [];
270
+ for (const entry of await sortedEntries(subagentsDir)) {
271
+ if (!entry.isDirectory()) {
272
+ continue;
273
+ }
274
+ const subagentDir = join(subagentsDir, entry.name);
275
+ if (!validateName(ctx, "subagent", entry.name, subagentDir)) {
276
+ continue;
277
+ }
278
+ subagents.push(
279
+ await loadAgent(ctx, subagentDir, { name: entry.name, isRoot: false })
280
+ );
281
+ }
282
+ return subagents;
283
+ }
284
+
285
+ async function warnUnsupportedSubagentSlots(
286
+ ctx: DiscoveryContext,
287
+ subagentDir: string
288
+ ): Promise<void> {
289
+ const unsupported = [
290
+ ["tools", "tools"],
291
+ ["skills", "skills"],
292
+ ["extensions", "extensions"],
293
+ ["mcp-connections", "MCP connections"],
294
+ ["host-connections", "host MCP connections"],
295
+ ["connections", "MCP connections"],
296
+ ["subagents", "nested subagents"],
297
+ ["channels", "channels"],
298
+ ["schedules", "schedules"],
299
+ ["hooks", "hooks"],
300
+ ["sandbox", "sandbox files"],
301
+ ] as const;
302
+ for (const [slot, label] of unsupported) {
303
+ if (await isDirectory(join(subagentDir, slot))) {
304
+ ctx.diagnostics.push({
305
+ severity: "warning",
306
+ path: displayPath(ctx, join(subagentDir, slot)),
307
+ message: `Subagent ${label} are not supported on the Cursor harness yet; the subagent runs with the parent's execution surface. Ignoring.`,
308
+ });
309
+ }
310
+ }
311
+ }
312
+
313
+ export async function warnUnknownSlots(
314
+ ctx: DiscoveryContext,
315
+ agentDir: string
316
+ ): Promise<void> {
317
+ const known = new Set([
318
+ "agent",
319
+ "instructions",
320
+ "tools",
321
+ "skills",
322
+ "extensions",
323
+ "mcp-connections",
324
+ "host-connections",
325
+ // Legacy slot name; resolveMcpConnectionsDir warns and still loads it.
326
+ "connections",
327
+ "subagents",
328
+ "channels",
329
+ "schedules",
330
+ "hooks",
331
+ "ab",
332
+ "sandbox",
333
+ "lib",
334
+ // Vite playground custom tool chips (agent/playground/tools).
335
+ "playground",
336
+ ]);
337
+ for (const entry of await sortedEntries(agentDir)) {
338
+ if (!entry.isDirectory() || entry.name.startsWith(".")) {
339
+ continue;
340
+ }
341
+ if (entry.name === "node_modules" || known.has(entry.name)) {
342
+ continue;
343
+ }
344
+ // Footgun: evals live at project-root `evals/`, not under `agent/`.
345
+ if (entry.name === "evals") {
346
+ ctx.diagnostics.push({
347
+ severity: "warning",
348
+ path: displayPath(ctx, join(agentDir, entry.name)),
349
+ message:
350
+ 'Directory "evals" under agent/ is ignored — put defineEval files at project-root evals/ instead.',
351
+ });
352
+ continue;
353
+ }
354
+ ctx.diagnostics.push({
355
+ severity: "warning",
356
+ path: displayPath(ctx, join(agentDir, entry.name)),
357
+ message: `Unrecognized directory "${entry.name}" under agent/ (not an authored slot; use lib/ for shared code).`,
358
+ });
359
+ }
360
+ }
@@ -0,0 +1,103 @@
1
+ /**
2
+ * `agent/channels/*.ts`: HTTP surfaces beyond the session API.
3
+ */
4
+
5
+ import { join } from "node:path";
6
+ import { httpChannel } from "../../channels.js";
7
+ import type {
8
+ ChannelDefinition,
9
+ DiscoveredChannel,
10
+ HttpChannelDefinition,
11
+ } from "../../types.js";
12
+ import { getDefinitionKind } from "../brand.js";
13
+ import { type DiscoveryContext, displayPath, errorMessage } from "./context.js";
14
+ import { isDirectory, isModuleFile, moduleStem, sortedEntries } from "./fs.js";
15
+ import { NAME_PATTERN } from "./names.js";
16
+
17
+ export async function loadChannels(
18
+ ctx: DiscoveryContext,
19
+ channelsDir: string
20
+ ): Promise<{
21
+ channels: DiscoveredChannel[];
22
+ httpChannelDefinition: HttpChannelDefinition | undefined;
23
+ }> {
24
+ const channels: DiscoveredChannel[] = [];
25
+ let httpChannelDefinition: HttpChannelDefinition | undefined;
26
+ if (!(await isDirectory(channelsDir))) {
27
+ return { channels, httpChannelDefinition };
28
+ }
29
+
30
+ for (const entry of await sortedEntries(channelsDir)) {
31
+ const entryPath = join(channelsDir, entry.name);
32
+ if (!entry.isFile() || !isModuleFile(entry.name)) {
33
+ continue;
34
+ }
35
+ const id = moduleStem(entry.name);
36
+ if (!NAME_PATTERN.test(id)) {
37
+ ctx.diagnostics.push({
38
+ severity: "error",
39
+ path: displayPath(ctx, entryPath),
40
+ message: `Channel id "${id}" must match ${NAME_PATTERN}.`,
41
+ });
42
+ continue;
43
+ }
44
+
45
+ let mod: Record<string, unknown>;
46
+ try {
47
+ mod = await ctx.importModule(entryPath);
48
+ } catch (error) {
49
+ ctx.diagnostics.push({
50
+ severity: "error",
51
+ path: displayPath(ctx, entryPath),
52
+ message: `Failed to load module: ${errorMessage(error)}`,
53
+ });
54
+ continue;
55
+ }
56
+ const kind = getDefinitionKind(mod.default);
57
+
58
+ if (kind === "http-channel") {
59
+ if (id !== "http") {
60
+ ctx.diagnostics.push({
61
+ severity: "error",
62
+ path: displayPath(ctx, entryPath),
63
+ message:
64
+ "httpChannel() configures the built-in HTTP channel and must be authored at channels/http.ts.",
65
+ });
66
+ continue;
67
+ }
68
+ httpChannelDefinition = mod.default as HttpChannelDefinition;
69
+ continue;
70
+ }
71
+
72
+ if (kind !== "channel") {
73
+ ctx.diagnostics.push({
74
+ severity: "error",
75
+ path: displayPath(ctx, entryPath),
76
+ message:
77
+ id === "http"
78
+ ? "channels/http.ts must default-export httpChannel({ ... })."
79
+ : "Channel modules must default-export defineChannel({ ... }).",
80
+ });
81
+ continue;
82
+ }
83
+ if (id === "http") {
84
+ ctx.diagnostics.push({
85
+ severity: "error",
86
+ path: displayPath(ctx, entryPath),
87
+ message:
88
+ "The channel id `http` is reserved for the built-in HTTP channel; use httpChannel() to configure it.",
89
+ });
90
+ continue;
91
+ }
92
+ const definition = mod.default as ChannelDefinition;
93
+ for (const notice of definition.meta?.deprecations ?? []) {
94
+ ctx.diagnostics.push({
95
+ severity: "warning",
96
+ path: displayPath(ctx, entryPath),
97
+ message: notice,
98
+ });
99
+ }
100
+ channels.push({ id, definition });
101
+ }
102
+ return { channels, httpChannelDefinition };
103
+ }