@intutic/cli 1.10.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (357) hide show
  1. package/README.md +1 -0
  2. package/dist/cli.js +868 -30
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/attenuate.d.ts +39 -0
  5. package/dist/commands/attenuate.d.ts.map +1 -0
  6. package/dist/commands/attenuate.js +98 -0
  7. package/dist/commands/attenuate.js.map +1 -0
  8. package/dist/commands/budget.d.ts +80 -0
  9. package/dist/commands/budget.d.ts.map +1 -1
  10. package/dist/commands/budget.js +119 -3
  11. package/dist/commands/budget.js.map +1 -1
  12. package/dist/commands/connect.d.ts +10 -0
  13. package/dist/commands/connect.d.ts.map +1 -1
  14. package/dist/commands/connect.js +358 -48
  15. package/dist/commands/connect.js.map +1 -1
  16. package/dist/commands/credentials.d.ts +31 -0
  17. package/dist/commands/credentials.d.ts.map +1 -0
  18. package/dist/commands/credentials.js +134 -0
  19. package/dist/commands/credentials.js.map +1 -0
  20. package/dist/commands/decision.d.ts +37 -0
  21. package/dist/commands/decision.d.ts.map +1 -0
  22. package/dist/commands/decision.js +56 -0
  23. package/dist/commands/decision.js.map +1 -0
  24. package/dist/commands/doctor.d.ts +38 -1
  25. package/dist/commands/doctor.d.ts.map +1 -1
  26. package/dist/commands/doctor.js +228 -18
  27. package/dist/commands/doctor.js.map +1 -1
  28. package/dist/commands/enforce.d.ts +33 -0
  29. package/dist/commands/enforce.d.ts.map +1 -0
  30. package/dist/commands/enforce.js +150 -0
  31. package/dist/commands/enforce.js.map +1 -0
  32. package/dist/commands/enterprise.d.ts +29 -0
  33. package/dist/commands/enterprise.d.ts.map +1 -0
  34. package/dist/commands/enterprise.js +141 -0
  35. package/dist/commands/enterprise.js.map +1 -0
  36. package/dist/commands/env.d.ts +7 -0
  37. package/dist/commands/env.d.ts.map +1 -0
  38. package/dist/commands/env.js +55 -0
  39. package/dist/commands/env.js.map +1 -0
  40. package/dist/commands/exec.d.ts +38 -2
  41. package/dist/commands/exec.d.ts.map +1 -1
  42. package/dist/commands/exec.js +247 -10
  43. package/dist/commands/exec.js.map +1 -1
  44. package/dist/commands/findings.d.ts +84 -0
  45. package/dist/commands/findings.d.ts.map +1 -0
  46. package/dist/commands/findings.js +329 -0
  47. package/dist/commands/findings.js.map +1 -0
  48. package/dist/commands/gateway.d.ts +62 -0
  49. package/dist/commands/gateway.d.ts.map +1 -0
  50. package/dist/commands/gateway.js +298 -0
  51. package/dist/commands/gateway.js.map +1 -0
  52. package/dist/commands/guardrails.d.ts +81 -0
  53. package/dist/commands/guardrails.d.ts.map +1 -0
  54. package/dist/commands/guardrails.js +735 -0
  55. package/dist/commands/guardrails.js.map +1 -0
  56. package/dist/commands/init.d.ts +8 -0
  57. package/dist/commands/init.d.ts.map +1 -1
  58. package/dist/commands/init.js +14 -2
  59. package/dist/commands/init.js.map +1 -1
  60. package/dist/commands/install-daemon.d.ts +70 -3
  61. package/dist/commands/install-daemon.d.ts.map +1 -1
  62. package/dist/commands/install-daemon.js +482 -47
  63. package/dist/commands/install-daemon.js.map +1 -1
  64. package/dist/commands/integrity.d.ts +205 -0
  65. package/dist/commands/integrity.d.ts.map +1 -0
  66. package/dist/commands/integrity.js +620 -0
  67. package/dist/commands/integrity.js.map +1 -0
  68. package/dist/commands/judge.d.ts +31 -0
  69. package/dist/commands/judge.d.ts.map +1 -0
  70. package/dist/commands/judge.js +118 -0
  71. package/dist/commands/judge.js.map +1 -0
  72. package/dist/commands/org.d.ts +31 -0
  73. package/dist/commands/org.d.ts.map +1 -0
  74. package/dist/commands/org.js +159 -0
  75. package/dist/commands/org.js.map +1 -0
  76. package/dist/commands/policy.d.ts +138 -4
  77. package/dist/commands/policy.d.ts.map +1 -1
  78. package/dist/commands/policy.js +538 -97
  79. package/dist/commands/policy.js.map +1 -1
  80. package/dist/commands/predict-cost.d.ts +45 -0
  81. package/dist/commands/predict-cost.d.ts.map +1 -0
  82. package/dist/commands/predict-cost.js +123 -0
  83. package/dist/commands/predict-cost.js.map +1 -0
  84. package/dist/commands/rollback.d.ts +5 -0
  85. package/dist/commands/rollback.d.ts.map +1 -0
  86. package/dist/commands/rollback.js +142 -0
  87. package/dist/commands/rollback.js.map +1 -0
  88. package/dist/commands/routing.d.ts +62 -0
  89. package/dist/commands/routing.d.ts.map +1 -0
  90. package/dist/commands/routing.js +121 -0
  91. package/dist/commands/routing.js.map +1 -0
  92. package/dist/commands/setup.d.ts +62 -0
  93. package/dist/commands/setup.d.ts.map +1 -0
  94. package/dist/commands/setup.js +238 -0
  95. package/dist/commands/setup.js.map +1 -0
  96. package/dist/commands/skill.d.ts +268 -1
  97. package/dist/commands/skill.d.ts.map +1 -1
  98. package/dist/commands/skill.js +744 -39
  99. package/dist/commands/skill.js.map +1 -1
  100. package/dist/commands/sops.d.ts +95 -0
  101. package/dist/commands/sops.d.ts.map +1 -1
  102. package/dist/commands/sops.js +334 -34
  103. package/dist/commands/sops.js.map +1 -1
  104. package/dist/commands/start.d.ts.map +1 -1
  105. package/dist/commands/start.js +1 -18
  106. package/dist/commands/start.js.map +1 -1
  107. package/dist/commands/status.d.ts.map +1 -1
  108. package/dist/commands/status.js +44 -1
  109. package/dist/commands/status.js.map +1 -1
  110. package/dist/commands/team.d.ts +38 -0
  111. package/dist/commands/team.d.ts.map +1 -0
  112. package/dist/commands/team.js +140 -0
  113. package/dist/commands/team.js.map +1 -0
  114. package/dist/commands/traces.d.ts +8 -1
  115. package/dist/commands/traces.d.ts.map +1 -1
  116. package/dist/commands/traces.js +114 -15
  117. package/dist/commands/traces.js.map +1 -1
  118. package/dist/commands/whoami.d.ts.map +1 -1
  119. package/dist/commands/whoami.js +2 -1
  120. package/dist/commands/whoami.js.map +1 -1
  121. package/dist/config/keychain.d.ts +10 -2
  122. package/dist/config/keychain.d.ts.map +1 -1
  123. package/dist/config/keychain.js +83 -14
  124. package/dist/config/keychain.js.map +1 -1
  125. package/dist/config/paths.d.ts +27 -0
  126. package/dist/config/paths.d.ts.map +1 -1
  127. package/dist/config/paths.js +37 -6
  128. package/dist/config/paths.js.map +1 -1
  129. package/dist/config/store.d.ts.map +1 -1
  130. package/dist/config/store.js +19 -3
  131. package/dist/config/store.js.map +1 -1
  132. package/dist/harness/ag2.d.ts +22 -0
  133. package/dist/harness/ag2.d.ts.map +1 -0
  134. package/dist/harness/ag2.js +34 -0
  135. package/dist/harness/ag2.js.map +1 -0
  136. package/dist/harness/agentcore.d.ts +55 -0
  137. package/dist/harness/agentcore.d.ts.map +1 -0
  138. package/dist/harness/agentcore.js +119 -0
  139. package/dist/harness/agentcore.js.map +1 -0
  140. package/dist/harness/agenticOrchestrator.d.ts +52 -0
  141. package/dist/harness/agenticOrchestrator.d.ts.map +1 -0
  142. package/dist/harness/agenticOrchestrator.js +115 -0
  143. package/dist/harness/agenticOrchestrator.js.map +1 -0
  144. package/dist/harness/aiSdkHarness.d.ts +30 -0
  145. package/dist/harness/aiSdkHarness.d.ts.map +1 -0
  146. package/dist/harness/aiSdkHarness.js +51 -0
  147. package/dist/harness/aiSdkHarness.js.map +1 -0
  148. package/dist/harness/aiSdkWorkflow.d.ts +26 -0
  149. package/dist/harness/aiSdkWorkflow.d.ts.map +1 -0
  150. package/dist/harness/aiSdkWorkflow.js +39 -0
  151. package/dist/harness/aiSdkWorkflow.js.map +1 -0
  152. package/dist/harness/autogen.d.ts +24 -0
  153. package/dist/harness/autogen.d.ts.map +1 -0
  154. package/dist/harness/autogen.js +36 -0
  155. package/dist/harness/autogen.js.map +1 -0
  156. package/dist/harness/base.js.map +1 -1
  157. package/dist/harness/continue.d.ts.map +1 -1
  158. package/dist/harness/continue.js +2 -1
  159. package/dist/harness/continue.js.map +1 -1
  160. package/dist/harness/crewai.d.ts +15 -0
  161. package/dist/harness/crewai.d.ts.map +1 -0
  162. package/dist/harness/crewai.js +26 -0
  163. package/dist/harness/crewai.js.map +1 -0
  164. package/dist/harness/detector.d.ts +1 -1
  165. package/dist/harness/detector.d.ts.map +1 -1
  166. package/dist/harness/detector.js +47 -1
  167. package/dist/harness/detector.js.map +1 -1
  168. package/dist/harness/dsh.d.ts +19 -0
  169. package/dist/harness/dsh.d.ts.map +1 -0
  170. package/dist/harness/dsh.js +93 -0
  171. package/dist/harness/dsh.js.map +1 -0
  172. package/dist/harness/eve.d.ts +40 -0
  173. package/dist/harness/eve.d.ts.map +1 -0
  174. package/dist/harness/eve.js +67 -0
  175. package/dist/harness/eve.js.map +1 -0
  176. package/dist/harness/googleAdk.d.ts +18 -0
  177. package/dist/harness/googleAdk.d.ts.map +1 -0
  178. package/dist/harness/googleAdk.js +29 -0
  179. package/dist/harness/googleAdk.js.map +1 -0
  180. package/dist/harness/goose.d.ts.map +1 -1
  181. package/dist/harness/goose.js +5 -1
  182. package/dist/harness/goose.js.map +1 -1
  183. package/dist/harness/grok.d.ts +16 -0
  184. package/dist/harness/grok.d.ts.map +1 -0
  185. package/dist/harness/grok.js +78 -0
  186. package/dist/harness/grok.js.map +1 -0
  187. package/dist/harness/jsSdkGatedAdapter.d.ts +102 -0
  188. package/dist/harness/jsSdkGatedAdapter.d.ts.map +1 -0
  189. package/dist/harness/jsSdkGatedAdapter.js +139 -0
  190. package/dist/harness/jsSdkGatedAdapter.js.map +1 -0
  191. package/dist/harness/langchain.d.ts +22 -0
  192. package/dist/harness/langchain.d.ts.map +1 -0
  193. package/dist/harness/langchain.js +33 -0
  194. package/dist/harness/langchain.js.map +1 -0
  195. package/dist/harness/langgraph.d.ts +22 -0
  196. package/dist/harness/langgraph.d.ts.map +1 -0
  197. package/dist/harness/langgraph.js +80 -0
  198. package/dist/harness/langgraph.js.map +1 -0
  199. package/dist/harness/mastra.d.ts +21 -0
  200. package/dist/harness/mastra.d.ts.map +1 -0
  201. package/dist/harness/mastra.js +33 -0
  202. package/dist/harness/mastra.js.map +1 -0
  203. package/dist/harness/muse.d.ts +22 -0
  204. package/dist/harness/muse.d.ts.map +1 -0
  205. package/dist/harness/muse.js +92 -0
  206. package/dist/harness/muse.js.map +1 -0
  207. package/dist/harness/n8n.d.ts.map +1 -1
  208. package/dist/harness/n8n.js +36 -11
  209. package/dist/harness/n8n.js.map +1 -1
  210. package/dist/harness/openaiAgents.d.ts +40 -0
  211. package/dist/harness/openaiAgents.d.ts.map +1 -0
  212. package/dist/harness/openaiAgents.js +107 -0
  213. package/dist/harness/openaiAgents.js.map +1 -0
  214. package/dist/harness/opencode.d.ts +24 -0
  215. package/dist/harness/opencode.d.ts.map +1 -0
  216. package/dist/harness/opencode.js +97 -0
  217. package/dist/harness/opencode.js.map +1 -0
  218. package/dist/harness/pydanticAi.d.ts +19 -0
  219. package/dist/harness/pydanticAi.d.ts.map +1 -0
  220. package/dist/harness/pydanticAi.js +30 -0
  221. package/dist/harness/pydanticAi.js.map +1 -0
  222. package/dist/harness/sdkGatedAdapter.d.ts +55 -0
  223. package/dist/harness/sdkGatedAdapter.d.ts.map +1 -0
  224. package/dist/harness/sdkGatedAdapter.js +85 -0
  225. package/dist/harness/sdkGatedAdapter.js.map +1 -0
  226. package/dist/harness/smolagents.d.ts +22 -0
  227. package/dist/harness/smolagents.d.ts.map +1 -0
  228. package/dist/harness/smolagents.js +33 -0
  229. package/dist/harness/smolagents.js.map +1 -0
  230. package/dist/harness/strands.d.ts +22 -0
  231. package/dist/harness/strands.d.ts.map +1 -0
  232. package/dist/harness/strands.js +35 -0
  233. package/dist/harness/strands.js.map +1 -0
  234. package/dist/harness/trueforge.d.ts +25 -0
  235. package/dist/harness/trueforge.d.ts.map +1 -0
  236. package/dist/harness/trueforge.js +40 -0
  237. package/dist/harness/trueforge.js.map +1 -0
  238. package/dist/harness/types.d.ts.map +1 -1
  239. package/dist/harness/types.js +70 -0
  240. package/dist/harness/types.js.map +1 -1
  241. package/dist/harness/vercelAiSdk.d.ts +31 -0
  242. package/dist/harness/vercelAiSdk.d.ts.map +1 -0
  243. package/dist/harness/vercelAiSdk.js +44 -0
  244. package/dist/harness/vercelAiSdk.js.map +1 -0
  245. package/dist/harness/xirp.d.ts +43 -0
  246. package/dist/harness/xirp.d.ts.map +1 -0
  247. package/dist/harness/xirp.js +95 -0
  248. package/dist/harness/xirp.js.map +1 -0
  249. package/dist/lib/api.d.ts +68 -0
  250. package/dist/lib/api.d.ts.map +1 -1
  251. package/dist/lib/api.js +108 -67
  252. package/dist/lib/api.js.map +1 -1
  253. package/dist/lib/authMessages.d.ts +19 -0
  254. package/dist/lib/authMessages.d.ts.map +1 -0
  255. package/dist/lib/authMessages.js +20 -0
  256. package/dist/lib/authMessages.js.map +1 -0
  257. package/dist/lib/binaryChecksum.d.ts +12 -0
  258. package/dist/lib/binaryChecksum.d.ts.map +1 -0
  259. package/dist/lib/binaryChecksum.js +45 -0
  260. package/dist/lib/binaryChecksum.js.map +1 -0
  261. package/dist/lib/binaryOnPath.d.ts +24 -0
  262. package/dist/lib/binaryOnPath.d.ts.map +1 -0
  263. package/dist/lib/binaryOnPath.js +31 -0
  264. package/dist/lib/binaryOnPath.js.map +1 -0
  265. package/dist/lib/caTrust.d.ts +69 -0
  266. package/dist/lib/caTrust.d.ts.map +1 -0
  267. package/dist/lib/caTrust.js +169 -0
  268. package/dist/lib/caTrust.js.map +1 -0
  269. package/dist/lib/ciscoScanner.d.ts +178 -0
  270. package/dist/lib/ciscoScanner.d.ts.map +1 -0
  271. package/dist/lib/ciscoScanner.js +292 -0
  272. package/dist/lib/ciscoScanner.js.map +1 -0
  273. package/dist/lib/decisionsLogRefresh.d.ts +28 -0
  274. package/dist/lib/decisionsLogRefresh.d.ts.map +1 -0
  275. package/dist/lib/decisionsLogRefresh.js +54 -0
  276. package/dist/lib/decisionsLogRefresh.js.map +1 -0
  277. package/dist/lib/deviceReport.d.ts +26 -0
  278. package/dist/lib/deviceReport.d.ts.map +1 -0
  279. package/dist/lib/deviceReport.js +55 -0
  280. package/dist/lib/deviceReport.js.map +1 -0
  281. package/dist/lib/elevation.d.ts +58 -0
  282. package/dist/lib/elevation.d.ts.map +1 -0
  283. package/dist/lib/elevation.js +83 -0
  284. package/dist/lib/elevation.js.map +1 -0
  285. package/dist/lib/enforcementState.d.ts +69 -0
  286. package/dist/lib/enforcementState.d.ts.map +1 -0
  287. package/dist/lib/enforcementState.js +113 -0
  288. package/dist/lib/enforcementState.js.map +1 -0
  289. package/dist/lib/ensureValkey.d.ts.map +1 -1
  290. package/dist/lib/ensureValkey.js +2 -2
  291. package/dist/lib/ensureValkey.js.map +1 -1
  292. package/dist/lib/envInjector.d.ts.map +1 -1
  293. package/dist/lib/envInjector.js +22 -4
  294. package/dist/lib/envInjector.js.map +1 -1
  295. package/dist/lib/gitHooks.d.ts +7 -2
  296. package/dist/lib/gitHooks.d.ts.map +1 -1
  297. package/dist/lib/gitHooks.js +180 -13
  298. package/dist/lib/gitHooks.js.map +1 -1
  299. package/dist/lib/gracefulShutdown.d.ts +37 -0
  300. package/dist/lib/gracefulShutdown.d.ts.map +1 -0
  301. package/dist/lib/gracefulShutdown.js +57 -0
  302. package/dist/lib/gracefulShutdown.js.map +1 -0
  303. package/dist/lib/graphIdentity.d.ts +80 -0
  304. package/dist/lib/graphIdentity.d.ts.map +1 -0
  305. package/dist/lib/graphIdentity.js +120 -0
  306. package/dist/lib/graphIdentity.js.map +1 -0
  307. package/dist/lib/localTraces.d.ts +61 -0
  308. package/dist/lib/localTraces.d.ts.map +1 -0
  309. package/dist/lib/localTraces.js +173 -0
  310. package/dist/lib/localTraces.js.map +1 -0
  311. package/dist/lib/mdmManifest.d.ts +73 -0
  312. package/dist/lib/mdmManifest.d.ts.map +1 -0
  313. package/dist/lib/mdmManifest.js +190 -0
  314. package/dist/lib/mdmManifest.js.map +1 -0
  315. package/dist/lib/onboarding.d.ts.map +1 -1
  316. package/dist/lib/onboarding.js +60 -1
  317. package/dist/lib/onboarding.js.map +1 -1
  318. package/dist/lib/otelPropagation.d.ts +26 -0
  319. package/dist/lib/otelPropagation.d.ts.map +1 -0
  320. package/dist/lib/otelPropagation.js +40 -0
  321. package/dist/lib/otelPropagation.js.map +1 -0
  322. package/dist/lib/policySnapshot.d.ts +92 -0
  323. package/dist/lib/policySnapshot.d.ts.map +1 -0
  324. package/dist/lib/policySnapshot.js +173 -0
  325. package/dist/lib/policySnapshot.js.map +1 -0
  326. package/dist/lib/process.d.ts.map +1 -1
  327. package/dist/lib/process.js +60 -0
  328. package/dist/lib/process.js.map +1 -1
  329. package/dist/lib/providerProbe.d.ts +28 -0
  330. package/dist/lib/providerProbe.d.ts.map +1 -0
  331. package/dist/lib/providerProbe.js +57 -0
  332. package/dist/lib/providerProbe.js.map +1 -0
  333. package/dist/lib/proxyBinary.d.ts +19 -0
  334. package/dist/lib/proxyBinary.d.ts.map +1 -0
  335. package/dist/lib/proxyBinary.js +30 -0
  336. package/dist/lib/proxyBinary.js.map +1 -0
  337. package/dist/lib/sandbox/firecracker.d.ts +89 -0
  338. package/dist/lib/sandbox/firecracker.d.ts.map +1 -0
  339. package/dist/lib/sandbox/firecracker.js +135 -0
  340. package/dist/lib/sandbox/firecracker.js.map +1 -0
  341. package/dist/lib/sandbox/index.d.ts +34 -0
  342. package/dist/lib/sandbox/index.d.ts.map +1 -0
  343. package/dist/lib/sandbox/index.js +54 -0
  344. package/dist/lib/sandbox/index.js.map +1 -0
  345. package/dist/lib/sandbox/oci.d.ts +38 -0
  346. package/dist/lib/sandbox/oci.d.ts.map +1 -0
  347. package/dist/lib/sandbox/oci.js +108 -0
  348. package/dist/lib/sandbox/oci.js.map +1 -0
  349. package/dist/lib/sandbox/types.d.ts +48 -0
  350. package/dist/lib/sandbox/types.d.ts.map +1 -0
  351. package/dist/lib/sandbox/types.js +12 -0
  352. package/dist/lib/sandbox/types.js.map +1 -0
  353. package/dist/lib/sopFrontMatter.d.ts +50 -0
  354. package/dist/lib/sopFrontMatter.d.ts.map +1 -0
  355. package/dist/lib/sopFrontMatter.js +129 -0
  356. package/dist/lib/sopFrontMatter.js.map +1 -0
  357. package/package.json +11 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crewai.js","sourceRoot":"","sources":["../../src/harness/crewai.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE1D,MAAM,CAAC,MAAM,aAAa,GAAG,mBAAmB,CAAC;IAC/C,IAAI,EAAE,WAAW,CAAC,MAAM;IACxB,KAAK,EAAE,QAAQ;IACf,QAAQ,EAAE,CAAC,QAAQ,CAAC;IACpB,UAAU,EAAE,wBAAwB;IACpC,UAAU,EAAE,yDAAyD;IACrE,YAAY,EACV,mFAAmF;QACnF,iBAAiB;IACnB,QAAQ,EAAE,QAAQ;CACnB,CAAC,CAAA"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Harness detector — auto-detect which AI harnesses are present.
