@owlmeans/viable-common 0.0.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 (453) hide show
  1. package/README.md +68 -0
  2. package/agent-meta/manifest.json +16 -0
  3. package/agent-meta/skills/viable-common/SKILL.md +179 -0
  4. package/build/agent/index.d.ts +4 -0
  5. package/build/agent/index.d.ts.map +1 -0
  6. package/build/agent/index.js +3 -0
  7. package/build/agent/index.js.map +1 -0
  8. package/build/agent/memory.d.ts +12 -0
  9. package/build/agent/memory.d.ts.map +1 -0
  10. package/build/agent/memory.js +11 -0
  11. package/build/agent/memory.js.map +1 -0
  12. package/build/agent/spectator/consts.d.ts +9 -0
  13. package/build/agent/spectator/consts.d.ts.map +1 -0
  14. package/build/agent/spectator/consts.js +10 -0
  15. package/build/agent/spectator/consts.js.map +1 -0
  16. package/build/agent/spectator/index.d.ts +3 -0
  17. package/build/agent/spectator/index.d.ts.map +1 -0
  18. package/build/agent/spectator/index.js +2 -0
  19. package/build/agent/spectator/index.js.map +1 -0
  20. package/build/agent/spectator/types.d.ts +13 -0
  21. package/build/agent/spectator/types.d.ts.map +1 -0
  22. package/build/agent/spectator/types.js +2 -0
  23. package/build/agent/spectator/types.js.map +1 -0
  24. package/build/agent/types.d.ts +10 -0
  25. package/build/agent/types.d.ts.map +1 -0
  26. package/build/agent/types.js +2 -0
  27. package/build/agent/types.js.map +1 -0
  28. package/build/areas/consts.d.ts +88 -0
  29. package/build/areas/consts.d.ts.map +1 -0
  30. package/build/areas/consts.js +106 -0
  31. package/build/areas/consts.js.map +1 -0
  32. package/build/areas/index.d.ts +3 -0
  33. package/build/areas/index.d.ts.map +1 -0
  34. package/build/areas/index.js +2 -0
  35. package/build/areas/index.js.map +1 -0
  36. package/build/areas/types.d.ts +28 -0
  37. package/build/areas/types.d.ts.map +1 -0
  38. package/build/areas/types.js +2 -0
  39. package/build/areas/types.js.map +1 -0
  40. package/build/ba/consts.d.ts +38 -0
  41. package/build/ba/consts.d.ts.map +1 -0
  42. package/build/ba/consts.js +41 -0
  43. package/build/ba/consts.js.map +1 -0
  44. package/build/ba/helpers.d.ts +41 -0
  45. package/build/ba/helpers.d.ts.map +1 -0
  46. package/build/ba/helpers.js +79 -0
  47. package/build/ba/helpers.js.map +1 -0
  48. package/build/ba/index.d.ts +5 -0
  49. package/build/ba/index.d.ts.map +1 -0
  50. package/build/ba/index.js +4 -0
  51. package/build/ba/index.js.map +1 -0
  52. package/build/ba/schemas.d.ts +13 -0
  53. package/build/ba/schemas.d.ts.map +1 -0
  54. package/build/ba/schemas.js +181 -0
  55. package/build/ba/schemas.js.map +1 -0
  56. package/build/ba/types.d.ts +113 -0
  57. package/build/ba/types.d.ts.map +1 -0
  58. package/build/ba/types.js +2 -0
  59. package/build/ba/types.js.map +1 -0
  60. package/build/blueprint/case.d.ts +73 -0
  61. package/build/blueprint/case.d.ts.map +1 -0
  62. package/build/blueprint/case.js +244 -0
  63. package/build/blueprint/case.js.map +1 -0
  64. package/build/blueprint/consts.d.ts +11 -0
  65. package/build/blueprint/consts.d.ts.map +1 -0
  66. package/build/blueprint/consts.js +11 -0
  67. package/build/blueprint/consts.js.map +1 -0
  68. package/build/blueprint/index.d.ts +6 -0
  69. package/build/blueprint/index.d.ts.map +1 -0
  70. package/build/blueprint/index.js +6 -0
  71. package/build/blueprint/index.js.map +1 -0
  72. package/build/blueprint/resolve.d.ts +51 -0
  73. package/build/blueprint/resolve.d.ts.map +1 -0
  74. package/build/blueprint/resolve.js +108 -0
  75. package/build/blueprint/resolve.js.map +1 -0
  76. package/build/blueprint/schemas.d.ts +41 -0
  77. package/build/blueprint/schemas.d.ts.map +1 -0
  78. package/build/blueprint/schemas.js +27 -0
  79. package/build/blueprint/schemas.js.map +1 -0
  80. package/build/blueprint/types.d.ts +186 -0
  81. package/build/blueprint/types.d.ts.map +1 -0
  82. package/build/blueprint/types.js +32 -0
  83. package/build/blueprint/types.js.map +1 -0
  84. package/build/branding.d.ts +19 -0
  85. package/build/branding.d.ts.map +1 -0
  86. package/build/branding.js +32 -0
  87. package/build/branding.js.map +1 -0
  88. package/build/connect/consts.d.ts +378 -0
  89. package/build/connect/consts.d.ts.map +1 -0
  90. package/build/connect/consts.js +425 -0
  91. package/build/connect/consts.js.map +1 -0
  92. package/build/connect/entrypoints.d.ts +41 -0
  93. package/build/connect/entrypoints.d.ts.map +1 -0
  94. package/build/connect/entrypoints.js +141 -0
  95. package/build/connect/entrypoints.js.map +1 -0
  96. package/build/connect/errors.d.ts +50 -0
  97. package/build/connect/errors.d.ts.map +1 -0
  98. package/build/connect/errors.js +77 -0
  99. package/build/connect/errors.js.map +1 -0
  100. package/build/connect/index.d.ts +8 -0
  101. package/build/connect/index.d.ts.map +1 -0
  102. package/build/connect/index.js +6 -0
  103. package/build/connect/index.js.map +1 -0
  104. package/build/connect/ops.d.ts +192 -0
  105. package/build/connect/ops.d.ts.map +1 -0
  106. package/build/connect/ops.js +2 -0
  107. package/build/connect/ops.js.map +1 -0
  108. package/build/connect/references.d.ts +194 -0
  109. package/build/connect/references.d.ts.map +1 -0
  110. package/build/connect/references.js +62 -0
  111. package/build/connect/references.js.map +1 -0
  112. package/build/connect/schemas.d.ts +59 -0
  113. package/build/connect/schemas.d.ts.map +1 -0
  114. package/build/connect/schemas.js +346 -0
  115. package/build/connect/schemas.js.map +1 -0
  116. package/build/connect/types.d.ts +428 -0
  117. package/build/connect/types.d.ts.map +1 -0
  118. package/build/connect/types.js +2 -0
  119. package/build/connect/types.js.map +1 -0
  120. package/build/consts.d.ts +9 -0
  121. package/build/consts.d.ts.map +1 -0
  122. package/build/consts.js +31 -0
  123. package/build/consts.js.map +1 -0
  124. package/build/convert/consts.d.ts +539 -0
  125. package/build/convert/consts.d.ts.map +1 -0
  126. package/build/convert/consts.js +630 -0
  127. package/build/convert/consts.js.map +1 -0
  128. package/build/convert/helpers.d.ts +91 -0
  129. package/build/convert/helpers.d.ts.map +1 -0
  130. package/build/convert/helpers.js +301 -0
  131. package/build/convert/helpers.js.map +1 -0
  132. package/build/convert/index.d.ts +11 -0
  133. package/build/convert/index.d.ts.map +1 -0
  134. package/build/convert/index.js +4 -0
  135. package/build/convert/index.js.map +1 -0
  136. package/build/convert/schemas.d.ts +62 -0
  137. package/build/convert/schemas.d.ts.map +1 -0
  138. package/build/convert/schemas.js +626 -0
  139. package/build/convert/schemas.js.map +1 -0
  140. package/build/convert/types.d.ts +683 -0
  141. package/build/convert/types.d.ts.map +1 -0
  142. package/build/convert/types.js +2 -0
  143. package/build/convert/types.js.map +1 -0
  144. package/build/design/consts.d.ts +25 -0
  145. package/build/design/consts.d.ts.map +1 -0
  146. package/build/design/consts.js +26 -0
  147. package/build/design/consts.js.map +1 -0
  148. package/build/design/helpers.d.ts +60 -0
  149. package/build/design/helpers.d.ts.map +1 -0
  150. package/build/design/helpers.js +221 -0
  151. package/build/design/helpers.js.map +1 -0
  152. package/build/design/index.d.ts +6 -0
  153. package/build/design/index.d.ts.map +1 -0
  154. package/build/design/index.js +5 -0
  155. package/build/design/index.js.map +1 -0
  156. package/build/design/runtime.d.ts +126 -0
  157. package/build/design/runtime.d.ts.map +1 -0
  158. package/build/design/runtime.js +65 -0
  159. package/build/design/runtime.js.map +1 -0
  160. package/build/design/schemas.d.ts +21 -0
  161. package/build/design/schemas.d.ts.map +1 -0
  162. package/build/design/schemas.js +369 -0
  163. package/build/design/schemas.js.map +1 -0
  164. package/build/design/types.d.ts +199 -0
  165. package/build/design/types.d.ts.map +1 -0
  166. package/build/design/types.js +2 -0
  167. package/build/design/types.js.map +1 -0
  168. package/build/dev/consts.d.ts +32 -0
  169. package/build/dev/consts.d.ts.map +1 -0
  170. package/build/dev/consts.js +33 -0
  171. package/build/dev/consts.js.map +1 -0
  172. package/build/dev/index.d.ts +4 -0
  173. package/build/dev/index.d.ts.map +1 -0
  174. package/build/dev/index.js +3 -0
  175. package/build/dev/index.js.map +1 -0
  176. package/build/dev/schemas.d.ts +15 -0
  177. package/build/dev/schemas.d.ts.map +1 -0
  178. package/build/dev/schemas.js +116 -0
  179. package/build/dev/schemas.js.map +1 -0
  180. package/build/dev/types.d.ts +42 -0
  181. package/build/dev/types.d.ts.map +1 -0
  182. package/build/dev/types.js +2 -0
  183. package/build/dev/types.js.map +1 -0
  184. package/build/execution/consts.d.ts +36 -0
  185. package/build/execution/consts.d.ts.map +1 -0
  186. package/build/execution/consts.js +37 -0
  187. package/build/execution/consts.js.map +1 -0
  188. package/build/execution/index.d.ts +3 -0
  189. package/build/execution/index.d.ts.map +1 -0
  190. package/build/execution/index.js +2 -0
  191. package/build/execution/index.js.map +1 -0
  192. package/build/execution/types.d.ts +50 -0
  193. package/build/execution/types.d.ts.map +1 -0
  194. package/build/execution/types.js +2 -0
  195. package/build/execution/types.js.map +1 -0
  196. package/build/index.d.ts +22 -0
  197. package/build/index.d.ts.map +1 -0
  198. package/build/index.js +21 -0
  199. package/build/index.js.map +1 -0
  200. package/build/integrity/consts.d.ts +226 -0
  201. package/build/integrity/consts.d.ts.map +1 -0
  202. package/build/integrity/consts.js +401 -0
  203. package/build/integrity/consts.js.map +1 -0
  204. package/build/integrity/index.d.ts +4 -0
  205. package/build/integrity/index.d.ts.map +1 -0
  206. package/build/integrity/index.js +3 -0
  207. package/build/integrity/index.js.map +1 -0
  208. package/build/integrity/types.d.ts +35 -0
  209. package/build/integrity/types.d.ts.map +1 -0
  210. package/build/integrity/types.js +2 -0
  211. package/build/integrity/types.js.map +1 -0
  212. package/build/integrity/verify.d.ts +23 -0
  213. package/build/integrity/verify.d.ts.map +1 -0
  214. package/build/integrity/verify.js +198 -0
  215. package/build/integrity/verify.js.map +1 -0
  216. package/build/metadata/consts.d.ts +101 -0
  217. package/build/metadata/consts.d.ts.map +1 -0
  218. package/build/metadata/consts.js +104 -0
  219. package/build/metadata/consts.js.map +1 -0
  220. package/build/metadata/index.d.ts +3 -0
  221. package/build/metadata/index.d.ts.map +1 -0
  222. package/build/metadata/index.js +3 -0
  223. package/build/metadata/index.js.map +1 -0
  224. package/build/metadata/types.d.ts +286 -0
  225. package/build/metadata/types.d.ts.map +1 -0
  226. package/build/metadata/types.js +39 -0
  227. package/build/metadata/types.js.map +1 -0
  228. package/build/moderation/consts.d.ts +58 -0
  229. package/build/moderation/consts.d.ts.map +1 -0
  230. package/build/moderation/consts.js +60 -0
  231. package/build/moderation/consts.js.map +1 -0
  232. package/build/moderation/index.d.ts +5 -0
  233. package/build/moderation/index.d.ts.map +1 -0
  234. package/build/moderation/index.js +4 -0
  235. package/build/moderation/index.js.map +1 -0
  236. package/build/moderation/schemas.d.ts +19 -0
  237. package/build/moderation/schemas.d.ts.map +1 -0
  238. package/build/moderation/schemas.js +26 -0
  239. package/build/moderation/schemas.js.map +1 -0
  240. package/build/moderation/types.d.ts +64 -0
  241. package/build/moderation/types.d.ts.map +1 -0
  242. package/build/moderation/types.js +2 -0
  243. package/build/moderation/types.js.map +1 -0
  244. package/build/moderation/utils.d.ts +21 -0
  245. package/build/moderation/utils.d.ts.map +1 -0
  246. package/build/moderation/utils.js +31 -0
  247. package/build/moderation/utils.js.map +1 -0
  248. package/build/preview/consts.d.ts +10 -0
  249. package/build/preview/consts.d.ts.map +1 -0
  250. package/build/preview/consts.js +11 -0
  251. package/build/preview/consts.js.map +1 -0
  252. package/build/preview/index.d.ts +3 -0
  253. package/build/preview/index.d.ts.map +1 -0
  254. package/build/preview/index.js +2 -0
  255. package/build/preview/index.js.map +1 -0
  256. package/build/preview/types.d.ts +60 -0
  257. package/build/preview/types.d.ts.map +1 -0
  258. package/build/preview/types.js +2 -0
  259. package/build/preview/types.js.map +1 -0
  260. package/build/scaffold/consts.d.ts +25 -0
  261. package/build/scaffold/consts.d.ts.map +1 -0
  262. package/build/scaffold/consts.js +26 -0
  263. package/build/scaffold/consts.js.map +1 -0
  264. package/build/scaffold/helpers.d.ts +35 -0
  265. package/build/scaffold/helpers.d.ts.map +1 -0
  266. package/build/scaffold/helpers.js +54 -0
  267. package/build/scaffold/helpers.js.map +1 -0
  268. package/build/scaffold/index.d.ts +5 -0
  269. package/build/scaffold/index.d.ts.map +1 -0
  270. package/build/scaffold/index.js +4 -0
  271. package/build/scaffold/index.js.map +1 -0
  272. package/build/scaffold/schemas.d.ts +5 -0
  273. package/build/scaffold/schemas.d.ts.map +1 -0
  274. package/build/scaffold/schemas.js +273 -0
  275. package/build/scaffold/schemas.js.map +1 -0
  276. package/build/scaffold/types.d.ts +144 -0
  277. package/build/scaffold/types.d.ts.map +1 -0
  278. package/build/scaffold/types.js +2 -0
  279. package/build/scaffold/types.js.map +1 -0
  280. package/build/skills/catalogue.d.ts +47 -0
  281. package/build/skills/catalogue.d.ts.map +1 -0
  282. package/build/skills/catalogue.js +1566 -0
  283. package/build/skills/catalogue.js.map +1 -0
  284. package/build/skills/consts.d.ts +104 -0
  285. package/build/skills/consts.d.ts.map +1 -0
  286. package/build/skills/consts.js +170 -0
  287. package/build/skills/consts.js.map +1 -0
  288. package/build/skills/index.d.ts +4 -0
  289. package/build/skills/index.d.ts.map +1 -0
  290. package/build/skills/index.js +4 -0
  291. package/build/skills/index.js.map +1 -0
  292. package/build/skills/roles.d.ts +52 -0
  293. package/build/skills/roles.d.ts.map +1 -0
  294. package/build/skills/roles.js +256 -0
  295. package/build/skills/roles.js.map +1 -0
  296. package/build/slot/consts.d.ts +305 -0
  297. package/build/slot/consts.d.ts.map +1 -0
  298. package/build/slot/consts.js +376 -0
  299. package/build/slot/consts.js.map +1 -0
  300. package/build/slot/helpers.d.ts +25 -0
  301. package/build/slot/helpers.d.ts.map +1 -0
  302. package/build/slot/helpers.js +27 -0
  303. package/build/slot/helpers.js.map +1 -0
  304. package/build/slot/index.d.ts +6 -0
  305. package/build/slot/index.d.ts.map +1 -0
  306. package/build/slot/index.js +5 -0
  307. package/build/slot/index.js.map +1 -0
  308. package/build/slot/layout.d.ts +72 -0
  309. package/build/slot/layout.d.ts.map +1 -0
  310. package/build/slot/layout.js +82 -0
  311. package/build/slot/layout.js.map +1 -0
  312. package/build/slot/schemas.d.ts +12 -0
  313. package/build/slot/schemas.d.ts.map +1 -0
  314. package/build/slot/schemas.js +43 -0
  315. package/build/slot/schemas.js.map +1 -0
  316. package/build/slot/types.d.ts +147 -0
  317. package/build/slot/types.d.ts.map +1 -0
  318. package/build/slot/types.js +2 -0
  319. package/build/slot/types.js.map +1 -0
  320. package/build/topology/card.d.ts +23 -0
  321. package/build/topology/card.d.ts.map +1 -0
  322. package/build/topology/card.js +95 -0
  323. package/build/topology/card.js.map +1 -0
  324. package/build/topology/consts.d.ts +32 -0
  325. package/build/topology/consts.d.ts.map +1 -0
  326. package/build/topology/consts.js +55 -0
  327. package/build/topology/consts.js.map +1 -0
  328. package/build/topology/helpers.d.ts +44 -0
  329. package/build/topology/helpers.d.ts.map +1 -0
  330. package/build/topology/helpers.js +112 -0
  331. package/build/topology/helpers.js.map +1 -0
  332. package/build/topology/index.d.ts +5 -0
  333. package/build/topology/index.d.ts.map +1 -0
  334. package/build/topology/index.js +4 -0
  335. package/build/topology/index.js.map +1 -0
  336. package/build/topology/types.d.ts +83 -0
  337. package/build/topology/types.d.ts.map +1 -0
  338. package/build/topology/types.js +2 -0
  339. package/build/topology/types.js.map +1 -0
  340. package/build/types.d.ts +88 -0
  341. package/build/types.d.ts.map +1 -0
  342. package/build/types.js +2 -0
  343. package/build/types.js.map +1 -0
  344. package/build/ux/consts.d.ts +5 -0
  345. package/build/ux/consts.d.ts.map +1 -0
  346. package/build/ux/consts.js +6 -0
  347. package/build/ux/consts.js.map +1 -0
  348. package/build/ux/index.d.ts +4 -0
  349. package/build/ux/index.d.ts.map +1 -0
  350. package/build/ux/index.js +3 -0
  351. package/build/ux/index.js.map +1 -0
  352. package/build/ux/schemas.d.ts +8 -0
  353. package/build/ux/schemas.d.ts.map +1 -0
  354. package/build/ux/schemas.js +91 -0
  355. package/build/ux/schemas.js.map +1 -0
  356. package/build/ux/types.d.ts +21 -0
  357. package/build/ux/types.d.ts.map +1 -0
  358. package/build/ux/types.js +2 -0
  359. package/build/ux/types.js.map +1 -0
  360. package/package.json +71 -0
  361. package/src/agent/index.ts +4 -0
  362. package/src/agent/memory.ts +16 -0
  363. package/src/agent/spectator/consts.ts +10 -0
  364. package/src/agent/spectator/index.ts +3 -0
  365. package/src/agent/spectator/types.ts +14 -0
  366. package/src/agent/types.ts +10 -0
  367. package/src/areas/consts.ts +112 -0
  368. package/src/areas/index.ts +3 -0
  369. package/src/areas/types.ts +29 -0
  370. package/src/ba/consts.ts +40 -0
  371. package/src/ba/helpers.ts +93 -0
  372. package/src/ba/index.ts +5 -0
  373. package/src/ba/schemas.ts +196 -0
  374. package/src/ba/types.ts +125 -0
  375. package/src/blueprint/case.ts +272 -0
  376. package/src/blueprint/consts.ts +11 -0
  377. package/src/blueprint/index.ts +6 -0
  378. package/src/blueprint/resolve.ts +133 -0
  379. package/src/blueprint/schemas.ts +44 -0
  380. package/src/blueprint/types.ts +204 -0
  381. package/src/branding.ts +34 -0
  382. package/src/connect/consts.ts +441 -0
  383. package/src/connect/entrypoints.ts +291 -0
  384. package/src/connect/errors.ts +91 -0
  385. package/src/connect/index.ts +7 -0
  386. package/src/connect/ops.ts +208 -0
  387. package/src/connect/references.ts +89 -0
  388. package/src/connect/schemas.ts +384 -0
  389. package/src/connect/types.ts +456 -0
  390. package/src/consts.ts +34 -0
  391. package/src/convert/consts.ts +672 -0
  392. package/src/convert/helpers.ts +340 -0
  393. package/src/convert/index.ts +10 -0
  394. package/src/convert/schemas.ts +663 -0
  395. package/src/convert/types.ts +741 -0
  396. package/src/design/consts.ts +26 -0
  397. package/src/design/helpers.ts +255 -0
  398. package/src/design/index.ts +5 -0
  399. package/src/design/runtime.ts +142 -0
  400. package/src/design/schemas.ts +384 -0
  401. package/src/design/types.ts +191 -0
  402. package/src/dev/consts.ts +35 -0
  403. package/src/dev/index.ts +4 -0
  404. package/src/dev/schemas.ts +124 -0
  405. package/src/dev/types.ts +47 -0
  406. package/src/execution/consts.ts +37 -0
  407. package/src/execution/index.ts +3 -0
  408. package/src/execution/types.ts +55 -0
  409. package/src/index.ts +22 -0
  410. package/src/integrity/consts.ts +477 -0
  411. package/src/integrity/index.ts +3 -0
  412. package/src/integrity/types.ts +37 -0
  413. package/src/integrity/verify.ts +221 -0
  414. package/src/metadata/consts.ts +118 -0
  415. package/src/metadata/index.ts +3 -0
  416. package/src/metadata/types.ts +310 -0
  417. package/src/moderation/consts.ts +59 -0
  418. package/src/moderation/index.ts +4 -0
  419. package/src/moderation/schemas.ts +28 -0
  420. package/src/moderation/types.ts +68 -0
  421. package/src/moderation/utils.ts +35 -0
  422. package/src/preview/consts.ts +9 -0
  423. package/src/preview/index.ts +3 -0
  424. package/src/preview/types.ts +79 -0
  425. package/src/scaffold/consts.ts +26 -0
  426. package/src/scaffold/helpers.ts +84 -0
  427. package/src/scaffold/index.ts +4 -0
  428. package/src/scaffold/schemas.ts +283 -0
  429. package/src/scaffold/types.ts +118 -0
  430. package/src/skills/catalogue.ts +1617 -0
  431. package/src/skills/consts.ts +183 -0
  432. package/src/skills/index.ts +4 -0
  433. package/src/skills/roles.ts +299 -0
  434. package/src/slot/consts.ts +393 -0
  435. package/src/slot/helpers.ts +34 -0
  436. package/src/slot/index.ts +5 -0
  437. package/src/slot/layout.ts +141 -0
  438. package/src/slot/schemas.ts +46 -0
  439. package/src/slot/types.ts +164 -0
  440. package/src/topology/card.ts +106 -0
  441. package/src/topology/consts.ts +59 -0
  442. package/src/topology/helpers.ts +138 -0
  443. package/src/topology/index.ts +5 -0
  444. package/src/topology/types.ts +86 -0
  445. package/src/types.ts +104 -0
  446. package/src/ux/consts.ts +5 -0
  447. package/src/ux/index.ts +4 -0
  448. package/src/ux/schemas.ts +97 -0
  449. package/src/ux/types.ts +25 -0
  450. package/tests/connect-convert.spec.ts +161 -0
  451. package/tests/convert.spec.ts +318 -0
  452. package/tests/design.spec.ts +136 -0
  453. package/tsconfig.json +16 -0
