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
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
clip,
|
|
4
|
-
paint,
|
|
5
|
-
wrap
|
|
6
|
-
} from "./chunk-TLYYCRQA.mjs";
|
|
7
|
-
import {
|
|
8
|
-
PanelService
|
|
9
|
-
} from "./chunk-BD2AVCFU.mjs";
|
|
10
|
-
import "./chunk-4MYHJ2IU.mjs";
|
|
11
|
-
import "./chunk-S24BD6PY.mjs";
|
|
12
|
-
import "./chunk-3MDDJFXN.mjs";
|
|
13
|
-
import {
|
|
14
|
-
Fault
|
|
15
|
-
} from "./chunk-2Z3BZF66.mjs";
|
|
16
|
-
|
|
17
|
-
// packages/cli/src/panel-tui.ts
|
|
18
|
-
import { emitKeypressEvents } from "node:readline";
|
|
19
|
-
function panelLines(data, tab) {
|
|
20
|
-
if (tab === 2)
|
|
21
|
-
return [
|
|
22
|
-
`Database network: ${data.sqlcl.databaseTransport === "ords" ? "ORDS HTTP(S)" : "Direct Oracle listener"}`,
|
|
23
|
-
`SQLcl execution: ${data.sqlcl.mode.toUpperCase()} \xB7 restriction ${data.sqlcl.mcpRestrictLevel}`,
|
|
24
|
-
`Trusted: ${data.trusted} \xB7 configured: ${data.configured}`,
|
|
25
|
-
"Verification browser: " + data.preferences.browserMode,
|
|
26
|
-
...JSON.stringify(
|
|
27
|
-
{
|
|
28
|
-
project: data.configuration,
|
|
29
|
-
toolchain: data.toolchain,
|
|
30
|
-
connections: data.connections,
|
|
31
|
-
authorization: data.permissions
|
|
32
|
-
},
|
|
33
|
-
null,
|
|
34
|
-
2
|
|
35
|
-
).split("\n")
|
|
36
|
-
];
|
|
37
|
-
if (tab === 1)
|
|
38
|
-
return [
|
|
39
|
-
"APEX OPERATIONS",
|
|
40
|
-
...data.jobs.flatMap((job) => [`${job.operation} \xB7 ${job.status}`, job.summary]),
|
|
41
|
-
...data.jobs.length ? [] : ["No operation jobs recorded."],
|
|
42
|
-
"",
|
|
43
|
-
"DEPLOYMENT & IMPORT JOURNAL",
|
|
44
|
-
...data.deployments.flatMap((run) => [run.status + " \xB7 " + run.at, run.details]),
|
|
45
|
-
"",
|
|
46
|
-
"Commands: apexrest apex validate \xB7 apexrest test unit \xB7 apexrest deploy plan --env NAME --out PATH",
|
|
47
|
-
"Existing project trust and deployment authorization remain required."
|
|
48
|
-
];
|
|
49
|
-
return [
|
|
50
|
-
"CURRENT CODEX SESSION",
|
|
51
|
-
"Describe changes and review results in your open Codex conversation.",
|
|
52
|
-
"This panel runs APEX operations and manages project settings.",
|
|
53
|
-
"",
|
|
54
|
-
`Application: ${data.configuration?.application.alias ?? "Not configured"}`,
|
|
55
|
-
`Source: ${data.configuration?.application.sourceDir ?? "Not configured"}`,
|
|
56
|
-
"Environments: " + (Object.keys(data.configuration?.environments ?? {}).join(", ") || "None configured"),
|
|
57
|
-
"Required suites: " + (data.configuration?.tests.requiredSuites.join(", ") || "None declared"),
|
|
58
|
-
`Trusted: ${data.trusted} \xB7 configured: ${data.configured}`,
|
|
59
|
-
"",
|
|
60
|
-
"WORKING CHANGES",
|
|
61
|
-
...data.changes.files.length ? data.changes.files : [data.changes.status === "available" ? "No uncommitted Git changes." : "Git status unavailable."]
|
|
62
|
-
];
|
|
63
|
-
}
|
|
64
|
-
async function runPanelTui(root) {
|
|
65
|
-
if (!process.stdin.isTTY || !process.stdout.isTTY || process.env.TERM === "dumb")
|
|
66
|
-
throw new Fault("TTY_REQUIRED", "Use an interactive Codex terminal, or apexrest panel status --json.", 2);
|
|
67
|
-
const service = new PanelService(root), output = process.stdout, input = process.stdin;
|
|
68
|
-
let data, error = "", tab = 0, offset = 0, refreshing = false, stopped = false;
|
|
69
|
-
const color = !process.env.NO_COLOR;
|
|
70
|
-
const draw = () => {
|
|
71
|
-
if (stopped) return;
|
|
72
|
-
const width = Math.max(20, output.columns || 80), height = Math.max(7, output.rows || 24);
|
|
73
|
-
const body = data ? panelLines(data, tab).flatMap((line) => wrap(line, width - 2)) : [];
|
|
74
|
-
offset = Math.max(0, Math.min(offset, Math.max(0, body.length - (height - 6))));
|
|
75
|
-
const lines = [
|
|
76
|
-
paint(" APEXREST \xB7 Development panel", "accent", color),
|
|
77
|
-
clip(" " + root, width),
|
|
78
|
-
["Overview", "APEX operations", "Settings"].map((name, i) => `${i + 1} ${i === tab ? "[" + name + "]" : name}`).join(" "),
|
|
79
|
-
error ? "Disconnected \xB7 " + error : data ? "Live \xB7 " + new Date(data.updatedAt).toLocaleTimeString() : "Connecting\u2026",
|
|
80
|
-
...body.slice(offset, offset + height - 6),
|
|
81
|
-
"1\u20133 / \u2190\u2192 views \xB7 \u2191\u2193 scroll \xB7 r refresh \xB7 q exit | Actions: apexrest panel action --help"
|
|
82
|
-
];
|
|
83
|
-
output.write("\x1B[H\x1B[2J" + lines.map((line, i) => i === 0 ? line : clip(line, width)).join("\r\n"));
|
|
84
|
-
};
|
|
85
|
-
const refresh = async () => {
|
|
86
|
-
if (refreshing || stopped) return;
|
|
87
|
-
refreshing = true;
|
|
88
|
-
try {
|
|
89
|
-
data = await service.snapshot();
|
|
90
|
-
error = "";
|
|
91
|
-
} catch (e) {
|
|
92
|
-
error = e instanceof Error ? e.message : String(e);
|
|
93
|
-
} finally {
|
|
94
|
-
refreshing = false;
|
|
95
|
-
draw();
|
|
96
|
-
}
|
|
97
|
-
};
|
|
98
|
-
const wasRaw = input.isRaw;
|
|
99
|
-
emitKeypressEvents(input);
|
|
100
|
-
input.setRawMode(true);
|
|
101
|
-
input.resume();
|
|
102
|
-
output.write("\x1B[?1049h\x1B[?25l");
|
|
103
|
-
await new Promise((resolve) => {
|
|
104
|
-
const close = () => {
|
|
105
|
-
if (stopped) return;
|
|
106
|
-
stopped = true;
|
|
107
|
-
clearInterval(timer);
|
|
108
|
-
input.off("keypress", key);
|
|
109
|
-
output.off("resize", draw);
|
|
110
|
-
process.off("SIGINT", close);
|
|
111
|
-
process.off("SIGTERM", close);
|
|
112
|
-
input.setRawMode(wasRaw);
|
|
113
|
-
input.pause();
|
|
114
|
-
output.write("\x1B[?25h\x1B[?1049l");
|
|
115
|
-
resolve();
|
|
116
|
-
};
|
|
117
|
-
const key = (_text, k) => {
|
|
118
|
-
if (k.name === "q" || k.ctrl && k.name === "c") return close();
|
|
119
|
-
if (/^[1-3]$/.test(k.name ?? "")) {
|
|
120
|
-
tab = Number(k.name) - 1;
|
|
121
|
-
offset = 0;
|
|
122
|
-
}
|
|
123
|
-
if (k.name === "right" || k.name === "left") {
|
|
124
|
-
tab = (tab + (k.name === "right" ? 1 : 2)) % 3;
|
|
125
|
-
offset = 0;
|
|
126
|
-
}
|
|
127
|
-
if (k.name === "up") offset--;
|
|
128
|
-
if (k.name === "down") offset++;
|
|
129
|
-
if (k.name === "pageup") offset -= 10;
|
|
130
|
-
if (k.name === "pagedown") offset += 10;
|
|
131
|
-
if (k.name === "r") void refresh();
|
|
132
|
-
else draw();
|
|
133
|
-
};
|
|
134
|
-
const timer = setInterval(() => {
|
|
135
|
-
void refresh();
|
|
136
|
-
}, 2e3);
|
|
137
|
-
input.on("keypress", key);
|
|
138
|
-
output.on("resize", draw);
|
|
139
|
-
process.once("SIGINT", close);
|
|
140
|
-
process.once("SIGTERM", close);
|
|
141
|
-
void refresh();
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
export {
|
|
145
|
-
panelLines,
|
|
146
|
-
runPanelTui
|
|
147
|
-
};
|
|
@@ -1,329 +0,0 @@
|
|
|
1
|
-
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
sanitized
|
|
4
|
-
} from "./chunk-2Z3BZF66.mjs";
|
|
5
|
-
|
|
6
|
-
// packages/cli/src/tui-view.ts
|
|
7
|
-
import { stripVTControlCharacters } from "node:util";
|
|
8
|
-
var tones = {
|
|
9
|
-
plain: "",
|
|
10
|
-
accent: "1;36",
|
|
11
|
-
muted: "90",
|
|
12
|
-
selected: "1;30;46",
|
|
13
|
-
success: "1;32",
|
|
14
|
-
warning: "1;33",
|
|
15
|
-
error: "1;31"
|
|
16
|
-
};
|
|
17
|
-
function terminalText(text) {
|
|
18
|
-
return stripVTControlCharacters(text).replace(/[\x00-\x1f\x7f-\x9f\u202a-\u202e\u2066-\u2069]/g, "");
|
|
19
|
-
}
|
|
20
|
-
function characterWidth(char) {
|
|
21
|
-
if (new RegExp("\\p{Mark}", "u").test(char)) return 0;
|
|
22
|
-
const code = char.codePointAt(0);
|
|
23
|
-
return code >= 4352 && (code <= 4447 || code === 9001 || code === 9002 || code >= 11904 && code <= 42191 || code >= 44032 && code <= 55203 || code >= 63744 && code <= 64255 || code >= 65040 && code <= 65135 || code >= 65280 && code <= 65376 || code >= 65504 && code <= 65510 || code >= 127744 && code <= 129791 || code >= 131072) ? 2 : 1;
|
|
24
|
-
}
|
|
25
|
-
function clip(text, width) {
|
|
26
|
-
let used = 0, result = "";
|
|
27
|
-
for (const char of terminalText(text)) {
|
|
28
|
-
used += characterWidth(char);
|
|
29
|
-
if (used > width) break;
|
|
30
|
-
result += char;
|
|
31
|
-
}
|
|
32
|
-
return result;
|
|
33
|
-
}
|
|
34
|
-
function padCell(text, width) {
|
|
35
|
-
const value = clip(text, width);
|
|
36
|
-
const used = Array.from(value).reduce((sum, char) => sum + characterWidth(char), 0);
|
|
37
|
-
return value + " ".repeat(Math.max(0, width - used));
|
|
38
|
-
}
|
|
39
|
-
function wrap(text, width) {
|
|
40
|
-
const lines = [];
|
|
41
|
-
for (const line of text.split("\n")) {
|
|
42
|
-
let part = "", used = 0;
|
|
43
|
-
for (const char of terminalText(line)) {
|
|
44
|
-
const size = characterWidth(char);
|
|
45
|
-
if (used + size > width) {
|
|
46
|
-
lines.push(part);
|
|
47
|
-
part = "";
|
|
48
|
-
used = 0;
|
|
49
|
-
}
|
|
50
|
-
part += char;
|
|
51
|
-
used += size;
|
|
52
|
-
}
|
|
53
|
-
lines.push(part);
|
|
54
|
-
}
|
|
55
|
-
return lines;
|
|
56
|
-
}
|
|
57
|
-
function paint(text, tone, color) {
|
|
58
|
-
return color && tones[tone] ? `\x1B[${tones[tone]}m${text}\x1B[0m` : text;
|
|
59
|
-
}
|
|
60
|
-
var logo = [
|
|
61
|
-
" ",
|
|
62
|
-
" YY RRR ",
|
|
63
|
-
" YYYY .RRR ",
|
|
64
|
-
" YYYYYCC.RR ",
|
|
65
|
-
" YYYYCCCC. ",
|
|
66
|
-
" YYCCCCC ",
|
|
67
|
-
" CCCCCY ",
|
|
68
|
-
" CCCCCYYY ",
|
|
69
|
-
" CCCCYYYYY ",
|
|
70
|
-
" . CC YYYYY ",
|
|
71
|
-
" ... YYY ",
|
|
72
|
-
" Y "
|
|
73
|
-
];
|
|
74
|
-
var palette = {
|
|
75
|
-
C: "49;190;249",
|
|
76
|
-
Y: "255;213;65",
|
|
77
|
-
R: "255;65;65",
|
|
78
|
-
".": "148;163;184"
|
|
79
|
-
};
|
|
80
|
-
function brand(color, compact) {
|
|
81
|
-
if (compact)
|
|
82
|
-
return [paint(" \u2572\u2571 APEXREST", "accent", color), paint(" \u2571\u2572 Tools \xB7 Plugins \xB7 SQLcl", "muted", color)];
|
|
83
|
-
const wordmark = [
|
|
84
|
-
"",
|
|
85
|
-
" \u2584\u2580\u2588 \u2588\u2580\u2588 \u2588\u2580\u2580 \u2580\u2584\u2580 \u2588\u2580\u2588 \u2588\u2580\u2580 \u2588\u2580\u2580 \u2580\u2588\u2580",
|
|
86
|
-
" \u2588\u2580\u2588 \u2588\u2580\u2580 \u2588\u2588\u2584 \u2588 \u2588 \u2588\u2580\u2584 \u2588\u2588\u2584 \u2584\u2588\u2588 \u2588 ",
|
|
87
|
-
"",
|
|
88
|
-
" APEXREST \xB7 Tools. Plugins. Connections.",
|
|
89
|
-
""
|
|
90
|
-
];
|
|
91
|
-
return wordmark.map((word, row) => {
|
|
92
|
-
let symbol = " ";
|
|
93
|
-
for (let col = 0; col < 12; col++) {
|
|
94
|
-
const top = logo[row * 2][col], bottom = logo[row * 2 + 1][col];
|
|
95
|
-
const glyph = top === " " ? bottom === " " ? " " : "\u2584" : bottom === " " ? "\u2580" : "\u2588";
|
|
96
|
-
if (!color || glyph === " ") symbol += glyph;
|
|
97
|
-
else if (top !== " " && bottom !== " " && top !== bottom)
|
|
98
|
-
symbol += `\x1B[38;2;${palette[top]};48;2;${palette[bottom]}m\u2580\x1B[0m`;
|
|
99
|
-
else symbol += `\x1B[38;2;${palette[top === " " ? bottom : top]}m${glyph}\x1B[0m`;
|
|
100
|
-
}
|
|
101
|
-
return symbol + " " + paint(word, row < 3 ? "accent" : "muted", color);
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
function labelFor(key) {
|
|
105
|
-
const text = key.replace(/([a-z\d])([A-Z])/g, "$1 $2").replace(/[_-]/g, " ");
|
|
106
|
-
return text.charAt(0).toUpperCase() + text.slice(1);
|
|
107
|
-
}
|
|
108
|
-
function valueText(value) {
|
|
109
|
-
return value === true ? "Yes" : value === false ? "No" : value === null ? "None" : String(value);
|
|
110
|
-
}
|
|
111
|
-
function record(value) {
|
|
112
|
-
return value && typeof value === "object" && !Array.isArray(value) ? value : {};
|
|
113
|
-
}
|
|
114
|
-
function reportedStatus(result) {
|
|
115
|
-
if (!result.ok) return result.status;
|
|
116
|
-
const data = record(result.data), inner = record(data.result);
|
|
117
|
-
if (data.ok === false) return "failed";
|
|
118
|
-
if (inner.ok === false) return typeof inner.status === "string" ? inner.status : "failed";
|
|
119
|
-
const state = record(data.state);
|
|
120
|
-
return typeof data.status === "string" ? data.status : typeof data.state === "string" ? data.state : typeof state.state === "string" ? state.state : result.status;
|
|
121
|
-
}
|
|
122
|
-
var statuses = {
|
|
123
|
-
outcome_unknown: ["Outcome unknown", "warning"],
|
|
124
|
-
cancellation_requested: ["Cancellation requested", "warning"],
|
|
125
|
-
cancelled: ["Cancelled", "warning"],
|
|
126
|
-
"needs-user-action": ["Needs your attention", "warning"],
|
|
127
|
-
blocked: ["Blocked", "warning"],
|
|
128
|
-
dependency_missing: ["Missing tools", "warning"],
|
|
129
|
-
not_configured: ["Setup required", "warning"],
|
|
130
|
-
empty: ["No tests ran", "warning"],
|
|
131
|
-
failed: ["Could not complete", "error"],
|
|
132
|
-
running: ["Still running", "accent"],
|
|
133
|
-
queued: ["Job queued", "accent"],
|
|
134
|
-
planned: ["Preview ready", "accent"],
|
|
135
|
-
approved: ["Approved; waiting to run", "accent"],
|
|
136
|
-
backing_up: ["Backing up", "accent"],
|
|
137
|
-
migrating: ["Running migrations", "accent"],
|
|
138
|
-
importing: ["Importing", "accent"],
|
|
139
|
-
verifying: ["Verifying", "accent"],
|
|
140
|
-
testing: ["Running tests", "accent"],
|
|
141
|
-
"toolchain-verified": ["Tools verified", "success"]
|
|
142
|
-
};
|
|
143
|
-
function resultTitle(result) {
|
|
144
|
-
if (result.ok && result.operation === "connection.test") return "Connection successful";
|
|
145
|
-
return statuses[reportedStatus(result)]?.[0] ?? (result.ok ? "Completed" : "Could not complete");
|
|
146
|
-
}
|
|
147
|
-
function resultTone(result) {
|
|
148
|
-
return statuses[reportedStatus(result)]?.[1] ?? (result.ok ? "success" : "error");
|
|
149
|
-
}
|
|
150
|
-
function setupPreview(payload, toolsOnly = false) {
|
|
151
|
-
const native = record(payload.native), registration = record(native.registration), version = record(payload.package).version, toolchain = record(payload.toolchain);
|
|
152
|
-
const pluginActions = {
|
|
153
|
-
install: "Install APEXREST",
|
|
154
|
-
update: "Update managed installation",
|
|
155
|
-
adopt: "Update existing APEXREST installation"
|
|
156
|
-
};
|
|
157
|
-
const lines = toolsOnly ? [] : [
|
|
158
|
-
{
|
|
159
|
-
text: `Plugin: ${pluginActions[String(registration.action)] ?? "Install APEXREST"}`,
|
|
160
|
-
tone: "accent"
|
|
161
|
-
}
|
|
162
|
-
];
|
|
163
|
-
if (!toolsOnly && version)
|
|
164
|
-
lines.push({
|
|
165
|
-
text: `Version: ${registration.previousVersion ? `${registration.previousVersion} \u2192 ` : ""}${version}`
|
|
166
|
-
});
|
|
167
|
-
if (!toolsOnly && registration.action === "adopt" && registration.previousRoot)
|
|
168
|
-
lines.push({ text: `Current location: ${registration.previousRoot}` });
|
|
169
|
-
if (!toolsOnly && native.codexHome) lines.push({ text: `Codex profile: ${native.codexHome}` });
|
|
170
|
-
if (!toolsOnly) lines.push({ text: "" });
|
|
171
|
-
const terms = /* @__PURE__ */ new Set();
|
|
172
|
-
let needsConsent = false;
|
|
173
|
-
if (toolchain.status === "not-requested") {
|
|
174
|
-
lines.push({ text: "Tools: Not requested (plugin only)", tone: "muted" });
|
|
175
|
-
} else {
|
|
176
|
-
const toolNames = { node: "Node.js", java: "Java", sqlcl: "SQLcl" };
|
|
177
|
-
const actions = {
|
|
178
|
-
"download-install": "Install",
|
|
179
|
-
verify: "Verify installed",
|
|
180
|
-
skip: "Skip"
|
|
181
|
-
};
|
|
182
|
-
for (const value of Array.isArray(toolchain.steps) ? toolchain.steps : []) {
|
|
183
|
-
const step = record(value), artifact = record(step.artifact), action = step.reuse ? "Reuse" : actions[String(step.action)] ?? "Check";
|
|
184
|
-
const consent = !step.reuse && step.action !== "verify" && (step.consent === "required" || step.consent === void 0 && artifact.consentRequired === true);
|
|
185
|
-
needsConsent ||= consent;
|
|
186
|
-
if (consent && typeof artifact.license === "string") terms.add(artifact.license);
|
|
187
|
-
lines.push({
|
|
188
|
-
text: `${toolNames[String(artifact.id)] ?? labelFor(String(artifact.id))}: ${action}${artifact.version ? ` ${artifact.version}` : ""}${consent ? " \xB7 license consent needed" : ""}`,
|
|
189
|
-
tone: consent ? "warning" : "plain"
|
|
190
|
-
});
|
|
191
|
-
}
|
|
192
|
-
const browser = record(toolchain.browser);
|
|
193
|
-
if (browser.action)
|
|
194
|
-
lines.push({
|
|
195
|
-
text: `Chromium: ${browser.action === "skip" ? "Skip" : "Install and verify"}${browser.action !== "skip" && browser.installOsDeps === true ? " (including system packages)" : ""}`
|
|
196
|
-
});
|
|
197
|
-
if (toolchain.home) lines.push({ text: `Tools directory: ${toolchain.home}`, tone: "muted" });
|
|
198
|
-
}
|
|
199
|
-
if (needsConsent) {
|
|
200
|
-
lines.push({ text: "" });
|
|
201
|
-
for (const license of terms) lines.push({ text: `Oracle terms: ${license}` });
|
|
202
|
-
lines.push({
|
|
203
|
-
text: "Review the Oracle terms, then enable Accept Oracle license terms to continue.",
|
|
204
|
-
tone: "warning"
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
lines.push(
|
|
208
|
-
{ text: "" },
|
|
209
|
-
{ text: "Press Enter to return to the form, then review and run the action.", tone: "muted" },
|
|
210
|
-
{
|
|
211
|
-
text: toolchain.status === "not-requested" ? "D shows full package details." : "D shows full package and download details.",
|
|
212
|
-
tone: "muted"
|
|
213
|
-
}
|
|
214
|
-
);
|
|
215
|
-
return lines;
|
|
216
|
-
}
|
|
217
|
-
function resultLines(result) {
|
|
218
|
-
const data = sanitized(result.data), payload = record(data);
|
|
219
|
-
const lines = result.summary === "Operation completed." ? [] : [{ text: result.summary }, { text: "" }];
|
|
220
|
-
if (result.ok && ["sqlcl.configure", "sqlcl.status"].includes(result.operation))
|
|
221
|
-
return [
|
|
222
|
-
{ text: `SQLcl mode: ${String(payload.mode).toUpperCase()}`, tone: "accent" },
|
|
223
|
-
{
|
|
224
|
-
text: payload.mode === "mcp" ? `Official SQLcl MCP server \xB7 restrict level ${payload.mcpRestrictLevel}` : "SQLcl command-line process"
|
|
225
|
-
},
|
|
226
|
-
{
|
|
227
|
-
text: payload.databaseTransport === "ords" ? "Database network: ORDS HTTP(S) \xB7 plugin connection settings" : "Database network: Direct Oracle listener"
|
|
228
|
-
},
|
|
229
|
-
{ text: "New Oracle operations use this mode. Active operations keep their selected mode." }
|
|
230
|
-
];
|
|
231
|
-
for (const diagnostic of result.diagnostics) {
|
|
232
|
-
if (diagnostic.message !== result.summary)
|
|
233
|
-
lines.push({ text: diagnostic.message, tone: diagnostic.severity === "error" ? "error" : "plain" });
|
|
234
|
-
}
|
|
235
|
-
const actionLabels = {
|
|
236
|
-
CODEX_RELOAD_REQUIRED: "Reload Codex to load the updated plugin.",
|
|
237
|
-
DATABASE_CONNECTION_REQUIRED: "Save a connection in SQLcl, then open List saved SQLcl connections.",
|
|
238
|
-
ORACLE_LICENSE_CONSENT_REQUIRED: "Review the Oracle terms, then enable Accept Oracle license terms to continue.",
|
|
239
|
-
PLAYWRIGHT_SETUP_REQUIRED: "Open Install tools to install browser tools."
|
|
240
|
-
};
|
|
241
|
-
const actions = [
|
|
242
|
-
...result.nextActions,
|
|
243
|
-
...Array.isArray(payload.nextActions) ? payload.nextActions.filter((value) => typeof value === "string") : [],
|
|
244
|
-
...typeof payload.nextAction === "string" ? [payload.nextAction] : [],
|
|
245
|
-
...Array.isArray(payload.actions) ? payload.actions.map((value) => {
|
|
246
|
-
const action = record(value);
|
|
247
|
-
return typeof action.message === "string" ? action.message : actionLabels[String(action.code)] ?? labelFor(String(action.code ?? value));
|
|
248
|
-
}) : []
|
|
249
|
-
];
|
|
250
|
-
if (actions.length) {
|
|
251
|
-
lines.push({ text: "Next steps", tone: "accent" });
|
|
252
|
-
for (const action of new Set(actions)) lines.push({ text: ` \u2022 ${action}` });
|
|
253
|
-
lines.push({ text: "" });
|
|
254
|
-
}
|
|
255
|
-
const detail = (value, indent = 0) => {
|
|
256
|
-
const prefix = " ".repeat(indent);
|
|
257
|
-
if (indent > 5) {
|
|
258
|
-
lines.push({ text: `${prefix}More information in details (D).`, tone: "muted" });
|
|
259
|
-
return;
|
|
260
|
-
}
|
|
261
|
-
if (Array.isArray(value)) {
|
|
262
|
-
if (!value.length) lines.push({ text: `${prefix}No items.`, tone: "muted" });
|
|
263
|
-
value.forEach((item, index) => {
|
|
264
|
-
if (item && typeof item === "object") {
|
|
265
|
-
lines.push({ text: `${prefix}${index + 1}.`, tone: "accent" });
|
|
266
|
-
detail(item, indent + 1);
|
|
267
|
-
} else lines.push({ text: `${prefix}\u2022 ${valueText(item)}` });
|
|
268
|
-
});
|
|
269
|
-
} else if (value && typeof value === "object") {
|
|
270
|
-
for (const [key, item] of Object.entries(value)) {
|
|
271
|
-
if (indent === 0 && ["schemaVersion", "nextAction", "nextActions", "actions"].includes(key)) continue;
|
|
272
|
-
if (Array.isArray(item) && item.length === 0) continue;
|
|
273
|
-
if (item && typeof item === "object") {
|
|
274
|
-
lines.push({
|
|
275
|
-
text: `${prefix}${labelFor(key)}${Array.isArray(item) ? ` (${item.length})` : ""}`,
|
|
276
|
-
tone: "accent"
|
|
277
|
-
});
|
|
278
|
-
detail(item, indent + 1);
|
|
279
|
-
} else lines.push({ text: `${prefix}${labelFor(key)}: ${valueText(item)}` });
|
|
280
|
-
}
|
|
281
|
-
} else if (value !== void 0) lines.push({ text: prefix + valueText(value) });
|
|
282
|
-
};
|
|
283
|
-
if (result.ok && ["setup", "plugin.install", "plugin.update"].includes(result.operation) && payload.status === "planned" && record(payload.native).state === "planned") {
|
|
284
|
-
lines.push(...setupPreview(payload));
|
|
285
|
-
} else if (result.ok && result.operation === "dependencies.install" && payload.status === "planned") {
|
|
286
|
-
lines.push(...setupPreview({ toolchain: payload.plan }, true));
|
|
287
|
-
} else if (result.ok && result.operation === "dependencies.uninstall") {
|
|
288
|
-
const plan = payload.status === "planned" ? record(payload.plan) : payload;
|
|
289
|
-
const steps = Array.isArray(plan.steps) ? plan.steps.map(record) : [];
|
|
290
|
-
if (!steps.length) lines.push({ text: "No managed tools to remove." });
|
|
291
|
-
for (const step of steps) {
|
|
292
|
-
lines.push({
|
|
293
|
-
text: `${labelFor(String(step.component))}: ${step.action === "keep" ? "Keep" : payload.status === "planned" ? "Remove" : "Removed"}`,
|
|
294
|
-
tone: step.action === "keep" ? "muted" : "plain"
|
|
295
|
-
});
|
|
296
|
-
if (step.reason) lines.push({ text: ` ${step.reason}`, tone: "muted" });
|
|
297
|
-
else if (step.directory) lines.push({ text: ` ${step.directory}`, tone: "muted" });
|
|
298
|
-
}
|
|
299
|
-
lines.push(
|
|
300
|
-
{ text: "" },
|
|
301
|
-
{ text: "Projects, saved connections and download cache are preserved.", tone: "muted" }
|
|
302
|
-
);
|
|
303
|
-
if (payload.status === "planned")
|
|
304
|
-
lines.push({
|
|
305
|
-
text: "Press Enter to return to the form, then review and run the action.",
|
|
306
|
-
tone: "muted"
|
|
307
|
-
});
|
|
308
|
-
} else detail(data);
|
|
309
|
-
if (result.artifacts.length) {
|
|
310
|
-
lines.push({ text: "" }, { text: "Artifacts", tone: "accent" });
|
|
311
|
-
result.artifacts.forEach((id) => lines.push({ text: ` ${id}` }));
|
|
312
|
-
}
|
|
313
|
-
lines.push({ text: "" }, { text: `Run: ${result.runId}`, tone: "muted" });
|
|
314
|
-
return lines;
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
export {
|
|
318
|
-
terminalText,
|
|
319
|
-
clip,
|
|
320
|
-
padCell,
|
|
321
|
-
wrap,
|
|
322
|
-
paint,
|
|
323
|
-
brand,
|
|
324
|
-
labelFor,
|
|
325
|
-
valueText,
|
|
326
|
-
resultTitle,
|
|
327
|
-
resultTone,
|
|
328
|
-
resultLines
|
|
329
|
-
};
|