@ngockhoale/ukit 1.1.6

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 (344) hide show
  1. package/CHANGELOG.md +179 -0
  2. package/LICENSE +21 -0
  3. package/README.md +189 -0
  4. package/bin/ukit +30 -0
  5. package/manifests/platform.full.yaml +1194 -0
  6. package/package.json +71 -0
  7. package/scripts/bug/triage.mjs +37 -0
  8. package/scripts/index/build-index.mjs +35 -0
  9. package/scripts/index/query-index.mjs +92 -0
  10. package/scripts/index/refresh-index.mjs +85 -0
  11. package/scripts/release/verify-release.mjs +56 -0
  12. package/src/bug/triageBug.js +123 -0
  13. package/src/cli/adapters.js +148 -0
  14. package/src/cli/commands/diff.js +51 -0
  15. package/src/cli/commands/doctor.js +125 -0
  16. package/src/cli/commands/indexArgs.js +73 -0
  17. package/src/cli/commands/indexTools.js +509 -0
  18. package/src/cli/commands/install.js +293 -0
  19. package/src/cli/commands/memory.js +126 -0
  20. package/src/cli/commands/status.js +8 -0
  21. package/src/cli/commands/uninstall.js +51 -0
  22. package/src/cli/index.js +109 -0
  23. package/src/context/detectProjectContext.js +49 -0
  24. package/src/context/detectProviders.js +12 -0
  25. package/src/core/applyPlan.js +89 -0
  26. package/src/core/buildPlan.js +228 -0
  27. package/src/core/compact/index.js +294 -0
  28. package/src/core/compact/threshold.js +936 -0
  29. package/src/core/diffPlan.js +73 -0
  30. package/src/core/ensureGitignore.js +117 -0
  31. package/src/core/fileOps.js +188 -0
  32. package/src/core/memory/hygiene.js +160 -0
  33. package/src/core/memory/index.js +2 -0
  34. package/src/core/memory/retrieval.js +476 -0
  35. package/src/core/memory/store.js +202 -0
  36. package/src/core/metadata.js +132 -0
  37. package/src/core/migrateLegacy.js +139 -0
  38. package/src/core/output/index.js +1309 -0
  39. package/src/core/paths.js +13 -0
  40. package/src/core/report.js +17 -0
  41. package/src/core/router/advisor.js +42 -0
  42. package/src/core/router/index.js +2 -0
  43. package/src/core/router/router.js +164 -0
  44. package/src/core/runInstallPipeline.js +365 -0
  45. package/src/core/runtimeConfig.js +190 -0
  46. package/src/core/runtimePaths.js +24 -0
  47. package/src/core/status.js +186 -0
  48. package/src/core/token/index.js +328 -0
  49. package/src/core/uninstall.js +246 -0
  50. package/src/core/validation/confidence.js +89 -0
  51. package/src/core/validation/index.js +2 -0
  52. package/src/core/validation/validator.js +165 -0
  53. package/src/index/buildIndex.js +1392 -0
  54. package/src/index/gitHooks.js +109 -0
  55. package/src/index/importResolution.js +377 -0
  56. package/src/index/languageTools.js +127 -0
  57. package/src/index/paths.js +27 -0
  58. package/src/index/queryIndex.js +637 -0
  59. package/src/index/relatedTests.js +237 -0
  60. package/src/index/resolveContext.js +345 -0
  61. package/src/index/routeCatalog.js +258 -0
  62. package/src/index/taskRouting.js +677 -0
  63. package/src/index/verificationPlan.js +437 -0
  64. package/src/manifest/loadManifest.js +22 -0
  65. package/src/manifest/selectItems.js +78 -0
  66. package/src/manifest/validateManifest.js +115 -0
  67. package/src/render/buildVariables.js +39 -0
  68. package/src/render/renderTemplate.js +44 -0
  69. package/src/stack/detectStack.js +213 -0
  70. package/templates/.claude/agents/bug-debugger.md +57 -0
  71. package/templates/.claude/agents/feature-implementer.md +55 -0
  72. package/templates/.claude/config/providers.md +25 -0
  73. package/templates/.claude/hooks/auto-allow-bash.sh +155 -0
  74. package/templates/.claude/hooks/auto-prune-bash.sh +75 -0
  75. package/templates/.claude/hooks/block-dangerous.sh +54 -0
  76. package/templates/.claude/hooks/compress-output.sh +17 -0
  77. package/templates/.claude/hooks/protect-files.sh +37 -0
  78. package/templates/.claude/hooks/reinject-context.sh +28 -0
  79. package/templates/.claude/hooks/session-start.md +13 -0
  80. package/templates/.claude/hooks/skill-router.sh +1681 -0
  81. package/templates/.claude/hooks/verification-guard.sh +271 -0
  82. package/templates/.claude/settings.json +144 -0
  83. package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  84. package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  85. package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  86. package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  87. package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  88. package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  89. package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  90. package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  91. package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  92. package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  93. package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  94. package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  95. package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  96. package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  97. package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  98. package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  99. package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  100. package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  101. package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  102. package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  103. package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  104. package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  105. package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  106. package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  107. package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  108. package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  109. package/templates/.claude/skills/_shared/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  110. package/templates/.claude/skills/_shared/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  111. package/templates/.claude/skills/_shared/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  112. package/templates/.claude/skills/_shared/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  113. package/templates/.claude/skills/_shared/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  114. package/templates/.claude/skills/_shared/ooxml/schemas/mce/mc.xsd +75 -0
  115. package/templates/.claude/skills/_shared/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
  116. package/templates/.claude/skills/_shared/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
  117. package/templates/.claude/skills/_shared/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
  118. package/templates/.claude/skills/_shared/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
  119. package/templates/.claude/skills/_shared/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
  120. package/templates/.claude/skills/_shared/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  121. package/templates/.claude/skills/_shared/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
  122. package/templates/.claude/skills/_shared/ooxml/scripts/pack.py +159 -0
  123. package/templates/.claude/skills/_shared/ooxml/scripts/unpack.py +29 -0
  124. package/templates/.claude/skills/_shared/ooxml/scripts/validate.py +69 -0
  125. package/templates/.claude/skills/_shared/ooxml/scripts/validation/__init__.py +15 -0
  126. package/templates/.claude/skills/_shared/ooxml/scripts/validation/base.py +951 -0
  127. package/templates/.claude/skills/_shared/ooxml/scripts/validation/docx.py +274 -0
  128. package/templates/.claude/skills/_shared/ooxml/scripts/validation/pptx.py +315 -0
  129. package/templates/.claude/skills/_shared/ooxml/scripts/validation/redlining.py +279 -0
  130. package/templates/.claude/skills/backend-api/SKILL.md +26 -0
  131. package/templates/.claude/skills/canvas-design/LICENSE.txt +202 -0
  132. package/templates/.claude/skills/canvas-design/SKILL.md +130 -0
  133. package/templates/.claude/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  134. package/templates/.claude/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  135. package/templates/.claude/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  136. package/templates/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  137. package/templates/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  138. package/templates/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  139. package/templates/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  140. package/templates/.claude/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  141. package/templates/.claude/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  142. package/templates/.claude/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  143. package/templates/.claude/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  144. package/templates/.claude/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  145. package/templates/.claude/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  146. package/templates/.claude/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
  147. package/templates/.claude/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  148. package/templates/.claude/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
  149. package/templates/.claude/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
  150. package/templates/.claude/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
  151. package/templates/.claude/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  152. package/templates/.claude/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  153. package/templates/.claude/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
  154. package/templates/.claude/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
  155. package/templates/.claude/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
  156. package/templates/.claude/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
  157. package/templates/.claude/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
  158. package/templates/.claude/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
  159. package/templates/.claude/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
  160. package/templates/.claude/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  161. package/templates/.claude/skills/code-review/SKILL.md +97 -0
  162. package/templates/.claude/skills/debugging-toolkit/SKILL.md +156 -0
  163. package/templates/.claude/skills/delivery/SKILL.md +92 -0
  164. package/templates/.claude/skills/discover-security/SKILL.md +86 -0
  165. package/templates/.claude/skills/docker-packaging/SKILL.md +60 -0
  166. package/templates/.claude/skills/docs-manager/SKILL.md +465 -0
  167. package/templates/.claude/skills/docs-manager/init-project-docs.sh +70 -0
  168. package/templates/.claude/skills/docs-manager/templates/README.md.template +50 -0
  169. package/templates/.claude/skills/docs-manager/templates/agent-roles.md.template +24 -0
  170. package/templates/.claude/skills/docs-manager/templates/coding-conventions.md.template +28 -0
  171. package/templates/.claude/skills/docs-manager/templates/memory.md.template +30 -0
  172. package/templates/.claude/skills/docs-manager/templates/onboarding.md.template +20 -0
  173. package/templates/.claude/skills/docs-manager/templates/project.md.template +26 -0
  174. package/templates/.claude/skills/docs-quality/SKILL.md +148 -0
  175. package/templates/.claude/skills/docx/LICENSE.txt +30 -0
  176. package/templates/.claude/skills/docx/SKILL.md +197 -0
  177. package/templates/.claude/skills/docx/docx-js.md +350 -0
  178. package/templates/.claude/skills/docx/ooxml.md +610 -0
  179. package/templates/.claude/skills/docx/scripts/__init__.py +1 -0
  180. package/templates/.claude/skills/docx/scripts/document.py +1276 -0
  181. package/templates/.claude/skills/docx/scripts/templates/comments.xml +3 -0
  182. package/templates/.claude/skills/docx/scripts/templates/commentsExtended.xml +3 -0
  183. package/templates/.claude/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
  184. package/templates/.claude/skills/docx/scripts/templates/commentsIds.xml +3 -0
  185. package/templates/.claude/skills/docx/scripts/templates/people.xml +3 -0
  186. package/templates/.claude/skills/docx/scripts/utilities.py +374 -0
  187. package/templates/.claude/skills/duraone/SKILL.md +204 -0
  188. package/templates/.claude/skills/duraone/references/backend.md +636 -0
  189. package/templates/.claude/skills/duraone/references/frontend.md +1506 -0
  190. package/templates/.claude/skills/duraone/references/sql.md +631 -0
  191. package/templates/.claude/skills/duraone/references/workflow.md +520 -0
  192. package/templates/.claude/skills/executing-plans/SKILL.md +76 -0
  193. package/templates/.claude/skills/file-organizer/SKILL.md +433 -0
  194. package/templates/.claude/skills/frontend/SKILL.md +26 -0
  195. package/templates/.claude/skills/frontend-design/LICENSE.txt +177 -0
  196. package/templates/.claude/skills/frontend-design/SKILL.md +42 -0
  197. package/templates/.claude/skills/frontend-vue/SKILL.md +127 -0
  198. package/templates/.claude/skills/frontend-vue/components/Control/Box.vue +137 -0
  199. package/templates/.claude/skills/frontend-vue/components/Control/Button.vue +93 -0
  200. package/templates/.claude/skills/frontend-vue/components/Control/ButtonBar.vue +29 -0
  201. package/templates/.claude/skills/frontend-vue/components/Control/ButtonFloat.vue +62 -0
  202. package/templates/.claude/skills/frontend-vue/components/Control/CheckButton.vue +75 -0
  203. package/templates/.claude/skills/frontend-vue/components/Control/Checkbox.vue +58 -0
  204. package/templates/.claude/skills/frontend-vue/components/Control/Datetime.vue +148 -0
  205. package/templates/.claude/skills/frontend-vue/components/Control/Dropdownlist.vue +156 -0
  206. package/templates/.claude/skills/frontend-vue/components/Control/Input.vue +106 -0
  207. package/templates/.claude/skills/frontend-vue/components/Control/Label.vue +38 -0
  208. package/templates/.claude/skills/frontend-vue/components/Control/Master/BoxColumn.vue +24 -0
  209. package/templates/.claude/skills/frontend-vue/components/Control/Popup/Confirm.vue +33 -0
  210. package/templates/.claude/skills/frontend-vue/components/Control/Popup/Info.vue +32 -0
  211. package/templates/.claude/skills/frontend-vue/components/Control/Popup/ModalInfo.vue +39 -0
  212. package/templates/.claude/skills/frontend-vue/components/Control/Popup/Reject.vue +64 -0
  213. package/templates/.claude/skills/frontend-vue/components/Control/Tag.vue +82 -0
  214. package/templates/.claude/skills/frontend-vue/components/Control/Upload.vue +61 -0
  215. package/templates/.claude/skills/frontend-vue/components/ControlMobile/Dropdownlist.vue +103 -0
  216. package/templates/.claude/skills/frontend-vue/components/ControlMobile/PagingBar.vue +108 -0
  217. package/templates/.claude/skills/frontend-vue/components/ControlMobile/UploadImage.vue +137 -0
  218. package/templates/.claude/skills/frontend-vue/components/Grid/AG.vue +806 -0
  219. package/templates/.claude/skills/frontend-vue/components/Grid/AntTable.vue +253 -0
  220. package/templates/.claude/skills/frontend-vue/components/Grid/CustomDropdownEditor.vue +43 -0
  221. package/templates/.claude/skills/frontend-vue/components/Grid/CustomDropdownEditorEnable.vue +55 -0
  222. package/templates/.claude/skills/frontend-vue/components/Grid/HtmlTable.vue +40 -0
  223. package/templates/.claude/skills/frontend-vue/components/PDFViewer.vue +25 -0
  224. package/templates/.claude/skills/frontend-vue/components/Panel/FormView.vue +309 -0
  225. package/templates/.claude/skills/frontend-vue/components/Partial/Footer.vue +23 -0
  226. package/templates/.claude/skills/frontend-vue/components/Partial/Header.vue +265 -0
  227. package/templates/.claude/skills/frontend-vue/components/Partial/Sidebar.vue +122 -0
  228. package/templates/.claude/skills/frontend-vue/components/Template.vue +16 -0
  229. package/templates/.claude/skills/frontend-vue/components/View/Form.vue +89 -0
  230. package/templates/.claude/skills/frontend-vue/composables/indexDBStore.js +140 -0
  231. package/templates/.claude/skills/frontend-vue/composables/masterApi.js +362 -0
  232. package/templates/.claude/skills/frontend-vue/composables/state.js +578 -0
  233. package/templates/.claude/skills/frontend-vue/composables/useRequest.js +221 -0
  234. package/templates/.claude/skills/frontend-vue/composables/useSession.js +179 -0
  235. package/templates/.claude/skills/frontend-vue/composables/useTranslation.js +54 -0
  236. package/templates/.claude/skills/frontend-vue/composables/useWebSocket.js +257 -0
  237. package/templates/.claude/skills/frontend-vue/composables/userObj.js +111 -0
  238. package/templates/.claude/skills/frontend-vue/composables/utils.js +322 -0
  239. package/templates/.claude/skills/frontend-vue/reference/composables-example.vue +320 -0
  240. package/templates/.claude/skills/frontend-vue/reference/form-example.vue +183 -0
  241. package/templates/.claude/skills/frontend-vue/reference/grid-example.vue +147 -0
  242. package/templates/.claude/skills/frontend-vue/reference/masterdata-example/[id].vue +106 -0
  243. package/templates/.claude/skills/frontend-vue/reference/masterdata-example/index.vue +58 -0
  244. package/templates/.claude/skills/frontend-vue/reference/popup-example.vue +159 -0
  245. package/templates/.claude/skills/pdf/LICENSE.txt +30 -0
  246. package/templates/.claude/skills/pdf/SKILL.md +294 -0
  247. package/templates/.claude/skills/pdf/forms.md +205 -0
  248. package/templates/.claude/skills/pdf/reference.md +612 -0
  249. package/templates/.claude/skills/pdf/scripts/check_bounding_boxes.py +70 -0
  250. package/templates/.claude/skills/pdf/scripts/check_bounding_boxes_test.py +226 -0
  251. package/templates/.claude/skills/pdf/scripts/check_fillable_fields.py +12 -0
  252. package/templates/.claude/skills/pdf/scripts/convert_pdf_to_images.py +35 -0
  253. package/templates/.claude/skills/pdf/scripts/create_validation_image.py +41 -0
  254. package/templates/.claude/skills/pdf/scripts/extract_form_field_info.py +152 -0
  255. package/templates/.claude/skills/pdf/scripts/fill_fillable_fields.py +114 -0
  256. package/templates/.claude/skills/pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
  257. package/templates/.claude/skills/pdf-processing/SKILL.md +107 -0
  258. package/templates/.claude/skills/pdf-processing-pro/FORMS.md +610 -0
  259. package/templates/.claude/skills/pdf-processing-pro/OCR.md +137 -0
  260. package/templates/.claude/skills/pdf-processing-pro/SKILL.md +296 -0
  261. package/templates/.claude/skills/pdf-processing-pro/TABLES.md +626 -0
  262. package/templates/.claude/skills/pdf-processing-pro/scripts/analyze_form.py +307 -0
  263. package/templates/.claude/skills/postgres/SKILL.md +69 -0
  264. package/templates/.claude/skills/postgres/reference/fn_get_examples.sql +208 -0
  265. package/templates/.claude/skills/postgres/reference/fn_rpt_examples.sql +239 -0
  266. package/templates/.claude/skills/postgres/reference/utility_functions.sql +94 -0
  267. package/templates/.claude/skills/pptx/LICENSE.txt +30 -0
  268. package/templates/.claude/skills/pptx/SKILL.md +484 -0
  269. package/templates/.claude/skills/pptx/html2pptx.md +625 -0
  270. package/templates/.claude/skills/pptx/ooxml.md +427 -0
  271. package/templates/.claude/skills/pptx/scripts/html2pptx.js +979 -0
  272. package/templates/.claude/skills/pptx/scripts/inventory.py +1020 -0
  273. package/templates/.claude/skills/pptx/scripts/rearrange.py +231 -0
  274. package/templates/.claude/skills/pptx/scripts/replace.py +385 -0
  275. package/templates/.claude/skills/pptx/scripts/thumbnail.py +450 -0
  276. package/templates/.claude/skills/repo-maintenance/SKILL.md +97 -0
  277. package/templates/.claude/skills/research/EXAMPLES.md +434 -0
  278. package/templates/.claude/skills/research/REFERENCE.md +399 -0
  279. package/templates/.claude/skills/research/SKILL.md +136 -0
  280. package/templates/.claude/skills/root-cause-tracing/SKILL.md +174 -0
  281. package/templates/.claude/skills/root-cause-tracing/find-polluter.sh +63 -0
  282. package/templates/.claude/skills/sharing-skills/SKILL.md +194 -0
  283. package/templates/.claude/skills/sql-optimization-patterns/SKILL.md +493 -0
  284. package/templates/.claude/skills/subagent-driven-development/SKILL.md +189 -0
  285. package/templates/.claude/skills/systematic-debugging/CREATION-LOG.md +119 -0
  286. package/templates/.claude/skills/systematic-debugging/SKILL.md +295 -0
  287. package/templates/.claude/skills/systematic-debugging/test-academic.md +14 -0
  288. package/templates/.claude/skills/systematic-debugging/test-pressure-1.md +58 -0
  289. package/templates/.claude/skills/systematic-debugging/test-pressure-2.md +68 -0
  290. package/templates/.claude/skills/systematic-debugging/test-pressure-3.md +69 -0
  291. package/templates/.claude/skills/test-driven-development/SKILL.md +364 -0
  292. package/templates/.claude/skills/testing-anti-patterns/SKILL.md +302 -0
  293. package/templates/.claude/skills/testing-quality/SKILL.md +97 -0
  294. package/templates/.claude/skills/verification-before-completion/SKILL.md +139 -0
  295. package/templates/.claude/skills/webapp-testing/LICENSE.txt +202 -0
  296. package/templates/.claude/skills/webapp-testing/SKILL.md +96 -0
  297. package/templates/.claude/skills/webapp-testing/examples/console_logging.py +35 -0
  298. package/templates/.claude/skills/webapp-testing/examples/element_discovery.py +40 -0
  299. package/templates/.claude/skills/webapp-testing/examples/static_html_automation.py +33 -0
  300. package/templates/.claude/skills/webapp-testing/scripts/with_server.py +106 -0
  301. package/templates/.claude/ukit/index/build-index.mjs +28 -0
  302. package/templates/.claude/ukit/index/cache-utils.mjs +140 -0
  303. package/templates/.claude/ukit/index/lib/index-core.mjs +2800 -0
  304. package/templates/.claude/ukit/index/query-index.mjs +150 -0
  305. package/templates/.claude/ukit/index/refresh-index.mjs +57 -0
  306. package/templates/.claude/ukit/index/reset-auto-permissions.mjs +76 -0
  307. package/templates/.claude/ukit/index/resolve-context.mjs +279 -0
  308. package/templates/.claude/ukit/index/route-catalog.mjs +258 -0
  309. package/templates/.claude/ukit/index/route-task.mjs +1994 -0
  310. package/templates/.claude/ukit/index/triage.mjs +133 -0
  311. package/templates/.claude/ukit/index/verify-context.mjs +689 -0
  312. package/templates/.claude/ukit/runtime/compact-threshold.mjs +1013 -0
  313. package/templates/.claude/ukit/runtime/output-compression.mjs +1340 -0
  314. package/templates/.claude/ukit/runtime/reinject-context.mjs +874 -0
  315. package/templates/.claude/ukit/runtime/token-utils.mjs +500 -0
  316. package/templates/.codex/README.md +83 -0
  317. package/templates/.codex/settings.json +187 -0
  318. package/templates/.gitignore +75 -0
  319. package/templates/AGENTS.md +116 -0
  320. package/templates/CLAUDE.md +93 -0
  321. package/templates/adapter-presets/antigravity/README.md +22 -0
  322. package/templates/adapter-presets/antigravity/rules.md +49 -0
  323. package/templates/adapter-presets/claude/settings.local.json +42 -0
  324. package/templates/adapter-presets/codex/settings.local.json +6 -0
  325. package/templates/adapter-presets/opencode/opencode.template.json +1 -0
  326. package/templates/docs/BUGFIX.md +20 -0
  327. package/templates/docs/BUG_INDEX.md +12 -0
  328. package/templates/docs/BUG_METRICS.md +7 -0
  329. package/templates/docs/BUG_TEMPLATE.md +13 -0
  330. package/templates/docs/CODE_MAP.md +35 -0
  331. package/templates/docs/INSTALL.md +113 -0
  332. package/templates/docs/MEMORY.md +49 -0
  333. package/templates/docs/PROJECT.md +50 -0
  334. package/templates/docs/UKIT_USAGE_GUIDE.md +147 -0
  335. package/templates/docs/WORKLOG.md +10 -0
  336. package/templates/ukit/README.md +14 -0
  337. package/templates/ukit/storage/cache/compact-history.json +3 -0
  338. package/templates/ukit/storage/cache/compact-pressure.json +1 -0
  339. package/templates/ukit/storage/cache/output-history.json +3 -0
  340. package/templates/ukit/storage/cache/prompt-cache.json +3 -0
  341. package/templates/ukit/storage/config.json +37 -0
  342. package/templates/ukit/storage/memory/projects/.gitkeep +2 -0
  343. package/templates/ukit/storage/memory/sessions/.gitkeep +0 -0
  344. package/templates/ukit/storage/memory/user.json +5 -0
