apexrest 1.2.0 → 1.3.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 (239) hide show
  1. package/README.md +90 -134
  2. package/dist/codex-compat/.claude-plugin/marketplace.json +20 -0
  3. package/dist/codex-compat/plugins/apexrest-apex/.claude-plugin/plugin.json +28 -0
  4. package/dist/codex-compat/plugins/apexrest-apex/.codex-plugin/plugin.json +7 -7
  5. package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/evidence/block%3Aanalytics%2Fstatus-summary%401.0.0.json +19 -0
  6. package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/evidence/block%3Acrud%2Freport-dialog%401.0.0.json +19 -0
  7. package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/evidence/block%3Aread%2Fdetail%401.0.0.json +19 -0
  8. package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/evidence/block%3Aread%2Ffiltered-list%401.0.0.json +19 -0
  9. package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/evidence/block%3Aread%2Fhistory%401.0.0.json +19 -0
  10. package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/evidence/block%3Aread%2Fmaster-detail%401.0.0.json +19 -0
  11. package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/generator.json +5 -0
  12. package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/manifest.json +29 -0
  13. package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/analytics/status-summary/1.0.0/block.yaml +59 -0
  14. package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/analytics/status-summary/1.0.0/renderer.json +14 -0
  15. package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/crud/report-dialog/1.0.0/block.yaml +66 -0
  16. package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/crud/report-dialog/1.0.0/renderer.json +14 -0
  17. package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/read/detail/1.0.0/block.yaml +59 -0
  18. package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/read/detail/1.0.0/renderer.json +14 -0
  19. package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/read/filtered-list/1.0.0/block.yaml +59 -0
  20. package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/read/filtered-list/1.0.0/renderer.json +14 -0
  21. package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/read/history/1.0.0/block.yaml +59 -0
  22. package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/read/history/1.0.0/renderer.json +14 -0
  23. package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/read/master-detail/1.0.0/block.yaml +59 -0
  24. package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/read/master-detail/1.0.0/renderer.json +14 -0
  25. package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/profiles.json +10 -0
  26. package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/revocations.json +1 -0
  27. package/dist/codex-compat/plugins/apexrest-apex/resources/blueprints/crm.yaml +172 -0
  28. package/dist/codex-compat/plugins/apexrest-apex/resources/blueprints/index.json +12 -0
  29. package/dist/codex-compat/plugins/apexrest-apex/resources/blueprints/service-desk.yaml +120 -0
  30. package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-allocation.schema.json +33 -0
  31. package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-block.schema.json +208 -0
  32. package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-blueprint.schema.json +665 -0
  33. package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-command.schema.json +106 -0
  34. package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-contract.schema.json +174 -0
  35. package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-diagnostic.schema.json +26 -0
  36. package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-entity.schema.json +142 -0
  37. package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-evidence.schema.json +95 -0
  38. package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-field.schema.json +54 -0
  39. package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-instance.schema.json +117 -0
  40. package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-lock.schema.json +54 -0
  41. package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-operation.schema.json +55 -0
  42. package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-owner.schema.json +105 -0
  43. package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-parameters.schema.json +61 -0
  44. package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-plan.schema.json +1011 -0
  45. package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-renderer.schema.json +69 -0
  46. package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-state.schema.json +146 -0
  47. package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/deploy-plan.schema.json +754 -169
  48. package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/operations.schema.json +525 -256
  49. package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/policy.schema.json +21 -0
  50. package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/project.schema.json +17 -7
  51. package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/sync-state.schema.json +238 -0
  52. package/dist/codex-compat/plugins/apexrest-apex/resources/templates/blank-app/README.md +0 -2
  53. package/dist/codex-compat/plugins/apexrest-apex/resources/templates/customer-crm/README.md +1 -3
  54. package/dist/codex-compat/plugins/apexrest-apex/resources/templates/existing-app/README.md +0 -2
  55. package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__yaml__LICENSE +13 -0
  56. package/dist/codex-compat/plugins/apexrest-apex/runtime/apexrest.mjs +81 -45
  57. package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-5PCC7GZM.mjs +4090 -0
  58. package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-BVPAS3TD.mjs +18 -0
  59. package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-CVMECW6D.mjs +65 -0
  60. package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-3MDDJFXN.mjs → chunk-JYN3YHP3.mjs} +4220 -10616
  61. package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-KGTE7Q5Y.mjs +23 -0
  62. package/dist/{runtime/chunk-HOKFFGSZ.mjs → codex-compat/plugins/apexrest-apex/runtime/chunk-KKRFM7Q7.mjs} +21 -4
  63. package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-2VBZESVC.mjs → chunk-MNU54A7W.mjs} +7 -1
  64. package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-N4C2SKCN.mjs +6912 -0
  65. package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-WK5GP4ES.mjs → chunk-P3CVQAZW.mjs} +822 -102
  66. package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-2ZUNLCLK.mjs → chunk-QKYF6N6U.mjs} +210 -112
  67. package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-S24BD6PY.mjs → chunk-RBJJNQ5O.mjs} +7 -7
  68. package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-TMSMKVRP.mjs +10367 -0
  69. package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-2Z3BZF66.mjs → chunk-WPS3CSQJ.mjs} +124 -11
  70. package/dist/codex-compat/plugins/apexrest-apex/runtime/mcp.mjs +5 -10
  71. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-apexlang/SKILL.md +22 -25
  72. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-apexlang/agents/openai.yaml +3 -3
  73. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-apexlang/references/component-routes.md +1 -5
  74. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-pattern-catalog/SKILL.md +4 -4
  75. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-pattern-catalog/agents/openai.yaml +1 -1
  76. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-pattern-catalog/references/capture-and-curation.md +2 -2
  77. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-safety/SKILL.md +18 -0
  78. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-safety/agents/openai.yaml +4 -0
  79. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-setup/SKILL.md +20 -10
  80. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-setup/agents/openai.yaml +3 -3
  81. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-work/SKILL.md +11 -6
  82. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-work/agents/openai.yaml +3 -3
  83. package/dist/resources/blocks/evidence/block%3Aanalytics%2Fstatus-summary%401.0.0.json +19 -0
  84. package/dist/resources/blocks/evidence/block%3Acrud%2Freport-dialog%401.0.0.json +19 -0
  85. package/dist/resources/blocks/evidence/block%3Aread%2Fdetail%401.0.0.json +19 -0
  86. package/dist/resources/blocks/evidence/block%3Aread%2Ffiltered-list%401.0.0.json +19 -0
  87. package/dist/resources/blocks/evidence/block%3Aread%2Fhistory%401.0.0.json +19 -0
  88. package/dist/resources/blocks/evidence/block%3Aread%2Fmaster-detail%401.0.0.json +19 -0
  89. package/dist/resources/blocks/generator.json +5 -0
  90. package/dist/resources/blocks/manifest.json +29 -0
  91. package/dist/resources/blocks/packages/analytics/status-summary/1.0.0/block.yaml +59 -0
  92. package/dist/resources/blocks/packages/analytics/status-summary/1.0.0/renderer.json +14 -0
  93. package/dist/resources/blocks/packages/crud/report-dialog/1.0.0/block.yaml +66 -0
  94. package/dist/resources/blocks/packages/crud/report-dialog/1.0.0/renderer.json +14 -0
  95. package/dist/resources/blocks/packages/read/detail/1.0.0/block.yaml +59 -0
  96. package/dist/resources/blocks/packages/read/detail/1.0.0/renderer.json +14 -0
  97. package/dist/resources/blocks/packages/read/filtered-list/1.0.0/block.yaml +59 -0
  98. package/dist/resources/blocks/packages/read/filtered-list/1.0.0/renderer.json +14 -0
  99. package/dist/resources/blocks/packages/read/history/1.0.0/block.yaml +59 -0
  100. package/dist/resources/blocks/packages/read/history/1.0.0/renderer.json +14 -0
  101. package/dist/resources/blocks/packages/read/master-detail/1.0.0/block.yaml +59 -0
  102. package/dist/resources/blocks/packages/read/master-detail/1.0.0/renderer.json +14 -0
  103. package/dist/resources/blocks/profiles.json +10 -0
  104. package/dist/resources/blocks/revocations.json +1 -0
  105. package/dist/resources/blueprints/crm.yaml +172 -0
  106. package/dist/resources/blueprints/index.json +12 -0
  107. package/dist/resources/blueprints/service-desk.yaml +120 -0
  108. package/dist/resources/schemas/composer-allocation.schema.json +33 -0
  109. package/dist/resources/schemas/composer-block.schema.json +208 -0
  110. package/dist/resources/schemas/composer-blueprint.schema.json +665 -0
  111. package/dist/resources/schemas/composer-command.schema.json +106 -0
  112. package/dist/resources/schemas/composer-contract.schema.json +174 -0
  113. package/dist/resources/schemas/composer-diagnostic.schema.json +26 -0
  114. package/dist/resources/schemas/composer-entity.schema.json +142 -0
  115. package/dist/resources/schemas/composer-evidence.schema.json +95 -0
  116. package/dist/resources/schemas/composer-field.schema.json +54 -0
  117. package/dist/resources/schemas/composer-instance.schema.json +117 -0
  118. package/dist/resources/schemas/composer-lock.schema.json +54 -0
  119. package/dist/resources/schemas/composer-operation.schema.json +55 -0
  120. package/dist/resources/schemas/composer-owner.schema.json +105 -0
  121. package/dist/resources/schemas/composer-parameters.schema.json +61 -0
  122. package/dist/resources/schemas/composer-plan.schema.json +1011 -0
  123. package/dist/resources/schemas/composer-renderer.schema.json +69 -0
  124. package/dist/resources/schemas/composer-state.schema.json +146 -0
  125. package/dist/resources/schemas/deploy-plan.schema.json +754 -169
  126. package/dist/resources/schemas/operations.schema.json +525 -256
  127. package/dist/resources/schemas/policy.schema.json +21 -0
  128. package/dist/resources/schemas/project.schema.json +17 -7
  129. package/dist/resources/schemas/sync-state.schema.json +238 -0
  130. package/dist/resources/templates/blank-app/README.md +0 -2
  131. package/dist/resources/templates/customer-crm/README.md +1 -3
  132. package/dist/resources/templates/existing-app/README.md +0 -2
  133. package/dist/resources/third-party/node_modules__yaml__LICENSE +13 -0
  134. package/dist/runtime/apexrest.mjs +81 -45
  135. package/dist/runtime/chunk-5PCC7GZM.mjs +4090 -0
  136. package/dist/runtime/chunk-BVPAS3TD.mjs +18 -0
  137. package/dist/runtime/chunk-CVMECW6D.mjs +65 -0
  138. package/dist/runtime/{chunk-3MDDJFXN.mjs → chunk-JYN3YHP3.mjs} +4220 -10616
  139. package/dist/runtime/chunk-KGTE7Q5Y.mjs +23 -0
  140. package/dist/{codex-compat/plugins/apexrest-apex/runtime/chunk-HOKFFGSZ.mjs → runtime/chunk-KKRFM7Q7.mjs} +21 -4
  141. package/dist/runtime/{chunk-2VBZESVC.mjs → chunk-MNU54A7W.mjs} +7 -1
  142. package/dist/runtime/chunk-N4C2SKCN.mjs +6912 -0
  143. package/dist/runtime/{chunk-WK5GP4ES.mjs → chunk-P3CVQAZW.mjs} +822 -102
  144. package/dist/runtime/{chunk-2ZUNLCLK.mjs → chunk-QKYF6N6U.mjs} +210 -112
  145. package/dist/runtime/{chunk-S24BD6PY.mjs → chunk-RBJJNQ5O.mjs} +7 -7
  146. package/dist/runtime/chunk-TMSMKVRP.mjs +10367 -0
  147. package/dist/runtime/{chunk-2Z3BZF66.mjs → chunk-WPS3CSQJ.mjs} +124 -11
  148. package/dist/runtime/mcp.mjs +5 -10
  149. package/package.json +14 -7
  150. package/README.uk.md +0 -206
  151. package/dist/codex-compat/plugins/apexrest-apex/resources/panel/index.html +0 -61
  152. package/dist/codex-compat/plugins/apexrest-apex/resources/panel/panel.css +0 -627
  153. package/dist/codex-compat/plugins/apexrest-apex/resources/panel/panel.js +0 -629
  154. package/dist/codex-compat/plugins/apexrest-apex/resources/templates/blank-app/README.uk.md +0 -5
  155. package/dist/codex-compat/plugins/apexrest-apex/resources/templates/customer-crm/README.uk.md +0 -7
  156. package/dist/codex-compat/plugins/apexrest-apex/resources/templates/database-control/install.sql +0 -17
  157. package/dist/codex-compat/plugins/apexrest-apex/resources/templates/existing-app/README.uk.md +0 -9
  158. package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__@playwright__test__LICENSE +0 -202
  159. package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__@playwright__test__NOTICE +0 -5
  160. package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__@types__node__LICENSE +0 -21
  161. package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__@types__yauzl__LICENSE +0 -21
  162. package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__@typescript__typescript-darwin-arm64__LICENSE +0 -55
  163. package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__@typescript__typescript-darwin-arm64__NOTICE.txt +0 -436
  164. package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__esbuild__LICENSE.md +0 -21
  165. package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__fflate__LICENSE +0 -21
  166. package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__marked__LICENSE +0 -44
  167. package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__playwright-core__LICENSE +0 -202
  168. package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__playwright-core__NOTICE +0 -5
  169. package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__playwright__LICENSE +0 -202
  170. package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__playwright__NOTICE +0 -5
  171. package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__prettier__LICENSE +0 -7
  172. package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__typescript__LICENSE +0 -55
  173. package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__typescript__NOTICE.txt +0 -436
  174. package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__undici-types__LICENSE +0 -21
  175. package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-4MYHJ2IU.mjs +0 -1208
  176. package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-7RZW5QV2.mjs +0 -992
  177. package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-AQZLLQ3D.mjs +0 -203
  178. package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-BD2AVCFU.mjs +0 -367
  179. package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-IX6V6ZGW.mjs +0 -18
  180. package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-NDZ2RWQU.mjs +0 -13
  181. package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-QIVPMPU3.mjs +0 -14
  182. package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-SPZVXAM5.mjs +0 -147
  183. package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-TLYYCRQA.mjs +0 -329
  184. package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-TXVQLYTH.mjs +0 -1271
  185. package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-YLXJ6H4J.mjs +0 -14
  186. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-database/SKILL.md +0 -9
  187. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-database/agents/openai.yaml +0 -4
  188. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-debug/SKILL.md +0 -9
  189. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-debug/agents/openai.yaml +0 -4
  190. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-deploy/SKILL.md +0 -19
  191. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-deploy/agents/openai.yaml +0 -4
  192. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-install-dependencies/SKILL.md +0 -38
  193. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-install-dependencies/agents/openai.yaml +0 -4
  194. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-menu/SKILL.md +0 -28
  195. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-menu/agents/openai.yaml +0 -4
  196. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-menu/references/cli-catalog.md +0 -23
  197. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-panel/SKILL.md +0 -14
  198. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-panel/agents/openai.yaml +0 -4
  199. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-project/SKILL.md +0 -9
  200. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-project/agents/openai.yaml +0 -4
  201. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-review/SKILL.md +0 -11
  202. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-review/agents/openai.yaml +0 -4
  203. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-test/SKILL.md +0 -29
  204. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-test/agents/openai.yaml +0 -4
  205. package/dist/resources/panel/index.html +0 -61
  206. package/dist/resources/panel/panel.css +0 -627
  207. package/dist/resources/panel/panel.js +0 -629
  208. package/dist/resources/templates/blank-app/README.uk.md +0 -5
  209. package/dist/resources/templates/customer-crm/README.uk.md +0 -7
  210. package/dist/resources/templates/database-control/install.sql +0 -17
  211. package/dist/resources/templates/existing-app/README.uk.md +0 -9
  212. package/dist/resources/third-party/node_modules__@playwright__test__LICENSE +0 -202
  213. package/dist/resources/third-party/node_modules__@playwright__test__NOTICE +0 -5
  214. package/dist/resources/third-party/node_modules__@types__node__LICENSE +0 -21
  215. package/dist/resources/third-party/node_modules__@types__yauzl__LICENSE +0 -21
  216. package/dist/resources/third-party/node_modules__@typescript__typescript-darwin-arm64__LICENSE +0 -55
  217. package/dist/resources/third-party/node_modules__@typescript__typescript-darwin-arm64__NOTICE.txt +0 -436
  218. package/dist/resources/third-party/node_modules__esbuild__LICENSE.md +0 -21
  219. package/dist/resources/third-party/node_modules__fflate__LICENSE +0 -21
  220. package/dist/resources/third-party/node_modules__marked__LICENSE +0 -44
  221. package/dist/resources/third-party/node_modules__playwright-core__LICENSE +0 -202
  222. package/dist/resources/third-party/node_modules__playwright-core__NOTICE +0 -5
  223. package/dist/resources/third-party/node_modules__playwright__LICENSE +0 -202
  224. package/dist/resources/third-party/node_modules__playwright__NOTICE +0 -5
  225. package/dist/resources/third-party/node_modules__prettier__LICENSE +0 -7
  226. package/dist/resources/third-party/node_modules__typescript__LICENSE +0 -55
  227. package/dist/resources/third-party/node_modules__typescript__NOTICE.txt +0 -436
  228. package/dist/resources/third-party/node_modules__undici-types__LICENSE +0 -21
  229. package/dist/runtime/chunk-4MYHJ2IU.mjs +0 -1208
  230. package/dist/runtime/chunk-7RZW5QV2.mjs +0 -992
  231. package/dist/runtime/chunk-AQZLLQ3D.mjs +0 -203
  232. package/dist/runtime/chunk-BD2AVCFU.mjs +0 -367
  233. package/dist/runtime/chunk-IX6V6ZGW.mjs +0 -18
  234. package/dist/runtime/chunk-NDZ2RWQU.mjs +0 -13
  235. package/dist/runtime/chunk-QIVPMPU3.mjs +0 -14
  236. package/dist/runtime/chunk-SPZVXAM5.mjs +0 -147
  237. package/dist/runtime/chunk-TLYYCRQA.mjs +0 -329
  238. package/dist/runtime/chunk-TXVQLYTH.mjs +0 -1271
  239. package/dist/runtime/chunk-YLXJ6H4J.mjs +0 -14
