huly-mcp-selfhost 2.1.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/.env.example +39 -2
  2. package/README.md +462 -16
  3. package/dist/connection.d.ts +8 -0
  4. package/dist/connection.js +13 -1
  5. package/dist/connection.js.map +1 -1
  6. package/dist/env.d.ts +1 -0
  7. package/dist/env.js +17 -0
  8. package/dist/env.js.map +1 -0
  9. package/dist/guard.d.ts +28 -0
  10. package/dist/guard.js +152 -0
  11. package/dist/guard.js.map +1 -0
  12. package/dist/guides/costs.md +48 -0
  13. package/dist/guides/features.md +49 -0
  14. package/dist/guides/onboarding.md +56 -0
  15. package/dist/guides/workflow.md +57 -0
  16. package/dist/index.js +18 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/junit-cli.d.ts +8 -0
  19. package/dist/junit-cli.js +106 -0
  20. package/dist/junit-cli.js.map +1 -0
  21. package/dist/registry.d.ts +18 -0
  22. package/dist/registry.js +318 -0
  23. package/dist/registry.js.map +1 -0
  24. package/dist/resources.d.ts +12 -0
  25. package/dist/resources.js +212 -0
  26. package/dist/resources.js.map +1 -0
  27. package/dist/schemas.d.ts +1269 -17
  28. package/dist/schemas.js +890 -97
  29. package/dist/schemas.js.map +1 -1
  30. package/dist/server.d.ts +27 -1
  31. package/dist/server.js +197 -128
  32. package/dist/server.js.map +1 -1
  33. package/dist/tools/activity.d.ts +10 -0
  34. package/dist/tools/activity.js +62 -0
  35. package/dist/tools/activity.js.map +1 -0
  36. package/dist/tools/agent.d.ts +156 -0
  37. package/dist/tools/agent.js +523 -0
  38. package/dist/tools/agent.js.map +1 -0
  39. package/dist/tools/attachments.d.ts +4 -4
  40. package/dist/tools/calendar.d.ts +49 -0
  41. package/dist/tools/calendar.js +116 -0
  42. package/dist/tools/calendar.js.map +1 -0
  43. package/dist/tools/cards.d.ts +87 -0
  44. package/dist/tools/cards.js +246 -0
  45. package/dist/tools/cards.js.map +1 -0
  46. package/dist/tools/channels.d.ts +76 -7
  47. package/dist/tools/channels.js +86 -5
  48. package/dist/tools/channels.js.map +1 -1
  49. package/dist/tools/comments.d.ts +16 -4
  50. package/dist/tools/comments.js +26 -9
  51. package/dist/tools/comments.js.map +1 -1
  52. package/dist/tools/components.d.ts +5 -5
  53. package/dist/tools/components.js +4 -22
  54. package/dist/tools/components.js.map +1 -1
  55. package/dist/tools/contacts.d.ts +69 -0
  56. package/dist/tools/contacts.js +130 -0
  57. package/dist/tools/contacts.js.map +1 -0
  58. package/dist/tools/crm.d.ts +61 -0
  59. package/dist/tools/crm.js +117 -0
  60. package/dist/tools/crm.js.map +1 -0
  61. package/dist/tools/documents.d.ts +35 -12
  62. package/dist/tools/documents.js +107 -22
  63. package/dist/tools/documents.js.map +1 -1
  64. package/dist/tools/drive.d.ts +107 -0
  65. package/dist/tools/drive.js +277 -0
  66. package/dist/tools/drive.js.map +1 -0
  67. package/dist/tools/fields.d.ts +33 -0
  68. package/dist/tools/fields.js +124 -0
  69. package/dist/tools/fields.js.map +1 -0
  70. package/dist/tools/generic.d.ts +72 -0
  71. package/dist/tools/generic.js +242 -0
  72. package/dist/tools/generic.js.map +1 -0
  73. package/dist/tools/github.d.ts +21 -0
  74. package/dist/tools/github.js +80 -0
  75. package/dist/tools/github.js.map +1 -0
  76. package/dist/tools/hr.d.ts +97 -0
  77. package/dist/tools/hr.js +150 -0
  78. package/dist/tools/hr.js.map +1 -0
  79. package/dist/tools/inbox.d.ts +23 -0
  80. package/dist/tools/inbox.js +76 -0
  81. package/dist/tools/inbox.js.map +1 -0
  82. package/dist/tools/inventory.d.ts +61 -0
  83. package/dist/tools/inventory.js +103 -0
  84. package/dist/tools/inventory.js.map +1 -0
  85. package/dist/tools/issues.d.ts +63 -12
  86. package/dist/tools/issues.js +259 -48
  87. package/dist/tools/issues.js.map +1 -1
  88. package/dist/tools/labels.d.ts +52 -4
  89. package/dist/tools/labels.js +86 -4
  90. package/dist/tools/labels.js.map +1 -1
  91. package/dist/tools/log-time.d.ts +15 -1
  92. package/dist/tools/log-time.js +70 -6
  93. package/dist/tools/log-time.js.map +1 -1
  94. package/dist/tools/meetings.d.ts +30 -0
  95. package/dist/tools/meetings.js +78 -0
  96. package/dist/tools/meetings.js.map +1 -0
  97. package/dist/tools/members.d.ts +1 -1
  98. package/dist/tools/members.js +17 -1
  99. package/dist/tools/members.js.map +1 -1
  100. package/dist/tools/message-templates.d.ts +54 -0
  101. package/dist/tools/message-templates.js +88 -0
  102. package/dist/tools/message-templates.js.map +1 -0
  103. package/dist/tools/milestones.d.ts +9 -9
  104. package/dist/tools/organizations.d.ts +5 -5
  105. package/dist/tools/organizations.js +2 -1
  106. package/dist/tools/organizations.js.map +1 -1
  107. package/dist/tools/overview.d.ts +55 -0
  108. package/dist/tools/overview.js +395 -0
  109. package/dist/tools/overview.js.map +1 -0
  110. package/dist/tools/planner.d.ts +60 -0
  111. package/dist/tools/planner.js +145 -0
  112. package/dist/tools/planner.js.map +1 -0
  113. package/dist/tools/process.d.ts +50 -0
  114. package/dist/tools/process.js +137 -0
  115. package/dist/tools/process.js.map +1 -0
  116. package/dist/tools/products.d.ts +17 -0
  117. package/dist/tools/products.js +45 -0
  118. package/dist/tools/products.js.map +1 -0
  119. package/dist/tools/projects.d.ts +17 -4
  120. package/dist/tools/projects.js +31 -2
  121. package/dist/tools/projects.js.map +1 -1
  122. package/dist/tools/qms.d.ts +57 -0
  123. package/dist/tools/qms.js +171 -0
  124. package/dist/tools/qms.js.map +1 -0
  125. package/dist/tools/recruiting.d.ts +112 -0
  126. package/dist/tools/recruiting.js +203 -0
  127. package/dist/tools/recruiting.js.map +1 -0
  128. package/dist/tools/relations.d.ts +45 -3
  129. package/dist/tools/relations.js +128 -39
  130. package/dist/tools/relations.js.map +1 -1
  131. package/dist/tools/search.d.ts +14 -1
  132. package/dist/tools/search.js +29 -1
  133. package/dist/tools/search.js.map +1 -1
  134. package/dist/tools/sharing.d.ts +62 -0
  135. package/dist/tools/sharing.js +149 -0
  136. package/dist/tools/sharing.js.map +1 -0
  137. package/dist/tools/statuses.d.ts +3 -3
  138. package/dist/tools/surveys.d.ts +22 -0
  139. package/dist/tools/surveys.js +53 -0
  140. package/dist/tools/surveys.js.map +1 -0
  141. package/dist/tools/templates.d.ts +95 -0
  142. package/dist/tools/templates.js +260 -0
  143. package/dist/tools/templates.js.map +1 -0
  144. package/dist/tools/test-automation.d.ts +81 -0
  145. package/dist/tools/test-automation.js +225 -0
  146. package/dist/tools/test-automation.js.map +1 -0
  147. package/dist/tools/testing.d.ts +234 -0
  148. package/dist/tools/testing.js +401 -0
  149. package/dist/tools/testing.js.map +1 -0
  150. package/dist/tools/workspace-admin.d.ts +55 -0
  151. package/dist/tools/workspace-admin.js +117 -0
  152. package/dist/tools/workspace-admin.js.map +1 -0
  153. package/dist/tools/workspaces.d.ts +1 -1
  154. package/dist/utils/attributes.d.ts +37 -0
  155. package/dist/utils/attributes.js +188 -0
  156. package/dist/utils/attributes.js.map +1 -0
  157. package/dist/utils/classes.d.ts +51 -0
  158. package/dist/utils/classes.js +73 -0
  159. package/dist/utils/classes.js.map +1 -0
  160. package/dist/utils/content.d.ts +11 -0
  161. package/dist/utils/content.js +86 -0
  162. package/dist/utils/content.js.map +1 -0
  163. package/dist/utils/errors.js +1 -1
  164. package/dist/utils/errors.js.map +1 -1
  165. package/dist/utils/files.d.ts +5 -0
  166. package/dist/utils/files.js +50 -0
  167. package/dist/utils/files.js.map +1 -0
  168. package/dist/utils/format.d.ts +2 -0
  169. package/dist/utils/format.js +7 -13
  170. package/dist/utils/format.js.map +1 -1
  171. package/dist/utils/junit.d.ts +13 -0
  172. package/dist/utils/junit.js +81 -0
  173. package/dist/utils/junit.js.map +1 -0
  174. package/dist/utils/markdown.js +9 -4
  175. package/dist/utils/markdown.js.map +1 -1
  176. package/dist/utils/meeting.d.ts +13 -0
  177. package/dist/utils/meeting.js +118 -0
  178. package/dist/utils/meeting.js.map +1 -0
  179. package/dist/utils/people.d.ts +25 -0
  180. package/dist/utils/people.js +80 -0
  181. package/dist/utils/people.js.map +1 -0
  182. package/dist/utils/redact.d.ts +3 -0
  183. package/dist/utils/redact.js +26 -0
  184. package/dist/utils/redact.js.map +1 -0
  185. package/dist/utils/resolve.d.ts +17 -0
  186. package/dist/utils/resolve.js +54 -0
  187. package/dist/utils/resolve.js.map +1 -0
  188. package/dist/utils/spec.d.ts +10 -0
  189. package/dist/utils/spec.js +90 -0
  190. package/dist/utils/spec.js.map +1 -0
  191. package/dist/utils/storage.js +7 -3
  192. package/dist/utils/storage.js.map +1 -1
  193. package/dist/utils/tasks.d.ts +22 -0
  194. package/dist/utils/tasks.js +81 -0
  195. package/dist/utils/tasks.js.map +1 -0
  196. package/dist/watch.d.ts +62 -0
  197. package/dist/watch.js +405 -0
  198. package/dist/watch.js.map +1 -0
  199. package/package.json +4 -3
  200. package/scripts/setup.js +3 -1
