@blxzer/pactile 0.5.0 → 0.6.0-beta.4

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 (1445) hide show
  1. package/LICENSE +235 -235
  2. package/README.md +123 -111
  3. package/README.zh-CN.md +120 -111
  4. package/dist/bin/compat-warning.d.ts +2 -0
  5. package/dist/bin/compat-warning.d.ts.map +1 -0
  6. package/dist/bin/compat-warning.js +8 -0
  7. package/dist/bin/compat-warning.js.map +1 -0
  8. package/dist/bin/cstl.d.ts +3 -0
  9. package/dist/bin/cstl.d.ts.map +1 -0
  10. package/dist/bin/cstl.js +5 -0
  11. package/dist/bin/cstl.js.map +1 -0
  12. package/dist/bin/pactile.d.ts +3 -0
  13. package/dist/bin/pactile.d.ts.map +1 -0
  14. package/dist/bin/pactile.js +4 -0
  15. package/dist/bin/pactile.js.map +1 -0
  16. package/dist/cli/index.d.ts.map +1 -1
  17. package/dist/cli/index.js +149 -40
  18. package/dist/cli/index.js.map +1 -1
  19. package/dist/commands/capability.d.ts +3 -0
  20. package/dist/commands/capability.d.ts.map +1 -0
  21. package/dist/commands/capability.js +129 -0
  22. package/dist/commands/capability.js.map +1 -0
  23. package/dist/commands/codex.d.ts +3 -0
  24. package/dist/commands/codex.d.ts.map +1 -0
  25. package/dist/commands/codex.js +102 -0
  26. package/dist/commands/codex.js.map +1 -0
  27. package/dist/commands/context.d.ts +5 -0
  28. package/dist/commands/context.d.ts.map +1 -0
  29. package/dist/commands/context.js +598 -0
  30. package/dist/commands/context.js.map +1 -0
  31. package/dist/commands/detach.d.ts.map +1 -1
  32. package/dist/commands/detach.js +5 -4
  33. package/dist/commands/detach.js.map +1 -1
  34. package/dist/commands/init.d.ts +0 -20
  35. package/dist/commands/init.d.ts.map +1 -1
  36. package/dist/commands/init.js +736 -551
  37. package/dist/commands/init.js.map +1 -1
  38. package/dist/commands/legacy-task.d.ts +3 -0
  39. package/dist/commands/legacy-task.d.ts.map +1 -0
  40. package/dist/commands/legacy-task.js +295 -0
  41. package/dist/commands/legacy-task.js.map +1 -0
  42. package/dist/commands/migrate.js +1 -1
  43. package/dist/commands/migrate.js.map +1 -1
  44. package/dist/commands/parallel.d.ts +2 -0
  45. package/dist/commands/parallel.d.ts.map +1 -0
  46. package/dist/commands/parallel.js +26 -0
  47. package/dist/commands/parallel.js.map +1 -0
  48. package/dist/commands/pi.d.ts +4 -0
  49. package/dist/commands/pi.d.ts.map +1 -0
  50. package/dist/commands/pi.js +417 -0
  51. package/dist/commands/pi.js.map +1 -0
  52. package/dist/commands/session.d.ts +2 -0
  53. package/dist/commands/session.d.ts.map +1 -0
  54. package/dist/commands/session.js +293 -0
  55. package/dist/commands/session.js.map +1 -0
  56. package/dist/commands/task-schedule.d.ts +17 -0
  57. package/dist/commands/task-schedule.d.ts.map +1 -0
  58. package/dist/commands/task-schedule.js +395 -0
  59. package/dist/commands/task-schedule.js.map +1 -0
  60. package/dist/commands/task-verify-plan.d.ts +3 -0
  61. package/dist/commands/task-verify-plan.d.ts.map +1 -0
  62. package/dist/commands/task-verify-plan.js +503 -0
  63. package/dist/commands/task-verify-plan.js.map +1 -0
  64. package/dist/commands/task-worktree-close.d.ts +4 -0
  65. package/dist/commands/task-worktree-close.d.ts.map +1 -0
  66. package/dist/commands/task-worktree-close.js +81 -0
  67. package/dist/commands/task-worktree-close.js.map +1 -0
  68. package/dist/commands/task.d.ts +6 -0
  69. package/dist/commands/task.d.ts.map +1 -0
  70. package/dist/commands/task.js +2215 -0
  71. package/dist/commands/task.js.map +1 -0
  72. package/dist/commands/tile-selection.d.ts +3 -0
  73. package/dist/commands/tile-selection.d.ts.map +1 -0
  74. package/dist/commands/tile-selection.js +174 -0
  75. package/dist/commands/tile-selection.js.map +1 -0
  76. package/dist/commands/update.d.ts +4 -2
  77. package/dist/commands/update.d.ts.map +1 -1
  78. package/dist/commands/update.js +208 -100
  79. package/dist/commands/update.js.map +1 -1
  80. package/dist/commands/workflow.d.ts.map +1 -1
  81. package/dist/commands/workflow.js +1 -2
  82. package/dist/commands/workflow.js.map +1 -1
  83. package/dist/commands/worktree.d.ts +4 -0
  84. package/dist/commands/worktree.d.ts.map +1 -0
  85. package/dist/commands/worktree.js +198 -0
  86. package/dist/commands/worktree.js.map +1 -0
  87. package/dist/configurators/index.d.ts +5 -51
  88. package/dist/configurators/index.d.ts.map +1 -1
  89. package/dist/configurators/index.js +9 -140
  90. package/dist/configurators/index.js.map +1 -1
  91. package/dist/configurators/shared.d.ts +7 -66
  92. package/dist/configurators/shared.d.ts.map +1 -1
  93. package/dist/configurators/shared.js +17 -262
  94. package/dist/configurators/shared.js.map +1 -1
  95. package/dist/configurators/workflow.d.ts +5 -6
  96. package/dist/configurators/workflow.d.ts.map +1 -1
  97. package/dist/configurators/workflow.js +11 -39
  98. package/dist/configurators/workflow.js.map +1 -1
  99. package/dist/constants/paths.d.ts +1 -5
  100. package/dist/constants/paths.d.ts.map +1 -1
  101. package/dist/constants/paths.js +1 -5
  102. package/dist/constants/paths.js.map +1 -1
  103. package/dist/core/compat/environment.d.ts +42 -0
  104. package/dist/core/compat/environment.d.ts.map +1 -0
  105. package/dist/core/compat/environment.js +83 -0
  106. package/dist/core/compat/environment.js.map +1 -0
  107. package/dist/core/compat/index.d.ts +2 -0
  108. package/dist/core/compat/index.d.ts.map +1 -0
  109. package/dist/core/compat/index.js +2 -0
  110. package/dist/core/compat/index.js.map +1 -0
  111. package/dist/core/index.d.ts +4 -0
  112. package/dist/core/index.d.ts.map +1 -0
  113. package/dist/core/index.js +6 -0
  114. package/dist/core/index.js.map +1 -0
  115. package/dist/core/pactile/bounded-capabilities.d.ts +127 -0
  116. package/dist/core/pactile/bounded-capabilities.d.ts.map +1 -0
  117. package/dist/core/pactile/bounded-capabilities.js +188 -0
  118. package/dist/core/pactile/bounded-capabilities.js.map +1 -0
  119. package/dist/core/pactile/capability.d.ts +65 -0
  120. package/dist/core/pactile/capability.d.ts.map +1 -0
  121. package/dist/core/pactile/capability.js +199 -0
  122. package/dist/core/pactile/capability.js.map +1 -0
  123. package/dist/core/pactile/index.d.ts +16 -0
  124. package/dist/core/pactile/index.d.ts.map +1 -0
  125. package/dist/core/pactile/index.js +14 -0
  126. package/dist/core/pactile/index.js.map +1 -0
  127. package/dist/core/pactile/lifecycle.d.ts +106 -0
  128. package/dist/core/pactile/lifecycle.d.ts.map +1 -0
  129. package/dist/core/pactile/lifecycle.js +607 -0
  130. package/dist/core/pactile/lifecycle.js.map +1 -0
  131. package/dist/core/pactile/middleware/index.d.ts +3 -0
  132. package/dist/core/pactile/middleware/index.d.ts.map +1 -0
  133. package/dist/core/pactile/middleware/index.js +2 -0
  134. package/dist/core/pactile/middleware/index.js.map +1 -0
  135. package/dist/core/pactile/middleware/redaction.d.ts +4 -0
  136. package/dist/core/pactile/middleware/redaction.d.ts.map +1 -0
  137. package/dist/core/pactile/middleware/redaction.js +34 -0
  138. package/dist/core/pactile/middleware/redaction.js.map +1 -0
  139. package/dist/core/pactile/middleware/resolver.d.ts +62 -0
  140. package/dist/core/pactile/middleware/resolver.d.ts.map +1 -0
  141. package/dist/core/pactile/middleware/resolver.js +803 -0
  142. package/dist/core/pactile/middleware/resolver.js.map +1 -0
  143. package/dist/core/pactile/projection.d.ts +81 -0
  144. package/dist/core/pactile/projection.d.ts.map +1 -0
  145. package/dist/core/pactile/projection.js +399 -0
  146. package/dist/core/pactile/projection.js.map +1 -0
  147. package/dist/core/pactile/provider.d.ts +81 -0
  148. package/dist/core/pactile/provider.d.ts.map +1 -0
  149. package/dist/core/pactile/provider.js +313 -0
  150. package/dist/core/pactile/provider.js.map +1 -0
  151. package/dist/core/pactile/runtime.d.ts +56 -0
  152. package/dist/core/pactile/runtime.d.ts.map +1 -0
  153. package/dist/core/pactile/runtime.js +176 -0
  154. package/dist/core/pactile/runtime.js.map +1 -0
  155. package/dist/core/pactile/tile-compiler-types.d.ts +32 -0
  156. package/dist/core/pactile/tile-compiler-types.d.ts.map +1 -0
  157. package/dist/core/pactile/tile-compiler-types.js +2 -0
  158. package/dist/core/pactile/tile-compiler-types.js.map +1 -0
  159. package/dist/core/pactile/tile.d.ts +71 -0
  160. package/dist/core/pactile/tile.d.ts.map +1 -0
  161. package/dist/core/pactile/tile.js +228 -0
  162. package/dist/core/pactile/tile.js.map +1 -0
  163. package/dist/core/pactile/trace-runtime/index.d.ts +38 -0
  164. package/dist/core/pactile/trace-runtime/index.d.ts.map +1 -0
  165. package/dist/core/pactile/trace-runtime/index.js +292 -0
  166. package/dist/core/pactile/trace-runtime/index.js.map +1 -0
  167. package/dist/core/pactile/trace.d.ts +42 -0
  168. package/dist/core/pactile/trace.d.ts.map +1 -0
  169. package/dist/core/pactile/trace.js +221 -0
  170. package/dist/core/pactile/trace.js.map +1 -0
  171. package/dist/core/pactile/validation.d.ts +91 -0
  172. package/dist/core/pactile/validation.d.ts.map +1 -0
  173. package/dist/core/pactile/validation.js +301 -0
  174. package/dist/core/pactile/validation.js.map +1 -0
  175. package/dist/core/task/adapter-middleware.d.ts +122 -0
  176. package/dist/core/task/adapter-middleware.d.ts.map +1 -0
  177. package/dist/core/task/adapter-middleware.js +476 -0
  178. package/dist/core/task/adapter-middleware.js.map +1 -0
  179. package/dist/core/task/compat.d.ts +7 -0
  180. package/dist/core/task/compat.d.ts.map +1 -0
  181. package/dist/core/task/compat.js +2 -0
  182. package/dist/core/task/compat.js.map +1 -0
  183. package/dist/core/task/contract-migrate.d.ts +29 -0
  184. package/dist/core/task/contract-migrate.d.ts.map +1 -0
  185. package/dist/core/task/contract-migrate.js +207 -0
  186. package/dist/core/task/contract-migrate.js.map +1 -0
  187. package/dist/core/task/full-quality.d.ts +89 -0
  188. package/dist/core/task/full-quality.d.ts.map +1 -0
  189. package/dist/core/task/full-quality.js +379 -0
  190. package/dist/core/task/full-quality.js.map +1 -0
  191. package/dist/core/task/index.d.ts +34 -0
  192. package/dist/core/task/index.d.ts.map +1 -0
  193. package/dist/core/task/index.js +21 -0
  194. package/dist/core/task/index.js.map +1 -0
  195. package/dist/core/task/kernel-cli.d.ts +64 -0
  196. package/dist/core/task/kernel-cli.d.ts.map +1 -0
  197. package/dist/core/task/kernel-cli.js +429 -0
  198. package/dist/core/task/kernel-cli.js.map +1 -0
  199. package/dist/core/task/kernel-contract.d.ts +167 -0
  200. package/dist/core/task/kernel-contract.d.ts.map +1 -0
  201. package/dist/core/task/kernel-contract.js +523 -0
  202. package/dist/core/task/kernel-contract.js.map +1 -0
  203. package/dist/core/task/kernel-store.d.ts +136 -0
  204. package/dist/core/task/kernel-store.d.ts.map +1 -0
  205. package/dist/core/task/kernel-store.js +957 -0
  206. package/dist/core/task/kernel-store.js.map +1 -0
  207. package/dist/core/task/kernel-surface.d.ts +70 -0
  208. package/dist/core/task/kernel-surface.d.ts.map +1 -0
  209. package/dist/core/task/kernel-surface.js +121 -0
  210. package/dist/core/task/kernel-surface.js.map +1 -0
  211. package/dist/core/task/legacy-task-migration-reader.d.ts +137 -0
  212. package/dist/core/task/legacy-task-migration-reader.d.ts.map +1 -0
  213. package/dist/core/task/legacy-task-migration-reader.js +512 -0
  214. package/dist/core/task/legacy-task-migration-reader.js.map +1 -0
  215. package/dist/core/task/legacy-task-migration.d.ts +105 -0
  216. package/dist/core/task/legacy-task-migration.d.ts.map +1 -0
  217. package/dist/core/task/legacy-task-migration.js +562 -0
  218. package/dist/core/task/legacy-task-migration.js.map +1 -0
  219. package/dist/core/task/legacy-task-overlay-durable-io.d.ts +18 -0
  220. package/dist/core/task/legacy-task-overlay-durable-io.d.ts.map +1 -0
  221. package/dist/core/task/legacy-task-overlay-durable-io.js +66 -0
  222. package/dist/core/task/legacy-task-overlay-durable-io.js.map +1 -0
  223. package/dist/core/task/legacy-task-reconciliation-reader.d.ts +26 -0
  224. package/dist/core/task/legacy-task-reconciliation-reader.d.ts.map +1 -0
  225. package/dist/core/task/legacy-task-reconciliation-reader.js +324 -0
  226. package/dist/core/task/legacy-task-reconciliation-reader.js.map +1 -0
  227. package/dist/core/task/legacy-task-v2-import.d.ts +67 -0
  228. package/dist/core/task/legacy-task-v2-import.d.ts.map +1 -0
  229. package/dist/core/task/legacy-task-v2-import.js +1046 -0
  230. package/dist/core/task/legacy-task-v2-import.js.map +1 -0
  231. package/dist/core/task/lite-context-pack.d.ts +71 -0
  232. package/dist/core/task/lite-context-pack.d.ts.map +1 -0
  233. package/dist/core/task/lite-context-pack.js +175 -0
  234. package/dist/core/task/lite-context-pack.js.map +1 -0
  235. package/dist/core/task/ondemand-topology.d.ts +108 -0
  236. package/dist/core/task/ondemand-topology.d.ts.map +1 -0
  237. package/dist/core/task/ondemand-topology.js +456 -0
  238. package/dist/core/task/ondemand-topology.js.map +1 -0
  239. package/dist/core/task/p36-artifact-migrate.d.ts +58 -0
  240. package/dist/core/task/p36-artifact-migrate.d.ts.map +1 -0
  241. package/dist/core/task/p36-artifact-migrate.js +293 -0
  242. package/dist/core/task/p36-artifact-migrate.js.map +1 -0
  243. package/dist/core/task/p36-wave-c.d.ts +39 -0
  244. package/dist/core/task/p36-wave-c.d.ts.map +1 -0
  245. package/dist/core/task/p36-wave-c.js +100 -0
  246. package/dist/core/task/p36-wave-c.js.map +1 -0
  247. package/dist/core/task/paths.d.ts +37 -0
  248. package/dist/core/task/paths.d.ts.map +1 -0
  249. package/dist/core/task/paths.js +49 -0
  250. package/dist/core/task/paths.js.map +1 -0
  251. package/dist/core/task/phase.d.ts +27 -0
  252. package/dist/core/task/phase.d.ts.map +1 -0
  253. package/dist/core/task/phase.js +24 -0
  254. package/dist/core/task/phase.js.map +1 -0
  255. package/dist/core/task/project-file-observer.d.ts +46 -0
  256. package/dist/core/task/project-file-observer.d.ts.map +1 -0
  257. package/dist/core/task/project-file-observer.js +618 -0
  258. package/dist/core/task/project-file-observer.js.map +1 -0
  259. package/dist/core/task/records.d.ts +48 -0
  260. package/dist/core/task/records.d.ts.map +1 -0
  261. package/dist/core/task/records.js +100 -0
  262. package/dist/core/task/records.js.map +1 -0
  263. package/dist/core/task/schema.d.ts +77 -0
  264. package/dist/core/task/schema.d.ts.map +1 -0
  265. package/dist/core/task/schema.js +220 -0
  266. package/dist/core/task/schema.js.map +1 -0
  267. package/dist/core/task/start-authority.d.ts +14 -0
  268. package/dist/core/task/start-authority.d.ts.map +1 -0
  269. package/dist/core/task/start-authority.js +146 -0
  270. package/dist/core/task/start-authority.js.map +1 -0
  271. package/dist/core/task/strategy.d.ts +24 -0
  272. package/dist/core/task/strategy.d.ts.map +1 -0
  273. package/dist/core/task/strategy.js +136 -0
  274. package/dist/core/task/strategy.js.map +1 -0
  275. package/dist/core/task/task-candidate-observer.d.ts +111 -0
  276. package/dist/core/task/task-candidate-observer.d.ts.map +1 -0
  277. package/dist/core/task/task-candidate-observer.js +762 -0
  278. package/dist/core/task/task-candidate-observer.js.map +1 -0
  279. package/dist/core/task/task-kernel-close.d.ts +5 -0
  280. package/dist/core/task/task-kernel-close.d.ts.map +1 -0
  281. package/dist/core/task/task-kernel-close.js +367 -0
  282. package/dist/core/task/task-kernel-close.js.map +1 -0
  283. package/dist/core/task/task-kernel-dependencies.d.ts +3 -0
  284. package/dist/core/task/task-kernel-dependencies.d.ts.map +1 -0
  285. package/dist/core/task/task-kernel-dependencies.js +24 -0
  286. package/dist/core/task/task-kernel-dependencies.js.map +1 -0
  287. package/dist/core/task/task-kernel-host.d.ts +5 -0
  288. package/dist/core/task/task-kernel-host.d.ts.map +1 -0
  289. package/dist/core/task/task-kernel-host.js +136 -0
  290. package/dist/core/task/task-kernel-host.js.map +1 -0
  291. package/dist/core/task/task-kernel-paths.d.ts +19 -0
  292. package/dist/core/task/task-kernel-paths.d.ts.map +1 -0
  293. package/dist/core/task/task-kernel-paths.js +237 -0
  294. package/dist/core/task/task-kernel-paths.js.map +1 -0
  295. package/dist/core/task/task-kernel-reviews.d.ts +3 -0
  296. package/dist/core/task/task-kernel-reviews.d.ts.map +1 -0
  297. package/dist/core/task/task-kernel-reviews.js +100 -0
  298. package/dist/core/task/task-kernel-reviews.js.map +1 -0
  299. package/dist/core/task/task-kernel-runs.d.ts +5 -0
  300. package/dist/core/task/task-kernel-runs.d.ts.map +1 -0
  301. package/dist/core/task/task-kernel-runs.js +196 -0
  302. package/dist/core/task/task-kernel-runs.js.map +1 -0
  303. package/dist/core/task/task-kernel-schema.d.ts +29 -0
  304. package/dist/core/task/task-kernel-schema.d.ts.map +1 -0
  305. package/dist/core/task/task-kernel-schema.js +1169 -0
  306. package/dist/core/task/task-kernel-schema.js.map +1 -0
  307. package/dist/core/task/task-kernel-store-v2.d.ts +33 -0
  308. package/dist/core/task/task-kernel-store-v2.d.ts.map +1 -0
  309. package/dist/core/task/task-kernel-store-v2.js +574 -0
  310. package/dist/core/task/task-kernel-store-v2.js.map +1 -0
  311. package/dist/core/task/task-kernel-types.d.ts +585 -0
  312. package/dist/core/task/task-kernel-types.d.ts.map +1 -0
  313. package/dist/core/task/task-kernel-types.js +31 -0
  314. package/dist/core/task/task-kernel-types.js.map +1 -0
  315. package/dist/core/task/task-kernel-workspaces.d.ts +10 -0
  316. package/dist/core/task/task-kernel-workspaces.d.ts.map +1 -0
  317. package/dist/core/task/task-kernel-workspaces.js +250 -0
  318. package/dist/core/task/task-kernel-workspaces.js.map +1 -0
  319. package/dist/core/task/task-kernel-write-set.d.ts +3 -0
  320. package/dist/core/task/task-kernel-write-set.d.ts.map +1 -0
  321. package/dist/core/task/task-kernel-write-set.js +12 -0
  322. package/dist/core/task/task-kernel-write-set.js.map +1 -0
  323. package/dist/core/task/task-kernel.d.ts +19 -0
  324. package/dist/core/task/task-kernel.d.ts.map +1 -0
  325. package/dist/core/task/task-kernel.js +17 -0
  326. package/dist/core/task/task-kernel.js.map +1 -0
  327. package/dist/core/task/task-pull-request-observer.d.ts +25 -0
  328. package/dist/core/task/task-pull-request-observer.d.ts.map +1 -0
  329. package/dist/core/task/task-pull-request-observer.js +187 -0
  330. package/dist/core/task/task-pull-request-observer.js.map +1 -0
  331. package/dist/core/task/task-review-evidence.d.ts +27 -0
  332. package/dist/core/task/task-review-evidence.d.ts.map +1 -0
  333. package/dist/core/task/task-review-evidence.js +383 -0
  334. package/dist/core/task/task-review-evidence.js.map +1 -0
  335. package/dist/core/testing/index.d.ts +2 -0
  336. package/dist/core/testing/index.d.ts.map +1 -0
  337. package/dist/core/testing/index.js +4 -0
  338. package/dist/core/testing/index.js.map +1 -0
  339. package/dist/migrations/index.d.ts +1 -1
  340. package/dist/migrations/index.d.ts.map +1 -1
  341. package/dist/migrations/index.js +5 -3
  342. package/dist/migrations/index.js.map +1 -1
  343. package/dist/migrations/manifests/0.6.0-beta.1.json +35 -0
  344. package/dist/migrations/manifests/0.6.0-beta.2.json +9 -0
  345. package/dist/migrations/manifests/0.6.0-beta.3.json +9 -0
  346. package/dist/migrations/manifests/0.6.0-beta.4.json +9 -0
  347. package/dist/migrations/manifests/0.6.0.json +9 -0
  348. package/dist/pactile/adapters/codex/index.js +1 -1
  349. package/dist/pactile/adapters/codex/index.js.map +1 -1
  350. package/dist/pactile/adapters/index.d.ts +0 -1
  351. package/dist/pactile/adapters/index.d.ts.map +1 -1
  352. package/dist/pactile/adapters/index.js +0 -1
  353. package/dist/pactile/adapters/index.js.map +1 -1
  354. package/dist/pactile/adoption/bindings.d.ts +1 -1
  355. package/dist/pactile/adoption/bindings.d.ts.map +1 -1
  356. package/dist/pactile/adoption/bindings.js +1 -1
  357. package/dist/pactile/adoption/bindings.js.map +1 -1
  358. package/dist/pactile/adoption/inventory.d.ts +1 -1
  359. package/dist/pactile/adoption/inventory.d.ts.map +1 -1
  360. package/dist/pactile/adoption/inventory.js +1 -1
  361. package/dist/pactile/adoption/inventory.js.map +1 -1
  362. package/dist/pactile/adoption/safety.js +1 -1
  363. package/dist/pactile/adoption/safety.js.map +1 -1
  364. package/dist/pactile/adoption/workflow.d.ts +1 -1
  365. package/dist/pactile/adoption/workflow.d.ts.map +1 -1
  366. package/dist/pactile/adoption/workflow.js +1 -1
  367. package/dist/pactile/adoption/workflow.js.map +1 -1
  368. package/dist/pactile/artifacts/documents.d.ts +72 -0
  369. package/dist/pactile/artifacts/documents.d.ts.map +1 -0
  370. package/dist/pactile/artifacts/documents.js +406 -0
  371. package/dist/pactile/artifacts/documents.js.map +1 -0
  372. package/dist/pactile/artifacts/index.d.ts +6 -0
  373. package/dist/pactile/artifacts/index.d.ts.map +1 -0
  374. package/dist/pactile/artifacts/index.js +6 -0
  375. package/dist/pactile/artifacts/index.js.map +1 -0
  376. package/dist/pactile/artifacts/projection.d.ts +50 -0
  377. package/dist/pactile/artifacts/projection.d.ts.map +1 -0
  378. package/dist/pactile/artifacts/projection.js +139 -0
  379. package/dist/pactile/artifacts/projection.js.map +1 -0
  380. package/dist/pactile/artifacts/reader.d.ts +20 -0
  381. package/dist/pactile/artifacts/reader.d.ts.map +1 -0
  382. package/dist/pactile/artifacts/reader.js +559 -0
  383. package/dist/pactile/artifacts/reader.js.map +1 -0
  384. package/dist/pactile/artifacts/schema.d.ts +4 -0
  385. package/dist/pactile/artifacts/schema.d.ts.map +1 -0
  386. package/dist/pactile/artifacts/schema.js +217 -0
  387. package/dist/pactile/artifacts/schema.js.map +1 -0
  388. package/dist/pactile/artifacts/types.d.ts +66 -0
  389. package/dist/pactile/artifacts/types.d.ts.map +1 -0
  390. package/dist/pactile/artifacts/types.js +45 -0
  391. package/dist/pactile/artifacts/types.js.map +1 -0
  392. package/dist/pactile/capabilities/claim.d.ts +3 -0
  393. package/dist/pactile/capabilities/claim.d.ts.map +1 -0
  394. package/dist/pactile/capabilities/claim.js +97 -0
  395. package/dist/pactile/capabilities/claim.js.map +1 -0
  396. package/dist/pactile/capabilities/command.d.ts +6 -0
  397. package/dist/pactile/capabilities/command.d.ts.map +1 -0
  398. package/dist/pactile/capabilities/command.js +253 -0
  399. package/dist/pactile/capabilities/command.js.map +1 -0
  400. package/dist/pactile/capabilities/discover.d.ts +6 -0
  401. package/dist/pactile/capabilities/discover.d.ts.map +1 -0
  402. package/dist/pactile/capabilities/discover.js +48 -0
  403. package/dist/pactile/capabilities/discover.js.map +1 -0
  404. package/dist/pactile/capabilities/node.d.ts +15 -0
  405. package/dist/pactile/capabilities/node.d.ts.map +1 -0
  406. package/dist/pactile/capabilities/node.js +292 -0
  407. package/dist/pactile/capabilities/node.js.map +1 -0
  408. package/dist/pactile/capabilities/read.d.ts +6 -0
  409. package/dist/pactile/capabilities/read.d.ts.map +1 -0
  410. package/dist/pactile/capabilities/read.js +100 -0
  411. package/dist/pactile/capabilities/read.js.map +1 -0
  412. package/dist/pactile/capabilities/receipts.d.ts +17 -0
  413. package/dist/pactile/capabilities/receipts.d.ts.map +1 -0
  414. package/dist/pactile/capabilities/receipts.js +90 -0
  415. package/dist/pactile/capabilities/receipts.js.map +1 -0
  416. package/dist/pactile/capabilities/search.d.ts +6 -0
  417. package/dist/pactile/capabilities/search.d.ts.map +1 -0
  418. package/dist/pactile/capabilities/search.js +181 -0
  419. package/dist/pactile/capabilities/search.js.map +1 -0
  420. package/dist/pactile/capabilities/shared.d.ts +29 -0
  421. package/dist/pactile/capabilities/shared.d.ts.map +1 -0
  422. package/dist/pactile/capabilities/shared.js +134 -0
  423. package/dist/pactile/capabilities/shared.js.map +1 -0
  424. package/dist/pactile/capabilities/workspace.d.ts +19 -0
  425. package/dist/pactile/capabilities/workspace.d.ts.map +1 -0
  426. package/dist/pactile/capabilities/workspace.js +273 -0
  427. package/dist/pactile/capabilities/workspace.js.map +1 -0
  428. package/dist/pactile/codex/bridge.d.ts +174 -0
  429. package/dist/pactile/codex/bridge.d.ts.map +1 -0
  430. package/dist/pactile/codex/bridge.js +1445 -0
  431. package/dist/pactile/codex/bridge.js.map +1 -0
  432. package/dist/pactile/codex/dispatch-stop-proof.d.ts +43 -0
  433. package/dist/pactile/codex/dispatch-stop-proof.d.ts.map +1 -0
  434. package/dist/pactile/codex/dispatch-stop-proof.js +177 -0
  435. package/dist/pactile/codex/dispatch-stop-proof.js.map +1 -0
  436. package/dist/pactile/codex/host-stop.d.ts +47 -0
  437. package/dist/pactile/codex/host-stop.d.ts.map +1 -0
  438. package/dist/pactile/codex/host-stop.js +344 -0
  439. package/dist/pactile/codex/host-stop.js.map +1 -0
  440. package/dist/pactile/compat/init-context.js +1 -1
  441. package/dist/pactile/compat/init-context.js.map +1 -1
  442. package/dist/pactile/compat/node-entry-migration.d.ts +3 -0
  443. package/dist/pactile/compat/node-entry-migration.d.ts.map +1 -0
  444. package/dist/pactile/compat/node-entry-migration.js +25 -0
  445. package/dist/pactile/compat/node-entry-migration.js.map +1 -0
  446. package/dist/pactile/coordination/index.d.ts +4 -0
  447. package/dist/pactile/coordination/index.d.ts.map +1 -0
  448. package/dist/pactile/coordination/index.js +4 -0
  449. package/dist/pactile/coordination/index.js.map +1 -0
  450. package/dist/pactile/coordination/journal.d.ts +10 -0
  451. package/dist/pactile/coordination/journal.d.ts.map +1 -0
  452. package/dist/pactile/coordination/journal.js +255 -0
  453. package/dist/pactile/coordination/journal.js.map +1 -0
  454. package/dist/pactile/coordination/kernel-resume.d.ts +8 -0
  455. package/dist/pactile/coordination/kernel-resume.d.ts.map +1 -0
  456. package/dist/pactile/coordination/kernel-resume.js +87 -0
  457. package/dist/pactile/coordination/kernel-resume.js.map +1 -0
  458. package/dist/pactile/coordination/model.d.ts +553 -0
  459. package/dist/pactile/coordination/model.d.ts.map +1 -0
  460. package/dist/pactile/coordination/model.js +239 -0
  461. package/dist/pactile/coordination/model.js.map +1 -0
  462. package/dist/pactile/coordination/state.d.ts +46 -0
  463. package/dist/pactile/coordination/state.d.ts.map +1 -0
  464. package/dist/pactile/coordination/state.js +301 -0
  465. package/dist/pactile/coordination/state.js.map +1 -0
  466. package/dist/pactile/coordination/store.d.ts +94 -0
  467. package/dist/pactile/coordination/store.d.ts.map +1 -0
  468. package/dist/pactile/coordination/store.js +396 -0
  469. package/dist/pactile/coordination/store.js.map +1 -0
  470. package/dist/pactile/exit/receipt.js +1 -1
  471. package/dist/pactile/exit/receipt.js.map +1 -1
  472. package/dist/pactile/exit/service.d.ts +1 -1
  473. package/dist/pactile/exit/service.d.ts.map +1 -1
  474. package/dist/pactile/exit/service.js +1 -3
  475. package/dist/pactile/exit/service.js.map +1 -1
  476. package/dist/pactile/index.d.ts +7 -1
  477. package/dist/pactile/index.d.ts.map +1 -1
  478. package/dist/pactile/index.js +7 -1
  479. package/dist/pactile/index.js.map +1 -1
  480. package/dist/pactile/jev/contracts.d.ts +104 -0
  481. package/dist/pactile/jev/contracts.d.ts.map +1 -0
  482. package/dist/pactile/jev/contracts.js +53 -0
  483. package/dist/pactile/jev/contracts.js.map +1 -0
  484. package/dist/pactile/jev/decision.d.ts +58 -0
  485. package/dist/pactile/jev/decision.d.ts.map +1 -0
  486. package/dist/pactile/jev/decision.js +149 -0
  487. package/dist/pactile/jev/decision.js.map +1 -0
  488. package/dist/pactile/jev/http.d.ts +25 -0
  489. package/dist/pactile/jev/http.d.ts.map +1 -0
  490. package/dist/pactile/jev/http.js +234 -0
  491. package/dist/pactile/jev/http.js.map +1 -0
  492. package/dist/pactile/jev/index.d.ts +8 -0
  493. package/dist/pactile/jev/index.d.ts.map +1 -0
  494. package/dist/pactile/jev/index.js +4 -0
  495. package/dist/pactile/jev/index.js.map +1 -0
  496. package/dist/pactile/jev/outbound.d.ts +15 -0
  497. package/dist/pactile/jev/outbound.d.ts.map +1 -0
  498. package/dist/pactile/jev/outbound.js +264 -0
  499. package/dist/pactile/jev/outbound.js.map +1 -0
  500. package/dist/pactile/jev/project-policy.d.ts +10 -0
  501. package/dist/pactile/jev/project-policy.d.ts.map +1 -0
  502. package/dist/pactile/jev/project-policy.js +53 -0
  503. package/dist/pactile/jev/project-policy.js.map +1 -0
  504. package/dist/pactile/jev/response.d.ts +17 -0
  505. package/dist/pactile/jev/response.d.ts.map +1 -0
  506. package/dist/pactile/jev/response.js +280 -0
  507. package/dist/pactile/jev/response.js.map +1 -0
  508. package/dist/pactile/jev/scheduler-advice.d.ts +92 -0
  509. package/dist/pactile/jev/scheduler-advice.d.ts.map +1 -0
  510. package/dist/pactile/jev/scheduler-advice.js +323 -0
  511. package/dist/pactile/jev/scheduler-advice.js.map +1 -0
  512. package/dist/pactile/jev/transport.d.ts +6 -0
  513. package/dist/pactile/jev/transport.d.ts.map +1 -0
  514. package/dist/pactile/jev/transport.js +87 -0
  515. package/dist/pactile/jev/transport.js.map +1 -0
  516. package/dist/pactile/lifecycle/command-runner.d.ts +1 -1
  517. package/dist/pactile/lifecycle/command-runner.d.ts.map +1 -1
  518. package/dist/pactile/lifecycle/command-runner.js +1 -3
  519. package/dist/pactile/lifecycle/command-runner.js.map +1 -1
  520. package/dist/pactile/lifecycle/default-adapters.d.ts.map +1 -1
  521. package/dist/pactile/lifecycle/default-adapters.js +8 -32
  522. package/dist/pactile/lifecycle/default-adapters.js.map +1 -1
  523. package/dist/pactile/lifecycle/deferred-live.d.ts +17 -0
  524. package/dist/pactile/lifecycle/deferred-live.d.ts.map +1 -0
  525. package/dist/pactile/lifecycle/deferred-live.js +173 -0
  526. package/dist/pactile/lifecycle/deferred-live.js.map +1 -0
  527. package/dist/pactile/lifecycle/legacy-import.d.ts +1 -1
  528. package/dist/pactile/lifecycle/legacy-import.js +3 -3
  529. package/dist/pactile/lifecycle/legacy-import.js.map +1 -1
  530. package/dist/pactile/lifecycle/orchestrator.d.ts +1 -1
  531. package/dist/pactile/lifecycle/orchestrator.d.ts.map +1 -1
  532. package/dist/pactile/lifecycle/orchestrator.js +1 -1
  533. package/dist/pactile/lifecycle/orchestrator.js.map +1 -1
  534. package/dist/pactile/lifecycle/project-files.d.ts.map +1 -1
  535. package/dist/pactile/lifecycle/project-files.js +5 -1
  536. package/dist/pactile/lifecycle/project-files.js.map +1 -1
  537. package/dist/pactile/middleware/manifest-loader.d.ts +1 -1
  538. package/dist/pactile/middleware/manifest-loader.d.ts.map +1 -1
  539. package/dist/pactile/middleware/manifest-loader.js +1 -1
  540. package/dist/pactile/middleware/manifest-loader.js.map +1 -1
  541. package/dist/pactile/migration/legacy-task-batch-generation.d.ts +23 -0
  542. package/dist/pactile/migration/legacy-task-batch-generation.d.ts.map +1 -0
  543. package/dist/pactile/migration/legacy-task-batch-generation.js +102 -0
  544. package/dist/pactile/migration/legacy-task-batch-generation.js.map +1 -0
  545. package/dist/pactile/migration/legacy-task-batch-io.d.ts +9 -0
  546. package/dist/pactile/migration/legacy-task-batch-io.d.ts.map +1 -0
  547. package/dist/pactile/migration/legacy-task-batch-io.js +208 -0
  548. package/dist/pactile/migration/legacy-task-batch-io.js.map +1 -0
  549. package/dist/pactile/migration/legacy-task-batch-journal.d.ts +6 -0
  550. package/dist/pactile/migration/legacy-task-batch-journal.d.ts.map +1 -0
  551. package/dist/pactile/migration/legacy-task-batch-journal.js +121 -0
  552. package/dist/pactile/migration/legacy-task-batch-journal.js.map +1 -0
  553. package/dist/pactile/migration/legacy-task-batch-orchestrator.d.ts +18 -0
  554. package/dist/pactile/migration/legacy-task-batch-orchestrator.d.ts.map +1 -0
  555. package/dist/pactile/migration/legacy-task-batch-orchestrator.js +634 -0
  556. package/dist/pactile/migration/legacy-task-batch-orchestrator.js.map +1 -0
  557. package/dist/pactile/migration/legacy-task-batch-source.d.ts +8 -0
  558. package/dist/pactile/migration/legacy-task-batch-source.d.ts.map +1 -0
  559. package/dist/pactile/migration/legacy-task-batch-source.js +158 -0
  560. package/dist/pactile/migration/legacy-task-batch-source.js.map +1 -0
  561. package/dist/pactile/migration/legacy-task-batch-types.d.ts +127 -0
  562. package/dist/pactile/migration/legacy-task-batch-types.d.ts.map +1 -0
  563. package/dist/pactile/migration/legacy-task-batch-types.js +127 -0
  564. package/dist/pactile/migration/legacy-task-batch-types.js.map +1 -0
  565. package/dist/pactile/migration/legacy-task-batch.d.ts +3 -0
  566. package/dist/pactile/migration/legacy-task-batch.d.ts.map +1 -0
  567. package/dist/pactile/migration/legacy-task-batch.js +2 -0
  568. package/dist/pactile/migration/legacy-task-batch.js.map +1 -0
  569. package/dist/pactile/migration/legacy-task-held-source-reader.d.ts +27 -0
  570. package/dist/pactile/migration/legacy-task-held-source-reader.d.ts.map +1 -0
  571. package/dist/pactile/migration/legacy-task-held-source-reader.js +261 -0
  572. package/dist/pactile/migration/legacy-task-held-source-reader.js.map +1 -0
  573. package/dist/pactile/migration/legacy-task-reconciliation.d.ts +46 -0
  574. package/dist/pactile/migration/legacy-task-reconciliation.d.ts.map +1 -0
  575. package/dist/pactile/migration/legacy-task-reconciliation.js +589 -0
  576. package/dist/pactile/migration/legacy-task-reconciliation.js.map +1 -0
  577. package/dist/pactile/migration/legacy-task-update.d.ts +19 -0
  578. package/dist/pactile/migration/legacy-task-update.d.ts.map +1 -0
  579. package/dist/pactile/migration/legacy-task-update.js +164 -0
  580. package/dist/pactile/migration/legacy-task-update.js.map +1 -0
  581. package/dist/pactile/migration/transaction.d.ts +1 -1
  582. package/dist/pactile/migration/transaction.d.ts.map +1 -1
  583. package/dist/pactile/migration/transaction.js +1 -1
  584. package/dist/pactile/migration/transaction.js.map +1 -1
  585. package/dist/pactile/parallel/batch.d.ts +60 -0
  586. package/dist/pactile/parallel/batch.d.ts.map +1 -0
  587. package/dist/pactile/parallel/batch.js +411 -0
  588. package/dist/pactile/parallel/batch.js.map +1 -0
  589. package/dist/pactile/parallel/policy.d.ts +18 -0
  590. package/dist/pactile/parallel/policy.d.ts.map +1 -0
  591. package/dist/pactile/parallel/policy.js +202 -0
  592. package/dist/pactile/parallel/policy.js.map +1 -0
  593. package/dist/pactile/pi/bridge.d.ts +188 -0
  594. package/dist/pactile/pi/bridge.d.ts.map +1 -0
  595. package/dist/pactile/pi/bridge.js +1564 -0
  596. package/dist/pactile/pi/bridge.js.map +1 -0
  597. package/dist/pactile/pi/rpc.d.ts +60 -0
  598. package/dist/pactile/pi/rpc.d.ts.map +1 -0
  599. package/dist/pactile/pi/rpc.js +420 -0
  600. package/dist/pactile/pi/rpc.js.map +1 -0
  601. package/dist/pactile/pi/v2-dispatch.d.ts +113 -0
  602. package/dist/pactile/pi/v2-dispatch.d.ts.map +1 -0
  603. package/dist/pactile/pi/v2-dispatch.js +919 -0
  604. package/dist/pactile/pi/v2-dispatch.js.map +1 -0
  605. package/dist/pactile/projection/planner.d.ts +1 -1
  606. package/dist/pactile/projection/planner.d.ts.map +1 -1
  607. package/dist/pactile/projection/planner.js +2 -2
  608. package/dist/pactile/projection/planner.js.map +1 -1
  609. package/dist/pactile/projection/shared/index.js +1 -1
  610. package/dist/pactile/projection/shared/index.js.map +1 -1
  611. package/dist/pactile/projection/store.js +1 -1
  612. package/dist/pactile/projection/store.js.map +1 -1
  613. package/dist/pactile/providers/probes.d.ts +2 -2
  614. package/dist/pactile/providers/probes.d.ts.map +1 -1
  615. package/dist/pactile/providers/probes.js +0 -6
  616. package/dist/pactile/providers/probes.js.map +1 -1
  617. package/dist/pactile/registry.d.ts +64 -9
  618. package/dist/pactile/registry.d.ts.map +1 -1
  619. package/dist/pactile/registry.js +640 -28
  620. package/dist/pactile/registry.js.map +1 -1
  621. package/dist/pactile/retrieval/envelope.d.ts +19 -0
  622. package/dist/pactile/retrieval/envelope.d.ts.map +1 -0
  623. package/dist/pactile/retrieval/envelope.js +115 -0
  624. package/dist/pactile/retrieval/envelope.js.map +1 -0
  625. package/dist/pactile/retrieval/evidence.js +1 -1
  626. package/dist/pactile/retrieval/evidence.js.map +1 -1
  627. package/dist/pactile/retrieval/index.d.ts +1 -0
  628. package/dist/pactile/retrieval/index.d.ts.map +1 -1
  629. package/dist/pactile/retrieval/index.js +1 -0
  630. package/dist/pactile/retrieval/index.js.map +1 -1
  631. package/dist/pactile/retrieval/jev-planning.d.ts +28 -0
  632. package/dist/pactile/retrieval/jev-planning.d.ts.map +1 -0
  633. package/dist/pactile/retrieval/jev-planning.js +96 -0
  634. package/dist/pactile/retrieval/jev-planning.js.map +1 -0
  635. package/dist/pactile/retrieval/pack.d.ts +9 -0
  636. package/dist/pactile/retrieval/pack.d.ts.map +1 -0
  637. package/dist/pactile/retrieval/pack.js +300 -0
  638. package/dist/pactile/retrieval/pack.js.map +1 -0
  639. package/dist/pactile/retrieval/planner.d.ts +1 -1
  640. package/dist/pactile/retrieval/planner.d.ts.map +1 -1
  641. package/dist/pactile/retrieval/planner.js +1 -1
  642. package/dist/pactile/retrieval/planner.js.map +1 -1
  643. package/dist/pactile/retrieval/types.d.ts +1 -1
  644. package/dist/pactile/retrieval/types.d.ts.map +1 -1
  645. package/dist/pactile/review/contract.d.ts +232 -0
  646. package/dist/pactile/review/contract.d.ts.map +1 -0
  647. package/dist/pactile/review/contract.js +695 -0
  648. package/dist/pactile/review/contract.js.map +1 -0
  649. package/dist/pactile/review/escalation-artifacts.d.ts +41 -0
  650. package/dist/pactile/review/escalation-artifacts.d.ts.map +1 -0
  651. package/dist/pactile/review/escalation-artifacts.js +415 -0
  652. package/dist/pactile/review/escalation-artifacts.js.map +1 -0
  653. package/dist/pactile/review/escalation-contract.d.ts +115 -0
  654. package/dist/pactile/review/escalation-contract.d.ts.map +1 -0
  655. package/dist/pactile/review/escalation-contract.js +151 -0
  656. package/dist/pactile/review/escalation-contract.js.map +1 -0
  657. package/dist/pactile/review/escalation-finalize.d.ts +14 -0
  658. package/dist/pactile/review/escalation-finalize.d.ts.map +1 -0
  659. package/dist/pactile/review/escalation-finalize.js +319 -0
  660. package/dist/pactile/review/escalation-finalize.js.map +1 -0
  661. package/dist/pactile/review/escalation-reply.d.ts +10 -0
  662. package/dist/pactile/review/escalation-reply.d.ts.map +1 -0
  663. package/dist/pactile/review/escalation-reply.js +61 -0
  664. package/dist/pactile/review/escalation-reply.js.map +1 -0
  665. package/dist/pactile/review/escalation-transport.d.ts +32 -0
  666. package/dist/pactile/review/escalation-transport.d.ts.map +1 -0
  667. package/dist/pactile/review/escalation-transport.js +216 -0
  668. package/dist/pactile/review/escalation-transport.js.map +1 -0
  669. package/dist/pactile/review/escalation.d.ts +7 -0
  670. package/dist/pactile/review/escalation.d.ts.map +1 -0
  671. package/dist/pactile/review/escalation.js +6 -0
  672. package/dist/pactile/review/escalation.js.map +1 -0
  673. package/dist/pactile/review/evidence.d.ts +25 -0
  674. package/dist/pactile/review/evidence.d.ts.map +1 -0
  675. package/dist/pactile/review/evidence.js +58 -0
  676. package/dist/pactile/review/evidence.js.map +1 -0
  677. package/dist/pactile/review/jev-escalation-advice.d.ts +77 -0
  678. package/dist/pactile/review/jev-escalation-advice.d.ts.map +1 -0
  679. package/dist/pactile/review/jev-escalation-advice.js +358 -0
  680. package/dist/pactile/review/jev-escalation-advice.js.map +1 -0
  681. package/dist/pactile/runtime/json-api.d.ts +1 -1
  682. package/dist/pactile/runtime/json-api.js +1 -1
  683. package/dist/pactile/runtime/paths.js +1 -1
  684. package/dist/pactile/runtime/paths.js.map +1 -1
  685. package/dist/pactile/runtime/stores.d.ts +1 -1
  686. package/dist/pactile/runtime/stores.d.ts.map +1 -1
  687. package/dist/pactile/runtime/stores.js +1 -1
  688. package/dist/pactile/runtime/stores.js.map +1 -1
  689. package/dist/pactile/runtime/unicode-nfc-data.d.ts +1 -1
  690. package/dist/pactile/runtime/unicode-nfc-data.js +1 -1
  691. package/dist/pactile/scheduler/index.d.ts +6 -0
  692. package/dist/pactile/scheduler/index.d.ts.map +1 -0
  693. package/dist/pactile/scheduler/index.js +5 -0
  694. package/dist/pactile/scheduler/index.js.map +1 -0
  695. package/dist/pactile/scheduler/project-lease-store.d.ts +35 -0
  696. package/dist/pactile/scheduler/project-lease-store.d.ts.map +1 -0
  697. package/dist/pactile/scheduler/project-lease-store.js +189 -0
  698. package/dist/pactile/scheduler/project-lease-store.js.map +1 -0
  699. package/dist/pactile/scheduler/scheduler.d.ts +91 -0
  700. package/dist/pactile/scheduler/scheduler.d.ts.map +1 -0
  701. package/dist/pactile/scheduler/scheduler.js +589 -0
  702. package/dist/pactile/scheduler/scheduler.js.map +1 -0
  703. package/dist/pactile/scheduler/task-kernel-admission.d.ts +173 -0
  704. package/dist/pactile/scheduler/task-kernel-admission.d.ts.map +1 -0
  705. package/dist/pactile/scheduler/task-kernel-admission.js +1560 -0
  706. package/dist/pactile/scheduler/task-kernel-admission.js.map +1 -0
  707. package/dist/pactile/scheduler/task-kernel-wave-dispatch.d.ts +184 -0
  708. package/dist/pactile/scheduler/task-kernel-wave-dispatch.d.ts.map +1 -0
  709. package/dist/pactile/scheduler/task-kernel-wave-dispatch.js +952 -0
  710. package/dist/pactile/scheduler/task-kernel-wave-dispatch.js.map +1 -0
  711. package/dist/pactile/scheduler/task-map-scheduler.d.ts +116 -0
  712. package/dist/pactile/scheduler/task-map-scheduler.d.ts.map +1 -0
  713. package/dist/pactile/scheduler/task-map-scheduler.js +1448 -0
  714. package/dist/pactile/scheduler/task-map-scheduler.js.map +1 -0
  715. package/dist/pactile/scheduler/task-run-dispatch-state.d.ts +7 -0
  716. package/dist/pactile/scheduler/task-run-dispatch-state.d.ts.map +1 -0
  717. package/dist/pactile/scheduler/task-run-dispatch-state.js +69 -0
  718. package/dist/pactile/scheduler/task-run-dispatch-state.js.map +1 -0
  719. package/dist/pactile/task/authorization.d.ts +3 -0
  720. package/dist/pactile/task/authorization.d.ts.map +1 -0
  721. package/dist/pactile/task/authorization.js +43 -0
  722. package/dist/pactile/task/authorization.js.map +1 -0
  723. package/dist/pactile/task/config.d.ts +9 -0
  724. package/dist/pactile/task/config.d.ts.map +1 -0
  725. package/dist/pactile/task/config.js +103 -0
  726. package/dist/pactile/task/config.js.map +1 -0
  727. package/dist/pactile/task/context.d.ts +19 -0
  728. package/dist/pactile/task/context.d.ts.map +1 -0
  729. package/dist/pactile/task/context.js +117 -0
  730. package/dist/pactile/task/context.js.map +1 -0
  731. package/dist/pactile/task/creation.d.ts +22 -0
  732. package/dist/pactile/task/creation.d.ts.map +1 -0
  733. package/dist/pactile/task/creation.js +95 -0
  734. package/dist/pactile/task/creation.js.map +1 -0
  735. package/dist/pactile/task/guards.d.ts +18 -0
  736. package/dist/pactile/task/guards.d.ts.map +1 -0
  737. package/dist/pactile/task/guards.js +180 -0
  738. package/dist/pactile/task/guards.js.map +1 -0
  739. package/dist/pactile/task/scaffold.d.ts +6 -0
  740. package/dist/pactile/task/scaffold.d.ts.map +1 -0
  741. package/dist/pactile/task/scaffold.js +57 -0
  742. package/dist/pactile/task/scaffold.js.map +1 -0
  743. package/dist/pactile/task/session-jev-receipt.d.ts +58 -0
  744. package/dist/pactile/task/session-jev-receipt.d.ts.map +1 -0
  745. package/dist/pactile/task/session-jev-receipt.js +375 -0
  746. package/dist/pactile/task/session-jev-receipt.js.map +1 -0
  747. package/dist/pactile/task/session-jev.d.ts +7 -0
  748. package/dist/pactile/task/session-jev.d.ts.map +1 -0
  749. package/dist/pactile/task/session-jev.js +217 -0
  750. package/dist/pactile/task/session-jev.js.map +1 -0
  751. package/dist/pactile/task/session-memory.d.ts +2 -0
  752. package/dist/pactile/task/session-memory.d.ts.map +1 -0
  753. package/dist/pactile/task/session-memory.js +123 -0
  754. package/dist/pactile/task/session-memory.js.map +1 -0
  755. package/dist/pactile/task/session-pack.d.ts +3 -0
  756. package/dist/pactile/task/session-pack.d.ts.map +1 -0
  757. package/dist/pactile/task/session-pack.js +278 -0
  758. package/dist/pactile/task/session-pack.js.map +1 -0
  759. package/dist/pactile/task/session-retrieval-jev-receipt.d.ts +49 -0
  760. package/dist/pactile/task/session-retrieval-jev-receipt.d.ts.map +1 -0
  761. package/dist/pactile/task/session-retrieval-jev-receipt.js +97 -0
  762. package/dist/pactile/task/session-retrieval-jev-receipt.js.map +1 -0
  763. package/dist/pactile/task/session-retrieval-jev.d.ts +8 -0
  764. package/dist/pactile/task/session-retrieval-jev.d.ts.map +1 -0
  765. package/dist/pactile/task/session-retrieval-jev.js +352 -0
  766. package/dist/pactile/task/session-retrieval-jev.js.map +1 -0
  767. package/dist/pactile/task/session.d.ts +13 -0
  768. package/dist/pactile/task/session.d.ts.map +1 -0
  769. package/dist/pactile/task/session.js +105 -0
  770. package/dist/pactile/task/session.js.map +1 -0
  771. package/dist/pactile/task/strategy.d.ts +2 -0
  772. package/dist/pactile/task/strategy.d.ts.map +1 -0
  773. package/dist/pactile/task/strategy.js +3 -0
  774. package/dist/pactile/task/strategy.js.map +1 -0
  775. package/dist/pactile/task/task-map.d.ts +35 -0
  776. package/dist/pactile/task/task-map.d.ts.map +1 -0
  777. package/dist/pactile/task/task-map.js +217 -0
  778. package/dist/pactile/task/task-map.js.map +1 -0
  779. package/dist/pactile/task/workflow-phase.d.ts +3 -0
  780. package/dist/pactile/task/workflow-phase.d.ts.map +1 -0
  781. package/dist/pactile/task/workflow-phase.js +56 -0
  782. package/dist/pactile/task/workflow-phase.js.map +1 -0
  783. package/dist/pactile/tiles/catalog.d.ts +1 -1
  784. package/dist/pactile/tiles/catalog.d.ts.map +1 -1
  785. package/dist/pactile/tiles/catalog.js +1 -1
  786. package/dist/pactile/tiles/catalog.js.map +1 -1
  787. package/dist/pactile/tiles/compiler.d.ts +1 -1
  788. package/dist/pactile/tiles/compiler.d.ts.map +1 -1
  789. package/dist/pactile/tiles/compiler.js +1 -1
  790. package/dist/pactile/tiles/compiler.js.map +1 -1
  791. package/dist/pactile/tiles/content/ondemand/index.d.ts +2 -2
  792. package/dist/pactile/tiles/content/ondemand/index.d.ts.map +1 -1
  793. package/dist/pactile/tiles/content/ondemand/index.js +2 -16
  794. package/dist/pactile/tiles/content/ondemand/index.js.map +1 -1
  795. package/dist/pactile/tiles/jev-selection.d.ts +44 -0
  796. package/dist/pactile/tiles/jev-selection.d.ts.map +1 -0
  797. package/dist/pactile/tiles/jev-selection.js +210 -0
  798. package/dist/pactile/tiles/jev-selection.js.map +1 -0
  799. package/dist/pactile/tiles/loader.d.ts +1 -1
  800. package/dist/pactile/tiles/loader.d.ts.map +1 -1
  801. package/dist/pactile/tiles/loader.js +1 -1
  802. package/dist/pactile/tiles/loader.js.map +1 -1
  803. package/dist/pactile/tiles/safe-yaml.d.ts +5 -1
  804. package/dist/pactile/tiles/safe-yaml.d.ts.map +1 -1
  805. package/dist/pactile/tiles/safe-yaml.js +8 -8
  806. package/dist/pactile/tiles/safe-yaml.js.map +1 -1
  807. package/dist/pactile/tiles/selection-receipts.d.ts +71 -0
  808. package/dist/pactile/tiles/selection-receipts.d.ts.map +1 -0
  809. package/dist/pactile/tiles/selection-receipts.js +319 -0
  810. package/dist/pactile/tiles/selection-receipts.js.map +1 -0
  811. package/dist/pactile/tiles/selection.d.ts +185 -0
  812. package/dist/pactile/tiles/selection.d.ts.map +1 -0
  813. package/dist/pactile/tiles/selection.js +985 -0
  814. package/dist/pactile/tiles/selection.js.map +1 -0
  815. package/dist/pactile/verification/git-observer.d.ts +3 -0
  816. package/dist/pactile/verification/git-observer.d.ts.map +1 -0
  817. package/dist/pactile/verification/git-observer.js +3 -0
  818. package/dist/pactile/verification/git-observer.js.map +1 -0
  819. package/dist/pactile/verification/index.d.ts +11 -0
  820. package/dist/pactile/verification/index.d.ts.map +1 -0
  821. package/dist/pactile/verification/index.js +6 -0
  822. package/dist/pactile/verification/index.js.map +1 -0
  823. package/dist/pactile/verification/jev-advice.d.ts +78 -0
  824. package/dist/pactile/verification/jev-advice.d.ts.map +1 -0
  825. package/dist/pactile/verification/jev-advice.js +397 -0
  826. package/dist/pactile/verification/jev-advice.js.map +1 -0
  827. package/dist/pactile/verification/planner.d.ts +15 -0
  828. package/dist/pactile/verification/planner.d.ts.map +1 -0
  829. package/dist/pactile/verification/planner.js +412 -0
  830. package/dist/pactile/verification/planner.js.map +1 -0
  831. package/dist/pactile/verification/receipt.d.ts +101 -0
  832. package/dist/pactile/verification/receipt.d.ts.map +1 -0
  833. package/dist/pactile/verification/receipt.js +400 -0
  834. package/dist/pactile/verification/receipt.js.map +1 -0
  835. package/dist/pactile/verification/types.d.ts +72 -0
  836. package/dist/pactile/verification/types.d.ts.map +1 -0
  837. package/dist/pactile/verification/types.js +21 -0
  838. package/dist/pactile/verification/types.js.map +1 -0
  839. package/dist/pactile/worktree/git-probe.d.ts +32 -0
  840. package/dist/pactile/worktree/git-probe.d.ts.map +1 -0
  841. package/dist/pactile/worktree/git-probe.js +336 -0
  842. package/dist/pactile/worktree/git-probe.js.map +1 -0
  843. package/dist/pactile/worktree/git-removal.d.ts +3 -0
  844. package/dist/pactile/worktree/git-removal.d.ts.map +1 -0
  845. package/dist/pactile/worktree/git-removal.js +11 -0
  846. package/dist/pactile/worktree/git-removal.js.map +1 -0
  847. package/dist/pactile/worktree/index.d.ts +2 -0
  848. package/dist/pactile/worktree/index.d.ts.map +1 -0
  849. package/dist/pactile/worktree/index.js +2 -0
  850. package/dist/pactile/worktree/index.js.map +1 -0
  851. package/dist/pactile/worktree/integration-evidence.d.ts +80 -0
  852. package/dist/pactile/worktree/integration-evidence.d.ts.map +1 -0
  853. package/dist/pactile/worktree/integration-evidence.js +166 -0
  854. package/dist/pactile/worktree/integration-evidence.js.map +1 -0
  855. package/dist/pactile/worktree/manager-core.d.ts +50 -0
  856. package/dist/pactile/worktree/manager-core.d.ts.map +1 -0
  857. package/dist/pactile/worktree/manager-core.js +359 -0
  858. package/dist/pactile/worktree/manager-core.js.map +1 -0
  859. package/dist/pactile/worktree/manager-provenance.d.ts +32 -0
  860. package/dist/pactile/worktree/manager-provenance.d.ts.map +1 -0
  861. package/dist/pactile/worktree/manager-provenance.js +409 -0
  862. package/dist/pactile/worktree/manager-provenance.js.map +1 -0
  863. package/dist/pactile/worktree/manager-types.d.ts +84 -0
  864. package/dist/pactile/worktree/manager-types.d.ts.map +1 -0
  865. package/dist/pactile/worktree/manager-types.js +11 -0
  866. package/dist/pactile/worktree/manager-types.js.map +1 -0
  867. package/dist/pactile/worktree/manager.d.ts +10 -0
  868. package/dist/pactile/worktree/manager.d.ts.map +1 -0
  869. package/dist/pactile/worktree/manager.js +6 -0
  870. package/dist/pactile/worktree/manager.js.map +1 -0
  871. package/dist/pactile/worktree/run-workspace-cleanup.d.ts +10 -0
  872. package/dist/pactile/worktree/run-workspace-cleanup.d.ts.map +1 -0
  873. package/dist/pactile/worktree/run-workspace-cleanup.js +695 -0
  874. package/dist/pactile/worktree/run-workspace-cleanup.js.map +1 -0
  875. package/dist/pactile/worktree/run-workspace-lifecycle.d.ts +65 -0
  876. package/dist/pactile/worktree/run-workspace-lifecycle.d.ts.map +1 -0
  877. package/dist/pactile/worktree/run-workspace-lifecycle.js +276 -0
  878. package/dist/pactile/worktree/run-workspace-lifecycle.js.map +1 -0
  879. package/dist/templates/common/bundled-skills/pactile-check/SKILL.md +161 -161
  880. package/dist/templates/common/bundled-skills/pactile-check/references/fowler-12-smells.md +28 -28
  881. package/dist/templates/common/bundled-skills/pactile-handoff/SKILL.md +117 -117
  882. package/dist/templates/common/bundled-skills/pactile-meta/SKILL.md +75 -75
  883. package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/add-project-local-conventions.md +83 -83
  884. package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-agents.md +5 -47
  885. package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-context-loading.md +79 -84
  886. package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-hooks.md +5 -57
  887. package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-skills-or-commands.md +7 -77
  888. package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-spec-structure.md +83 -83
  889. package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-task-lifecycle.md +82 -88
  890. package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/change-workflow.md +65 -65
  891. package/dist/templates/common/bundled-skills/pactile-meta/references/customize-local/overview.md +12 -55
  892. package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/context-injection.md +68 -68
  893. package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/generated-files.md +7 -83
  894. package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/overview.md +7 -51
  895. package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/spec-system.md +102 -102
  896. package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/task-system.md +138 -133
  897. package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/workflow.md +75 -75
  898. package/dist/templates/common/bundled-skills/pactile-meta/references/local-architecture/workspace-memory.md +71 -71
  899. package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/agents.md +7 -69
  900. package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/hooks-and-settings.md +7 -59
  901. package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/overview.md +5 -45
  902. package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/platform-map.md +9 -45
  903. package/dist/templates/common/bundled-skills/pactile-meta/references/platform-files/skills-and-commands.md +7 -108
  904. package/dist/templates/common/bundled-skills/pactile-micro-grill/SKILL.md +68 -68
  905. package/dist/templates/common/bundled-skills/pactile-skill-creator/SKILL.md +47 -47
  906. package/dist/templates/common/bundled-skills/pactile-skill-creator/references/authoring-rules.md +170 -170
  907. package/dist/templates/common/bundled-skills/pactile-skill-creator/references/general-authoring.md +189 -189
  908. package/dist/templates/common/bundled-skills/pactile-skill-creator/references/pactile-skill-locations.md +11 -52
  909. package/dist/templates/common/bundled-skills/pactile-skill-creator/references/review-checklist.md +52 -52
  910. package/dist/templates/common/bundled-skills/pactile-spec-bootstrap/SKILL.md +41 -41
  911. package/dist/templates/common/bundled-skills/pactile-spec-bootstrap/references/mcp-setup.md +18 -90
  912. package/dist/templates/common/bundled-skills/pactile-spec-bootstrap/references/repository-analysis.md +41 -59
  913. package/dist/templates/common/bundled-skills/pactile-spec-bootstrap/references/spec-task-planning.md +61 -61
  914. package/dist/templates/common/bundled-skills/pactile-spec-bootstrap/references/spec-writing.md +70 -70
  915. package/dist/templates/common/bundled-skills/smart-search-cli/SKILL.md +395 -393
  916. package/dist/templates/common/bundled-skills/smart-search-cli/agents/openai.yaml +3 -3
  917. package/dist/templates/common/bundled-skills/smart-search-cli/examples/batch-search.md +98 -98
  918. package/dist/templates/common/bundled-skills/smart-search-cli/examples/evidence-gathering.md +89 -89
  919. package/dist/templates/common/bundled-skills/smart-search-cli/references/cli-contract.md +323 -323
  920. package/dist/templates/common/commands/continue.md +60 -62
  921. package/dist/templates/common/commands/finish-work.md +84 -82
  922. package/dist/templates/common/commands/start.md +66 -66
  923. package/dist/templates/common/index.d.ts +0 -20
  924. package/dist/templates/common/index.d.ts.map +1 -1
  925. package/dist/templates/common/index.js +0 -16
  926. package/dist/templates/common/index.js.map +1 -1
  927. package/dist/templates/common/skills/before-dev.md +35 -35
  928. package/dist/templates/common/skills/brainstorm.md +210 -204
  929. package/dist/templates/common/skills/break-loop.md +125 -125
  930. package/dist/templates/common/skills/update-spec.md +363 -363
  931. package/dist/templates/extract.d.ts +1 -8
  932. package/dist/templates/extract.d.ts.map +1 -1
  933. package/dist/templates/extract.js +0 -31
  934. package/dist/templates/extract.js.map +1 -1
  935. package/dist/templates/markdown/agents.md +14 -14
  936. package/dist/templates/markdown/framework/artifact-locale-guide.md.txt +93 -93
  937. package/dist/templates/markdown/framework/codex-worker-dispatch.md.txt +9 -0
  938. package/dist/templates/markdown/framework/dogfood-only-surfaces.md.txt +7 -28
  939. package/dist/templates/markdown/framework/execution-strategy.md.txt +14 -45
  940. package/dist/templates/markdown/framework/index.md.txt +20 -31
  941. package/dist/templates/markdown/framework/injection-budget-guide.md.txt +7 -111
  942. package/dist/templates/markdown/framework/middleware-protocol.md.txt +139 -238
  943. package/dist/templates/markdown/framework/parallel-first-execution.md.txt +28 -116
  944. package/dist/templates/markdown/framework/prd-grill-frontier.md.txt +105 -105
  945. package/dist/templates/markdown/framework/release-boundary.md.txt +29 -30
  946. package/dist/templates/markdown/framework/retrieval-daily-guide.md.txt +9 -199
  947. package/dist/templates/markdown/framework/upgrade.md.txt +15 -15
  948. package/dist/templates/markdown/framework/verification-strength-guide.md.txt +185 -185
  949. package/dist/templates/markdown/gitignore.txt +15 -15
  950. package/dist/templates/markdown/index.d.ts +1 -5
  951. package/dist/templates/markdown/index.d.ts.map +1 -1
  952. package/dist/templates/markdown/index.js +3 -23
  953. package/dist/templates/markdown/index.js.map +1 -1
  954. package/dist/templates/markdown/spec/backend/database-guidelines.md.txt +51 -51
  955. package/dist/templates/markdown/spec/backend/directory-structure.md.txt +54 -54
  956. package/dist/templates/markdown/spec/backend/error-handling.md.txt +51 -51
  957. package/dist/templates/markdown/spec/backend/index.md.txt +38 -38
  958. package/dist/templates/markdown/spec/backend/logging-guidelines.md.txt +51 -51
  959. package/dist/templates/markdown/spec/backend/quality-guidelines.md.txt +51 -51
  960. package/dist/templates/markdown/spec/frontend/component-guidelines.md.txt +59 -59
  961. package/dist/templates/markdown/spec/frontend/directory-structure.md.txt +54 -54
  962. package/dist/templates/markdown/spec/frontend/hook-guidelines.md.txt +51 -51
  963. package/dist/templates/markdown/spec/frontend/index.md.txt +39 -39
  964. package/dist/templates/markdown/spec/frontend/quality-guidelines.md.txt +51 -51
  965. package/dist/templates/markdown/spec/frontend/state-management.md.txt +51 -51
  966. package/dist/templates/markdown/spec/frontend/type-safety.md.txt +51 -51
  967. package/dist/templates/markdown/spec/guides/code-reuse-thinking-guide.md.txt +174 -174
  968. package/dist/templates/markdown/spec/guides/cross-layer-thinking-guide.md.txt +162 -162
  969. package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md.txt +17 -634
  970. package/dist/templates/markdown/spec/guides/debug-loop-guide.md.txt +227 -227
  971. package/dist/templates/markdown/spec/guides/durable-learning-decision-guide.md.txt +75 -75
  972. package/dist/templates/markdown/spec/guides/e2e-walkthrough-guide.md.txt +88 -93
  973. package/dist/templates/markdown/spec/guides/index.md.txt +131 -131
  974. package/dist/templates/markdown/spec/guides/prototype-guide.md.txt +137 -139
  975. package/dist/templates/markdown/spec/guides/test-discipline-guide.md.txt +179 -179
  976. package/dist/templates/markdown/workspace-index.md +122 -125
  977. package/dist/templates/markdown/worktree.yaml.txt +58 -58
  978. package/dist/templates/pactile/CONTEXT.md +113 -113
  979. package/dist/templates/pactile/config/execution-strategy-rules.json +30 -31
  980. package/dist/templates/pactile/config.yaml +111 -130
  981. package/dist/templates/pactile/docs/adr/README.md +21 -21
  982. package/dist/templates/pactile/gitignore.txt +35 -35
  983. package/dist/templates/pactile/index.d.ts +3 -127
  984. package/dist/templates/pactile/index.d.ts.map +1 -1
  985. package/dist/templates/pactile/index.js +13 -298
  986. package/dist/templates/pactile/index.js.map +1 -1
  987. package/dist/templates/pactile/modules/approval-personal/contract.md +31 -43
  988. package/dist/templates/pactile/modules/close-basic/contract.md +35 -38
  989. package/dist/templates/pactile/modules/context-progressive/contract.md +44 -44
  990. package/dist/templates/pactile/modules/debug-recovery/contract.md +44 -44
  991. package/dist/templates/pactile/modules/define-basic/contract.md +35 -39
  992. package/dist/templates/pactile/modules/define-extended/contract.md +45 -45
  993. package/dist/templates/pactile/modules/execute-agent/contract.md +30 -38
  994. package/dist/templates/pactile/modules/independent-check/contract.md +35 -35
  995. package/dist/templates/pactile/modules/index.json +127 -133
  996. package/dist/templates/pactile/modules/intake-basic/contract.md +37 -34
  997. package/dist/templates/pactile/modules/observability-local/contract.md +31 -31
  998. package/dist/templates/pactile/modules/parent-child/contract.md +45 -45
  999. package/dist/templates/pactile/modules/personal-memory/contract.md +55 -55
  1000. package/dist/templates/pactile/modules/retention-storage/contract.md +43 -43
  1001. package/dist/templates/pactile/modules/retrieval-extended/contract.md +78 -77
  1002. package/dist/templates/pactile/modules/session-transfer/contract.md +41 -41
  1003. package/dist/templates/pactile/modules/spec-learning/contract.md +50 -50
  1004. package/dist/templates/pactile/modules/vcs-integration/contract.md +46 -46
  1005. package/dist/templates/pactile/modules/verify-basic/contract.md +29 -38
  1006. package/dist/templates/pactile/modules/worker-orchestration/contract.md +47 -47
  1007. package/dist/templates/pactile/scripts/retrieval_probe_matrix_template.json +43 -43
  1008. package/dist/templates/pactile/tasks/locale/en/default-prd.md +27 -27
  1009. package/dist/templates/pactile/tasks/locale/zh/default-prd.md +27 -27
  1010. package/dist/templates/pactile/tasks/templates/release-execution/design.md +61 -61
  1011. package/dist/templates/pactile/tasks/templates/release-execution/handoff-template.md +28 -28
  1012. package/dist/templates/pactile/tasks/templates/release-execution/implement.md +28 -28
  1013. package/dist/templates/pactile/tasks/templates/release-execution/prd.md +30 -30
  1014. package/dist/templates/pactile/tasks/templates/release-readiness/design.md +50 -50
  1015. package/dist/templates/pactile/tasks/templates/release-readiness/handoff-template.md +45 -39
  1016. package/dist/templates/pactile/tasks/templates/release-readiness/implement.md +28 -28
  1017. package/dist/templates/pactile/tasks/templates/release-readiness/prd.md +30 -30
  1018. package/dist/templates/pactile/workflow.md +61 -64
  1019. package/dist/templates/template-utils.d.ts +1 -2
  1020. package/dist/templates/template-utils.d.ts.map +1 -1
  1021. package/dist/templates/template-utils.js +2 -13
  1022. package/dist/templates/template-utils.js.map +1 -1
  1023. package/dist/types/ai-tools.d.ts +12 -13
  1024. package/dist/types/ai-tools.d.ts.map +1 -1
  1025. package/dist/types/ai-tools.js +15 -14
  1026. package/dist/types/ai-tools.js.map +1 -1
  1027. package/dist/utils/codebase-retrieval-router.d.ts +1 -1
  1028. package/dist/utils/codebase-retrieval-router.d.ts.map +1 -1
  1029. package/dist/utils/cwd-guard.js +1 -1
  1030. package/dist/utils/cwd-guard.js.map +1 -1
  1031. package/dist/utils/developer.d.ts +5 -0
  1032. package/dist/utils/developer.d.ts.map +1 -0
  1033. package/dist/utils/developer.js +38 -0
  1034. package/dist/utils/developer.js.map +1 -0
  1035. package/dist/utils/git-root.d.ts +3 -0
  1036. package/dist/utils/git-root.d.ts.map +1 -0
  1037. package/dist/utils/git-root.js +24 -0
  1038. package/dist/utils/git-root.js.map +1 -0
  1039. package/dist/utils/local-date.d.ts +3 -0
  1040. package/dist/utils/local-date.d.ts.map +1 -0
  1041. package/dist/utils/local-date.js +8 -0
  1042. package/dist/utils/local-date.js.map +1 -0
  1043. package/dist/utils/manifest-prune.d.ts +5 -4
  1044. package/dist/utils/manifest-prune.d.ts.map +1 -1
  1045. package/dist/utils/manifest-prune.js +11 -21
  1046. package/dist/utils/manifest-prune.js.map +1 -1
  1047. package/dist/utils/p36-upgrade.d.ts +3 -3
  1048. package/dist/utils/p36-upgrade.d.ts.map +1 -1
  1049. package/dist/utils/p36-upgrade.js +3 -11
  1050. package/dist/utils/p36-upgrade.js.map +1 -1
  1051. package/dist/utils/post-update-smoke.d.ts +1 -4
  1052. package/dist/utils/post-update-smoke.d.ts.map +1 -1
  1053. package/dist/utils/post-update-smoke.js +13 -25
  1054. package/dist/utils/post-update-smoke.js.map +1 -1
  1055. package/dist/utils/project-capabilities.d.ts +2 -17
  1056. package/dist/utils/project-capabilities.d.ts.map +1 -1
  1057. package/dist/utils/project-capabilities.js +14 -119
  1058. package/dist/utils/project-capabilities.js.map +1 -1
  1059. package/dist/utils/readiness.d.ts +16 -2
  1060. package/dist/utils/readiness.d.ts.map +1 -1
  1061. package/dist/utils/readiness.js +63 -32
  1062. package/dist/utils/readiness.js.map +1 -1
  1063. package/dist/utils/retrieval-execution-telemetry.d.ts +1 -1
  1064. package/dist/utils/retrieval-execution-telemetry.d.ts.map +1 -1
  1065. package/dist/utils/retrieval-result-ranking.d.ts +1 -1
  1066. package/dist/utils/retrieval-result-ranking.d.ts.map +1 -1
  1067. package/dist/utils/retrieval-tool-classification.d.ts +1 -1
  1068. package/dist/utils/retrieval-tool-classification.d.ts.map +1 -1
  1069. package/dist/utils/task-json.d.ts +3 -3
  1070. package/dist/utils/task-json.d.ts.map +1 -1
  1071. package/dist/utils/task-json.js +3 -3
  1072. package/dist/utils/task-json.js.map +1 -1
  1073. package/dist/utils/template-hash.d.ts +4 -0
  1074. package/dist/utils/template-hash.d.ts.map +1 -1
  1075. package/dist/utils/template-hash.js +1 -1
  1076. package/dist/utils/template-hash.js.map +1 -1
  1077. package/dist/utils/uninstall-scrubbers.js +1 -1
  1078. package/dist/utils/update-rollout-report.d.ts +9 -0
  1079. package/dist/utils/update-rollout-report.d.ts.map +1 -1
  1080. package/dist/utils/update-rollout-report.js +14 -1
  1081. package/dist/utils/update-rollout-report.js.map +1 -1
  1082. package/dist/utils/workflow-dir.d.ts +1 -1
  1083. package/dist/utils/workflow-dir.d.ts.map +1 -1
  1084. package/dist/utils/workflow-dir.js +1 -1
  1085. package/dist/utils/workflow-dir.js.map +1 -1
  1086. package/package.json +63 -47
  1087. package/CHANGELOG.md +0 -602
  1088. package/bin/compat-warning.js +0 -11
  1089. package/bin/cstl.js +0 -6
  1090. package/bin/pactile.js +0 -3
  1091. package/bin/smart-search.js +0 -38
  1092. package/dist/commands/channel/adapters/claude.d.ts +0 -29
  1093. package/dist/commands/channel/adapters/claude.d.ts.map +0 -1
  1094. package/dist/commands/channel/adapters/claude.js +0 -203
  1095. package/dist/commands/channel/adapters/claude.js.map +0 -1
  1096. package/dist/commands/channel/adapters/codex.d.ts +0 -85
  1097. package/dist/commands/channel/adapters/codex.d.ts.map +0 -1
  1098. package/dist/commands/channel/adapters/codex.js +0 -505
  1099. package/dist/commands/channel/adapters/codex.js.map +0 -1
  1100. package/dist/commands/channel/adapters/index.d.ts +0 -84
  1101. package/dist/commands/channel/adapters/index.d.ts.map +0 -1
  1102. package/dist/commands/channel/adapters/index.js +0 -115
  1103. package/dist/commands/channel/adapters/index.js.map +0 -1
  1104. package/dist/commands/channel/adapters/types.d.ts +0 -33
  1105. package/dist/commands/channel/adapters/types.d.ts.map +0 -1
  1106. package/dist/commands/channel/adapters/types.js +0 -2
  1107. package/dist/commands/channel/adapters/types.js.map +0 -1
  1108. package/dist/commands/channel/agent-loader.d.ts +0 -32
  1109. package/dist/commands/channel/agent-loader.d.ts.map +0 -1
  1110. package/dist/commands/channel/agent-loader.js +0 -154
  1111. package/dist/commands/channel/agent-loader.js.map +0 -1
  1112. package/dist/commands/channel/context-loader.d.ts +0 -26
  1113. package/dist/commands/channel/context-loader.d.ts.map +0 -1
  1114. package/dist/commands/channel/context-loader.js +0 -290
  1115. package/dist/commands/channel/context-loader.js.map +0 -1
  1116. package/dist/commands/channel/context.d.ts +0 -16
  1117. package/dist/commands/channel/context.d.ts.map +0 -1
  1118. package/dist/commands/channel/context.js +0 -83
  1119. package/dist/commands/channel/context.js.map +0 -1
  1120. package/dist/commands/channel/create.d.ts +0 -27
  1121. package/dist/commands/channel/create.d.ts.map +0 -1
  1122. package/dist/commands/channel/create.js +0 -39
  1123. package/dist/commands/channel/create.js.map +0 -1
  1124. package/dist/commands/channel/dev-parse-trace.d.ts +0 -14
  1125. package/dist/commands/channel/dev-parse-trace.d.ts.map +0 -1
  1126. package/dist/commands/channel/dev-parse-trace.js +0 -70
  1127. package/dist/commands/channel/dev-parse-trace.js.map +0 -1
  1128. package/dist/commands/channel/guard.d.ts +0 -150
  1129. package/dist/commands/channel/guard.d.ts.map +0 -1
  1130. package/dist/commands/channel/guard.js +0 -475
  1131. package/dist/commands/channel/guard.js.map +0 -1
  1132. package/dist/commands/channel/index.d.ts +0 -3
  1133. package/dist/commands/channel/index.d.ts.map +0 -1
  1134. package/dist/commands/channel/index.js +0 -531
  1135. package/dist/commands/channel/index.js.map +0 -1
  1136. package/dist/commands/channel/interrupt.d.ts +0 -10
  1137. package/dist/commands/channel/interrupt.d.ts.map +0 -1
  1138. package/dist/commands/channel/interrupt.js +0 -22
  1139. package/dist/commands/channel/interrupt.js.map +0 -1
  1140. package/dist/commands/channel/kill.d.ts +0 -7
  1141. package/dist/commands/channel/kill.d.ts.map +0 -1
  1142. package/dist/commands/channel/kill.js +0 -121
  1143. package/dist/commands/channel/kill.js.map +0 -1
  1144. package/dist/commands/channel/list.d.ts +0 -17
  1145. package/dist/commands/channel/list.d.ts.map +0 -1
  1146. package/dist/commands/channel/list.js +0 -233
  1147. package/dist/commands/channel/list.js.map +0 -1
  1148. package/dist/commands/channel/messages.d.ts +0 -15
  1149. package/dist/commands/channel/messages.d.ts.map +0 -1
  1150. package/dist/commands/channel/messages.js +0 -245
  1151. package/dist/commands/channel/messages.js.map +0 -1
  1152. package/dist/commands/channel/rm.d.ts +0 -27
  1153. package/dist/commands/channel/rm.d.ts.map +0 -1
  1154. package/dist/commands/channel/rm.js +0 -216
  1155. package/dist/commands/channel/rm.js.map +0 -1
  1156. package/dist/commands/channel/run.d.ts +0 -30
  1157. package/dist/commands/channel/run.d.ts.map +0 -1
  1158. package/dist/commands/channel/run.js +0 -130
  1159. package/dist/commands/channel/run.js.map +0 -1
  1160. package/dist/commands/channel/send.d.ts +0 -11
  1161. package/dist/commands/channel/send.d.ts.map +0 -1
  1162. package/dist/commands/channel/send.js +0 -24
  1163. package/dist/commands/channel/send.js.map +0 -1
  1164. package/dist/commands/channel/spawn.d.ts +0 -40
  1165. package/dist/commands/channel/spawn.d.ts.map +0 -1
  1166. package/dist/commands/channel/spawn.js +0 -242
  1167. package/dist/commands/channel/spawn.js.map +0 -1
  1168. package/dist/commands/channel/store/events.d.ts +0 -39
  1169. package/dist/commands/channel/store/events.d.ts.map +0 -1
  1170. package/dist/commands/channel/store/events.js +0 -87
  1171. package/dist/commands/channel/store/events.js.map +0 -1
  1172. package/dist/commands/channel/store/filter.d.ts +0 -3
  1173. package/dist/commands/channel/store/filter.d.ts.map +0 -1
  1174. package/dist/commands/channel/store/filter.js +0 -2
  1175. package/dist/commands/channel/store/filter.js.map +0 -1
  1176. package/dist/commands/channel/store/lock.d.ts +0 -23
  1177. package/dist/commands/channel/store/lock.d.ts.map +0 -1
  1178. package/dist/commands/channel/store/lock.js +0 -99
  1179. package/dist/commands/channel/store/lock.js.map +0 -1
  1180. package/dist/commands/channel/store/paths.d.ts +0 -63
  1181. package/dist/commands/channel/store/paths.d.ts.map +0 -1
  1182. package/dist/commands/channel/store/paths.js +0 -247
  1183. package/dist/commands/channel/store/paths.js.map +0 -1
  1184. package/dist/commands/channel/store/schema.d.ts +0 -27
  1185. package/dist/commands/channel/store/schema.d.ts.map +0 -1
  1186. package/dist/commands/channel/store/schema.js +0 -34
  1187. package/dist/commands/channel/store/schema.js.map +0 -1
  1188. package/dist/commands/channel/store/thread-state.d.ts +0 -5
  1189. package/dist/commands/channel/store/thread-state.d.ts.map +0 -1
  1190. package/dist/commands/channel/store/thread-state.js +0 -16
  1191. package/dist/commands/channel/store/thread-state.js.map +0 -1
  1192. package/dist/commands/channel/store/watch.d.ts +0 -19
  1193. package/dist/commands/channel/store/watch.d.ts.map +0 -1
  1194. package/dist/commands/channel/store/watch.js +0 -146
  1195. package/dist/commands/channel/store/watch.js.map +0 -1
  1196. package/dist/commands/channel/supervisor/idle.d.ts +0 -46
  1197. package/dist/commands/channel/supervisor/idle.d.ts.map +0 -1
  1198. package/dist/commands/channel/supervisor/idle.js +0 -72
  1199. package/dist/commands/channel/supervisor/idle.js.map +0 -1
  1200. package/dist/commands/channel/supervisor/inbox.d.ts +0 -30
  1201. package/dist/commands/channel/supervisor/inbox.d.ts.map +0 -1
  1202. package/dist/commands/channel/supervisor/inbox.js +0 -160
  1203. package/dist/commands/channel/supervisor/inbox.js.map +0 -1
  1204. package/dist/commands/channel/supervisor/shutdown.d.ts +0 -68
  1205. package/dist/commands/channel/supervisor/shutdown.d.ts.map +0 -1
  1206. package/dist/commands/channel/supervisor/shutdown.js +0 -146
  1207. package/dist/commands/channel/supervisor/shutdown.js.map +0 -1
  1208. package/dist/commands/channel/supervisor/stdout.d.ts +0 -51
  1209. package/dist/commands/channel/supervisor/stdout.d.ts.map +0 -1
  1210. package/dist/commands/channel/supervisor/stdout.js +0 -121
  1211. package/dist/commands/channel/supervisor/stdout.js.map +0 -1
  1212. package/dist/commands/channel/supervisor/turns.d.ts +0 -31
  1213. package/dist/commands/channel/supervisor/turns.d.ts.map +0 -1
  1214. package/dist/commands/channel/supervisor/turns.js +0 -45
  1215. package/dist/commands/channel/supervisor/turns.js.map +0 -1
  1216. package/dist/commands/channel/supervisor/warning.d.ts +0 -48
  1217. package/dist/commands/channel/supervisor/warning.d.ts.map +0 -1
  1218. package/dist/commands/channel/supervisor/warning.js +0 -77
  1219. package/dist/commands/channel/supervisor/warning.js.map +0 -1
  1220. package/dist/commands/channel/supervisor.d.ts +0 -59
  1221. package/dist/commands/channel/supervisor.d.ts.map +0 -1
  1222. package/dist/commands/channel/supervisor.js +0 -345
  1223. package/dist/commands/channel/supervisor.js.map +0 -1
  1224. package/dist/commands/channel/text-body.d.ts +0 -13
  1225. package/dist/commands/channel/text-body.d.ts.map +0 -1
  1226. package/dist/commands/channel/text-body.js +0 -47
  1227. package/dist/commands/channel/text-body.js.map +0 -1
  1228. package/dist/commands/channel/threads.d.ts +0 -39
  1229. package/dist/commands/channel/threads.d.ts.map +0 -1
  1230. package/dist/commands/channel/threads.js +0 -106
  1231. package/dist/commands/channel/threads.js.map +0 -1
  1232. package/dist/commands/channel/title.d.ts +0 -12
  1233. package/dist/commands/channel/title.d.ts.map +0 -1
  1234. package/dist/commands/channel/title.js +0 -24
  1235. package/dist/commands/channel/title.js.map +0 -1
  1236. package/dist/commands/channel/wait.d.ts +0 -17
  1237. package/dist/commands/channel/wait.d.ts.map +0 -1
  1238. package/dist/commands/channel/wait.js +0 -75
  1239. package/dist/commands/channel/wait.js.map +0 -1
  1240. package/dist/commands/validate-rules.d.ts +0 -6
  1241. package/dist/commands/validate-rules.d.ts.map +0 -1
  1242. package/dist/commands/validate-rules.js +0 -33
  1243. package/dist/commands/validate-rules.js.map +0 -1
  1244. package/dist/configurators/cursor.d.ts +0 -21
  1245. package/dist/configurators/cursor.d.ts.map +0 -1
  1246. package/dist/configurators/cursor.js +0 -51
  1247. package/dist/configurators/cursor.js.map +0 -1
  1248. package/dist/migrations/manifests/0.1.0.json +0 -9
  1249. package/dist/migrations/manifests/0.1.1.json +0 -9
  1250. package/dist/migrations/manifests/0.1.2.json +0 -9
  1251. package/dist/migrations/manifests/0.1.3.json +0 -9
  1252. package/dist/migrations/manifests/0.1.4.json +0 -9
  1253. package/dist/migrations/manifests/0.2.1.json +0 -9
  1254. package/dist/migrations/manifests/0.2.10.json +0 -374
  1255. package/dist/migrations/manifests/0.2.2.json +0 -9
  1256. package/dist/migrations/manifests/0.2.3.json +0 -9
  1257. package/dist/migrations/manifests/0.2.4.json +0 -9
  1258. package/dist/migrations/manifests/0.2.5.json +0 -9
  1259. package/dist/migrations/manifests/0.2.6.json +0 -9
  1260. package/dist/migrations/manifests/0.2.7.json +0 -9
  1261. package/dist/migrations/manifests/0.2.8.json +0 -9
  1262. package/dist/migrations/manifests/0.2.9.json +0 -9
  1263. package/dist/migrations/manifests/0.3.0.json +0 -89
  1264. package/dist/migrations/manifests/0.3.1.json +0 -32
  1265. package/dist/migrations/manifests/0.3.2.json +0 -16
  1266. package/dist/migrations/manifests/0.3.3.json +0 -9
  1267. package/dist/migrations/manifests/0.3.4.json +0 -9
  1268. package/dist/migrations/manifests/0.3.5.json +0 -9
  1269. package/dist/migrations/manifests/0.3.6.json +0 -9
  1270. package/dist/migrations/manifests/0.4.0.json +0 -9
  1271. package/dist/migrations/manifests/0.4.1.json +0 -9
  1272. package/dist/migrations/manifests/0.4.2.json +0 -9
  1273. package/dist/migrations/manifests/0.4.3.json +0 -9
  1274. package/dist/migrations/manifests/0.5.0-beta.0.json +0 -9
  1275. package/dist/migrations/manifests/0.5.0-beta.1.json +0 -9
  1276. package/dist/migrations/manifests/0.5.0-beta.2.json +0 -9
  1277. package/dist/migrations/manifests/0.5.0-beta.3.json +0 -9
  1278. package/dist/migrations/manifests/0.5.0-beta.4.json +0 -9
  1279. package/dist/migrations/manifests/0.5.0-beta.5.json +0 -9
  1280. package/dist/pactile/adapters/cursor/index.d.ts +0 -60
  1281. package/dist/pactile/adapters/cursor/index.d.ts.map +0 -1
  1282. package/dist/pactile/adapters/cursor/index.js +0 -186
  1283. package/dist/pactile/adapters/cursor/index.js.map +0 -1
  1284. package/dist/pactile/compat/retired-alternate-client.d.ts +0 -42
  1285. package/dist/pactile/compat/retired-alternate-client.d.ts.map +0 -1
  1286. package/dist/pactile/compat/retired-alternate-client.js +0 -153
  1287. package/dist/pactile/compat/retired-alternate-client.js.map +0 -1
  1288. package/dist/pactile/compat/update-residue.d.ts +0 -4
  1289. package/dist/pactile/compat/update-residue.d.ts.map +0 -1
  1290. package/dist/pactile/compat/update-residue.js +0 -55
  1291. package/dist/pactile/compat/update-residue.js.map +0 -1
  1292. package/dist/templates/common/optional-skills/chrome-cdp/SKILL.md +0 -179
  1293. package/dist/templates/common/optional-skills/chrome-cdp/examples/fetch-hook-api-capture.md +0 -149
  1294. package/dist/templates/common/optional-skills/chrome-cdp/scripts/cdp.mjs +0 -904
  1295. package/dist/templates/cursor/agents/pactile-check.md +0 -58
  1296. package/dist/templates/cursor/agents/pactile-implement.md +0 -56
  1297. package/dist/templates/cursor/agents/pactile-research.md +0 -51
  1298. package/dist/templates/cursor/commands/handoff.md +0 -101
  1299. package/dist/templates/cursor/fixtures/expected-rules.d.ts +0 -14
  1300. package/dist/templates/cursor/fixtures/expected-rules.d.ts.map +0 -1
  1301. package/dist/templates/cursor/fixtures/expected-rules.js +0 -20
  1302. package/dist/templates/cursor/fixtures/expected-rules.js.map +0 -1
  1303. package/dist/templates/cursor/hooks.json +0 -52
  1304. package/dist/templates/cursor/index.d.ts +0 -19
  1305. package/dist/templates/cursor/index.d.ts.map +0 -1
  1306. package/dist/templates/cursor/index.js +0 -19
  1307. package/dist/templates/cursor/index.js.map +0 -1
  1308. package/dist/templates/cursor/rules/pactile-bootstrap.mdc +0 -18
  1309. package/dist/templates/cursor/worktrees.json +0 -11
  1310. package/dist/templates/markdown/framework/cursor-context-injection-guide.md.txt +0 -85
  1311. package/dist/templates/markdown/framework/cursor-native-modes-guide.md.txt +0 -239
  1312. package/dist/templates/markdown/framework/cursor-semantic-compliance.md.txt +0 -41
  1313. package/dist/templates/markdown/framework/cursor-subagent-policy.md.txt +0 -90
  1314. package/dist/templates/markdown/framework/internal-skills-cursor-reachability.md.txt +0 -45
  1315. package/dist/templates/markdown/prompts/run-semantic-slice-12.md.txt +0 -25
  1316. package/dist/templates/pactile/modules/candidate-pool/contract.md +0 -37
  1317. package/dist/templates/pactile/pool/README.md +0 -149
  1318. package/dist/templates/pactile/pool/items/.gitkeep +0 -0
  1319. package/dist/templates/pactile/pool/plan.md +0 -50
  1320. package/dist/templates/pactile/scripts/__init__.py +0 -5
  1321. package/dist/templates/pactile/scripts/add_session.py +0 -547
  1322. package/dist/templates/pactile/scripts/build_context_pack.py +0 -17
  1323. package/dist/templates/pactile/scripts/build_retrieval_pack.py +0 -376
  1324. package/dist/templates/pactile/scripts/codegraph_session_smoke.py +0 -76
  1325. package/dist/templates/pactile/scripts/common/__init__.py +0 -103
  1326. package/dist/templates/pactile/scripts/common/active_task.py +0 -576
  1327. package/dist/templates/pactile/scripts/common/adapter_middleware.py +0 -1373
  1328. package/dist/templates/pactile/scripts/common/artifact_locale.py +0 -303
  1329. package/dist/templates/pactile/scripts/common/artifact_search.py +0 -587
  1330. package/dist/templates/pactile/scripts/common/cli_adapter.py +0 -135
  1331. package/dist/templates/pactile/scripts/common/cli_environment.py +0 -155
  1332. package/dist/templates/pactile/scripts/common/codebase_retrieval_router.py +0 -1339
  1333. package/dist/templates/pactile/scripts/common/config.py +0 -497
  1334. package/dist/templates/pactile/scripts/common/context_pack.py +0 -371
  1335. package/dist/templates/pactile/scripts/common/cursor_retrieval_env.py +0 -31
  1336. package/dist/templates/pactile/scripts/common/developer.py +0 -190
  1337. package/dist/templates/pactile/scripts/common/execution_strategy.py +0 -268
  1338. package/dist/templates/pactile/scripts/common/full_quality.py +0 -237
  1339. package/dist/templates/pactile/scripts/common/git.py +0 -37
  1340. package/dist/templates/pactile/scripts/common/git_context.py +0 -198
  1341. package/dist/templates/pactile/scripts/common/injection_budget.py +0 -317
  1342. package/dist/templates/pactile/scripts/common/io.py +0 -37
  1343. package/dist/templates/pactile/scripts/common/kernel_command.py +0 -369
  1344. package/dist/templates/pactile/scripts/common/lite_context.py +0 -280
  1345. package/dist/templates/pactile/scripts/common/log.py +0 -45
  1346. package/dist/templates/pactile/scripts/common/ondemand_topology.py +0 -419
  1347. package/dist/templates/pactile/scripts/common/packages_context.py +0 -239
  1348. package/dist/templates/pactile/scripts/common/pactile_config.py +0 -131
  1349. package/dist/templates/pactile/scripts/common/parallel_declaration.py +0 -369
  1350. package/dist/templates/pactile/scripts/common/parent_orchestration.py +0 -1198
  1351. package/dist/templates/pactile/scripts/common/paths.py +0 -756
  1352. package/dist/templates/pactile/scripts/common/pool_refs.py +0 -119
  1353. package/dist/templates/pactile/scripts/common/pool_slice.py +0 -269
  1354. package/dist/templates/pactile/scripts/common/pool_store.py +0 -766
  1355. package/dist/templates/pactile/scripts/common/project_file_stats.py +0 -91
  1356. package/dist/templates/pactile/scripts/common/retrieval_adapter_metadata.py +0 -943
  1357. package/dist/templates/pactile/scripts/common/retrieval_agent_instructions.py +0 -123
  1358. package/dist/templates/pactile/scripts/common/retrieval_evidence.py +0 -915
  1359. package/dist/templates/pactile/scripts/common/retrieval_pack.py +0 -422
  1360. package/dist/templates/pactile/scripts/common/retrieval_pack_context.py +0 -122
  1361. package/dist/templates/pactile/scripts/common/retrieval_plan_gate.py +0 -61
  1362. package/dist/templates/pactile/scripts/common/retrieval_result_ranking.py +0 -104
  1363. package/dist/templates/pactile/scripts/common/retrieval_tool_classification.py +0 -166
  1364. package/dist/templates/pactile/scripts/common/safe_commit.py +0 -285
  1365. package/dist/templates/pactile/scripts/common/semantic_plan_gate.py +0 -53
  1366. package/dist/templates/pactile/scripts/common/session_context.py +0 -1213
  1367. package/dist/templates/pactile/scripts/common/session_memory.py +0 -386
  1368. package/dist/templates/pactile/scripts/common/session_pack.py +0 -886
  1369. package/dist/templates/pactile/scripts/common/smart_search_evidence.py +0 -514
  1370. package/dist/templates/pactile/scripts/common/smart_search_resolve.py +0 -150
  1371. package/dist/templates/pactile/scripts/common/subagent_dispatch.py +0 -592
  1372. package/dist/templates/pactile/scripts/common/task_context.py +0 -241
  1373. package/dist/templates/pactile/scripts/common/task_dashboard.py +0 -286
  1374. package/dist/templates/pactile/scripts/common/task_dependencies.py +0 -648
  1375. package/dist/templates/pactile/scripts/common/task_gates.py +0 -2478
  1376. package/dist/templates/pactile/scripts/common/task_map.py +0 -703
  1377. package/dist/templates/pactile/scripts/common/task_queue.py +0 -188
  1378. package/dist/templates/pactile/scripts/common/task_store.py +0 -2252
  1379. package/dist/templates/pactile/scripts/common/task_utils.py +0 -274
  1380. package/dist/templates/pactile/scripts/common/tasks.py +0 -231
  1381. package/dist/templates/pactile/scripts/common/test_adapter_middleware.py +0 -199
  1382. package/dist/templates/pactile/scripts/common/test_depends_mode_block.py +0 -509
  1383. package/dist/templates/pactile/scripts/common/test_full_quality.py +0 -197
  1384. package/dist/templates/pactile/scripts/common/test_kernel_command.py +0 -336
  1385. package/dist/templates/pactile/scripts/common/test_lite_path.py +0 -190
  1386. package/dist/templates/pactile/scripts/common/test_observable_defaults.py +0 -141
  1387. package/dist/templates/pactile/scripts/common/test_ondemand_topology.py +0 -237
  1388. package/dist/templates/pactile/scripts/common/test_parallel_declaration.py +0 -264
  1389. package/dist/templates/pactile/scripts/common/test_pool_slice.py +0 -198
  1390. package/dist/templates/pactile/scripts/common/test_pool_store.py +0 -452
  1391. package/dist/templates/pactile/scripts/common/test_retrieval_arbitration.py +0 -331
  1392. package/dist/templates/pactile/scripts/common/test_task_dashboard.py +0 -155
  1393. package/dist/templates/pactile/scripts/common/test_task_dependencies.py +0 -329
  1394. package/dist/templates/pactile/scripts/common/test_task_store_kernel_patch.py +0 -163
  1395. package/dist/templates/pactile/scripts/common/types.py +0 -110
  1396. package/dist/templates/pactile/scripts/common/workflow_phase.py +0 -194
  1397. package/dist/templates/pactile/scripts/compile_session_pack.py +0 -15
  1398. package/dist/templates/pactile/scripts/cursor_retrieval_probe.py +0 -64
  1399. package/dist/templates/pactile/scripts/cursor_retrieval_probe_prompt.md +0 -33
  1400. package/dist/templates/pactile/scripts/generate_dispatch_prompt.py +0 -182
  1401. package/dist/templates/pactile/scripts/get_context.py +0 -19
  1402. package/dist/templates/pactile/scripts/get_developer.py +0 -26
  1403. package/dist/templates/pactile/scripts/hooks/linear_sync.py +0 -243
  1404. package/dist/templates/pactile/scripts/init_developer.py +0 -51
  1405. package/dist/templates/pactile/scripts/injection_budget_probe.py +0 -69
  1406. package/dist/templates/pactile/scripts/pool.py +0 -237
  1407. package/dist/templates/pactile/scripts/rank_retrieval_candidates.py +0 -98
  1408. package/dist/templates/pactile/scripts/route_codebase_retrieval.py +0 -72
  1409. package/dist/templates/pactile/scripts/run_smart_search.py +0 -12
  1410. package/dist/templates/pactile/scripts/score_evidence.py +0 -131
  1411. package/dist/templates/pactile/scripts/search_artifacts.py +0 -13
  1412. package/dist/templates/pactile/scripts/search_memory.py +0 -12
  1413. package/dist/templates/pactile/scripts/spec_health_outcomes.py +0 -160
  1414. package/dist/templates/pactile/scripts/task.py +0 -1118
  1415. package/dist/templates/pactile/scripts/verify_evidence_probe.py +0 -138
  1416. package/dist/templates/shared-hooks/event-bridge.py +0 -121
  1417. package/dist/templates/shared-hooks/index.d.ts +0 -50
  1418. package/dist/templates/shared-hooks/index.d.ts.map +0 -1
  1419. package/dist/templates/shared-hooks/index.js +0 -96
  1420. package/dist/templates/shared-hooks/index.js.map +0 -1
  1421. package/dist/templates/shared-hooks/inject-retrieval-plan.py +0 -217
  1422. package/dist/templates/shared-hooks/inject-shell-session-context.py +0 -183
  1423. package/dist/templates/shared-hooks/inject-subagent-context.py +0 -267
  1424. package/dist/templates/shared-hooks/inject-workflow-state.py +0 -106
  1425. package/dist/templates/shared-hooks/rename-session-for-task.py +0 -231
  1426. package/dist/templates/shared-hooks/research-end-retrieval-pack.py +0 -345
  1427. package/dist/templates/shared-hooks/session-start.py +0 -355
  1428. package/dist/templates/shared-hooks/spec-write-audit.py +0 -173
  1429. package/dist/utils/cursor-retrieval-env.d.ts +0 -17
  1430. package/dist/utils/cursor-retrieval-env.d.ts.map +0 -1
  1431. package/dist/utils/cursor-retrieval-env.js +0 -19
  1432. package/dist/utils/cursor-retrieval-env.js.map +0 -1
  1433. package/dist/utils/mirror-check.d.ts +0 -22
  1434. package/dist/utils/mirror-check.d.ts.map +0 -1
  1435. package/dist/utils/mirror-check.js +0 -90
  1436. package/dist/utils/mirror-check.js.map +0 -1
  1437. package/dist/utils/proxy.d.ts +0 -25
  1438. package/dist/utils/proxy.d.ts.map +0 -1
  1439. package/dist/utils/proxy.js +0 -60
  1440. package/dist/utils/proxy.js.map +0 -1
  1441. package/dist/utils/validate-rules.d.ts +0 -21
  1442. package/dist/utils/validate-rules.d.ts.map +0 -1
  1443. package/dist/utils/validate-rules.js +0 -88
  1444. package/dist/utils/validate-rules.js.map +0 -1
  1445. package/scripts/postinstall.js +0 -6
