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,1547 @@
1
+ /**
2
+ * Knowledge & Wiki Entity Types (Nouns)
3
+ *
4
+ * Semantic type definitions for knowledge management and wiki systems
5
+ * that can be used by 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
+ // Wiki
17
+ // =============================================================================
18
+
19
+ /**
20
+ * WikiPage entity
21
+ *
22
+ * Represents a wiki page with title, content, and version history
23
+ */
24
+ export const WikiPage: Noun = {
25
+ singular: 'wiki page',
26
+ plural: 'wiki pages',
27
+ description: 'A wiki page containing collaborative documentation',
28
+
29
+ properties: {
30
+ // Identity
31
+ title: {
32
+ type: 'string',
33
+ description: 'Page title',
34
+ },
35
+ slug: {
36
+ type: 'string',
37
+ description: 'URL-friendly page identifier',
38
+ },
39
+
40
+ // Content
41
+ content: {
42
+ type: 'markdown',
43
+ description: 'Page content in markdown or wiki markup',
44
+ },
45
+ rawContent: {
46
+ type: 'string',
47
+ optional: true,
48
+ description: 'Raw content before rendering',
49
+ },
50
+ summary: {
51
+ type: 'string',
52
+ optional: true,
53
+ description: 'Brief summary or excerpt of the page',
54
+ },
55
+ format: {
56
+ type: 'string',
57
+ description: 'Content format: markdown, wiki, html, plaintext',
58
+ examples: ['markdown', 'wiki', 'html', 'plaintext'],
59
+ },
60
+
61
+ // Hierarchy
62
+ path: {
63
+ type: 'string',
64
+ description: 'Full hierarchical path (e.g., /docs/api/overview)',
65
+ },
66
+ level: {
67
+ type: 'number',
68
+ description: 'Depth level in the page hierarchy',
69
+ },
70
+
71
+ // Version Control
72
+ version: {
73
+ type: 'number',
74
+ description: 'Current version number',
75
+ },
76
+ revisionCount: {
77
+ type: 'number',
78
+ optional: true,
79
+ description: 'Total number of revisions',
80
+ },
81
+
82
+ // Metadata
83
+ status: {
84
+ type: 'string',
85
+ description: 'Page status: draft, published, archived, deleted',
86
+ examples: ['draft', 'published', 'archived', 'deleted'],
87
+ },
88
+ visibility: {
89
+ type: 'string',
90
+ description: 'Visibility level: public, private, restricted',
91
+ examples: ['public', 'private', 'restricted'],
92
+ },
93
+ featured: {
94
+ type: 'boolean',
95
+ optional: true,
96
+ description: 'Whether the page is featured or highlighted',
97
+ },
98
+ locked: {
99
+ type: 'boolean',
100
+ optional: true,
101
+ description: 'Whether the page is locked from editing',
102
+ },
103
+ template: {
104
+ type: 'boolean',
105
+ optional: true,
106
+ description: 'Whether this page is a template for creating new pages',
107
+ },
108
+
109
+ // Statistics
110
+ viewCount: {
111
+ type: 'number',
112
+ optional: true,
113
+ description: 'Number of times the page has been viewed',
114
+ },
115
+ editCount: {
116
+ type: 'number',
117
+ optional: true,
118
+ description: 'Number of edits made to the page',
119
+ },
120
+ wordCount: {
121
+ type: 'number',
122
+ optional: true,
123
+ description: 'Number of words in the page',
124
+ },
125
+ characterCount: {
126
+ type: 'number',
127
+ optional: true,
128
+ description: 'Number of characters',
129
+ },
130
+
131
+ // Timestamps
132
+ publishedAt: {
133
+ type: 'datetime',
134
+ optional: true,
135
+ description: 'When the page was first published',
136
+ },
137
+ lastEditedAt: {
138
+ type: 'datetime',
139
+ optional: true,
140
+ description: 'When the page was last edited',
141
+ },
142
+ },
143
+
144
+ relationships: {
145
+ space: {
146
+ type: 'WikiSpace',
147
+ backref: 'pages',
148
+ description: 'The wiki space this page belongs to',
149
+ },
150
+ parent: {
151
+ type: 'WikiPage',
152
+ required: false,
153
+ description: 'Parent page in the hierarchy',
154
+ },
155
+ children: {
156
+ type: 'WikiPage[]',
157
+ description: 'Child pages under this page',
158
+ },
159
+ author: {
160
+ type: 'Contact',
161
+ description: 'Original author of the page',
162
+ },
163
+ lastEditor: {
164
+ type: 'Contact',
165
+ description: 'Person who last edited the page',
166
+ },
167
+ contributors: {
168
+ type: 'Contact[]',
169
+ description: 'All people who have edited this page',
170
+ },
171
+ revisions: {
172
+ type: 'WikiRevision[]',
173
+ backref: 'page',
174
+ description: 'Version history of the page',
175
+ },
176
+ comments: {
177
+ type: 'Comment[]',
178
+ backref: 'page',
179
+ description: 'Comments on the page',
180
+ },
181
+ attachments: {
182
+ type: 'Attachment[]',
183
+ description: 'Files attached to the page',
184
+ },
185
+ tags: {
186
+ type: 'Tag[]',
187
+ description: 'Tags categorizing this page',
188
+ },
189
+ linkedPages: {
190
+ type: 'WikiPage[]',
191
+ description: 'Pages that this page links to',
192
+ },
193
+ backlinks: {
194
+ type: 'WikiPage[]',
195
+ description: 'Pages that link to this page',
196
+ },
197
+ },
198
+
199
+ actions: [
200
+ 'create',
201
+ 'edit',
202
+ 'save',
203
+ 'publish',
204
+ 'unpublish',
205
+ 'archive',
206
+ 'restore',
207
+ 'delete',
208
+ 'rename',
209
+ 'move',
210
+ 'duplicate',
211
+ 'lock',
212
+ 'unlock',
213
+ 'watch',
214
+ 'unwatch',
215
+ 'comment',
216
+ 'tag',
217
+ 'untag',
218
+ 'export',
219
+ 'print',
220
+ 'share',
221
+ 'revert',
222
+ 'compare',
223
+ ],
224
+
225
+ events: [
226
+ 'created',
227
+ 'edited',
228
+ 'saved',
229
+ 'published',
230
+ 'unpublished',
231
+ 'archived',
232
+ 'restored',
233
+ 'deleted',
234
+ 'renamed',
235
+ 'moved',
236
+ 'duplicated',
237
+ 'locked',
238
+ 'unlocked',
239
+ 'viewed',
240
+ 'commented',
241
+ 'tagged',
242
+ 'exported',
243
+ 'shared',
244
+ 'reverted',
245
+ ],
246
+ }
247
+
248
+ /**
249
+ * WikiSpace entity
250
+ *
251
+ * Represents a wiki space or namespace containing related pages
252
+ */
253
+ export const WikiSpace: Noun = {
254
+ singular: 'wiki space',
255
+ plural: 'wiki spaces',
256
+ description: 'A container or namespace for organizing related wiki pages',
257
+
258
+ properties: {
259
+ // Identity
260
+ name: {
261
+ type: 'string',
262
+ description: 'Space name',
263
+ },
264
+ key: {
265
+ type: 'string',
266
+ description: 'Unique space key or identifier',
267
+ },
268
+ description: {
269
+ type: 'string',
270
+ optional: true,
271
+ description: 'Space description',
272
+ },
273
+
274
+ // Appearance
275
+ icon: {
276
+ type: 'url',
277
+ optional: true,
278
+ description: 'Space icon or logo URL',
279
+ },
280
+ color: {
281
+ type: 'string',
282
+ optional: true,
283
+ description: 'Space color theme',
284
+ },
285
+ homepage: {
286
+ type: 'string',
287
+ optional: true,
288
+ description: 'Path to the space homepage',
289
+ },
290
+
291
+ // Configuration
292
+ visibility: {
293
+ type: 'string',
294
+ description: 'Space visibility: public, private, organization',
295
+ examples: ['public', 'private', 'organization'],
296
+ },
297
+ status: {
298
+ type: 'string',
299
+ description: 'Space status: active, archived, deleted',
300
+ examples: ['active', 'archived', 'deleted'],
301
+ },
302
+ template: {
303
+ type: 'string',
304
+ optional: true,
305
+ description: 'Space template used',
306
+ },
307
+
308
+ // Settings
309
+ allowAnonymousAccess: {
310
+ type: 'boolean',
311
+ optional: true,
312
+ description: 'Whether anonymous users can view the space',
313
+ },
314
+ allowComments: {
315
+ type: 'boolean',
316
+ optional: true,
317
+ description: 'Whether comments are enabled',
318
+ },
319
+ requireApproval: {
320
+ type: 'boolean',
321
+ optional: true,
322
+ description: 'Whether edits require approval',
323
+ },
324
+
325
+ // Statistics
326
+ pageCount: {
327
+ type: 'number',
328
+ optional: true,
329
+ description: 'Number of pages in the space',
330
+ },
331
+ memberCount: {
332
+ type: 'number',
333
+ optional: true,
334
+ description: 'Number of members with access',
335
+ },
336
+ },
337
+
338
+ relationships: {
339
+ pages: {
340
+ type: 'WikiPage[]',
341
+ backref: 'space',
342
+ description: 'Pages in this space',
343
+ },
344
+ owner: {
345
+ type: 'Contact',
346
+ description: 'Space owner',
347
+ },
348
+ admins: {
349
+ type: 'Contact[]',
350
+ description: 'Space administrators',
351
+ },
352
+ members: {
353
+ type: 'Contact[]',
354
+ description: 'Members with access to the space',
355
+ },
356
+ categories: {
357
+ type: 'Category[]',
358
+ description: 'Categories for organizing pages',
359
+ },
360
+ },
361
+
362
+ actions: [
363
+ 'create',
364
+ 'configure',
365
+ 'archive',
366
+ 'restore',
367
+ 'delete',
368
+ 'invite',
369
+ 'removeMember',
370
+ 'setPermissions',
371
+ 'export',
372
+ ],
373
+
374
+ events: [
375
+ 'created',
376
+ 'configured',
377
+ 'archived',
378
+ 'restored',
379
+ 'deleted',
380
+ 'memberJoined',
381
+ 'memberLeft',
382
+ 'memberRemoved',
383
+ 'exported',
384
+ ],
385
+ }
386
+
387
+ /**
388
+ * WikiRevision entity
389
+ *
390
+ * Represents a specific revision in a wiki page's history
391
+ */
392
+ export const WikiRevision: Noun = {
393
+ singular: 'wiki revision',
394
+ plural: 'wiki revisions',
395
+ description: 'A specific version in a wiki page history',
396
+
397
+ properties: {
398
+ version: {
399
+ type: 'number',
400
+ description: 'Version number',
401
+ },
402
+ content: {
403
+ type: 'markdown',
404
+ description: 'Page content at this revision',
405
+ },
406
+ comment: {
407
+ type: 'string',
408
+ optional: true,
409
+ description: 'Edit comment or summary of changes',
410
+ },
411
+ changeSize: {
412
+ type: 'number',
413
+ optional: true,
414
+ description: 'Size of change in characters (positive or negative)',
415
+ },
416
+ isMajor: {
417
+ type: 'boolean',
418
+ optional: true,
419
+ description: 'Whether this is a major revision',
420
+ },
421
+ isReverted: {
422
+ type: 'boolean',
423
+ optional: true,
424
+ description: 'Whether this revision was later reverted',
425
+ },
426
+ },
427
+
428
+ relationships: {
429
+ page: {
430
+ type: 'WikiPage',
431
+ backref: 'revisions',
432
+ description: 'Page this is a revision of',
433
+ },
434
+ author: {
435
+ type: 'Contact',
436
+ description: 'Who made this revision',
437
+ },
438
+ previousRevision: {
439
+ type: 'WikiRevision',
440
+ required: false,
441
+ description: 'Previous revision',
442
+ },
443
+ },
444
+
445
+ actions: ['view', 'restore', 'compare', 'revert', 'export'],
446
+
447
+ events: ['created', 'viewed', 'restored', 'compared', 'reverted'],
448
+ }
449
+
450
+ // =============================================================================
451
+ // Knowledge Base
452
+ // =============================================================================
453
+
454
+ /**
455
+ * Article entity
456
+ *
457
+ * Represents a knowledge base article (more structured than wiki pages)
458
+ */
459
+ export const Article: Noun = {
460
+ singular: 'article',
461
+ plural: 'articles',
462
+ description: 'A knowledge base article with structured content',
463
+
464
+ properties: {
465
+ // Identity
466
+ title: {
467
+ type: 'string',
468
+ description: 'Article title',
469
+ },
470
+ slug: {
471
+ type: 'string',
472
+ description: 'URL-friendly identifier',
473
+ },
474
+
475
+ // Content
476
+ content: {
477
+ type: 'markdown',
478
+ description: 'Article content',
479
+ },
480
+ excerpt: {
481
+ type: 'string',
482
+ optional: true,
483
+ description: 'Short excerpt or summary',
484
+ },
485
+ format: {
486
+ type: 'string',
487
+ description: 'Content format: markdown, html, richtext',
488
+ examples: ['markdown', 'html', 'richtext'],
489
+ },
490
+
491
+ // Organization
492
+ category: {
493
+ type: 'string',
494
+ optional: true,
495
+ description: 'Primary category',
496
+ },
497
+ section: {
498
+ type: 'string',
499
+ optional: true,
500
+ description: 'Section within category',
501
+ },
502
+ order: {
503
+ type: 'number',
504
+ optional: true,
505
+ description: 'Sort order within section or category',
506
+ },
507
+
508
+ // Status
509
+ status: {
510
+ type: 'string',
511
+ description: 'Article status: draft, review, published, archived',
512
+ examples: ['draft', 'review', 'published', 'archived'],
513
+ },
514
+ visibility: {
515
+ type: 'string',
516
+ description: 'Visibility: public, internal, private',
517
+ examples: ['public', 'internal', 'private'],
518
+ },
519
+ featured: {
520
+ type: 'boolean',
521
+ optional: true,
522
+ description: 'Whether the article is featured',
523
+ },
524
+ pinned: {
525
+ type: 'boolean',
526
+ optional: true,
527
+ description: 'Whether the article is pinned to the top',
528
+ },
529
+
530
+ // Metadata
531
+ language: {
532
+ type: 'string',
533
+ optional: true,
534
+ description: 'Article language code',
535
+ },
536
+ locale: {
537
+ type: 'string',
538
+ optional: true,
539
+ description: 'Locale for localized content',
540
+ },
541
+
542
+ // Quality
543
+ reviewStatus: {
544
+ type: 'string',
545
+ optional: true,
546
+ description: 'Review status: pending, approved, rejected',
547
+ examples: ['pending', 'approved', 'rejected'],
548
+ },
549
+ qualityScore: {
550
+ type: 'number',
551
+ optional: true,
552
+ description: 'Quality score from 0-100',
553
+ },
554
+ lastReviewedAt: {
555
+ type: 'datetime',
556
+ optional: true,
557
+ description: 'When the article was last reviewed',
558
+ },
559
+
560
+ // Engagement
561
+ viewCount: {
562
+ type: 'number',
563
+ optional: true,
564
+ description: 'Number of views',
565
+ },
566
+ helpfulCount: {
567
+ type: 'number',
568
+ optional: true,
569
+ description: 'Number of helpful votes',
570
+ },
571
+ unhelpfulCount: {
572
+ type: 'number',
573
+ optional: true,
574
+ description: 'Number of unhelpful votes',
575
+ },
576
+
577
+ // SEO
578
+ metaTitle: {
579
+ type: 'string',
580
+ optional: true,
581
+ description: 'SEO meta title',
582
+ },
583
+ metaDescription: {
584
+ type: 'string',
585
+ optional: true,
586
+ description: 'SEO meta description',
587
+ },
588
+ keywords: {
589
+ type: 'string',
590
+ array: true,
591
+ optional: true,
592
+ description: 'SEO keywords',
593
+ },
594
+
595
+ // Timestamps
596
+ publishedAt: {
597
+ type: 'datetime',
598
+ optional: true,
599
+ description: 'When the article was published',
600
+ },
601
+ scheduledAt: {
602
+ type: 'datetime',
603
+ optional: true,
604
+ description: 'Scheduled publication time',
605
+ },
606
+ },
607
+
608
+ relationships: {
609
+ knowledgeBase: {
610
+ type: 'KnowledgeBase',
611
+ backref: 'articles',
612
+ description: 'Knowledge base this article belongs to',
613
+ },
614
+ author: {
615
+ type: 'Contact',
616
+ description: 'Article author',
617
+ },
618
+ reviewers: {
619
+ type: 'Contact[]',
620
+ description: 'People who have reviewed this article',
621
+ },
622
+ relatedArticles: {
623
+ type: 'Article[]',
624
+ description: 'Related or similar articles',
625
+ },
626
+ tags: {
627
+ type: 'Tag[]',
628
+ description: 'Tags categorizing this article',
629
+ },
630
+ attachments: {
631
+ type: 'Attachment[]',
632
+ description: 'Attached files and media',
633
+ },
634
+ comments: {
635
+ type: 'Comment[]',
636
+ backref: 'article',
637
+ description: 'Comments and feedback',
638
+ },
639
+ translations: {
640
+ type: 'Article[]',
641
+ description: 'Translated versions of this article',
642
+ },
643
+ },
644
+
645
+ actions: [
646
+ 'create',
647
+ 'edit',
648
+ 'save',
649
+ 'publish',
650
+ 'unpublish',
651
+ 'schedule',
652
+ 'review',
653
+ 'approve',
654
+ 'reject',
655
+ 'archive',
656
+ 'restore',
657
+ 'delete',
658
+ 'duplicate',
659
+ 'translate',
660
+ 'export',
661
+ 'vote',
662
+ 'report',
663
+ ],
664
+
665
+ events: [
666
+ 'created',
667
+ 'edited',
668
+ 'saved',
669
+ 'published',
670
+ 'unpublished',
671
+ 'scheduled',
672
+ 'reviewed',
673
+ 'approved',
674
+ 'rejected',
675
+ 'archived',
676
+ 'restored',
677
+ 'deleted',
678
+ 'duplicated',
679
+ 'viewed',
680
+ 'voted',
681
+ 'translated',
682
+ 'reported',
683
+ ],
684
+ }
685
+
686
+ /**
687
+ * KnowledgeBase entity
688
+ *
689
+ * Represents a knowledge base container
690
+ */
691
+ export const KnowledgeBase: Noun = {
692
+ singular: 'knowledge base',
693
+ plural: 'knowledge bases',
694
+ description: 'A structured collection of articles and documentation',
695
+
696
+ properties: {
697
+ // Identity
698
+ name: {
699
+ type: 'string',
700
+ description: 'Knowledge base name',
701
+ },
702
+ description: {
703
+ type: 'string',
704
+ optional: true,
705
+ description: 'Knowledge base description',
706
+ },
707
+ slug: {
708
+ type: 'string',
709
+ description: 'URL-friendly identifier',
710
+ },
711
+
712
+ // Appearance
713
+ logo: {
714
+ type: 'url',
715
+ optional: true,
716
+ description: 'Logo URL',
717
+ },
718
+ icon: {
719
+ type: 'url',
720
+ optional: true,
721
+ description: 'Icon URL',
722
+ },
723
+ theme: {
724
+ type: 'json',
725
+ optional: true,
726
+ description: 'Theme configuration',
727
+ },
728
+
729
+ // Configuration
730
+ visibility: {
731
+ type: 'string',
732
+ description: 'Visibility: public, private, organization',
733
+ examples: ['public', 'private', 'organization'],
734
+ },
735
+ status: {
736
+ type: 'string',
737
+ description: 'Status: active, archived, maintenance',
738
+ examples: ['active', 'archived', 'maintenance'],
739
+ },
740
+ language: {
741
+ type: 'string',
742
+ description: 'Default language code',
743
+ },
744
+ supportedLanguages: {
745
+ type: 'string',
746
+ array: true,
747
+ optional: true,
748
+ description: 'Supported language codes',
749
+ },
750
+
751
+ // Features
752
+ enableSearch: {
753
+ type: 'boolean',
754
+ optional: true,
755
+ description: 'Whether search is enabled',
756
+ },
757
+ enableComments: {
758
+ type: 'boolean',
759
+ optional: true,
760
+ description: 'Whether comments are enabled',
761
+ },
762
+ enableVoting: {
763
+ type: 'boolean',
764
+ optional: true,
765
+ description: 'Whether article voting is enabled',
766
+ },
767
+ enableSuggestions: {
768
+ type: 'boolean',
769
+ optional: true,
770
+ description: 'Whether article suggestions are enabled',
771
+ },
772
+
773
+ // Statistics
774
+ articleCount: {
775
+ type: 'number',
776
+ optional: true,
777
+ description: 'Number of articles',
778
+ },
779
+ categoryCount: {
780
+ type: 'number',
781
+ optional: true,
782
+ description: 'Number of categories',
783
+ },
784
+ viewCount: {
785
+ type: 'number',
786
+ optional: true,
787
+ description: 'Total views across all articles',
788
+ },
789
+
790
+ // SEO
791
+ domain: {
792
+ type: 'string',
793
+ optional: true,
794
+ description: 'Custom domain',
795
+ },
796
+ basePath: {
797
+ type: 'string',
798
+ optional: true,
799
+ description: 'Base URL path',
800
+ },
801
+ },
802
+
803
+ relationships: {
804
+ articles: {
805
+ type: 'Article[]',
806
+ backref: 'knowledgeBase',
807
+ description: 'Articles in this knowledge base',
808
+ },
809
+ categories: {
810
+ type: 'Category[]',
811
+ description: 'Categories for organizing articles',
812
+ },
813
+ owner: {
814
+ type: 'Contact',
815
+ description: 'Knowledge base owner',
816
+ },
817
+ editors: {
818
+ type: 'Contact[]',
819
+ description: 'People with edit permissions',
820
+ },
821
+ searchIndex: {
822
+ type: 'SearchIndex',
823
+ required: false,
824
+ description: 'Search index for this knowledge base',
825
+ },
826
+ },
827
+
828
+ actions: [
829
+ 'create',
830
+ 'configure',
831
+ 'archive',
832
+ 'restore',
833
+ 'delete',
834
+ 'addEditor',
835
+ 'removeEditor',
836
+ 'export',
837
+ 'import',
838
+ 'rebuildIndex',
839
+ ],
840
+
841
+ events: [
842
+ 'created',
843
+ 'configured',
844
+ 'archived',
845
+ 'restored',
846
+ 'deleted',
847
+ 'editorAdded',
848
+ 'editorRemoved',
849
+ 'exported',
850
+ 'imported',
851
+ 'indexRebuilt',
852
+ ],
853
+ }
854
+
855
+ // =============================================================================
856
+ // Glossary
857
+ // =============================================================================
858
+
859
+ /**
860
+ * Glossary entity
861
+ *
862
+ * Represents a glossary or dictionary of terms
863
+ */
864
+ export const Glossary: Noun = {
865
+ singular: 'glossary',
866
+ plural: 'glossaries',
867
+ description: 'A collection of term definitions and explanations',
868
+
869
+ properties: {
870
+ // Identity
871
+ name: {
872
+ type: 'string',
873
+ description: 'Glossary name',
874
+ },
875
+ description: {
876
+ type: 'string',
877
+ optional: true,
878
+ description: 'Glossary description',
879
+ },
880
+ slug: {
881
+ type: 'string',
882
+ description: 'URL-friendly identifier',
883
+ },
884
+
885
+ // Configuration
886
+ visibility: {
887
+ type: 'string',
888
+ description: 'Visibility: public, private, organization',
889
+ examples: ['public', 'private', 'organization'],
890
+ },
891
+ language: {
892
+ type: 'string',
893
+ description: 'Primary language code',
894
+ },
895
+ domain: {
896
+ type: 'string',
897
+ optional: true,
898
+ description: 'Subject domain or field (e.g., medical, legal, technical)',
899
+ },
900
+
901
+ // Organization
902
+ sortOrder: {
903
+ type: 'string',
904
+ description: 'Sort order: alphabetical, custom, date',
905
+ examples: ['alphabetical', 'custom', 'date'],
906
+ },
907
+ groupBy: {
908
+ type: 'string',
909
+ optional: true,
910
+ description: 'Grouping method: letter, category, none',
911
+ examples: ['letter', 'category', 'none'],
912
+ },
913
+
914
+ // Features
915
+ allowAbbreviations: {
916
+ type: 'boolean',
917
+ optional: true,
918
+ description: 'Whether abbreviations are supported',
919
+ },
920
+ allowSynonyms: {
921
+ type: 'boolean',
922
+ optional: true,
923
+ description: 'Whether synonyms are supported',
924
+ },
925
+ enableSearch: {
926
+ type: 'boolean',
927
+ optional: true,
928
+ description: 'Whether search is enabled',
929
+ },
930
+
931
+ // Statistics
932
+ termCount: {
933
+ type: 'number',
934
+ optional: true,
935
+ description: 'Number of terms',
936
+ },
937
+ },
938
+
939
+ relationships: {
940
+ terms: {
941
+ type: 'GlossaryTerm[]',
942
+ backref: 'glossary',
943
+ description: 'Terms in this glossary',
944
+ },
945
+ owner: {
946
+ type: 'Contact',
947
+ description: 'Glossary owner',
948
+ },
949
+ contributors: {
950
+ type: 'Contact[]',
951
+ description: 'People who have contributed terms',
952
+ },
953
+ categories: {
954
+ type: 'Category[]',
955
+ description: 'Categories for organizing terms',
956
+ },
957
+ },
958
+
959
+ actions: [
960
+ 'create',
961
+ 'configure',
962
+ 'addTerm',
963
+ 'removeTerm',
964
+ 'export',
965
+ 'import',
966
+ 'merge',
967
+ 'archive',
968
+ 'delete',
969
+ ],
970
+
971
+ events: [
972
+ 'created',
973
+ 'configured',
974
+ 'termAdded',
975
+ 'termRemoved',
976
+ 'exported',
977
+ 'imported',
978
+ 'merged',
979
+ 'archived',
980
+ 'deleted',
981
+ ],
982
+ }
983
+
984
+ /**
985
+ * GlossaryTerm entity
986
+ *
987
+ * Represents a term definition in a glossary
988
+ */
989
+ export const GlossaryTerm: Noun = {
990
+ singular: 'glossary term',
991
+ plural: 'glossary terms',
992
+ description: 'A term and its definition in a glossary',
993
+
994
+ properties: {
995
+ // Term
996
+ term: {
997
+ type: 'string',
998
+ description: 'The term being defined',
999
+ },
1000
+ pronunciation: {
1001
+ type: 'string',
1002
+ optional: true,
1003
+ description: 'Phonetic pronunciation',
1004
+ },
1005
+ partOfSpeech: {
1006
+ type: 'string',
1007
+ optional: true,
1008
+ description: 'Part of speech: noun, verb, adjective, etc.',
1009
+ examples: ['noun', 'verb', 'adjective', 'adverb', 'acronym', 'abbreviation'],
1010
+ },
1011
+
1012
+ // Definition
1013
+ definition: {
1014
+ type: 'markdown',
1015
+ description: 'Term definition',
1016
+ },
1017
+ shortDefinition: {
1018
+ type: 'string',
1019
+ optional: true,
1020
+ description: 'Brief one-line definition',
1021
+ },
1022
+ etymology: {
1023
+ type: 'string',
1024
+ optional: true,
1025
+ description: 'Origin and history of the term',
1026
+ },
1027
+
1028
+ // Variations
1029
+ pluralForm: {
1030
+ type: 'string',
1031
+ optional: true,
1032
+ description: 'Plural form of the term',
1033
+ },
1034
+ abbreviation: {
1035
+ type: 'string',
1036
+ optional: true,
1037
+ description: 'Abbreviated form',
1038
+ },
1039
+ acronymFor: {
1040
+ type: 'string',
1041
+ optional: true,
1042
+ description: 'What the acronym stands for',
1043
+ },
1044
+ synonyms: {
1045
+ type: 'string',
1046
+ array: true,
1047
+ optional: true,
1048
+ description: 'Synonymous terms',
1049
+ },
1050
+ antonyms: {
1051
+ type: 'string',
1052
+ array: true,
1053
+ optional: true,
1054
+ description: 'Opposite terms',
1055
+ },
1056
+
1057
+ // Context
1058
+ category: {
1059
+ type: 'string',
1060
+ optional: true,
1061
+ description: 'Category or subject area',
1062
+ },
1063
+ examples: {
1064
+ type: 'string',
1065
+ array: true,
1066
+ optional: true,
1067
+ description: 'Usage examples',
1068
+ },
1069
+ usageNotes: {
1070
+ type: 'string',
1071
+ optional: true,
1072
+ description: 'Notes on proper usage',
1073
+ },
1074
+
1075
+ // Status
1076
+ status: {
1077
+ type: 'string',
1078
+ description: 'Status: draft, published, deprecated',
1079
+ examples: ['draft', 'published', 'deprecated'],
1080
+ },
1081
+ visibility: {
1082
+ type: 'string',
1083
+ description: 'Visibility: public, private',
1084
+ examples: ['public', 'private'],
1085
+ },
1086
+
1087
+ // Metadata
1088
+ language: {
1089
+ type: 'string',
1090
+ description: 'Language code',
1091
+ },
1092
+ sortKey: {
1093
+ type: 'string',
1094
+ optional: true,
1095
+ description: 'Custom sort key',
1096
+ },
1097
+ },
1098
+
1099
+ relationships: {
1100
+ glossary: {
1101
+ type: 'Glossary',
1102
+ backref: 'terms',
1103
+ description: 'Glossary this term belongs to',
1104
+ },
1105
+ author: {
1106
+ type: 'Contact',
1107
+ description: 'Who created this term',
1108
+ },
1109
+ relatedTerms: {
1110
+ type: 'GlossaryTerm[]',
1111
+ description: 'Related terms',
1112
+ },
1113
+ seeAlso: {
1114
+ type: 'GlossaryTerm[]',
1115
+ description: 'Cross-reference terms',
1116
+ },
1117
+ translations: {
1118
+ type: 'GlossaryTerm[]',
1119
+ description: 'Translations in other languages',
1120
+ },
1121
+ references: {
1122
+ type: 'Article[]',
1123
+ description: 'Articles or pages that reference this term',
1124
+ },
1125
+ },
1126
+
1127
+ actions: [
1128
+ 'create',
1129
+ 'edit',
1130
+ 'publish',
1131
+ 'unpublish',
1132
+ 'deprecate',
1133
+ 'delete',
1134
+ 'translate',
1135
+ 'link',
1136
+ 'unlink',
1137
+ ],
1138
+
1139
+ events: [
1140
+ 'created',
1141
+ 'edited',
1142
+ 'published',
1143
+ 'unpublished',
1144
+ 'deprecated',
1145
+ 'deleted',
1146
+ 'translated',
1147
+ 'linked',
1148
+ 'viewed',
1149
+ ],
1150
+ }
1151
+
1152
+ // =============================================================================
1153
+ // Search
1154
+ // =============================================================================
1155
+
1156
+ /**
1157
+ * SearchIndex entity
1158
+ *
1159
+ * Represents a search index for content
1160
+ */
1161
+ export const SearchIndex: Noun = {
1162
+ singular: 'search index',
1163
+ plural: 'search indexes',
1164
+ description: 'A search index for finding content quickly',
1165
+
1166
+ properties: {
1167
+ // Identity
1168
+ name: {
1169
+ type: 'string',
1170
+ description: 'Index name',
1171
+ },
1172
+ description: {
1173
+ type: 'string',
1174
+ optional: true,
1175
+ description: 'Index description',
1176
+ },
1177
+
1178
+ // Configuration
1179
+ type: {
1180
+ type: 'string',
1181
+ description: 'Index type: full-text, semantic, vector, hybrid',
1182
+ examples: ['full-text', 'semantic', 'vector', 'hybrid'],
1183
+ },
1184
+ language: {
1185
+ type: 'string',
1186
+ description: 'Primary language for text analysis',
1187
+ },
1188
+ supportedLanguages: {
1189
+ type: 'string',
1190
+ array: true,
1191
+ optional: true,
1192
+ description: 'Supported languages',
1193
+ },
1194
+
1195
+ // Schema
1196
+ fields: {
1197
+ type: 'json',
1198
+ description: 'Indexed field configurations',
1199
+ },
1200
+ boosts: {
1201
+ type: 'json',
1202
+ optional: true,
1203
+ description: 'Field boost weights for relevance scoring',
1204
+ },
1205
+
1206
+ // Status
1207
+ status: {
1208
+ type: 'string',
1209
+ description: 'Index status: building, ready, updating, error',
1210
+ examples: ['building', 'ready', 'updating', 'error'],
1211
+ },
1212
+ lastBuiltAt: {
1213
+ type: 'datetime',
1214
+ optional: true,
1215
+ description: 'When the index was last built',
1216
+ },
1217
+ lastUpdatedAt: {
1218
+ type: 'datetime',
1219
+ optional: true,
1220
+ description: 'When the index was last updated',
1221
+ },
1222
+
1223
+ // Statistics
1224
+ documentCount: {
1225
+ type: 'number',
1226
+ optional: true,
1227
+ description: 'Number of documents indexed',
1228
+ },
1229
+ size: {
1230
+ type: 'number',
1231
+ optional: true,
1232
+ description: 'Index size in bytes',
1233
+ },
1234
+
1235
+ // Performance
1236
+ queryTimeMs: {
1237
+ type: 'number',
1238
+ optional: true,
1239
+ description: 'Average query time in milliseconds',
1240
+ },
1241
+ indexingTimeMs: {
1242
+ type: 'number',
1243
+ optional: true,
1244
+ description: 'Time taken to build the index',
1245
+ },
1246
+ },
1247
+
1248
+ relationships: {
1249
+ knowledgeBase: {
1250
+ type: 'KnowledgeBase',
1251
+ required: false,
1252
+ description: 'Knowledge base this index belongs to',
1253
+ },
1254
+ wikiSpace: {
1255
+ type: 'WikiSpace',
1256
+ required: false,
1257
+ description: 'Wiki space this index belongs to',
1258
+ },
1259
+ },
1260
+
1261
+ actions: [
1262
+ 'create',
1263
+ 'build',
1264
+ 'update',
1265
+ 'rebuild',
1266
+ 'optimize',
1267
+ 'clear',
1268
+ 'delete',
1269
+ 'search',
1270
+ 'suggest',
1271
+ ],
1272
+
1273
+ events: [
1274
+ 'created',
1275
+ 'built',
1276
+ 'updated',
1277
+ 'rebuilt',
1278
+ 'optimized',
1279
+ 'cleared',
1280
+ 'deleted',
1281
+ 'searched',
1282
+ ],
1283
+ }
1284
+
1285
+ // =============================================================================
1286
+ // Supporting Entities
1287
+ // =============================================================================
1288
+
1289
+ /**
1290
+ * Tag entity
1291
+ *
1292
+ * Represents a tag for categorizing content
1293
+ */
1294
+ export const Tag: Noun = {
1295
+ singular: 'tag',
1296
+ plural: 'tags',
1297
+ description: 'A label for categorizing and organizing content',
1298
+
1299
+ properties: {
1300
+ // Identity
1301
+ name: {
1302
+ type: 'string',
1303
+ description: 'Tag name',
1304
+ },
1305
+ slug: {
1306
+ type: 'string',
1307
+ description: 'URL-friendly identifier',
1308
+ },
1309
+ description: {
1310
+ type: 'string',
1311
+ optional: true,
1312
+ description: 'Tag description',
1313
+ },
1314
+
1315
+ // Appearance
1316
+ color: {
1317
+ type: 'string',
1318
+ optional: true,
1319
+ description: 'Tag color (hex code)',
1320
+ },
1321
+ icon: {
1322
+ type: 'string',
1323
+ optional: true,
1324
+ description: 'Tag icon or emoji',
1325
+ },
1326
+
1327
+ // Organization
1328
+ category: {
1329
+ type: 'string',
1330
+ optional: true,
1331
+ description: 'Tag category for grouping',
1332
+ },
1333
+ group: {
1334
+ type: 'string',
1335
+ optional: true,
1336
+ description: 'Tag group',
1337
+ },
1338
+
1339
+ // Metadata
1340
+ type: {
1341
+ type: 'string',
1342
+ optional: true,
1343
+ description: 'Tag type: general, system, custom',
1344
+ examples: ['general', 'system', 'custom'],
1345
+ },
1346
+ visibility: {
1347
+ type: 'string',
1348
+ description: 'Visibility: public, private',
1349
+ examples: ['public', 'private'],
1350
+ },
1351
+
1352
+ // Statistics
1353
+ usageCount: {
1354
+ type: 'number',
1355
+ optional: true,
1356
+ description: 'Number of items tagged with this',
1357
+ },
1358
+ },
1359
+
1360
+ relationships: {
1361
+ parent: {
1362
+ type: 'Tag',
1363
+ required: false,
1364
+ description: 'Parent tag for hierarchical tags',
1365
+ },
1366
+ children: {
1367
+ type: 'Tag[]',
1368
+ description: 'Child tags',
1369
+ },
1370
+ synonyms: {
1371
+ type: 'Tag[]',
1372
+ description: 'Synonym tags',
1373
+ },
1374
+ relatedTags: {
1375
+ type: 'Tag[]',
1376
+ description: 'Related tags',
1377
+ },
1378
+ },
1379
+
1380
+ actions: [
1381
+ 'create',
1382
+ 'edit',
1383
+ 'delete',
1384
+ 'merge',
1385
+ 'split',
1386
+ 'rename',
1387
+ 'link',
1388
+ 'unlink',
1389
+ ],
1390
+
1391
+ events: [
1392
+ 'created',
1393
+ 'edited',
1394
+ 'deleted',
1395
+ 'merged',
1396
+ 'split',
1397
+ 'renamed',
1398
+ 'applied',
1399
+ 'removed',
1400
+ ],
1401
+ }
1402
+
1403
+ /**
1404
+ * Category entity
1405
+ *
1406
+ * Represents a category for organizing content
1407
+ */
1408
+ export const Category: Noun = {
1409
+ singular: 'category',
1410
+ plural: 'categories',
1411
+ description: 'A category for organizing related content',
1412
+
1413
+ properties: {
1414
+ // Identity
1415
+ name: {
1416
+ type: 'string',
1417
+ description: 'Category name',
1418
+ },
1419
+ slug: {
1420
+ type: 'string',
1421
+ description: 'URL-friendly identifier',
1422
+ },
1423
+ description: {
1424
+ type: 'string',
1425
+ optional: true,
1426
+ description: 'Category description',
1427
+ },
1428
+
1429
+ // Hierarchy
1430
+ path: {
1431
+ type: 'string',
1432
+ description: 'Full hierarchical path',
1433
+ },
1434
+ level: {
1435
+ type: 'number',
1436
+ description: 'Depth level in hierarchy',
1437
+ },
1438
+ order: {
1439
+ type: 'number',
1440
+ optional: true,
1441
+ description: 'Sort order',
1442
+ },
1443
+
1444
+ // Appearance
1445
+ icon: {
1446
+ type: 'string',
1447
+ optional: true,
1448
+ description: 'Category icon or emoji',
1449
+ },
1450
+ color: {
1451
+ type: 'string',
1452
+ optional: true,
1453
+ description: 'Category color',
1454
+ },
1455
+
1456
+ // Configuration
1457
+ visibility: {
1458
+ type: 'string',
1459
+ description: 'Visibility: public, private',
1460
+ examples: ['public', 'private'],
1461
+ },
1462
+ status: {
1463
+ type: 'string',
1464
+ description: 'Status: active, archived',
1465
+ examples: ['active', 'archived'],
1466
+ },
1467
+
1468
+ // Statistics
1469
+ itemCount: {
1470
+ type: 'number',
1471
+ optional: true,
1472
+ description: 'Number of items in this category',
1473
+ },
1474
+ },
1475
+
1476
+ relationships: {
1477
+ parent: {
1478
+ type: 'Category',
1479
+ required: false,
1480
+ description: 'Parent category',
1481
+ },
1482
+ children: {
1483
+ type: 'Category[]',
1484
+ description: 'Child categories',
1485
+ },
1486
+ },
1487
+
1488
+ actions: [
1489
+ 'create',
1490
+ 'edit',
1491
+ 'delete',
1492
+ 'move',
1493
+ 'merge',
1494
+ 'archive',
1495
+ 'restore',
1496
+ ],
1497
+
1498
+ events: [
1499
+ 'created',
1500
+ 'edited',
1501
+ 'deleted',
1502
+ 'moved',
1503
+ 'merged',
1504
+ 'archived',
1505
+ 'restored',
1506
+ ],
1507
+ }
1508
+
1509
+ // =============================================================================
1510
+ // Export all entities as a schema
1511
+ // =============================================================================
1512
+
1513
+ /**
1514
+ * All knowledge & wiki entity types
1515
+ */
1516
+ export const KnowledgeEntities = {
1517
+ // Wiki
1518
+ WikiPage,
1519
+ WikiSpace,
1520
+ WikiRevision,
1521
+
1522
+ // Knowledge Base
1523
+ Article,
1524
+ KnowledgeBase,
1525
+
1526
+ // Glossary
1527
+ Glossary,
1528
+ GlossaryTerm,
1529
+
1530
+ // Search
1531
+ SearchIndex,
1532
+
1533
+ // Supporting
1534
+ Tag,
1535
+ Category,
1536
+ }
1537
+
1538
+ /**
1539
+ * Entity categories for organization
1540
+ */
1541
+ export const KnowledgeCategories = {
1542
+ wiki: ['WikiPage', 'WikiSpace', 'WikiRevision'],
1543
+ knowledgeBase: ['Article', 'KnowledgeBase'],
1544
+ glossary: ['Glossary', 'GlossaryTerm'],
1545
+ search: ['SearchIndex'],
1546
+ organization: ['Tag', 'Category'],
1547
+ } as const