@@ -42,6 +42,27 @@
42
42
  "planDigest": {
43
43
  "type": "string",
44
44
  "pattern": "^[a-f0-9]{64}$"
45
+ },
46
+ "note": {
47
+ "type": "string",
48
+ "maxLength": 2000
49
+ },
50
+ "grantedBy": {
51
+ "type": "string",
52
+ "enum": [
53
+ "user",
54
+ "ship"
55
+ ]
56
+ },
57
+ "grantedAt": {
58
+ "type": "string",
59
+ "format": "date-time",
60
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
61
+ },
62
+ "workerPid": {
63
+ "type": "integer",
64
+ "exclusiveMinimum": 0,
65
+ "maximum": 9007199254740991
45
66
  }
46
67
  },
47
68
  "required": [
@@ -140,13 +140,6 @@
140
140
  "expectedMarker": {
141
141
  "type": "string",
142
142
  "minLength": 1
143
- },
144
- "deploymentControl": {
145
- "type": "string",
146
- "enum": [
147
- "local",
148
- "database"
149
- ]
150
143
  }
151
144
  },
152
145
  "required": [
@@ -215,6 +208,23 @@
215
208
  ],
216
209
  "additionalProperties": false
217
210
  },
211
+ "deploymentControl": {
212
+ "type": "string",
213
+ "const": "local"
214
+ },
215
+ "composer": {
216
+ "type": "object",
217
+ "properties": {
218
+ "allowSourceOnly": {
219
+ "default": false,
220
+ "type": "boolean"
221
+ }
222
+ },
223
+ "required": [
224
+ "allowSourceOnly"
225
+ ],
226
+ "additionalProperties": false
227
+ },
218
228
  "artifacts": {
219
229
  "type": "object",
220
230
  "properties": {
@@ -0,0 +1,238 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "schemaVersion": {
6
+ "type": "number",
7
+ "const": 1
8
+ },
9
+ "syncId": {
10
+ "type": "string",
11
+ "format": "uuid",
12
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
13
+ },
14
+ "revision": {
15
+ "type": "integer",
16
+ "minimum": 0,
17
+ "maximum": 9007199254740991
18
+ },
19
+ "projectRoot": {
20
+ "type": "string"
21
+ },
22
+ "projectId": {
23
+ "type": "string"
24
+ },
25
+ "environment": {
26
+ "type": "string"
27
+ },
28
+ "targetDigest": {
29
+ "type": "string",
30
+ "pattern": "^[a-f0-9]{64}$"
31
+ },
32
+ "target": {
33
+ "type": "object",
34
+ "propertyNames": {
35
+ "type": "string"
36
+ },
37
+ "additionalProperties": {}
38
+ },
39
+ "sourceDir": {
40
+ "type": "string",
41
+ "minLength": 1,
42
+ "maxLength": 1024
43
+ },
44
+ "toolchainDigest": {
45
+ "type": "string",
46
+ "pattern": "^[a-f0-9]{64}$"
47
+ },
48
+ "runtimeVersion": {
49
+ "type": "string"
50
+ },
51
+ "compilerVersion": {
52
+ "type": "string",
53
+ "minLength": 1
54
+ },
55
+ "exportedAt": {
56
+ "type": "string",
57
+ "format": "date-time",
58
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
59
+ },
60
+ "baseline": {
61
+ "type": "object",
62
+ "properties": {
63
+ "directory": {
64
+ "type": "string",
65
+ "minLength": 1,
66
+ "maxLength": 1024
67
+ },
68
+ "files": {
69
+ "type": "object",
70
+ "propertyNames": {
71
+ "type": "string",
72
+ "minLength": 1,
73
+ "maxLength": 1024
74
+ },
75
+ "additionalProperties": {
76
+ "type": "string",
77
+ "pattern": "^[a-f0-9]{64}$"
78
+ }
79
+ },
80
+ "digest": {
81
+ "type": "string",
82
+ "pattern": "^[a-f0-9]{64}$"
83
+ }
84
+ },
85
+ "required": [
86
+ "directory",
87
+ "files",
88
+ "digest"
89
+ ],
90
+ "additionalProperties": false
91
+ },
92
+ "backup": {
93
+ "type": "object",
94
+ "properties": {
95
+ "backupId": {
96
+ "type": "string",
97
+ "format": "uuid",
98
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
99
+ },
100
+ "checksum": {
101
+ "type": "string",
102
+ "pattern": "^[a-f0-9]{64}$"
103
+ }
104
+ },
105
+ "required": [
106
+ "backupId",
107
+ "checksum"
108
+ ],
109
+ "additionalProperties": false
110
+ },
111
+ "observedMetadata": {
112
+ "type": "object",
113
+ "properties": {
114
+ "lastUpdatedOn": {
115
+ "type": [
116
+ "string",
117
+ "null"
118
+ ]
119
+ },
120
+ "lastUpdatedBy": {
121
+ "type": [
122
+ "string",
123
+ "null"
124
+ ]
125
+ }
126
+ },
127
+ "required": [
128
+ "lastUpdatedOn",
129
+ "lastUpdatedBy"
130
+ ],
131
+ "additionalProperties": false
132
+ },
133
+ "lastSuccessfulImport": {
134
+ "anyOf": [
135
+ {
136
+ "type": "object",
137
+ "properties": {
138
+ "at": {
139
+ "type": "string",
140
+ "format": "date-time",
141
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
142
+ },
143
+ "runId": {
144
+ "type": "string",
145
+ "format": "uuid",
146
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
147
+ },
148
+ "snapshot": {
149
+ "type": "object",
150
+ "properties": {
151
+ "directory": {
152
+ "type": "string",
153
+ "minLength": 1,
154
+ "maxLength": 1024
155
+ },
156
+ "files": {
157
+ "type": "object",
158
+ "propertyNames": {
159
+ "type": "string",
160
+ "minLength": 1,
161
+ "maxLength": 1024
162
+ },
163
+ "additionalProperties": {
164
+ "type": "string",
165
+ "pattern": "^[a-f0-9]{64}$"
166
+ }
167
+ },
168
+ "digest": {
169
+ "type": "string",
170
+ "pattern": "^[a-f0-9]{64}$"
171
+ }
172
+ },
173
+ "required": [
174
+ "directory",
175
+ "files",
176
+ "digest"
177
+ ],
178
+ "additionalProperties": false
179
+ }
180
+ },
181
+ "required": [
182
+ "at",
183
+ "runId",
184
+ "snapshot"
185
+ ],
186
+ "additionalProperties": false
187
+ },
188
+ {
189
+ "type": "null"
190
+ }
191
+ ]
192
+ },
193
+ "status": {
194
+ "type": "string",
195
+ "enum": [
196
+ "ready",
197
+ "importing",
198
+ "verification_failed",
199
+ "outcome_unknown",
200
+ "invalidated"
201
+ ]
202
+ },
203
+ "importingRunId": {
204
+ "anyOf": [
205
+ {
206
+ "type": "string",
207
+ "format": "uuid",
208
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
209
+ },
210
+ {
211
+ "type": "null"
212
+ }
213
+ ]
214
+ }
215
+ },
216
+ "required": [
217
+ "schemaVersion",
218
+ "syncId",
219
+ "revision",
220
+ "projectRoot",
221
+ "projectId",
222
+ "environment",
223
+ "targetDigest",
224
+ "target",
225
+ "sourceDir",
226
+ "toolchainDigest",
227
+ "runtimeVersion",
228
+ "compilerVersion",
229
+ "exportedAt",
230
+ "baseline",
231
+ "backup",
232
+ "observedMetadata",
233
+ "lastSuccessfulImport",
234
+ "status",
235
+ "importingRunId"
236
+ ],
237
+ "additionalProperties": false
238
+ }
@@ -1,5 +1,3 @@
1
1
  # Blank application