@@ -0,0 +1,362 @@
1
+ /**
2
+ * @file masterApi.js
3
+ * @description Các hàm truy vấn master data — dùng chung cho toàn bộ ứng dụng.
4
+ * Auto-import, gọi trực tiếp không cần import.
5
+ *
6
+ * NAMING CONVENTION:
7
+ * - get_[entity]_by_[field]() → Trả về 1 object {} hoặc {} rỗng
8
+ * - get_[entity]_list() → Trả về mảng raw data []
9
+ * - get_[entity]_list_dropdown() → Trả về Array<{value, label}> cho component Dropdown/Select
10
+ * - get_permission_create_of_group_[menu]() → Kiểm tra quyền tạo mới, trả boolean
11
+ *
12
+ * @requires request - từ useRequest.js (GET /select)
13
+ * @requires convertToDropdownValue - từ utils.js
14
+ * @requires get_schema - từ state.js
15
+ */
16
+
17
+ /**
18
+ * Lấy thông tin agreement theo ID
19
+ * @param {number|string} id_agreement - ID agreement
20
+ * @returns {Promise<Object>} Object agreement hoặc {} nếu không tìm thấy
21
+ */
22
+ export const get_agreement_by_id = async (id_agreement) => {
23
+ let data = {
24
+ schema: get_schema(),
25
+ table: "v_agreement",
26
+ conditions: JSON.stringify({ id_agreement: id_agreement }),
27
+ };
28
+ const tmp = await request("/select", data, "get");
29
+ if (tmp.length > 0) {
30
+ return tmp[0];
31
+ }
32
+ return {};
33
+ };
34
+ /**
35
+ * Lấy thông tin agreement theo số hợp đồng
36
+ * @param {string} agreement_number - Số hợp đồng
37
+ * @returns {Promise<Object>} Object agreement hoặc {} nếu không tìm thấy
38
+ */
39
+ export const get_agreement_by_number = async (agreement_number) => {
40
+ let data = {
41
+ schema: get_schema(),
42
+ table: "v_agreement",
43
+ conditions: JSON.stringify({ agreement_number: agreement_number }),
44
+ };
45
+ const tmp = await request("/select", data, "get");
46
+ if (tmp.length > 0) {
47
+ return tmp[0];
48
+ }
49
+ return {};
50
+ };
51
+ /**
52
+ * Lấy danh sách ngôn ngữ (raw data)
53
+ * @returns {Promise<Array>} Mảng lang objects
54
+ */
55
+ export const get_lang_list = async () => {
56
+ let data = {
57
+ schema: get_schema(),
58
+ table: "lang_list",
59
+ };
60
+ return await request("/select", data, "get");
61
+ };
62
+ /**
63
+ * Lấy danh sách ngôn ngữ cho Dropdown (value=code, label=name)
64
+ * @returns {Promise<Array<{value: string, label: string}>>}
65
+ */
66
+ export const get_lang_list_dropdown = async () => {
67
+ let data = {
68
+ schema: get_schema(),
69
+ table: "lang_list",
70
+ };
71
+ let resp = await request("/select", data, "get");
72
+ return convertToDropdownValue(resp, "code", "name");
73
+ };
74
+
75
+ /**
76
+ * Lấy danh sách usergroup (raw data)
77
+ * @returns {Promise<Array>} Mảng usergroup objects
78
+ */
79
+ export const get_usergroup_list = async () => {
80
+ let data = {
81
+ schema: get_schema(),
82
+ table: "usergroup",
83
+ };
84
+ return await request("/select", data, "get");
85
+ };
86
+ /**
87
+ * Lấy danh sách usergroup cho Dropdown (value=code, label=name)
88
+ * @returns {Promise<Array<{value: string, label: string}>>}
89
+ */
90
+ export const get_usergroup_list_dropdown = async () => {
91
+ let data = {
92
+ schema: get_schema(),
93
+ table: "usergroup",
94
+ };
95
+ let resp = await request("/select", data, "get");
96
+ return convertToDropdownValue(resp, "code", "name");
97
+ };
98
+
99
+ /**
100
+ * Lấy danh sách user (raw data)
101
+ * @returns {Promise<Array>} Mảng user objects
102
+ */
103
+ export const get_user_list = async () => {
104
+ let data = {
105
+ schema: get_schema(),
106
+ table: "user",
107
+ };
108
+ return await request("/select", data, "get");
109
+ };
110
+ /**
111
+ * Lấy danh sách user cho Dropdown (value=email, label=fullname)
112
+ * @returns {Promise<Array<{value: string, label: string}>>}
113
+ */
114
+ export const get_user_list_dropdown = async () => {
115
+ let data = {
116
+ schema: get_schema(),
117
+ table: "user",
118
+ };
119
+ let resp = await request("/select", data, "get");
120
+ return convertToDropdownValue(resp, "email", "fullname");
121
+ };
122
+
123
+ /**
124
+ * Lấy danh sách token (raw data)
125
+ * @returns {Promise<Array>}
126
+ */
127
+ export const get_token_list = async () => {
128
+ let data = {
129
+ schema: get_schema(),
130
+ table: "token",
131
+ };
132
+ return await request("/select", data, "get");
133
+ };
134
+
135
+ /**
136
+ * Lấy danh sách notification (raw data)
137
+ * @returns {Promise<Array>}
138
+ */
139
+ export const get_notification_list = async () => {
140
+ let data = {
141
+ schema: get_schema(),
142
+ table: "notification",
143
+ };
144
+ return await request("/select", data, "get");
145
+ };
146
+
147
+ /**
148
+ * Lấy danh sách modern trade (raw data)
149
+ * @returns {Promise<Array>}
150
+ */
151
+ export const get_modern_trade_list = async () => {
152
+ let data = {
153
+ schema: get_schema(),
154
+ table: "modern_trade",
155
+ };
156
+ return await request("/select", data, "get");
157
+ };
158
+ /**
159
+ * Lấy danh sách modern trade cho Dropdown (value=name, label=name)
160
+ * @returns {Promise<Array<{value: string, label: string}>>}
161
+ */
162
+ export const get_modern_trade_list_dropdown = async () => {
163
+ let data = {
164
+ schema: get_schema(),
165
+ table: "modern_trade",
166
+ };
167
+ let resp = await request("/select", data, "get");
168
+ return convertToDropdownValue(resp, "name", "name");
169
+ };
170
+
171
+ /**
172
+ * Lấy danh sách branch (raw data)
173
+ * @returns {Promise<Array>}
174
+ */
175
+ export const get_branch_list = async () => {
176
+ let data = {
177
+ schema: get_schema(),
178
+ table: "branch",
179
+ };
180
+ return await request("/select", data, "get");
181
+ };
182
+ /**
183
+ * Lấy danh sách branch cho Dropdown (value=name, label=name)
184
+ * @returns {Promise<Array<{value: string, label: string}>>}
185
+ */
186
+ export const get_branch_list_dropdown = async () => {
187
+ let data = {
188
+ schema: get_schema(),
189
+ table: "branch",
190
+ };
191
+ let resp = await request("/select", data, "get");
192
+ return convertToDropdownValue(resp, "name", "name");
193
+ };
194
+
195
+ /**
196
+ * Lấy danh sách type of media (raw data)
197
+ * @returns {Promise<Array>}
198
+ */
199
+ export const get_type_of_media_list = async () => {
200
+ let data = {
201
+ schema: get_schema(),
202
+ table: "type_of_media",
203
+ };
204
+ return await request("/select", data, "get");
205
+ };
206
+
207
+ /**
208
+ * Lấy danh sách type of media cho Dropdown (value=name, label=name)
209
+ * @returns {Promise<Array<{value: string, label: string}>>}
210
+ */
211
+ export const get_type_of_media_list_dropdown = async () => {
212
+ let data = {
213
+ schema: get_schema(),
214
+ table: "type_of_media",
215
+ };
216
+ let resp = await request("/select", data, "get");
217
+ return convertToDropdownValue(resp, "name", "name");
218
+ };
219
+ /**
220
+ * Lấy type of media theo ID
221
+ * @param {number|string} id - ID type of media
222
+ * @returns {Promise<Object>} Object hoặc {} nếu không tìm thấy
223
+ */
224
+ export const get_type_of_media_by_id = async (id) => {
225
+ let data = {
226
+ schema: get_schema(),
227
+ table: "type_of_media",
228
+ conditions: JSON.stringify({ id_type_of_media: id }),
229
+ };
230
+ let resp = await request("/select", data, "get");
231
+ if (resp.length > 0) {
232
+ return resp[0];
233
+ } else {
234
+ return {};
235
+ }
236
+ };
237
+ /**
238
+ * Lấy type of media theo tên
239
+ * @param {string} name - Tên type of media
240
+ * @returns {Promise<Object>} Object hoặc {} nếu không tìm thấy
241
+ */
242
+ export const get_type_of_media_by_name = async (name) => {
243
+ let data = {
244
+ schema: get_schema(),
245
+ table: "type_of_media",
246
+ conditions: JSON.stringify({ name: name }),
247
+ };
248
+ let resp = await request("/select", data, "get");
249
+ if (resp.length > 0) {
250
+ return resp[0];
251
+ } else {
252
+ return {};
253
+ }
254
+ };
255
+
256
+ /**
257
+ * Lấy danh sách agreement period (raw data)
258
+ * @returns {Promise<Array>}
259
+ */
260
+ export const get_agreement_period_list = async () => {
261
+ let data = {
262
+ schema: get_schema(),
263
+ table: "agreement_period",
264
+ };
265
+ return await request("/select", data, "get");
266
+ };
267
+ /**
268
+ * Lấy danh sách agreement period cho Dropdown (value=name, label=name)
269
+ * @returns {Promise<Array<{value: string, label: string}>>}
270
+ */
271
+ export const get_agreement_period_list_dropdown = async () => {
272
+ let data = {
273
+ schema: get_schema(),
274
+ table: "agreement_period",
275
+ };
276
+ let resp = await request("/select", data, "get");
277
+ return convertToDropdownValue(resp, "name", "name");
278
+ };
279
+ /**
280
+ * Lấy danh sách agreement period loại "month" cho Dropdown, sắp xếp theo tên
281
+ * @returns {Promise<Array<{value: string, label: string}>>}
282
+ */
283
+ export const get_agreement_period_list_dropdown_month = async () => {
284
+ let data = {
285
+ schema: get_schema(),
286
+ table: "agreement_period",
287
+ conditions: JSON.stringify({ type: "month" }),
288
+ order_by: ["LENGTH(name) asc", "name asc"],
289
+ };
290
+ let resp = await request("/select", data, "get");
291
+ return convertToDropdownValue(resp, "name", "name");
292
+ };
293
+ /**
294
+ * Lấy danh sách agreement period loại "year" cho Dropdown, sắp xếp theo tên
295
+ * @returns {Promise<Array<{value: string, label: string}>>}
296
+ */
297
+ export const get_agreement_period_list_dropdown_year = async () => {
298
+ let data = {
299
+ schema: get_schema(),
300
+ table: "agreement_period",
301
+ conditions: JSON.stringify({ type: "year" }),
302
+ order_by: ["name asc"],
303
+ };
304
+ let resp = await request("/select", data, "get");
305
+ return convertToDropdownValue(resp, "name", "name");
306
+ };
307
+
308
+ /**
309
+ * Kiểm tra quyền tạo Agreement của usergroup
310
+ * @param {string|Array<string>} usergroup - Mã nhóm user (dùng operator "(in)")
311
+ * @returns {Promise<boolean>} true nếu có quyền tạo
312
+ */
313
+ export const get_permission_create_of_group_agreement = async (usergroup) => {
314
+ let conditions = { "(in)usergroup": usergroup, menu: "Agreement", can_create: true };
315
+ let data = {
316
+ schema: get_schema(),
317
+ table: "permission",
318
+ conditions: JSON.stringify(conditions),
319
+ };
320
+ let resp = await request("/select", data, "get");
321
+ if (resp.length > 0) {
322
+ return true;
323
+ }
324
+ return false;
325
+ };
326
+ /**
327
+ * Kiểm tra quyền tạo Billing của usergroup
328
+ * @param {string|Array<string>} usergroup - Mã nhóm user
329
+ * @returns {Promise<boolean>} true nếu có quyền tạo
330
+ */
331
+ export const get_permission_create_of_group_billing = async (usergroup) => {
332
+ let conditions = { "(in)usergroup": usergroup, menu: "Billing", "can_create": true };
333
+ let data = {
334
+ schema: get_schema(),
335
+ table: "permission",
336
+ conditions: JSON.stringify(conditions),
337
+ };
338
+ let resp = await request("/select", data, "get");
339
+ if (resp.length > 0) {
340
+ return true;
341
+ }
342
+ return false;
343
+ };
344
+
345
+ /**
346
+ * Kiểm tra quyền tạo Collect Point của usergroup
347
+ * @param {string|Array<string>} usergroup - Mã nhóm user
348
+ * @returns {Promise<boolean>} true nếu có quyền tạo
349
+ */
350
+ export const get_permission_create_of_group_collect_point = async (usergroup) => {
351
+ let conditions = { "(in)usergroup": usergroup, menu: "Collect Point", "can_create": true };
352
+ let data = {
353
+ schema: get_schema(),
354
+ table: "permission",
355
+ conditions: JSON.stringify(conditions),
356
+ };
357
+ let resp = await request("/select", data, "get");
358
+ if (resp.length > 0) {
359
+ return true;
360
+ }
361
+ return false;
362
+ };