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.
- package/README.md +90 -134
- package/dist/codex-compat/.claude-plugin/marketplace.json +20 -0
- package/dist/codex-compat/plugins/apexrest-apex/.claude-plugin/plugin.json +28 -0
- package/dist/codex-compat/plugins/apexrest-apex/.codex-plugin/plugin.json +7 -7
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/evidence/block%3Aanalytics%2Fstatus-summary%401.0.0.json +19 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/evidence/block%3Acrud%2Freport-dialog%401.0.0.json +19 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/evidence/block%3Aread%2Fdetail%401.0.0.json +19 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/evidence/block%3Aread%2Ffiltered-list%401.0.0.json +19 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/evidence/block%3Aread%2Fhistory%401.0.0.json +19 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/evidence/block%3Aread%2Fmaster-detail%401.0.0.json +19 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/generator.json +5 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/manifest.json +29 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/analytics/status-summary/1.0.0/block.yaml +59 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/analytics/status-summary/1.0.0/renderer.json +14 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/crud/report-dialog/1.0.0/block.yaml +66 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/crud/report-dialog/1.0.0/renderer.json +14 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/read/detail/1.0.0/block.yaml +59 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/read/detail/1.0.0/renderer.json +14 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/read/filtered-list/1.0.0/block.yaml +59 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/read/filtered-list/1.0.0/renderer.json +14 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/read/history/1.0.0/block.yaml +59 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/read/history/1.0.0/renderer.json +14 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/read/master-detail/1.0.0/block.yaml +59 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/packages/read/master-detail/1.0.0/renderer.json +14 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/profiles.json +10 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/blocks/revocations.json +1 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/blueprints/crm.yaml +172 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/blueprints/index.json +12 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/blueprints/service-desk.yaml +120 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-allocation.schema.json +33 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-block.schema.json +208 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-blueprint.schema.json +665 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-command.schema.json +106 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-contract.schema.json +174 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-diagnostic.schema.json +26 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-entity.schema.json +142 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-evidence.schema.json +95 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-field.schema.json +54 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-instance.schema.json +117 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-lock.schema.json +54 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-operation.schema.json +55 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-owner.schema.json +105 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-parameters.schema.json +61 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-plan.schema.json +1011 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-renderer.schema.json +69 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/composer-state.schema.json +146 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/deploy-plan.schema.json +754 -169
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/operations.schema.json +525 -256
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/policy.schema.json +21 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/project.schema.json +17 -7
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/sync-state.schema.json +238 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/templates/blank-app/README.md +0 -2
- package/dist/codex-compat/plugins/apexrest-apex/resources/templates/customer-crm/README.md +1 -3
- package/dist/codex-compat/plugins/apexrest-apex/resources/templates/existing-app/README.md +0 -2
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__yaml__LICENSE +13 -0
- package/dist/codex-compat/plugins/apexrest-apex/runtime/apexrest.mjs +81 -45
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-5PCC7GZM.mjs +4090 -0
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-BVPAS3TD.mjs +18 -0
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-CVMECW6D.mjs +65 -0
- package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-3MDDJFXN.mjs → chunk-JYN3YHP3.mjs} +4220 -10616
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-KGTE7Q5Y.mjs +23 -0
- package/dist/{runtime/chunk-HOKFFGSZ.mjs → codex-compat/plugins/apexrest-apex/runtime/chunk-KKRFM7Q7.mjs} +21 -4
- package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-2VBZESVC.mjs → chunk-MNU54A7W.mjs} +7 -1
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-N4C2SKCN.mjs +6912 -0
- package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-WK5GP4ES.mjs → chunk-P3CVQAZW.mjs} +822 -102
- package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-2ZUNLCLK.mjs → chunk-QKYF6N6U.mjs} +210 -112
- package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-S24BD6PY.mjs → chunk-RBJJNQ5O.mjs} +7 -7
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-TMSMKVRP.mjs +10367 -0
- package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-2Z3BZF66.mjs → chunk-WPS3CSQJ.mjs} +124 -11
- package/dist/codex-compat/plugins/apexrest-apex/runtime/mcp.mjs +5 -10
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-apexlang/SKILL.md +22 -25
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-apexlang/agents/openai.yaml +3 -3
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-apexlang/references/component-routes.md +1 -5
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-pattern-catalog/SKILL.md +4 -4
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-pattern-catalog/agents/openai.yaml +1 -1
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-pattern-catalog/references/capture-and-curation.md +2 -2
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-safety/SKILL.md +18 -0
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-safety/agents/openai.yaml +4 -0
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-setup/SKILL.md +20 -10
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-setup/agents/openai.yaml +3 -3
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-work/SKILL.md +11 -6
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-work/agents/openai.yaml +3 -3
- package/dist/resources/blocks/evidence/block%3Aanalytics%2Fstatus-summary%401.0.0.json +19 -0
- package/dist/resources/blocks/evidence/block%3Acrud%2Freport-dialog%401.0.0.json +19 -0
- package/dist/resources/blocks/evidence/block%3Aread%2Fdetail%401.0.0.json +19 -0
- package/dist/resources/blocks/evidence/block%3Aread%2Ffiltered-list%401.0.0.json +19 -0
- package/dist/resources/blocks/evidence/block%3Aread%2Fhistory%401.0.0.json +19 -0
- package/dist/resources/blocks/evidence/block%3Aread%2Fmaster-detail%401.0.0.json +19 -0
- package/dist/resources/blocks/generator.json +5 -0
- package/dist/resources/blocks/manifest.json +29 -0
- package/dist/resources/blocks/packages/analytics/status-summary/1.0.0/block.yaml +59 -0
- package/dist/resources/blocks/packages/analytics/status-summary/1.0.0/renderer.json +14 -0
- package/dist/resources/blocks/packages/crud/report-dialog/1.0.0/block.yaml +66 -0
- package/dist/resources/blocks/packages/crud/report-dialog/1.0.0/renderer.json +14 -0
- package/dist/resources/blocks/packages/read/detail/1.0.0/block.yaml +59 -0
- package/dist/resources/blocks/packages/read/detail/1.0.0/renderer.json +14 -0
- package/dist/resources/blocks/packages/read/filtered-list/1.0.0/block.yaml +59 -0
- package/dist/resources/blocks/packages/read/filtered-list/1.0.0/renderer.json +14 -0
- package/dist/resources/blocks/packages/read/history/1.0.0/block.yaml +59 -0
- package/dist/resources/blocks/packages/read/history/1.0.0/renderer.json +14 -0
- package/dist/resources/blocks/packages/read/master-detail/1.0.0/block.yaml +59 -0
- package/dist/resources/blocks/packages/read/master-detail/1.0.0/renderer.json +14 -0
- package/dist/resources/blocks/profiles.json +10 -0
- package/dist/resources/blocks/revocations.json +1 -0
- package/dist/resources/blueprints/crm.yaml +172 -0
- package/dist/resources/blueprints/index.json +12 -0
- package/dist/resources/blueprints/service-desk.yaml +120 -0
- package/dist/resources/schemas/composer-allocation.schema.json +33 -0
- package/dist/resources/schemas/composer-block.schema.json +208 -0
- package/dist/resources/schemas/composer-blueprint.schema.json +665 -0
- package/dist/resources/schemas/composer-command.schema.json +106 -0
- package/dist/resources/schemas/composer-contract.schema.json +174 -0
- package/dist/resources/schemas/composer-diagnostic.schema.json +26 -0
- package/dist/resources/schemas/composer-entity.schema.json +142 -0
- package/dist/resources/schemas/composer-evidence.schema.json +95 -0
- package/dist/resources/schemas/composer-field.schema.json +54 -0
- package/dist/resources/schemas/composer-instance.schema.json +117 -0
- package/dist/resources/schemas/composer-lock.schema.json +54 -0
- package/dist/resources/schemas/composer-operation.schema.json +55 -0
- package/dist/resources/schemas/composer-owner.schema.json +105 -0
- package/dist/resources/schemas/composer-parameters.schema.json +61 -0
- package/dist/resources/schemas/composer-plan.schema.json +1011 -0
- package/dist/resources/schemas/composer-renderer.schema.json +69 -0
- package/dist/resources/schemas/composer-state.schema.json +146 -0
- package/dist/resources/schemas/deploy-plan.schema.json +754 -169
- package/dist/resources/schemas/operations.schema.json +525 -256
- package/dist/resources/schemas/policy.schema.json +21 -0
- package/dist/resources/schemas/project.schema.json +17 -7
- package/dist/resources/schemas/sync-state.schema.json +238 -0
- package/dist/resources/templates/blank-app/README.md +0 -2
- package/dist/resources/templates/customer-crm/README.md +1 -3
- package/dist/resources/templates/existing-app/README.md +0 -2
- package/dist/resources/third-party/node_modules__yaml__LICENSE +13 -0
- package/dist/runtime/apexrest.mjs +81 -45
- package/dist/runtime/chunk-5PCC7GZM.mjs +4090 -0
- package/dist/runtime/chunk-BVPAS3TD.mjs +18 -0
- package/dist/runtime/chunk-CVMECW6D.mjs +65 -0
- package/dist/runtime/{chunk-3MDDJFXN.mjs → chunk-JYN3YHP3.mjs} +4220 -10616
- package/dist/runtime/chunk-KGTE7Q5Y.mjs +23 -0
- package/dist/{codex-compat/plugins/apexrest-apex/runtime/chunk-HOKFFGSZ.mjs → runtime/chunk-KKRFM7Q7.mjs} +21 -4
- package/dist/runtime/{chunk-2VBZESVC.mjs → chunk-MNU54A7W.mjs} +7 -1
- package/dist/runtime/chunk-N4C2SKCN.mjs +6912 -0
- package/dist/runtime/{chunk-WK5GP4ES.mjs → chunk-P3CVQAZW.mjs} +822 -102
- package/dist/runtime/{chunk-2ZUNLCLK.mjs → chunk-QKYF6N6U.mjs} +210 -112
- package/dist/runtime/{chunk-S24BD6PY.mjs → chunk-RBJJNQ5O.mjs} +7 -7
- package/dist/runtime/chunk-TMSMKVRP.mjs +10367 -0
- package/dist/runtime/{chunk-2Z3BZF66.mjs → chunk-WPS3CSQJ.mjs} +124 -11
- package/dist/runtime/mcp.mjs +5 -10
- package/package.json +14 -7
- package/README.uk.md +0 -206
- package/dist/codex-compat/plugins/apexrest-apex/resources/panel/index.html +0 -61
- package/dist/codex-compat/plugins/apexrest-apex/resources/panel/panel.css +0 -627
- package/dist/codex-compat/plugins/apexrest-apex/resources/panel/panel.js +0 -629
- package/dist/codex-compat/plugins/apexrest-apex/resources/templates/blank-app/README.uk.md +0 -5
- package/dist/codex-compat/plugins/apexrest-apex/resources/templates/customer-crm/README.uk.md +0 -7
- package/dist/codex-compat/plugins/apexrest-apex/resources/templates/database-control/install.sql +0 -17
- package/dist/codex-compat/plugins/apexrest-apex/resources/templates/existing-app/README.uk.md +0 -9
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__@playwright__test__LICENSE +0 -202
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__@playwright__test__NOTICE +0 -5
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__@types__node__LICENSE +0 -21
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__@types__yauzl__LICENSE +0 -21
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__@typescript__typescript-darwin-arm64__LICENSE +0 -55
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__@typescript__typescript-darwin-arm64__NOTICE.txt +0 -436
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__esbuild__LICENSE.md +0 -21
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__fflate__LICENSE +0 -21
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__marked__LICENSE +0 -44
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__playwright-core__LICENSE +0 -202
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__playwright-core__NOTICE +0 -5
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__playwright__LICENSE +0 -202
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__playwright__NOTICE +0 -5
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__prettier__LICENSE +0 -7
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__typescript__LICENSE +0 -55
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__typescript__NOTICE.txt +0 -436
- package/dist/codex-compat/plugins/apexrest-apex/resources/third-party/node_modules__undici-types__LICENSE +0 -21
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-4MYHJ2IU.mjs +0 -1208
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-7RZW5QV2.mjs +0 -992
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-AQZLLQ3D.mjs +0 -203
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-BD2AVCFU.mjs +0 -367
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-IX6V6ZGW.mjs +0 -18
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-NDZ2RWQU.mjs +0 -13
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-QIVPMPU3.mjs +0 -14
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-SPZVXAM5.mjs +0 -147
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-TLYYCRQA.mjs +0 -329
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-TXVQLYTH.mjs +0 -1271
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-YLXJ6H4J.mjs +0 -14
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-database/SKILL.md +0 -9
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-database/agents/openai.yaml +0 -4
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-debug/SKILL.md +0 -9
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-debug/agents/openai.yaml +0 -4
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-deploy/SKILL.md +0 -19
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-deploy/agents/openai.yaml +0 -4
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-install-dependencies/SKILL.md +0 -38
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-install-dependencies/agents/openai.yaml +0 -4
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-menu/SKILL.md +0 -28
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-menu/agents/openai.yaml +0 -4
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-menu/references/cli-catalog.md +0 -23
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-panel/SKILL.md +0 -14
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-panel/agents/openai.yaml +0 -4
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-project/SKILL.md +0 -9
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-project/agents/openai.yaml +0 -4
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-review/SKILL.md +0 -11
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-review/agents/openai.yaml +0 -4
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-test/SKILL.md +0 -29
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-test/agents/openai.yaml +0 -4
- package/dist/resources/panel/index.html +0 -61
- package/dist/resources/panel/panel.css +0 -627
- package/dist/resources/panel/panel.js +0 -629
- package/dist/resources/templates/blank-app/README.uk.md +0 -5
- package/dist/resources/templates/customer-crm/README.uk.md +0 -7
- package/dist/resources/templates/database-control/install.sql +0 -17
- package/dist/resources/templates/existing-app/README.uk.md +0 -9
- package/dist/resources/third-party/node_modules__@playwright__test__LICENSE +0 -202
- package/dist/resources/third-party/node_modules__@playwright__test__NOTICE +0 -5
- package/dist/resources/third-party/node_modules__@types__node__LICENSE +0 -21
- package/dist/resources/third-party/node_modules__@types__yauzl__LICENSE +0 -21
- package/dist/resources/third-party/node_modules__@typescript__typescript-darwin-arm64__LICENSE +0 -55
- package/dist/resources/third-party/node_modules__@typescript__typescript-darwin-arm64__NOTICE.txt +0 -436
- package/dist/resources/third-party/node_modules__esbuild__LICENSE.md +0 -21
- package/dist/resources/third-party/node_modules__fflate__LICENSE +0 -21
- package/dist/resources/third-party/node_modules__marked__LICENSE +0 -44
- package/dist/resources/third-party/node_modules__playwright-core__LICENSE +0 -202
- package/dist/resources/third-party/node_modules__playwright-core__NOTICE +0 -5
- package/dist/resources/third-party/node_modules__playwright__LICENSE +0 -202
- package/dist/resources/third-party/node_modules__playwright__NOTICE +0 -5
- package/dist/resources/third-party/node_modules__prettier__LICENSE +0 -7
- package/dist/resources/third-party/node_modules__typescript__LICENSE +0 -55
- package/dist/resources/third-party/node_modules__typescript__NOTICE.txt +0 -436
- package/dist/resources/third-party/node_modules__undici-types__LICENSE +0 -21
- package/dist/runtime/chunk-4MYHJ2IU.mjs +0 -1208
- package/dist/runtime/chunk-7RZW5QV2.mjs +0 -992
- package/dist/runtime/chunk-AQZLLQ3D.mjs +0 -203
- package/dist/runtime/chunk-BD2AVCFU.mjs +0 -367
- package/dist/runtime/chunk-IX6V6ZGW.mjs +0 -18
- package/dist/runtime/chunk-NDZ2RWQU.mjs +0 -13
- package/dist/runtime/chunk-QIVPMPU3.mjs +0 -14
- package/dist/runtime/chunk-SPZVXAM5.mjs +0 -147
- package/dist/runtime/chunk-TLYYCRQA.mjs +0 -329
- package/dist/runtime/chunk-TXVQLYTH.mjs +0 -1271
- package/dist/runtime/chunk-YLXJ6H4J.mjs +0 -14
package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-2ZUNLCLK.mjs → chunk-QKYF6N6U.mjs}
RENAMED
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
|
+
JobService,
|
|
3
4
|
dispatch,
|
|
4
5
|
schemas,
|
|
6
|
+
settleInlineJobs,
|
|
7
|
+
shutdownOracle,
|
|
5
8
|
toolCatalog
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import {
|
|
8
|
-
panelDocument
|
|
9
|
-
} from "./chunk-AQZLLQ3D.mjs";
|
|
10
|
-
import {
|
|
11
|
-
JobService
|
|
12
|
-
} from "./chunk-BD2AVCFU.mjs";
|
|
9
|
+
} from "./chunk-5PCC7GZM.mjs";
|
|
13
10
|
import {
|
|
14
11
|
ArtifactService
|
|
15
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-TMSMKVRP.mjs";
|
|
16
13
|
import {
|
|
17
14
|
VERSION
|
|
18
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-RBJJNQ5O.mjs";
|
|
16
|
+
import {
|
|
17
|
+
loadProject,
|
|
18
|
+
parse
|
|
19
|
+
} from "./chunk-N4C2SKCN.mjs";
|
|
19
20
|
import {
|
|
20
21
|
AjvJsonSchemaValidator,
|
|
21
22
|
CallToolRequestSchema,
|
|
@@ -29,14 +30,12 @@ import {
|
|
|
29
30
|
InitializeRequestSchema,
|
|
30
31
|
InitializedNotificationSchema,
|
|
31
32
|
LATEST_PROTOCOL_VERSION,
|
|
32
|
-
ListResourcesRequestSchema,
|
|
33
33
|
ListRootsResultSchema,
|
|
34
34
|
ListToolsRequestSchema,
|
|
35
35
|
LoggingLevelSchema,
|
|
36
36
|
McpError,
|
|
37
37
|
Protocol,
|
|
38
38
|
ReadBuffer,
|
|
39
|
-
ReadResourceRequestSchema,
|
|
40
39
|
SUPPORTED_PROTOCOL_VERSIONS,
|
|
41
40
|
SetLevelRequestSchema,
|
|
42
41
|
assertClientRequestTaskCapability,
|
|
@@ -44,19 +43,17 @@ import {
|
|
|
44
43
|
external_exports,
|
|
45
44
|
getLiteralValue,
|
|
46
45
|
getObjectShape,
|
|
47
|
-
loadProject,
|
|
48
46
|
mergeCapabilities,
|
|
49
|
-
parse,
|
|
50
47
|
safeParse,
|
|
51
48
|
serializeMessage
|
|
52
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-JYN3YHP3.mjs";
|
|
53
50
|
import {
|
|
54
51
|
Fault,
|
|
55
52
|
failure,
|
|
56
53
|
hash,
|
|
57
54
|
sanitized,
|
|
58
55
|
success
|
|
59
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-WPS3CSQJ.mjs";
|
|
60
57
|
|
|
61
58
|
// node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
|
|
62
59
|
var ExperimentalServerTasks = class {
|
|
@@ -717,8 +714,16 @@ import { fileURLToPath } from "node:url";
|
|
|
717
714
|
// packages/mcp/src/output.ts
|
|
718
715
|
var inlineLimit = 8192;
|
|
719
716
|
var readerLimit = 32768;
|
|
720
|
-
var panelResultKey = "apexrest/panelResult";
|
|
721
717
|
var archives = /* @__PURE__ */ new Map();
|
|
718
|
+
var pruneIntervalMs = 36e5;
|
|
719
|
+
var pruned = /* @__PURE__ */ new Map();
|
|
720
|
+
async function pruneArchives(service, project, now = Date.now()) {
|
|
721
|
+
const last = pruned.get(project);
|
|
722
|
+
if (last !== void 0 && now - last < pruneIntervalMs) return;
|
|
723
|
+
pruned.set(project, now);
|
|
724
|
+
if (pruned.size > 32) pruned.delete(pruned.keys().next().value);
|
|
725
|
+
await service.prune("results").catch(() => void 0);
|
|
726
|
+
}
|
|
722
727
|
function preview(value, depth = 0) {
|
|
723
728
|
if (Array.isArray(value)) return { count: value.length };
|
|
724
729
|
if (!value || typeof value !== "object") return typeof value === "string" ? value.slice(0, 400) : value;
|
|
@@ -747,25 +752,65 @@ function preview(value, depth = 0) {
|
|
|
747
752
|
"scope",
|
|
748
753
|
"compiler",
|
|
749
754
|
"approval",
|
|
750
|
-
"backupRequired"
|
|
755
|
+
"backupRequired",
|
|
756
|
+
"mode",
|
|
757
|
+
"backupStrategy",
|
|
758
|
+
"syncId",
|
|
759
|
+
"revision",
|
|
760
|
+
"exportedAt",
|
|
761
|
+
"dirty",
|
|
762
|
+
"blocked",
|
|
763
|
+
"blockedReason",
|
|
764
|
+
"serverFreshness",
|
|
765
|
+
"backupId",
|
|
766
|
+
"importingRunId",
|
|
767
|
+
"phase",
|
|
768
|
+
"runner",
|
|
769
|
+
"planId",
|
|
770
|
+
"planDigest",
|
|
771
|
+
"planPath",
|
|
772
|
+
"runId",
|
|
773
|
+
"warningCount"
|
|
751
774
|
]) {
|
|
752
775
|
const entry = data[key];
|
|
753
776
|
if (["string", "number", "boolean"].includes(typeof entry))
|
|
754
777
|
result[key] = typeof entry === "string" ? entry.slice(0, 400) : entry;
|
|
755
778
|
}
|
|
756
|
-
for (const key of ["jobs", "deployments", "diagnostics", "artifacts", "verification"])
|
|
779
|
+
for (const key of ["sync", "jobs", "deployments", "diagnostics", "artifacts", "verification"])
|
|
757
780
|
if (Array.isArray(data[key])) result[key + "Count"] = data[key].length;
|
|
758
781
|
if (Array.isArray(data.diagnostics))
|
|
759
|
-
result.diagnostics = data.diagnostics.slice(0,
|
|
782
|
+
result.diagnostics = data.diagnostics.slice(0, 5).map(
|
|
760
783
|
(entry) => entry && typeof entry === "object" ? Object.fromEntries(
|
|
761
|
-
["severity", "code", "message", "file"].filter((key) => typeof entry[key]
|
|
784
|
+
["severity", "code", "message", "file", "line", "column", "type", "hint"].filter((key) => ["string", "number"].includes(typeof entry[key])).map((key) => [key, typeof entry[key] === "string" ? entry[key].slice(0, 600) : entry[key]])
|
|
762
785
|
) : String(entry).slice(0, 300)
|
|
763
786
|
);
|
|
787
|
+
for (const key of ["application", "grant", "verification", "sources"])
|
|
788
|
+
if (data[key] && typeof data[key] === "object" && JSON.stringify(data[key]).length <= 1200)
|
|
789
|
+
result[key] = data[key];
|
|
790
|
+
if (Array.isArray(data.phases) && JSON.stringify(data.phases).length <= 1200) result.phases = data.phases;
|
|
764
791
|
for (const key of ["artifacts", "nextActions", "risks"])
|
|
765
792
|
if (Array.isArray(data[key])) {
|
|
766
793
|
result[key] = data[key].slice(0, 4).map((entry) => String(entry).slice(0, 200));
|
|
767
794
|
result[key + "Omitted"] = Math.max(0, data[key].length - 4);
|
|
768
795
|
}
|
|
796
|
+
for (const key of ["connections", "permissions", "changes", "toolchain"])
|
|
797
|
+
if (data[key] && typeof data[key] === "object") {
|
|
798
|
+
const value2 = data[key];
|
|
799
|
+
if (JSON.stringify(value2).length <= 1200) result[key] = value2;
|
|
800
|
+
else if (key === "connections") result.connections = { count: Object.keys(value2).length };
|
|
801
|
+
else if (key === "permissions")
|
|
802
|
+
result.permissions = {
|
|
803
|
+
activeGrantCount: Array.isArray(value2.activeGrants) ? value2.activeGrants.length : 0
|
|
804
|
+
};
|
|
805
|
+
else if (key === "changes")
|
|
806
|
+
result.changes = {
|
|
807
|
+
status: value2.status,
|
|
808
|
+
fileCount: Array.isArray(value2.files) ? value2.files.length : 0
|
|
809
|
+
};
|
|
810
|
+
}
|
|
811
|
+
if (data.lastSuccessfulImport && typeof data.lastSuccessfulImport === "object")
|
|
812
|
+
result.lastSuccessfulImport = data.lastSuccessfulImport;
|
|
813
|
+
if (data.workingCopy && typeof data.workingCopy === "object") result.workingCopy = data.workingCopy;
|
|
769
814
|
if (depth < 2 && data.result && typeof data.result === "object")
|
|
770
815
|
result.result = preview(data.result, depth + 1);
|
|
771
816
|
if (data.operation === "deploy.plan" && data.data && depth < 2) result.data = preview(data.data, depth + 1);
|
|
@@ -797,20 +842,16 @@ function preview(value, depth = 0) {
|
|
|
797
842
|
async function toolOutput(original, project) {
|
|
798
843
|
const full = sanitized(original);
|
|
799
844
|
const serialized = JSON.stringify(full);
|
|
800
|
-
const
|
|
801
|
-
const reader = ["docs.read", "artifacts.read"].includes(full.operation);
|
|
845
|
+
const reader = ["docs.read", "artifacts.read", "reference"].includes(full.operation);
|
|
802
846
|
let result = full;
|
|
803
847
|
if (serialized.length > (reader ? readerLimit : inlineLimit)) {
|
|
804
848
|
let artifactId;
|
|
805
849
|
let capturedRunId;
|
|
806
|
-
let recoveryError;
|
|
807
850
|
try {
|
|
808
851
|
if (!project) throw new Error("No project is available for a local result artifact.");
|
|
809
852
|
const service = new ArtifactService(await loadProject(project));
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
stable.data = { ...full.data, updatedAt: "" };
|
|
813
|
-
const key = hash(project + JSON.stringify(stable));
|
|
853
|
+
await pruneArchives(service, project);
|
|
854
|
+
const key = hash(project + JSON.stringify({ ...full, runId: "" }));
|
|
814
855
|
const cached = archives.get(key);
|
|
815
856
|
if (cached && await service.read(cached.artifactId, 0, 1).then(
|
|
816
857
|
() => true,
|
|
@@ -824,16 +865,17 @@ async function toolOutput(original, project) {
|
|
|
824
865
|
if (archives.size > 32) archives.delete(archives.keys().next().value);
|
|
825
866
|
}
|
|
826
867
|
} catch {
|
|
827
|
-
|
|
868
|
+
artifactId = void 0;
|
|
828
869
|
}
|
|
829
870
|
result = {
|
|
830
871
|
...full,
|
|
831
872
|
summary: full.summary.slice(0, 600),
|
|
832
|
-
diagnostics: full.diagnostics.slice(0, 5)
|
|
873
|
+
diagnostics: full.diagnostics.slice(0, 5),
|
|
833
874
|
artifacts: artifactId ? [artifactId] : [],
|
|
834
|
-
nextActions:
|
|
835
|
-
|
|
836
|
-
|
|
875
|
+
nextActions: [
|
|
876
|
+
...full.nextActions.slice(0, 3),
|
|
877
|
+
artifactId ? "For omitted details, use apexrest_artifact_read with output.artifactId and the same project. Follow nextOffset as needed; do not repeat the operation." : "The complete result could not be archived. Inspect the existing local operation record; do not rerun a completed operation."
|
|
878
|
+
],
|
|
837
879
|
data: {
|
|
838
880
|
...preview(full.data),
|
|
839
881
|
output: {
|
|
@@ -848,7 +890,7 @@ async function toolOutput(original, project) {
|
|
|
848
890
|
if (JSON.stringify(result).length > inlineLimit) {
|
|
849
891
|
const data = result.data;
|
|
850
892
|
result.data = Object.fromEntries(
|
|
851
|
-
["id", "jobId", "status", "ok", "output"].filter((key) => data[key] !== void 0).map((key) => [key, data[key]])
|
|
893
|
+
["id", "jobId", "status", "phase", "ok", "output"].filter((key) => data[key] !== void 0).map((key) => [key, data[key]])
|
|
852
894
|
);
|
|
853
895
|
if (data.result && typeof data.result === "object") {
|
|
854
896
|
const nested = data.result;
|
|
@@ -856,17 +898,19 @@ async function toolOutput(original, project) {
|
|
|
856
898
|
["id", "ok", "status", "exitCode", "operation", "summary"].filter((field) => ["string", "number", "boolean"].includes(typeof nested[field])).map((field) => [field, nested[field]])
|
|
857
899
|
);
|
|
858
900
|
}
|
|
901
|
+
if (JSON.stringify(result).length > inlineLimit)
|
|
902
|
+
result.diagnostics = result.diagnostics.map((d) => ({ ...d, message: d.message.slice(0, 400) }));
|
|
859
903
|
}
|
|
860
904
|
}
|
|
861
905
|
return {
|
|
862
906
|
isError: !result.ok,
|
|
863
|
-
content: [{ type: "text", text: result === full ? serialized : JSON.stringify(result) }]
|
|
864
|
-
...panel ? { _meta: { [panelResultKey]: full } } : {}
|
|
907
|
+
content: [{ type: "text", text: result === full ? serialized : JSON.stringify(result) }]
|
|
865
908
|
};
|
|
866
909
|
}
|
|
867
910
|
|
|
868
911
|
// packages/mcp/src/job-tools.ts
|
|
869
912
|
var jobWaitSeconds = external_exports.number().int().min(0).max(30).default(25).describe("Wait for the result or return the existing jobId; default 25 seconds, 0 queues immediately.");
|
|
913
|
+
var shipWaitSeconds = external_exports.number().int().min(0).max(120).default(25).describe("Wait for the result or return the existing jobId; default 25 seconds, 0 queues immediately.");
|
|
870
914
|
var completedResultSchema = external_exports.object({
|
|
871
915
|
schemaVersion: external_exports.literal(1),
|
|
872
916
|
ok: external_exports.boolean(),
|
|
@@ -879,8 +923,23 @@ var completedResultSchema = external_exports.object({
|
|
|
879
923
|
severity: external_exports.enum(["error", "warning", "info"]),
|
|
880
924
|
code: external_exports.string(),
|
|
881
925
|
message: external_exports.string(),
|
|
882
|
-
file: external_exports.string().optional()
|
|
883
|
-
|
|
926
|
+
file: external_exports.string().optional(),
|
|
927
|
+
line: external_exports.number().int().optional(),
|
|
928
|
+
column: external_exports.number().int().optional(),
|
|
929
|
+
type: external_exports.string().optional(),
|
|
930
|
+
hint: external_exports.string().optional(),
|
|
931
|
+
validValues: external_exports.array(external_exports.string()).optional()
|
|
932
|
+
}).transform(({ severity, code, message, file, line, column, type, hint, validValues }) => ({
|
|
933
|
+
severity,
|
|
934
|
+
code,
|
|
935
|
+
message,
|
|
936
|
+
...file !== void 0 ? { file } : {},
|
|
937
|
+
...line !== void 0 ? { line } : {},
|
|
938
|
+
...column !== void 0 ? { column } : {},
|
|
939
|
+
...type !== void 0 ? { type } : {},
|
|
940
|
+
...hint !== void 0 ? { hint } : {},
|
|
941
|
+
...validValues !== void 0 ? { validValues } : {}
|
|
942
|
+
}))
|
|
884
943
|
),
|
|
885
944
|
artifacts: external_exports.array(external_exports.string()),
|
|
886
945
|
nextActions: external_exports.array(external_exports.string()),
|
|
@@ -896,15 +955,28 @@ var completedResultSchema = external_exports.object({
|
|
|
896
955
|
])
|
|
897
956
|
});
|
|
898
957
|
function jobToolResult(operation, job) {
|
|
899
|
-
|
|
958
|
+
const active = job.status === "queued" || job.status === "running" ? job.status : void 0;
|
|
959
|
+
if (!active && job.result !== void 0) {
|
|
900
960
|
const nested = completedResultSchema.safeParse(job.result);
|
|
901
961
|
if (nested.success && nested.data.operation === operation) return { ...nested.data, data: job };
|
|
902
962
|
}
|
|
903
|
-
const nextActions = typeof job.nextAction === "string" ? [job.nextAction] : ["Read
|
|
904
|
-
if (job.status === "
|
|
963
|
+
const nextActions = typeof job.nextAction === "string" ? [job.nextAction] : ["Read apexrest_job action:status with this jobId; inspect the existing operation before any retry."];
|
|
964
|
+
if (job.status === "completed") {
|
|
965
|
+
const result2 = failure(
|
|
966
|
+
operation,
|
|
967
|
+
new Fault(
|
|
968
|
+
"JOB_RESULT_UNREADABLE",
|
|
969
|
+
"The job completed but its recorded result cannot be read for this operation. Inspect its existing record; do not repeat the operation.",
|
|
970
|
+
1,
|
|
971
|
+
"completed_unreadable"
|
|
972
|
+
)
|
|
973
|
+
);
|
|
974
|
+
return { ...result2, nextActions, data: job };
|
|
975
|
+
}
|
|
976
|
+
if (active)
|
|
905
977
|
return {
|
|
906
978
|
...success(operation, job, `Job ${job.status}; use the existing jobId to retrieve its result.`),
|
|
907
|
-
status:
|
|
979
|
+
status: active,
|
|
908
980
|
nextActions
|
|
909
981
|
};
|
|
910
982
|
const status = job.status === "failed" || job.status === "cancelled" ? job.status : "outcome_unknown";
|
|
@@ -919,12 +991,12 @@ function jobToolResult(operation, job) {
|
|
|
919
991
|
);
|
|
920
992
|
return { ...result, nextActions, data: job };
|
|
921
993
|
}
|
|
922
|
-
async function runJobTool(jobs, operation, input, runtime, signal) {
|
|
994
|
+
async function runJobTool(jobs, operation, input, runtime, signal, options = {}) {
|
|
923
995
|
const { waitSeconds: requestedWait, ...domainInput } = input;
|
|
924
|
-
const waitSeconds = parse(jobWaitSeconds, requestedWait);
|
|
996
|
+
const waitSeconds = parse(options.waitSchema ?? jobWaitSeconds, requestedWait);
|
|
925
997
|
if (signal?.aborted)
|
|
926
998
|
throw new Fault("CANCELLED", "Request cancelled before starting a job.", 6, "cancelled");
|
|
927
|
-
const started = await jobs.start(operation, domainInput, runtime);
|
|
999
|
+
const started = options.inline ? await options.inline(operation, domainInput) : await jobs.start(operation, domainInput, runtime);
|
|
928
1000
|
if (waitSeconds === 0) return started;
|
|
929
1001
|
try {
|
|
930
1002
|
const state = await jobs.status(started.jobId, waitSeconds, signal);
|
|
@@ -939,77 +1011,55 @@ async function runJobTool(jobs, operation, input, runtime, signal) {
|
|
|
939
1011
|
return {
|
|
940
1012
|
...started,
|
|
941
1013
|
status: "outcome_unknown",
|
|
942
|
-
nextAction: "Read
|
|
1014
|
+
nextAction: "Read apexrest_job action:status with this jobId; do not repeat the operation. No cancellation or rollback is confirmed."
|
|
943
1015
|
};
|
|
944
1016
|
}
|
|
945
1017
|
}
|
|
946
1018
|
|
|
947
1019
|
// packages/mcp/src/server.ts
|
|
948
|
-
var panelUri = "ui://apexrest/development-panel.html";
|
|
949
1020
|
var absoluteProject = external_exports.string().min(1).max(4096).refine(
|
|
950
1021
|
(value) => path.isAbsolute(value) && (process.platform !== "win32" || /^(?:[A-Za-z]:[\\/]|[\\/]{2}[^\\/]+[\\/][^\\/]+)/.test(value)),
|
|
951
1022
|
"Provide the absolute project directory containing apexrest.json; the plugin runs from its installation directory."
|
|
952
1023
|
).describe("Absolute project directory containing apexrest.json; never the plugin cache.");
|
|
1024
|
+
var projectOptional = /* @__PURE__ */ new Set(["reference", "status", "project"]);
|
|
953
1025
|
var mcpSchemas = /* @__PURE__ */ new Map();
|
|
954
1026
|
for (const { operation, long } of toolCatalog) {
|
|
955
1027
|
const schema = schemas[operation];
|
|
956
|
-
const transportSchema = "project" in schema.shape ? schema.extend({
|
|
957
|
-
|
|
958
|
-
}
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
1028
|
+
const transportSchema = "project" in schema.shape ? schema.extend({
|
|
1029
|
+
project: projectOptional.has(operation) ? absoluteProject.optional() : absoluteProject
|
|
1030
|
+
}) : schema;
|
|
1031
|
+
const boundarySchema = operation === "project" ? transportSchema.extend({
|
|
1032
|
+
directory: absoluteProject.describe("Absolute directory for init.").optional(),
|
|
1033
|
+
passwordFile: absoluteProject.describe("Absolute private password file.").optional()
|
|
1034
|
+
}) : transportSchema;
|
|
1035
|
+
mcpSchemas.set(
|
|
1036
|
+
operation,
|
|
1037
|
+
long ? boundarySchema.extend({ waitSeconds: operation === "ship" ? shipWaitSeconds : jobWaitSeconds }) : boundarySchema
|
|
963
1038
|
);
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
1039
|
+
}
|
|
1040
|
+
function listTools() {
|
|
1041
|
+
return toolCatalog.map((t) => ({
|
|
1042
|
+
name: t.name,
|
|
1043
|
+
description: t.description,
|
|
1044
|
+
inputSchema: external_exports.toJSONSchema(mcpSchemas.get(t.operation), { target: "draft-7", io: "input" }),
|
|
1045
|
+
annotations: {
|
|
1046
|
+
readOnlyHint: t.readOnly,
|
|
1047
|
+
destructiveHint: t.destructive ?? false,
|
|
1048
|
+
idempotentHint: t.readOnly,
|
|
1049
|
+
openWorldHint: t.openWorld ?? false
|
|
1050
|
+
}
|
|
973
1051
|
}));
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
_meta: { ui: { prefersBorder: true, csp: { connectDomains: [], resourceDomains: [] } } }
|
|
983
|
-
}
|
|
984
|
-
]
|
|
985
|
-
};
|
|
986
|
-
});
|
|
1052
|
+
}
|
|
1053
|
+
function detachedJob(operation, input) {
|
|
1054
|
+
const tool = toolCatalog.find((t) => t.operation === operation);
|
|
1055
|
+
if (tool?.worker) return true;
|
|
1056
|
+
return operation === "test.run" && input.suite !== "unit";
|
|
1057
|
+
}
|
|
1058
|
+
async function startMcp() {
|
|
1059
|
+
const server = new Server({ name: "apexrest-apex", version: VERSION }, { capabilities: { tools: {} } });
|
|
987
1060
|
let catalog;
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
async () => catalog ??= {
|
|
991
|
-
tools: toolCatalog.map((t) => ({
|
|
992
|
-
name: t.name,
|
|
993
|
-
description: t.description,
|
|
994
|
-
...t.operation === "panel.open" ? { _meta: { ui: { resourceUri: panelUri } } } : {},
|
|
995
|
-
inputSchema: external_exports.toJSONSchema(mcpSchemas.get(t.operation), { target: "draft-7", io: "input" }),
|
|
996
|
-
annotations: {
|
|
997
|
-
readOnlyHint: t.readOnly,
|
|
998
|
-
destructiveHint: t.destructive ?? !t.readOnly,
|
|
999
|
-
idempotentHint: t.readOnly,
|
|
1000
|
-
openWorldHint: ![
|
|
1001
|
-
"doctor",
|
|
1002
|
-
"docs.search",
|
|
1003
|
-
"docs.read",
|
|
1004
|
-
"project.inspect",
|
|
1005
|
-
"jobs.status",
|
|
1006
|
-
"jobs.cancel",
|
|
1007
|
-
"artifacts.read"
|
|
1008
|
-
].includes(t.operation)
|
|
1009
|
-
}
|
|
1010
|
-
}))
|
|
1011
|
-
}
|
|
1012
|
-
);
|
|
1061
|
+
const runtime = path.join(path.dirname(fileURLToPath(import.meta.url)), "apexrest.mjs");
|
|
1062
|
+
server.setRequestHandler(ListToolsRequestSchema, async () => catalog ??= { tools: listTools() });
|
|
1013
1063
|
server.setRequestHandler(CallToolRequestSchema, async (request, extra) => {
|
|
1014
1064
|
const tool = toolCatalog.find((t) => t.name === request.params.name);
|
|
1015
1065
|
let result;
|
|
@@ -1018,24 +1068,72 @@ async function startMcp() {
|
|
|
1018
1068
|
if (!tool) throw new Fault("UNKNOWN_TOOL", "Tool is not in the catalog.", 2);
|
|
1019
1069
|
const input = parse(mcpSchemas.get(tool.operation), request.params.arguments ?? {});
|
|
1020
1070
|
project = typeof input.project === "string" ? input.project : void 0;
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
extra.signal
|
|
1029
|
-
|
|
1030
|
-
|
|
1071
|
+
const localSync = tool.operation === "apex.sync" && input.action === "status";
|
|
1072
|
+
const planOnly = tool.operation === "ship" && input.mode !== "apply";
|
|
1073
|
+
if (localSync || planOnly) delete input.waitSeconds;
|
|
1074
|
+
if (tool.long && !localSync && !planOnly) {
|
|
1075
|
+
const jobs = new JobService(await loadProject(String(input.project)));
|
|
1076
|
+
if (tool.operation === "ship") {
|
|
1077
|
+
const { waitSeconds, ...domainInput } = input;
|
|
1078
|
+
const planned = await dispatch("ship", { ...domainInput, mode: "plan" }, extra.signal);
|
|
1079
|
+
if (!planned.ok) result = planned;
|
|
1080
|
+
else {
|
|
1081
|
+
const planPath = planned.data.planPath;
|
|
1082
|
+
const job = await runJobTool(
|
|
1083
|
+
jobs,
|
|
1084
|
+
"ship.apply",
|
|
1085
|
+
{
|
|
1086
|
+
project: input.project,
|
|
1087
|
+
env: input.env,
|
|
1088
|
+
plan: planPath,
|
|
1089
|
+
userRequest: input.userRequest,
|
|
1090
|
+
waitSeconds
|
|
1091
|
+
},
|
|
1092
|
+
runtime,
|
|
1093
|
+
extra.signal,
|
|
1094
|
+
{ waitSchema: shipWaitSeconds }
|
|
1095
|
+
);
|
|
1096
|
+
result = jobToolResult("ship.apply", job);
|
|
1097
|
+
result = {
|
|
1098
|
+
...result,
|
|
1099
|
+
operation: "ship",
|
|
1100
|
+
data: { ...result.data, plan: planned.data }
|
|
1101
|
+
};
|
|
1102
|
+
}
|
|
1103
|
+
} else {
|
|
1104
|
+
const inline = detachedJob(tool.operation, input) ? void 0 : (operation, domainInput) => jobs.startInline(
|
|
1105
|
+
operation,
|
|
1106
|
+
domainInput,
|
|
1107
|
+
(op, args, signal, progress) => dispatch(op, args, signal, progress)
|
|
1108
|
+
);
|
|
1109
|
+
result = jobToolResult(
|
|
1110
|
+
tool.operation,
|
|
1111
|
+
await runJobTool(jobs, tool.operation, input, runtime, extra.signal, inline ? { inline } : {})
|
|
1112
|
+
);
|
|
1113
|
+
}
|
|
1114
|
+
} else result = await dispatch(tool.operation, input, extra.signal);
|
|
1031
1115
|
} catch (e) {
|
|
1032
1116
|
result = failure(tool?.operation ?? "unknown", e);
|
|
1033
1117
|
}
|
|
1034
1118
|
return toolOutput(result, project);
|
|
1035
1119
|
});
|
|
1036
|
-
|
|
1120
|
+
const transport = new StdioServerTransport();
|
|
1121
|
+
const shutdown = async () => {
|
|
1122
|
+
await settleInlineJobs();
|
|
1123
|
+
await shutdownOracle();
|
|
1124
|
+
};
|
|
1125
|
+
for (const signal of ["SIGTERM", "SIGINT"])
|
|
1126
|
+
process.once(signal, () => {
|
|
1127
|
+
void shutdown().finally(() => process.exit(0));
|
|
1128
|
+
});
|
|
1129
|
+
await server.connect(transport);
|
|
1130
|
+
server.onclose = () => {
|
|
1131
|
+
void shutdown().finally(() => process.exit(0));
|
|
1132
|
+
};
|
|
1037
1133
|
}
|
|
1038
|
-
|
|
1039
1134
|
export {
|
|
1135
|
+
detachedJob,
|
|
1136
|
+
listTools,
|
|
1137
|
+
mcpSchemas,
|
|
1040
1138
|
startMcp
|
|
1041
1139
|
};
|
package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-S24BD6PY.mjs → chunk-RBJJNQ5O.mjs}
RENAMED
|
@@ -3,17 +3,17 @@ import { createRequire as __createRequire } from 'node:module'; const require =
|
|
|
3
3
|
// plugins/metadata.json
|
|
4
4
|
var metadata_default = {
|
|
5
5
|
name: "apexrest-apex",
|
|
6
|
-
version: "1.
|
|
7
|
-
description: "Develop, deploy and test Oracle APEX applications
|
|
6
|
+
version: "1.3.0",
|
|
7
|
+
description: "Develop, deploy and test Oracle APEX applications from Codex or Claude Code.",
|
|
8
8
|
author: {
|
|
9
9
|
name: "APEXREST",
|
|
10
10
|
url: "https://apex.rest"
|
|
11
11
|
},
|
|
12
12
|
license: "Apache-2.0",
|
|
13
13
|
interface: {
|
|
14
|
-
displayName: "APEXREST for Codex",
|
|
14
|
+
displayName: "APEXREST for Codex and Claude Code",
|
|
15
15
|
shortDescription: "Oracle APEX development workflows",
|
|
16
|
-
longDescription: "Oracle APEX development, controlled deployment and testing directly in your current Codex session.",
|
|
16
|
+
longDescription: "Oracle APEX development, controlled deployment and testing directly in your current Codex or Claude Code session.",
|
|
17
17
|
developerName: "APEXREST",
|
|
18
18
|
websiteURL: "https://apex.rest",
|
|
19
19
|
composerIcon: "./assets/apexrest-icon.svg",
|
|
@@ -22,9 +22,9 @@ var metadata_default = {
|
|
|
22
22
|
category: "Productivity",
|
|
23
23
|
capabilities: ["Read", "Write"],
|
|
24
24
|
defaultPrompt: [
|
|
25
|
-
"Use $apexrest-work to
|
|
26
|
-
"Use $apexrest-
|
|
27
|
-
"Use $apexrest-
|
|
25
|
+
"Use $apexrest-work to build or change my Oracle APEX application in this session.",
|
|
26
|
+
"Use $apexrest-setup to check my tools and connection references.",
|
|
27
|
+
"Use $apexrest-safety to explain what blocked my APEX deployment or test."
|
|
28
28
|
]
|
|
29
29
|
}
|
|
30
30
|
};
|