2
2
 
3
- English | [Українська](README.uk.md)
4
-
5
3
  This is a real Oracle SQLcl-generated starter reference with its original `.apex/apexlang.json`. New projects run the real generator; they do not fabricate metadata from this fixture. Requires SQLcl 26.1.2+ and Java 21. Authentication remains the Oracle starter default. Local compilation has been verified; deployment requires an explicitly configured APEX 26.1+ workspace/schema.
@@ -1,7 +1,5 @@
1
1
  # Customer CRM
2
2
 
3
- English | [Українська](README.uk.md)
4
-
5
3
  A real APEXlang overlay on the Oracle-generated starter: customers report (page 10), dashboard (20), modal form (80), server validation package/trigger, immutable table migration, utPLSQL tests and authenticated browser CRUD with unique synthetic records. It retains default authentication; configure a dedicated test account through authorized APEX administration. No password or ORDS endpoint is included.
6
4
 
7
- `project init ./crm --template customer-crm` generates fresh Oracle metadata and applies the reviewed overlay. Local SQLcl compilation passed on 26.1.2 with MMD 26.1.0+3102. Live target deployment, test selectors and SQL results still need integration evidence. Required suites are SQL and E2E. Configure the environment and authorized test grants, provide utPLSQL for the SQL suite, then authenticate interactively. Control tables are needed only for explicitly selected database coordination; local coordination is the default.
5
+ `project init ./crm --template customer-crm` generates fresh Oracle metadata and applies the reviewed overlay. Local SQLcl compilation passed on 26.1.2 with MMD 26.1.0+3102. Live target deployment, test selectors and SQL results still need integration evidence. Required suites are SQL and E2E. Configure the environment and authorized test grants, provide utPLSQL for the SQL suite, then authenticate interactively.
@@ -1,7 +1,5 @@
1
1
  # Adopt an existing application
