digital-tools 2.0.1

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 (452) hide show
  1. package/.turbo/turbo-build.log +5 -0
  2. package/CHANGELOG.md +9 -0
  3. package/README.md +1144 -0
  4. package/dist/define.d.ts +109 -0
  5. package/dist/define.d.ts.map +1 -0
  6. package/dist/define.js +268 -0
  7. package/dist/define.js.map +1 -0
  8. package/dist/entities/advertising.d.ts +79 -0
  9. package/dist/entities/advertising.d.ts.map +1 -0
  10. package/dist/entities/advertising.js +1000 -0
  11. package/dist/entities/advertising.js.map +1 -0
  12. package/dist/entities/ai.d.ts +69 -0
  13. package/dist/entities/ai.d.ts.map +1 -0
  14. package/dist/entities/ai.js +757 -0
  15. package/dist/entities/ai.js.map +1 -0
  16. package/dist/entities/analytics.d.ts +83 -0
  17. package/dist/entities/analytics.d.ts.map +1 -0
  18. package/dist/entities/analytics.js +1589 -0
  19. package/dist/entities/analytics.js.map +1 -0
  20. package/dist/entities/automation.d.ts +61 -0
  21. package/dist/entities/automation.d.ts.map +1 -0
  22. package/dist/entities/automation.js +602 -0
  23. package/dist/entities/automation.js.map +1 -0
  24. package/dist/entities/communication.d.ts +96 -0
  25. package/dist/entities/communication.d.ts.map +1 -0
  26. package/dist/entities/communication.js +1151 -0
  27. package/dist/entities/communication.js.map +1 -0
  28. package/dist/entities/crm.d.ts +91 -0
  29. package/dist/entities/crm.d.ts.map +1 -0
  30. package/dist/entities/crm.js +1387 -0
  31. package/dist/entities/crm.js.map +1 -0
  32. package/dist/entities/design.d.ts +61 -0
  33. package/dist/entities/design.d.ts.map +1 -0
  34. package/dist/entities/design.js +547 -0
  35. package/dist/entities/design.js.map +1 -0
  36. package/dist/entities/development.d.ts +145 -0
  37. package/dist/entities/development.d.ts.map +1 -0
  38. package/dist/entities/development.js +2213 -0
  39. package/dist/entities/development.js.map +1 -0
  40. package/dist/entities/document.d.ts +54 -0
  41. package/dist/entities/document.d.ts.map +1 -0
  42. package/dist/entities/document.js +875 -0
  43. package/dist/entities/document.js.map +1 -0
  44. package/dist/entities/ecommerce.d.ts +93 -0
  45. package/dist/entities/ecommerce.d.ts.map +1 -0
  46. package/dist/entities/ecommerce.js +1430 -0
  47. package/dist/entities/ecommerce.js.map +1 -0
  48. package/dist/entities/experiment.d.ts +89 -0
  49. package/dist/entities/experiment.d.ts.map +1 -0
  50. package/dist/entities/experiment.js +1040 -0
  51. package/dist/entities/experiment.js.map +1 -0
  52. package/dist/entities/finance.d.ts +272 -0
  53. package/dist/entities/finance.d.ts.map +1 -0
  54. package/dist/entities/finance.js +3479 -0
  55. package/dist/entities/finance.js.map +1 -0
  56. package/dist/entities/forms.d.ts +91 -0
  57. package/dist/entities/forms.d.ts.map +1 -0
  58. package/dist/entities/forms.js +1893 -0
  59. package/dist/entities/forms.js.map +1 -0
  60. package/dist/entities/hr.d.ts +62 -0
  61. package/dist/entities/hr.d.ts.map +1 -0
  62. package/dist/entities/hr.js +662 -0
  63. package/dist/entities/hr.js.map +1 -0
  64. package/dist/entities/identity.d.ts +90 -0
  65. package/dist/entities/identity.d.ts.map +1 -0
  66. package/dist/entities/identity.js +998 -0
  67. package/dist/entities/identity.js.map +1 -0
  68. package/dist/entities/index.d.ts +410 -0
  69. package/dist/entities/index.d.ts.map +1 -0
  70. package/dist/entities/index.js +283 -0
  71. package/dist/entities/index.js.map +1 -0
  72. package/dist/entities/infrastructure.d.ts +98 -0
  73. package/dist/entities/infrastructure.d.ts.map +1 -0
  74. package/dist/entities/infrastructure.js +1154 -0
  75. package/dist/entities/infrastructure.js.map +1 -0
  76. package/dist/entities/knowledge.d.ts +98 -0
  77. package/dist/entities/knowledge.d.ts.map +1 -0
  78. package/dist/entities/knowledge.js +1439 -0
  79. package/dist/entities/knowledge.js.map +1 -0
  80. package/dist/entities/marketing.d.ts +82 -0
  81. package/dist/entities/marketing.d.ts.map +1 -0
  82. package/dist/entities/marketing.js +1611 -0
  83. package/dist/entities/marketing.js.map +1 -0
  84. package/dist/entities/media.d.ts +83 -0
  85. package/dist/entities/media.d.ts.map +1 -0
  86. package/dist/entities/media.js +1635 -0
  87. package/dist/entities/media.js.map +1 -0
  88. package/dist/entities/notification.d.ts +76 -0
  89. package/dist/entities/notification.d.ts.map +1 -0
  90. package/dist/entities/notification.js +1200 -0
  91. package/dist/entities/notification.js.map +1 -0
  92. package/dist/entities/presentation.d.ts +61 -0
  93. package/dist/entities/presentation.d.ts.map +1 -0
  94. package/dist/entities/presentation.js +1275 -0
  95. package/dist/entities/presentation.js.map +1 -0
  96. package/dist/entities/productivity.d.ts +92 -0
  97. package/dist/entities/productivity.d.ts.map +1 -0
  98. package/dist/entities/productivity.js +1318 -0
  99. package/dist/entities/productivity.js.map +1 -0
  100. package/dist/entities/project-management.d.ts +89 -0
  101. package/dist/entities/project-management.d.ts.map +1 -0
  102. package/dist/entities/project-management.js +1137 -0
  103. package/dist/entities/project-management.js.map +1 -0
  104. package/dist/entities/recruiting.d.ts +54 -0
  105. package/dist/entities/recruiting.d.ts.map +1 -0
  106. package/dist/entities/recruiting.js +737 -0
  107. package/dist/entities/recruiting.js.map +1 -0
  108. package/dist/entities/shipping.d.ts +52 -0
  109. package/dist/entities/shipping.d.ts.map +1 -0
  110. package/dist/entities/shipping.js +510 -0
  111. package/dist/entities/shipping.js.map +1 -0
  112. package/dist/entities/signature.d.ts +83 -0
  113. package/dist/entities/signature.d.ts.map +1 -0
  114. package/dist/entities/signature.js +1103 -0
  115. package/dist/entities/signature.js.map +1 -0
  116. package/dist/entities/site.d.ts +33 -0
  117. package/dist/entities/site.d.ts.map +1 -0
  118. package/dist/entities/site.js +223 -0
  119. package/dist/entities/site.js.map +1 -0
  120. package/dist/entities/spreadsheet.d.ts +68 -0
  121. package/dist/entities/spreadsheet.d.ts.map +1 -0
  122. package/dist/entities/spreadsheet.js +1342 -0
  123. package/dist/entities/spreadsheet.js.map +1 -0
  124. package/dist/entities/storage.d.ts +74 -0
  125. package/dist/entities/storage.d.ts.map +1 -0
  126. package/dist/entities/storage.js +1199 -0
  127. package/dist/entities/storage.js.map +1 -0
  128. package/dist/entities/support.d.ts +83 -0
  129. package/dist/entities/support.d.ts.map +1 -0
  130. package/dist/entities/support.js +1167 -0
  131. package/dist/entities/support.js.map +1 -0
  132. package/dist/entities/video-conferencing.d.ts +129 -0
  133. package/dist/entities/video-conferencing.d.ts.map +1 -0
  134. package/dist/entities/video-conferencing.js +1751 -0
  135. package/dist/entities/video-conferencing.js.map +1 -0
  136. package/dist/entities/video.d.ts +76 -0
  137. package/dist/entities/video.d.ts.map +1 -0
  138. package/dist/entities/video.js +951 -0
  139. package/dist/entities/video.js.map +1 -0
  140. package/dist/entities.d.ts +147 -0
  141. package/dist/entities.d.ts.map +1 -0
  142. package/dist/entities.js +1664 -0
  143. package/dist/entities.js.map +1 -0
  144. package/dist/index.d.ts +29 -0
  145. package/dist/index.d.ts.map +1 -0
  146. package/dist/index.js +75 -0
  147. package/dist/index.js.map +1 -0
  148. package/dist/providers/analytics/index.d.ts +19 -0
  149. package/dist/providers/analytics/index.d.ts.map +1 -0
  150. package/dist/providers/analytics/index.js +18 -0
  151. package/dist/providers/analytics/index.js.map +1 -0
  152. package/dist/providers/analytics/mixpanel.d.ts +25 -0
  153. package/dist/providers/analytics/mixpanel.d.ts.map +1 -0
  154. package/dist/providers/analytics/mixpanel.js +256 -0
  155. package/dist/providers/analytics/mixpanel.js.map +1 -0
  156. package/dist/providers/calendar/cal-com.d.ts +26 -0
  157. package/dist/providers/calendar/cal-com.d.ts.map +1 -0
  158. package/dist/providers/calendar/cal-com.js +304 -0
  159. package/dist/providers/calendar/cal-com.js.map +1 -0
  160. package/dist/providers/calendar/google-calendar.d.ts +25 -0
  161. package/dist/providers/calendar/google-calendar.d.ts.map +1 -0
  162. package/dist/providers/calendar/google-calendar.js +336 -0
  163. package/dist/providers/calendar/google-calendar.js.map +1 -0
  164. package/dist/providers/calendar/index.d.ts +20 -0
  165. package/dist/providers/calendar/index.d.ts.map +1 -0
  166. package/dist/providers/calendar/index.js +21 -0
  167. package/dist/providers/calendar/index.js.map +1 -0
  168. package/dist/providers/crm/hubspot.d.ts +25 -0
  169. package/dist/providers/crm/hubspot.d.ts.map +1 -0
  170. package/dist/providers/crm/hubspot.js +567 -0
  171. package/dist/providers/crm/hubspot.js.map +1 -0
  172. package/dist/providers/crm/index.d.ts +19 -0
  173. package/dist/providers/crm/index.d.ts.map +1 -0
  174. package/dist/providers/crm/index.js +18 -0
  175. package/dist/providers/crm/index.js.map +1 -0
  176. package/dist/providers/development/github.d.ts +25 -0
  177. package/dist/providers/development/github.d.ts.map +1 -0
  178. package/dist/providers/development/github.js +473 -0
  179. package/dist/providers/development/github.js.map +1 -0
  180. package/dist/providers/development/index.d.ts +19 -0
  181. package/dist/providers/development/index.d.ts.map +1 -0
  182. package/dist/providers/development/index.js +18 -0
  183. package/dist/providers/development/index.js.map +1 -0
  184. package/dist/providers/ecommerce/index.d.ts +19 -0
  185. package/dist/providers/ecommerce/index.d.ts.map +1 -0
  186. package/dist/providers/ecommerce/index.js +18 -0
  187. package/dist/providers/ecommerce/index.js.map +1 -0
  188. package/dist/providers/ecommerce/shopify.d.ts +25 -0
  189. package/dist/providers/ecommerce/shopify.d.ts.map +1 -0
  190. package/dist/providers/ecommerce/shopify.js +379 -0
  191. package/dist/providers/ecommerce/shopify.js.map +1 -0
  192. package/dist/providers/email/index.d.ts +20 -0
  193. package/dist/providers/email/index.d.ts.map +1 -0
  194. package/dist/providers/email/index.js +21 -0
  195. package/dist/providers/email/index.js.map +1 -0
  196. package/dist/providers/email/resend.d.ts +25 -0
  197. package/dist/providers/email/resend.d.ts.map +1 -0
  198. package/dist/providers/email/resend.js +259 -0
  199. package/dist/providers/email/resend.js.map +1 -0
  200. package/dist/providers/email/sendgrid.d.ts +25 -0
  201. package/dist/providers/email/sendgrid.d.ts.map +1 -0
  202. package/dist/providers/email/sendgrid.js +162 -0
  203. package/dist/providers/email/sendgrid.js.map +1 -0
  204. package/dist/providers/finance/index.d.ts +19 -0
  205. package/dist/providers/finance/index.d.ts.map +1 -0
  206. package/dist/providers/finance/index.js +18 -0
  207. package/dist/providers/finance/index.js.map +1 -0
  208. package/dist/providers/finance/stripe.d.ts +25 -0
  209. package/dist/providers/finance/stripe.d.ts.map +1 -0
  210. package/dist/providers/finance/stripe.js +550 -0
  211. package/dist/providers/finance/stripe.js.map +1 -0
  212. package/dist/providers/forms/index.d.ts +19 -0
  213. package/dist/providers/forms/index.d.ts.map +1 -0
  214. package/dist/providers/forms/index.js +18 -0
  215. package/dist/providers/forms/index.js.map +1 -0
  216. package/dist/providers/forms/typeform.d.ts +25 -0
  217. package/dist/providers/forms/typeform.d.ts.map +1 -0
  218. package/dist/providers/forms/typeform.js +501 -0
  219. package/dist/providers/forms/typeform.js.map +1 -0
  220. package/dist/providers/index.d.ts +56 -0
  221. package/dist/providers/index.d.ts.map +1 -0
  222. package/dist/providers/index.js +124 -0
  223. package/dist/providers/index.js.map +1 -0
  224. package/dist/providers/knowledge/index.d.ts +19 -0
  225. package/dist/providers/knowledge/index.d.ts.map +1 -0
  226. package/dist/providers/knowledge/index.js +18 -0
  227. package/dist/providers/knowledge/index.js.map +1 -0
  228. package/dist/providers/knowledge/notion.d.ts +25 -0
  229. package/dist/providers/knowledge/notion.d.ts.map +1 -0
  230. package/dist/providers/knowledge/notion.js +390 -0
  231. package/dist/providers/knowledge/notion.js.map +1 -0
  232. package/dist/providers/marketing/index.d.ts +19 -0
  233. package/dist/providers/marketing/index.d.ts.map +1 -0
  234. package/dist/providers/marketing/index.js +18 -0
  235. package/dist/providers/marketing/index.js.map +1 -0
  236. package/dist/providers/marketing/mailchimp.d.ts +25 -0
  237. package/dist/providers/marketing/mailchimp.d.ts.map +1 -0
  238. package/dist/providers/marketing/mailchimp.js +444 -0
  239. package/dist/providers/marketing/mailchimp.js.map +1 -0
  240. package/dist/providers/media/cloudinary.d.ts +25 -0
  241. package/dist/providers/media/cloudinary.d.ts.map +1 -0
  242. package/dist/providers/media/cloudinary.js +319 -0
  243. package/dist/providers/media/cloudinary.js.map +1 -0
  244. package/dist/providers/media/index.d.ts +19 -0
  245. package/dist/providers/media/index.d.ts.map +1 -0
  246. package/dist/providers/media/index.js +18 -0
  247. package/dist/providers/media/index.js.map +1 -0
  248. package/dist/providers/messaging/index.d.ts +24 -0
  249. package/dist/providers/messaging/index.d.ts.map +1 -0
  250. package/dist/providers/messaging/index.js +21 -0
  251. package/dist/providers/messaging/index.js.map +1 -0
  252. package/dist/providers/messaging/slack.d.ts +25 -0
  253. package/dist/providers/messaging/slack.d.ts.map +1 -0
  254. package/dist/providers/messaging/slack.js +394 -0
  255. package/dist/providers/messaging/slack.js.map +1 -0
  256. package/dist/providers/messaging/twilio-sms.d.ts +25 -0
  257. package/dist/providers/messaging/twilio-sms.d.ts.map +1 -0
  258. package/dist/providers/messaging/twilio-sms.js +250 -0
  259. package/dist/providers/messaging/twilio-sms.js.map +1 -0
  260. package/dist/providers/project-management/index.d.ts +19 -0
  261. package/dist/providers/project-management/index.d.ts.map +1 -0
  262. package/dist/providers/project-management/index.js +18 -0
  263. package/dist/providers/project-management/index.js.map +1 -0
  264. package/dist/providers/project-management/linear.d.ts +25 -0
  265. package/dist/providers/project-management/linear.d.ts.map +1 -0
  266. package/dist/providers/project-management/linear.js +576 -0
  267. package/dist/providers/project-management/linear.js.map +1 -0
  268. package/dist/providers/registry.d.ts +41 -0
  269. package/dist/providers/registry.d.ts.map +1 -0
  270. package/dist/providers/registry.js +87 -0
  271. package/dist/providers/registry.js.map +1 -0
  272. package/dist/providers/spreadsheet/google-sheets.d.ts +25 -0
  273. package/dist/providers/spreadsheet/google-sheets.d.ts.map +1 -0
  274. package/dist/providers/spreadsheet/google-sheets.js +376 -0
  275. package/dist/providers/spreadsheet/google-sheets.js.map +1 -0
  276. package/dist/providers/spreadsheet/index.d.ts +20 -0
  277. package/dist/providers/spreadsheet/index.d.ts.map +1 -0
  278. package/dist/providers/spreadsheet/index.js +21 -0
  279. package/dist/providers/spreadsheet/index.js.map +1 -0
  280. package/dist/providers/spreadsheet/xlsx.d.ts +26 -0
  281. package/dist/providers/spreadsheet/xlsx.d.ts.map +1 -0
  282. package/dist/providers/spreadsheet/xlsx.js +424 -0
  283. package/dist/providers/spreadsheet/xlsx.js.map +1 -0
  284. package/dist/providers/storage/index.d.ts +30 -0
  285. package/dist/providers/storage/index.d.ts.map +1 -0
  286. package/dist/providers/storage/index.js +25 -0
  287. package/dist/providers/storage/index.js.map +1 -0
  288. package/dist/providers/storage/s3.d.ts +25 -0
  289. package/dist/providers/storage/s3.d.ts.map +1 -0
  290. package/dist/providers/storage/s3.js +420 -0
  291. package/dist/providers/storage/s3.js.map +1 -0
  292. package/dist/providers/support/index.d.ts +19 -0
  293. package/dist/providers/support/index.d.ts.map +1 -0
  294. package/dist/providers/support/index.js +18 -0
  295. package/dist/providers/support/index.js.map +1 -0
  296. package/dist/providers/support/zendesk.d.ts +25 -0
  297. package/dist/providers/support/zendesk.d.ts.map +1 -0
  298. package/dist/providers/support/zendesk.js +374 -0
  299. package/dist/providers/support/zendesk.js.map +1 -0
  300. package/dist/providers/tasks/index.d.ts +19 -0
  301. package/dist/providers/tasks/index.d.ts.map +1 -0
  302. package/dist/providers/tasks/index.js +18 -0
  303. package/dist/providers/tasks/index.js.map +1 -0
  304. package/dist/providers/tasks/todoist.d.ts +25 -0
  305. package/dist/providers/tasks/todoist.d.ts.map +1 -0
  306. package/dist/providers/tasks/todoist.js +287 -0
  307. package/dist/providers/tasks/todoist.js.map +1 -0
  308. package/dist/providers/types.d.ts +1753 -0
  309. package/dist/providers/types.d.ts.map +1 -0
  310. package/dist/providers/types.js +10 -0
  311. package/dist/providers/types.js.map +1 -0
  312. package/dist/providers/video-conferencing/google-meet.d.ts +26 -0
  313. package/dist/providers/video-conferencing/google-meet.d.ts.map +1 -0
  314. package/dist/providers/video-conferencing/google-meet.js +287 -0
  315. package/dist/providers/video-conferencing/google-meet.js.map +1 -0
  316. package/dist/providers/video-conferencing/index.d.ts +22 -0
  317. package/dist/providers/video-conferencing/index.d.ts.map +1 -0
  318. package/dist/providers/video-conferencing/index.js +32 -0
  319. package/dist/providers/video-conferencing/index.js.map +1 -0
  320. package/dist/providers/video-conferencing/jitsi.d.ts +26 -0
  321. package/dist/providers/video-conferencing/jitsi.d.ts.map +1 -0
  322. package/dist/providers/video-conferencing/jitsi.js +255 -0
  323. package/dist/providers/video-conferencing/jitsi.js.map +1 -0
  324. package/dist/providers/video-conferencing/teams.d.ts +26 -0
  325. package/dist/providers/video-conferencing/teams.d.ts.map +1 -0
  326. package/dist/providers/video-conferencing/teams.js +271 -0
  327. package/dist/providers/video-conferencing/teams.js.map +1 -0
  328. package/dist/providers/video-conferencing/zoom.d.ts +25 -0
  329. package/dist/providers/video-conferencing/zoom.d.ts.map +1 -0
  330. package/dist/providers/video-conferencing/zoom.js +333 -0
  331. package/dist/providers/video-conferencing/zoom.js.map +1 -0
  332. package/dist/providers/voice/vapi.d.ts +27 -0
  333. package/dist/providers/voice/vapi.d.ts.map +1 -0
  334. package/dist/providers/voice/vapi.js +440 -0
  335. package/dist/providers/voice/vapi.js.map +1 -0
  336. package/dist/registry.d.ts +38 -0
  337. package/dist/registry.d.ts.map +1 -0
  338. package/dist/registry.js +129 -0
  339. package/dist/registry.js.map +1 -0
  340. package/dist/tools/communication.d.ts +94 -0
  341. package/dist/tools/communication.d.ts.map +1 -0
  342. package/dist/tools/communication.js +185 -0
  343. package/dist/tools/communication.js.map +1 -0
  344. package/dist/tools/data.d.ts +61 -0
  345. package/dist/tools/data.d.ts.map +1 -0
  346. package/dist/tools/data.js +206 -0
  347. package/dist/tools/data.js.map +1 -0
  348. package/dist/tools/index.d.ts +12 -0
  349. package/dist/tools/index.d.ts.map +1 -0
  350. package/dist/tools/index.js +12 -0
  351. package/dist/tools/index.js.map +1 -0
  352. package/dist/tools/web.d.ts +45 -0
  353. package/dist/tools/web.d.ts.map +1 -0
  354. package/dist/tools/web.js +138 -0
  355. package/dist/tools/web.js.map +1 -0
  356. package/dist/types.d.ts +330 -0
  357. package/dist/types.d.ts.map +1 -0
  358. package/dist/types.js +11 -0
  359. package/dist/types.js.map +1 -0
  360. package/package.json +45 -0
  361. package/src/define.ts +321 -0
  362. package/src/entities/advertising.ts +1086 -0
  363. package/src/entities/ai.ts +835 -0
  364. package/src/entities/analytics.ts +1690 -0
  365. package/src/entities/automation.ts +669 -0
  366. package/src/entities/communication.ts +1255 -0
  367. package/src/entities/crm.ts +1481 -0
  368. package/src/entities/design.ts +606 -0
  369. package/src/entities/development.ts +2392 -0
  370. package/src/entities/document.ts +930 -0
  371. package/src/entities/ecommerce.ts +1539 -0
  372. package/src/entities/experiment.ts +1139 -0
  373. package/src/entities/finance.ts +3907 -0
  374. package/src/entities/forms.ts +2021 -0
  375. package/src/entities/hr.ts +725 -0
  376. package/src/entities/identity.ts +1093 -0
  377. package/src/entities/index.ts +731 -0
  378. package/src/entities/infrastructure.ts +1254 -0
  379. package/src/entities/knowledge.ts +1547 -0
  380. package/src/entities/marketing.ts +1718 -0
  381. package/src/entities/media.ts +1747 -0
  382. package/src/entities/notification.ts +1260 -0
  383. package/src/entities/presentation.ts +1360 -0
  384. package/src/entities/productivity.ts +1411 -0
  385. package/src/entities/project-management.ts +1222 -0
  386. package/src/entities/recruiting.ts +797 -0
  387. package/src/entities/shipping.ts +566 -0
  388. package/src/entities/signature.ts +1204 -0
  389. package/src/entities/site.ts +244 -0
  390. package/src/entities/spreadsheet.ts +1434 -0
  391. package/src/entities/storage.ts +1290 -0
  392. package/src/entities/support.ts +1267 -0
  393. package/src/entities/video-conferencing.ts +1874 -0
  394. package/src/entities/video.ts +1035 -0
  395. package/src/entities.ts +1795 -0
  396. package/src/index.ts +176 -0
  397. package/src/providers/analytics/index.ts +21 -0
  398. package/src/providers/analytics/mixpanel.ts +311 -0
  399. package/src/providers/calendar/cal-com.ts +435 -0
  400. package/src/providers/calendar/google-calendar.ts +412 -0
  401. package/src/providers/calendar/index.ts +24 -0
  402. package/src/providers/crm/hubspot.ts +667 -0
  403. package/src/providers/crm/index.ts +21 -0
  404. package/src/providers/development/github.ts +608 -0
  405. package/src/providers/development/index.ts +21 -0
  406. package/src/providers/ecommerce/index.ts +21 -0
  407. package/src/providers/ecommerce/shopify.ts +451 -0
  408. package/src/providers/email/index.ts +24 -0
  409. package/src/providers/email/resend.ts +301 -0
  410. package/src/providers/email/sendgrid.ts +196 -0
  411. package/src/providers/finance/index.ts +21 -0
  412. package/src/providers/finance/stripe.ts +665 -0
  413. package/src/providers/forms/index.ts +21 -0
  414. package/src/providers/forms/typeform.ts +598 -0
  415. package/src/providers/index.ts +281 -0
  416. package/src/providers/knowledge/index.ts +21 -0
  417. package/src/providers/knowledge/notion.ts +497 -0
  418. package/src/providers/marketing/index.ts +21 -0
  419. package/src/providers/marketing/mailchimp.ts +656 -0
  420. package/src/providers/media/cloudinary.ts +373 -0
  421. package/src/providers/media/index.ts +21 -0
  422. package/src/providers/messaging/index.ts +24 -0
  423. package/src/providers/messaging/slack.ts +487 -0
  424. package/src/providers/messaging/twilio-sms.ts +301 -0
  425. package/src/providers/project-management/index.ts +21 -0
  426. package/src/providers/project-management/linear.ts +693 -0
  427. package/src/providers/registry.ts +119 -0
  428. package/src/providers/spreadsheet/google-sheets.ts +464 -0
  429. package/src/providers/spreadsheet/index.ts +24 -0
  430. package/src/providers/spreadsheet/xlsx.ts +542 -0
  431. package/src/providers/storage/index.ts +35 -0
  432. package/src/providers/storage/s3.ts +513 -0
  433. package/src/providers/support/index.ts +21 -0
  434. package/src/providers/support/zendesk.ts +417 -0
  435. package/src/providers/tasks/index.ts +21 -0
  436. package/src/providers/tasks/todoist.ts +407 -0
  437. package/src/providers/types.ts +2113 -0
  438. package/src/providers/video-conferencing/google-meet.ts +412 -0
  439. package/src/providers/video-conferencing/index.ts +35 -0
  440. package/src/providers/video-conferencing/jitsi.ts +324 -0
  441. package/src/providers/video-conferencing/teams.ts +408 -0
  442. package/src/providers/video-conferencing/zoom.ts +451 -0
  443. package/src/registry.ts +172 -0
  444. package/src/tools/communication.ts +256 -0
  445. package/src/tools/data.ts +236 -0
  446. package/src/tools/index.ts +12 -0
  447. package/src/tools/web.ts +161 -0
  448. package/src/types.ts +539 -0
  449. package/test/define.test.ts +367 -0
  450. package/test/registry.test.ts +444 -0
  451. package/test/tools.test.ts +453 -0
  452. package/tsconfig.json +20 -0