@@ -3,13 +3,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createProject = exports.getProject = exports.listProjects = void 0;
6
+ exports.updateProject = exports.createProject = exports.getProject = exports.listProjects = void 0;
7
7
  const tracker_1 = __importDefault(require("@hcengineering/tracker"));
8
8
  const core_1 = __importDefault(require("@hcengineering/core"));
9
9
  const task_1 = __importDefault(require("@hcengineering/task"));
10
10
  const core_2 = require("@hcengineering/core");
11
11
  const connection_1 = require("../connection");
12
12
  const errors_1 = require("../utils/errors");
13
+ const people_1 = require("../utils/people");
13
14
  exports.listProjects = (0, errors_1.wrapToolHandler)(async (args) => {
14
15
  const client = await (0, connection_1.getConnection)(args.workspace);
15
16
  const projects = await client.findAll(tracker_1.default.class.Project, {});
@@ -55,10 +56,38 @@ exports.createProject = (0, errors_1.wrapToolHandler)(async (args) => {
55
56
  defaultTimeReportDay: 'CurrentWorkDay',
56
57
  defaultIssueStatus: undefined,
57
58
  type: projectType._id,
58
- members: [client.user],
59
+ members: [await (0, people_1.currentAccountUuid)(client)],
59
60
  archived: false,
60
61
  private: false
61
62
  }, projectId);
62
63
  return `✅ Project **${args.identifier}** ("${args.name}") created successfully.\nNote: default statuses are set up automatically by the platform.`;
63
64
  });