2
2
 
3
- English | [Українська](README.uk.md)
4
-
5
3
  Create an `existing-app` project skeleton, configure the exact existing test target and named read connection, then run `project adopt --env dev --app-id ID`. It exports through a private staging directory and installs only into a new source directory. If that directory exists, adoption fails with LOCAL_EDITS_CONFLICT; local edits are preserved. For later exports use a fresh `apex export --env dev --output review/export-UUID` directory.
6
4
 
7
5
  Keep `.apex`, Oracle IDs, shared LOVs, authentication and all page files under version control. `apex diff --env dev` compares source file hashes with a fresh Oracle export. It is a textual inventory, not proof of complete semantic component coverage. SQLcl exports use original IDs and omit export timestamps; no invented normalization removes metadata.
@@ -0,0 +1,13 @@
1
+ Copyright Eemeli Aro <eemeli@gmail.com>
2
+
3
+ Permission to use, copy, modify, and/or distribute this software for any purpose
4
+ with or without fee is hereby granted, provided that the above copyright notice
5
+ and this permission notice appear in all copies.
6
+
7
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
8
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
9
+ FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
10
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
11
+ OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
12
+ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
13
+ THIS SOFTWARE.
@@ -2,20 +2,21 @@
2
2
  import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
3
3
  import {
4
4
  dispatch,
5
+ executeJob,
6
+ failQueuedJob,
7
+ internalOperations,
5
8
  schemas
6
- } from "./chunk-TXVQLYTH.mjs";
7
- import {
8
- executeJob
9
- } from "./chunk-BD2AVCFU.mjs";
10
- import "./chunk-4MYHJ2IU.mjs";
11
- import "./chunk-S24BD6PY.mjs";
9
+ } from "./chunk-5PCC7GZM.mjs";
10
+ import "./chunk-TMSMKVRP.mjs";
11
+ import "./chunk-RBJJNQ5O.mjs";
12
12
  import {
13
13
  loadProject
14
- } from "./chunk-3MDDJFXN.mjs";
14
+ } from "./chunk-N4C2SKCN.mjs";
15
+ import "./chunk-JYN3YHP3.mjs";
15
16
  import {
16
17
  Fault,
17
18
  failure
18
- } from "./chunk-2Z3BZF66.mjs";
19
+ } from "./chunk-WPS3CSQJ.mjs";
19
20
 