@@ -1,393 +1,395 @@
1
- ---
2
- name: smart-search-cli
3
- description: CLI-first web research and source retrieval through the local smart-search command. Use when Codex needs current web search, source-backed fact checking, URL fetching, site mapping, official/API/documentation search, or reproducible search evidence via Skill + CLI instead of MCP tools.
4
- ---
5
-
6
- # Smart Search CLI
7
-
8
- Use the local `smart-search` command as the default execution layer for web research. The skill decides routing; the CLI performs the work; JSON or saved files provide evidence.
9
-
10
- ## Default workflow
11
-
12
- 1. Run `smart-search doctor --format json` when configuration or availability is uncertain.
13
- 2. If `doctor` reports missing configuration, use `smart-search setup` or `smart-search config set KEY VALUE` when the user provides keys. Do not ask users to edit global environment variables by default.
14
- 3. If OpenAI-compatible `search` hangs or times out after `doctor` succeeds, run `smart-search diagnose openai-compatible --format markdown` and use its summary/recommendation. This one command tests quick chat plus real search-shape `stream=false` and `stream=true`.
15
- 4. If `doctor` returns `ok: true`, use only `smart-search` CLI subcommands for web research. Do not call Codex native web search in the same task.
16
- 5. For every research question, run a bilingual `smart-search search` pair: one Chinese-source query and one English-source query. Save both JSON outputs.
17
- 6. Use `smart-search search` as the first hop for realtime, broad exploration, community signals, multi-source summaries, and routing metadata. The default broad pass is bilingual via Tavily / Firecrawl when configured.
18
- 7. Use `smart-search context7-library` / `context7-docs` first for library, SDK, API, framework, or documentation intent.
19
- 8. Use `smart-search exa-search` for official domains, papers, product pages, trusted sites, and low-noise discovery. Do not treat Exa as the universal second hop for every high-risk or verification task.
20
- 9. Use `smart-search search --extra-sources N` for Tavily/Firecrawl horizontal candidates, and `smart-search fetch` for page text that can support final claims.
21
- 10. Use `smart-search exa-similar` when the user gives a representative URL and wants related pages or neighboring sources.
22
- 11. Use `smart-search fetch` when the user gives a URL or a claim depends on page content.
23
- 12. Use `smart-search map` when a documentation site or domain structure matters.
24
- 13. To change the main-search model, use `smart-search config set OPENAI_COMPATIBLE_MODEL ...` (or `XAI_MODEL ...` for the xAI route).
25
- 14. For current-news, policy, finance, health, or other high-risk facts, do not answer from broad `search.content` alone. Use the bilingual search pair plus intent-specific sources: Context7 for docs/API, Exa for official/trusted domains or papers, then `fetch` key pages and summarize only what fetched text supports.
26
- 15. Use `smart-search research "question" --format json` when the user wants the CLI to run live Deep Research end to end instead of only planning. It executes plan -> discover -> fetch/read -> gap check -> evidence-only synthesis.
27
- 16. Preserve command lines and source URLs in your answer. Prefer citing fetched pages or `primary_sources`; treat `extra_sources` as follow-up candidates, not verified evidence for generated claims.
28
-
29
- ## Deep Research Mode
30
-
31
- Use Deep Research Mode when the user asks for `深度搜索`, `深度调研`, `深入搜索`, `deep search`, `deep research`, multi-source verification, cross-checking, serious review, or selection/comparison research. This is a capability-based orchestration workflow. The live executor route calls `smart-search research "question" --format json` and lets the CLI execute plan -> discover -> fetch/read -> gap check -> evidence-only synthesis. `smart-search research` builds the `research_plan` internally before discovery; there is no separate offline planner command. This does not change default `smart-search search`, and it does not depend on an MCP session.
32
-
33
- Do not select a fixed topic recipe. Market, product, technical docs, news, policy, claim-checking, and URL-first prompts are examples of user language, not schema modes. Decide from intent dimensions and capability needs.
34
-
35
- When `smart-search research` runs, it builds an internal `research_plan` as its planning artifact before discovery. The plan uses this shape:
36
-
37
- ```json
38
- {
39
- "mode": "deep_research",
40
- "query_mode": "research",
41
- "question": "user question",
42
- "trigger_source": "explicit_cli",
43
- "difficulty": "standard|high",
44
- "intent_signals": {
45
- "recency_requirement": "none|recent|current",
46
- "docs_api_intent": false,
47
- "locale_domain_scope": "global|china|known_domains|mixed",
48
- "known_url": false,
49
- "source_authority_need": "normal|high",
50
- "claim_risk": "low|medium|high",
51
- "cross_validation_need": "normal|high",
52
- "breadth_depth_budget": "quick|standard|deep"
53
- },
54
- "decomposition": [
55
- {
56
- "id": "sq1",
57
- "question": "subquestion",
58
- "reason": "why this subquestion is needed",
59
- "required_capabilities": ["broad_discovery"]
60
- }
61
- ],
62
- "capability_plan": [
63
- {
64
- "capability": "broad_discovery",
65
- "tools": ["search"],
66
- "reason": "Find the initial answer shape and candidate sources."
67
- }
68
- ],
69
- "preflight": {
70
- "tool": "doctor",
71
- "command": "smart-search doctor --format json",
72
- "when": "configuration or availability is uncertain",
73
- "executed_during_planning": false
74
- },
75
- "evidence_policy": "fetch_before_claim",
76
- "steps": [
77
- {
78
- "id": "s1",
79
- "subquestion_id": "sq1",
80
- "tool": "search",
81
- "purpose": "broad discovery",
82
- "command": "smart-search search \"query\" --validation balanced --extra-sources 1 --format json --output <resolved_evidence_dir>\\YYYYMMDD-HHMM-topic\\01-search.json",
83
- "output_path": "<resolved_evidence_dir>\\YYYYMMDD-HHMM-topic\\01-search.json"
84
- }
85
- ],
86
- "gap_check": {
87
- "required": true,
88
- "rule": "fetch missing evidence for key claims or downgrade them to unverified candidates"
89
- },
90
- "final_answer_policy": "cite fetched evidence, list unverified candidates, and include key commands",
91
- "usage_boundary": {
92
- "search": "smart-search search runs live fast/broad search immediately.",
93
- "execution": "smart-search research executes the listed steps with existing CLI building blocks, then performs gap_check."
94
- }
95
- }
96
- ```
97
-
98
- Allowed `steps[].tool` values are `search`, `exa-search`, `exa-similar`, `context7-library`, `context7-docs`, `fetch`, and `map`. Each step must include `id`, `subquestion_id`, `purpose`, `command`, and `output_path`. `doctor` is preflight and must not appear in `steps[]`. Simple plans may have one subquestion; complex plans should use 2-6 subquestions unless the user explicitly asks for exhaustive coverage.
99
-
100
- Capability boundaries:
101
-
102
- - `search`: broad bilingual discovery and synthesis through `main_search`; inspect `routing_decision`, `provider_attempts`, `fallback_used`, and `source_warning`. Do not treat broad answers as proof for high-risk claims.
103
- - `context7-library` / `context7-docs`: library, SDK, API, framework, and documentation intent. Prefer Context7 before Exa for docs/API questions.
104
- - `exa-search`: low-noise discovery for official domains, papers, product pages, known domains, and trusted pages. Use it when that boundary fits; it is not the default second hop for every verification task.
105
- - `exa-similar`: adjacent-source discovery when a known reliable URL is available.
106
- - `search --extra-sources N`: Tavily/Firecrawl horizontal candidate collection for breadth. Treat those candidates as discovery until fetched.
107
- - `fetch`: page-content evidence. Use it before claim-level conclusions.
108
- - `map`: site structure exploration before many fetches from one site; not claim evidence by itself.
109
-
110
- Default Deep Research orchestration:
111
-
112
- 1. Run `smart-search doctor --format json` as preflight when configuration is uncertain.
113
- 2. `smart-search research` builds an internal `research_plan` with `intent_signals`, `decomposition`, and `capability_plan`; do not choose fixed topic recipe ids.
114
- 3. Execute planned bilingual `search --validation balanced --extra-sources 1..3` steps for Chinese-source and English-source broad discovery, then read routing metadata.
115
- 4. Execute planned `exa-search`, `exa-similar`, `context7-library`, `context7-docs`, or `map` only when their capability boundary matches the intent.
116
- 5. Use `fetch` on key URLs before making claim-level statements.
117
- 6. Run `gap_check`: if an important claim lacks fetched evidence, fetch another source or mark the claim/source as unverified.
118
-
119
- Default evidence policy is `fetch_before_claim`: key claims in the final answer must be supported by fetched page text. Treat `primary_sources` and `extra_sources` as discovery candidates until the relevant URL has been fetched. The final answer should include fetched evidence, unverified candidate sources, and key commands used.
120
-
121
- Live Deep Research executor:
122
-
123
- - `smart-search research QUERY [--budget quick|standard|deep] [--locale-scope cn|en|both] [--evidence-dir PATH] [--fallback auto|off] [--dry-run] [--progress] [--timeout SECONDS] [--format json|markdown|content] [--output PATH]` runs the staged workflow directly. Use `--dry-run` to preview plan/routing without live providers; `--progress` for stderr stage logs; `--locale-scope cn` or `en` to skip bilingual discovery when cost matters. Docs/API intent is precision-first (weak language/product tokens alone do not trigger). If docs discovery yields no HTTP evidence, the executor fail-opens to `web_discovery` (`stage_results` may include `fail_open_web_after_docs`). Default `--timeout` is 600 seconds for the full research run.
124
- - Default `--fallback auto` permits same-capability fallback inside selected routes. Use `--fallback off` only for debugging or deterministic provider checks.
125
- - Research output includes `final_answer`, `citations`, `evidence_items`, `gap_check`, `provider_attempts`, `fallback_used`, `degraded`, `route_policy_version`, `output_schema_version`, and `evidence_dir`.
126
- - Contract fields for agents: always read `output_schema_version` (currently `1`), `route_policy_version`, `minimum_profile_ok`, and `cache_hit` on attempts/stages. Treat `cache_hit: true` as possibly stale only if the local config model/endpoint changed without process restart — keys include model identity, but process-local TTL still applies. Prefer `doctor --format json` when `minimum_profile_ok` is false (fail-closed).
127
- - The synthesis is evidence-only. It may cite fetched/read evidence, but it must not cite unfetched discovery candidates as proof.
128
- - If providers are exhausted or evidence cannot close, return the degraded gaps rather than inventing missing claims.
129
-
130
- Research provider advantage routing:
131
-
132
- - Context7: library/API/framework docs resolution and docs retrieval.
133
- - Exa: official domains, papers, product/company pages, date/domain-filtered low-noise discovery, and adjacent-source discovery.
134
- - Tavily: broad bilingual source discovery and site map.
135
- - Jina: known public URL, PDF, and arXiv clean extraction; ReaderLM-v2 requires `JINA_API_KEY`.
136
- - Firecrawl: robust fetch fallback, JS-heavy/dynamic pages, browser-like extraction, OCR/PDF/structured extraction.
137
-
138
- Safe research overrides are `SMART_SEARCH_RESEARCH_PREFERRED_PROVIDERS`, `SMART_SEARCH_RESEARCH_DISABLED_PROVIDERS`, and `SMART_SEARCH_CACHE` (`on` by default; `off` disables the in-process provider TTL cache). Preferred/disabled provider CSV values may reorder or disable providers only within capabilities the provider already supports; they must not move a provider across capability boundaries.
139
-
140
- Deep Research test coverage for workflow maintenance should verify trigger phrases, normal search requests that should not trigger Deep Research, required `research_plan` fields, allowed tool whitelist, bilingual search steps, `fetch_before_claim`, evidence output paths, capability boundaries, `intent_signals`, `capability_plan`, `gap_check`, simple current prompts such as `深度搜索一下最近的比特币行情`, docs/API prompts, claim-verification prompts, user-provided URL fetch-first flows, missing-provider failure guidance, and the rule that fixed topic recipe ids are not required schema. When real keys are available and the user expects live checks, a small live pass can run `doctor`, two broad `search` commands (Chinese and English), one `exa-search`, and one `fetch`.
141
-
142
- Standard user-facing Deep Research tests:
143
-
144
- ```powershell
145
- smart-search research "深度搜索一下最近的比特币行情" --format json
146
- smart-search research "OpenAI Responses API web_search 和 Chat Completions 联网搜索怎么选" --budget deep --format json
147
- smart-search research "帮我核验这个说法是真是假:某某工具已经完全替代 Tavily 做 AI 搜索了" --format json
148
- smart-search research "https://example.com/source" --format json
149
- ```
150
-
151
- ## Provider Routing
152
-
153
- - `search` builds `main_search` from `XAI_API_KEY` (xAI Responses with server-side `web_search`/`x_search` tools) and/or `OPENAI_COMPATIBLE_API_URL` + `OPENAI_COMPATIBLE_API_KEY` (Chat Completions). One is enough; when both are configured, `SMART_SEARCH_MAIN_SEARCH_ROUTE` (ordered CSV of `xai-responses,openai-compatible`) sets priority, and a single entry disables cross-route fallback.
154
- - `search` is the default first hop for broad exploration, current synthesis, and routing metadata.
155
- - OpenAI-compatible relays/gateways use Chat Completions `/chat/completions` through `OPENAI_COMPATIBLE_*`.
156
- - `OPENAI_COMPATIBLE_STREAM=true` or `search --stream` sets `stream=true` only for OpenAI-compatible `search` and provider-side `fetch`; it is a relay compatibility switch and does not affect URL description or source ranking.
157
- - Legacy `SMART_SEARCH_API_URL`, `SMART_SEARCH_API_KEY`, `SMART_SEARCH_API_MODE`, and `SMART_SEARCH_MODEL` are unsupported config keys.
158
- - The standard minimum profile requires one configured provider in each of `main_search`, `docs_search`, and fetch capability. Missing required capabilities should be treated as a hard configuration failure.
159
- - Jina Reader is `web_fetch` only, not a general search provider. `JINA_API_KEY` is required before Jina satisfies the standard minimum profile; anonymous `r.jina.ai` is explicit/experimental fetch behavior.
160
- - `search` exposes `--validation fast|balanced|strict`, `--fallback auto|off`, and `--providers auto|CSV`. Default validation is `balanced`; fallback only happens within the same capability.
161
- - `search --validation strict` uses the same bilingual web_search policy as balanced mode when source discovery providers are configured. Strict queries without primary, docs, fetch, or explicit source evidence can still fail with `evidence_error`; use `--extra-sources N`, source-first commands such as `exa-search`, or `fetch` when citable evidence is required.
162
- - `search` runs bilingual web_search source discovery through Tavily / Firecrawl when configured.
163
- - Docs/API/library routing stays explicit keyword intent-based and should prefer Context7 first. Exa is for official-domain or low-noise supplemental discovery, not the default docs answer route.
164
- - `search` calls Tavily and/or Firecrawl for `extra_sources` only when `--extra-sources N` is greater than 0.
165
- - With both Tavily and Firecrawl configured, `search --extra-sources N` splits extra sources between them, with Tavily receiving about 60% and Firecrawl the rest.
166
- - Search JSON separates `primary_sources`, `extra_sources`, and backward-compatible merged `sources`.
167
- - `primary_sources` are extracted from the primary model answer. `extra_sources` are parallel Tavily / Firecrawl candidates and are not automatically used to verify `content`.
168
- - `fetch` tries Tavily first, then Jina with `JINA_API_KEY`, then Firecrawl.
169
- - `map` currently uses Tavily only.
170
- - `exa-search` and `exa-similar` use Exa only.
171
- - `context7-library` and `context7-docs` use Context7 only.
172
- - `TAVILY_API_URL` only affects Tavily REST calls.
173
- - `doctor` tests configured main-search providers, Exa, Tavily, Jina, and Context7 connectivity. Firecrawl status currently means the key is configured, not that a live Firecrawl request succeeded.
174
-
175
- ## Evidence Files
176
-
177
- For multi-source research, use `smart-search config path --format json` and save evidence under `resolved_evidence_dir` with a descriptive timestamped filename. Stdout should still contain the full JSON result unless markdown or content output was explicitly chosen for human reading.
178
-
179
- For claim-level evidence, prefer this order:
180
-
181
- 1. Discover candidate URLs with a bilingual source-focused `search` pair, Context7 for docs/API/library topics, or `exa-search` for official/trusted domains and papers.
182
- 2. Fetch the exact pages that matter.
183
- 3. Use broad `search` only as synthesis or discovery, and mark claims as unverified when only `extra_sources` are available.
184
-
185
- Prefer shorter, source-directed commands:
186
-
187
- ```powershell
188
- $Config = smart-search config path --format json | ConvertFrom-Json
189
- $EvidenceDir = Join-Path $Config.resolved_evidence_dir "YYYYMMDD-HHMM-topic"
190
- New-Item -ItemType Directory -Force -Path $EvidenceDir | Out-Null
191
- smart-search exa-search "Reuters Iran Hormuz latest" --num-results 5 --include-highlights --format json --output (Join-Path $EvidenceDir "01-iran-hormuz-exa.json")
192
- smart-search exa-search "OpenAI Responses API documentation" --include-domains platform.openai.com developers.openai.com --num-results 5 --include-text --format json
193
- smart-search exa-similar "https://example.com/source" --num-results 5 --format json
194
- smart-search fetch "https://example.com/source" --format json --output (Join-Path $EvidenceDir "02-source-fetch.json")
195
- smart-search search "Iran Hormuz latest military talks" --extra-sources 3 --timeout 90 --format json --output (Join-Path $EvidenceDir "03-iran-hormuz-search.json")
196
- ```
197
-
198
- ## Workflows
199
-
200
- Use these recipes when the user asks for evidence, citations, repeated searches, or an archiveable research trail. Keep `--output` paths under one timestamped evidence directory so later answers can cite saved files and rerun commands.
201
-
202
- ### Lightweight Evidence Gathering
203
-
204
- Use this when the user needs a source-backed answer but not full Deep Research.
205
-
206
- 1. Create an evidence directory under the system-aware Smart Search evidence root reported by `smart-search config path --format json`.
207
- 2. Discover candidate sources by intent:
208
- - Always run the bilingual broad pair:
209
- - `smart-search search "中文搜索,优先检索中文来源,并回答原问题:query" --validation balanced --extra-sources 1 --format json --output "$EvidenceDir\01-search-zh.json"`
210
- - `smart-search search "Search English-language sources and answer the original question: query" --validation balanced --extra-sources 1 --format json --output "$EvidenceDir\02-search-en.json"`
211
- - Docs/API/library/framework intent: `smart-search context7-library "library" "topic" --format json --output "$EvidenceDir\01-context7-library.json"`
212
- - Official domains, papers, product pages, or trusted sites: `smart-search exa-search "query" --num-results 5 --include-text --include-highlights --format json --output "$EvidenceDir\01-exa.json"`
213
- 3. Fetch the one or two URLs that support the answer: `smart-search fetch "https://example.com/source" --format markdown --output "$EvidenceDir\02-fetch-source.md"`.
214
- 4. Write the final answer only from fetched page text or clearly label unfetched items as candidates.
215
-
216
- See `examples/evidence-gathering.md` for a complete command sequence.
217
-
218
- ### Deep Research With Citations
219
-
220
- Use this when the user asks for deep research, cross-checking, serious comparison, or a multi-source investigation.
221
-
222
- 1. Run the live executor: `smart-search research "question" --budget standard --format json --output "$EvidenceDir\research.json"`.
223
- 2. Read `research_plan`, `evidence_items`, `gap_check`, `citations`, and `final_answer`.
224
- 3. If `degraded` is true or `gap_check` lists open gaps, either fetch more sources or report the remaining gaps instead of filling them from memory.
225
-
226
- Keep the detailed Deep Research rules in `## Deep Research Mode`; this workflow is only the quick selection recipe.
227
-
228
- ### Batch Search And Fetch
229
-
230
- Use this when the user gives multiple queries, companies, tools, documents, URLs, or comparison targets.
231
-
232
- 1. Create one evidence directory for the batch.
233
- 2. Run one CLI command per query or URL, using numbered outputs such as `01-search-react.json`, `02-search-vue.json`, or `03-fetch-docs.md`.
234
- 3. Keep each command narrow:
235
- - Use the bilingual `search --extra-sources 1` pair for quick broad discovery.
236
- - Use `context7-library` / `context7-docs` for docs/API/library items.
237
- - Use `exa-search` for official/trusted-domain discovery.
238
- - Use `fetch` for each URL that will support a claim.
239
- 4. After the loop, summarize across saved files. Cite fetched files or fetched URLs for claims; list unfetched discovery results only as candidates.
240
-
241
- See `examples/batch-search.md` for PowerShell loop patterns and output naming.
242
-
243
- ### Evidence Archiving
244
-
245
- Use this when the user wants work that can be inspected, resumed, or audited.
246
-
247
- 1. Save every non-trivial command with `--output`.
248
- 2. Use stable numbered filenames: `01-search.json`, `02-exa-official.json`, `03-fetch-source.md`, `04-summary.json`.
249
- 3. Keep command lines in the final answer or notes.
250
- 4. Prefer JSON for machine-readable discovery and Markdown for fetched page text intended for reading.
251
- 5. Do not treat `primary_sources` or `extra_sources` as claim proof until the relevant URL has been fetched.
252
-
253
- ## Local wrapper contract
254
-
255
- - Expect `smart-search` to resolve from the user's PATH.
256
- - This bundled skill is maintained with the `smartsearch` repository.
257
- - Prefer the CLI's local config file managed by `smart-search setup` / `smart-search config`.
258
- - Environment variables remain supported for CI and advanced users, and override the local config file.
259
- - Do not ask users to set Windows global API-key environment variables by default.
260
- - If keys are changed with `smart-search config set`, rerun the CLI; no Codex restart is needed.
261
- - If PATH is changed, a new terminal or Codex restart may be needed.
262
- - On Windows, the default local config file is `%LOCALAPPDATA%\smart-search\config.json`. Linux/macOS default to `~/.config/smart-search/config.json`.
263
- - In sandboxed runtimes (Codex CLI, containers, CI) where the default config directory is not writable or must be pinned, set `SMART_SEARCH_CONFIG_DIR` to an absolute writable path. The CLI uses it for both config and relative logs and skips default-directory selection.
264
- - The default research evidence root is `evidence` under the active config directory. Set `SMART_SEARCH_EVIDENCE_DIR` only when evidence needs a separate absolute location; `config path` and `doctor` report both the configured and resolved evidence paths.
265
- - Earlier Windows source defaults used `~\.config\smart-search\config.json`, while some installs were already pinned to `%LOCALAPPDATA%\smart-search` through `SMART_SEARCH_CONFIG_DIR`. If the new default file is missing but the old file exists, `doctor` reports `legacy_windows_home` as the active source so upgrades do not silently lose configuration. It also reports the override value and whether it matches the current default.
266
- - Use `smart-search doctor --format json` for agent/script parsing and `smart-search doctor --format markdown` when a human wants a detailed diagnostic report.
267
- - If `smart-search doctor --format json` returns `ok: false`, follow the `error` field's guidance (`smart-search setup` or `smart-search config set KEY VALUE`); do not silently fall back to native web search.
268
- - Use `smart-search diagnose openai-compatible --format markdown` when `doctor` succeeds but OpenAI-compatible `search` appears to hang, returns a timeout, or differs between `--stream` and `--no-stream`. It is the beginner-facing one-command report for upstream/relay compatibility.
269
- - Interactive `smart-search setup` is a language-selecting grouped wizard with arrow-key / Space / Enter provider selection. It guides users through required `main_search`, `docs_search`, and fetch capability.
270
- - The setup wizard prints beginner filling examples for official-service and relay/pooled-endpoint minimum profiles. Keep that guidance on stderr so stdout remains parseable JSON/Markdown/content output.
271
- - Use `smart-search setup --lang en` for an English wizard and `smart-search setup --advanced` only when low-level config keys must be shown one by one.
272
- - Use `smart-search setup --non-interactive --jina-key "key"` to let Jina satisfy `web_fetch`; `JINA_RESPOND_WITH=readerlm-v2` also requires `JINA_API_KEY`.
273
- - Use `smart-search setup --non-interactive --openai-compatible-stream true` only when an OpenAI-compatible relay benefits from SSE streaming for long requests. Default is true.
274
- - Use `TAVILY_API_URL=https://<host>/api/tavily` for Tavily Hikari / pooled endpoints. Root host and `/mcp` inputs are normalized by setup; `/mcp` itself is not the REST base Smart Search should call.
275
- - `TAVILY_TIMEOUT_SECONDS` controls the Tavily `doctor` connectivity timeout and defaults to `30`. Raise it for slower pooled/community Tavily endpoints before judging the provider unhealthy.
276
- - Use `FIRECRAWL_API_URL` only for a Firecrawl-compatible REST base. Official default is `https://api.firecrawl.dev/v2`.
277
-
278
- ## Command Patterns
279
-
280
- ```powershell
281
- smart-search search "query" --extra-sources 5 --timeout 90 --format json --output result.json
282
- smart-search search "query" --stream --format json
283
- smart-search diagnose openai-compatible --format markdown
284
- smart-search search "query" --platform "Reuters" --model "model-id" --extra-sources 3 --timeout 90 --format json
285
- smart-search search "nba战报" --format content
286
- smart-search search "query" --validation strict --fallback auto --providers auto --format json
287
- smart-search exa-search "query" --num-results 5 --search-type neural --include-text --include-highlights --include-domains docs.example.com developer.mozilla.org --format json
288
- smart-search exa-similar "https://example.com/article" --num-results 5 --format json
289
- smart-search context7-library "react" "hooks" --format json
290
- smart-search context7-docs "/facebook/react" "useEffect cleanup" --format json
291
- smart-search fetch "https://example.com" --format markdown --output page.md
292
- smart-search map "https://docs.example.com" --instructions "Find API reference pages" --max-depth 1 --max-breadth 20 --limit 50 --format json
293
- smart-search research "OpenAI Responses API web_search vs Chat Completions search" --budget deep --fallback auto --format json
294
- smart-search rs "https://example.com/source" --fallback off --format markdown
295
- smart-search setup
296
- smart-search setup --lang en
297
- smart-search setup --advanced
298
- smart-search setup --non-interactive --openai-compatible-stream true
299
- smart-search setup --non-interactive --tavily-api-url "https://api.tavily.com" --tavily-key "key"
300
- smart-search --version
301
- smart-search config path --format json
302
- smart-search config list --format json
303
- smart-search config list --format markdown
304
- smart-search config set OPENAI_COMPATIBLE_API_URL "https://api.openai.com/v1" --format json
305
- smart-search config set OPENAI_COMPATIBLE_API_KEY "key" --format json
306
- smart-search config set OPENAI_COMPATIBLE_MODEL "model-id" --format json
307
- smart-search config set OPENAI_COMPATIBLE_STREAM "true" --format json
308
- smart-search config set XAI_API_KEY "key" --format json
309
- smart-search config set XAI_MODEL "grok-4.5" --format json
310
- smart-search config set SMART_SEARCH_MAIN_SEARCH_ROUTE "xai-responses,openai-compatible" --format json
311
- smart-search config set EXA_API_KEY "key" --format json
312
- smart-search config set CONTEXT7_API_KEY "key" --format json
313
- smart-search config set TAVILY_API_URL "https://api.tavily.com" --format json
314
- smart-search config set TAVILY_TIMEOUT_SECONDS "45" --format json
315
- smart-search config set FIRECRAWL_API_URL "https://api.firecrawl.dev/v2" --format json
316
- smart-search doctor --format json
317
- smart-search doctor --format markdown
318
- smart-search diagnose openai-compatible --format markdown
319
- ```
320
-
321
- Short aliases are supported for interactive use:
322
-
323
- ```powershell
324
- smart-search --v
325
- smart-search s "query" --format json
326
- smart-search s "nba战报" --format content
327
- smart-search rs "query" --format json
328
- smart-search f "https://example.com" --format markdown
329
- smart-search exa "OpenAI Responses API documentation" --format json
330
- smart-search z "today China AI news" --format json
331
- smart-search c7 "react" "hooks" --format json
332
- smart-search c7docs "/facebook/react" "useEffect cleanup" --format json
333
- smart-search cfg ls --format json
334
- smart-search d --format markdown
335
- ```
336
-
337
- ## Timeout Retry Policy
338
-
339
- When `smart-search search` returns `ok: false` with `error_type: "network_error"` and an error message containing `timed out`, treat it as a retryable CLI-level timeout, not as a terminal research failure.
340
-
341
- ### Error contract (U1/U2)
342
-
343
- Failed JSON payloads expose a stable triple for Agent/JSON consumers:
344
-
345
- | Field | Meaning |
346
- | --- | --- |
347
- | `error_type` | Category enum string: `config_error`, `parameter_error`, `network_error`, `evidence_error`, `auth_error`, `rate_limited`, `timeout`, `parse_error`, `quality_error`, `runtime_error` |
348
- | `error_code` | Stable `SCREAMING_SNAKE` code (defaults from `error_type`, e.g. `CONFIG_ERROR`; specific codes such as `MISSING_API_KEY`, `SEARCH_TIMEOUT` when applicable) |
349
- | `error` | Default **English** human message (no locale framework; Chinese remains only in interactive setup prompts via existing `_t`) |
350
-
351
- CLI exit codes stay mapped from `error_type` only: `parameter_error→2`, `config_error→3`, `network_error`/`evidence_error→4`, other→`5`.
352
-
353
- 1. Retry up to 3 total attempts with `--timeout 180`, waiting about 5 seconds between attempts.
354
- 2. Use `--format json` and `--output PATH` for each attempt; after each attempt, inspect the saved JSON and stop on the first `"ok": true`.
355
- 3. Use `--extra-sources 1` during retry attempts to keep Tavily/Firecrawl overhead small.
356
- 4. Always use the CLI's `--timeout` option. Do not wrap `smart-search` in a shell-level `timeout` command because shell termination can prevent the CLI from writing structured failure JSON.
357
- 5. Do not rely on `SMART_SEARCH_RETRY_*` settings for this path; search command timeouts are surfaced by the CLI result contract and should be handled by the agent workflow.
358
- 6. If all attempts time out, fall back to source-first evidence:
359
- - Run `exa-search` with the original query for broad source discovery.
360
- - Run `exa-search --include-domains` when likely official domains are known.
361
- - `fetch` the top 1-2 relevant URLs before making claim-level statements.
362
- - Mark the final answer as `source_mode: "fallback"` or clearly state that the answer was assembled from fetched sources rather than generated by `search`.
363
-
364
- Example retry flow:
365
-
366
- ```powershell
367
- smart-search search "query" --validation balanced --extra-sources 1 --timeout 180 --format json --output result-attempt-1.json
368
- smart-search search "query" --validation balanced --extra-sources 1 --timeout 180 --format json --output result-attempt-2.json
369
- smart-search search "query" --validation balanced --extra-sources 1 --timeout 180 --format json --output result-attempt-3.json
370
- smart-search exa-search "query" --num-results 5 --include-text --format json --output exa.json
371
- smart-search exa-search "query" --include-domains platform.openai.com developers.openai.com --num-results 3 --include-text --format json --output exa-official.json
372
- smart-search fetch "https://example.com/source" --format markdown --output fetch.md
373
- ```
374
-
375
- ## Guardrails
376
-
377
- - Prefer JSON for agent parsing and markdown for fetched page text intended for reading.
378
- - Use `--output` for multi-source work, long pages, or anything the answer may need to cite later.
379
- - Keep `--extra-sources` small (`1` to `3`) unless the user asks for broad coverage. Large values are slower and can add noise.
380
- - Do not cite `extra_sources` as proof for a sentence in `content`; fetch the URL first or cite it only as a candidate source.
381
- - Prefer `exa-search --include-domains` for official documentation when likely domains are known.
382
- - Do not expose API keys. Treat `doctor` output as safe only because it is expected to mask secrets.
383
- - In this CLI-first workflow, native `web_search` is disabled unless the user explicitly configures another approved route.
384
- - If `doctor` or a command fails, report the failure and recovery steps; do not silently fall back to another web-search route.
385
- - If the user explicitly asks to bypass smart-search, state that another approved web-search route must be configured first.
386
- - Do not use legacy MCP tool names in prompts, notes, or generated instructions for this workflow.
387
- - Treat key rotation as a hard safety gate when previous key values were pasted into chat or logs.
388
- - For provider architecture maintenance, verify the distributable contract rather than the current developer machine's wrappers or local config. Keep fallback same-capability only.
389
- - `main_search` is a user choice between xAI Responses (`XAI_*`) and OpenAI-compatible Chat Completions (`OPENAI_COMPATIBLE_*`). Never send xAI server tools (`web_search`, `x_search`) or xAI-only parameters into the OpenAI-compatible route, and never point the xAI route at `/chat/completions`. Do not fabricate additional `main_search` providers or reuse another capability's URL/key as a `main_search` fallback.
390
-
391
- ## Supporting Reference
392
-
393
- Read `references/cli-contract.md` when you need command details, output fields, exit codes, or contract expectations.
1
+ ---
2
+ name: smart-search-cli
3
+ description: CLI-first web research and source retrieval through the local smart-search command. Use when Codex needs current web search, source-backed fact checking, URL fetching, site mapping, official/API/documentation search, or reproducible search evidence via Skill + CLI instead of MCP tools.
4
+ ---
5
+
6
+ # Smart Search CLI
7
+
8
+ This workflow requires the separate Smart Search Middleware CLI to be installed and configured on the user's PATH. Pactile does not bundle or install `smart-search`; its prerequisites are managed independently from Pactile's Node.js runtime.
9
+
10
+ Use the local `smart-search` command as the default execution layer for web research. The skill decides routing; the CLI performs the work; JSON or saved files provide evidence.
11
+
12
+ ## Default workflow
13
+
14
+ 1. Run `smart-search doctor --format json` when configuration or availability is uncertain.
15
+ 2. If `doctor` reports missing configuration, use `smart-search setup` or `smart-search config set KEY VALUE` when the user provides keys. Do not ask users to edit global environment variables by default.
16
+ 3. If OpenAI-compatible `search` hangs or times out after `doctor` succeeds, run `smart-search diagnose openai-compatible --format markdown` and use its summary/recommendation. This one command tests quick chat plus real search-shape `stream=false` and `stream=true`.
17
+ 4. If `doctor` returns `ok: true`, use only `smart-search` CLI subcommands for web research. Do not call Codex native web search in the same task.
18
+ 5. For every research question, run a bilingual `smart-search search` pair: one Chinese-source query and one English-source query. Save both JSON outputs.
19
+ 6. Use `smart-search search` as the first hop for realtime, broad exploration, community signals, multi-source summaries, and routing metadata. The default broad pass is bilingual via Tavily / Firecrawl when configured.
20
+ 7. Use `smart-search context7-library` / `context7-docs` first for library, SDK, API, framework, or documentation intent.
21
+ 8. Use `smart-search exa-search` for official domains, papers, product pages, trusted sites, and low-noise discovery. Do not treat Exa as the universal second hop for every high-risk or verification task.
22
+ 9. Use `smart-search search --extra-sources N` for Tavily/Firecrawl horizontal candidates, and `smart-search fetch` for page text that can support final claims.
23
+ 10. Use `smart-search exa-similar` when the user gives a representative URL and wants related pages or neighboring sources.
24
+ 11. Use `smart-search fetch` when the user gives a URL or a claim depends on page content.
25
+ 12. Use `smart-search map` when a documentation site or domain structure matters.
26
+ 13. To change the main-search model, use `smart-search config set OPENAI_COMPATIBLE_MODEL ...` (or `XAI_MODEL ...` for the xAI route).
27
+ 14. For current-news, policy, finance, health, or other high-risk facts, do not answer from broad `search.content` alone. Use the bilingual search pair plus intent-specific sources: Context7 for docs/API, Exa for official/trusted domains or papers, then `fetch` key pages and summarize only what fetched text supports.
28
+ 15. Use `smart-search research "question" --format json` when the user wants the CLI to run live Deep Research end to end instead of only planning. It executes plan -> discover -> fetch/read -> gap check -> evidence-only synthesis.
29
+ 16. Preserve command lines and source URLs in your answer. Prefer citing fetched pages or `primary_sources`; treat `extra_sources` as follow-up candidates, not verified evidence for generated claims.
30
+
31
+ ## Deep Research Mode
32
+
33
+ Use Deep Research Mode when the user asks for `深度搜索`, `深度调研`, `深入搜索`, `deep search`, `deep research`, multi-source verification, cross-checking, serious review, or selection/comparison research. This is a capability-based orchestration workflow. The live executor route calls `smart-search research "question" --format json` and lets the CLI execute plan -> discover -> fetch/read -> gap check -> evidence-only synthesis. `smart-search research` builds the `research_plan` internally before discovery; there is no separate offline planner command. This does not change default `smart-search search`, and it does not depend on an MCP session.
34
+
35
+ Do not select a fixed topic recipe. Market, product, technical docs, news, policy, claim-checking, and URL-first prompts are examples of user language, not schema modes. Decide from intent dimensions and capability needs.
36
+
37
+ When `smart-search research` runs, it builds an internal `research_plan` as its planning artifact before discovery. The plan uses this shape:
38
+
39
+ ```json
40
+ {
41
+ "mode": "deep_research",
42
+ "query_mode": "research",
43
+ "question": "user question",
44
+ "trigger_source": "explicit_cli",
45
+ "difficulty": "standard|high",
46
+ "intent_signals": {
47
+ "recency_requirement": "none|recent|current",
48
+ "docs_api_intent": false,
49
+ "locale_domain_scope": "global|china|known_domains|mixed",
50
+ "known_url": false,
51
+ "source_authority_need": "normal|high",
52
+ "claim_risk": "low|medium|high",
53
+ "cross_validation_need": "normal|high",
54
+ "breadth_depth_budget": "quick|standard|deep"
55
+ },
56
+ "decomposition": [
57
+ {
58
+ "id": "sq1",
59
+ "question": "subquestion",
60
+ "reason": "why this subquestion is needed",
61
+ "required_capabilities": ["broad_discovery"]
62
+ }
63
+ ],
64
+ "capability_plan": [
65
+ {
66
+ "capability": "broad_discovery",
67
+ "tools": ["search"],
68
+ "reason": "Find the initial answer shape and candidate sources."
69
+ }
70
+ ],
71
+ "preflight": {
72
+ "tool": "doctor",
73
+ "command": "smart-search doctor --format json",
74
+ "when": "configuration or availability is uncertain",
75
+ "executed_during_planning": false
76
+ },
77
+ "evidence_policy": "fetch_before_claim",
78
+ "steps": [
79
+ {
80
+ "id": "s1",
81
+ "subquestion_id": "sq1",
82
+ "tool": "search",
83
+ "purpose": "broad discovery",
84
+ "command": "smart-search search \"query\" --validation balanced --extra-sources 1 --format json --output <resolved_evidence_dir>\\YYYYMMDD-HHMM-topic\\01-search.json",
85
+ "output_path": "<resolved_evidence_dir>\\YYYYMMDD-HHMM-topic\\01-search.json"
86
+ }
87
+ ],
88
+ "gap_check": {
89
+ "required": true,
90
+ "rule": "fetch missing evidence for key claims or downgrade them to unverified candidates"
91
+ },
92
+ "final_answer_policy": "cite fetched evidence, list unverified candidates, and include key commands",
93
+ "usage_boundary": {
94
+ "search": "smart-search search runs live fast/broad search immediately.",
95
+ "execution": "smart-search research executes the listed steps with existing CLI building blocks, then performs gap_check."
96
+ }
97
+ }
98
+ ```
99
+
100
+ Allowed `steps[].tool` values are `search`, `exa-search`, `exa-similar`, `context7-library`, `context7-docs`, `fetch`, and `map`. Each step must include `id`, `subquestion_id`, `purpose`, `command`, and `output_path`. `doctor` is preflight and must not appear in `steps[]`. Simple plans may have one subquestion; complex plans should use 2-6 subquestions unless the user explicitly asks for exhaustive coverage.
101
+
102
+ Capability boundaries:
103
+
104
+ - `search`: broad bilingual discovery and synthesis through `main_search`; inspect `routing_decision`, `provider_attempts`, `fallback_used`, and `source_warning`. Do not treat broad answers as proof for high-risk claims.
105
+ - `context7-library` / `context7-docs`: library, SDK, API, framework, and documentation intent. Prefer Context7 before Exa for docs/API questions.
106
+ - `exa-search`: low-noise discovery for official domains, papers, product pages, known domains, and trusted pages. Use it when that boundary fits; it is not the default second hop for every verification task.
107
+ - `exa-similar`: adjacent-source discovery when a known reliable URL is available.
108
+ - `search --extra-sources N`: Tavily/Firecrawl horizontal candidate collection for breadth. Treat those candidates as discovery until fetched.
109
+ - `fetch`: page-content evidence. Use it before claim-level conclusions.
110
+ - `map`: site structure exploration before many fetches from one site; not claim evidence by itself.
111
+
112
+ Default Deep Research orchestration:
113
+
114
+ 1. Run `smart-search doctor --format json` as preflight when configuration is uncertain.
115
+ 2. `smart-search research` builds an internal `research_plan` with `intent_signals`, `decomposition`, and `capability_plan`; do not choose fixed topic recipe ids.
116
+ 3. Execute planned bilingual `search --validation balanced --extra-sources 1..3` steps for Chinese-source and English-source broad discovery, then read routing metadata.
117
+ 4. Execute planned `exa-search`, `exa-similar`, `context7-library`, `context7-docs`, or `map` only when their capability boundary matches the intent.
118
+ 5. Use `fetch` on key URLs before making claim-level statements.
119
+ 6. Run `gap_check`: if an important claim lacks fetched evidence, fetch another source or mark the claim/source as unverified.
120
+
121
+ Default evidence policy is `fetch_before_claim`: key claims in the final answer must be supported by fetched page text. Treat `primary_sources` and `extra_sources` as discovery candidates until the relevant URL has been fetched. The final answer should include fetched evidence, unverified candidate sources, and key commands used.
122
+
123
+ Live Deep Research executor:
124
+
125
+ - `smart-search research QUERY [--budget quick|standard|deep] [--locale-scope cn|en|both] [--evidence-dir PATH] [--fallback auto|off] [--dry-run] [--progress] [--timeout SECONDS] [--format json|markdown|content] [--output PATH]` runs the staged workflow directly. Use `--dry-run` to preview plan/routing without live providers; `--progress` for stderr stage logs; `--locale-scope cn` or `en` to skip bilingual discovery when cost matters. Docs/API intent is precision-first (weak language/product tokens alone do not trigger). If docs discovery yields no HTTP evidence, the executor fail-opens to `web_discovery` (`stage_results` may include `fail_open_web_after_docs`). Default `--timeout` is 600 seconds for the full research run.
126
+ - Default `--fallback auto` permits same-capability fallback inside selected routes. Use `--fallback off` only for debugging or deterministic provider checks.
127
+ - Research output includes `final_answer`, `citations`, `evidence_items`, `gap_check`, `provider_attempts`, `fallback_used`, `degraded`, `route_policy_version`, `output_schema_version`, and `evidence_dir`.
128
+ - Contract fields for agents: always read `output_schema_version` (currently `1`), `route_policy_version`, `minimum_profile_ok`, and `cache_hit` on attempts/stages. Treat `cache_hit: true` as possibly stale only if the local config model/endpoint changed without process restart — keys include model identity, but process-local TTL still applies. Prefer `doctor --format json` when `minimum_profile_ok` is false (fail-closed).
129
+ - The synthesis is evidence-only. It may cite fetched/read evidence, but it must not cite unfetched discovery candidates as proof.
130
+ - If providers are exhausted or evidence cannot close, return the degraded gaps rather than inventing missing claims.
131
+
132
+ Research provider advantage routing:
133
+
134
+ - Context7: library/API/framework docs resolution and docs retrieval.
135
+ - Exa: official domains, papers, product/company pages, date/domain-filtered low-noise discovery, and adjacent-source discovery.
136
+ - Tavily: broad bilingual source discovery and site map.
137
+ - Jina: known public URL, PDF, and arXiv clean extraction; ReaderLM-v2 requires `JINA_API_KEY`.
138
+ - Firecrawl: robust fetch fallback, JS-heavy/dynamic pages, browser-like extraction, OCR/PDF/structured extraction.
139
+
140
+ Safe research overrides are `SMART_SEARCH_RESEARCH_PREFERRED_PROVIDERS`, `SMART_SEARCH_RESEARCH_DISABLED_PROVIDERS`, and `SMART_SEARCH_CACHE` (`on` by default; `off` disables the in-process provider TTL cache). Preferred/disabled provider CSV values may reorder or disable providers only within capabilities the provider already supports; they must not move a provider across capability boundaries.
141
+
142
+ Deep Research test coverage for workflow maintenance should verify trigger phrases, normal search requests that should not trigger Deep Research, required `research_plan` fields, allowed tool whitelist, bilingual search steps, `fetch_before_claim`, evidence output paths, capability boundaries, `intent_signals`, `capability_plan`, `gap_check`, simple current prompts such as `深度搜索一下最近的比特币行情`, docs/API prompts, claim-verification prompts, user-provided URL fetch-first flows, missing-provider failure guidance, and the rule that fixed topic recipe ids are not required schema. When real keys are available and the user expects live checks, a small live pass can run `doctor`, two broad `search` commands (Chinese and English), one `exa-search`, and one `fetch`.
143
+
144
+ Standard user-facing Deep Research tests:
145
+
146
+ ```powershell
147
+ smart-search research "深度搜索一下最近的比特币行情" --format json
148
+ smart-search research "OpenAI Responses API web_search 和 Chat Completions 联网搜索怎么选" --budget deep --format json
149
+ smart-search research "帮我核验这个说法是真是假:某某工具已经完全替代 Tavily 做 AI 搜索了" --format json
150
+ smart-search research "https://example.com/source" --format json
151
+ ```
152
+
153
+ ## Provider Routing
154
+
155
+ - `search` builds `main_search` from `XAI_API_KEY` (xAI Responses with server-side `web_search`/`x_search` tools) and/or `OPENAI_COMPATIBLE_API_URL` + `OPENAI_COMPATIBLE_API_KEY` (Chat Completions). One is enough; when both are configured, `SMART_SEARCH_MAIN_SEARCH_ROUTE` (ordered CSV of `xai-responses,openai-compatible`) sets priority, and a single entry disables cross-route fallback.
156
+ - `search` is the default first hop for broad exploration, current synthesis, and routing metadata.
157
+ - OpenAI-compatible relays/gateways use Chat Completions `/chat/completions` through `OPENAI_COMPATIBLE_*`.
158
+ - `OPENAI_COMPATIBLE_STREAM=true` or `search --stream` sets `stream=true` only for OpenAI-compatible `search` and provider-side `fetch`; it is a relay compatibility switch and does not affect URL description or source ranking.
159
+ - Legacy `SMART_SEARCH_API_URL`, `SMART_SEARCH_API_KEY`, `SMART_SEARCH_API_MODE`, and `SMART_SEARCH_MODEL` are unsupported config keys.
160
+ - The standard minimum profile requires one configured provider in each of `main_search`, `docs_search`, and fetch capability. Missing required capabilities should be treated as a hard configuration failure.
161
+ - Jina Reader is `web_fetch` only, not a general search provider. `JINA_API_KEY` is required before Jina satisfies the standard minimum profile; anonymous `r.jina.ai` is explicit/experimental fetch behavior.
162
+ - `search` exposes `--validation fast|balanced|strict`, `--fallback auto|off`, and `--providers auto|CSV`. Default validation is `balanced`; fallback only happens within the same capability.
163
+ - `search --validation strict` uses the same bilingual web_search policy as balanced mode when source discovery providers are configured. Strict queries without primary, docs, fetch, or explicit source evidence can still fail with `evidence_error`; use `--extra-sources N`, source-first commands such as `exa-search`, or `fetch` when citable evidence is required.
164
+ - `search` runs bilingual web_search source discovery through Tavily / Firecrawl when configured.
165
+ - Docs/API/library routing stays explicit keyword intent-based and should prefer Context7 first. Exa is for official-domain or low-noise supplemental discovery, not the default docs answer route.
166
+ - `search` calls Tavily and/or Firecrawl for `extra_sources` only when `--extra-sources N` is greater than 0.
167
+ - With both Tavily and Firecrawl configured, `search --extra-sources N` splits extra sources between them, with Tavily receiving about 60% and Firecrawl the rest.
168
+ - Search JSON separates `primary_sources`, `extra_sources`, and backward-compatible merged `sources`.
169
+ - `primary_sources` are extracted from the primary model answer. `extra_sources` are parallel Tavily / Firecrawl candidates and are not automatically used to verify `content`.
170
+ - `fetch` tries Tavily first, then Jina with `JINA_API_KEY`, then Firecrawl.
171
+ - `map` currently uses Tavily only.
172
+ - `exa-search` and `exa-similar` use Exa only.
173
+ - `context7-library` and `context7-docs` use Context7 only.
174
+ - `TAVILY_API_URL` only affects Tavily REST calls.
175
+ - `doctor` tests configured main-search providers, Exa, Tavily, Jina, and Context7 connectivity. Firecrawl status currently means the key is configured, not that a live Firecrawl request succeeded.
176
+
177
+ ## Evidence Files
178
+
179
+ For multi-source research, use `smart-search config path --format json` and save evidence under `resolved_evidence_dir` with a descriptive timestamped filename. Stdout should still contain the full JSON result unless markdown or content output was explicitly chosen for human reading.
180
+
181
+ For claim-level evidence, prefer this order:
182
+
183
+ 1. Discover candidate URLs with a bilingual source-focused `search` pair, Context7 for docs/API/library topics, or `exa-search` for official/trusted domains and papers.
184
+ 2. Fetch the exact pages that matter.
185
+ 3. Use broad `search` only as synthesis or discovery, and mark claims as unverified when only `extra_sources` are available.
186
+
187
+ Prefer shorter, source-directed commands:
188
+
189
+ ```powershell
190
+ $Config = smart-search config path --format json | ConvertFrom-Json
191
+ $EvidenceDir = Join-Path $Config.resolved_evidence_dir "YYYYMMDD-HHMM-topic"
192
+ New-Item -ItemType Directory -Force -Path $EvidenceDir | Out-Null
193
+ smart-search exa-search "Reuters Iran Hormuz latest" --num-results 5 --include-highlights --format json --output (Join-Path $EvidenceDir "01-iran-hormuz-exa.json")
194
+ smart-search exa-search "OpenAI Responses API documentation" --include-domains platform.openai.com developers.openai.com --num-results 5 --include-text --format json
195
+ smart-search exa-similar "https://example.com/source" --num-results 5 --format json
196
+ smart-search fetch "https://example.com/source" --format json --output (Join-Path $EvidenceDir "02-source-fetch.json")
197
+ smart-search search "Iran Hormuz latest military talks" --extra-sources 3 --timeout 90 --format json --output (Join-Path $EvidenceDir "03-iran-hormuz-search.json")
198
+ ```
199
+
200
+ ## Workflows
201
+
202
+ Use these recipes when the user asks for evidence, citations, repeated searches, or an archiveable research trail. Keep `--output` paths under one timestamped evidence directory so later answers can cite saved files and rerun commands.
203
+
204
+ ### Lightweight Evidence Gathering
205
+
206
+ Use this when the user needs a source-backed answer but not full Deep Research.
207
+
208
+ 1. Create an evidence directory under the system-aware Smart Search evidence root reported by `smart-search config path --format json`.
209
+ 2. Discover candidate sources by intent:
210
+ - Always run the bilingual broad pair:
211
+ - `smart-search search "中文搜索,优先检索中文来源,并回答原问题:query" --validation balanced --extra-sources 1 --format json --output "$EvidenceDir\01-search-zh.json"`
212
+ - `smart-search search "Search English-language sources and answer the original question: query" --validation balanced --extra-sources 1 --format json --output "$EvidenceDir\02-search-en.json"`
213
+ - Docs/API/library/framework intent: `smart-search context7-library "library" "topic" --format json --output "$EvidenceDir\01-context7-library.json"`
214
+ - Official domains, papers, product pages, or trusted sites: `smart-search exa-search "query" --num-results 5 --include-text --include-highlights --format json --output "$EvidenceDir\01-exa.json"`
215
+ 3. Fetch the one or two URLs that support the answer: `smart-search fetch "https://example.com/source" --format markdown --output "$EvidenceDir\02-fetch-source.md"`.
216
+ 4. Write the final answer only from fetched page text or clearly label unfetched items as candidates.
217
+
218
+ See `examples/evidence-gathering.md` for a complete command sequence.
219
+
220
+ ### Deep Research With Citations
221
+
222
+ Use this when the user asks for deep research, cross-checking, serious comparison, or a multi-source investigation.
223
+
224
+ 1. Run the live executor: `smart-search research "question" --budget standard --format json --output "$EvidenceDir\research.json"`.
225
+ 2. Read `research_plan`, `evidence_items`, `gap_check`, `citations`, and `final_answer`.
226
+ 3. If `degraded` is true or `gap_check` lists open gaps, either fetch more sources or report the remaining gaps instead of filling them from memory.
227
+
228
+ Keep the detailed Deep Research rules in `## Deep Research Mode`; this workflow is only the quick selection recipe.
229
+
230
+ ### Batch Search And Fetch
231
+
232
+ Use this when the user gives multiple queries, companies, tools, documents, URLs, or comparison targets.
233
+
234
+ 1. Create one evidence directory for the batch.
235
+ 2. Run one CLI command per query or URL, using numbered outputs such as `01-search-react.json`, `02-search-vue.json`, or `03-fetch-docs.md`.
236
+ 3. Keep each command narrow:
237
+ - Use the bilingual `search --extra-sources 1` pair for quick broad discovery.
238
+ - Use `context7-library` / `context7-docs` for docs/API/library items.
239
+ - Use `exa-search` for official/trusted-domain discovery.
240
+ - Use `fetch` for each URL that will support a claim.
241
+ 4. After the loop, summarize across saved files. Cite fetched files or fetched URLs for claims; list unfetched discovery results only as candidates.
242
+
243
+ See `examples/batch-search.md` for PowerShell loop patterns and output naming.
244
+
245
+ ### Evidence Archiving
246
+
247
+ Use this when the user wants work that can be inspected, resumed, or audited.
248
+
249
+ 1. Save every non-trivial command with `--output`.
250
+ 2. Use stable numbered filenames: `01-search.json`, `02-exa-official.json`, `03-fetch-source.md`, `04-summary.json`.
251
+ 3. Keep command lines in the final answer or notes.
252
+ 4. Prefer JSON for machine-readable discovery and Markdown for fetched page text intended for reading.
253
+ 5. Do not treat `primary_sources` or `extra_sources` as claim proof until the relevant URL has been fetched.
254
+
255
+ ## Local wrapper contract
256
+
257
+ - Expect `smart-search` to resolve from the user's PATH.
258
+ - This bundled skill is maintained with the `smartsearch` repository.
259
+ - Prefer the CLI's local config file managed by `smart-search setup` / `smart-search config`.
260
+ - Environment variables remain supported for CI and advanced users, and override the local config file.
261
+ - Do not ask users to set Windows global API-key environment variables by default.
262
+ - If keys are changed with `smart-search config set`, rerun the CLI; no Codex restart is needed.
263
+ - If PATH is changed, a new terminal or Codex restart may be needed.
264
+ - On Windows, the default local config file is `%LOCALAPPDATA%\smart-search\config.json`. Linux/macOS default to `~/.config/smart-search/config.json`.
265
+ - In sandboxed runtimes (Codex CLI, containers, CI) where the default config directory is not writable or must be pinned, set `SMART_SEARCH_CONFIG_DIR` to an absolute writable path. The CLI uses it for both config and relative logs and skips default-directory selection.
266
+ - The default research evidence root is `evidence` under the active config directory. Set `SMART_SEARCH_EVIDENCE_DIR` only when evidence needs a separate absolute location; `config path` and `doctor` report both the configured and resolved evidence paths.
267
+ - Earlier Windows source defaults used `~\.config\smart-search\config.json`, while some installs were already pinned to `%LOCALAPPDATA%\smart-search` through `SMART_SEARCH_CONFIG_DIR`. If the new default file is missing but the old file exists, `doctor` reports `legacy_windows_home` as the active source so upgrades do not silently lose configuration. It also reports the override value and whether it matches the current default.
268
+ - Use `smart-search doctor --format json` for agent/script parsing and `smart-search doctor --format markdown` when a human wants a detailed diagnostic report.
269
+ - If `smart-search doctor --format json` returns `ok: false`, follow the `error` field's guidance (`smart-search setup` or `smart-search config set KEY VALUE`); do not silently fall back to native web search.
270
+ - Use `smart-search diagnose openai-compatible --format markdown` when `doctor` succeeds but OpenAI-compatible `search` appears to hang, returns a timeout, or differs between `--stream` and `--no-stream`. It is the beginner-facing one-command report for upstream/relay compatibility.
271
+ - Interactive `smart-search setup` is a language-selecting grouped wizard with arrow-key / Space / Enter provider selection. It guides users through required `main_search`, `docs_search`, and fetch capability.
272
+ - The setup wizard prints beginner filling examples for official-service and relay/pooled-endpoint minimum profiles. Keep that guidance on stderr so stdout remains parseable JSON/Markdown/content output.
273
+ - Use `smart-search setup --lang en` for an English wizard and `smart-search setup --advanced` only when low-level config keys must be shown one by one.
274
+ - Use `smart-search setup --non-interactive --jina-key "key"` to let Jina satisfy `web_fetch`; `JINA_RESPOND_WITH=readerlm-v2` also requires `JINA_API_KEY`.
275
+ - Use `smart-search setup --non-interactive --openai-compatible-stream true` only when an OpenAI-compatible relay benefits from SSE streaming for long requests. Default is true.
276
+ - Use `TAVILY_API_URL=https://<host>/api/tavily` for Tavily Hikari / pooled endpoints. Root host and `/mcp` inputs are normalized by setup; `/mcp` itself is not the REST base Smart Search should call.
277
+ - `TAVILY_TIMEOUT_SECONDS` controls the Tavily `doctor` connectivity timeout and defaults to `30`. Raise it for slower pooled/community Tavily endpoints before judging the provider unhealthy.
278
+ - Use `FIRECRAWL_API_URL` only for a Firecrawl-compatible REST base. Official default is `https://api.firecrawl.dev/v2`.
279
+
280
+ ## Command Patterns
281
+
282
+ ```powershell
283
+ smart-search search "query" --extra-sources 5 --timeout 90 --format json --output result.json
284
+ smart-search search "query" --stream --format json
285
+ smart-search diagnose openai-compatible --format markdown
286
+ smart-search search "query" --platform "Reuters" --model "model-id" --extra-sources 3 --timeout 90 --format json
287
+ smart-search search "nba战报" --format content
288
+ smart-search search "query" --validation strict --fallback auto --providers auto --format json
289
+ smart-search exa-search "query" --num-results 5 --search-type neural --include-text --include-highlights --include-domains docs.example.com developer.mozilla.org --format json
290
+ smart-search exa-similar "https://example.com/article" --num-results 5 --format json
291
+ smart-search context7-library "react" "hooks" --format json
292
+ smart-search context7-docs "/facebook/react" "useEffect cleanup" --format json
293
+ smart-search fetch "https://example.com" --format markdown --output page.md
294
+ smart-search map "https://docs.example.com" --instructions "Find API reference pages" --max-depth 1 --max-breadth 20 --limit 50 --format json
295
+ smart-search research "OpenAI Responses API web_search vs Chat Completions search" --budget deep --fallback auto --format json
296
+ smart-search rs "https://example.com/source" --fallback off --format markdown
297
+ smart-search setup
298
+ smart-search setup --lang en
299
+ smart-search setup --advanced
300
+ smart-search setup --non-interactive --openai-compatible-stream true
301
+ smart-search setup --non-interactive --tavily-api-url "https://api.tavily.com" --tavily-key "key"
302
+ smart-search --version
303
+ smart-search config path --format json
304
+ smart-search config list --format json
305
+ smart-search config list --format markdown
306
+ smart-search config set OPENAI_COMPATIBLE_API_URL "https://api.openai.com/v1" --format json
307
+ smart-search config set OPENAI_COMPATIBLE_API_KEY "key" --format json
308
+ smart-search config set OPENAI_COMPATIBLE_MODEL "model-id" --format json
309
+ smart-search config set OPENAI_COMPATIBLE_STREAM "true" --format json
310
+ smart-search config set XAI_API_KEY "key" --format json
311
+ smart-search config set XAI_MODEL "grok-4.5" --format json
312
+ smart-search config set SMART_SEARCH_MAIN_SEARCH_ROUTE "xai-responses,openai-compatible" --format json
313
+ smart-search config set EXA_API_KEY "key" --format json
314
+ smart-search config set CONTEXT7_API_KEY "key" --format json
315
+ smart-search config set TAVILY_API_URL "https://api.tavily.com" --format json
316
+ smart-search config set TAVILY_TIMEOUT_SECONDS "45" --format json
317
+ smart-search config set FIRECRAWL_API_URL "https://api.firecrawl.dev/v2" --format json
318
+ smart-search doctor --format json
319
+ smart-search doctor --format markdown
320
+ smart-search diagnose openai-compatible --format markdown
321
+ ```
322
+
323
+ Short aliases are supported for interactive use:
324
+
325
+ ```powershell
326
+ smart-search --v
327
+ smart-search s "query" --format json
328
+ smart-search s "nba战报" --format content
329
+ smart-search rs "query" --format json
330
+ smart-search f "https://example.com" --format markdown
331
+ smart-search exa "OpenAI Responses API documentation" --format json
332
+ smart-search z "today China AI news" --format json
333
+ smart-search c7 "react" "hooks" --format json
334
+ smart-search c7docs "/facebook/react" "useEffect cleanup" --format json
335
+ smart-search cfg ls --format json
336
+ smart-search d --format markdown
337
+ ```
338
+
339
+ ## Timeout Retry Policy
340
+
341
+ When `smart-search search` returns `ok: false` with `error_type: "network_error"` and an error message containing `timed out`, treat it as a retryable CLI-level timeout, not as a terminal research failure.
342
+
343
+ ### Error contract (U1/U2)
344
+
345
+ Failed JSON payloads expose a stable triple for Agent/JSON consumers:
346
+
347
+ | Field | Meaning |
348
+ | --- | --- |
349
+ | `error_type` | Category enum string: `config_error`, `parameter_error`, `network_error`, `evidence_error`, `auth_error`, `rate_limited`, `timeout`, `parse_error`, `quality_error`, `runtime_error` |
350
+ | `error_code` | Stable `SCREAMING_SNAKE` code (defaults from `error_type`, e.g. `CONFIG_ERROR`; specific codes such as `MISSING_API_KEY`, `SEARCH_TIMEOUT` when applicable) |
351
+ | `error` | Default **English** human message (no locale framework; Chinese remains only in interactive setup prompts via existing `_t`) |
352
+
353
+ CLI exit codes stay mapped from `error_type` only: `parameter_error→2`, `config_error→3`, `network_error`/`evidence_error→4`, other→`5`.
354
+
355
+ 1. Retry up to 3 total attempts with `--timeout 180`, waiting about 5 seconds between attempts.
356
+ 2. Use `--format json` and `--output PATH` for each attempt; after each attempt, inspect the saved JSON and stop on the first `"ok": true`.
357
+ 3. Use `--extra-sources 1` during retry attempts to keep Tavily/Firecrawl overhead small.
358
+ 4. Always use the CLI's `--timeout` option. Do not wrap `smart-search` in a shell-level `timeout` command because shell termination can prevent the CLI from writing structured failure JSON.
359
+ 5. Do not rely on `SMART_SEARCH_RETRY_*` settings for this path; search command timeouts are surfaced by the CLI result contract and should be handled by the agent workflow.
360
+ 6. If all attempts time out, fall back to source-first evidence:
361
+ - Run `exa-search` with the original query for broad source discovery.
362
+ - Run `exa-search --include-domains` when likely official domains are known.
363
+ - `fetch` the top 1-2 relevant URLs before making claim-level statements.
364
+ - Mark the final answer as `source_mode: "fallback"` or clearly state that the answer was assembled from fetched sources rather than generated by `search`.
365
+
366
+ Example retry flow:
367
+
368
+ ```powershell
369
+ smart-search search "query" --validation balanced --extra-sources 1 --timeout 180 --format json --output result-attempt-1.json
370
+ smart-search search "query" --validation balanced --extra-sources 1 --timeout 180 --format json --output result-attempt-2.json
371
+ smart-search search "query" --validation balanced --extra-sources 1 --timeout 180 --format json --output result-attempt-3.json
372
+ smart-search exa-search "query" --num-results 5 --include-text --format json --output exa.json
373
+ smart-search exa-search "query" --include-domains platform.openai.com developers.openai.com --num-results 3 --include-text --format json --output exa-official.json
374
+ smart-search fetch "https://example.com/source" --format markdown --output fetch.md
375
+ ```
376
+
377
+ ## Guardrails
378
+
379
+ - Prefer JSON for agent parsing and markdown for fetched page text intended for reading.
380
+ - Use `--output` for multi-source work, long pages, or anything the answer may need to cite later.
381
+ - Keep `--extra-sources` small (`1` to `3`) unless the user asks for broad coverage. Large values are slower and can add noise.
382
+ - Do not cite `extra_sources` as proof for a sentence in `content`; fetch the URL first or cite it only as a candidate source.
383
+ - Prefer `exa-search --include-domains` for official documentation when likely domains are known.
384
+ - Do not expose API keys. Treat `doctor` output as safe only because it is expected to mask secrets.
385
+ - In this CLI-first workflow, native `web_search` is disabled unless the user explicitly configures another approved route.
386
+ - If `doctor` or a command fails, report the failure and recovery steps; do not silently fall back to another web-search route.
387
+ - If the user explicitly asks to bypass smart-search, state that another approved web-search route must be configured first.
388
+ - Do not use legacy MCP tool names in prompts, notes, or generated instructions for this workflow.
389
+ - Treat key rotation as a hard safety gate when previous key values were pasted into chat or logs.
390
+ - For provider architecture maintenance, verify the distributable contract rather than the current developer machine's wrappers or local config. Keep fallback same-capability only.
391
+ - `main_search` is a user choice between xAI Responses (`XAI_*`) and OpenAI-compatible Chat Completions (`OPENAI_COMPATIBLE_*`). Never send xAI server tools (`web_search`, `x_search`) or xAI-only parameters into the OpenAI-compatible route, and never point the xAI route at `/chat/completions`. Do not fabricate additional `main_search` providers or reuse another capability's URL/key as a `main_search` fallback.
392
+
393
+ ## Supporting Reference
394
+
395
+ Read `references/cli-contract.md` when you need command details, output fields, exit codes, or contract expectations.