@@ -0,0 +1,1222 @@
1
+ /**
2
+ * Project Management Entity Types (Nouns)
3
+ *
4
+ * Semantic type definitions for project management tools that can be used by
5
+ * both remote human workers AND AI agents. Each entity defines:
6
+ * - Properties: The data fields
7
+ * - Actions: Operations that can be performed (Verbs)
8
+ * - Events: State changes that occur
9
+ *
10
+ * @packageDocumentation
11
+ */
12
+
13
+ import type { Noun, NounProperty, NounRelationship, Verb } from 'ai-database'
14
+
15
+ // =============================================================================
16
+ // Project
17
+ // =============================================================================
18
+
19
+ /**
20
+ * Project entity
21
+ *
22
+ * Represents a project with goals, deliverables, team members, and timeline.
23
+ * Used by tools like Jira, Linear, Asana, Monday, ClickUp, etc.
24
+ */
25
+ export const Project: Noun = {
26
+ singular: 'project',
27
+ plural: 'projects',
28
+ description: 'A project with defined scope, timeline, and team members',
29
+
30
+ properties: {
31
+ // Identity
32
+ name: {
33
+ type: 'string',
34
+ description: 'Project name',
35
+ },
36
+ key: {
37
+ type: 'string',
38
+ optional: true,
39
+ description: 'Unique project key/identifier (e.g., PROJ, WEB)',
40
+ },
41
+ description: {
42
+ type: 'string',
43
+ optional: true,
44
+ description: 'Detailed project description',
45
+ },
46
+ icon: {
47
+ type: 'string',
48
+ optional: true,
49
+ description: 'Project icon/emoji',
50
+ },
51
+ color: {
52
+ type: 'string',
53
+ optional: true,
54
+ description: 'Project color code',
55
+ },
56
+
57
+ // Status & Progress
58
+ status: {
59
+ type: 'string',
60
+ description: 'Project status: planning, active, on-hold, completed, cancelled',
61
+ examples: ['planning', 'active', 'on-hold', 'completed', 'cancelled'],
62
+ },
63
+ progress: {
64
+ type: 'number',
65
+ optional: true,
66
+ description: 'Overall completion percentage (0-100)',
67
+ },
68
+ health: {
69
+ type: 'string',
70
+ optional: true,
71
+ description: 'Project health: on-track, at-risk, off-track',
72
+ examples: ['on-track', 'at-risk', 'off-track'],
73
+ },
74
+
75
+ // Timeline
76
+ startDate: {
77
+ type: 'date',
78
+ optional: true,
79
+ description: 'Project start date',
80
+ },
81
+ endDate: {
82
+ type: 'date',
83
+ optional: true,
84
+ description: 'Project end date',
85
+ },
86
+ targetDate: {
87
+ type: 'date',
88
+ optional: true,
89
+ description: 'Target completion date',
90
+ },
91
+
92
+ // Organization
93
+ visibility: {
94
+ type: 'string',
95
+ description: 'Project visibility: public, private, team',
96
+ examples: ['public', 'private', 'team'],
97
+ },
98
+ archived: {
99
+ type: 'boolean',
100
+ optional: true,
101
+ description: 'Whether the project is archived',
102
+ },
103
+
104
+ // Metrics
105
+ issueCount: {
106
+ type: 'number',
107
+ optional: true,
108
+ description: 'Total number of issues',
109
+ },
110
+ openIssueCount: {
111
+ type: 'number',
112
+ optional: true,
113
+ description: 'Number of open issues',
114
+ },
115
+ memberCount: {
116
+ type: 'number',
117
+ optional: true,
118
+ description: 'Number of team members',
119
+ },
120
+
121
+ // Settings
122
+ template: {
123
+ type: 'string',
124
+ optional: true,
125
+ description: 'Project template used',
126
+ },
127
+ workflow: {
128
+ type: 'json',
129
+ optional: true,
130
+ description: 'Custom workflow configuration',
131
+ },
132
+ },
133
+
134
+ relationships: {
135
+ owner: {
136
+ type: 'Contact',
137
+ description: 'Project owner/lead',
138
+ },
139
+ team: {
140
+ type: 'Contact[]',
141
+ description: 'Team members assigned to the project',
142
+ },
143
+ issues: {
144
+ type: 'Issue[]',
145
+ backref: 'project',
146
+ description: 'Issues/tickets in this project',
147
+ },
148
+ epics: {
149
+ type: 'Epic[]',
150
+ backref: 'project',
151
+ description: 'Epics in this project',
152
+ },
153
+ sprints: {
154
+ type: 'Sprint[]',
155
+ backref: 'project',
156
+ description: 'Sprints/iterations for this project',
157
+ },
158
+ milestones: {
159
+ type: 'Milestone[]',
160
+ backref: 'project',
161
+ description: 'Project milestones',
162
+ },
163
+ boards: {
164
+ type: 'Board[]',
165
+ backref: 'project',
166
+ description: 'Kanban boards for this project',
167
+ },
168
+ },
169
+
170
+ actions: [
171
+ 'create',
172
+ 'update',
173
+ 'delete',
174
+ 'archive',
175
+ 'restore',
176
+ 'duplicate',
177
+ 'setStatus',
178
+ 'addMember',
179
+ 'removeMember',
180
+ 'setOwner',
181
+ 'setDates',
182
+ 'updateProgress',
183
+ 'export',
184
+ ],
185
+
186
+ events: [
187
+ 'created',
188
+ 'updated',
189
+ 'deleted',
190
+ 'archived',
191
+ 'restored',
192
+ 'duplicated',
193
+ 'statusChanged',
194
+ 'memberAdded',
195
+ 'memberRemoved',
196
+ 'ownerChanged',
197
+ 'datesChanged',
198
+ 'progressUpdated',
199
+ 'completed',
200
+ 'cancelled',
201
+ ],
202
+ }
203
+
204
+ // =============================================================================
205
+ // Issue
206
+ // =============================================================================
207
+
208
+ /**
209
+ * Issue/Ticket entity
210
+ *
211
+ * Represents a work item, task, bug, or feature request.
212
+ * Brand-agnostic equivalent of:
213
+ * - Jira Issue
214
+ * - Linear Issue
215
+ * - GitHub Issue
216
+ * - Asana Task
217
+ */
218
+ export const Issue: Noun = {
219
+ singular: 'issue',
220
+ plural: 'issues',
221
+ description: 'A work item, task, bug, or feature request',
222
+
223
+ properties: {
224
+ // Identity
225
+ title: {
226
+ type: 'string',
227
+ description: 'Issue title/summary',
228
+ },
229
+ identifier: {
230
+ type: 'string',
231
+ optional: true,
232
+ description: 'Issue identifier (e.g., PROJ-123, #456)',
233
+ },
234
+ description: {
235
+ type: 'markdown',
236
+ optional: true,
237
+ description: 'Detailed issue description',
238
+ },
239
+
240
+ // Type & Classification
241
+ type: {
242
+ type: 'string',
243
+ description: 'Issue type: task, bug, feature, story, epic, subtask',
244
+ examples: ['task', 'bug', 'feature', 'story', 'epic', 'subtask'],
245
+ },
246
+ priority: {
247
+ type: 'string',
248
+ description: 'Priority level: none, low, medium, high, urgent',
249
+ examples: ['none', 'low', 'medium', 'high', 'urgent'],
250
+ },
251
+ severity: {
252
+ type: 'string',
253
+ optional: true,
254
+ description: 'Bug severity: minor, major, critical, blocker',
255
+ examples: ['minor', 'major', 'critical', 'blocker'],
256
+ },
257
+
258
+ // Status & Progress
259
+ status: {
260
+ type: 'string',
261
+ description: 'Issue status: backlog, todo, in-progress, review, done, cancelled',
262
+ examples: ['backlog', 'todo', 'in-progress', 'review', 'done', 'cancelled'],
263
+ },
264
+ progress: {
265
+ type: 'number',
266
+ optional: true,
267
+ description: 'Completion percentage (0-100)',
268
+ },
269
+ resolution: {
270
+ type: 'string',
271
+ optional: true,
272
+ description: 'Resolution: fixed, wont-fix, duplicate, works-as-designed',
273
+ examples: ['fixed', 'wont-fix', 'duplicate', 'works-as-designed'],
274
+ },
275
+
276
+ // Timeline
277
+ createdAt: {
278
+ type: 'datetime',
279
+ description: 'When the issue was created',
280
+ },
281
+ updatedAt: {
282
+ type: 'datetime',
283
+ description: 'When the issue was last updated',
284
+ },
285
+ startDate: {
286
+ type: 'date',
287
+ optional: true,
288
+ description: 'Planned start date',
289
+ },
290
+ dueDate: {
291
+ type: 'date',
292
+ optional: true,
293
+ description: 'Due date',
294
+ },
295
+ completedAt: {
296
+ type: 'datetime',
297
+ optional: true,
298
+ description: 'When the issue was completed',
299
+ },
300
+
301
+ // Estimation
302
+ estimate: {
303
+ type: 'number',
304
+ optional: true,
305
+ description: 'Story points or time estimate',
306
+ },
307
+ estimateType: {
308
+ type: 'string',
309
+ optional: true,
310
+ description: 'Estimation unit: points, hours, days',
311
+ examples: ['points', 'hours', 'days'],
312
+ },
313
+ timeSpent: {
314
+ type: 'number',
315
+ optional: true,
316
+ description: 'Actual time spent in hours',
317
+ },
318
+ timeRemaining: {
319
+ type: 'number',
320
+ optional: true,
321
+ description: 'Estimated time remaining in hours',
322
+ },
323
+
324
+ // Context
325
+ storyPoints: {
326
+ type: 'number',
327
+ optional: true,
328
+ description: 'Story points for agile estimation',
329
+ },
330
+ environment: {
331
+ type: 'string',
332
+ optional: true,
333
+ description: 'Environment where issue occurs: dev, staging, production',
334
+ examples: ['dev', 'staging', 'production'],
335
+ },
336
+
337
+ // Organization
338
+ archived: {
339
+ type: 'boolean',
340
+ optional: true,
341
+ description: 'Whether the issue is archived',
342
+ },
343
+ },
344
+
345
+ relationships: {
346
+ project: {
347
+ type: 'Project',
348
+ backref: 'issues',
349
+ description: 'Project this issue belongs to',
350
+ },
351
+ epic: {
352
+ type: 'Epic',
353
+ required: false,
354
+ backref: 'issues',
355
+ description: 'Parent epic if this is part of one',
356
+ },
357
+ sprint: {
358
+ type: 'Sprint',
359
+ required: false,
360
+ backref: 'issues',
361
+ description: 'Sprint this issue is assigned to',
362
+ },
363
+ milestone: {
364
+ type: 'Milestone',
365
+ required: false,
366
+ backref: 'issues',
367
+ description: 'Milestone this issue is part of',
368
+ },
369
+ assignee: {
370
+ type: 'Contact',
371
+ required: false,
372
+ description: 'Person assigned to work on this issue',
373
+ },
374
+ reporter: {
375
+ type: 'Contact',
376
+ description: 'Person who reported/created the issue',
377
+ },
378
+ labels: {
379
+ type: 'Label[]',
380
+ description: 'Labels applied to this issue',
381
+ },
382
+ parent: {
383
+ type: 'Issue',
384
+ required: false,
385
+ description: 'Parent issue (for subtasks)',
386
+ },
387
+ subtasks: {
388
+ type: 'Issue[]',
389
+ description: 'Child issues/subtasks',
390
+ },
391
+ blockedBy: {
392
+ type: 'Issue[]',
393
+ description: 'Issues blocking this one',
394
+ },
395
+ blocks: {
396
+ type: 'Issue[]',
397
+ description: 'Issues this one blocks',
398
+ },
399
+ relatedTo: {
400
+ type: 'Issue[]',
401
+ description: 'Related issues',
402
+ },
403
+ comments: {
404
+ type: 'Comment[]',
405
+ backref: 'issue',
406
+ description: 'Comments on this issue',
407
+ },
408
+ attachments: {
409
+ type: 'Attachment[]',
410
+ description: 'Files attached to this issue',
411
+ },
412
+ column: {
413
+ type: 'Column',
414
+ required: false,
415
+ description: 'Board column this issue is in',
416
+ },
417
+ },
418
+
419
+ actions: [
420
+ 'create',
421
+ 'update',
422
+ 'delete',
423
+ 'archive',
424
+ 'restore',
425
+ 'duplicate',
426
+ 'assign',
427
+ 'unassign',
428
+ 'setStatus',
429
+ 'setPriority',
430
+ 'setType',
431
+ 'addLabel',
432
+ 'removeLabel',
433
+ 'addSubtask',
434
+ 'link',
435
+ 'unlink',
436
+ 'block',
437
+ 'unblock',
438
+ 'move',
439
+ 'comment',
440
+ 'estimate',
441
+ 'logTime',
442
+ 'watch',
443
+ 'unwatch',
444
+ ],
445
+
446
+ events: [
447
+ 'created',
448
+ 'updated',
449
+ 'deleted',
450
+ 'archived',
451
+ 'restored',
452
+ 'duplicated',
453
+ 'assigned',
454
+ 'unassigned',
455
+ 'statusChanged',
456
+ 'priorityChanged',
457
+ 'typeChanged',
458
+ 'labeled',
459
+ 'unlabeled',
460
+ 'subtaskAdded',
461
+ 'linked',
462
+ 'unlinked',
463
+ 'blocked',
464
+ 'unblocked',
465
+ 'moved',
466
+ 'commented',
467
+ 'estimated',
468
+ 'timeLogged',
469
+ 'completed',
470
+ 'reopened',
471
+ ],
472
+ }
473
+
474
+ // =============================================================================
475
+ // Sprint
476
+ // =============================================================================
477
+
478
+ /**
479
+ * Sprint/Iteration entity
480
+ *
481
+ * Represents a time-boxed iteration for agile development.
482
+ */
483
+ export const Sprint: Noun = {
484
+ singular: 'sprint',
485
+ plural: 'sprints',
486
+ description: 'A time-boxed iteration for agile development',
487
+
488
+ properties: {
489
+ // Identity
490
+ name: {
491
+ type: 'string',
492
+ description: 'Sprint name',
493
+ },
494
+ number: {
495
+ type: 'number',
496
+ optional: true,
497
+ description: 'Sprint number/sequence',
498
+ },
499
+ goal: {
500
+ type: 'string',
501
+ optional: true,
502
+ description: 'Sprint goal or objective',
503
+ },
504
+
505
+ // Status
506
+ status: {
507
+ type: 'string',
508
+ description: 'Sprint status: planning, active, completed, cancelled',
509
+ examples: ['planning', 'active', 'completed', 'cancelled'],
510
+ },
511
+
512
+ // Timeline
513
+ startDate: {
514
+ type: 'date',
515
+ description: 'Sprint start date',
516
+ },
517
+ endDate: {
518
+ type: 'date',
519
+ description: 'Sprint end date',
520
+ },
521
+ duration: {
522
+ type: 'number',
523
+ optional: true,
524
+ description: 'Sprint duration in days',
525
+ },
526
+
527
+ // Metrics
528
+ capacity: {
529
+ type: 'number',
530
+ optional: true,
531
+ description: 'Team capacity in story points or hours',
532
+ },
533
+ commitment: {
534
+ type: 'number',
535
+ optional: true,
536
+ description: 'Committed story points or hours',
537
+ },
538
+ completed: {
539
+ type: 'number',
540
+ optional: true,
541
+ description: 'Completed story points or hours',
542
+ },
543
+ velocity: {
544
+ type: 'number',
545
+ optional: true,
546
+ description: 'Actual velocity (completed work)',
547
+ },
548
+ issueCount: {
549
+ type: 'number',
550
+ optional: true,
551
+ description: 'Total number of issues',
552
+ },
553
+ completedIssueCount: {
554
+ type: 'number',
555
+ optional: true,
556
+ description: 'Number of completed issues',
557
+ },
558
+
559
+ // Settings
560
+ autoComplete: {
561
+ type: 'boolean',
562
+ optional: true,
563
+ description: 'Whether to auto-complete the sprint when end date is reached',
564
+ },
565
+ },
566
+
567
+ relationships: {
568
+ project: {
569
+ type: 'Project',
570
+ backref: 'sprints',
571
+ description: 'Project this sprint belongs to',
572
+ },
573
+ issues: {
574
+ type: 'Issue[]',
575
+ backref: 'sprint',
576
+ description: 'Issues in this sprint',
577
+ },
578
+ team: {
579
+ type: 'Contact[]',
580
+ description: 'Team members working in this sprint',
581
+ },
582
+ },
583
+
584
+ actions: [
585
+ 'create',
586
+ 'update',
587
+ 'delete',
588
+ 'start',
589
+ 'complete',
590
+ 'cancel',
591
+ 'addIssue',
592
+ 'removeIssue',
593
+ 'setGoal',
594
+ 'setCapacity',
595
+ 'extend',
596
+ ],
597
+
598
+ events: [
599
+ 'created',
600
+ 'updated',
601
+ 'deleted',
602
+ 'started',
603
+ 'completed',
604
+ 'cancelled',
605
+ 'issueAdded',
606
+ 'issueRemoved',
607
+ 'goalChanged',
608
+ 'capacityChanged',
609
+ 'extended',
610
+ ],
611
+ }
612
+
613
+ // =============================================================================
614
+ // Milestone
615
+ // =============================================================================
616
+
617
+ /**
618
+ * Milestone/Release entity
619
+ *
620
+ * Represents a significant point in project timeline, often a release or major deliverable.
621
+ */
622
+ export const Milestone: Noun = {
623
+ singular: 'milestone',
624
+ plural: 'milestones',
625
+ description: 'A significant point in project timeline or a release',
626
+
627
+ properties: {
628
+ // Identity
629
+ name: {
630
+ type: 'string',
631
+ description: 'Milestone name',
632
+ },
633
+ description: {
634
+ type: 'string',
635
+ optional: true,
636
+ description: 'Milestone description',
637
+ },
638
+ version: {
639
+ type: 'string',
640
+ optional: true,
641
+ description: 'Version number for releases (e.g., v1.2.0)',
642
+ },
643
+
644
+ // Status
645
+ status: {
646
+ type: 'string',
647
+ description: 'Milestone status: planned, active, completed, cancelled',
648
+ examples: ['planned', 'active', 'completed', 'cancelled'],
649
+ },
650
+ progress: {
651
+ type: 'number',
652
+ optional: true,
653
+ description: 'Overall completion percentage (0-100)',
654
+ },
655
+
656
+ // Timeline
657
+ startDate: {
658
+ type: 'date',
659
+ optional: true,
660
+ description: 'Milestone start date',
661
+ },
662
+ targetDate: {
663
+ type: 'date',
664
+ description: 'Target completion date',
665
+ },
666
+ completedAt: {
667
+ type: 'datetime',
668
+ optional: true,
669
+ description: 'When the milestone was completed',
670
+ },
671
+
672
+ // Metrics
673
+ issueCount: {
674
+ type: 'number',
675
+ optional: true,
676
+ description: 'Total number of issues',
677
+ },
678
+ openIssueCount: {
679
+ type: 'number',
680
+ optional: true,
681
+ description: 'Number of open issues',
682
+ },
683
+ closedIssueCount: {
684
+ type: 'number',
685
+ optional: true,
686
+ description: 'Number of closed issues',
687
+ },
688
+
689
+ // Organization
690
+ archived: {
691
+ type: 'boolean',
692
+ optional: true,
693
+ description: 'Whether the milestone is archived',
694
+ },
695
+ },
696
+
697
+ relationships: {
698
+ project: {
699
+ type: 'Project',
700
+ backref: 'milestones',
701
+ description: 'Project this milestone belongs to',
702
+ },
703
+ issues: {
704
+ type: 'Issue[]',
705
+ backref: 'milestone',
706
+ description: 'Issues associated with this milestone',
707
+ },
708
+ owner: {
709
+ type: 'Contact',
710
+ required: false,
711
+ description: 'Person responsible for this milestone',
712
+ },
713
+ },
714
+
715
+ actions: [
716
+ 'create',
717
+ 'update',
718
+ 'delete',
719
+ 'archive',
720
+ 'restore',
721
+ 'complete',
722
+ 'cancel',
723
+ 'addIssue',
724
+ 'removeIssue',
725
+ 'setTargetDate',
726
+ ],
727
+
728
+ events: [
729
+ 'created',
730
+ 'updated',
731
+ 'deleted',
732
+ 'archived',
733
+ 'restored',
734
+ 'completed',
735
+ 'cancelled',
736
+ 'issueAdded',
737
+ 'issueRemoved',
738
+ 'targetDateChanged',
739
+ 'delayed',
740
+ ],
741
+ }
742
+
743
+ // =============================================================================
744
+ // Board
745
+ // =============================================================================
746
+
747
+ /**
748
+ * Board entity
749
+ *
750
+ * Represents a Kanban board for visualizing work and workflow.
751
+ */
752
+ export const Board: Noun = {
753
+ singular: 'board',
754
+ plural: 'boards',
755
+ description: 'A Kanban board for visualizing work and workflow',
756
+
757
+ properties: {
758
+ // Identity
759
+ name: {
760
+ type: 'string',
761
+ description: 'Board name',
762
+ },
763
+ description: {
764
+ type: 'string',
765
+ optional: true,
766
+ description: 'Board description',
767
+ },
768
+ icon: {
769
+ type: 'string',
770
+ optional: true,
771
+ description: 'Board icon/emoji',
772
+ },
773
+
774
+ // Type
775
+ type: {
776
+ type: 'string',
777
+ description: 'Board type: kanban, scrum, list',
778
+ examples: ['kanban', 'scrum', 'list'],
779
+ },
780
+
781
+ // Settings
782
+ swimlanes: {
783
+ type: 'string',
784
+ optional: true,
785
+ description: 'Swimlane grouping: none, assignee, priority, epic',
786
+ examples: ['none', 'assignee', 'priority', 'epic'],
787
+ },
788
+ cardStyle: {
789
+ type: 'string',
790
+ optional: true,
791
+ description: 'Card display style: compact, detailed, custom',
792
+ examples: ['compact', 'detailed', 'custom'],
793
+ },
794
+ autoArchive: {
795
+ type: 'boolean',
796
+ optional: true,
797
+ description: 'Whether to automatically archive completed issues',
798
+ },
799
+
800
+ // Organization
801
+ visibility: {
802
+ type: 'string',
803
+ description: 'Board visibility: public, private, team',
804
+ examples: ['public', 'private', 'team'],
805
+ },
806
+ archived: {
807
+ type: 'boolean',
808
+ optional: true,
809
+ description: 'Whether the board is archived',
810
+ },
811
+ },
812
+
813
+ relationships: {
814
+ project: {
815
+ type: 'Project',
816
+ backref: 'boards',
817
+ description: 'Project this board belongs to',
818
+ },
819
+ columns: {
820
+ type: 'Column[]',
821
+ backref: 'board',
822
+ description: 'Columns in this board',
823
+ },
824
+ owner: {
825
+ type: 'Contact',
826
+ description: 'Board owner',
827
+ },
828
+ members: {
829
+ type: 'Contact[]',
830
+ description: 'Members with access to this board',
831
+ },
832
+ },
833
+
834
+ actions: [
835
+ 'create',
836
+ 'update',
837
+ 'delete',
838
+ 'archive',
839
+ 'restore',
840
+ 'duplicate',
841
+ 'addColumn',
842
+ 'removeColumn',
843
+ 'reorderColumns',
844
+ 'addMember',
845
+ 'removeMember',
846
+ 'setSwimlanes',
847
+ ],
848
+
849
+ events: [
850
+ 'created',
851
+ 'updated',
852
+ 'deleted',
853
+ 'archived',
854
+ 'restored',
855
+ 'duplicated',
856
+ 'columnAdded',
857
+ 'columnRemoved',
858
+ 'columnsReordered',
859
+ 'memberAdded',
860
+ 'memberRemoved',
861
+ 'swimlanesChanged',
862
+ ],
863
+ }
864
+
865
+ // =============================================================================
866
+ // Column
867
+ // =============================================================================
868
+
869
+ /**
870
+ * Column entity
871
+ *
872
+ * Represents a column in a Kanban board (e.g., Todo, In Progress, Done).
873
+ */
874
+ export const Column: Noun = {
875
+ singular: 'column',
876
+ plural: 'columns',
877
+ description: 'A column in a Kanban board representing a workflow state',
878
+
879
+ properties: {
880
+ // Identity
881
+ name: {
882
+ type: 'string',
883
+ description: 'Column name',
884
+ },
885
+ description: {
886
+ type: 'string',
887
+ optional: true,
888
+ description: 'Column description',
889
+ },
890
+
891
+ // Visual
892
+ color: {
893
+ type: 'string',
894
+ optional: true,
895
+ description: 'Column color code',
896
+ },
897
+ icon: {
898
+ type: 'string',
899
+ optional: true,
900
+ description: 'Column icon/emoji',
901
+ },
902
+
903
+ // Position
904
+ position: {
905
+ type: 'number',
906
+ description: 'Column position/order (0-indexed)',
907
+ },
908
+
909
+ // Constraints
910
+ wipLimit: {
911
+ type: 'number',
912
+ optional: true,
913
+ description: 'Work-in-progress limit for this column',
914
+ },
915
+ issueCount: {
916
+ type: 'number',
917
+ optional: true,
918
+ description: 'Current number of issues in this column',
919
+ },
920
+
921
+ // Status Mapping
922
+ statusCategory: {
923
+ type: 'string',
924
+ description: 'Status category: todo, in-progress, done',
925
+ examples: ['todo', 'in-progress', 'done'],
926
+ },
927
+ },
928
+
929
+ relationships: {
930
+ board: {
931
+ type: 'Board',
932
+ backref: 'columns',
933
+ description: 'Board this column belongs to',
934
+ },
935
+ issues: {
936
+ type: 'Issue[]',
937
+ description: 'Issues currently in this column',
938
+ },
939
+ },
940
+
941
+ actions: [
942
+ 'create',
943
+ 'update',
944
+ 'delete',
945
+ 'rename',
946
+ 'move',
947
+ 'setColor',
948
+ 'setWipLimit',
949
+ ],
950
+
951
+ events: [
952
+ 'created',
953
+ 'updated',
954
+ 'deleted',
955
+ 'renamed',
956
+ 'moved',
957
+ 'colorChanged',
958
+ 'wipLimitChanged',
959
+ 'wipLimitExceeded',
960
+ ],
961
+ }
962
+
963
+ // =============================================================================
964
+ // Label
965
+ // =============================================================================
966
+
967
+ /**
968
+ * Label entity
969
+ *
970
+ * Represents a label/tag for categorizing and filtering issues.
971
+ */
972
+ export const Label: Noun = {
973
+ singular: 'label',
974
+ plural: 'labels',
975
+ description: 'A label or tag for categorizing and filtering issues',
976
+
977
+ properties: {
978
+ // Identity
979
+ name: {
980
+ type: 'string',
981
+ description: 'Label name',
982
+ },
983
+ description: {
984
+ type: 'string',
985
+ optional: true,
986
+ description: 'Label description',
987
+ },
988
+
989
+ // Visual
990
+ color: {
991
+ type: 'string',
992
+ description: 'Label color code (hex)',
993
+ },
994
+ icon: {
995
+ type: 'string',
996
+ optional: true,
997
+ description: 'Label icon/emoji',
998
+ },
999
+
1000
+ // Organization
1001
+ category: {
1002
+ type: 'string',
1003
+ optional: true,
1004
+ description: 'Label category or group',
1005
+ },
1006
+ },
1007
+
1008
+ relationships: {
1009
+ project: {
1010
+ type: 'Project',
1011
+ required: false,
1012
+ description: 'Project this label is scoped to (if any)',
1013
+ },
1014
+ issues: {
1015
+ type: 'Issue[]',
1016
+ description: 'Issues with this label',
1017
+ },
1018
+ },
1019
+
1020
+ actions: [
1021
+ 'create',
1022
+ 'update',
1023
+ 'delete',
1024
+ 'rename',
1025
+ 'setColor',
1026
+ 'merge',
1027
+ ],
1028
+
1029
+ events: [
1030
+ 'created',
1031
+ 'updated',
1032
+ 'deleted',
1033
+ 'renamed',
1034
+ 'colorChanged',
1035
+ 'merged',
1036
+ 'applied',
1037
+ 'removed',
1038
+ ],
1039
+ }
1040
+
1041
+ // =============================================================================
1042
+ // Epic
1043
+ // =============================================================================
1044
+
1045
+ /**
1046
+ * Epic entity
1047
+ *
1048
+ * Represents a large body of work that can be broken down into smaller issues.
1049
+ */
1050
+ export const Epic: Noun = {
1051
+ singular: 'epic',
1052
+ plural: 'epics',
1053
+ description: 'A large body of work containing multiple related issues',
1054
+
1055
+ properties: {
1056
+ // Identity
1057
+ name: {
1058
+ type: 'string',
1059
+ description: 'Epic name/title',
1060
+ },
1061
+ identifier: {
1062
+ type: 'string',
1063
+ optional: true,
1064
+ description: 'Epic identifier (e.g., PROJ-E1)',
1065
+ },
1066
+ description: {
1067
+ type: 'markdown',
1068
+ optional: true,
1069
+ description: 'Detailed epic description',
1070
+ },
1071
+
1072
+ // Visual
1073
+ color: {
1074
+ type: 'string',
1075
+ optional: true,
1076
+ description: 'Epic color code',
1077
+ },
1078
+ icon: {
1079
+ type: 'string',
1080
+ optional: true,
1081
+ description: 'Epic icon/emoji',
1082
+ },
1083
+
1084
+ // Status & Progress
1085
+ status: {
1086
+ type: 'string',
1087
+ description: 'Epic status: planned, active, completed, cancelled',
1088
+ examples: ['planned', 'active', 'completed', 'cancelled'],
1089
+ },
1090
+ progress: {
1091
+ type: 'number',
1092
+ optional: true,
1093
+ description: 'Overall completion percentage (0-100)',
1094
+ },
1095
+
1096
+ // Timeline
1097
+ startDate: {
1098
+ type: 'date',
1099
+ optional: true,
1100
+ description: 'Epic start date',
1101
+ },
1102
+ targetDate: {
1103
+ type: 'date',
1104
+ optional: true,
1105
+ description: 'Target completion date',
1106
+ },
1107
+ completedAt: {
1108
+ type: 'datetime',
1109
+ optional: true,
1110
+ description: 'When the epic was completed',
1111
+ },
1112
+
1113
+ // Metrics
1114
+ issueCount: {
1115
+ type: 'number',
1116
+ optional: true,
1117
+ description: 'Total number of issues in this epic',
1118
+ },
1119
+ completedIssueCount: {
1120
+ type: 'number',
1121
+ optional: true,
1122
+ description: 'Number of completed issues',
1123
+ },
1124
+ storyPoints: {
1125
+ type: 'number',
1126
+ optional: true,
1127
+ description: 'Total story points',
1128
+ },
1129
+ completedStoryPoints: {
1130
+ type: 'number',
1131
+ optional: true,
1132
+ description: 'Completed story points',
1133
+ },
1134
+
1135
+ // Organization
1136
+ archived: {
1137
+ type: 'boolean',
1138
+ optional: true,
1139
+ description: 'Whether the epic is archived',
1140
+ },
1141
+ },
1142
+
1143
+ relationships: {
1144
+ project: {
1145
+ type: 'Project',
1146
+ backref: 'epics',
1147
+ description: 'Project this epic belongs to',
1148
+ },
1149
+ issues: {
1150
+ type: 'Issue[]',
1151
+ backref: 'epic',
1152
+ description: 'Issues in this epic',
1153
+ },
1154
+ owner: {
1155
+ type: 'Contact',
1156
+ required: false,
1157
+ description: 'Person responsible for this epic',
1158
+ },
1159
+ labels: {
1160
+ type: 'Label[]',
1161
+ description: 'Labels applied to this epic',
1162
+ },
1163
+ },
1164
+
1165
+ actions: [
1166
+ 'create',
1167
+ 'update',
1168
+ 'delete',
1169
+ 'archive',
1170
+ 'restore',
1171
+ 'setStatus',
1172
+ 'addIssue',
1173
+ 'removeIssue',
1174
+ 'setDates',
1175
+ 'addLabel',
1176
+ 'removeLabel',
1177
+ ],
1178
+
1179
+ events: [
1180
+ 'created',
1181
+ 'updated',
1182
+ 'deleted',
1183
+ 'archived',
1184
+ 'restored',
1185
+ 'statusChanged',
1186
+ 'issueAdded',
1187
+ 'issueRemoved',
1188
+ 'datesChanged',
1189
+ 'labeled',
1190
+ 'unlabeled',
1191
+ 'completed',
1192
+ 'cancelled',
1193
+ ],
1194
+ }
1195
+
1196
+ // =============================================================================
1197
+ // Export all entities as a schema
1198
+ // =============================================================================
1199
+
1200
+ /**
1201
+ * All project management entity types
1202
+ */
1203
+ export const ProjectManagementEntities = {
1204
+ Project,
1205
+ Issue,
1206
+ Sprint,
1207
+ Milestone,
1208
+ Board,
1209
+ Column,
1210
+ Label,
1211
+ Epic,
1212
+ }
1213
+
1214
+ /**
1215
+ * Entity categories for organization
1216
+ */
1217
+ export const ProjectManagementCategories = {
1218
+ core: ['Project', 'Issue', 'Epic'],
1219
+ planning: ['Sprint', 'Milestone'],
1220
+ visualization: ['Board', 'Column'],
1221
+ organization: ['Label'],
1222
+ } as const