20
21
  // packages/cli/src/main.ts
21
22
  var argv = process.argv.slice(2);
@@ -30,29 +31,36 @@ var positional = {
30
31
  "jobs.cancel": ["id"],
31
32
  "artifacts.read": ["id"]
32
33
  };
34
+ var groupAliases = { job: "jobs", reference: "docs" };
35
+ var variadic = { "docs.search": "query" };
33
36
  function operationFrom(args) {
34
- const first = args[0];
35
- if (["doctor", "version", "setup"].includes(first ?? "")) return { op: first, start: 1 };
37
+ const first = groupAliases[args[0] ?? ""] ?? args[0];
38
+ if (["doctor", "version", "setup", "ship", "status"].includes(first ?? "")) return { op: first, start: 1 };
36
39
  if (first === "test" && ["unit", "sql", "api", "e2e", "all"].includes(args[1] ?? ""))
37
40
  return { op: "test.run", start: 2, suite: args[1] };
38
- return { op: args.slice(0, 2).join("."), start: 2 };
41
+ return { op: [first, args[1]].join("."), start: 2 };
39
42
  }
43
+ var listed = (op) => !internalOperations.includes(op);
40
44
  var selected = operationFrom(argv);
45
+ function knownHelpTarget() {
46
+ const first = argv[0] ?? "";
47
+ return first.startsWith("-") || ["mcp", "test"].includes(first) || selected.op in schemas || // A command group alone (apexrest deploy --help) lists the general help.
48
+ (argv[1] ?? "-").startsWith("-") && Object.keys(schemas).some((op) => op.startsWith((groupAliases[first] ?? first) + "."));
49
+ }
41
50
  function help() {
42
51
  const key = selected.op;
43
52
  const lines = [
44
53
  "APEXREST for Codex \u2014 independent Oracle APEX developer tools",
45
54
  "Usage: apexrest [command] [options]",
46
- "Run apexrest in a terminal to manage tools, plugins and saved SQLcl connections.",
47
- " tui [--project PATH] Open the terminal UI explicitly",
48
- " panel tui [--project PATH] Live development panel inside Codex CLI",
49
55
  "",
50
- ...Object.keys(schemas).filter((x) => x !== "test.run").map((x) => " " + x.replace(".", " ")),
56
+ ...Object.keys(schemas).filter((x) => x !== "test.run" && listed(x)).map((x) => " " + x.replace(".", " ")),
51
57
  " test unit|sql|api|e2e|all [--env NAME]",
58
+ " job status|cancel <id> (alias of jobs ...)",
52
59
  " mcp",
53
60
  "",
54
61
  "--json emits one structured JSON result; diagnostics use stderr.",
55
62
  "Use --project PATH for project operations. Environment never defaults.",
63
+ "ship --env NAME --mode plan|apply --user-request TEXT validates, plans and (apply) imports with a plan-bound grant.",
56
64
  "Exit codes: 0 success, 1 failed, 2 input, 3 dependency, 4 approval, 5 conflict, 6 unknown/cancelled."
57
65
  ];
58
66
  if (schemas[key])
@@ -64,10 +72,19 @@ function help() {
64
72
  ),
65
73
  ...(positional[key] ?? []).map((p) => " <" + p + ">")
66
74
  );
