@evermore.work/shared 2026.509.0-canary.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 (373) hide show
  1. package/dist/adapter-type.d.ts +4 -0
  2. package/dist/adapter-type.d.ts.map +1 -0
  3. package/dist/adapter-type.js +14 -0
  4. package/dist/adapter-type.js.map +1 -0
  5. package/dist/adapter-types.test.d.ts +2 -0
  6. package/dist/adapter-types.test.d.ts.map +1 -0
  7. package/dist/adapter-types.test.js +46 -0
  8. package/dist/adapter-types.test.js.map +1 -0
  9. package/dist/agent-url-key.d.ts +4 -0
  10. package/dist/agent-url-key.d.ts.map +1 -0
  11. package/dist/agent-url-key.js +22 -0
  12. package/dist/agent-url-key.js.map +1 -0
  13. package/dist/api.d.ts +23 -0
  14. package/dist/api.d.ts.map +1 -0
  15. package/dist/api.js +23 -0
  16. package/dist/api.js.map +1 -0
  17. package/dist/config-schema.d.ts +725 -0
  18. package/dist/config-schema.d.ts.map +1 -0
  19. package/dist/config-schema.js +160 -0
  20. package/dist/config-schema.js.map +1 -0
  21. package/dist/constants.d.ts +323 -0
  22. package/dist/constants.d.ts.map +1 -0
  23. package/dist/constants.js +761 -0
  24. package/dist/constants.js.map +1 -0
  25. package/dist/environment-support.d.ts +37 -0
  26. package/dist/environment-support.d.ts.map +1 -0
  27. package/dist/environment-support.js +92 -0
  28. package/dist/environment-support.js.map +1 -0
  29. package/dist/environment-support.test.d.ts +2 -0
  30. package/dist/environment-support.test.d.ts.map +1 -0
  31. package/dist/environment-support.test.js +11 -0
  32. package/dist/environment-support.test.js.map +1 -0
  33. package/dist/execution-workspace-guards.d.ts +6 -0
  34. package/dist/execution-workspace-guards.d.ts.map +1 -0
  35. package/dist/execution-workspace-guards.js +12 -0
  36. package/dist/execution-workspace-guards.js.map +1 -0
  37. package/dist/index.d.ts +23 -0
  38. package/dist/index.d.ts.map +1 -0
  39. package/dist/index.js +21 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/issue-references.d.ts +16 -0
  42. package/dist/issue-references.d.ts.map +1 -0
  43. package/dist/issue-references.js +160 -0
  44. package/dist/issue-references.js.map +1 -0
  45. package/dist/issue-references.test.d.ts +2 -0
  46. package/dist/issue-references.test.d.ts.map +1 -0
  47. package/dist/issue-references.test.js +56 -0
  48. package/dist/issue-references.test.js.map +1 -0
  49. package/dist/issue-thread-interactions.test.d.ts +2 -0
  50. package/dist/issue-thread-interactions.test.d.ts.map +1 -0
  51. package/dist/issue-thread-interactions.test.js +118 -0
  52. package/dist/issue-thread-interactions.test.js.map +1 -0
  53. package/dist/network-bind.d.ts +27 -0
  54. package/dist/network-bind.d.ts.map +1 -0
  55. package/dist/network-bind.js +75 -0
  56. package/dist/network-bind.js.map +1 -0
  57. package/dist/project-mentions.d.ts +32 -0
  58. package/dist/project-mentions.d.ts.map +1 -0
  59. package/dist/project-mentions.js +210 -0
  60. package/dist/project-mentions.js.map +1 -0
  61. package/dist/project-mentions.test.d.ts +2 -0
  62. package/dist/project-mentions.test.d.ts.map +1 -0
  63. package/dist/project-mentions.test.js +36 -0
  64. package/dist/project-mentions.test.js.map +1 -0
  65. package/dist/project-url-key.d.ts +5 -0
  66. package/dist/project-url-key.d.ts.map +1 -0
  67. package/dist/project-url-key.js +39 -0
  68. package/dist/project-url-key.js.map +1 -0
  69. package/dist/routine-variables.d.ts +21 -0
  70. package/dist/routine-variables.d.ts.map +1 -0
  71. package/dist/routine-variables.js +91 -0
  72. package/dist/routine-variables.js.map +1 -0
  73. package/dist/routine-variables.test.d.ts +2 -0
  74. package/dist/routine-variables.test.d.ts.map +1 -0
  75. package/dist/routine-variables.test.js +58 -0
  76. package/dist/routine-variables.test.js.map +1 -0
  77. package/dist/telemetry/client.d.ts +18 -0
  78. package/dist/telemetry/client.d.ts.map +1 -0
  79. package/dist/telemetry/client.js +105 -0
  80. package/dist/telemetry/client.js.map +1 -0
  81. package/dist/telemetry/config.d.ts +5 -0
  82. package/dist/telemetry/config.d.ts.map +1 -0
  83. package/dist/telemetry/config.js +21 -0
  84. package/dist/telemetry/config.js.map +1 -0
  85. package/dist/telemetry/events.d.ts +41 -0
  86. package/dist/telemetry/events.d.ts.map +1 -0
  87. package/dist/telemetry/events.js +59 -0
  88. package/dist/telemetry/events.js.map +1 -0
  89. package/dist/telemetry/index.d.ts +6 -0
  90. package/dist/telemetry/index.d.ts.map +1 -0
  91. package/dist/telemetry/index.js +5 -0
  92. package/dist/telemetry/index.js.map +1 -0
  93. package/dist/telemetry/state.d.ts +3 -0
  94. package/dist/telemetry/state.d.ts.map +1 -0
  95. package/dist/telemetry/state.js +28 -0
  96. package/dist/telemetry/state.js.map +1 -0
  97. package/dist/telemetry/types.d.ts +28 -0
  98. package/dist/telemetry/types.d.ts.map +1 -0
  99. package/dist/telemetry/types.js +2 -0
  100. package/dist/telemetry/types.js.map +1 -0
  101. package/dist/types/access.d.ts +142 -0
  102. package/dist/types/access.d.ts.map +1 -0
  103. package/dist/types/access.js +2 -0
  104. package/dist/types/access.js.map +1 -0
  105. package/dist/types/activity.d.ts +14 -0
  106. package/dist/types/activity.d.ts.map +1 -0
  107. package/dist/types/activity.js +2 -0
  108. package/dist/types/activity.js.map +1 -0
  109. package/dist/types/adapter-skills.d.ts +31 -0
  110. package/dist/types/adapter-skills.d.ts.map +1 -0
  111. package/dist/types/adapter-skills.js +2 -0
  112. package/dist/types/adapter-skills.js.map +1 -0
  113. package/dist/types/agent.d.ts +117 -0
  114. package/dist/types/agent.d.ts.map +1 -0
  115. package/dist/types/agent.js +2 -0
  116. package/dist/types/agent.js.map +1 -0
  117. package/dist/types/approval.d.ts +26 -0
  118. package/dist/types/approval.d.ts.map +1 -0
  119. package/dist/types/approval.js +2 -0
  120. package/dist/types/approval.js.map +1 -0
  121. package/dist/types/asset.d.ts +16 -0
  122. package/dist/types/asset.d.ts.map +1 -0
  123. package/dist/types/asset.js +2 -0
  124. package/dist/types/asset.js.map +1 -0
  125. package/dist/types/budget.d.ts +86 -0
  126. package/dist/types/budget.d.ts.map +1 -0
  127. package/dist/types/budget.js +2 -0
  128. package/dist/types/budget.js.map +1 -0
  129. package/dist/types/company-portability.d.ts +298 -0
  130. package/dist/types/company-portability.d.ts.map +1 -0
  131. package/dist/types/company-portability.js +2 -0
  132. package/dist/types/company-portability.js.map +1 -0
  133. package/dist/types/company-skill.d.ts +140 -0
  134. package/dist/types/company-skill.d.ts.map +1 -0
  135. package/dist/types/company-skill.js +2 -0
  136. package/dist/types/company-skill.js.map +1 -0
  137. package/dist/types/company.d.ts +25 -0
  138. package/dist/types/company.d.ts.map +1 -0
  139. package/dist/types/company.js +2 -0
  140. package/dist/types/company.js.map +1 -0
  141. package/dist/types/cost.d.ts +120 -0
  142. package/dist/types/cost.d.ts.map +1 -0
  143. package/dist/types/cost.js +2 -0
  144. package/dist/types/cost.js.map +1 -0
  145. package/dist/types/dashboard.d.ts +36 -0
  146. package/dist/types/dashboard.d.ts.map +1 -0
  147. package/dist/types/dashboard.js +2 -0
  148. package/dist/types/dashboard.js.map +1 -0
  149. package/dist/types/environment.d.ts +73 -0
  150. package/dist/types/environment.d.ts.map +1 -0
  151. package/dist/types/environment.js +2 -0
  152. package/dist/types/environment.js.map +1 -0
  153. package/dist/types/feedback.d.ts +95 -0
  154. package/dist/types/feedback.d.ts.map +1 -0
  155. package/dist/types/feedback.js +7 -0
  156. package/dist/types/feedback.js.map +1 -0
  157. package/dist/types/finance.d.ts +57 -0
  158. package/dist/types/finance.d.ts.map +1 -0
  159. package/dist/types/finance.js +2 -0
  160. package/dist/types/finance.js.map +1 -0
  161. package/dist/types/goal.d.ts +14 -0
  162. package/dist/types/goal.d.ts.map +1 -0
  163. package/dist/types/goal.js +2 -0
  164. package/dist/types/goal.js.map +1 -0
  165. package/dist/types/heartbeat.d.ts +158 -0
  166. package/dist/types/heartbeat.d.ts.map +1 -0
  167. package/dist/types/heartbeat.js +2 -0
  168. package/dist/types/heartbeat.js.map +1 -0
  169. package/dist/types/inbox-dismissal.d.ts +10 -0
  170. package/dist/types/inbox-dismissal.d.ts.map +1 -0
  171. package/dist/types/inbox-dismissal.js +2 -0
  172. package/dist/types/inbox-dismissal.js.map +1 -0
  173. package/dist/types/index.d.ts +37 -0
  174. package/dist/types/index.d.ts.map +1 -0
  175. package/dist/types/index.js +3 -0
  176. package/dist/types/index.js.map +1 -0
  177. package/dist/types/instance.d.ts +63 -0
  178. package/dist/types/instance.d.ts.map +1 -0
  179. package/dist/types/instance.js +12 -0
  180. package/dist/types/instance.js.map +1 -0
  181. package/dist/types/issue-tree-control.d.ts +102 -0
  182. package/dist/types/issue-tree-control.d.ts.map +1 -0
  183. package/dist/types/issue-tree-control.js +2 -0
  184. package/dist/types/issue-tree-control.js.map +1 -0
  185. package/dist/types/issue.d.ts +527 -0
  186. package/dist/types/issue.d.ts.map +1 -0
  187. package/dist/types/issue.js +2 -0
  188. package/dist/types/issue.js.map +1 -0
  189. package/dist/types/live.d.ts +9 -0
  190. package/dist/types/live.d.ts.map +1 -0
  191. package/dist/types/live.js +2 -0
  192. package/dist/types/live.js.map +1 -0
  193. package/dist/types/plugin.d.ts +686 -0
  194. package/dist/types/plugin.d.ts.map +1 -0
  195. package/dist/types/plugin.js +2 -0
  196. package/dist/types/plugin.js.map +1 -0
  197. package/dist/types/project.d.ts +82 -0
  198. package/dist/types/project.d.ts.map +1 -0
  199. package/dist/types/project.js +2 -0
  200. package/dist/types/project.js.map +1 -0
  201. package/dist/types/quota.d.ts +26 -0
  202. package/dist/types/quota.d.ts.map +1 -0
  203. package/dist/types/quota.js +2 -0
  204. package/dist/types/quota.js.map +1 -0
  205. package/dist/types/routine.d.ts +185 -0
  206. package/dist/types/routine.d.ts.map +1 -0
  207. package/dist/types/routine.js +2 -0
  208. package/dist/types/routine.js.map +1 -0
  209. package/dist/types/search.d.ts +50 -0
  210. package/dist/types/search.d.ts.map +1 -0
  211. package/dist/types/search.js +2 -0
  212. package/dist/types/search.js.map +1 -0
  213. package/dist/types/secrets.d.ts +32 -0
  214. package/dist/types/secrets.d.ts.map +1 -0
  215. package/dist/types/secrets.js +2 -0
  216. package/dist/types/secrets.js.map +1 -0
  217. package/dist/types/sidebar-badges.d.ts +7 -0
  218. package/dist/types/sidebar-badges.d.ts.map +1 -0
  219. package/dist/types/sidebar-badges.js +2 -0
  220. package/dist/types/sidebar-badges.js.map +1 -0
  221. package/dist/types/sidebar-preferences.d.ts +5 -0
  222. package/dist/types/sidebar-preferences.d.ts.map +1 -0
  223. package/dist/types/sidebar-preferences.js +2 -0
  224. package/dist/types/sidebar-preferences.js.map +1 -0
  225. package/dist/types/user-profile.d.ts +81 -0
  226. package/dist/types/user-profile.d.ts.map +1 -0
  227. package/dist/types/user-profile.js +2 -0
  228. package/dist/types/user-profile.js.map +1 -0
  229. package/dist/types/work-product.d.ts +27 -0
  230. package/dist/types/work-product.d.ts.map +1 -0
  231. package/dist/types/work-product.js +2 -0
  232. package/dist/types/work-product.js.map +1 -0
  233. package/dist/types/workspace-operation.d.ts +26 -0
  234. package/dist/types/workspace-operation.d.ts.map +1 -0
  235. package/dist/types/workspace-operation.js +2 -0
  236. package/dist/types/workspace-operation.js.map +1 -0
  237. package/dist/types/workspace-runtime.d.ts +252 -0
  238. package/dist/types/workspace-runtime.d.ts.map +1 -0
  239. package/dist/types/workspace-runtime.js +2 -0
  240. package/dist/types/workspace-runtime.js.map +1 -0
  241. package/dist/validators/access.d.ts +333 -0
  242. package/dist/validators/access.d.ts.map +1 -0
  243. package/dist/validators/access.js +132 -0
  244. package/dist/validators/access.js.map +1 -0
  245. package/dist/validators/adapter-skills.d.ts +156 -0
  246. package/dist/validators/adapter-skills.d.ts.map +1 -0
  247. package/dist/validators/adapter-skills.js +48 -0
  248. package/dist/validators/adapter-skills.js.map +1 -0
  249. package/dist/validators/agent.d.ts +841 -0
  250. package/dist/validators/agent.d.ts.map +1 -0
  251. package/dist/validators/agent.js +115 -0
  252. package/dist/validators/agent.js.map +1 -0
  253. package/dist/validators/approval.d.ts +51 -0
  254. package/dist/validators/approval.d.ts.map +1 -0
  255. package/dist/validators/approval.js +22 -0
  256. package/dist/validators/approval.js.map +1 -0
  257. package/dist/validators/approval.test.d.ts +2 -0
  258. package/dist/validators/approval.test.d.ts.map +1 -0
  259. package/dist/validators/approval.test.js +25 -0
  260. package/dist/validators/approval.test.js.map +1 -0
  261. package/dist/validators/asset.d.ts +10 -0
  262. package/dist/validators/asset.d.ts.map +1 -0
  263. package/dist/validators/asset.js +11 -0
  264. package/dist/validators/asset.js.map +1 -0
  265. package/dist/validators/budget.d.ts +56 -0
  266. package/dist/validators/budget.d.ts.map +1 -0
  267. package/dist/validators/budget.js +27 -0
  268. package/dist/validators/budget.js.map +1 -0
  269. package/dist/validators/company-portability.d.ts +3453 -0
  270. package/dist/validators/company-portability.d.ts.map +1 -0
  271. package/dist/validators/company-portability.js +231 -0
  272. package/dist/validators/company-portability.js.map +1 -0
  273. package/dist/validators/company-skill.d.ts +797 -0
  274. package/dist/validators/company-skill.d.ts.map +1 -0
  275. package/dist/validators/company-skill.js +116 -0
  276. package/dist/validators/company-skill.js.map +1 -0
  277. package/dist/validators/company.d.ts +91 -0
  278. package/dist/validators/company.d.ts.map +1 -0
  279. package/dist/validators/company.js +43 -0
  280. package/dist/validators/company.js.map +1 -0
  281. package/dist/validators/cost.d.ts +92 -0
  282. package/dist/validators/cost.d.ts.map +1 -0
  283. package/dist/validators/cost.js +26 -0
  284. package/dist/validators/cost.js.map +1 -0
  285. package/dist/validators/environment.d.ts +72 -0
  286. package/dist/validators/environment.d.ts.map +1 -0
  287. package/dist/validators/environment.js +31 -0
  288. package/dist/validators/environment.js.map +1 -0
  289. package/dist/validators/execution-workspace.d.ts +586 -0
  290. package/dist/validators/execution-workspace.d.ts.map +1 -0
  291. package/dist/validators/execution-workspace.js +120 -0
  292. package/dist/validators/execution-workspace.js.map +1 -0
  293. package/dist/validators/feedback.d.ts +26 -0
  294. package/dist/validators/feedback.d.ts.map +1 -0
  295. package/dist/validators/feedback.js +14 -0
  296. package/dist/validators/feedback.js.map +1 -0
  297. package/dist/validators/finance.d.ts +129 -0
  298. package/dist/validators/finance.d.ts.map +1 -0
  299. package/dist/validators/finance.js +32 -0
  300. package/dist/validators/finance.js.map +1 -0
  301. package/dist/validators/goal.d.ts +48 -0
  302. package/dist/validators/goal.d.ts.map +1 -0
  303. package/dist/validators/goal.js +12 -0
  304. package/dist/validators/goal.js.map +1 -0
  305. package/dist/validators/index.d.ts +26 -0
  306. package/dist/validators/index.d.ts.map +1 -0
  307. package/dist/validators/index.js +26 -0
  308. package/dist/validators/index.js.map +1 -0
  309. package/dist/validators/instance.d.ts +137 -0
  310. package/dist/validators/instance.d.ts.map +1 -0
  311. package/dist/validators/instance.js +41 -0
  312. package/dist/validators/instance.js.map +1 -0
  313. package/dist/validators/issue-tree-control.d.ts +100 -0
  314. package/dist/validators/issue-tree-control.d.ts.map +1 -0
  315. package/dist/validators/issue-tree-control.js +31 -0
  316. package/dist/validators/issue-tree-control.js.map +1 -0
  317. package/dist/validators/issue.d.ts +4292 -0
  318. package/dist/validators/issue.d.ts.map +1 -0
  319. package/dist/validators/issue.js +506 -0
  320. package/dist/validators/issue.js.map +1 -0
  321. package/dist/validators/issue.test.d.ts +2 -0
  322. package/dist/validators/issue.test.d.ts.map +1 -0
  323. package/dist/validators/issue.test.js +203 -0
  324. package/dist/validators/issue.test.js.map +1 -0
  325. package/dist/validators/plugin.d.ts +2426 -0
  326. package/dist/validators/plugin.d.ts.map +1 -0
  327. package/dist/validators/plugin.js +837 -0
  328. package/dist/validators/plugin.js.map +1 -0
  329. package/dist/validators/plugin.test.d.ts +2 -0
  330. package/dist/validators/plugin.test.d.ts.map +1 -0
  331. package/dist/validators/plugin.test.js +64 -0
  332. package/dist/validators/plugin.test.js.map +1 -0
  333. package/dist/validators/project.d.ts +784 -0
  334. package/dist/validators/project.d.ts.map +1 -0
  335. package/dist/validators/project.js +102 -0
  336. package/dist/validators/project.js.map +1 -0
  337. package/dist/validators/routine.d.ts +920 -0
  338. package/dist/validators/routine.d.ts.map +1 -0
  339. package/dist/validators/routine.js +125 -0
  340. package/dist/validators/routine.js.map +1 -0
  341. package/dist/validators/routine.test.d.ts +2 -0
  342. package/dist/validators/routine.test.d.ts.map +1 -0
  343. package/dist/validators/routine.test.js +79 -0
  344. package/dist/validators/routine.test.js.map +1 -0
  345. package/dist/validators/search.d.ts +24 -0
  346. package/dist/validators/search.d.ts.map +1 -0
  347. package/dist/validators/search.js +33 -0
  348. package/dist/validators/search.js.map +1 -0
  349. package/dist/validators/secret.d.ts +114 -0
  350. package/dist/validators/secret.d.ts.map +1 -0
  351. package/dist/validators/secret.js +35 -0
  352. package/dist/validators/secret.js.map +1 -0
  353. package/dist/validators/sidebar-preferences.d.ts +20 -0
  354. package/dist/validators/sidebar-preferences.d.ts.map +1 -0
  355. package/dist/validators/sidebar-preferences.js +10 -0
  356. package/dist/validators/sidebar-preferences.js.map +1 -0
  357. package/dist/validators/text.d.ts +4 -0
  358. package/dist/validators/text.d.ts.map +1 -0
  359. package/dist/validators/text.js +9 -0
  360. package/dist/validators/text.js.map +1 -0
  361. package/dist/validators/work-product.d.ts +105 -0
  362. package/dist/validators/work-product.d.ts.map +1 -0
  363. package/dist/validators/work-product.js +46 -0
  364. package/dist/validators/work-product.js.map +1 -0
  365. package/dist/workspace-commands.d.ts +7 -0
  366. package/dist/workspace-commands.d.ts.map +1 -0
  367. package/dist/workspace-commands.js +150 -0
  368. package/dist/workspace-commands.js.map +1 -0
  369. package/dist/workspace-commands.test.d.ts +2 -0
  370. package/dist/workspace-commands.test.d.ts.map +1 -0
  371. package/dist/workspace-commands.test.js +65 -0
  372. package/dist/workspace-commands.test.js.map +1 -0
  373. package/package.json +47 -0
