@blxzer/cursor-trellis 0.4.1 → 0.4.3

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 (337) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/README.md +25 -14
  3. package/README.zh-CN.md +14 -10
  4. package/bin/smart-search.js +10 -2
  5. package/dist/cli/index.d.ts.map +1 -1
  6. package/dist/cli/index.js +36 -15
  7. package/dist/cli/index.js.map +1 -1
  8. package/dist/commands/init.d.ts +1 -1
  9. package/dist/commands/init.d.ts.map +1 -1
  10. package/dist/commands/init.js +42 -153
  11. package/dist/commands/init.js.map +1 -1
  12. package/dist/commands/migrate.d.ts +10 -0
  13. package/dist/commands/migrate.d.ts.map +1 -0
  14. package/dist/commands/migrate.js +38 -0
  15. package/dist/commands/migrate.js.map +1 -0
  16. package/dist/commands/update.d.ts +5 -0
  17. package/dist/commands/update.d.ts.map +1 -1
  18. package/dist/commands/update.js +144 -41
  19. package/dist/commands/update.js.map +1 -1
  20. package/dist/configurators/cursor.d.ts +2 -1
  21. package/dist/configurators/cursor.d.ts.map +1 -1
  22. package/dist/configurators/cursor.js +4 -2
  23. package/dist/configurators/cursor.js.map +1 -1
  24. package/dist/configurators/index.js +4 -4
  25. package/dist/configurators/index.js.map +1 -1
  26. package/dist/configurators/shared.d.ts +8 -0
  27. package/dist/configurators/shared.d.ts.map +1 -1
  28. package/dist/configurators/shared.js +27 -1
  29. package/dist/configurators/shared.js.map +1 -1
  30. package/dist/configurators/workflow.d.ts +0 -9
  31. package/dist/configurators/workflow.d.ts.map +1 -1
  32. package/dist/configurators/workflow.js +12 -45
  33. package/dist/configurators/workflow.js.map +1 -1
  34. package/dist/constants/paths.d.ts +13 -0
  35. package/dist/constants/paths.d.ts.map +1 -1
  36. package/dist/constants/paths.js +17 -0
  37. package/dist/constants/paths.js.map +1 -1
  38. package/dist/migrations/manifests/0.3.0.json +1 -1
  39. package/dist/templates/common/bundled-skills/cstl-check/SKILL.md +1 -1
  40. package/dist/templates/common/bundled-skills/cstl-meta/references/platform-files/hooks-and-settings.md +2 -2
  41. package/dist/templates/common/bundled-skills/cstl-meta/references/platform-files/overview.md +1 -1
  42. package/dist/templates/common/bundled-skills/cstl-meta/references/platform-files/skills-and-commands.md +2 -4
  43. package/dist/templates/common/bundled-skills/cstl-skill-creator/SKILL.md +10 -7
  44. package/dist/templates/common/bundled-skills/cstl-skill-creator/references/authoring-rules.md +93 -19
  45. package/dist/templates/common/bundled-skills/cstl-skill-creator/references/general-authoring.md +189 -0
  46. package/dist/templates/common/bundled-skills/cstl-skill-creator/references/review-checklist.md +10 -5
  47. package/dist/templates/common/commands/continue.md +6 -5
  48. package/dist/templates/common/index.d.ts +20 -0
  49. package/dist/templates/common/index.d.ts.map +1 -1
  50. package/dist/templates/common/index.js +21 -2
  51. package/dist/templates/common/index.js.map +1 -1
  52. package/dist/templates/common/optional-skills/chrome-cdp/SKILL.md +179 -0
  53. package/dist/templates/common/optional-skills/chrome-cdp/examples/fetch-hook-api-capture.md +149 -0
  54. package/dist/templates/common/optional-skills/chrome-cdp/scripts/cdp.mjs +903 -0
  55. package/dist/templates/common/skills/brainstorm.md +2 -2
  56. package/dist/templates/cursor/agents/cstl-check.md +2 -2
  57. package/dist/templates/cursor/agents/cstl-implement.md +1 -1
  58. package/dist/templates/cursor/agents/cstl-research.md +2 -2
  59. package/dist/templates/cursor/fixtures/expected-rules.d.ts +1 -1
  60. package/dist/templates/cursor/fixtures/expected-rules.d.ts.map +1 -1
  61. package/dist/templates/cursor/fixtures/expected-rules.js +7 -24
  62. package/dist/templates/cursor/fixtures/expected-rules.js.map +1 -1
  63. package/dist/templates/cursor/hooks.json +4 -0
  64. package/dist/templates/cursor/index.d.ts +1 -1
  65. package/dist/templates/cursor/index.js +1 -1
  66. package/dist/templates/cursor/rules/cstl-bootstrap.mdc +17 -0
  67. package/dist/templates/markdown/agents.md +36 -3
  68. package/dist/templates/markdown/{spec/guides → framework}/cursor-native-modes-guide.md.txt +13 -10
  69. package/dist/templates/markdown/{spec/guides → framework}/cursor-subagent-policy.md.txt +63 -127
  70. package/dist/templates/markdown/framework/dogfood-only-surfaces.md.txt +29 -0
  71. package/dist/templates/markdown/{spec/guides → framework}/execution-strategy.md.txt +2 -0
  72. package/dist/templates/markdown/framework/index.md.txt +31 -0
  73. package/dist/templates/markdown/framework/internal-skills-cursor-reachability.md.txt +45 -0
  74. package/dist/templates/markdown/framework/middleware-protocol.md.txt +83 -0
  75. package/dist/templates/markdown/framework/parallel-first-execution.md.txt +78 -0
  76. package/dist/templates/markdown/framework/prd-grill-frontier.md.txt +83 -0
  77. package/dist/templates/markdown/framework/release-boundary.md.txt +30 -0
  78. package/dist/templates/markdown/{spec/guides → framework}/retrieval-daily-guide.md.txt +1 -1
  79. package/dist/templates/markdown/framework/upgrade.md.txt +15 -0
  80. package/dist/templates/markdown/{spec/guides → framework}/verification-strength-guide.md.txt +2 -2
  81. package/dist/templates/markdown/index.d.ts +26 -10
  82. package/dist/templates/markdown/index.d.ts.map +1 -1
  83. package/dist/templates/markdown/index.js +87 -11
  84. package/dist/templates/markdown/index.js.map +1 -1
  85. package/dist/templates/markdown/prompts/run-semantic-slice-12.md.txt +1 -1
  86. package/dist/templates/markdown/spec/guides/index.md.txt +5 -19
  87. package/dist/templates/markdown/spec/guides/prototype-guide.md.txt +10 -10
  88. package/dist/templates/markdown/spec/guides/test-discipline-guide.md.txt +1 -1
  89. package/dist/templates/shared-hooks/event-bridge.py +60 -0
  90. package/dist/templates/shared-hooks/index.d.ts +1 -1
  91. package/dist/templates/shared-hooks/index.d.ts.map +1 -1
  92. package/dist/templates/shared-hooks/index.js +1 -0
  93. package/dist/templates/shared-hooks/index.js.map +1 -1
  94. package/dist/templates/shared-hooks/session-start.py +19 -2
  95. package/dist/templates/trellis/CONTEXT.md +63 -3
  96. package/dist/templates/trellis/config.yaml +1 -1
  97. package/dist/templates/trellis/gitignore.txt +39 -39
  98. package/dist/templates/trellis/index.d.ts +12 -0
  99. package/dist/templates/trellis/index.d.ts.map +1 -1
  100. package/dist/templates/trellis/index.js +73 -15
  101. package/dist/templates/trellis/index.js.map +1 -1
  102. package/dist/templates/trellis/pool/README.md +12 -3
  103. package/dist/templates/trellis/pool/plan.md +24 -5
  104. package/dist/templates/trellis/scripts/common/adapter_middleware.py +158 -0
  105. package/dist/templates/trellis/scripts/common/artifact_locale.py +12 -3
  106. package/dist/templates/trellis/scripts/common/cursor_retrieval_env.py +5 -2
  107. package/dist/templates/trellis/scripts/common/full_quality.py +237 -0
  108. package/dist/templates/trellis/scripts/common/git.py +6 -0
  109. package/dist/templates/trellis/scripts/common/git_context.py +17 -5
  110. package/dist/templates/trellis/scripts/common/kernel_command.py +367 -0
  111. package/dist/templates/trellis/scripts/common/lite_context.py +280 -0
  112. package/dist/templates/trellis/scripts/common/ondemand_topology.py +225 -0
  113. package/dist/templates/trellis/scripts/common/parent_orchestration.py +1 -1
  114. package/dist/templates/trellis/scripts/common/pool_store.py +16 -4
  115. package/dist/templates/trellis/scripts/common/retrieval_agent_instructions.py +2 -2
  116. package/dist/templates/trellis/scripts/common/session_context.py +28 -2
  117. package/dist/templates/trellis/scripts/common/task_gates.py +73 -12
  118. package/dist/templates/trellis/scripts/common/task_map.py +42 -9
  119. package/dist/templates/trellis/scripts/common/task_store.py +293 -61
  120. package/dist/templates/trellis/scripts/common/test_adapter_middleware.py +56 -0
  121. package/dist/templates/trellis/scripts/common/test_depends_mode_block.py +9 -0
  122. package/dist/templates/trellis/scripts/common/test_full_quality.py +197 -0
  123. package/dist/templates/trellis/scripts/common/test_kernel_command.py +326 -0
  124. package/dist/templates/trellis/scripts/common/test_lite_path.py +190 -0
  125. package/dist/templates/trellis/scripts/common/test_observable_defaults.py +10 -4
  126. package/dist/templates/trellis/scripts/common/test_ondemand_topology.py +122 -0
  127. package/dist/templates/trellis/scripts/common/test_pool_store.py +17 -0
  128. package/dist/templates/trellis/scripts/common/test_task_store_kernel_patch.py +163 -0
  129. package/dist/templates/trellis/scripts/common/workflow_phase.py +3 -0
  130. package/dist/templates/trellis/scripts/cursor_retrieval_probe_prompt.md +4 -5
  131. package/dist/templates/trellis/scripts/get_context.py +1 -0
  132. package/dist/templates/trellis/scripts/pool.py +5 -0
  133. package/dist/templates/trellis/scripts/task.py +83 -7
  134. package/dist/templates/trellis/workflow.md +109 -23
  135. package/dist/utils/cursor-retrieval-env.d.ts +2 -1
  136. package/dist/utils/cursor-retrieval-env.d.ts.map +1 -1
  137. package/dist/utils/cursor-retrieval-env.js +3 -2
  138. package/dist/utils/cursor-retrieval-env.js.map +1 -1
  139. package/dist/utils/cursor2plus-residue-cleanup.d.ts +38 -0
  140. package/dist/utils/cursor2plus-residue-cleanup.d.ts.map +1 -0
  141. package/dist/utils/cursor2plus-residue-cleanup.js +145 -0
  142. package/dist/utils/cursor2plus-residue-cleanup.js.map +1 -0
  143. package/dist/utils/manifest-prune.d.ts.map +1 -1
  144. package/dist/utils/manifest-prune.js +7 -2
  145. package/dist/utils/manifest-prune.js.map +1 -1
  146. package/dist/utils/p36-upgrade.d.ts +62 -0
  147. package/dist/utils/p36-upgrade.d.ts.map +1 -0
  148. package/dist/utils/p36-upgrade.js +160 -0
  149. package/dist/utils/p36-upgrade.js.map +1 -0
  150. package/dist/utils/project-capabilities.d.ts +1 -12
  151. package/dist/utils/project-capabilities.d.ts.map +1 -1
  152. package/dist/utils/project-capabilities.js +3 -100
  153. package/dist/utils/project-capabilities.js.map +1 -1
  154. package/dist/utils/readiness.d.ts +10 -0
  155. package/dist/utils/readiness.d.ts.map +1 -1
  156. package/dist/utils/readiness.js +58 -26
  157. package/dist/utils/readiness.js.map +1 -1
  158. package/dist/utils/retrieval-agent-instructions.js +1 -1
  159. package/dist/utils/retrieval-agent-instructions.js.map +1 -1
  160. package/dist/utils/retrieval-execution-telemetry.js +1 -1
  161. package/dist/utils/retrieval-execution-telemetry.js.map +1 -1
  162. package/dist/utils/template-hash.d.ts.map +1 -1
  163. package/dist/utils/template-hash.js +11 -1
  164. package/dist/utils/template-hash.js.map +1 -1
  165. package/dist/utils/uninstall-scrubbers.d.ts.map +1 -1
  166. package/dist/utils/uninstall-scrubbers.js +52 -14
  167. package/dist/utils/uninstall-scrubbers.js.map +1 -1
  168. package/dist/utils/update-rollout-report.d.ts +14 -0
  169. package/dist/utils/update-rollout-report.d.ts.map +1 -1
  170. package/dist/utils/update-rollout-report.js +1 -0
  171. package/dist/utils/update-rollout-report.js.map +1 -1
  172. package/dist/utils/workflow-ownership.d.ts +1 -1
  173. package/dist/utils/workflow-ownership.js +4 -4
  174. package/dist/utils/workflow-ownership.js.map +1 -1
  175. package/package.json +5 -4
  176. package/scripts/postinstall.js +6 -7
  177. package/dist/commands/campaign/canvas-render.d.ts +0 -68
  178. package/dist/commands/campaign/canvas-render.d.ts.map +0 -1
  179. package/dist/commands/campaign/canvas-render.js +0 -414
  180. package/dist/commands/campaign/canvas-render.js.map +0 -1
  181. package/dist/commands/campaign/compose.d.ts +0 -15
  182. package/dist/commands/campaign/compose.d.ts.map +0 -1
  183. package/dist/commands/campaign/compose.js +0 -110
  184. package/dist/commands/campaign/compose.js.map +0 -1
  185. package/dist/commands/campaign/index.d.ts +0 -13
  186. package/dist/commands/campaign/index.d.ts.map +0 -1
  187. package/dist/commands/campaign/index.js +0 -134
  188. package/dist/commands/campaign/index.js.map +0 -1
  189. package/dist/commands/campaign/kind-map.d.ts +0 -6
  190. package/dist/commands/campaign/kind-map.d.ts.map +0 -1
  191. package/dist/commands/campaign/kind-map.js +0 -21
  192. package/dist/commands/campaign/kind-map.js.map +0 -1
  193. package/dist/commands/campaign/mcp-server.d.ts +0 -6
  194. package/dist/commands/campaign/mcp-server.d.ts.map +0 -1
  195. package/dist/commands/campaign/mcp-server.js +0 -167
  196. package/dist/commands/campaign/mcp-server.js.map +0 -1
  197. package/dist/commands/campaign/render.d.ts +0 -5
  198. package/dist/commands/campaign/render.d.ts.map +0 -1
  199. package/dist/commands/campaign/render.js +0 -103
  200. package/dist/commands/campaign/render.js.map +0 -1
  201. package/dist/commands/campaign/trellis-load.d.ts +0 -13
  202. package/dist/commands/campaign/trellis-load.d.ts.map +0 -1
  203. package/dist/commands/campaign/trellis-load.js +0 -122
  204. package/dist/commands/campaign/trellis-load.js.map +0 -1
  205. package/dist/commands/campaign/types.d.ts +0 -61
  206. package/dist/commands/campaign/types.d.ts.map +0 -1
  207. package/dist/commands/campaign/types.js +0 -3
  208. package/dist/commands/campaign/types.js.map +0 -1
  209. package/dist/commands/goal/index.d.ts +0 -3
  210. package/dist/commands/goal/index.d.ts.map +0 -1
  211. package/dist/commands/goal/index.js +0 -159
  212. package/dist/commands/goal/index.js.map +0 -1
  213. package/dist/commands/goal/review.d.ts +0 -6
  214. package/dist/commands/goal/review.d.ts.map +0 -1
  215. package/dist/commands/goal/review.js +0 -28
  216. package/dist/commands/goal/review.js.map +0 -1
  217. package/dist/commands/rpc/client.d.ts +0 -51
  218. package/dist/commands/rpc/client.d.ts.map +0 -1
  219. package/dist/commands/rpc/client.js +0 -147
  220. package/dist/commands/rpc/client.js.map +0 -1
  221. package/dist/commands/rpc/index.d.ts +0 -10
  222. package/dist/commands/rpc/index.d.ts.map +0 -1
  223. package/dist/commands/rpc/index.js +0 -157
  224. package/dist/commands/rpc/index.js.map +0 -1
  225. package/dist/commands/rpc/serve.d.ts +0 -23
  226. package/dist/commands/rpc/serve.d.ts.map +0 -1
  227. package/dist/commands/rpc/serve.js +0 -60
  228. package/dist/commands/rpc/serve.js.map +0 -1
  229. package/dist/commands/rpc/smoke.d.ts +0 -16
  230. package/dist/commands/rpc/smoke.d.ts.map +0 -1
  231. package/dist/commands/rpc/smoke.js +0 -92
  232. package/dist/commands/rpc/smoke.js.map +0 -1
  233. package/dist/commands/sdk/index.d.ts +0 -9
  234. package/dist/commands/sdk/index.d.ts.map +0 -1
  235. package/dist/commands/sdk/index.js +0 -58
  236. package/dist/commands/sdk/index.js.map +0 -1
  237. package/dist/commands/sdk/run.d.ts +0 -42
  238. package/dist/commands/sdk/run.d.ts.map +0 -1
  239. package/dist/commands/sdk/run.js +0 -220
  240. package/dist/commands/sdk/run.js.map +0 -1
  241. package/dist/commands/sdk/status.d.ts +0 -14
  242. package/dist/commands/sdk/status.d.ts.map +0 -1
  243. package/dist/commands/sdk/status.js +0 -69
  244. package/dist/commands/sdk/status.js.map +0 -1
  245. package/dist/configurators/cursor2plus-local.d.ts +0 -6
  246. package/dist/configurators/cursor2plus-local.d.ts.map +0 -1
  247. package/dist/configurators/cursor2plus-local.js +0 -21
  248. package/dist/configurators/cursor2plus-local.js.map +0 -1
  249. package/dist/goal/action-packet.d.ts +0 -89
  250. package/dist/goal/action-packet.d.ts.map +0 -1
  251. package/dist/goal/action-packet.js +0 -113
  252. package/dist/goal/action-packet.js.map +0 -1
  253. package/dist/goal/audit.d.ts +0 -14
  254. package/dist/goal/audit.d.ts.map +0 -1
  255. package/dist/goal/audit.js +0 -12
  256. package/dist/goal/audit.js.map +0 -1
  257. package/dist/goal/constants.d.ts +0 -26
  258. package/dist/goal/constants.d.ts.map +0 -1
  259. package/dist/goal/constants.js +0 -24
  260. package/dist/goal/constants.js.map +0 -1
  261. package/dist/goal/paths.d.ts +0 -8
  262. package/dist/goal/paths.d.ts.map +0 -1
  263. package/dist/goal/paths.js +0 -36
  264. package/dist/goal/paths.js.map +0 -1
  265. package/dist/goal/preflight.d.ts +0 -21
  266. package/dist/goal/preflight.d.ts.map +0 -1
  267. package/dist/goal/preflight.js +0 -97
  268. package/dist/goal/preflight.js.map +0 -1
  269. package/dist/goal/review-seam.d.ts +0 -44
  270. package/dist/goal/review-seam.d.ts.map +0 -1
  271. package/dist/goal/review-seam.js +0 -153
  272. package/dist/goal/review-seam.js.map +0 -1
  273. package/dist/goal/reviewer-rules.d.ts +0 -13
  274. package/dist/goal/reviewer-rules.d.ts.map +0 -1
  275. package/dist/goal/reviewer-rules.js +0 -153
  276. package/dist/goal/reviewer-rules.js.map +0 -1
  277. package/dist/goal/reviewer.d.ts +0 -9
  278. package/dist/goal/reviewer.d.ts.map +0 -1
  279. package/dist/goal/reviewer.js +0 -54
  280. package/dist/goal/reviewer.js.map +0 -1
  281. package/dist/goal/runtime.d.ts +0 -32
  282. package/dist/goal/runtime.d.ts.map +0 -1
  283. package/dist/goal/runtime.js +0 -242
  284. package/dist/goal/runtime.js.map +0 -1
  285. package/dist/goal/sdk-client.d.ts +0 -10
  286. package/dist/goal/sdk-client.d.ts.map +0 -1
  287. package/dist/goal/sdk-client.js +0 -34
  288. package/dist/goal/sdk-client.js.map +0 -1
  289. package/dist/goal/state.d.ts +0 -40
  290. package/dist/goal/state.d.ts.map +0 -1
  291. package/dist/goal/state.js +0 -37
  292. package/dist/goal/state.js.map +0 -1
  293. package/dist/goal/task-triggers.d.ts +0 -15
  294. package/dist/goal/task-triggers.d.ts.map +0 -1
  295. package/dist/goal/task-triggers.js +0 -23
  296. package/dist/goal/task-triggers.js.map +0 -1
  297. package/dist/goal/walls.d.ts +0 -12
  298. package/dist/goal/walls.d.ts.map +0 -1
  299. package/dist/goal/walls.js +0 -65
  300. package/dist/goal/walls.js.map +0 -1
  301. package/dist/goal/worker-prompt.d.ts +0 -13
  302. package/dist/goal/worker-prompt.d.ts.map +0 -1
  303. package/dist/goal/worker-prompt.js +0 -41
  304. package/dist/goal/worker-prompt.js.map +0 -1
  305. package/dist/goal/worker.d.ts +0 -42
  306. package/dist/goal/worker.d.ts.map +0 -1
  307. package/dist/goal/worker.js +0 -180
  308. package/dist/goal/worker.js.map +0 -1
  309. package/dist/templates/common/bundled-skills/cstl-cursor2plus-setup/SKILL.md +0 -63
  310. package/dist/templates/cursor/commands/cursor2plus-setup.md +0 -82
  311. package/dist/templates/cursor/rules/cstl-cursor-modes.mdc +0 -32
  312. package/dist/templates/cursor/rules/cstl-session-rename.mdc +0 -31
  313. package/dist/templates/cursor/rules/cstl-subagent-dispatch.mdc +0 -34
  314. package/dist/templates/cursor/rules/cstl-triage.mdc +0 -36
  315. package/dist/templates/cursor/rules/retrieval-routing.mdc +0 -78
  316. package/dist/templates/markdown/spec/guides/cursor-trellis-release-coexistence-guide.md.txt +0 -166
  317. package/dist/templates/markdown/spec/guides/goal-release-regression-runbook.md.txt +0 -132
  318. package/dist/templates/trellis/local/README.md +0 -85
  319. package/dist/templates/trellis/local/config.local.json.example +0 -6
  320. package/dist/templates/trellis/local/index.d.ts +0 -8
  321. package/dist/templates/trellis/local/index.d.ts.map +0 -1
  322. package/dist/templates/trellis/local/index.js +0 -15
  323. package/dist/templates/trellis/local/index.js.map +0 -1
  324. package/dist/templates/trellis/local/patch_wpelc8.py +0 -421
  325. package/dist/templates/trellis/local/smoke.py +0 -94
  326. package/dist/templates/trellis/local/subagent-models.json.example +0 -4
  327. package/dist/templates/trellis/local/trellis-task-models.json.example +0 -10
  328. package/dist/templates/trellis/local/trellis-task-models.json5.example +0 -45
  329. package/dist/templates/trellis/local/trellis_task_models_config.py +0 -200
  330. package/dist/utils/cursor-sdk-gate.d.ts +0 -10
  331. package/dist/utils/cursor-sdk-gate.d.ts.map +0 -1
  332. package/dist/utils/cursor-sdk-gate.js +0 -32
  333. package/dist/utils/cursor-sdk-gate.js.map +0 -1
  334. /package/dist/templates/markdown/{spec/guides → framework}/artifact-locale-guide.md.txt +0 -0
  335. /package/dist/templates/markdown/{spec/guides → framework}/cursor-context-injection-guide.md.txt +0 -0
  336. /package/dist/templates/markdown/{spec/guides → framework}/cursor-semantic-compliance.md.txt +0 -0
  337. /package/dist/templates/markdown/{spec/guides → framework}/injection-budget-guide.md.txt +0 -0