@@ -0,0 +1,291 @@
1
+ import { body, entrypoint, filter, gate, guard, params, query } from '@owlmeans/entrypoint'
2
+ import type { CommonEntrypoint, CommonEntrypointOptions } from '@owlmeans/entrypoint'
3
+ import { route, RouteMethod, socket } from '@owlmeans/route'
4
+ import { ConverterProjectLlmBodySchema } from '../convert/schemas.js'
5
+ import { connect } from './consts.js'
6
+ import {
7
+ ConnectAttachBodySchema, ConnectConfirmBodySchema, ConnectConvertCreateBodySchema,
8
+ ConnectConvertProceedBodySchema, ConnectCreateBodySchema, ConnectInquiryParamsSchema,
9
+ ConnectJobParamsSchema, ConnectModifyBodySchema, ConnectOpParamsSchema, ConnectOpResultSchema,
10
+ ConnectPipelineParamsSchema, ConnectPipelineResumeBodySchema, ConnectProjectIdSchema,
11
+ ConnectProjectLlmBodySchema, ConnectSessionOpenSchema, ConnectSessionParamsSchema,
12
+ ConnectStoryBodySchema, ConnectStoryParamsSchema, ConnectStoryQuerySchema,
13
+ ConnectWaitQuerySchema, InquiryAnswerSchema
14
+ } from './schemas.js'
15
+
16
+ /**
17
+ * What the platform injects when it mounts the connector routes.
18
+ *
19
+ * The names of the guard and the gates belong to the deployment, not to the contract: a connector
20
+ * API on another platform would guard the same paths with its own vocabulary. Everything else —
21
+ * paths, methods, schemas, parents — is fixed here so a client cannot address them differently.
22
+ */
23
+ export interface ConnectEntrypointOptions {
24
+ /** The guard alias every connector route carries. */
25
+ guard: string
26
+ /** The gate alias and parameters that decide project ownership. */
27
+ gate?: { alias: string, params: string[] }
28
+ /**
29
+ * The gate that decides whether the caller may use the local-LLM mode.
30
+ *
31
+ * Applied to the two routes that can turn it on — opening a delegated session and pinning a
32
+ * project to it. Everything else is free: `cloud` is the default and the platform writes it
33
+ * back by itself when a plan lapses.
34
+ */
35
+ localLlm?: { alias: string, params: string[] }
36
+ /** The parent of the socket route — the platform's own websocket base. */
37
+ updateBase: string
38
+ /** Path prefix; defaults to `/connect`. */
39
+ path?: string
40
+ }
41
+
42
+ /**
43
+ * Declare the connector's HTTP and socket surface.
44
+ *
45
+ * One list, spread into the platform's own entrypoints. Handlers are elevated onto these aliases
46
+ * server-side and onto client entrypoints in the SDK — the same declarations both times, which is
47
+ * what makes a path or a schema impossible to get wrong on one side only.
48
+ */
49
+ export const connectEntrypoints = (opts: ConnectEntrypointOptions): CommonEntrypoint[] => {
50
+ const prefix = opts.path ?? '/connect'
51
+ const ownership = opts.gate != null
52
+ ? guard(opts.guard, gate(opts.gate.alias, opts.gate.params))
53
+ : guard(opts.guard)
54
+ const paid: CommonEntrypointOptions | undefined = opts.localLlm != null
55
+ ? gate(opts.localLlm.alias, opts.localLlm.params)
56
+ : undefined
57
+
58
+ return [
59
+ entrypoint(route(connect.base, prefix), ownership),
60
+
61
+ entrypoint(route(connect.capabilities, '/capabilities', {
62
+ parent: connect.base, method: RouteMethod.GET
63
+ })),
64
+
65
+ // --- session ---------------------------------------------------------------------------
66
+ entrypoint(
67
+ route(connect.session.open, '/session', { parent: connect.base, method: RouteMethod.POST }),
68
+ filter(body(ConnectSessionOpenSchema))
69
+ ),
70
+ entrypoint(
71
+ route(connect.session.openDelegated, '/session/delegated', {
72
+ parent: connect.base, method: RouteMethod.POST
73
+ }),
74
+ filter(body(ConnectSessionOpenSchema), paid)
75
+ ),
76
+ entrypoint(
77
+ route(connect.session.get, '/session/:sessionId', {
78
+ parent: connect.base, method: RouteMethod.GET
79
+ }),
80
+ filter(params(ConnectSessionParamsSchema))
81
+ ),
82
+ entrypoint(
83
+ route(connect.session.heartbeat, '/session/:sessionId/heartbeat', {
84
+ parent: connect.base, method: RouteMethod.POST
85
+ }),
86
+ filter(params(ConnectSessionParamsSchema))
87
+ ),
88
+ entrypoint(
89
+ route(connect.session.close, '/session/:sessionId/close', {
90
+ parent: connect.base, method: RouteMethod.POST
91
+ }),
92
+ filter(params(ConnectSessionParamsSchema))
93
+ ),
94
+ entrypoint(
95
+ route(connect.session.socket, '/connect/:sessionId', socket(opts.updateBase)),
96
+ filter(params(ConnectSessionParamsSchema))
97
+ ),
98
+
99
+ // --- operations ------------------------------------------------------------------------
100
+ entrypoint(
101
+ route(connect.op.pull, '/session/:sessionId/ops', {
102
+ parent: connect.base, method: RouteMethod.GET
103
+ }),
104
+ filter(params(ConnectSessionParamsSchema, query(ConnectWaitQuerySchema)))
105
+ ),
106
+ entrypoint(
107
+ route(connect.op.submit, '/session/:sessionId/ops/:opId', {
108
+ parent: connect.base, method: RouteMethod.POST
109
+ }),
110
+ filter(params(ConnectOpParamsSchema, body(ConnectOpResultSchema)))
111
+ ),
112
+
113
+ // --- project ---------------------------------------------------------------------------
114
+ entrypoint(
115
+ route(connect.project.create, '/project', { parent: connect.base, method: RouteMethod.POST }),
116
+ filter(body(ConnectCreateBodySchema))
117
+ ),
118
+ entrypoint(route(connect.project.list, '/project', {
119
+ parent: connect.base, method: RouteMethod.GET
120
+ })),
121
+ entrypoint(
122
+ route(connect.project.attach, '/project/attach', {
123
+ parent: connect.base, method: RouteMethod.POST
124
+ }),
125
+ filter(body(ConnectAttachBodySchema))
126
+ ),
127
+ entrypoint(
128
+ route(connect.project.confirm, '/project/:id/confirm', {
129
+ parent: connect.base, method: RouteMethod.POST
130
+ }),
131
+ filter(params(ConnectProjectIdSchema, body(ConnectConfirmBodySchema)))
132
+ ),
133
+ entrypoint(
134
+ route(connect.project.status, '/project/:id/status', {
135
+ parent: connect.base, method: RouteMethod.GET
136
+ }),
137
+ filter(params(ConnectProjectIdSchema))
138
+ ),
139
+ entrypoint(
140
+ route(connect.project.reinit, '/project/:id/reinit', {
141
+ parent: connect.base, method: RouteMethod.POST
142
+ }),
143
+ filter(params(ConnectProjectIdSchema))
144
+ ),
145
+ entrypoint(
146
+ route(connect.project.modify, '/project/:id/modify', {
147
+ parent: connect.base, method: RouteMethod.POST
148
+ }),
149
+ filter(params(ConnectProjectIdSchema, body(ConnectModifyBodySchema)))
150
+ ),
151
+ entrypoint(
152
+ route(connect.project.settings, '/project/:id/settings', {
153
+ parent: connect.base, method: RouteMethod.GET
154
+ }),
155
+ filter(params(ConnectProjectIdSchema))
156
+ ),
157
+ entrypoint(
158
+ route(connect.project.llm, '/project/:id/llm', {
159
+ parent: connect.base, method: RouteMethod.POST
160
+ }),
161
+ filter(params(ConnectProjectIdSchema, body(ConnectProjectLlmBodySchema)), paid)
162
+ ),
163
+ entrypoint(
164
+ route(connect.project.job, '/project/:id/job/:jobId', {
165
+ parent: connect.base, method: RouteMethod.GET
166
+ }),
167
+ filter(params(ConnectJobParamsSchema, query(ConnectWaitQuerySchema)))
168
+ ),
169
+
170
+ // --- stories ---------------------------------------------------------------------------
171
+ entrypoint(
172
+ route(connect.story.list, '/story/:id', { parent: connect.base, method: RouteMethod.GET }),
173
+ filter(params(ConnectProjectIdSchema, query(ConnectStoryQuerySchema)))
174
+ ),
175
+ entrypoint(
176
+ route(connect.story.create, '/story/:id', { parent: connect.base, method: RouteMethod.POST }),
177
+ filter(params(ConnectProjectIdSchema, body(ConnectStoryBodySchema)))
178
+ ),
179
+ entrypoint(
180
+ route(connect.story.get, '/story/:id/:storyId', {
181
+ parent: connect.base, method: RouteMethod.GET
182
+ }),
183
+ filter(params(ConnectStoryParamsSchema))
184
+ ),
185
+ entrypoint(
186
+ route(connect.story.update, '/story/:id/:storyId', {
187
+ parent: connect.base, method: RouteMethod.PUT
188
+ }),
189
+ filter(params(ConnectStoryParamsSchema, body(ConnectStoryBodySchema)))
190
+ ),
191
+ entrypoint(
192
+ route(connect.story.delete, '/story/:id/:storyId', {
193
+ parent: connect.base, method: RouteMethod.DELETE
194
+ }),
195
+ filter(params(ConnectStoryParamsSchema))
196
+ ),
197
+ entrypoint(
198
+ route(connect.story.develop, '/story/:id/:storyId/develop', {
199
+ parent: connect.base, method: RouteMethod.POST
200
+ }),
201
+ filter(params(ConnectStoryParamsSchema))
202
+ ),
203
+
204
+ // --- generated files -------------------------------------------------------------------
205
+ entrypoint(
206
+ route(connect.files.list, '/project/:id/files', {
207
+ parent: connect.base, method: RouteMethod.GET
208
+ }),
209
+ filter(params(ConnectProjectIdSchema))
210
+ ),
211
+
212
+ entrypoint(
213
+ route(connect.project.converterLlm, '/project/:id/converter-llm', {
214
+ parent: connect.base, method: RouteMethod.POST
215
+ }),
216
+ // No paid gate, unlike `project.llm`: delegated inference is the DEFAULT for a conversion,
217
+ // not an experimental capability. A conversion reads somebody else's whole repository, and
218
+ // handing those calls to the parent agent is what makes it affordable at all.
219
+ filter(params(ConnectProjectIdSchema, body(ConverterProjectLlmBodySchema)))
220
+ ),
221
+
222
+ // --- conversion ------------------------------------------------------------------------
223
+ entrypoint(
224
+ route(connect.convert.create, '/convert', {
225
+ parent: connect.base, method: RouteMethod.POST
226
+ }),
227
+ filter(body(ConnectConvertCreateBodySchema))
228
+ ),
229
+ entrypoint(
230
+ route(connect.convert.check, '/convert/:id/check', {
231
+ parent: connect.base, method: RouteMethod.GET
232
+ }),
233
+ filter(params(ConnectProjectIdSchema))
234
+ ),
235
+ entrypoint(
236
+ route(connect.convert.start, '/convert/:id/start', {
237
+ parent: connect.base, method: RouteMethod.POST
238
+ }),
239
+ filter(params(ConnectProjectIdSchema))
240
+ ),
241
+ entrypoint(
242
+ route(connect.convert.proceed, '/convert/:id/proceed', {
243
+ parent: connect.base, method: RouteMethod.POST
244
+ }),
245
+ filter(params(ConnectProjectIdSchema, body(ConnectConvertProceedBodySchema)))
246
+ ),
247
+ entrypoint(
248
+ route(connect.convert.cancel, '/convert/:id/cancel', {
249
+ parent: connect.base, method: RouteMethod.POST
250
+ }),
251
+ filter(params(ConnectProjectIdSchema))
252
+ ),
253
+ entrypoint(
254
+ route(connect.convert.status, '/convert/:id', {
255
+ parent: connect.base, method: RouteMethod.GET
256
+ }),
257
+ filter(params(ConnectProjectIdSchema))
258
+ ),
259
+ entrypoint(
260
+ route(connect.convert.purge, '/convert/:id/purge', {
261
+ parent: connect.base, method: RouteMethod.POST
262
+ }),
263
+ filter(params(ConnectProjectIdSchema))
264
+ ),
265
+
266
+ // --- inquiries -------------------------------------------------------------------------
267
+ // The fallback answer path: a connector answers through its own op id while it holds the
268
+ // question, but a run that parked while nobody was attached has no op to answer, and the
269
+ // question is then reachable only by its own id.
270
+ entrypoint(
271
+ route(connect.inquiry.answer, '/project/:id/inquiry/:inquiryId', {
272
+ parent: connect.base, method: RouteMethod.POST
273
+ }),
274
+ filter(params(ConnectInquiryParamsSchema, body(InquiryAnswerSchema)))
275
+ ),
276
+
277
+ // --- pipelines -------------------------------------------------------------------------
278
+ entrypoint(
279
+ route(connect.pipeline.state, '/pipeline/:id/:runId', {
280
+ parent: connect.base, method: RouteMethod.GET
281
+ }),
282
+ filter(params(ConnectPipelineParamsSchema))
283
+ ),
284
+ entrypoint(
285
+ route(connect.pipeline.resume, '/pipeline/:id/:runId/resume', {
286
+ parent: connect.base, method: RouteMethod.POST
287
+ }),
288
+ filter(params(ConnectPipelineParamsSchema, body(ConnectPipelineResumeBodySchema)))
289
+ ),
290
+ ]
291
+ }
@@ -0,0 +1,91 @@
1
+ import { ResilientError } from '@owlmeans/error'
2
+
3
+ export class ConnectError extends ResilientError {
4
+ public static override typeName = `ViableConnect${ResilientError.typeName}`
5
+
6
+ constructor(message: string = 'error') {
7
+ super(ConnectError.typeName, `viable-connect:${message}`)
8
+ }
9
+ }
10
+
11
+ /** No session with that id, or it belongs to another profile. */
12
+ export class ConnectSessionNotFound extends ConnectError {
13
+ public static override typeName = `SessionNotFound${ConnectError.typeName}`
14
+
15
+ constructor(message: string = 'error') {
16
+ super(`session-not-found:${message}`)
17
+ this.type = ConnectSessionNotFound.typeName
18
+ }
19
+ }
20
+
21
+ /**
22
+ * Nothing is attached to the project, and the operation needs a connector.
23
+ *
24
+ * FATAL by registration on the agent side: a run whose executor has gone away must stop at once
25
+ * rather than spend a retry ladder — the library retries a template write three times, the coder
26
+ * retries eight, and a model call retries eight inside that, so an unrecognised failure here costs
27
+ * minutes of nothing and a project lock held throughout. The step fails as an OUTCOME, the run row
28
+ * records where it stopped, and `pipeline.resume` picks it up when a connector returns.
29
+ */
30
+ export class ConnectSessionGone extends ConnectError {
31
+ public static override typeName = `SessionGone${ConnectError.typeName}`
32
+
33
+ constructor(message: string = 'error') {
34
+ super(`session-gone:${message}`)
35
+ this.type = ConnectSessionGone.typeName
36
+ }
37
+ }
38
+
39
+ /** The connector did not answer within the command's own deadline. Retryable. */
40
+ export class ConnectOpTimeout extends ConnectError {
41
+ public static override typeName = `OpTimeout${ConnectError.typeName}`
42
+
43
+ constructor(message: string = 'error') {
44
+ super(`op-timeout:${message}`)
45
+ this.type = ConnectOpTimeout.typeName
46
+ }
47
+ }
48
+
49
+ /** The connector executed the operation and refused it — a path outside the project, say. */
50
+ export class ConnectOpRefused extends ConnectError {
51
+ public static override typeName = `OpRefused${ConnectError.typeName}`
52
+
53
+ constructor(message: string = 'error') {
54
+ super(`op-refused:${message}`)
55
+ this.type = ConnectOpRefused.typeName
56
+ }
57
+ }
58
+
59
+ /**
60
+ * The operation is meaningless for a local slot.
61
+ *
62
+ * Sandbox lifecycle, production, preview watching and remote git all address infrastructure a
63
+ * local target does not have. Refusing by name is what keeps a connector's tool list honest: the
64
+ * tool is hidden where it cannot work, and the API says so if one is called anyway.
65
+ */
66
+ export class LocalSlotUnsupported extends ConnectError {
67
+ public static override typeName = `LocalUnsupported${ConnectError.typeName}`
68
+
69
+ constructor(message: string = 'error') {
70
+ super(`local-unsupported:${message}`)
71
+ this.type = LocalSlotUnsupported.typeName
72
+ }
73
+ }
74
+
75
+ /** The op id is unknown, already answered, or belongs to another session. */
76
+ export class ConnectOpUnknown extends ConnectError {
77
+ public static override typeName = `OpUnknown${ConnectError.typeName}`
78
+
79
+ constructor(message: string = 'error') {
80
+ super(`op-unknown:${message}`)
81
+ this.type = ConnectOpUnknown.typeName
82
+ }
83
+ }
84
+
85
+ ResilientError.registerErrorClass(ConnectError)
86
+ ResilientError.registerErrorClass(ConnectSessionNotFound)
87
+ ResilientError.registerErrorClass(ConnectSessionGone)
88
+ ResilientError.registerErrorClass(ConnectOpTimeout)
89
+ ResilientError.registerErrorClass(ConnectOpRefused)
90
+ ResilientError.registerErrorClass(LocalSlotUnsupported)
91
+ ResilientError.registerErrorClass(ConnectOpUnknown)
@@ -0,0 +1,7 @@
1
+ export * from './consts.js'
2
+ export * from './schemas.js'
3
+ export * from './errors.js'
4
+ export * from './entrypoints.js'
5
+ export * from './references.js'
6
+ export type * from './types.js'
7
+ export type * from './ops.js'
@@ -0,0 +1,208 @@
1
+ import type { SlotCommandPayload } from '../slot/index.js'
2
+ import type {
3
+ ConnectInquiryKind, ConnectOpErrorKind, ConnectOpKind, ModelTaskMode, ModelTaskResultKind,
4
+ ModelTaskRole, ModelTier
5
+ } from './consts.js'
6
+ import type { ConnectServices } from './types.js'
7
+
8
+ /**
9
+ * One thing the platform asks a connector to do.
10
+ *
11
+ * Operations are addressed to a PROJECT, not to a session: a connector that restarts mid-run
12
+ * re-attaches and is handed whatever is still pending, so an MCP server dying does not kill a
13
+ * pipeline that is minutes into its work. `sessionId` records which session it was published to,
14
+ * for tracing and for the redelivery counter — never for routing a result back.
15
+ */
16
+ export interface ConnectOp {
17
+ id: string
18
+ projectId: string
19
+ sessionId: string
20
+ kind: ConnectOpKind
21
+ payload: SlotCommandPayload | ModelTask | ConfigurePayload | InquiryPayload
22
+ createdAt: string
23
+ /** When the asker stops waiting. A connector past this may skip the work and say so. */
24
+ deadlineAt: string
25
+ /** How many times this op has been delivered. > 1 means a connector reconnected. */
26
+ attempt: number
27
+ deliveredAt?: string
28
+ }
29
+
30
+ /**
31
+ * The answer to exactly one operation.
32
+ *
33
+ * `ok: false` with `kind: 'malformed'` is a RETRYABLE outcome — the platform asks again, with the
34
+ * problem quoted back. `'unavailable'` says the connector cannot do this at all and the run should
35
+ * fail rather than spin.
36
+ */
37
+ export interface ConnectOpResult {
38
+ opId: string
39
+ sessionId: string
40
+ ok: boolean
41
+ value?: unknown
42
+ error?: ConnectOpError
43
+ }
44
+
45
+ export interface ConnectOpError {
46
+ type: string
47
+ message: string
48
+ kind?: ConnectOpErrorKind
49
+ }
50
+
51
+ /**
52
+ * The configuration a local target needs, as file CONTENT rather than as keys.
53
+ *
54
+ * The platform composes it — it is the only side that knows the OIDC client, its secret and the
55
+ * redirect URIs — and the connector writes it into the managed block of each named file, leaving
56
+ * every line the user added alone. `probe` names the services the platform wants to know about
57
+ * before it asks for a database migration or a boot check.
58
+ */
59
+ export interface ConfigurePayload {
60
+ files: ConfigureFile[]
61
+ probe: Array<keyof ConnectServices>
62
+ }
63
+
64
+ export interface ConfigureFile {
65
+ /** Target-root-relative, e.g. `.env` or `sources/web/.env`. */
66
+ path: string
67
+ /** The managed block's content. Written between the connector's own markers. */
68
+ content: string
69
+ }
70
+
71
+ export interface ConfigureResult {
72
+ written: string[]
73
+ /**
74
+ * Keys the target still needs and the user must supply — a local database URL, say.
75
+ *
76
+ * Read exactly like the publisher's configure acknowledgement: a key with an EMPTY value counts
77
+ * as missing, because a push that ran before a secret existed leaves one behind.
78
+ */
79
+ missing: string[]
80
+ services: ConnectServices
81
+ }
82
+
83
+ /**
84
+ * One model call, handed to the parent agent.
85
+ *
86
+ * It carries everything a fresh subagent needs and nothing it does not: the persona as a system
87
+ * prompt, the conversation so far, and the shape the answer must take. There is no platform
88
+ * vocabulary in it — no pipeline, no step, no internal role semantics beyond a name and a tier —
89
+ * because it is read by a model the platform does not own.
90
+ */
91
+ export interface ModelTask {
92
+ id: string
93
+ projectId: string
94
+ /** The job the call belongs to, so a parent can say what it is working on. */
95
+ jobId?: string
96
+ /** The platform role that asked. Informational; the tier is what decides the model. */
97
+ role: string
98
+ tier: ModelTier
99
+ /** Which attempt this is. > 0 means a previous answer was refused; `feedback` says why. */
100
+ attempt: number
101
+ mode: ModelTaskMode
102
+ system?: string
103
+ messages: ModelTaskMessage[]
104
+ /** `Tools` mode: what the subagent may call. JSON Schema per tool. */
105
+ tools?: ModelTaskTool[]
106
+ /** `Tools` mode: force one tool, or leave the choice open. */
107
+ toolChoice?: ModelTaskToolChoice
108
+ /** `Json` mode: the schema the single returned object must satisfy. */
109
+ outputSchema?: Record<string, unknown>
110
+ /** A soft cap, stated so a parent can size its own call. */
111
+ maxOutputChars?: number
112
+ /** Present on a retry: what was wrong with the previous answer. */
113
+ feedback?: string
114
+ expiresAt: string
115
+ }
116
+
117
+ export interface ModelTaskMessage {
118
+ role: ModelTaskRole
119
+ content: string
120
+ /** Assistant messages that called tools. */
121
+ toolCalls?: ModelTaskToolCall[]
122
+ /** Tool messages answer one call. */
123
+ toolCallId?: string
124
+ /** Tool messages name the tool they answer. */
125
+ name?: string
126
+ }
127
+
128
+ export interface ModelTaskTool {
129
+ name: string
130
+ description?: string
131
+ /** JSON Schema for the tool's arguments. */
132
+ parameters: Record<string, unknown>
133
+ }
134
+
135
+ export type ModelTaskToolChoice = 'auto' | 'none' | { name: string }
136
+
137
+ export interface ModelTaskToolCall {
138
+ id?: string
139
+ name: string
140
+ args: Record<string, unknown>
141
+ }
142
+
143
+ /** What the parent's subagent produced. */
144
+ export interface ModelTaskResult {
145
+ taskId: string
146
+ kind: ModelTaskResultKind
147
+ text?: string
148
+ json?: unknown
149
+ toolCalls?: ModelTaskToolCall[]
150
+ /** Why the parent could not answer. Treated as a malformed answer and retried. */
151
+ error?: string
152
+ /** What the parent spent. Recorded for the trace; it costs the platform nothing. */
153
+ usage?: ModelTaskUsage
154
+ /** What the parent actually ran. Display only. */
155
+ model?: string
156
+ }
157
+
158
+ export interface ModelTaskUsage {
159
+ inputTokens?: number
160
+ outputTokens?: number
161
+ }
162
+
163
+ /** One option a {@link ConnectInquiryKind.Choice} question offers. */
164
+ export interface ConnectInquiryOption {
165
+ value: string
166
+ label: string
167
+ description?: string
168
+ }
169
+
170
+ /**
171
+ * One question put to the person the connector is working for.
172
+ *
173
+ * It carries where it came from — the job, the run and the step — because an answer is recorded
174
+ * against the run that asked and re-read when that run resumes. `expiresAt` is what makes an
175
+ * unanswered question fail its step instead of parking a project lock forever.
176
+ */
177
+ export interface InquiryPayload {
178
+ id: string
179
+ projectId: string
180
+ jobId?: string
181
+ runId?: string
182
+ /** The pipeline step that asked, so a resumed run can match the answer to the place it belongs. */
183
+ step?: string
184
+ kind: ConnectInquiryKind
185
+ question: string
186
+ /** What the asker already knows, so the person is not asked to go and find it out. */
187
+ context?: string
188
+ options?: ConnectInquiryOption[]
189
+ multiple?: boolean
190
+ /** Whether a choice question also accepts text the options do not cover. */
191
+ allowText?: boolean
192
+ /** What the asker will assume if nobody answers. Recorded as an assumption when it is used. */
193
+ default?: string | string[]
194
+ expiresAt: string
195
+ }
196
+
197
+ /**
198
+ * The answer to one question.
199
+ *
200
+ * `declined` is a real answer and not an absence: it says a person saw the question and chose not
201
+ * to decide, which the asker records as an assumption rather than waiting out the timeout.
202
+ */
203
+ export interface InquiryAnswerPayload {
204
+ inquiryId: string
205
+ value?: string | string[]
206
+ text?: string
207
+ declined?: boolean
208
+ }
@@ -0,0 +1,89 @@
1
+ import { entrypointRef } from '@owlmeans/entrypoint'
2
+ import { connect } from './consts.js'
3
+ import type { ConnectOp, ConnectOpResult } from './ops.js'
4
+ import type { ConverterProjectLlmBody } from '../convert/index.js'
5
+ import type {
6
+ ConnectAttachBody, ConnectCapabilitiesView, ConnectConfirmBody, ConnectCreateBody, ConnectJob,
7
+ ConnectConvertCreateBody, ConnectConvertProceedBody, ConnectInquiryAnswerBody, ConnectJobParams,
8
+ ConnectModifyBody, ConnectOpSubmission, ConnectPipelineParams, ConnectPipelineResumeBody,
9
+ ConnectPipelineState, ConnectProjectLlmBody, ConnectProjectSettings, ConnectProjectStatus,
10
+ ConnectProjectSummary, ConnectSessionOpen, ConnectSessionParams, ConnectSessionView,
11
+ ConnectStoryBody, ConnectStoryDeletion, ConnectStoryItem, ConnectStoryList, ConnectStoryMutation,
12
+ ConnectStoryQuery, ConnectWaitQuery, ConversionStatusView, ConvertCheck,
13
+ } from './types.js'
14
+
15
+ /**
16
+ * Typed references for adapter packages that address the connector dynamically. Applications
17
+ * export protocol objects instead; an adapter may use this compact form because it never exposes
18
+ * aliases to UI or domain code.
19
+ */
20
+ export const connectRef = {
21
+ capabilities: entrypointRef<{}, ConnectCapabilitiesView>(connect.capabilities),
22
+ session: {
23
+ open: entrypointRef<{ body: ConnectSessionOpen }, ConnectSessionView>(connect.session.open),
24
+ openDelegated: entrypointRef<{ body: ConnectSessionOpen }, ConnectSessionView>(connect.session.openDelegated),
25
+ get: entrypointRef<{ params: ConnectSessionParams }, ConnectSessionView>(connect.session.get),
26
+ heartbeat: entrypointRef<{ params: ConnectSessionParams }, ConnectSessionView>(connect.session.heartbeat),
27
+ close: entrypointRef<{ params: ConnectSessionParams }, ConnectSessionView>(connect.session.close),
28
+ },
29
+ op: {
30
+ pull: entrypointRef<{ params: ConnectSessionParams, query: ConnectWaitQuery }, ConnectOp[]>(connect.op.pull),
31
+ submit: entrypointRef<{
32
+ params: { sessionId: string, opId: string }, body: ConnectOpResult
33
+ }, ConnectOpSubmission>(connect.op.submit),
34
+ },
35
+ project: {
36
+ create: entrypointRef<{ body: ConnectCreateBody }, ConnectJob>(connect.project.create),
37
+ confirm: entrypointRef<{ params: { id: string }, body: ConnectConfirmBody }, ConnectJob>(connect.project.confirm),
38
+ list: entrypointRef<{}, ConnectProjectSummary[]>(connect.project.list),
39
+ status: entrypointRef<{ params: { id: string } }, ConnectProjectStatus>(connect.project.status),
40
+ attach: entrypointRef<{ body: ConnectAttachBody }, ConnectProjectStatus>(connect.project.attach),
41
+ reinit: entrypointRef<{ params: { id: string } }, ConnectJob>(connect.project.reinit),
42
+ modify: entrypointRef<{ params: { id: string }, body: ConnectModifyBody }, ConnectJob>(connect.project.modify),
43
+ settings: entrypointRef<{ params: { id: string } }, ConnectProjectSettings>(connect.project.settings),
44
+ llm: entrypointRef<{
45
+ params: { id: string }, body: ConnectProjectLlmBody
46
+ }, ConnectProjectSettings>(connect.project.llm),
47
+ converterLlm: entrypointRef<{
48
+ params: { id: string }, body: ConverterProjectLlmBody
49
+ }, ConnectProjectSettings>(connect.project.converterLlm),
50
+ job: entrypointRef<{ params: ConnectJobParams, query: ConnectWaitQuery }, ConnectJob>(connect.project.job),
51
+ },
52
+ convert: {
53
+ create: entrypointRef<{ body: ConnectConvertCreateBody }, ConnectJob>(connect.convert.create),
54
+ check: entrypointRef<{ params: { id: string } }, ConvertCheck>(connect.convert.check),
55
+ start: entrypointRef<{ params: { id: string } }, ConnectJob>(connect.convert.start),
56
+ proceed: entrypointRef<{
57
+ params: { id: string }, body: ConnectConvertProceedBody
58
+ }, ConnectJob>(connect.convert.proceed),
59
+ cancel: entrypointRef<{ params: { id: string } }, ConnectJob>(connect.convert.cancel),
60
+ status: entrypointRef<{
61
+ params: { id: string }
62
+ }, ConversionStatusView>(connect.convert.status),
63
+ purge: entrypointRef<{ params: { id: string } }, ConnectJob>(connect.convert.purge),
64
+ },
65
+ inquiry: {
66
+ answer: entrypointRef<{
67
+ params: { id: string, inquiryId: string }, body: ConnectInquiryAnswerBody
68
+ }, unknown>(connect.inquiry.answer),
69
+ },
70
+ story: {
71
+ list: entrypointRef<{ params: { id: string }, query: ConnectStoryQuery }, ConnectStoryList>(connect.story.list),
72
+ get: entrypointRef<{ params: { id: string, storyId: string } }, ConnectStoryItem>(connect.story.get),
73
+ create: entrypointRef<{ params: { id: string }, body: ConnectStoryBody }, ConnectStoryMutation>(connect.story.create),
74
+ update: entrypointRef<{
75
+ params: { id: string, storyId: string }, body: ConnectStoryBody
76
+ }, ConnectStoryMutation>(connect.story.update),
77
+ delete: entrypointRef<{ params: { id: string, storyId: string } }, ConnectStoryDeletion>(connect.story.delete),
78
+ develop: entrypointRef<{ params: { id: string, storyId: string } }, ConnectJob>(connect.story.develop),
79
+ },
80
+ files: {
81
+ list: entrypointRef<{ params: { id: string } }, string[]>(connect.files.list),
82
+ },
83
+ pipeline: {
84
+ state: entrypointRef<{ params: ConnectPipelineParams }, ConnectPipelineState>(connect.pipeline.state),
85
+ resume: entrypointRef<{
86
+ params: ConnectPipelineParams, body: ConnectPipelineResumeBody
87
+ }, ConnectJob>(connect.pipeline.resume),
88
+ },
89
+ }