65
+ exports.updateProject = (0, errors_1.wrapToolHandler)(async (args) => {
66
+ const client = await (0, connection_1.getConnection)(args.workspace);
67
+ const project = await client.findOne(tracker_1.default.class.Project, { identifier: args.identifier });
68
+ if (project == null)
69
+ throw new Error(`Project '${args.identifier}' not found.`);
70
+ const updates = {};
71
+ if (args.name !== undefined)
72
+ updates.name = args.name;
73
+ if (args.description !== undefined)
74
+ updates.description = args.description;
75
+ if (args.defaultAssignee !== undefined) {
76
+ if (args.defaultAssignee === null)
77
+ updates.defaultAssignee = null;
78
+ else {
79
+ updates.defaultAssignee = (await (0, people_1.findPerson)(client, args.defaultAssignee))._id;
80
+ }
81
+ }
82
+ if (args.defaultStatus !== undefined) {
83
+ const status = await client.findOne(tracker_1.default.class.IssueStatus, { name: args.defaultStatus });
84
+ if (status == null)
85
+ throw new Error(`Status '${args.defaultStatus}' not found.`);
86
+ updates.defaultIssueStatus = status._id;
87
+ }
88
+ if (Object.keys(updates).length === 0)
89
+ return `Nothing to update for project **${args.identifier}**.`;
90
+ await client.updateDoc(tracker_1.default.class.Project, project.space, project._id, updates);
91
+ return `✅ Project **${args.identifier}** updated (${Object.keys(updates).join(', ')}).`;
92
+ });
64
93
  //# sourceMappingURL=projects.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":";;;;;;AAAA,qEAA4C;AAC5C,+DAAsC;AACtC,+DAAsC;AACtC,8CAA0D;AAE1D,8CAA6C;AAC7C,4CAAiD;AAEjD,4CAAgE;AAGnD,QAAA,YAAY,GAAG,IAAA,wBAAe,EAAqC,KAAK,EAAE,IAAI,EAAE,EAAE;IAC7F,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAa,EAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAClD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAO,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IAEhE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,sCAAsC,CAAA;IAExE,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/B,OAAO,CAAC,CAAC,UAAU,QAAQ,CAAC,CAAC,IAAI,IAAI,WAAW,GAAG,CAAC,CAAC,WAAW,IAAI,IAAI,IAAI,CAAC,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACjI,CAAA;IACD,OAAO,gBAAgB,QAAQ,CAAC,MAAM,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;AAClE,CAAC,CAAC,CAAA;AAEW,QAAA,UAAU,GAAG,IAAA,wBAAe,EAAmC,KAAK,EAAE,IAAI,EAAE,EAAE;IACzF,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAa,EAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAClD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAO,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;IAC5F,IAAI,OAAO,IAAI,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,UAAU,cAAc,CAAC,CAAA;IAE/E,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAO,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;IACpE,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAElE,OAAO;QACL,eAAe,OAAO,CAAC,UAAU,EAAE;QACnC,aAAa,OAAO,CAAC,IAAI,IAAI,WAAW,EAAE;QAC1C,OAAO,CAAC,WAAW,IAAI,IAAI,IAAI,OAAO,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,oBAAoB,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI;QAC5G,uBAAuB,OAAO,CAAC,QAAQ,EAAE;QACzC,oBAAoB,UAAU,EAAE;KACjC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC9B,CAAC,CAAC,CAAA;AAEW,QAAA,aAAa,GAAG,IAAA,wBAAe,EAAsC,KAAK,EAAE,IAAI,EAAE,EAAE;IAC/F,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAa,EAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAElD,6BAA6B;IAC7B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAO,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;IAC7F,IAAI,QAAQ,IAAI,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,UAAU,mBAAmB,CAAC,CAAA;IAEvG,uDAAuD;IACvD,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,cAAI,CAAC,KAAK,CAAC,WAAW,EAAE;QAC/D,GAAG,EAAE,iBAAO,CAAC,GAAG,CAAC,mBAAkD;KACpE,CAAC,IAAI,MAAM,MAAM,CAAC,OAAO,CAAC,cAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;IACtD,IAAI,WAAW,IAAI,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAA;IAE5G,MAAM,SAAS,GAAG,IAAA,iBAAU,GAAE,CAAA;IAE9B,MAAM,MAAM,CAAC,SAAS,CACpB,iBAAO,CAAC,KAAK,CAAC,OAAO,EACrB,cAAI,CAAC,KAAK,CAAC,KAAK,EAChB;QACE,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;QACnC,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,QAAQ,EAAE,CAAC;QACX,eAAe,EAAE,SAAS;QAC1B,oBAAoB,EAAE,gBAAuB;QAC7C,kBAAkB,EAAE,SAAgB;QACpC,IAAI,EAAE,WAAW,CAAC,GAAG;QACrB,OAAO,EAAE,CAAC,MAAM,IAAA,2BAAkB,EAAC,MAAM,CAAC,CAAC;QAC3C,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,KAAK;KACR,EACR,SAAS,CACV,CAAA;IAED,OAAO,eAAe,IAAI,CAAC,UAAU,QAAQ,IAAI,CAAC,IAAI,4FAA4F,CAAA;AACpJ,CAAC,CAAC,CAAA;AAEW,QAAA,aAAa,GAAG,IAAA,wBAAe,EAAsC,KAAK,EAAE,IAAI,EAAE,EAAE;IAC/F,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAa,EAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAClD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAO,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;IAC5F,IAAI,OAAO,IAAI,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,UAAU,cAAc,CAAC,CAAA;IAE/E,MAAM,OAAO,GAA4B,EAAE,CAAA;IAC3C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;IACrD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;QAAE,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;IAC1E,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QACvC,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI;YAAE,OAAO,CAAC,eAAe,GAAG,IAAI,CAAA;aAC5D,CAAC;YACJ,OAAO,CAAC,eAAe,GAAG,CAAC,MAAM,IAAA,mBAAU,EAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAA;QAChF,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAO,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA;QAC5F,IAAI,MAAM,IAAI,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,aAAa,cAAc,CAAC,CAAA;QAChF,OAAO,CAAC,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAA;IACzC,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,mCAAmC,IAAI,CAAC,UAAU,KAAK,CAAA;IAErG,MAAM,MAAM,CAAC,SAAS,CAAC,iBAAO,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,OAAc,CAAC,CAAA;IACzF,OAAO,eAAe,IAAI,CAAC,UAAU,eAAe,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;AACzF,CAAC,CAAC,CAAA"}