3
3
  *
4
- * Instantiates all 18 adapters and checks each for presence in
4
+ * Instantiates all 40 adapters and checks each for presence in
5
5
  * the workspace. Returns a DetectedHarness array for reporting.
6
6
  *
7
7
  * HLD §3.14 — Harness Onboarding Matrix
@@ -1 +1 @@
1
- {"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../src/harness/detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAqBjD,uCAAuC;AACvC,eAAO,MAAM,YAAY,EAAE,eAAe,EAmBzC,CAAA;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAgBvF;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAEpE"}
1
+ {"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../src/harness/detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AA4CjD,uCAAuC;AACvC,eAAO,MAAM,YAAY,EAAE,eAAe,EA0CzC,CAAA;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAgBvF;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAEpE"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Harness detector — auto-detect which AI harnesses are present.
3
3
  *
4
- * Instantiates all 18 adapters and checks each for presence in
4
+ * Instantiates all 40 adapters and checks each for presence in
5
5
  * the workspace. Returns a DetectedHarness array for reporting.
6
6
  *
7
7
  * HLD §3.14 — Harness Onboarding Matrix
@@ -26,6 +26,29 @@ import { openclawAdapter } from './openclaw.js';
26
26
  import { piAdapter } from './pi.js';
27
27
  import { hermesAdapter } from './hermes.js';
28
28
  import { githubCopilotAdapter } from './githubCopilot.js';
29
+ import { langgraphAdapter } from './langgraph.js';
30
+ import { museAdapter } from './muse.js';
31
+ import { grokAdapter } from './grok.js';
32
+ import { opencodeAdapter } from './opencode.js';
33
+ import { dshAdapter } from './dsh.js';
34
+ import { xirpAdapter } from './xirp.js';
35
+ import { agenticOrchestratorAdapter } from './agenticOrchestrator.js';
36
+ import { langchainAdapter } from './langchain.js';
37
+ import { crewaiAdapter } from './crewai.js';
38
+ import { autogenAdapter } from './autogen.js';
39
+ import { ag2Adapter } from './ag2.js';
40
+ import { googleAdkAdapter } from './googleAdk.js';
41
+ import { openaiAgentsAdapter } from './openaiAgents.js';
42
+ import { pydanticAiAdapter } from './pydanticAi.js';
43
+ import { smolagentsAdapter } from './smolagents.js';
44
+ import { strandsAdapter } from './strands.js';
45
+ import { mastraAdapter } from './mastra.js';
46
+ import { vercelAiSdkAdapter } from './vercelAiSdk.js';
47
+ import { eveAdapter } from './eve.js';
48
+ import { trueforgeAdapter } from './trueforge.js';
49
+ import { aiSdkHarnessAdapter } from './aiSdkHarness.js';
50
+ import { aiSdkWorkflowAdapter } from './aiSdkWorkflow.js';
51
+ import { agentcoreAdapter } from './agentcore.js';
29
52
  import { join } from 'node:path';
30
53
  /** All registered harness adapters. */
31
54
  export const ALL_ADAPTERS = [
@@ -47,6 +70,29 @@ export const ALL_ADAPTERS = [
47
70
  piAdapter,
48
71
  hermesAdapter,
49
72
  githubCopilotAdapter,
73
+ langgraphAdapter,
74
+ museAdapter,
75
+ grokAdapter,
76
+ opencodeAdapter,
77
+ dshAdapter,
78
+ xirpAdapter,
79
+ agenticOrchestratorAdapter,
80
+ langchainAdapter,
81
+ crewaiAdapter,
82
+ autogenAdapter,
83
+ ag2Adapter,
84
+ googleAdkAdapter,
85
+ openaiAgentsAdapter,
86
+ pydanticAiAdapter,
87
+ smolagentsAdapter,
88
+ strandsAdapter,
89
+ mastraAdapter,
90
+ vercelAiSdkAdapter,
91
+ eveAdapter,
92
+ trueforgeAdapter,
93
+ aiSdkHarnessAdapter,
94
+ aiSdkWorkflowAdapter,
95
+ agentcoreAdapter,
50
96
  ];
51
97
  /**
52
98
  * Detect which harnesses are present in a workspace.
@@ -1 +1 @@
1
- {"version":3,"file":"detector.js","sourceRoot":"","sources":["../../src/harness/detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,uCAAuC;AACvC,MAAM,CAAC,MAAM,YAAY,GAAsB;IAC7C,aAAa;IACb,iBAAiB;IACjB,kBAAkB;IAClB,eAAe;IACf,YAAY;IACZ,gBAAgB;IAChB,YAAY;IACZ,UAAU;IACV,YAAY;IACZ,cAAc;IACd,eAAe;IACf,oBAAoB;IACpB,YAAY;IACZ,gBAAgB;IAChB,eAAe;IACf,SAAS;IACT,aAAa;IACb,oBAAoB;CACrB,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,aAAqB;IACzD,MAAM,OAAO,GAAsB,EAAE,CAAA;IAErC,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QACpD,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,UAAU,EAAE,OAAO,CAAC,cAAc;gBAChC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC;gBAC7C,CAAC,CAAC,EAAE;YACN,QAAQ;YACR,WAAW,EAAE,IAAI;SAClB,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AAClD,CAAC"}
1
+ {"version":3,"file":"detector.js","sourceRoot":"","sources":["../../src/harness/detector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * dsh.ts — DeepSeek "dsh" adapter (binary `dsh`, `@deepseek-ai/dsh`,
3
+ * developer preview since 2026-08-13).
4
+ *
5
+ * dsh is plugin-first (Cordis) and has no workspace-relative rules file this
6
+ * adapter could write governance text into (see `types.ts`'s
7
+ * `HARNESS_CONFIG_FILES.dsh`). The governance-critical half — the
8
+ * `tools/pre-execute` Cordis plugin registration (`cordis.patch.yml` per
9
+ * profile), the profile's `@intutic/gate` dependency, and the `settings.yaml`
10
+ * `llm-pi-ai` proxy route — is delegated entirely to
11
+ * `@intutic/sync-daemon`'s `dshHooks.ts`, the same split Goose/Muse Code's
12
+ * adapters use for their own plugin installation.
13
+ *
14
+ * HLD §3.14 — Harness Onboarding Matrix
15
+ * @module
16
+ */
17
+ import type { IHarnessAdapter } from './types.js';
18
+ export declare const dshAdapter: IHarnessAdapter;
19
+ //# sourceMappingURL=dsh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dsh.d.ts","sourceRoot":"","sources":["../../src/harness/dsh.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAGjD,eAAO,MAAM,UAAU,EAAE,eA2ExB,CAAA"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * dsh.ts — DeepSeek "dsh" adapter (binary `dsh`, `@deepseek-ai/dsh`,
3
+ * developer preview since 2026-08-13).
4
+ *
5
+ * dsh is plugin-first (Cordis) and has no workspace-relative rules file this
6
+ * adapter could write governance text into (see `types.ts`'s
7
+ * `HARNESS_CONFIG_FILES.dsh`). The governance-critical half — the
8
+ * `tools/pre-execute` Cordis plugin registration (`cordis.patch.yml` per
9
+ * profile), the profile's `@intutic/gate` dependency, and the `settings.yaml`
10
+ * `llm-pi-ai` proxy route — is delegated entirely to
11
+ * `@intutic/sync-daemon`'s `dshHooks.ts`, the same split Goose/Muse Code's
12
+ * adapters use for their own plugin installation.
13
+ *
14
+ * HLD §3.14 — Harness Onboarding Matrix
15
+ * @module
16
+ */
17
+ import { access } from 'node:fs/promises';
18
+ import { join } from 'node:path';
19
+ import { HarnessType } from '@intutic/shared-types';
20
+ import { writeDshHooks, resolveDshHome, listDshProfileDirs } from '@intutic/sync-daemon/harness/dshHooks';
21
+ export const dshAdapter = {
22
+ type: HarnessType.DEEPSEEK_HARNESS,
23
+ // No canonical workspace-relative config file — see types.ts's comment on
24
+ // this harness's HARNESS_CONFIG_FILES entry. detect/writeConfig/
25
+ // readCurrentHash below resolve dsh's real, $DSH_HOME-anchored paths
26
+ // directly, the same way goose.ts bypasses configFileName's
27
+ // workspaceRoot-join for its own home-anchored config.
28
+ configFileName: '',
29
+ async detect(_workspaceRoot) {
30
+ const dshHome = resolveDshHome();
31
+ // 1. `$DSH_HOME`/`~/.dsh` exists at all (settings.yaml, .credentials.yaml,
32
+ // or profiles/ — any one of them means dsh has been run here before).
33
+ for (const marker of ['settings.yaml', '.credentials.yaml', 'profiles']) {
34
+ try {
35
+ await access(join(dshHome, marker));
36
+ return true;
37
+ }
38
+ catch {
39
+ /* not here */
40
+ }
41
+ }
42
+ // 2. `@deepseek-ai/dsh` on PATH (npm/pnpm global bin) or a local npx
43
+ // cache entry — the same PATH-scan convention grok.ts/muse.ts use.
44
+ const pathDirs = (process.env.PATH ?? '').split(process.platform === 'win32' ? ';' : ':');
45
+ try {
46
+ const { accessSync } = await import('node:fs');
47
+ for (const dir of pathDirs) {
48
+ try {
49
+ accessSync(join(dir, 'dsh'));
50
+ return true;
51
+ }
52
+ catch {
53
+ /* not here */
54
+ }
55
+ }
56
+ }
57
+ catch {
58
+ /* ignore */
59
+ }
60
+ // 3. npx's package cache (`~/.npm/_npx/*/node_modules/@deepseek-ai/dsh`) —
61
+ // a developer who has only ever run `npx @deepseek-ai/dsh` without a
62
+ // global install still leaves this behind. Best-effort: npx caches by
63
+ // a content hash directory name this adapter cannot predict, so this
64
+ // only catches the common `~/.npm/_npx` root existing AND dsh already
65
+ // having created `$DSH_HOME` (marker 1 above already covers the
66
+ // "actually run at least once" case) — listed for completeness with
67
+ // the CLI adapters this mirrors, not as an independent signal.
68
+ return false;
69
+ },
70
+ async writeConfig(workspaceRoot, _sops, proxyUrl) {
71
+ // No rules/markdown file for dsh — `sops` are not consulted here (same
72
+ // "no text-rules file" posture as goose.ts's own adapter). The plugin
73
+ // registration + settings.yaml merge is the entirety of what this
74
+ // harness gets, and it happens for every existing profile, not one file.
75
+ await writeDshHooks(workspaceRoot, proxyUrl, '');
76
+ const dshHome = resolveDshHome();
77
+ const profiles = await listDshProfileDirs(dshHome);
78
+ // Representative path for the connect-summary UI, matching the "return
79
+ // the path written" contract every other adapter follows — the first
80
+ // profile's patch file when one exists, otherwise the $DSH_HOME root
81
+ // itself (nothing was written yet; the next sync cycle picks it up once
82
+ // a profile exists, per dshHooks.ts's own module doc).
83
+ return profiles.length > 0 ? join(profiles[0], 'cordis.patch.yml') : dshHome;
84
+ },
85
+ async readCurrentHash(_workspaceRoot) {
86
+ // No single canonical file to hash — dsh may have zero, one, or several
87
+ // profiles, each with its own cordis.patch.yml. Matching goose.ts/
88
+ // cline.ts's own "no rules file" precedent, this reports no hash rather
89
+ // than picking one arbitrary profile's file to represent all of them.
90
+ return null;
91
+ },
92
+ };
93
+ //# sourceMappingURL=dsh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dsh.js","sourceRoot":"","sources":["../../src/harness/dsh.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAGnD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAEzG,MAAM,CAAC,MAAM,UAAU,GAAoB;IACzC,IAAI,EAAE,WAAW,CAAC,gBAAgB;IAClC,0EAA0E;IAC1E,iEAAiE;IACjE,qEAAqE;IACrE,4DAA4D;IAC5D,uDAAuD;IACvD,cAAc,EAAE,EAAE;IAElB,KAAK,CAAC,MAAM,CAAC,cAAsB;QACjC,MAAM,OAAO,GAAG,cAAc,EAAE,CAAA;QAEhC,2EAA2E;QAC3E,yEAAyE;QACzE,KAAK,MAAM,MAAM,IAAI,CAAC,eAAe,EAAE,mBAAmB,EAAE,UAAU,CAAC,EAAE,CAAC;YACxE,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;gBACnC,OAAO,IAAI,CAAA;YACb,CAAC;YAAC,MAAM,CAAC;gBACP,cAAc;YAChB,CAAC;QACH,CAAC;QAED,qEAAqE;QACrE,sEAAsE;QACtE,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QACzF,IAAI,CAAC;YACH,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAA;YAC9C,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;oBAC5B,OAAO,IAAI,CAAA;gBACb,CAAC;gBAAC,MAAM,CAAC;oBACP,cAAc;gBAChB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;QAED,2EAA2E;QAC3E,wEAAwE;QACxE,yEAAyE;QACzE,wEAAwE;QACxE,yEAAyE;QACzE,mEAAmE;QACnE,uEAAuE;QACvE,kEAAkE;QAClE,OAAO,KAAK,CAAA;IACd,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,aAAqB,EAAE,KAAqB,EAAE,QAAgB;QAC9E,uEAAuE;QACvE,sEAAsE;QACtE,kEAAkE;QAClE,yEAAyE;QACzE,MAAM,aAAa,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;QAEhD,MAAM,OAAO,GAAG,cAAc,EAAE,CAAA;QAChC,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAA;QAClD,uEAAuE;QACvE,qEAAqE;QACrE,qEAAqE;QACrE,wEAAwE;QACxE,uDAAuD;QACvD,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IAC/E,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,cAAsB;QAC1C,wEAAwE;QACxE,mEAAmE;QACnE,wEAAwE;QACxE,sEAAsE;QACtE,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * eve.ts — Vercel "eve" adapter (env-file config, SDK-side gate).
3
+ *
4
+ * Same family as mastra.ts/vercelAiSdk.ts (see jsSdkGatedAdapter.ts), with
5
+ * one difference the shared builder cannot express: detection is a COMPOUND
6
+ * check. The npm package name `eve` is short and generic enough that a
7
+ * dependency check alone over-detects, and `agent/` is a directory name half
8
+ * the JS ecosystem uses for something — so this adapter requires BOTH the
9
+ * `eve` dependency in `package.json` AND the framework's characteristic
10
+ * `agent/` directory at the workspace root (eve is filesystem-first: the
11
+ * agent IS that directory — `agent/instructions.md`, `agent/tools/*.ts`,
12
+ * `agent/hooks/`, ... — per eve's own getting-started layout). Implemented
13
+ * by wrapping the builder's adapter and tightening its `detect`, rather
14
+ * than growing the builder a one-consumer knob.
15
+ *
16
+ * No version floor: eve is pre-1.0 (0.39.x at integration time) and the
17
+ * `approval` surface `@intutic/gate/eve` targets has no known major-version
18
+ * boundary to gate on — the churn risk is handled by the gate package's own
19
+ * pinned devDependency verification instead (TD-410).
20
+ *
21
+ * PREVIEW-CHURN NOTE (same shield the dsh integration established): eve is a
22
+ * fast-moving preview product. `@intutic/gate/eve` was verified against
23
+ * eve@0.39.1's shipped `.d.ts` — see that module's doc for exactly what was
24
+ * confirmed vs. assumed, and docs/TECH_DEBT.md TD-410/TD-411/TD-412.
25
+ *
26
+ * LLM-egress note carried into the generated `.env.intutic`: eve routes
27
+ * models through the Vercel AI Gateway by default, whose wire protocol the
28
+ * Intutic proxy does not parse — and like the plain Vercel AI SDK it is
29
+ * built on, eve has no env-var base-URL override. Only the in-code
30
+ * direct-provider path (`defineAgent({ model: withIntuticProxy(...)(...) })`)
31
+ * routes through the proxy. See TD-412 and
32
+ * `apps/docs/integrations/eve.md`.
33
+ *
34
+ * HLD §3.14 — Harness Onboarding Matrix
35
+ * @module
36
+ */
37
+ import type { IHarnessAdapter } from './types.js';
38
+ /** Vercel eve adapter — the builder's adapter with a compound `detect`. */
39
+ export declare const eveAdapter: IHarnessAdapter;
40
+ //# sourceMappingURL=eve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eve.d.ts","sourceRoot":"","sources":["../../src/harness/eve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAiBjD,2EAA2E;AAC3E,eAAO,MAAM,UAAU,EAAE,eAWxB,CAAA"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * eve.ts — Vercel "eve" adapter (env-file config, SDK-side gate).
3
+ *
4
+ * Same family as mastra.ts/vercelAiSdk.ts (see jsSdkGatedAdapter.ts), with
5
+ * one difference the shared builder cannot express: detection is a COMPOUND
6
+ * check. The npm package name `eve` is short and generic enough that a
7
+ * dependency check alone over-detects, and `agent/` is a directory name half
8
+ * the JS ecosystem uses for something — so this adapter requires BOTH the
9
+ * `eve` dependency in `package.json` AND the framework's characteristic
10
+ * `agent/` directory at the workspace root (eve is filesystem-first: the
11
+ * agent IS that directory — `agent/instructions.md`, `agent/tools/*.ts`,
12
+ * `agent/hooks/`, ... — per eve's own getting-started layout). Implemented
13
+ * by wrapping the builder's adapter and tightening its `detect`, rather
14
+ * than growing the builder a one-consumer knob.
15
+ *
16
+ * No version floor: eve is pre-1.0 (0.39.x at integration time) and the
17
+ * `approval` surface `@intutic/gate/eve` targets has no known major-version
18
+ * boundary to gate on — the churn risk is handled by the gate package's own
19
+ * pinned devDependency verification instead (TD-410).
20
+ *
21
+ * PREVIEW-CHURN NOTE (same shield the dsh integration established): eve is a
22
+ * fast-moving preview product. `@intutic/gate/eve` was verified against
23
+ * eve@0.39.1's shipped `.d.ts` — see that module's doc for exactly what was
24
+ * confirmed vs. assumed, and docs/TECH_DEBT.md TD-410/TD-411/TD-412.
25
+ *
26
+ * LLM-egress note carried into the generated `.env.intutic`: eve routes
27
+ * models through the Vercel AI Gateway by default, whose wire protocol the
28
+ * Intutic proxy does not parse — and like the plain Vercel AI SDK it is
29
+ * built on, eve has no env-var base-URL override. Only the in-code
30
+ * direct-provider path (`defineAgent({ model: withIntuticProxy(...)(...) })`)
31
+ * routes through the proxy. See TD-412 and
32
+ * `apps/docs/integrations/eve.md`.
33
+ *
34
+ * HLD §3.14 — Harness Onboarding Matrix
35
+ * @module
36
+ */
37
+ import { join } from 'node:path';
38
+ import { stat } from 'node:fs/promises';
39
+ import { HarnessType } from '@intutic/shared-types';
40
+ import { makeJsSdkGatedAdapter } from './jsSdkGatedAdapter.js';
41
+ const base = makeJsSdkGatedAdapter({
42
+ type: HarnessType.EVE,
43
+ label: 'eve',
44
+ requires: [{ name: 'eve' }],
45
+ npmInstall: '@intutic/gate',
46
+ importLine: "import { intuticApproval, intuticAuditHooks } from '@intutic/gate/eve'",
47
+ usageSummary: "defineTool({ ..., approval: intuticApproval() }) per tool (and intuticConnectionApproval() " +
48
+ 'per MCP/OpenAPI connection) — eve has no agent-level default approval field. NOTE: ' +
49
+ "eve's default AI Gateway model routing is NOT proxy-governable; the vars above only " +
50
+ 'reach a direct-provider model built in code via withIntuticProxy(...). PREVIEW product.',
51
+ docsSlug: 'eve',
52
+ });
53
+ /** Vercel eve adapter — the builder's adapter with a compound `detect`. */
54
+ export const eveAdapter = {
55
+ ...base,
56
+ async detect(workspaceRoot) {
57
+ if (!(await base.detect(workspaceRoot)))
58
+ return false;
59
+ try {
60
+ return (await stat(join(workspaceRoot, 'agent'))).isDirectory();
61
+ }
62
+ catch {
63
+ return false; // no agent/ directory — an `eve` dep alone is not an eve app
64
+ }
65
+ },
66
+ };
67
+ //# sourceMappingURL=eve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eve.js","sourceRoot":"","sources":["../../src/harness/eve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAE9D,MAAM,IAAI,GAAG,qBAAqB,CAAC;IACjC,IAAI,EAAE,WAAW,CAAC,GAAG;IACrB,KAAK,EAAE,KAAK;IACZ,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC3B,UAAU,EAAE,eAAe;IAC3B,UAAU,EAAE,wEAAwE;IACpF,YAAY,EACV,6FAA6F;QAC7F,qFAAqF;QACrF,sFAAsF;QACtF,yFAAyF;IAC3F,QAAQ,EAAE,KAAK;CAChB,CAAC,CAAA;AAEF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,UAAU,GAAoB;IACzC,GAAG,IAAI;IAEP,KAAK,CAAC,MAAM,CAAC,aAAqB;QAChC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAAE,OAAO,KAAK,CAAA;QACrD,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;QACjE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAA,CAAC,6DAA6D;QAC5E,CAAC;IACH,CAAC;CACF,CAAA"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * googleAdk.ts — Google Agent Development Kit (ADK) adapter (env-file
3
+ * config, SDK-side gate).
4
+ *
5
+ * Same shape as langgraph.ts (see sdkGatedAdapter.ts). ADK tools run as
6
+ * plain Python callables inside the agent's own process — no on-disk
7
+ * hook/config file exists to gate a call, so the blocking gate ships
8
+ * SDK-side via `intutic_clawde.gate.adapters.google_adk.IntuticPlugin`,
9
+ * whose `before_tool_callback` is ADK's own documented veto point: when it
10
+ * returns a non-None dict, the real tool call is skipped and that dict
11
+ * becomes the (synthetic) tool result (verified live against
12
+ * google-adk==2.7.1).
13
+ *
14
+ * HLD §3.14 — Harness Onboarding Matrix
15
+ * @module
16
+ */
17
+ export declare const googleAdkAdapter: import("./types.js").IHarnessAdapter;
18
+ //# sourceMappingURL=googleAdk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"googleAdk.d.ts","sourceRoot":"","sources":["../../src/harness/googleAdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,eAAO,MAAM,gBAAgB,sCAU3B,CAAA"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * googleAdk.ts — Google Agent Development Kit (ADK) adapter (env-file
3
+ * config, SDK-side gate).
4
+ *
5
+ * Same shape as langgraph.ts (see sdkGatedAdapter.ts). ADK tools run as
6
+ * plain Python callables inside the agent's own process — no on-disk
7
+ * hook/config file exists to gate a call, so the blocking gate ships
8
+ * SDK-side via `intutic_clawde.gate.adapters.google_adk.IntuticPlugin`,
9
+ * whose `before_tool_callback` is ADK's own documented veto point: when it
10
+ * returns a non-None dict, the real tool call is skipped and that dict
11
+ * becomes the (synthetic) tool result (verified live against
12
+ * google-adk==2.7.1).
13
+ *
14
+ * HLD §3.14 — Harness Onboarding Matrix
15
+ * @module
16
+ */
17
+ import { HarnessType } from '@intutic/shared-types';
18
+ import { makeSdkGatedAdapter } from './sdkGatedAdapter.js';
19
+ export const googleAdkAdapter = makeSdkGatedAdapter({
20
+ type: HarnessType.GOOGLE_ADK,
21
+ label: 'Google ADK',
22
+ keywords: ['google-adk'],
23
+ pipInstall: 'intutic-clawde[google-adk]',
24
+ importLine: 'from intutic_clawde.gate.adapters.google_adk import IntuticPlugin',
25
+ usageSummary: 'IntuticPlugin.before_tool_callback (App(plugins=[...]) — or the per-agent ' +
26
+ 'before_tool_callback fallback) refuses denied calls before the tool body runs.',
27
+ docsSlug: 'google-adk',
28
+ });
29
+ //# sourceMappingURL=googleAdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"googleAdk.js","sourceRoot":"","sources":["../../src/harness/googleAdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;IAClD,IAAI,EAAE,WAAW,CAAC,UAAU;IAC5B,KAAK,EAAE,YAAY;IACnB,QAAQ,EAAE,CAAC,YAAY,CAAC;IACxB,UAAU,EAAE,4BAA4B;IACxC,UAAU,EAAE,mEAAmE;IAC/E,YAAY,EACV,4EAA4E;QAC5E,gFAAgF;IAClF,QAAQ,EAAE,YAAY;CACvB,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"goose.d.ts","sourceRoot":"","sources":["../../src/harness/goose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAQjD,eAAO,MAAM,YAAY,EAAE,eA0B1B,CAAA"}
1
+ {"version":3,"file":"goose.d.ts","sourceRoot":"","sources":["../../src/harness/goose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAOjD,eAAO,MAAM,YAAY,EAAE,eA8B1B,CAAA"}
@@ -28,7 +28,11 @@ export const gooseAdapter = {
28
28
  return false;
29
29
  }
30
30
  },
31
- async writeConfig(_workspaceRoot, sops, proxyUrl) {
31
+ // `_sops` is unused by design, unlike every markdown adapter: Goose has no
32
+ // text-rules file to write them to — `HARNESS_CONFIG_FILES.goose` is empty,
33
+ // and its governance is the PreToolUse plugin, whose gate is compiled from
34
+ // the shared protected-path list rather than from this array.
35
+ async writeConfig(_workspaceRoot, _sops, proxyUrl) {
32
36
  // Write governance plugin + config proxy URL (gooseHooks handles both)
33
37
  await writeGooseHooks(proxyUrl);
34
38
  return GOOSE_CONFIG;
@@ -1 +1 @@
1
- {"version":3,"file":"goose.js","sourceRoot":"","sources":["../../src/harness/goose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAA4B,MAAM,kBAAkB,CAAA;AACnE,OAAO,EAAE,IAAI,EAAW,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAGnD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAA;AAEzE,MAAM,WAAW,GAAG,2BAA2B,CAAA;AAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAA;AAEjD,MAAM,CAAC,MAAM,YAAY,GAAoB;IAC3C,IAAI,EAAE,WAAW,CAAC,KAAK;IACvB,cAAc,EAAE,WAAW;IAE3B,KAAK,CAAC,MAAM,CAAC,cAAsB;QACjC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,YAAY,CAAC,CAAA;YAC1B,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,cAAsB,EAAE,IAAoB,EAAE,QAAgB;QAC9E,uEAAuE;QACvE,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAA;QAC/B,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,cAAsB;QAC1C,IAAI,CAAC;YACH,OAAO,MAAM,QAAQ,CAAC,YAAY,CAAC,CAAA;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"goose.js","sourceRoot":"","sources":["../../src/harness/goose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAGnD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAA;AAEzE,MAAM,WAAW,GAAG,2BAA2B,CAAA;AAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAA;AAEjD,MAAM,CAAC,MAAM,YAAY,GAAoB;IAC3C,IAAI,EAAE,WAAW,CAAC,KAAK;IACvB,cAAc,EAAE,WAAW;IAE3B,KAAK,CAAC,MAAM,CAAC,cAAsB;QACjC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,YAAY,CAAC,CAAA;YAC1B,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,4EAA4E;IAC5E,2EAA2E;IAC3E,8DAA8D;IAC9D,KAAK,CAAC,WAAW,CAAC,cAAsB,EAAE,KAAqB,EAAE,QAAgB;QAC/E,uEAAuE;QACvE,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAA;QAC/B,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,cAAsB;QAC1C,IAAI,CAAC;YACH,OAAO,MAAM,QAAQ,CAAC,YAAY,CAAC,CAAA;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;CACF,CAAA"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * grok.ts — xAI Grok Build adapter (binary `grok`, GA 2026-05, open-sourced
3
+ * 2026-07-15).
4
+ *
5
+ * Detects the Grok Build CLI, writes AGENTS.md governance text (the same
6
+ * cross-tool rules-file convention Codex/Amp read), and injects the Intutic
7
+ * governance hook (`grokHooks.ts` — PreToolUse, no matcher, confirmed
8
+ * `{"decision":"deny","reason":"..."}` stdout contract) plus the
9
+ * `config.toml` `[model.*]` `base_url` merge.
10
+ *
11
+ * HLD §3.14 — Harness Onboarding Matrix
12
+ * @module
13
+ */
14
+ import type { IHarnessAdapter } from './types.js';
15
+ export declare const grokAdapter: IHarnessAdapter;
16
+ //# sourceMappingURL=grok.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grok.d.ts","sourceRoot":"","sources":["../../src/harness/grok.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAOjD,eAAO,MAAM,WAAW,EAAE,eA0CzB,CAAA"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * grok.ts — xAI Grok Build adapter (binary `grok`, GA 2026-05, open-sourced
3
+ * 2026-07-15).
4
+ *
5
+ * Detects the Grok Build CLI, writes AGENTS.md governance text (the same
6
+ * cross-tool rules-file convention Codex/Amp read), and injects the Intutic
7
+ * governance hook (`grokHooks.ts` — PreToolUse, no matcher, confirmed
8
+ * `{"decision":"deny","reason":"..."}` stdout contract) plus the
9
+ * `config.toml` `[model.*]` `base_url` merge.
10
+ *
11
+ * HLD §3.14 — Harness Onboarding Matrix
12
+ * @module
13
+ */
14
+ import { access, writeFile, rename, mkdir } from 'node:fs/promises';
15
+ import { join, dirname } from 'node:path';
16
+ import { homedir } from 'node:os';
17
+ import { HarnessType } from '@intutic/shared-types';
18
+ import { hashFile } from '../lib/hash.js';
19
+ import { buildMarkdownContent } from './base.js';
20
+ import { writeGrokHooks } from '@intutic/sync-daemon/harness/grokHooks';
21
+ const CONFIG_FILE = 'AGENTS.md';
22
+ export const grokAdapter = {
23
+ type: HarnessType.GROK,
24
+ configFileName: CONFIG_FILE,
25
+ async detect(workspaceRoot) {
26
+ // Workspace-local `.grok/` (project config/hooks dir) or AGENTS.md.
27
+ for (const marker of ['.grok', CONFIG_FILE]) {
28
+ try {
29
+ await access(join(workspaceRoot, marker));
30
+ return true;
31
+ }
32
+ catch { /* fall through */ }
33
+ }
34
+ // `~/.grok` (user has Grok Build installed and has run it at least once).
35
+ try {
36
+ await access(join(homedir(), '.grok'));
37
+ return true;
38
+ }
39
+ catch { /* fall through */ }
40
+ // `grok` on PATH — same PATH-scan convention codex.ts uses.
41
+ const pathDirs = (process.env.PATH ?? '').split(process.platform === 'win32' ? ';' : ':');
42
+ try {
43
+ const { accessSync } = await import('node:fs');
44
+ for (const dir of pathDirs) {
45
+ try {
46
+ accessSync(join(dir, 'grok'));
47
+ return true;
48
+ }
49
+ catch { /* not here */ }
50
+ }
51
+ }
52
+ catch { /* ignore */ }
53
+ return false;
54
+ },
55
+ async writeConfig(workspaceRoot, sops, proxyUrl) {
56
+ // 1. AGENTS.md — governance rules text, same markdown formatter every
57
+ // other `---`-separated rules file in this codebase shares.
58
+ const filePath = join(workspaceRoot, CONFIG_FILE);
59
+ const content = buildMarkdownContent(sops, proxyUrl);
60
+ await mkdir(dirname(filePath), { recursive: true });
61
+ const tmp = filePath + '.intutic-tmp';
62
+ await writeFile(tmp, content, 'utf-8');
63
+ await rename(tmp, filePath);
64
+ // 2. PreToolUse gate (project + user level) + config.toml model base_url
65
+ // merge (project + user level).
66
+ await writeGrokHooks(workspaceRoot, proxyUrl, '');
67
+ return filePath;
68
+ },
69
+ async readCurrentHash(workspaceRoot) {
70
+ try {
71
+ return await hashFile(join(workspaceRoot, CONFIG_FILE));
72
+ }
73
+ catch {
74
+ return null;
75
+ }
76
+ },
77
+ };
78
+ //# sourceMappingURL=grok.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grok.js","sourceRoot":"","sources":["../../src/harness/grok.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * jsSdkGatedAdapter.ts — shared builder for harness adapters whose blocking
3
+ * gate ships SDK-side in `@intutic/gate` (packages/gate-js), with no on-disk
4
+ * hook/config file to write a tool-call gate into.
5
+ *
6
+ * The JS/TS-native counterpart of `sdkGatedAdapter.ts` (Wave 1's Python
7
+ * builder — see its module doc for why a shared factory exists instead of
8
+ * hand-copying one adapter per framework: the same defect-generator argument
9
+ * applies here). Two differences from the Python version drive most of this
10
+ * file's shape:
11
+ *
12
+ * 1. **Manifest format.** Python's manifests (`pyproject.toml`,
13
+ * `requirements.txt`, `uv.lock`) are scanned as raw text for a
14
+ * case-insensitive substring/regex match. `package.json` is scanned as
15
+ * structured JSON — `dependencies`/`devDependencies`/`peerDependencies`
16
+ * — because a JS/TS framework detection needs a VERSION check (the
17
+ * Vercel AI SDK's `toolApproval` veto point is a v6+ API; the same
18
+ * package name existed at lower majors with a materially different
19
+ * surface), which a plain substring test cannot express.
20
+ * 2. **The pointer comment.** Python frameworks point at
21
+ * `pip install intutic-clawde[...]` and a `from intutic_clawde...`
22
+ * import. These point at `npm install @intutic/gate` and an
23
+ * `import { ... } from '@intutic/gate/<subpath>'` line instead — the
24
+ * env file's prose says "your own Node.js process", not "your own
25
+ * Python process".
26
+ *
27
+ * @module
28
+ */
29
+ import type { HarnessType } from '@intutic/shared-types';
30
+ import type { IHarnessAdapter } from './types.js';
31
+ /** One package.json dependency this framework requires to be detected.
32
+ * `minMajor`, when set, requires the declared range's leading version
33
+ * digits to be `>= minMajor` — a range this loose (`^7.0.0`, `~7.2.0`,
34
+ * `>=7.0.0`, a bare `7.0.0`) is exactly what real `package.json` files
35
+ * declare; anything the leading-digit scan cannot parse (`workspace:*`,
36
+ * `latest`, a git URL) is treated as NOT satisfying a `minMajor`
37
+ * requirement — silently assuming a floor is met is worse than asking the
38
+ * operator to pin a real version. */
39
+ export interface JsPackageRequirement {
40
+ name: string;
41
+ minMajor?: number;
42
+ }
43
+ export interface JsSdkGatedFrameworkSpec {
44
+ /** HarnessType enum value this adapter detects/configures. */
45
+ type: HarnessType;
46
+ /** Display name used in the generated comment, e.g. "Mastra". */
47
+ label: string;
48
+ /** ALL of these must be present (and satisfy their `minMajor`, if set). */
49
+ requires: readonly JsPackageRequirement[];
50
+ /**
51
+ * Additionally require at least one dependency whose name starts with
52
+ * this prefix (e.g. `"@ai-sdk/"` for the Vercel AI SDK's provider
53
+ * packages) — `ai` alone declares the tool-loop surface but ships no
54
+ * model provider, so a workspace with `ai` and no `@ai-sdk/*` package
55
+ * cannot actually call a model yet.
56
+ */
57
+ requiresPrefix?: string;
58
+ /**
59
+ * OR-semantics variant of `requiresPrefix`, for frameworks whose presence
60
+ * is signalled by any one of SEVERAL package families rather than one
61
+ * required package plus one prefix: at least one dependency must start
62
+ * with at least one of these prefixes (an exact package name works too —
63
+ * a name is a prefix of itself). Used by `@ai-sdk/harness` detection,
64
+ * where `@ai-sdk/harness`, any `@ai-sdk/harness-*` adapter, or any
65
+ * `@ai-sdk/sandbox-*` provider each independently indicate the framework.
66
+ * Evaluated IN ADDITION to `requires`/`requiresPrefix` when both are set.
67
+ */
68
+ requiresAnyPrefix?: readonly string[];
69
+ /** `npm install <npmInstall>` shown in the generated comment. */
70
+ npmInstall: string;
71
+ /**
72
+ * Replaces the default preamble lines of the generated comment block
73
+ * (`These env vars govern LLM egress only. <label> tools run in your own
74
+ * Node.js process, ...`) — each entry is one line, rendered with a leading
75
+ * `# `. For frameworks whose execution model makes the default prose
76
+ * FALSE rather than merely generic: `@ai-sdk/harness` tools execute
77
+ * server-side in Vercel Sandbox microVMs, so neither "tools run in your
78
+ * own Node.js process" nor an unqualified "these vars govern LLM egress"
79
+ * holds there. Omit for the standard in-process frameworks.
80
+ */
81
+ envPreamble?: readonly string[];
82
+ /** The `@intutic/gate/<subpath>` import line shown in the comment. */
83
+ importLine: string;
84
+ /** One line (no leading "# ") summarising how the imported symbol vetoes a call. */
85
+ usageSummary: string;
86
+ /** apps/docs/integrations/<slug> */
87
+ docsSlug: string;
88
+ }
89
+ /**
90
+ * Leading major version from a semver range string, without regex — plain
91
+ * linear scans over the (short, locally-authored) range string, matching
92
+ * `gate.ts`'s `trimTrailingSlashes`/`trimLeadingSlashes` style rather than
93
+ * an unbounded-quantifier regex. Handles the common range prefixes
94
+ * (`^`, `~`, `>=`, `<=`, `>`, `<`, `=`, a leading `v`, whitespace) by simply
95
+ * skipping every non-digit character before the first digit run. Returns
96
+ * `null` when no leading digit run exists at all (`"workspace:*"`,
97
+ * `"latest"`, `"*"`, a git/URL range).
98
+ */
99
+ export declare function leadingMajorVersion(range: string): number | null;
100
+ /** Builds an `IHarnessAdapter` for one JS/TS SDK-gated framework from its spec. */
101
+ export declare function makeJsSdkGatedAdapter(spec: JsSdkGatedFrameworkSpec): IHarnessAdapter;
102
+ //# sourceMappingURL=jsSdkGatedAdapter.d.ts.map