75
+ if (key === "apex.sync")
76
+ lines.push(
77
+ "",
78
+ "--env NAME --action init|status|refresh|invalidate",
79
+ "status is local only. init reuses a valid baseline; refresh refuses dirty sources.",
80
+ "The initial SQL backup restores the baseline only. Interrupted imports require reconciliation."
81
+ );
82
+ if (key === "apex.diff")
83
+ lines.push("", "--comparison auto|live: auto uses an active local checkpoint; live explicitly exports.");
67
84
  if (key === "docs.search")
68
85
  lines.push(
69
86
  "",
70
- "--corpus apexlang|components|patterns selects the offline catalog (default: apexlang).",
87
+ "--corpus apexlang|components|patterns|blocks|blueprints selects the offline catalog (default: apexlang).",
71
88
  "Filter with --kind, --family and --version; follow nextResultOffset using --offset for more hits."
72
89
  );
73
90
  if (key === "docs.read")
@@ -76,16 +93,31 @@ function help() {
76
93
  "Read a result ID, grammar:production-name, component: ID or pattern: ID.",
77
94
  "Follow nextOffset using --offset; catalog navigationOffset recovers all dependency links."
78
95
  );
79
- if (key === "panel.action")
96
+ if (key === "panel.status")
80
97
  lines.push(
81
98
  "",
82
- "Pass --action as one JSON object. Supported kinds: preferences, sqlcl, connection, cancel-job, validate, test, browser, plan.",
83
- `Example: apexrest panel action --action '{"kind":"validate"}' --project PATH --json`
99
+ "Read-only local snapshot: settings, connections, Git changes, sync state, jobs and deployment journal.",
100
+ "No server, worker, job or database call is started. Same as: apexrest status --detail project --project PATH --json"
84
101
  );