@@ -0,0 +1,57 @@
1
+ export declare const QMS: {
2
+ readonly Space: 'documents:class:DocumentSpace';
3
+ readonly Meta: 'documents:class:DocumentMeta';
4
+ readonly ProjectMeta: 'documents:class:ProjectMeta';
5
+ readonly ProjectDoc: 'documents:class:ProjectDocument';
6
+ readonly Doc: 'documents:class:ControlledDocument';
7
+ readonly Category: 'documents:class:DocumentCategory';
8
+ readonly ChangeControl: 'documents:class:ChangeControl';
9
+ readonly Request: 'documents:class:DocumentRequest';
10
+ readonly Template: 'documents:mixin:DocumentTemplate';
11
+ readonly NoProject: 'documents:ids:NoProject';
12
+ readonly NoParent: 'documents:ids:NoParent';
13
+ readonly Folder: 'documents:ids:Folder';
14
+ readonly Training: 'training:class:Training';
15
+ readonly TrainingRequest: 'training:class:TrainingRequest';
16
+ readonly Attempt: 'training:class:TrainingAttempt';
17
+ readonly Question: 'questions:class:Question';
18
+ };
19
+ export declare const listControlledDocuments: (args: {
20
+ workspace?: string | undefined;
21
+ space?: string | undefined;
22
+ includeTemplates?: boolean | undefined;
23
+ }) => Promise<{
24
+ content: Array<{
25
+ type: 'text';
26
+ text: string;
27
+ }>;
28
+ }>;
29
+ export declare const getControlledDocument: (args: {
30
+ workspace?: string | undefined;
31
+ document: string;
32
+ content?: boolean | undefined;
33
+ }) => Promise<{
34
+ content: Array<{
35
+ type: 'text';
36
+ text: string;
37
+ }>;
38
+ }>;
39
+ export declare const listTrainings: (args: {
40
+ workspace?: string | undefined;
41
+ includeArchived?: boolean | undefined;
42
+ }) => Promise<{
43
+ content: Array<{
44
+ type: 'text';
45
+ text: string;
46
+ }>;
47
+ }>;
48
+ export declare const getTraining: (args: {
49
+ workspace?: string | undefined;
50
+ training: string;
51
+ showAnswers?: boolean | undefined;
52
+ }) => Promise<{
53
+ content: Array<{
54
+ type: 'text';
55
+ text: string;
56
+ }>;
57
+ }>;
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTraining = exports.listTrainings = exports.getControlledDocument = exports.listControlledDocuments = exports.QMS = void 0;
4
+ // Quality management (read-only): controlled documents (documents plugin — versioned, with
5
+ // review/approval states) and trainings (training + questions plugins).
6
+ const core_1 = require("@hcengineering/core");
7
+ const connection_1 = require("../connection");
8
+ const errors_1 = require("../utils/errors");
9
+ const format_1 = require("../utils/format");
10
+ const content_1 = require("../utils/content");
11
+ const people_1 = require("../utils/people");
12
+ exports.QMS = {
13
+ Space: 'documents:class:DocumentSpace',
14
+ Meta: 'documents:class:DocumentMeta',
15
+ ProjectMeta: 'documents:class:ProjectMeta',
16
+ ProjectDoc: 'documents:class:ProjectDocument',
17
+ Doc: 'documents:class:ControlledDocument',
18
+ Category: 'documents:class:DocumentCategory',
19
+ ChangeControl: 'documents:class:ChangeControl',
20
+ Request: 'documents:class:DocumentRequest',
21
+ Template: 'documents:mixin:DocumentTemplate',
22
+ NoProject: 'documents:ids:NoProject',
23
+ NoParent: 'documents:ids:NoParent',
24
+ Folder: 'documents:ids:Folder',
25
+ Training: 'training:class:Training',
26
+ TrainingRequest: 'training:class:TrainingRequest',
27
+ Attempt: 'training:class:TrainingAttempt',
28
+ Question: 'questions:class:Question'
29
+ };
30
+ const version = (d) => `v${Number(d.major ?? 0)}.${Number(d.minor ?? 0)}`;
31
+ const state = (d) => `${String(d.state)}${d.controlledState != null ? `/${String(d.controlledState)}` : ''}`;
32
+ const newest = (a, b) => (b.seqNumber - a.seqNumber) || (b.major - a.major) || (b.minor - a.minor) || (b.createdOn - a.createdOn);
33
+ exports.listControlledDocuments = (0, errors_1.wrapToolHandler)(async (args) => {
34
+ const client = await (0, connection_1.getConnection)(args.workspace);
35
+ const spaces = (await client.findAll(exports.QMS.Space, {})).filter((s) => s._class !== 'products:class:Product');
36
+ const chosen = args.space != null ? spaces.filter((s) => s._id === args.space || String(s.name).toLowerCase() === args.space.toLowerCase()) : spaces;
37
+ if (chosen.length === 0)
38
+ throw new Error(`Document space '${args.space ?? ''}' not found. Spaces: ${spaces.map((s) => s.name).join(', ') || 'none'}.`);
39
+ const names = await (0, people_1.peopleNames)(client);
40
+ const out = [];
41
+ for (const sp of chosen) {
42
+ const [metas, pms] = await Promise.all([client.findAll(exports.QMS.Meta, { space: sp._id }), client.findAll(exports.QMS.ProjectMeta, { space: sp._id, project: exports.QMS.NoProject })]);
43
+ const pds = pms.length > 0 ? await client.findAll(exports.QMS.ProjectDoc, { attachedTo: { $in: pms.map((p) => p._id) } }) : [];
44
+ const docIds = pds.map((p) => p.document).filter((d) => d !== exports.QMS.Folder);
45
+ const docs = docIds.length > 0 ? await client.findAll(exports.QMS.Doc, { _id: { $in: docIds } }) : [];
46
+ out.push(`## ${String(sp.name)} (${docs.filter((d) => d[exports.QMS.Template] == null).length} version(s))`);
47
+ const walk = (parent, depth) => {
48
+ const kids = pms.filter((p) => p.parent === parent).sort((a, b) => String(a.rank).localeCompare(String(b.rank)));
49
+ for (const pm of kids) {
50
+ const meta = metas.find((m) => m._id === pm.meta);
51
+ const mine = pds.filter((p) => p.attachedTo === pm._id);
52
+ const isFolder = mine.some((p) => p.document === exports.QMS.Folder);
53
+ const versions = docs.filter((d) => mine.some((p) => p.document === d._id) && (args.includeTemplates === true || d[exports.QMS.Template] == null)).sort(newest);
54
+ if (isFolder)
55
+ out.push(`${' '.repeat(depth)}- 📁 ${String(meta?.title ?? '?')}`);
56
+ else if (versions.length > 0) {
57
+ const d = versions[0];
58
+ out.push(`${' '.repeat(depth)}- **${String(d.code)}** ${String(d.title)} ${version(d)} — ${state(d)}${d.effectiveDate != null ? ` · effective ${(0, format_1.formatDate)(d.effectiveDate)}` : ''}${d.owner != null ? ` · owner ${names.get(d.owner) ?? '?'}` : ''}${versions.length > 1 ? ` · ${versions.length} versions` : ''}${d[exports.QMS.Template] != null ? ' · template' : ''}`);
59
+ }
60
+ walk(pm.meta, depth + 1);
61
+ }
62
+ };
63
+ walk(exports.QMS.NoParent, 0);
64
+ }
65
+ return out.join('\n');
66
+ });
67
+ exports.getControlledDocument = (0, errors_1.wrapToolHandler)(async (args) => {
68
+ const client = await (0, connection_1.getConnection)(args.workspace);
69
+ const ref = args.document.trim();
70
+ let docs = await client.findAll(exports.QMS.Doc, { code: ref.toUpperCase() });
71
+ if (docs.length === 0) {
72
+ const byId = await client.findOne(exports.QMS.Doc, { _id: ref });
73
+ if (byId != null)
74
+ docs = await client.findAll(exports.QMS.Doc, { attachedTo: byId.attachedTo });
75
+ }
76
+ if (docs.length === 0) {
77
+ const all = await client.findAll(exports.QMS.Doc, {});
78
+ const hits = all.filter((d) => String(d.title).toLowerCase() === ref.toLowerCase());
79
+ if (hits.length > 0)
80
+ docs = all.filter((d) => d.attachedTo === hits[0].attachedTo);
81
+ }
82
+ if (docs.length === 0)
83
+ throw new Error(`Controlled document '${args.document}' not found (use its code like SOP-12, its title or id).`);
84
+ docs.sort(newest);
85
+ const d = docs[0];
86
+ const names = await (0, people_1.peopleNames)(client);
87
+ const who = (ids) => (ids ?? []).map((i) => names.get(i) ?? '?').join(', ') || '—';
88
+ const [category, change, requests] = await Promise.all([
89
+ d.category != null ? client.findOne(exports.QMS.Category, { _id: d.category }) : undefined,
90
+ d.changeControl != null ? client.findOne(exports.QMS.ChangeControl, { _id: d.changeControl }) : undefined,
91
+ client.findAll(exports.QMS.Request, { attachedTo: d._id })
92
+ ]);
93
+ const out = [
94
+ `## ${String(d.code)} ${String(d.title)} ${version(d)}`,
95
+ `**State:** ${state(d)} · **Category:** ${category != null ? `${String(category.code)} ${String(category.title)}` : '—'} · **Effective:** ${(0, format_1.formatDate)(d.effectiveDate)}${d.plannedEffectiveDate != null ? ` (planned ${(0, format_1.formatDate)(d.plannedEffectiveDate)})` : ''}`,
96
+ `**Author:** ${who(d.author != null ? [d.author] : [])} · **Owner:** ${who(d.owner != null ? [d.owner] : [])} · **Co-authors:** ${who(d.coAuthors)}`,
97
+ `**Reviewers:** ${who(d.reviewers)} · **Approvers:** ${who(d.approvers)}${d.reviewInterval != null ? ` · review every ${Number(d.reviewInterval)} months` : ''}`
98
+ ];
99
+ if (d.abstract != null && d.abstract !== '')
100
+ out.push('', `**Abstract:** ${String(d.abstract)}`);
101
+ if (change != null && [change.description, change.reason, change.impact].some((x) => x != null && x !== '')) {
102
+ out.push('', '### Change control', `- Reason: ${(0, format_1.markupToText)(change.reason) || '—'}`, `- Description: ${(0, format_1.markupToText)(change.description) || '—'}`, `- Impact: ${(0, format_1.markupToText)(change.impact) || '—'}`);
103
+ }
104
+ if (requests.length > 0) {
105
+ out.push('', '### Review / approval requests');
106
+ for (const r of requests)
107
+ out.push(`- ${String(r._class).split(':').pop() ?? ''}: ${String(r.status)} · approved by ${who(r.approved)} of ${who(r.requested)}${(r.rejected ?? []).length > 0 ? ` · rejected by ${who(r.rejected)}` : ''}`);
108
+ }
109
+ if (docs.length > 1)
110
+ out.push('', '### Versions', ...docs.map((v) => `- ${version(v)} — ${state(v)}${v.effectiveDate != null ? ` · effective ${(0, format_1.formatDate)(v.effectiveDate)}` : ''} — \`${String(v._id)}\``));
111
+ if (args.content !== false) {
112
+ const text = await (0, content_1.readMarkup)(args.workspace, d.content);
113
+ out.push('', '### Content', text.trim() !== '' ? text : '_(empty)_');
114
+ }
115
+ return out.join('\n');
116
+ });
117
+ exports.listTrainings = (0, errors_1.wrapToolHandler)(async (args) => {
118
+ const client = await (0, connection_1.getConnection)(args.workspace);
119
+ const all = await client.findAll(exports.QMS.Training, {}, { sort: { revision: core_1.SortingOrder.Descending } });
120
+ const latest = new Map();
121
+ for (const t of all)
122
+ if (!latest.has(t.code))
123
+ latest.set(t.code, t);
124
+ const list = [...latest.values()].filter((t) => args.includeArchived === true || !['archived', 'deleted'].includes(t.state));
125
+ if (list.length === 0)
126
+ return 'No trainings.';
127
+ const names = await (0, people_1.peopleNames)(client);
128
+ const lines = list.map((t) => `- **${String(t.code)}** rev ${Number(t.revision)} — ${String(t.title)} — ${String(t.state)} · pass ${Number(t.passingScore)}% · ${Number(t.questions ?? 0)} question(s) · ${Number(t.requests ?? 0)} request(s) · owner ${names.get(t.owner) ?? '?'}`);
129
+ return `## Trainings (${list.length})\n\n${lines.join('\n')}`;
130
+ });
131
+ exports.getTraining = (0, errors_1.wrapToolHandler)(async (args) => {
132
+ const client = await (0, connection_1.getConnection)(args.workspace);
133
+ const all = await client.findAll(exports.QMS.Training, {}, { sort: { revision: core_1.SortingOrder.Descending } });
134
+ const t = all.find((x) => x._id === args.training || String(x.code).toLowerCase() === args.training.toLowerCase() || String(x.title).toLowerCase() === args.training.toLowerCase());
135
+ if (t == null)
136
+ throw new Error(`Training '${args.training}' not found (code like TR-3, title or id).`);
137
+ const names = await (0, people_1.peopleNames)(client);
138
+ const [questions, requests] = await Promise.all([
139
+ client.findAll(exports.QMS.Question, { attachedTo: t._id }, { sort: { rank: core_1.SortingOrder.Ascending } }),
140
+ client.findAll(exports.QMS.TrainingRequest, { attachedTo: t._id })
141
+ ]);
142
+ const attempts = requests.length > 0 ? await client.findAll(exports.QMS.Attempt, { attachedTo: { $in: requests.map((r) => r._id) } }) : [];
143
+ const out = [`## ${String(t.code)} rev ${Number(t.revision)}: ${String(t.title)}`, `**State:** ${String(t.state)} · **Passing score:** ${Number(t.passingScore)}%${t.releasedOn != null ? ` · released ${(0, format_1.formatDate)(t.releasedOn)}` : ''}`];
144
+ const desc = (0, format_1.markupToText)(t.description).trim();
145
+ if (desc !== '')
146
+ out.push('', desc);
147
+ out.push('', `### Questions (${questions.length})`);
148
+ questions.forEach((q, i) => {
149
+ const kind = String(q._class).split(':').pop() ?? '';
150
+ const opts = (q.questionData?.options ?? []).map((o) => (0, format_1.markupToText)(o.label).trim());
151
+ const a = q.assessmentData ?? {};
152
+ const correct = new Set(a.correctIndex != null ? [a.correctIndex] : a.correctIndices ?? []);
153
+ out.push(`${i + 1}. ${(0, format_1.markupToText)(q.title).trim()} _(${kind})_`);
154
+ opts.forEach((o, j) => out.push(` - ${args.showAnswers === true && correct.has(j) ? '✅ ' : ''}${o}`));
155
+ if (args.showAnswers === true && a.correctOrder != null)
156
+ out.push(` - correct order: ${a.correctOrder.map((j) => opts[j]).join(' → ')}`);
157
+ });
158
+ if (requests.length > 0) {
159
+ out.push('', '### Assignments');
160
+ for (const r of requests) {
161
+ const mine = attempts.filter((x) => x.attachedTo === r._id);
162
+ const per = (r.trainees ?? []).map((p) => {
163
+ const best = mine.filter((x) => x.owner === p).sort((a, b) => Number(b.score ?? 0) - Number(a.score ?? 0))[0];
164
+ return `${names.get(p) ?? '?'}: ${best != null ? `${String(best.state)}${best.score != null ? ` ${Number(best.score)}%` : ''}` : 'not started'}`;
165
+ });
166
+ out.push(`- due ${(0, format_1.formatDate)(r.dueDate)}${r.canceledOn != null ? ' (canceled)' : ''} — ${per.join('; ') || 'no trainees'}`);
167
+ }
168
+ }
169
+ return out.join('\n');
170
+ });
171
+ //# sourceMappingURL=qms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qms.js","sourceRoot":"","sources":["../../src/tools/qms.ts"],"names":[],"mappings":";;;AAAA,2FAA2F;AAC3F,wEAAwE;AACxE,8CAAkD;AAClD,8CAA6C;AAC7C,4CAAiD;AACjD,4CAA0D;AAC1D,8CAA6C;AAC7C,4CAA6C;AAIhC,QAAA,GAAG,GAAG;IACjB,KAAK,EAAE,+BAA+B;IACtC,IAAI,EAAE,8BAA8B;IACpC,WAAW,EAAE,6BAA6B;IAC1C,UAAU,EAAE,iCAAiC;IAC7C,GAAG,EAAE,oCAAoC;IACzC,QAAQ,EAAE,kCAAkC;IAC5C,aAAa,EAAE,+BAA+B;IAC9C,OAAO,EAAE,iCAAiC;IAC1C,QAAQ,EAAE,kCAAkC;IAC5C,SAAS,EAAE,yBAAyB;IACpC,QAAQ,EAAE,wBAAwB;IAClC,MAAM,EAAE,sBAAsB;IAC9B,QAAQ,EAAE,yBAAyB;IACnC,eAAe,EAAE,gCAAgC;IACjD,OAAO,EAAE,gCAAgC;IACzC,QAAQ,EAAE,0BAA0B;CAC5B,CAAA;AAEV,MAAM,OAAO,GAAG,CAAC,CAAM,EAAU,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAA;AACtF,MAAM,KAAK,GAAG,CAAC,CAAM,EAAU,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;AACzH,MAAM,MAAM,GAAG,CAAC,CAAM,EAAE,CAAM,EAAU,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAA;AAEtI,QAAA,uBAAuB,GAAG,IAAA,wBAAe,EAAkD,KAAK,EAAE,IAAI,EAAE,EAAE;IACrH,MAAM,MAAM,GAAQ,MAAM,IAAA,0BAAa,EAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACvD,MAAM,MAAM,GAAU,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,QAAA,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,wBAAwB,CAAC,CAAA;IACrH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,KAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;IACrJ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,KAAK,IAAI,EAAE,wBAAwB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,GAAG,CAAC,CAAA;IACtJ,MAAM,KAAK,GAAG,MAAM,IAAA,oBAAW,EAAC,MAAM,CAAC,CAAA;IACvC,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QACxB,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAY,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAA,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,QAAA,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,QAAA,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;QAC1K,MAAM,GAAG,GAAU,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,QAAA,GAAG,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAC7H,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAA,GAAG,CAAC,MAAM,CAAC,CAAA;QACzE,MAAM,IAAI,GAAU,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,QAAA,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACpG,GAAG,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAA,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,cAAc,CAAC,CAAA;QACpG,MAAM,IAAI,GAAG,CAAC,MAAc,EAAE,KAAa,EAAQ,EAAE;YACnD,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAChH,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;gBACtB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,CAAA;gBACjD,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,EAAE,CAAC,GAAG,CAAC,CAAA;gBACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAA,GAAG,CAAC,MAAM,CAAC,CAAA;gBAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,KAAK,IAAI,IAAI,CAAC,CAAC,QAAA,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBACvJ,IAAI,QAAQ;oBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,GAAG,CAAC,EAAE,CAAC,CAAA;qBAC5E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7B,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;oBACrB,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,gBAAgB,IAAA,mBAAU,EAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAA,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;gBACtW,CAAC;gBACD,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;YAC1B,CAAC;QACH,CAAC,CAAA;QACD,IAAI,CAAC,QAAA,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;IACvB,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACvB,CAAC,CAAC,CAAA;AAEW,QAAA,qBAAqB,GAAG,IAAA,wBAAe,EAAgD,KAAK,EAAE,IAAI,EAAE,EAAE;IACjH,MAAM,MAAM,GAAQ,MAAM,IAAA,0BAAa,EAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACvD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;IAChC,IAAI,IAAI,GAAU,MAAM,MAAM,CAAC,OAAO,CAAC,QAAA,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;IAC5E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAAC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAA,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAAC,IAAI,IAAI,IAAI,IAAI;YAAE,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAA,GAAG,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;IAAC,CAAC;IAC5K,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,GAAG,GAAU,MAAM,MAAM,CAAC,OAAO,CAAC,QAAA,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QACpD,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC,CAAA;QACnF,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;IACpF,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,QAAQ,0DAA0D,CAAC,CAAA;IACvI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACjB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,MAAM,KAAK,GAAG,MAAM,IAAA,oBAAW,EAAC,MAAM,CAAC,CAAA;IACvC,MAAM,GAAG,GAAG,CAAC,GAAyB,EAAU,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAA;IAChH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACrD,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAA,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QAClF,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAA,GAAG,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QACjG,MAAM,CAAC,OAAO,CAAC,QAAA,GAAG,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;KACnD,CAAC,CAAA;IACF,MAAM,GAAG,GAAG;QACV,MAAM,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE;QACvD,cAAc,KAAK,CAAC,CAAC,CAAC,oBAAoB,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,qBAAqB,IAAA,mBAAU,EAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,oBAAoB,IAAI,IAAI,CAAC,CAAC,CAAC,aAAa,IAAA,mBAAU,EAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACpQ,eAAe,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,sBAAsB,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE;QACpJ,kBAAkB,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,qBAAqB,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,mBAAmB,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;KACjK,CAAA;IACD,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,CAAC,CAAC,QAAQ,KAAK,EAAE;QAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,iBAAiB,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IAChG,IAAI,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;QAC5G,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,oBAAoB,EAAE,aAAa,IAAA,qBAAY,EAAC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,kBAAkB,IAAA,qBAAY,EAAC,MAAM,CAAC,WAAW,CAAC,IAAI,GAAG,EAAE,EAAE,aAAa,IAAA,qBAAY,EAAC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;IACvM,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,gCAAgC,CAAC,CAAA;QAC9C,KAAK,MAAM,CAAC,IAAI,QAAQ;YAAE,GAAG,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC5O,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,gBAAgB,IAAA,mBAAU,EAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;IAC5M,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,IAAA,oBAAU,EAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;QACxD,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;IACtE,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACvB,CAAC,CAAC,CAAA;AAEW,QAAA,aAAa,GAAG,IAAA,wBAAe,EAAwC,KAAK,EAAE,IAAI,EAAE,EAAE;IACjG,MAAM,MAAM,GAAQ,MAAM,IAAA,0BAAa,EAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACvD,MAAM,GAAG,GAAU,MAAM,MAAM,CAAC,OAAO,CAAC,QAAA,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,mBAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IAC1G,MAAM,MAAM,GAAG,IAAI,GAAG,EAAe,CAAA;IACrC,KAAK,MAAM,CAAC,IAAI,GAAG;QAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IACnE,MAAM,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5H,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,eAAe,CAAA;IAC7C,MAAM,KAAK,GAAG,MAAM,IAAA,oBAAW,EAAC,MAAM,CAAC,CAAA;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,kBAAkB,MAAM,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,uBAAuB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;IACrR,OAAO,iBAAiB,IAAI,CAAC,MAAM,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;AAC/D,CAAC,CAAC,CAAA;AAEW,QAAA,WAAW,GAAG,IAAA,wBAAe,EAAsC,KAAK,EAAE,IAAI,EAAE,EAAE;IAC7F,MAAM,MAAM,GAAQ,MAAM,IAAA,0BAAa,EAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACvD,MAAM,GAAG,GAAU,MAAM,MAAM,CAAC,OAAO,CAAC,QAAA,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,mBAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IAC1G,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAA;IACnL,IAAI,CAAC,IAAI,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,QAAQ,4CAA4C,CAAC,CAAA;IACtG,MAAM,KAAK,GAAG,MAAM,IAAA,oBAAW,EAAC,MAAM,CAAC,CAAA;IACvC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAY,MAAM,OAAO,CAAC,GAAG,CAAC;QACvD,MAAM,CAAC,OAAO,CAAC,QAAA,GAAG,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,mBAAY,CAAC,SAAS,EAAE,EAAE,CAAC;QAC/F,MAAM,CAAC,OAAO,CAAC,QAAA,GAAG,CAAC,eAAe,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;KAC3D,CAAC,CAAA;IACF,MAAM,QAAQ,GAAU,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,QAAA,GAAG,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACzI,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,cAAc,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,yBAAyB,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,IAAA,mBAAU,EAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC3O,MAAM,IAAI,GAAG,IAAA,qBAAY,EAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAA;IAC/C,IAAI,IAAI,KAAK,EAAE;QAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IACnC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,kBAAkB,SAAS,CAAC,MAAM,GAAG,CAAC,CAAA;IACnD,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACzB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;QACpD,MAAM,IAAI,GAAa,CAAC,CAAC,CAAC,YAAY,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,IAAA,qBAAY,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;QACpG,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,IAAI,EAAE,CAAA;QAChC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,EAAE,CAAC,CAAA;QACnG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAA,qBAAY,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,CAAA;QACjE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QACvG,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,CAAC,CAAC,YAAY,IAAI,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,uBAAwB,CAAC,CAAC,YAAyB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC1J,CAAC,CAAC,CAAA;IACF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAA;QAC/B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,GAAG,CAAC,CAAA;YAC3D,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE;gBAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC7G,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;YAClJ,CAAC,CAAC,CAAA;YACF,GAAG,CAAC,IAAI,CAAC,SAAS,IAAA,mBAAU,EAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,aAAa,EAAE,CAAC,CAAA;QAC7H,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACvB,CAAC,CAAC,CAAA"}
@@ -0,0 +1,112 @@
1
+ export declare const R: {
2
+ readonly Vacancy: 'recruit:class:Vacancy';
3
+ readonly Applicant: 'recruit:class:Applicant';
4
+ readonly Candidate: 'recruit:mixin:Candidate';
5
+ readonly DefaultType: 'recruit:template:DefaultVacancy';
6
+ readonly Person: 'contact:class:Person';
7
+ readonly Contacts: 'contact:space:Contacts';
8
+ };
9
+ export declare const listVacancies: (args: {
10
+ workspace?: string | undefined;
11
+ includeArchived?: boolean | undefined;
12
+ }) => Promise<{
13
+ content: Array<{
14
+ type: 'text';
15
+ text: string;
16
+ }>;
17
+ }>;
18
+ export declare const createVacancy: (args: {
19
+ workspace: string;
20
+ name: string;
21
+ description?: string | undefined;
22
+ company?: string | undefined;
23
+ location?: string | undefined;
24
+ dueDate?: string | undefined;
25
+ }) => Promise<{
26
+ content: Array<{
27
+ type: 'text';
28
+ text: string;
29
+ }>;
30
+ }>;
31
+ export declare const updateVacancy: (args: {
32
+ workspace: string;
33
+ vacancy: string;
34
+ name?: string | undefined;
35
+ description?: string | null | undefined;
36
+ location?: string | null | undefined;
37
+ dueDate?: string | null | undefined;
38
+ archived?: boolean | undefined;
39
+ }) => Promise<{
40
+ content: Array<{
41
+ type: 'text';
42
+ text: string;
43
+ }>;
44
+ }>;
45
+ export declare const listCandidates: (args: {
46
+ workspace?: string | undefined;
47
+ query?: string | undefined;
48
+ limit?: number | undefined;
49
+ }) => Promise<{
50
+ content: Array<{
51
+ type: 'text';
52
+ text: string;
53
+ }>;
54
+ }>;
55
+ export declare const createCandidate: (args: {
56
+ workspace: string;
57
+ firstName: string;
58
+ lastName: string;
59
+ title?: string | undefined;
60
+ city?: string | undefined;
61
+ email?: string | undefined;
62
+ onsite?: boolean | undefined;
63
+ remote?: boolean | undefined;
64
+ }) => Promise<{
65
+ content: Array<{
66
+ type: 'text';
67
+ text: string;
68
+ }>;
69
+ }>;
70
+ export declare const listApplications: (args: {
71
+ workspace?: string | undefined;
72
+ vacancy?: string | undefined;
73
+ status?: string | undefined;
74
+ limit?: number | undefined;
75
+ }) => Promise<{
76
+ content: Array<{
77
+ type: 'text';
78
+ text: string;
79
+ }>;
80
+ }>;
81
+ export declare const createApplication: (args: {
82
+ workspace: string;
83
+ vacancy: string;
84
+ candidate: string;
85
+ status?: string | undefined;
86
+ assignee?: string | undefined;
87
+ }) => Promise<{
88
+ content: Array<{
89
+ type: 'text';
90
+ text: string;
91
+ }>;
92
+ }>;
93
+ export declare const updateApplication: (args: {
94
+ workspace: string;
95
+ identifier: string;
96
+ status?: string | undefined;
97
+ assignee?: string | null | undefined;
98
+ }) => Promise<{
99
+ content: Array<{
100
+ type: 'text';
101
+ text: string;
102
+ }>;
103
+ }>;
104
+ export declare const deleteApplication: (args: {
105
+ workspace: string;
106
+ identifier: string;
107
+ }) => Promise<{
108
+ content: Array<{
109
+ type: 'text';
110
+ text: string;
111
+ }>;
112
+ }>;