@@ -1,157 +0,0 @@
1
- import { InvalidArgumentError } from "commander";
2
- import { RPC_ADDRESS_KINDS, } from "@blxzer/cursor-trellis-core/rpc";
3
- import { exitForEnvelope, getJson, parseAddressArg, parseJsonObject, printEnvelope, resolveRpcToken, resolveRpcUrl, rpcPublish, rpcRegister, rpcSend, rpcSubscribe, } from "./client.js";
4
- import { runRpcServeCommand } from "./serve.js";
5
- import { runRpcSmoke } from "./smoke.js";
6
- function parsePort(value) {
7
- if (!/^\d+$/.test(value)) {
8
- throw new InvalidArgumentError(`expected port integer, got '${value}'`);
9
- }
10
- return Number(value);
11
- }
12
- function parseKind(value) {
13
- if (!RPC_ADDRESS_KINDS.includes(value)) {
14
- throw new InvalidArgumentError(`kind must be one of: ${RPC_ADDRESS_KINDS.join(", ")}`);
15
- }
16
- return value;
17
- }
18
- /**
19
- * Register `cstl rpc` — localhost RPC-FULL CORE control plane.
20
- * Does not replace durable `channel` event logs. Does not auto-approve HITL gates.
21
- */
22
- export function registerRpcCommand(program) {
23
- const rpc = program
24
- .command("rpc")
25
- .description("Localhost RPC-FULL CORE broker (register/send/push/topics). Non-goals: multi-machine, A2A impl, ops console. Never auto-approves Trellis HITL gates.");
26
- rpc
27
- .command("serve")
28
- .description("Start localhost broker on 127.0.0.1 (HTTP+/WS). Non-goals: multi-machine / A2A / ops console.")
29
- .option("--host <host>", "loopback host only", "127.0.0.1")
30
- .option("--port <port>", "listen port (0 = ephemeral)", parsePort, 7843)
31
- .option("--token <token>", "shared local token (or TRELLIS_RPC_TOKEN)")
32
- .option("--journal-dir <dir>", "audit journal directory (default: ~/.cstl/rpc)")
33
- .option("--no-journal", "disable on-disk audit journal")
34
- .action(async (opts) => {
35
- const code = await runRpcServeCommand({
36
- host: opts.host,
37
- port: opts.port,
38
- token: resolveRpcToken(opts.token),
39
- journalDir: opts.journal === false ? null : opts.journalDir,
40
- });
41
- process.exitCode = code;
42
- });
43
- rpc
44
- .command("status")
45
- .description("Fetch broker status snapshot")
46
- .option("--url <url>", "broker base URL (or TRELLIS_RPC_URL)")
47
- .option("--json", "print raw JSON")
48
- .action(async (opts) => {
49
- const url = resolveRpcUrl(opts.url);
50
- const status = await getJson(url, "/status");
51
- console.log(JSON.stringify(status, null, opts.json ? 2 : 2));
52
- });
53
- rpc
54
- .command("register")
55
- .description("Register a client address with the broker")
56
- .requiredOption("--kind <kind>", "worker|session|cli|sdk|broker", parseKind)
57
- .requiredOption("--id <id>", "address id")
58
- .option("--campaign <id>", "optional campaign id")
59
- .option("--url <url>", "broker base URL")
60
- .option("--token <token>", "shared local token")
61
- .option("--json", "print full envelope JSON")
62
- .action(async (opts) => {
63
- const envelope = await rpcRegister({
64
- url: resolveRpcUrl(opts.url),
65
- kind: opts.kind,
66
- id: opts.id,
67
- campaignId: opts.campaign,
68
- token: resolveRpcToken(opts.token),
69
- });
70
- printEnvelope(envelope, Boolean(opts.json));
71
- process.exitCode = exitForEnvelope(envelope);
72
- });
73
- rpc
74
- .command("send")
75
- .description("Send an addressable one-way message")
76
- .requiredOption("--from <addr>", "kind:id sender")
77
- .requiredOption("--to <addr>", "kind:id recipient")
78
- .option("--body <json>", "JSON object payload", "{}")
79
- .option("--url <url>", "broker base URL")
80
- .option("--token <token>", "shared local token")
81
- .option("--json", "print full envelope JSON")
82
- .action(async (opts) => {
83
- const envelope = await rpcSend({
84
- url: resolveRpcUrl(opts.url),
85
- from: parseAddressArg(opts.from),
86
- to: parseAddressArg(opts.to),
87
- body: parseJsonObject(opts.body, "--body"),
88
- token: resolveRpcToken(opts.token),
89
- });
90
- printEnvelope(envelope, Boolean(opts.json));
91
- process.exitCode = exitForEnvelope(envelope);
92
- });
93
- rpc
94
- .command("subscribe")
95
- .description("Subscribe an address to a campaign topic")
96
- .requiredOption("--from <addr>", "kind:id subscriber")
97
- .requiredOption("--topic <topic>", "campaign:<id>:broadcast|stage:<sid>")
98
- .option("--url <url>", "broker base URL")
99
- .option("--token <token>", "shared local token")
100
- .option("--json", "print full envelope JSON")
101
- .action(async (opts) => {
102
- const envelope = await rpcSubscribe({
103
- url: resolveRpcUrl(opts.url),
104
- from: parseAddressArg(opts.from),
105
- topic: opts.topic,
106
- token: resolveRpcToken(opts.token),
107
- });
108
- printEnvelope(envelope, Boolean(opts.json));
109
- process.exitCode = exitForEnvelope(envelope);
110
- });
111
- rpc
112
- .command("publish")
113
- .description("Publish to a campaign topic")
114
- .requiredOption("--from <addr>", "kind:id publisher")
115
- .requiredOption("--topic <topic>", "campaign topic")
116
- .option("--body <json>", "JSON object payload", "{}")
117
- .option("--campaign <id>", "campaign id stamp")
118
- .option("--url <url>", "broker base URL")
119
- .option("--token <token>", "shared local token")
120
- .option("--json", "print full envelope JSON")
121
- .action(async (opts) => {
122
- const envelope = await rpcPublish({
123
- url: resolveRpcUrl(opts.url),
124
- from: parseAddressArg(opts.from),
125
- topic: opts.topic,
126
- body: parseJsonObject(opts.body, "--body"),
127
- campaignId: opts.campaign,
128
- token: resolveRpcToken(opts.token),
129
- });
130
- printEnvelope(envelope, Boolean(opts.json));
131
- process.exitCode = exitForEnvelope(envelope);
132
- });
133
- rpc
134
- .command("smoke")
135
- .description("Run two-client + topic round-trip against an ephemeral localhost broker")
136
- .option("--token <token>", "optional shared token for the smoke broker")
137
- .option("--json", "print machine-readable result")
138
- .action(async (opts) => {
139
- const result = await runRpcSmoke({
140
- token: resolveRpcToken(opts.token),
141
- });
142
- if (opts.json) {
143
- console.log(JSON.stringify(result, null, 2));
144
- }
145
- else if (result.ok) {
146
- console.log(`RPC smoke OK (url=${result.url}, clients=${result.statusClients}, topicDelivered=${result.topicDelivered})`);
147
- }
148
- else {
149
- console.error(`RPC smoke FAILED: ${result.errors.join("; ")}`);
150
- }
151
- process.exitCode = result.ok ? 0 : 1;
152
- });
153
- }
154
- export { startRpcServe, runRpcServeCommand, } from "./serve.js";
155
- export { runRpcSmoke } from "./smoke.js";
156
- export { resolveRpcUrl, resolveRpcToken, parseAddressArg, postRpc, rpcRegister, rpcSend, rpcSubscribe, rpcPublish, getJson, } from "./client.js";
157
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/rpc/index.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- import { LocalhostRpcServer, type LocalhostRpcServerInfo } from "@blxzer/cursor-trellis-core/rpc";
2
- export interface RpcServeOptions {
3
- host?: string;
4
- port?: number;
5
- token?: string;
6
- /** Omit or pass undefined for default `~/.cstl/rpc`; pass `null` to disable. */
7
- journalDir?: string | null;
8
- heartbeatTimeoutMs?: number;
9
- /** When set, return after listen instead of waiting (tests). */
10
- listenOnly?: boolean;
11
- }
12
- export interface RpcServeHandle {
13
- server: LocalhostRpcServer;
14
- info: LocalhostRpcServerInfo;
15
- close(): Promise<void>;
16
- }
17
- /**
18
- * Start localhost RPC-FULL CORE broker.
19
- * Non-goals (printed in help): multi-machine, A2A runtime, ops console.
20
- */
21
- export declare function startRpcServe(options?: RpcServeOptions): Promise<RpcServeHandle>;
22
- export declare function runRpcServeCommand(options?: RpcServeOptions): Promise<number>;
23
- //# sourceMappingURL=serve.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../../src/commands/rpc/serve.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,kBAAkB,EAClB,KAAK,sBAAsB,EAC5B,MAAM,iCAAiC,CAAC;AAEzC,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gEAAgE;IAChE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,IAAI,EAAE,sBAAsB,CAAC;IAC7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAMD;;;GAGG;AACH,wBAAsB,aAAa,CACjC,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC,CA6BzB;AAED,wBAAsB,kBAAkB,CACtC,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC,CA0BjB"}
@@ -1,60 +0,0 @@
1
- import os from "node:os";
2
- import path from "node:path";
3
- import { LocalhostRpcServer, } from "@blxzer/cursor-trellis-core/rpc";
4
- function defaultJournalDir() {
5
- return path.join(os.homedir(), ".cstl", "rpc");
6
- }
7
- /**
8
- * Start localhost RPC-FULL CORE broker.
9
- * Non-goals (printed in help): multi-machine, A2A runtime, ops console.
10
- */
11
- export async function startRpcServe(options = {}) {
12
- const host = options.host ?? "127.0.0.1";
13
- const port = options.port ??
14
- (process.env.TRELLIS_RPC_PORT
15
- ? Number(process.env.TRELLIS_RPC_PORT)
16
- : 7843);
17
- if (!Number.isInteger(port) || port < 0) {
18
- throw new Error(`Invalid RPC port: ${String(port)}`);
19
- }
20
- const journalDir = options.journalDir === null
21
- ? undefined
22
- : (options.journalDir ?? defaultJournalDir());
23
- const server = new LocalhostRpcServer({
24
- host,
25
- port,
26
- token: options.token,
27
- ...(journalDir !== undefined ? { journalDir } : {}),
28
- heartbeatTimeoutMs: options.heartbeatTimeoutMs ?? 30_000,
29
- });
30
- const info = await server.listen();
31
- return {
32
- server,
33
- info,
34
- close: () => server.close(),
35
- };
36
- }
37
- export async function runRpcServeCommand(options = {}) {
38
- const handle = await startRpcServe(options);
39
- console.log("RPC-FULL CORE listening (localhost only)");
40
- console.log(` url: ${handle.info.url}`);
41
- console.log(` health: ${handle.info.url}/health`);
42
- console.log(` rpc: POST ${handle.info.url}/rpc`);
43
- console.log(` ws: ws://${handle.info.host}:${handle.info.port}/ws`);
44
- console.log(` events: ${handle.info.url}/events?kind=&id=`);
45
- console.log("Non-goals: multi-machine, A2A implementation, standalone ops console.");
46
- console.log("HITL gates are never auto-approved by this broker.");
47
- if (options.listenOnly) {
48
- await handle.close();
49
- return 0;
50
- }
51
- await new Promise((resolve) => {
52
- const shutdown = () => {
53
- void handle.close().finally(resolve);
54
- };
55
- process.once("SIGINT", shutdown);
56
- process.once("SIGTERM", shutdown);
57
- });
58
- return 0;
59
- }
60
- //# sourceMappingURL=serve.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/commands/rpc/serve.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- export interface RpcSmokeResult {
2
- ok: boolean;
3
- url: string;
4
- sendDelivered: boolean;
5
- topicDelivered: number;
6
- statusClients: number;
7
- errors: string[];
8
- }
9
- /**
10
- * Two-client + campaign topic round-trip against a fresh localhost broker.
11
- * Used by tests and `cstl rpc smoke`.
12
- */
13
- export declare function runRpcSmoke(options?: {
14
- token?: string;
15
- }): Promise<RpcSmokeResult>;
16
- //# sourceMappingURL=smoke.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"smoke.d.ts","sourceRoot":"","sources":["../../../src/commands/rpc/smoke.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CACX,GAAG,OAAO,CAAC,cAAc,CAAC,CAsF/B"}
@@ -1,92 +0,0 @@
1
- import { campaignBroadcastTopic } from "@blxzer/cursor-trellis-core/rpc";
2
- import { getJson, rpcPublish, rpcRegister, rpcSend, rpcSubscribe, } from "./client.js";
3
- import { startRpcServe } from "./serve.js";
4
- /**
5
- * Two-client + campaign topic round-trip against a fresh localhost broker.
6
- * Used by tests and `cstl rpc smoke`.
7
- */
8
- export async function runRpcSmoke(options = {}) {
9
- const errors = [];
10
- const handle = await startRpcServe({
11
- port: 0,
12
- token: options.token,
13
- heartbeatTimeoutMs: 0,
14
- journalDir: null,
15
- });
16
- const url = handle.info.url;
17
- const a = { kind: "cli", id: "smoke-a" };
18
- const b = { kind: "worker", id: "smoke-b" };
19
- const topic = campaignBroadcastTopic("smoke-camp");
20
- try {
21
- const regA = await rpcRegister({
22
- url,
23
- kind: a.kind,
24
- id: a.id,
25
- campaignId: "smoke-camp",
26
- token: options.token,
27
- });
28
- const regB = await rpcRegister({
29
- url,
30
- kind: b.kind,
31
- id: b.id,
32
- token: options.token,
33
- });
34
- if (regA.error)
35
- errors.push(`register A: ${regA.error.message}`);
36
- if (regB.error)
37
- errors.push(`register B: ${regB.error.message}`);
38
- const sent = await rpcSend({
39
- url,
40
- from: a,
41
- to: b,
42
- body: { hello: "smoke" },
43
- token: options.token,
44
- });
45
- if (sent.error)
46
- errors.push(`send: ${sent.error.message}`);
47
- const sub = await rpcSubscribe({
48
- url,
49
- from: b,
50
- topic,
51
- token: options.token,
52
- });
53
- if (sub.error)
54
- errors.push(`subscribe: ${sub.error.message}`);
55
- const published = await rpcPublish({
56
- url,
57
- from: a,
58
- topic,
59
- body: { stage: "ready" },
60
- campaignId: "smoke-camp",
61
- token: options.token,
62
- });
63
- if (published.error)
64
- errors.push(`publish: ${published.error.message}`);
65
- const status = (await getJson(url, "/status"));
66
- const sendDelivered = sent.payload.delivered === true;
67
- const topicDelivered = typeof published.payload.delivered === "number"
68
- ? published.payload.delivered
69
- : 0;
70
- const statusClients = Array.isArray(status.clients)
71
- ? status.clients.length
72
- : 0;
73
- if (topicDelivered < 1)
74
- errors.push("topic deliver count < 1");
75
- if (statusClients < 2)
76
- errors.push("status clients < 2");
77
- if (!sendDelivered)
78
- errors.push("send not delivered");
79
- return {
80
- ok: errors.length === 0,
81
- url,
82
- sendDelivered,
83
- topicDelivered,
84
- statusClients,
85
- errors,
86
- };
87
- }
88
- finally {
89
- await handle.close();
90
- }
91
- }
92
- //# sourceMappingURL=smoke.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"smoke.js","sourceRoot":"","sources":["../../../src/commands/rpc/smoke.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import type { Command } from "commander";
2
- /**
3
- * Register `cstl sdk` — Trellis↔Cursor SDK RUN path (CAP: safe-task/SDK only).
4
- * Non-goals: fake IDE chat tab, Parent integrate, MIX UI, broker rewrite.
5
- */
6
- export declare function registerSdkCommand(program: Command): void;
7
- export { runSdkRun, runSdkRunCommand, type SdkRunOptions, type SdkRunResult } from "./run.js";
8
- export { collectSdkStatus, runSdkStatusCommand, type SdkStatusResult, } from "./status.js";
9
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/sdk/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0EzD;AAED,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAC9F,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,KAAK,eAAe,GACrB,MAAM,aAAa,CAAC"}
@@ -1,58 +0,0 @@
1
- import { resolveRpcToken, resolveRpcUrl } from "../rpc/client.js";
2
- import { runSdkRunCommand } from "./run.js";
3
- import { runSdkStatusCommand } from "./status.js";
4
- /**
5
- * Register `cstl sdk` — Trellis↔Cursor SDK RUN path (CAP: safe-task/SDK only).
6
- * Non-goals: fake IDE chat tab, Parent integrate, MIX UI, broker rewrite.
7
- */
8
- export function registerSdkCommand(program) {
9
- const sdk = program
10
- .command("sdk")
11
- .description("Cursor SDK RUN bridge for Trellis (explicit --task; mock/live; RPC kind=sdk). Non-goals: IDE chat tab, Parent integrate, MIX UI.");
12
- sdk
13
- .command("status")
14
- .description("Show whether CURSOR_API_KEY is present and whether cursor-sdk can be enabled (never prints the key)")
15
- .option("--cwd <dir>", "Project directory to inspect for capabilities.json")
16
- .option("--json", "Print machine-readable status JSON")
17
- .action(async (opts) => {
18
- const code = await runSdkStatusCommand({
19
- cwd: opts.cwd,
20
- json: opts.json === true,
21
- });
22
- process.exitCode = code;
23
- });
24
- sdk
25
- .command("run")
26
- .description("Bind an explicit task path, run mock or live Agent.prompt, write dogfood evidence, emit campaign RPC events")
27
- .requiredOption("--task <path>", "Explicit Trellis task directory (must contain prd.md). Required — SDK has no selected_task.")
28
- .option("--campaign <id>", "Campaign id for RPC topic (no colon)", "08-01-trellis-intent-multisession")
29
- .option("--prompt <text>", "Prompt body for the SDK / mock agent")
30
- .option("--cwd <dir>", "Working directory for live local Agent (default: process.cwd())")
31
- .option("--live", "Call @cursor/sdk Agent.prompt (requires consent + CURSOR_API_KEY)")
32
- .option("--mock", "Force mock adapter (default when --live is absent)")
33
- .option("--rpc-url <url>", "RPC CORE URL (default TRELLIS_RPC_URL or http://127.0.0.1:7843)")
34
- .option("--token <token>", "RPC token (or TRELLIS_RPC_TOKEN)")
35
- .option("--no-rpc", "Skip RPC register/publish (still writes dogfood)")
36
- .action(async (opts) => {
37
- if (opts.live && opts.mock) {
38
- console.error("SDK RUN error: use only one of --live or --mock");
39
- process.exitCode = 1;
40
- return;
41
- }
42
- const mode = opts.live ? "live" : "mock";
43
- const code = await runSdkRunCommand({
44
- task: opts.task,
45
- campaign: opts.campaign ?? "08-01-trellis-intent-multisession",
46
- mode,
47
- prompt: opts.prompt,
48
- cwd: opts.cwd,
49
- rpcUrl: opts.rpcUrl ? resolveRpcUrl(opts.rpcUrl) : undefined,
50
- token: resolveRpcToken(opts.token),
51
- noRpc: opts.rpc === false,
52
- });
53
- process.exitCode = code;
54
- });
55
- }
56
- export { runSdkRun, runSdkRunCommand } from "./run.js";
57
- export { collectSdkStatus, runSdkStatusCommand, } from "./status.js";
58
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/sdk/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,MAAM,GAAG,GAAG,OAAO;SAChB,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CACV,kIAAkI,CACnI,CAAC;IAEJ,GAAG;SACA,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CACV,qGAAqG,CACtG;SACA,MAAM,CAAC,aAAa,EAAE,oDAAoD,CAAC;SAC3E,MAAM,CAAC,QAAQ,EAAE,oCAAoC,CAAC;SACtD,MAAM,CAAC,KAAK,EAAE,IAAsC,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC;YACrC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI;SACzB,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CACV,6GAA6G,CAC9G;SACA,cAAc,CACb,eAAe,EACf,6FAA6F,CAC9F;SACA,MAAM,CACL,iBAAiB,EACjB,sCAAsC,EACtC,mCAAmC,CACpC;SACA,MAAM,CAAC,iBAAiB,EAAE,sCAAsC,CAAC;SACjE,MAAM,CAAC,aAAa,EAAE,iEAAiE,CAAC;SACxF,MAAM,CAAC,QAAQ,EAAE,mEAAmE,CAAC;SACrF,MAAM,CAAC,QAAQ,EAAE,oDAAoD,CAAC;SACtE,MAAM,CAAC,iBAAiB,EAAE,iEAAiE,CAAC;SAC5F,MAAM,CAAC,iBAAiB,EAAE,kCAAkC,CAAC;SAC7D,MAAM,CAAC,UAAU,EAAE,kDAAkD,CAAC;SACtE,MAAM,CACL,KAAK,EAAE,IAUN,EAAE,EAAE;QACH,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACjE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAe,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QACrD,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC;YAClC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,mCAAmC;YAC9D,IAAI;YACJ,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;YAC5D,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;YAClC,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,KAAK;SAC1B,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC1B,CAAC,CACF,CAAC;AACN,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAyC,MAAM,UAAU,CAAC;AAC9F,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GAEpB,MAAM,aAAa,CAAC"}
@@ -1,42 +0,0 @@
1
- export type SdkRunMode = "mock" | "live";
2
- export interface SdkRunOptions {
3
- task: string;
4
- campaign: string;
5
- mode: SdkRunMode;
6
- prompt?: string;
7
- cwd?: string;
8
- rpcUrl?: string;
9
- token?: string;
10
- noRpc?: boolean;
11
- /** When set, write dogfood under this absolute path instead of <task>/research/ */
12
- evidencePath?: string;
13
- }
14
- export interface SdkRunResult {
15
- ok: boolean;
16
- runId: string;
17
- mode: SdkRunMode;
18
- taskPath: string;
19
- evidencePath: string;
20
- rpc: {
21
- attempted: boolean;
22
- ok: boolean;
23
- url?: string;
24
- detail: string;
25
- };
26
- agent: {
27
- status: string;
28
- result: string;
29
- };
30
- errors: string[];
31
- }
32
- /**
33
- * Build the Agent prompt for SDK RUN. Always prepends an explicit --task binding
34
- * block so SessionStart "Selected task: none" cannot be misread as unbound.
35
- */
36
- export declare function buildSdkRunPrompt(taskPath: string, userPrompt?: string): string;
37
- /**
38
- * Minimal Trellis SDK RUN: bind explicit task path, run mock/live agent, write dogfood, emit RPC.
39
- */
40
- export declare function runSdkRun(options: SdkRunOptions): Promise<SdkRunResult>;
41
- export declare function runSdkRunCommand(options: SdkRunOptions): Promise<number>;
42
- //# sourceMappingURL=run.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/commands/sdk/run.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mFAAmF;IACnF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE;QACH,SAAS,EAAE,OAAO,CAAC;QACnB,EAAE,EAAE,OAAO,CAAC;QACZ,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAqBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAeR;AA8HD;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAkE7E;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC,CAuBjB"}