@@ -0,0 +1,105 @@
1
+ import { z } from "zod";
2
+ export declare const issueWorkProductTypeSchema: z.ZodEnum<["preview_url", "runtime_service", "pull_request", "branch", "commit", "artifact", "document"]>;
3
+ export declare const issueWorkProductStatusSchema: z.ZodEnum<["active", "ready_for_review", "approved", "changes_requested", "merged", "closed", "failed", "archived", "draft"]>;
4
+ export declare const issueWorkProductReviewStateSchema: z.ZodEnum<["none", "needs_board_review", "approved", "changes_requested"]>;
5
+ export declare const createIssueWorkProductSchema: z.ZodObject<{
6
+ projectId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
7
+ executionWorkspaceId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
8
+ runtimeServiceId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
9
+ type: z.ZodEnum<["preview_url", "runtime_service", "pull_request", "branch", "commit", "artifact", "document"]>;
10
+ provider: z.ZodString;
11
+ externalId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
12
+ title: z.ZodString;
13
+ url: z.ZodNullable<z.ZodOptional<z.ZodString>>;
14
+ status: z.ZodDefault<z.ZodEnum<["active", "ready_for_review", "approved", "changes_requested", "merged", "closed", "failed", "archived", "draft"]>>;
15
+ reviewState: z.ZodDefault<z.ZodOptional<z.ZodEnum<["none", "needs_board_review", "approved", "changes_requested"]>>>;
16
+ isPrimary: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
17
+ healthStatus: z.ZodDefault<z.ZodOptional<z.ZodEnum<["unknown", "healthy", "unhealthy"]>>>;
18
+ summary: z.ZodNullable<z.ZodOptional<z.ZodString>>;
19
+ metadata: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
20
+ createdByRunId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
21
+ }, "strip", z.ZodTypeAny, {
22
+ title: string;
23
+ provider: string;
24
+ status: "active" | "archived" | "failed" | "changes_requested" | "approved" | "ready_for_review" | "merged" | "closed" | "draft";
25
+ type: "document" | "preview_url" | "runtime_service" | "pull_request" | "branch" | "commit" | "artifact";
26
+ healthStatus: "unknown" | "healthy" | "unhealthy";
27
+ isPrimary: boolean;
28
+ reviewState: "none" | "changes_requested" | "approved" | "needs_board_review";
29
+ url?: string | null | undefined;
30
+ summary?: string | null | undefined;
31
+ runtimeServiceId?: string | null | undefined;
32
+ projectId?: string | null | undefined;
33
+ executionWorkspaceId?: string | null | undefined;
34
+ metadata?: Record<string, unknown> | null | undefined;
35
+ externalId?: string | null | undefined;
36
+ createdByRunId?: string | null | undefined;
37
+ }, {
38
+ title: string;
39
+ provider: string;
40
+ type: "document" | "preview_url" | "runtime_service" | "pull_request" | "branch" | "commit" | "artifact";
41
+ url?: string | null | undefined;
42
+ summary?: string | null | undefined;
43
+ status?: "active" | "archived" | "failed" | "changes_requested" | "approved" | "ready_for_review" | "merged" | "closed" | "draft" | undefined;
44
+ runtimeServiceId?: string | null | undefined;
45
+ projectId?: string | null | undefined;
46
+ executionWorkspaceId?: string | null | undefined;
47
+ healthStatus?: "unknown" | "healthy" | "unhealthy" | undefined;
48
+ metadata?: Record<string, unknown> | null | undefined;
49
+ isPrimary?: boolean | undefined;
50
+ externalId?: string | null | undefined;
51
+ reviewState?: "none" | "changes_requested" | "approved" | "needs_board_review" | undefined;
52
+ createdByRunId?: string | null | undefined;
53
+ }>;
54
+ export type CreateIssueWorkProduct = z.infer<typeof createIssueWorkProductSchema>;
55
+ export declare const updateIssueWorkProductSchema: z.ZodObject<{
56
+ projectId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
57
+ executionWorkspaceId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
58
+ runtimeServiceId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
59
+ type: z.ZodOptional<z.ZodEnum<["preview_url", "runtime_service", "pull_request", "branch", "commit", "artifact", "document"]>>;
60
+ provider: z.ZodOptional<z.ZodString>;
61
+ externalId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
62
+ title: z.ZodOptional<z.ZodString>;
63
+ url: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
64
+ status: z.ZodOptional<z.ZodDefault<z.ZodEnum<["active", "ready_for_review", "approved", "changes_requested", "merged", "closed", "failed", "archived", "draft"]>>>;
65
+ reviewState: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodEnum<["none", "needs_board_review", "approved", "changes_requested"]>>>>;
66
+ isPrimary: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodBoolean>>>;
67
+ healthStatus: z.ZodOptional<z.ZodDefault<z.ZodOptional<z.ZodEnum<["unknown", "healthy", "unhealthy"]>>>>;
68
+ summary: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
69
+ metadata: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>>;
70
+ createdByRunId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
71
+ }, "strip", z.ZodTypeAny, {
72
+ title?: string | undefined;
73
+ provider?: string | undefined;
74
+ url?: string | null | undefined;
75
+ summary?: string | null | undefined;
76
+ status?: "active" | "archived" | "failed" | "changes_requested" | "approved" | "ready_for_review" | "merged" | "closed" | "draft" | undefined;
77
+ type?: "document" | "preview_url" | "runtime_service" | "pull_request" | "branch" | "commit" | "artifact" | undefined;
78
+ runtimeServiceId?: string | null | undefined;
79
+ projectId?: string | null | undefined;
80
+ executionWorkspaceId?: string | null | undefined;
81
+ healthStatus?: "unknown" | "healthy" | "unhealthy" | undefined;
82
+ metadata?: Record<string, unknown> | null | undefined;
83
+ isPrimary?: boolean | undefined;
84
+ externalId?: string | null | undefined;
85
+ reviewState?: "none" | "changes_requested" | "approved" | "needs_board_review" | undefined;
86
+ createdByRunId?: string | null | undefined;
87
+ }, {
88
+ title?: string | undefined;
89
+ provider?: string | undefined;
90
+ url?: string | null | undefined;
91
+ summary?: string | null | undefined;
92
+ status?: "active" | "archived" | "failed" | "changes_requested" | "approved" | "ready_for_review" | "merged" | "closed" | "draft" | undefined;
93
+ type?: "document" | "preview_url" | "runtime_service" | "pull_request" | "branch" | "commit" | "artifact" | undefined;
94
+ runtimeServiceId?: string | null | undefined;
95
+ projectId?: string | null | undefined;
96
+ executionWorkspaceId?: string | null | undefined;
97
+ healthStatus?: "unknown" | "healthy" | "unhealthy" | undefined;
98
+ metadata?: Record<string, unknown> | null | undefined;
99
+ isPrimary?: boolean | undefined;
100
+ externalId?: string | null | undefined;
101
+ reviewState?: "none" | "changes_requested" | "approved" | "needs_board_review" | undefined;
102
+ createdByRunId?: string | null | undefined;
103
+ }>;
104
+ export type UpdateIssueWorkProduct = z.infer<typeof updateIssueWorkProductSchema>;
105
+ //# sourceMappingURL=work-product.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work-product.d.ts","sourceRoot":"","sources":["../../src/validators/work-product.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,0BAA0B,2GAQrC,CAAC;AAEH,eAAO,MAAM,4BAA4B,+HAUvC,CAAC;AAEH,eAAO,MAAM,iCAAiC,4EAK5C,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAyC,CAAC;AAEnF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { z } from "zod";
2
+ export const issueWorkProductTypeSchema = z.enum([
3
+ "preview_url",
4
+ "runtime_service",
5
+ "pull_request",
6
+ "branch",
7
+ "commit",
8
+ "artifact",
9
+ "document",
10
+ ]);
11
+ export const issueWorkProductStatusSchema = z.enum([
12
+ "active",
13
+ "ready_for_review",
14
+ "approved",
15
+ "changes_requested",
16
+ "merged",
17
+ "closed",
18
+ "failed",
19
+ "archived",
20
+ "draft",
21
+ ]);
22
+ export const issueWorkProductReviewStateSchema = z.enum([
23
+ "none",
24
+ "needs_board_review",
25
+ "approved",
26
+ "changes_requested",
27
+ ]);
28
+ export const createIssueWorkProductSchema = z.object({
29
+ projectId: z.string().uuid().optional().nullable(),
30
+ executionWorkspaceId: z.string().uuid().optional().nullable(),
31
+ runtimeServiceId: z.string().uuid().optional().nullable(),
32
+ type: issueWorkProductTypeSchema,
33
+ provider: z.string().min(1),
34
+ externalId: z.string().optional().nullable(),
35
+ title: z.string().min(1),
36
+ url: z.string().url().optional().nullable(),
37
+ status: issueWorkProductStatusSchema.default("active"),
38
+ reviewState: issueWorkProductReviewStateSchema.optional().default("none"),
39
+ isPrimary: z.boolean().optional().default(false),
40
+ healthStatus: z.enum(["unknown", "healthy", "unhealthy"]).optional().default("unknown"),
41
+ summary: z.string().optional().nullable(),
42
+ metadata: z.record(z.unknown()).optional().nullable(),
43
+ createdByRunId: z.string().uuid().optional().nullable(),
44
+ });
45
+ export const updateIssueWorkProductSchema = createIssueWorkProductSchema.partial();
46
+ //# sourceMappingURL=work-product.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"work-product.js","sourceRoot":"","sources":["../../src/validators/work-product.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,IAAI,CAAC;IAC/C,aAAa;IACb,iBAAiB;IACjB,cAAc;IACd,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,UAAU;CACX,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,IAAI,CAAC;IACjD,QAAQ;IACR,kBAAkB;IAClB,UAAU;IACV,mBAAmB;IACnB,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,IAAI,CAAC;IACtD,MAAM;IACN,oBAAoB;IACpB,UAAU;IACV,mBAAmB;CACpB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAClD,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7D,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACzD,IAAI,EAAE,0BAA0B;IAChC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC3C,MAAM,EAAE,4BAA4B,CAAC,OAAO,CAAC,QAAQ,CAAC;IACtD,WAAW,EAAE,iCAAiC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IACzE,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAChD,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;IACvF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACzC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACrD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACxD,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,4BAA4B,GAAG,4BAA4B,CAAC,OAAO,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { WorkspaceCommandDefinition, WorkspaceRuntimeService } from "./types/workspace-runtime.js";
2
+ export declare function listWorkspaceCommandDefinitions(workspaceRuntime: Record<string, unknown> | null | undefined): WorkspaceCommandDefinition[];
3
+ export declare function listWorkspaceServiceCommandDefinitions(workspaceRuntime: Record<string, unknown> | null | undefined): WorkspaceCommandDefinition[];
4
+ export declare function findWorkspaceCommandDefinition(workspaceRuntime: Record<string, unknown> | null | undefined, workspaceCommandId: string | null | undefined): WorkspaceCommandDefinition | null;
5
+ export declare function scoreWorkspaceRuntimeServiceMatch(command: Pick<WorkspaceCommandDefinition, "serviceIndex" | "name" | "command" | "cwd">, runtimeService: Pick<WorkspaceRuntimeService, "configIndex" | "serviceName" | "command" | "cwd">): number;
6
+ export declare function matchWorkspaceRuntimeServiceToCommand<T extends Pick<WorkspaceRuntimeService, "configIndex" | "serviceName" | "command" | "cwd">>(command: Pick<WorkspaceCommandDefinition, "serviceIndex" | "name" | "command" | "cwd">, runtimeServices: T[] | null | undefined): T | null;
7
+ //# sourceMappingURL=workspace-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-commands.d.ts","sourceRoot":"","sources":["../src/workspace-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAqGxG,wBAAgB,+BAA+B,CAC7C,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GAC3D,0BAA0B,EAAE,CA4C9B;AAED,wBAAgB,sCAAsC,CACpD,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,gCAG7D;AAED,wBAAgB,8BAA8B,CAC5C,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,EAC5D,kBAAkB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,qCAK9C;AAED,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,IAAI,CAAC,0BAA0B,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC,EACtF,cAAc,EAAE,IAAI,CAAC,uBAAuB,EAAE,aAAa,GAAG,aAAa,GAAG,SAAS,GAAG,KAAK,CAAC,UAqBjG;AAED,wBAAgB,qCAAqC,CACnD,CAAC,SAAS,IAAI,CAAC,uBAAuB,EAAE,aAAa,GAAG,aAAa,GAAG,SAAS,GAAG,KAAK,CAAC,EAE1F,OAAO,EAAE,IAAI,CAAC,0BAA0B,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC,EACtF,eAAe,EAAE,CAAC,EAAE,GAAG,IAAI,GAAG,SAAS,YAcxC"}
@@ -0,0 +1,150 @@
1
+ function isRecord(value) {
2
+ return typeof value === "object" && value !== null && !Array.isArray(value);
3
+ }
4
+ function readNonEmptyString(value) {
5
+ if (typeof value !== "string")
6
+ return null;
7
+ const trimmed = value.trim();
8
+ return trimmed.length > 0 ? trimmed : null;
9
+ }
10
+ function slugify(value) {
11
+ const normalized = (value ?? "")
12
+ .trim()
13
+ .toLowerCase()
14
+ .replace(/[^a-z0-9]+/g, "-")
15
+ .replace(/-+/g, "-")
16
+ .replace(/^-+|-+$/g, "");
17
+ return normalized.length > 0 ? normalized : null;
18
+ }
19
+ function deriveWorkspaceCommandId(input) {
20
+ const explicitId = slugify(input.explicitId);
21
+ if (explicitId)
22
+ return explicitId;
23
+ const nameSlug = slugify(input.name);
24
+ return nameSlug ? `${input.kind}:${nameSlug}` : `${input.kind}:${input.index + 1}`;
25
+ }
26
+ function buildWorkspaceCommandDefinition(input) {
27
+ return {
28
+ id: deriveWorkspaceCommandId({
29
+ kind: input.kind,
30
+ explicitId: readNonEmptyString(input.entry.id),
31
+ name: readNonEmptyString(input.entry.name)
32
+ ?? readNonEmptyString(input.entry.label)
33
+ ?? readNonEmptyString(input.entry.title)
34
+ ?? input.fallbackName,
35
+ index: input.sourceIndex,
36
+ }),
37
+ name: readNonEmptyString(input.entry.name)
38
+ ?? readNonEmptyString(input.entry.label)
39
+ ?? readNonEmptyString(input.entry.title)
40
+ ?? input.fallbackName,
41
+ kind: input.kind,
42
+ command: readNonEmptyString(input.entry.command),
43
+ cwd: readNonEmptyString(input.entry.cwd),
44
+ lifecycle: input.kind === "service"
45
+ ? input.entry.lifecycle === "ephemeral"
46
+ ? "ephemeral"
47
+ : "shared"
48
+ : null,
49
+ serviceIndex: input.serviceIndex,
50
+ disabledReason: readNonEmptyString(input.entry.disabledReason),
51
+ rawConfig: { ...input.entry },
52
+ source: {
53
+ type: "evermore",
54
+ key: input.sourceKey,
55
+ index: input.sourceIndex,
56
+ },
57
+ };
58
+ }
59
+ function uniqueWorkspaceCommandId(seen, commandId, sourceKey, sourceIndex) {
60
+ if (!seen.has(commandId)) {
61
+ seen.add(commandId);
62
+ return commandId;
63
+ }
64
+ const fallbackId = `${commandId}-${sourceKey}-${sourceIndex + 1}`;
65
+ seen.add(fallbackId);
66
+ return fallbackId;
67
+ }
68
+ function readCommandEntries(workspaceRuntime, key) {
69
+ const raw = workspaceRuntime?.[key];
70
+ return Array.isArray(raw) ? raw.filter((entry) => isRecord(entry)) : [];
71
+ }
72
+ export function listWorkspaceCommandDefinitions(workspaceRuntime) {
73
+ if (!workspaceRuntime)
74
+ return [];
75
+ const commandEntries = readCommandEntries(workspaceRuntime, "commands");
76
+ const seenIds = new Set();
77
+ let nextServiceIndex = 0;
78
+ const finalize = (command) => ({
79
+ ...command,
80
+ id: uniqueWorkspaceCommandId(seenIds, command.id, command.source.key, command.source.index),
81
+ });
82
+ if (commandEntries.length > 0) {
83
+ return commandEntries.map((entry, index) => finalize(buildWorkspaceCommandDefinition({
84
+ entry,
85
+ kind: entry.kind === "job" ? "job" : "service",
86
+ sourceKey: "commands",
87
+ sourceIndex: index,
88
+ serviceIndex: entry.kind === "job" ? null : nextServiceIndex++,
89
+ fallbackName: entry.kind === "job" ? `Job ${index + 1}` : `Service ${index + 1}`,
90
+ })));
91
+ }
92
+ const serviceDefinitions = readCommandEntries(workspaceRuntime, "services").map((entry, index) => finalize(buildWorkspaceCommandDefinition({
93
+ entry,
94
+ kind: "service",
95
+ sourceKey: "services",
96
+ sourceIndex: index,
97
+ serviceIndex: nextServiceIndex++,
98
+ fallbackName: `Service ${index + 1}`,
99
+ })));
100
+ const jobDefinitions = readCommandEntries(workspaceRuntime, "jobs").map((entry, index) => finalize(buildWorkspaceCommandDefinition({
101
+ entry,
102
+ kind: "job",
103
+ sourceKey: "jobs",
104
+ sourceIndex: index,
105
+ serviceIndex: null,
106
+ fallbackName: `Job ${index + 1}`,
107
+ })));
108
+ return [...serviceDefinitions, ...jobDefinitions];
109
+ }
110
+ export function listWorkspaceServiceCommandDefinitions(workspaceRuntime) {
111
+ return listWorkspaceCommandDefinitions(workspaceRuntime).filter((command) => command.kind === "service");
112
+ }
113
+ export function findWorkspaceCommandDefinition(workspaceRuntime, workspaceCommandId) {
114
+ const normalizedId = readNonEmptyString(workspaceCommandId);
115
+ if (!normalizedId)
116
+ return null;
117
+ return listWorkspaceCommandDefinitions(workspaceRuntime).find((command) => command.id === normalizedId) ?? null;
118
+ }
119
+ export function scoreWorkspaceRuntimeServiceMatch(command, runtimeService) {
120
+ if (command.command && runtimeService.command && runtimeService.command !== command.command) {
121
+ return -1;
122
+ }
123
+ if (command.serviceIndex !== null && runtimeService.configIndex !== null && runtimeService.configIndex !== undefined) {
124
+ return runtimeService.configIndex === command.serviceIndex ? 100 : -1;
125
+ }
126
+ let score = 0;
127
+ if (runtimeService.serviceName === command.name)
128
+ score += 4;
129
+ if ((runtimeService.command ?? null) === (command.command ?? null))
130
+ score += 4;
131
+ if (command.cwd
132
+ && runtimeService.cwd
133
+ && (runtimeService.cwd === command.cwd || runtimeService.cwd.endsWith(`/${command.cwd}`))) {
134
+ score += 2;
135
+ }
136
+ return score;
137
+ }
138
+ export function matchWorkspaceRuntimeServiceToCommand(command, runtimeServices) {
139
+ let bestMatch = null;
140
+ let bestScore = -1;
141
+ for (const runtimeService of runtimeServices ?? []) {
142
+ const score = scoreWorkspaceRuntimeServiceMatch(command, runtimeService);
143
+ if (score > bestScore) {
144
+ bestMatch = runtimeService;
145
+ bestScore = score;
146
+ }
147
+ }
148
+ return bestScore > 0 ? bestMatch : null;
149
+ }
150
+ //# sourceMappingURL=workspace-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-commands.js","sourceRoot":"","sources":["../src/workspace-commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=workspace-commands.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-commands.test.d.ts","sourceRoot":"","sources":["../src/workspace-commands.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,65 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { findWorkspaceCommandDefinition, listWorkspaceCommandDefinitions, matchWorkspaceRuntimeServiceToCommand, } from "./workspace-commands.js";
3
+ describe("workspace command helpers", () => {
4
+ it("derives service and job commands from command-first runtime config", () => {
5
+ const commands = listWorkspaceCommandDefinitions({
6
+ commands: [
7
+ { id: "web", name: "web", kind: "service", command: "pnpm dev" },
8
+ { id: "db-migrate", name: "db:migrate", kind: "job", command: "pnpm db:migrate" },
9
+ ],
10
+ });
11
+ expect(commands).toEqual([
12
+ expect.objectContaining({ id: "web", kind: "service", serviceIndex: 0 }),
13
+ expect.objectContaining({ id: "db-migrate", kind: "job", serviceIndex: null }),
14
+ ]);
15
+ });
16
+ it("falls back to legacy services and jobs arrays", () => {
17
+ const commands = listWorkspaceCommandDefinitions({
18
+ services: [{ name: "web", command: "pnpm dev" }],
19
+ jobs: [{ name: "lint", command: "pnpm lint" }],
20
+ });
21
+ expect(commands).toEqual([
22
+ expect.objectContaining({ id: "service:web", kind: "service", serviceIndex: 0 }),
23
+ expect.objectContaining({ id: "job:lint", kind: "job", serviceIndex: null }),
24
+ ]);
25
+ });
26
+ it("matches a configured service command to the current runtime service", () => {
27
+ const workspaceRuntime = {
28
+ commands: [
29
+ { id: "web", name: "web", kind: "service", command: "pnpm dev", cwd: "." },
30
+ ],
31
+ };
32
+ const command = findWorkspaceCommandDefinition(workspaceRuntime, "web");
33
+ expect(command).not.toBeNull();
34
+ const match = matchWorkspaceRuntimeServiceToCommand(command, [
35
+ {
36
+ id: "runtime-web",
37
+ serviceName: "web",
38
+ command: "pnpm dev",
39
+ cwd: "/repo",
40
+ configIndex: null,
41
+ },
42
+ ]);
43
+ expect(match).toEqual(expect.objectContaining({ id: "runtime-web" }));
44
+ });
45
+ it("does not match a stale runtime service after the configured command changes", () => {
46
+ const workspaceRuntime = {
47
+ commands: [
48
+ { id: "web", name: "web", kind: "service", command: "pnpm dev:once --tailscale-auth", cwd: "." },
49
+ ],
50
+ };
51
+ const command = findWorkspaceCommandDefinition(workspaceRuntime, "web");
52
+ expect(command).not.toBeNull();
53
+ const match = matchWorkspaceRuntimeServiceToCommand(command, [
54
+ {
55
+ id: "runtime-web",
56
+ serviceName: "web",
57
+ command: "pnpm dev",
58
+ cwd: "/repo",
59
+ configIndex: null,
60
+ },
61
+ ]);
62
+ expect(match).toBeNull();
63
+ });
64
+ });
65
+ //# sourceMappingURL=workspace-commands.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-commands.test.js","sourceRoot":"","sources":["../src/workspace-commands.test.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "@evermore.work/shared",
3
+ "version": "2026.509.0-canary.0",
4
+ "homepage": "https://github.com/phuctm97/evermore",
5
+ "bugs": {
6
+ "url": "https://github.com/phuctm97/evermore/issues"
7
+ },
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/phuctm97/evermore",
11
+ "directory": "packages/shared"
12
+ },
13
+ "type": "module",
14
+ "exports": {
15
+ ".": {
16
+ "types": "./dist/index.d.ts",
17
+ "import": "./dist/index.js"
18
+ },
19
+ "./telemetry": {
20
+ "types": "./dist/telemetry/index.d.ts",
21
+ "import": "./dist/telemetry/index.js"
22
+ },
23
+ "./*": {
24
+ "types": "./dist/*.d.ts",
25
+ "import": "./dist/*.js"
26
+ }
27
+ },
28
+ "publishConfig": {
29
+ "access": "public"
30
+ },
31
+ "files": [
32
+ "dist"
33
+ ],
34
+ "dependencies": {
35
+ "zod": "^3.24.2"
36
+ },
37
+ "devDependencies": {
38
+ "typescript": "^5.7.3"
39
+ },
40
+ "scripts": {
41
+ "build": "tsc",
42
+ "clean": "rm -rf dist",
43
+ "typecheck": "tsc --noEmit"
44
+ },
45
+ "main": "./dist/index.js",
46
+ "types": "./dist/index.d.ts"
47
+ }