85
102
  if (key === "jobs.status")
86
103
  lines.push(
87
- "Use --wait-seconds 25 to wait for an existing job without repeated status calls (default: immediate)."
104
+ "Use --wait-seconds N (up to 120) to wait for an existing job without repeated status calls (default: immediate)."
105
+ );
106
+ if (key === "ship")
107
+ lines.push(
108
+ "",
109
+ "mode plan: validate with the Oracle compiler, read the target and write .apexrest/plans/ship-<id>.json for review.",
110
+ "mode apply: non-production only. Records a deploy grant bound to this project, target and plan digest with the",
111
+ "user's literal --user-request, imports with backup/drift/identity checks, verifies, runs required suites, then",
112
+ "removes the grant. Production targets require the protected CI approval path (deploy apply)."
113
+ );
114
+ if (key === "status")
115
+ lines.push(
116
+ "",
117
+ "--detail doctor probes local tools; --detail project (default) prints the read-only project snapshot."
88
118
  );
119
+ if (key === "apex.validate")
120
+ lines.push("", "Runs in-process and returns structured diagnostics (file, line, column, type, hint).");
89
121
  if (key === "dependencies.install")
90
122
  lines.push(
91
123
  "",
@@ -124,7 +156,7 @@ function help() {
124
156
  "cli: SQLcl subprocess (default). mcp: official SQLcl stdio server (sql -mcp).",
125
157
  "direct: Oracle listener connection (default). ords: SQLcl OREST over HTTP(S), without port 1521.",
126
158
  "ORDS uses SQLcl CLI; select --mode cli with --database-transport ords.",
127
- "Configure the ORDS URL, username and password for each reference using connection add or panel Settings.",
159
+ "Configure the ORDS URL, username and password for each reference using connection add.",
128
160
  "--mcp-restrict-level 4|1: 4 is the default; 1 explicitly permits scripts but blocks host commands.",
129
161
  "Saved in APEXREST_HOME/sqlcl.json. No connection, download or Codex registration is changed.",
130
162
  "SQLcl MCP can write its own database audit log on connected operations. No silent CLI fallback."
@@ -132,28 +164,26 @@ function help() {
132
164
  console.log(lines.join("\n"));
133
165
  }
134
166
  try {
135
- if (argv.includes("--help") || argv.includes("-h")) help();
136
- else if (argv[0] === "tui" || !argv.length && process.stdin.isTTY && process.stdout.isTTY && process.env.TERM !== "dumb") {
137
- if (argv.length > 1 && (argv.length !== 3 || argv[1] !== "--project" || !argv[2] || argv[2].startsWith("--")))
138
- throw new Fault("INVALID_INPUT", "Usage: apexrest tui [--project PATH]", 2);
139
- const { runTui } = await import("./chunk-7RZW5QV2.mjs");
140
- await runTui(argv[2] ? { project: argv[2] } : {});
167
+ if (argv.includes("--help") || argv.includes("-h")) {
168
+ if (!knownHelpTarget())
169
+ throw new Fault(
170
+ "INVALID_INPUT",
171
+ `Unknown command: ${argv.filter((a) => !a.startsWith("-")).join(" ")}. Use apexrest --help.`,
172
+ 2
173
+ );
174
+ help();
141
175
  } else if (!argv.length) help();
142
- else if (argv[0] === "panel" && argv[1] === "tui") {
143
- if (argv.length !== 2 && (argv.length !== 4 || argv[2] !== "--project" || !argv[3]))
144
- throw new Fault("INVALID_INPUT", "Usage: apexrest panel tui [--project PATH]", 2);
145
- const { runPanelTui } = await import("./chunk-SPZVXAM5.mjs");
146
- await runPanelTui(argv[3] ?? process.cwd());
147
- } else if (argv[0] === "--panel-worker") {
148
- if (argv.length !== 2 || !argv[1]) throw new Fault("INVALID_INPUT", "Invalid panel worker request.", 2);
149
- const { servePanel } = await import("./chunk-IX6V6ZGW.mjs");
150
- await servePanel(argv[1]);
151
- } else if (argv[0] === "--job-worker") {
176
+ else if (argv[0] === "--job-worker") {
152
177
  if (argv.length !== 3) throw new Fault("INVALID_INPUT", "Invalid internal job request.", 2);
153
- await executeJob(await loadProject(argv[1]), argv[2], dispatch);
178
+ try {
179
+ await executeJob(await loadProject(argv[1]), argv[2], dispatch);
180
+ } catch (error) {
181
+ await failQueuedJob(argv[1], argv[2], error).catch(() => void 0);
182
+ throw error;
183
+ }
154
184
  } else if (argv[0] === "mcp") {
155
185
  if (argv.length !== 1) throw new Fault("INVALID_INPUT", "mcp accepts no arguments.", 2);
156
- const { startMcp } = await import("./chunk-YLXJ6H4J.mjs");
186
+ const { startMcp } = await import("./chunk-QKYF6N6U.mjs");
157
187
  await startMcp();
158
188
  } else {
159
189
  const selectedOp = argv[0] === "--version" ? { op: "version", start: 1 } : selected;
@@ -172,10 +202,12 @@ try {
172
202
  "nativeOnly",
173
203
  "keepRuntime",
174
204
  "headed",
175
- "saved"
205
+ "saved",
206
+ "workingCopy",
207
+ "includeUnresolved"
176
208
  ]);
177
209
  const numbers = /* @__PURE__ */ new Set(["appId", "offset", "limit", "waitSeconds"]);
178
- let index = 0;
210
+ let index = 0, rest;
179
211
  for (let i = selectedOp.start; i < argv.length; i++) {
180
212
  const token = argv[i];
181
213
  if (token.startsWith("--")) {
@@ -188,12 +220,16 @@ try {
188
220
  const value = argv[++i];
189
221
  if (!value || value.startsWith("--"))
190
222
  throw new Fault("INVALID_INPUT", `Missing value for ${token}`, 2);
191
- input[name] = name === "action" && selectedOp.op === "panel.action" ? JSON.parse(value) : numbers.has(name) ? Number(value) : value;
223
+ input[name] = numbers.has(name) ? Number(value) : value;
192
224
  }
193
225
  } else {
194
- const field = positional[selectedOp.op]?.[index++];
195
- if (!field || field in input) throw new Fault("INVALID_INPUT", `Unexpected argument: ${token}`, 2);
196
- input[field] = token;
226
+ const field = positional[selectedOp.op]?.[index];
227
+ if (field && !(field in input)) {
228
+ index++;
229
+ input[field] = token;
230
+ if (variadic[selectedOp.op] === field) rest = field;
231
+ } else if (!field && rest) input[rest] = input[rest] + " " + token;
232
+ else throw new Fault("INVALID_INPUT", `Unexpected argument: ${token}`, 2);
197
233
  }
198
234
  }
199
235
  const result = await dispatch(selectedOp.op, input);