apexrest 0.5.0 → 1.0.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/NOTICE +0 -6
- package/README.md +13 -36
- package/README.uk.md +13 -36
- package/dist/codex-compat/plugins/apexrest-apex/.codex-plugin/plugin.json +4 -4
- package/dist/codex-compat/plugins/apexrest-apex/NOTICE +0 -6
- package/dist/codex-compat/plugins/apexrest-apex/resources/panel/index.html +4 -11
- package/dist/codex-compat/plugins/apexrest-apex/resources/panel/panel.css +4 -182
- package/dist/codex-compat/plugins/apexrest-apex/resources/panel/panel.js +61 -383
- package/dist/codex-compat/plugins/apexrest-apex/resources/playwright/package.json +1 -1
- package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/operations.schema.json +0 -327
- package/dist/codex-compat/plugins/apexrest-apex/runtime/apexrest.mjs +12 -43
- package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-QDAKHEPF.mjs → chunk-3XRCAA5S.mjs} +4 -4
- package/dist/{runtime/chunk-HYOURJBW.mjs → codex-compat/plugins/apexrest-apex/runtime/chunk-4GIV3RLJ.mjs} +2 -2
- package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-RF4XQO6I.mjs → chunk-CJC3ESO4.mjs} +2 -2
- package/dist/{runtime/chunk-XKBZJ36H.mjs → codex-compat/plugins/apexrest-apex/runtime/chunk-DLUIX7FA.mjs} +20 -62
- package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-JWX4UQAZ.mjs → chunk-EG2NPDAF.mjs} +1 -1
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-EMRXOSVH.mjs +14 -0
- package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-FPOEB42H.mjs → chunk-JN3KZCDI.mjs} +1 -1
- package/dist/{runtime/chunk-QLRGI23I.mjs → codex-compat/plugins/apexrest-apex/runtime/chunk-K5BV3TBZ.mjs} +9 -108
- package/dist/{runtime/chunk-QWQVXUVG.mjs → codex-compat/plugins/apexrest-apex/runtime/chunk-MNYOWIHJ.mjs} +24 -77
- package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-TTVGX5LP.mjs → chunk-NHYXXMBY.mjs} +21 -213
- package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-2SZCZZ3J.mjs → chunk-R6MER5QH.mjs} +0 -1
- package/dist/{runtime/chunk-XEK2R5AU.mjs → codex-compat/plugins/apexrest-apex/runtime/chunk-SVB7G3KQ.mjs} +5 -7
- package/dist/{runtime/chunk-L7BXN3LU.mjs → codex-compat/plugins/apexrest-apex/runtime/chunk-SWW7SKB4.mjs} +19 -42
- package/dist/{runtime/chunk-KJOSAKHX.mjs → codex-compat/plugins/apexrest-apex/runtime/chunk-XZNIV6UL.mjs} +5 -6
- package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-DNJL7OYO.mjs → chunk-YXHLPFQX.mjs} +15 -13
- package/dist/codex-compat/plugins/apexrest-apex/runtime/mcp.mjs +7 -8
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-apexlang/SKILL.md +1 -1
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-database/SKILL.md +0 -2
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-debug/SKILL.md +0 -2
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-menu/SKILL.md +13 -14
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-menu/references/cli-catalog.md +14 -15
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-panel/SKILL.md +4 -10
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-panel/agents/openai.yaml +3 -3
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-project/SKILL.md +1 -1
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-work/SKILL.md +5 -8
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-work/agents/openai.yaml +3 -3
- package/dist/resources/panel/index.html +4 -11
- package/dist/resources/panel/panel.css +4 -182
- package/dist/resources/panel/panel.js +61 -383
- package/dist/resources/playwright/package.json +1 -1
- package/dist/resources/schemas/operations.schema.json +0 -327
- package/dist/runtime/apexrest.mjs +12 -43
- package/dist/runtime/{chunk-QDAKHEPF.mjs → chunk-3XRCAA5S.mjs} +4 -4
- package/dist/{codex-compat/plugins/apexrest-apex/runtime/chunk-HYOURJBW.mjs → runtime/chunk-4GIV3RLJ.mjs} +2 -2
- package/dist/runtime/{chunk-RF4XQO6I.mjs → chunk-CJC3ESO4.mjs} +2 -2
- package/dist/{codex-compat/plugins/apexrest-apex/runtime/chunk-XKBZJ36H.mjs → runtime/chunk-DLUIX7FA.mjs} +20 -62
- package/dist/runtime/{chunk-JWX4UQAZ.mjs → chunk-EG2NPDAF.mjs} +1 -1
- package/dist/runtime/chunk-EMRXOSVH.mjs +14 -0
- package/dist/runtime/{chunk-FPOEB42H.mjs → chunk-JN3KZCDI.mjs} +1 -1
- package/dist/{codex-compat/plugins/apexrest-apex/runtime/chunk-QLRGI23I.mjs → runtime/chunk-K5BV3TBZ.mjs} +9 -108
- package/dist/{codex-compat/plugins/apexrest-apex/runtime/chunk-QWQVXUVG.mjs → runtime/chunk-MNYOWIHJ.mjs} +24 -77
- package/dist/runtime/{chunk-TTVGX5LP.mjs → chunk-NHYXXMBY.mjs} +21 -213
- package/dist/runtime/{chunk-2SZCZZ3J.mjs → chunk-R6MER5QH.mjs} +0 -1
- package/dist/{codex-compat/plugins/apexrest-apex/runtime/chunk-XEK2R5AU.mjs → runtime/chunk-SVB7G3KQ.mjs} +5 -7
- package/dist/{codex-compat/plugins/apexrest-apex/runtime/chunk-L7BXN3LU.mjs → runtime/chunk-SWW7SKB4.mjs} +19 -42
- package/dist/{codex-compat/plugins/apexrest-apex/runtime/chunk-KJOSAKHX.mjs → runtime/chunk-XZNIV6UL.mjs} +5 -6
- package/dist/runtime/{chunk-DNJL7OYO.mjs → chunk-YXHLPFQX.mjs} +15 -13
- package/dist/runtime/mcp.mjs +7 -8
- package/package.json +1 -2
- package/dist/codex-compat/plugins/apexrest-apex/resources/panel/assets/LICENCE.txt +0 -118
- package/dist/codex-compat/plugins/apexrest-apex/resources/panel/assets/bulbasaur.png +0 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/panel/assets/charmander.png +0 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/panel/assets/mewtwo.png +0 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/panel/assets/pikachu.png +0 -0
- package/dist/codex-compat/plugins/apexrest-apex/resources/panel/assets/sources.json +0 -36
- package/dist/codex-compat/plugins/apexrest-apex/resources/panel/assets/squirtle.png +0 -0
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-ED2YPDPS.mjs +0 -1123
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-GFRSRK3K.mjs +0 -16
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-N5G4ADI7.mjs +0 -15
- package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-VPCUV5QA.mjs +0 -237
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-team/SKILL.md +0 -24
- package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-team/agents/openai.yaml +0 -4
- package/dist/resources/panel/assets/LICENCE.txt +0 -118
- package/dist/resources/panel/assets/bulbasaur.png +0 -0
- package/dist/resources/panel/assets/charmander.png +0 -0
- package/dist/resources/panel/assets/mewtwo.png +0 -0
- package/dist/resources/panel/assets/pikachu.png +0 -0
- package/dist/resources/panel/assets/sources.json +0 -36
- package/dist/resources/panel/assets/squirtle.png +0 -0
- package/dist/runtime/chunk-ED2YPDPS.mjs +0 -1123
- package/dist/runtime/chunk-GFRSRK3K.mjs +0 -16
- package/dist/runtime/chunk-N5G4ADI7.mjs +0 -15
- package/dist/runtime/chunk-VPCUV5QA.mjs +0 -237
package/NOTICE
CHANGED
|
@@ -10,9 +10,3 @@ Oracle-generated blank-app files retain their original headers and MMD metadata.
|
|
|
10
10
|
Node.js, Java, SQLcl and Chromium are downloaded separately from their vendors.
|
|
11
11
|
No Oracle or Java executable is redistributed in APEXREST packages.
|
|
12
12
|
Bundled dependency license texts and a CycloneDX SBOM accompany each local release.
|
|
13
|
-
|
|
14
|
-
Pokémon agent avatars: five sprites from PokeAPI/sprites, with pinned source URLs
|
|
15
|
-
and hashes in resources/panel/assets/sources.json. All image contents are
|
|
16
|
-
Copyright The Pokémon Company, as stated by the upstream LICENCE.txt included
|
|
17
|
-
with the assets. These images are not covered by this project's Apache license.
|
|
18
|
-
APEXREST is independent and is not endorsed by The Pokémon Company.
|
package/README.md
CHANGED
|
@@ -16,23 +16,13 @@ APEXREST connects native Codex skills and MCP tools to Oracle SQLcl. Generate AP
|
|
|
16
16
|
|
|
17
17
|

|
|
18
18
|
|
|
19
|
-
> **Stable release: `0.
|
|
19
|
+
> **Stable release: `1.0.0`.** Work directly in your current Codex session with 18 MCP tools and 12 focused skills. Codex owns the conversation and its execution; APEXREST handles Oracle/APEX operations. Programmatic job waiting, metadata batches, concise project inspection and focused references reduce routine tool exchanges. See [release notes](docs/release-notes.md) for changes and evidence limits. Independent tooling; not an official Oracle or OpenAI product.
|
|
20
20
|
|
|
21
|
-
Describe the
|
|
22
|
-
|
|
23
|
-
Single agent is the default; teams require explicit opt-in in Settings. See [execution settings](docs/work-modes.md).
|
|
24
|
-
|
|
25
|
-
Settings offer **Single agent / Agent team** and **Codex in-app browser / External system browser** for APEX verification. Single mode works in the current chat; the dashboard remains available on request. [Settings and verification boundaries](docs/work-modes.md).
|
|
21
|
+
Describe the change in Codex chat or use `$apexrest-work`. Implementation starts in the same context without a plugin startup call. See the [chat workflow](docs/chat-workflow.md) and [Codex integration](docs/codex-integration.md). Choose **Codex in-app browser / External system browser** for APEX verification in Settings.
|
|
26
22
|
|
|
27
23
|
**Settings → Database network transport** selects **Direct Oracle listener** or **ORDS HTTP(S)** for new operations across projects. Direct mode offers a picker of your saved SQLcl connections. ORDS uses your existing database username and password with the schema's ORDS URL when the listener, commonly on port 1521, is unavailable. Its connection settings and password stay in private plugin-level local files; enter the password in the local dashboard or through CLI `--password-file`. ORDS uses SQLcl CLI and supports the APEXlang import/export workflow. Switching back preserves both connection mappings. See [SQL through ORDS](docs/ords.md) for setup and verification limits.
|
|
28
24
|
|
|
29
|
-
Open `$apexrest-panel` for
|
|
30
|
-
|
|
31
|
-
Read the [complete agent workflow with screenshots](docs/agent-workflow.md): task setup, Pokémon roles, mandatory reviews, QA, repair cycles and authorized APEX delivery.
|
|
32
|
-
|
|
33
|
-

|
|
34
|
-
|
|
35
|
-
_Actual Codex in-app browser capture. This isolated coding example verifies team execution; it does not represent an Oracle import._
|
|
25
|
+
Open `$apexrest-panel` for project and connection settings, actual Oracle/APEX jobs and diagnostics inside Codex. The console view is `apexrest panel tui`. See the [development panel](docs/panel.md).
|
|
36
26
|
|
|
37
27
|
## ORDS SQL: a path to Codex Cloud
|
|
38
28
|
|
|
@@ -46,11 +36,11 @@ connect -orest app_user@https://example.com/ords/app_user/
|
|
|
46
36
|
|
|
47
37
|
The `-orest` option selects the REST connection. Replace the example account and schema URL with your authorized target; REST-Enabled SQL must be enabled. The account still needs database credentials and the permissions required for the requested work. See [SQL through ORDS](docs/ords.md).
|
|
48
38
|
|
|
49
|
-
|
|
|
50
|
-
|
|
|
51
|
-
| Where tasks run
|
|
52
|
-
| Tools and dependencies | Installed and maintained on your computer.
|
|
53
|
-
| Database access
|
|
39
|
+
| | Local mode | Codex Cloud setup |
|
|
40
|
+
| ---------------------- | ------------------------------------------------------- | ----------------------------------------------------------------- |
|
|
41
|
+
| Where tasks run | On your computer; it must stay on while operations run. | In a hosted container; your home computer can be off. |
|
|
42
|
+
| Tools and dependencies | Installed and maintained on your computer. | Prepared through reusable setup and maintenance scripts. |
|
|
43
|
+
| Database access | Direct Oracle connection or ORDS HTTP(S). | The documented setup uses an authorized ORDS endpoint over HTTPS. |
|
|
54
44
|
|
|
55
45
|
### Delegate from your phone
|
|
56
46
|
|
|
@@ -58,29 +48,16 @@ After configuring [Codex's native Slack integration](https://learn.chatgpt.com/d
|
|
|
58
48
|
|
|
59
49
|
The **ChatGPT mobile app's [Remote mode](https://learn.chatgpt.com/docs/remote)** connects to a computer that must remain awake and online. It has a different execution requirement from a Cloud task.
|
|
60
50
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
With the Cloud environment, database access and applicable tests configured, the intended workflow is:
|
|
64
|
-
|
|
65
|
-
1. A developer agent prepares the APEX application changes.
|
|
66
|
-
2. A reviewer checks the code.
|
|
67
|
-
3. An independent QA agent runs the configured tests.
|
|
68
|
-
4. You review the result before an authorized deployment.
|
|
69
|
-
|
|
70
|
-
The [Cloud setup guide](docs/codex-cloud.md) covers **CLI + ORDS**. The complete agent-team workflow in Codex Cloud still needs end-to-end verification; the guide does not establish native Cloud plugin/MCP discovery or panel support. Existing local team and Oracle evidence retains its documented scope.
|
|
71
|
-
|
|
72
|
-

|
|
73
|
-
|
|
74
|
-
_Illustrative overview, with the setup and verification limits described above._
|
|
51
|
+
The [Cloud setup guide](docs/codex-cloud.md) covers CLI + ORDS in a configured container. It does not establish native Cloud plugin/MCP discovery or panel support. Local and connected evidence retains its recorded version and scope.
|
|
75
52
|
|
|
76
53
|
## Install from npm
|
|
77
54
|
|
|
78
|
-
Use Node 24 LTS (supported range: Node 24–26).
|
|
55
|
+
Use Node 24 LTS (supported range: Node 24–26). Install [apexrest](https://www.npmjs.com/package/apexrest) from npm. The stable release version is `1.0.0`; the commands below use `latest`. See [release notes](docs/release-notes.md) for distribution and verification status.
|
|
79
56
|
|
|
80
57
|
Install the CLI globally and check its version:
|
|
81
58
|
|
|
82
59
|
```sh
|
|
83
|
-
npm install -g apexrest
|
|
60
|
+
npm install -g apexrest
|
|
84
61
|
apexrest --version
|
|
85
62
|
apexrest
|
|
86
63
|
```
|
|
@@ -90,12 +67,12 @@ The last command opens the terminal menu. Choose **Install tools** for missing d
|
|
|
90
67
|
For a project-local installation:
|
|
91
68
|
|
|
92
69
|
```sh
|
|
93
|
-
npm install apexrest
|
|
70
|
+
npm install apexrest
|
|
94
71
|
npx apexrest --version
|
|
95
72
|
npx apexrest
|
|
96
73
|
```
|
|
97
74
|
|
|
98
|
-
To pin this version, use `npm install -g apexrest@0.
|
|
75
|
+
To pin this version, use `npm install -g apexrest@1.0.0`. npm includes the built runtime, so no Git checkout or local build is needed. The repository installation below remains available.
|
|
99
76
|
|
|
100
77
|
## Install with the terminal menu
|
|
101
78
|
|
package/README.uk.md
CHANGED
|
@@ -16,23 +16,13 @@ APEXREST поєднує нативні навички Codex та інструм
|
|
|
16
16
|
|
|
17
17
|

|
|
18
18
|
|
|
19
|
-
> **Стабільний випуск: `0.
|
|
19
|
+
> **Стабільний випуск: `1.0.0`.** Працюйте безпосередньо в поточній сесії Codex з 18 MCP-інструментами та 12 спеціалізованими skills. Codex керує розмовою й виконанням; APEXREST виконує операції Oracle/APEX. Програмне очікування завдань, пакетні метадані, стисла перевірка проєкту й цільова довідка скорочують рутинні виклики. Зміни й межі доказів — у [примітках до випуску](docs/release-notes.uk.md). Незалежні інструменти; це не офіційний продукт Oracle чи OpenAI.
|
|
20
20
|
|
|
21
|
-
Опишіть
|
|
22
|
-
|
|
23
|
-
За замовчуванням працює один агент; команда потребує явного увімкнення у Settings. Дивіться [налаштування виконання](docs/work-modes.uk.md).
|
|
24
|
-
|
|
25
|
-
У Settings можна обрати **Single agent / Agent team** та **Codex in-app browser / External system browser** для перевірок APEX. Single працює в поточному чаті; панель доступна за запитом. [Налаштування й межі перевірки](docs/work-modes.uk.md).
|
|
21
|
+
Опишіть зміну в чаті Codex або використовуйте `$apexrest-work`. Реалізація починається в тому самому контексті без виклику запуску плагіна. Дивіться [сценарій чату](docs/chat-workflow.uk.md) та [інтеграцію Codex](docs/codex-integration.uk.md). Для перевірки APEX оберіть **Codex in-app browser / External system browser** у Settings.
|
|
26
22
|
|
|
27
23
|
**Settings → Database network transport** задає **Direct Oracle listener** або **ORDS HTTP(S)** для нових операцій у всіх проєктах. Прямий режим пропонує вибір збережених з’єднань SQLcl. ORDS використовує наявні ім’я користувача й пароль бази даних та ORDS URL схеми, коли listener, зазвичай на порту 1521, недоступний. Налаштування й пароль зберігаються у приватних локальних файлах плагіна; вводьте пароль у локальній панелі або через CLI `--password-file`. ORDS використовує SQLcl CLI та підтримує імпорт/експорт APEXlang. Перемикання назад зберігає обидва налаштування з’єднання. Посібник [SQL через ORDS](docs/ords.uk.md) описує налаштування й межі перевірки.
|
|
28
24
|
|
|
29
|
-
Відкрийте `$apexrest-panel
|
|
30
|
-
|
|
31
|
-
Читайте [повний агентний процес зі скріншотами](docs/agent-workflow.uk.md): налаштування завдання, ролі покемонів, обов’язкові рев’ю, QA, цикли виправлень і дозволена доставка APEX.
|
|
32
|
-
|
|
33
|
-

|
|
34
|
-
|
|
35
|
-
_Справжній знімок вбудованого браузера Codex. Ізольований приклад із кодом перевіряє виконання команди; він не показує імпорт Oracle._
|
|
25
|
+
Відкрийте `$apexrest-panel` для налаштувань проєкту й з’єднань, фактичних завдань Oracle/APEX і діагностики в Codex. Консольне подання — `apexrest panel tui`. Дивіться [панель розробки](docs/panel.uk.md).
|
|
36
26
|
|
|
37
27
|
## ORDS SQL: шлях до Codex Cloud
|
|
38
28
|
|
|
@@ -46,11 +36,11 @@ connect -orest app_user@https://example.com/ords/app_user/
|
|
|
46
36
|
|
|
47
37
|
Параметр `-orest` обирає REST-з’єднання. Замініть приклади облікового запису й URL схеми на свою дозволену ціль; REST-Enabled SQL має бути ввімкнено. Обліковому запису все одно потрібні дані для входу до бази та права на запитану роботу. Дивіться [SQL через ORDS](docs/ords.uk.md).
|
|
48
38
|
|
|
49
|
-
|
|
|
50
|
-
|
|
|
51
|
-
| Де виконуються задачі
|
|
52
|
-
| Інструменти й залежності | Встановлюються й підтримуються на вашому комп’ютері.
|
|
53
|
-
| Доступ до бази
|
|
39
|
+
| | Локальний режим | Налаштування Codex Cloud |
|
|
40
|
+
| ------------------------ | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
|
|
41
|
+
| Де виконуються задачі | На вашому комп’ютері; він має залишатися ввімкненим, поки виконуються операції. | У хмарному контейнері; домашній комп’ютер може бути вимкнений. |
|
|
42
|
+
| Інструменти й залежності | Встановлюються й підтримуються на вашому комп’ютері. | Готуються скриптами налаштування й обслуговування для повторного використання. |
|
|
43
|
+
| Доступ до бази | Пряме з’єднання Oracle або ORDS HTTP(S). | Описане налаштування використовує дозволену точку доступу ORDS через HTTPS. |
|
|
54
44
|
|
|
55
45
|
### Делегуйте роботу з телефона
|
|
56
46
|
|
|
@@ -58,29 +48,16 @@ connect -orest app_user@https://example.com/ords/app_user/
|
|
|
58
48
|
|
|
59
49
|
**[Режим Remote](https://learn.chatgpt.com/docs/remote) мобільного застосунку ChatGPT** підключається до комп’ютера, який має залишатися активним і в мережі. Його вимоги до виконання відрізняються від задачі у Cloud.
|
|
60
50
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
Після налаштування хмарного середовища, доступу до бази й відповідних тестів передбачено такий процес:
|
|
64
|
-
|
|
65
|
-
1. Агент-розробник готує зміни застосунку APEX.
|
|
66
|
-
2. Рецензент перевіряє код.
|
|
67
|
-
3. Незалежний QA-агент запускає налаштовані тести.
|
|
68
|
-
4. Ви переглядаєте результат перед дозволеним розгортанням.
|
|
69
|
-
|
|
70
|
-
[Посібник налаштування Cloud](docs/codex-cloud.uk.md) описує **CLI + ORDS**. Повний процес роботи команди агентів у Codex Cloud ще потребує наскрізної перевірки; посібник не підтверджує виявлення нативного плагіна/MCP або підтримку панелі у Cloud. Наявні докази локальної команди й Oracle зберігають свої задокументовані межі.
|
|
71
|
-
|
|
72
|
-

|
|
73
|
-
|
|
74
|
-
_Ілюстративний огляд англійською; налаштування й межі перевірки пояснено українською вище._
|
|
51
|
+
[Посібник Cloud](docs/codex-cloud.uk.md) описує CLI + ORDS у налаштованому контейнері. Він не підтверджує нативне виявлення плагіна/MCP чи підтримку панелі у Cloud. Локальні й підключені докази зберігають свої версії та межі.
|
|
75
52
|
|
|
76
53
|
## Встановлення з npm
|
|
77
54
|
|
|
78
|
-
Використовуйте Node 24 LTS (підтримуваний діапазон: Node 24–26).
|
|
55
|
+
Використовуйте Node 24 LTS (підтримуваний діапазон: Node 24–26). Встановіть [apexrest](https://www.npmjs.com/package/apexrest) з npm. Версія стабільного випуску — `1.0.0`; наведені нижче команди використовують `latest`. Стан розповсюдження й перевірок — у [примітках до випуску](docs/release-notes.uk.md).
|
|
79
56
|
|
|
80
57
|
Встановіть CLI глобально та перевірте версію:
|
|
81
58
|
|
|
82
59
|
```sh
|
|
83
|
-
npm install -g apexrest
|
|
60
|
+
npm install -g apexrest
|
|
84
61
|
apexrest --version
|
|
85
62
|
apexrest
|
|
86
63
|
```
|
|
@@ -90,12 +67,12 @@ apexrest
|
|
|
90
67
|
Для локального встановлення в проєкті:
|
|
91
68
|
|
|
92
69
|
```sh
|
|
93
|
-
npm install apexrest
|
|
70
|
+
npm install apexrest
|
|
94
71
|
npx apexrest --version
|
|
95
72
|
npx apexrest
|
|
96
73
|
```
|
|
97
74
|
|
|
98
|
-
Щоб зафіксувати цю версію, використовуйте `npm install -g apexrest@0.
|
|
75
|
+
Щоб зафіксувати цю версію, використовуйте `npm install -g apexrest@1.0.0`. npm містить готове середовище виконання, тому копія Git-репозиторію чи локальне збирання не потрібні. Наведене нижче встановлення з репозиторію також доступне.
|
|
99
76
|
|
|
100
77
|
## Встановлення через термінал
|
|
101
78
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "apexrest-apex",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "Develop, deploy and test Oracle APEX applications with Codex.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "APEXREST",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"interface": {
|
|
11
11
|
"displayName": "APEXREST for Codex",
|
|
12
12
|
"shortDescription": "Oracle APEX development workflows",
|
|
13
|
-
"longDescription": "
|
|
13
|
+
"longDescription": "Oracle APEX development, controlled deployment and testing directly in your current Codex session.",
|
|
14
14
|
"developerName": "APEXREST",
|
|
15
15
|
"websiteURL": "https://apex.rest",
|
|
16
16
|
"composerIcon": "./assets/apexrest-icon.svg",
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
"Write"
|
|
23
23
|
],
|
|
24
24
|
"defaultPrompt": [
|
|
25
|
-
"Use $apexrest-work
|
|
26
|
-
"Use $apexrest-panel to open project settings
|
|
25
|
+
"Use $apexrest-work to complete my APEX change directly in this Codex session.",
|
|
26
|
+
"Use $apexrest-panel to open project settings and Oracle/APEX operations inside Codex.",
|
|
27
27
|
"Use $apexrest-menu to show all functions, setup and connection diagnostics."
|
|
28
28
|
]
|
|
29
29
|
},
|
|
@@ -10,9 +10,3 @@ Oracle-generated blank-app files retain their original headers and MMD metadata.
|
|
|
10
10
|
Node.js, Java, SQLcl and Chromium are downloaded separately from their vendors.
|
|
11
11
|
No Oracle or Java executable is redistributed in APEXREST packages.
|
|
12
12
|
Bundled dependency license texts and a CycloneDX SBOM accompany each local release.
|
|
13
|
-
|
|
14
|
-
Pokémon agent avatars: five sprites from PokeAPI/sprites, with pinned source URLs
|
|
15
|
-
and hashes in resources/panel/assets/sources.json. All image contents are
|
|
16
|
-
Copyright The Pokémon Company, as stated by the upstream LICENCE.txt included
|
|
17
|
-
with the assets. These images are not covered by this project's Apache license.
|
|
18
|
-
APEXREST is independent and is not endorsed by The Pokémon Company.
|
|
@@ -12,31 +12,25 @@
|
|
|
12
12
|
<div class="project-label">PROJECT</div><strong id="project-name">Connecting…</strong><div id="project-path" class="subtle path"></div>
|
|
13
13
|
<nav aria-label="Development views">
|
|
14
14
|
<button data-view="overview" aria-current="page"><span>◈</span> Overview</button>
|
|
15
|
-
<button data-view="team"><span>◎</span> Agents</button>
|
|
16
15
|
<button data-view="operations"><span>↗</span> APEX operations</button>
|
|
17
16
|
<button data-view="settings"><span>☷</span> Settings</button>
|
|
18
17
|
</nav>
|
|
19
18
|
<div class="sidebar-bottom"><span id="connection" class="badge">Connecting</span><p id="updated" class="subtle">Waiting for workspace data</p><button id="refresh" class="quiet">Refresh now</button></div>
|
|
20
19
|
</aside>
|
|
21
20
|
<main>
|
|
22
|
-
<header><div><p class="eyebrow">DEVELOPMENT CONTROL</p><h1 id="view-title">Workspace overview</h1><p id="view-subtitle" class="subtle">
|
|
21
|
+
<header><div><p class="eyebrow">DEVELOPMENT CONTROL</p><h1 id="view-title">Workspace overview</h1><p id="view-subtitle" class="subtle">Project settings and APEX operations for your current Codex session.</p></div></header>
|
|
23
22
|
<div id="notice" role="status" class="notice" hidden></div>
|
|
24
23
|
<div id="connection-error" role="alert" class="notice error" hidden></div>
|
|
25
24
|
<section id="metrics" class="metrics" aria-label="Workspace summary"></section>
|
|
26
25
|
<section data-page="overview"><div id="overview-live"></div></section>
|
|
27
|
-
<section data-page="team" hidden>
|
|
28
|
-
<div class="section-heading"><h2>Development runs</h2><label class="inline-label">Run <select id="team-select" aria-label="Selected run"></select></label></div>
|
|
29
|
-
<div id="team-live"></div>
|
|
30
|
-
<form id="message-form" class="card"><h3>Send a task update</h3><label for="message">Clarify the task or pass new information to the active agent</label><textarea id="message" rows="3" maxlength="8000" required placeholder="Include the behavior or acceptance check you want changed…"></textarea><div class="form-footer"><p class="subtle">New input invalidates a completion based on the previous task.</p><button class="primary" type="submit">Send update</button><button id="cancel-team" type="button" class="danger">Stop run</button></div></form>
|
|
31
|
-
</section>
|
|
32
26
|
<section data-page="operations" hidden>
|
|
33
|
-
<div class="card"><div class="section-heading"><div><h2>Run a check</h2><p class="subtle">Use the selected project's existing toolchain and authorization.</p></div></div><div class="actions"><button id="validate">Compile APEX source</button><label>Environment<select id="environment"><option value="">Choose environment</option></select></label><label>Test suite<select id="suite"><option value="unit">Unit</option><option value="sql">SQL</option><option value="api">API</option><option value="e2e">Playwright E2E</option><option value="all">All configured</option></select></label><button id="run-tests">Run checks</button><button id="plan">Prepare deployment plan</button></div><p class="subtle">Application imports keep their existing plan, backup and approval gates. This panel does not grant deployment permission.</p></div>
|
|
27
|
+
<div class="card"><div class="section-heading"><div><h2>Run a check</h2><p class="subtle">Use the selected project's existing toolchain and authorization.</p></div></div><div class="actions"><button id="validate">Compile APEX source</button><label>Environment<select id="environment"><option value="">Choose environment</option></select></label><label>Test suite<select id="suite"><option value="unit">Unit</option><option value="sql">SQL</option><option value="api">API</option><option value="e2e">Playwright E2E</option><option value="all">All configured</option></select></label><button id="run-tests">Run checks</button><button id="plan">Prepare deployment plan</button><button id="open-browser">Open verification browser</button></div><p class="subtle">Application imports keep their existing plan, backup and approval gates. This panel does not grant deployment permission.</p></div>
|
|
34
28
|
<div id="operations-live"></div>
|
|
35
29
|
</section>
|
|
36
30
|
<section data-page="settings" hidden>
|
|
37
31
|
<div class="two-columns">
|
|
38
32
|
<form id="sqlcl-form" class="card"><p class="eyebrow">ORACLE CONNECTION</p><h2>Database connectivity</h2><p class="subtle">Saved at plugin level for new APEXREST operations across projects.</p><label>Database network transport<select id="sqlcl-transport"><option value="direct">Direct Oracle listener</option><option value="ords">ORDS HTTP(S)</option></select></label><p id="sqlcl-transport-note" class="subtle"></p><label>SQLcl execution<select id="sqlcl-mode"><option value="cli">SQLcl CLI</option><option value="mcp">Official SQLcl MCP</option></select></label><label>MCP restriction level<select id="sqlcl-level"><option value="4">Level 4 · restricted (default)</option><option value="1">Level 1 · allow SQLcl scripts</option></select></label><button type="submit">Save SQLcl settings</button></form>
|
|
39
|
-
<form id="preferences-form" class="card"><p class="eyebrow">
|
|
33
|
+
<form id="preferences-form" class="card"><p class="eyebrow">BROWSER VERIFICATION</p><h2>Verification browser</h2><label>Browser for APEX verification<select id="default-browser-mode"><option value="codex">Codex in-app browser</option><option value="external">External system browser</option></select></label><p class="subtle">The external browser uses your normal browser session for interactive login, including SSO. Automated Playwright suites use separate authentication. The dashboard stays in Codex.</p><button type="submit">Save browser preference</button></form>
|
|
40
34
|
</div>
|
|
41
35
|
<form id="connection-form" class="card" autocomplete="off">
|
|
42
36
|
<p class="eyebrow">PLUGIN CONNECTION SETTINGS</p><h2>Connection references</h2>
|
|
@@ -61,8 +55,7 @@
|
|
|
61
55
|
<button id="connection-save" type="submit">Save direct connection</button>
|
|
62
56
|
</form><div id="settings-live"></div>
|
|
63
57
|
</section>
|
|
64
|
-
<footer>APEXREST for Codex <span id="version"></span><span>Local workspace ·
|
|
58
|
+
<footer>APEXREST for Codex <span id="version"></span><span>Local workspace · Refreshes while open</span></footer>
|
|
65
59
|
</main>
|
|
66
|
-
<dialog id="task-dialog"><form id="task-form"><div class="section-heading"><div><p class="eyebrow">DEVELOPMENT TASK</p><h2>Start a task</h2></div><button type="button" id="close-task" class="quiet" aria-label="Close new task">✕</button></div><label for="task">Task and acceptance criteria</label><textarea id="task" rows="6" maxlength="16000" required placeholder="Describe the APEX change, target and checks. Include any existing authorization and constraints."></textarea><div class="actions"><label>Execution mode<select id="task-execution-mode"><option value="single">Single agent</option><option value="team">Agent team</option></select></label><label>Verification browser<select id="task-browser-mode"><option value="codex">Codex in-app browser</option><option value="external">External system browser</option></select></label><label>Developers<select id="task-developers"><option>1</option><option>2</option><option>3</option></select></label><label>Permissions<select id="task-sandbox"><option value="workspace-write">Project write</option><option value="read-only">Read only</option></select></label><label>Time limit (seconds)<input id="task-timeout" type="number" min="30" max="3600" required></label></div><p id="task-workflow-note" class="subtle"></p><button type="submit" class="primary">Start task</button></form></dialog>
|
|
67
60
|
</body>
|
|
68
61
|
</html>
|
|
@@ -341,71 +341,6 @@ header .subtle {
|
|
|
341
341
|
color: var(--yellow);
|
|
342
342
|
border-color: #494231;
|
|
343
343
|
}
|
|
344
|
-
.steps {
|
|
345
|
-
display: flex;
|
|
346
|
-
margin: 5px 0 15px;
|
|
347
|
-
gap: 7px;
|
|
348
|
-
}
|
|
349
|
-
.step {
|
|
350
|
-
flex: 1;
|
|
351
|
-
padding-top: 12px;
|
|
352
|
-
border-top: 3px solid var(--line);
|
|
353
|
-
font-size: 10px;
|
|
354
|
-
color: var(--muted);
|
|
355
|
-
line-height: 1.5;
|
|
356
|
-
}
|
|
357
|
-
.step.done {
|
|
358
|
-
border-color: var(--accent);
|
|
359
|
-
}
|
|
360
|
-
.step.active {
|
|
361
|
-
border-color: var(--blue);
|
|
362
|
-
color: var(--text);
|
|
363
|
-
}
|
|
364
|
-
.agents {
|
|
365
|
-
display: grid;
|
|
366
|
-
grid-template-columns: repeat(auto-fit, minmax(185px, 1fr));
|
|
367
|
-
gap: 12px;
|
|
368
|
-
}
|
|
369
|
-
.agent {
|
|
370
|
-
background: var(--bg);
|
|
371
|
-
border: 1px solid var(--line);
|
|
372
|
-
border-radius: 8px;
|
|
373
|
-
padding: 16px;
|
|
374
|
-
min-width: 0;
|
|
375
|
-
}
|
|
376
|
-
.agent-title {
|
|
377
|
-
display: flex;
|
|
378
|
-
justify-content: space-between;
|
|
379
|
-
align-items: center;
|
|
380
|
-
gap: 8px;
|
|
381
|
-
margin-bottom: 18px;
|
|
382
|
-
}
|
|
383
|
-
.role-icon {
|
|
384
|
-
display: inline-grid;
|
|
385
|
-
place-items: center;
|
|
386
|
-
width: 28px;
|
|
387
|
-
height: 28px;
|
|
388
|
-
border: 1px solid var(--line);
|
|
389
|
-
border-radius: 50%;
|
|
390
|
-
font-size: 11px;
|
|
391
|
-
color: var(--accent);
|
|
392
|
-
margin-right: 8px;
|
|
393
|
-
}
|
|
394
|
-
.agent-action {
|
|
395
|
-
font-size: 12px;
|
|
396
|
-
line-height: 1.6;
|
|
397
|
-
white-space: pre-wrap;
|
|
398
|
-
overflow-wrap: anywhere;
|
|
399
|
-
min-height: 40px;
|
|
400
|
-
margin: 13px 0;
|
|
401
|
-
}
|
|
402
|
-
.agent-meta {
|
|
403
|
-
font-size: 10px;
|
|
404
|
-
color: var(--muted);
|
|
405
|
-
display: grid;
|
|
406
|
-
gap: 5px;
|
|
407
|
-
overflow-wrap: anywhere;
|
|
408
|
-
}
|
|
409
344
|
.empty {
|
|
410
345
|
padding: 27px 12px;
|
|
411
346
|
color: var(--muted);
|
|
@@ -434,47 +369,19 @@ header .subtle {
|
|
|
434
369
|
dl {
|
|
435
370
|
margin: 0;
|
|
436
371
|
}
|
|
437
|
-
.
|
|
438
|
-
border-left: 1px solid var(--line);
|
|
439
|
-
padding: 0 0 18px 18px;
|
|
440
|
-
margin-left: 5px;
|
|
441
|
-
position: relative;
|
|
442
|
-
}
|
|
443
|
-
.activity:before {
|
|
444
|
-
content: '';
|
|
445
|
-
width: 7px;
|
|
446
|
-
height: 7px;
|
|
447
|
-
border-radius: 50%;
|
|
448
|
-
background: var(--muted);
|
|
449
|
-
position: absolute;
|
|
450
|
-
left: -4px;
|
|
451
|
-
top: 5px;
|
|
452
|
-
}
|
|
453
|
-
.activity .subtle {
|
|
454
|
-
font-size: 10px;
|
|
455
|
-
}
|
|
456
|
-
.activity p {
|
|
457
|
-
font-size: 12px;
|
|
458
|
-
white-space: pre-wrap;
|
|
459
|
-
overflow-wrap: anywhere;
|
|
460
|
-
margin-top: 6px;
|
|
461
|
-
}
|
|
462
|
-
.activity:last-child {
|
|
463
|
-
padding-bottom: 0;
|
|
464
|
-
}
|
|
465
|
-
.review {
|
|
372
|
+
.journal-entry {
|
|
466
373
|
padding: 15px 0;
|
|
467
374
|
border-bottom: 1px solid var(--line);
|
|
468
375
|
}
|
|
469
|
-
.
|
|
376
|
+
.journal-entry:last-child {
|
|
470
377
|
border: 0;
|
|
471
378
|
}
|
|
472
|
-
.
|
|
379
|
+
.journal-entry p {
|
|
473
380
|
font-size: 12px;
|
|
474
381
|
margin-top: 9px;
|
|
475
382
|
white-space: pre-wrap;
|
|
476
383
|
}
|
|
477
|
-
.
|
|
384
|
+
.journal-entry ul {
|
|
478
385
|
font-size: 12px;
|
|
479
386
|
padding-left: 18px;
|
|
480
387
|
line-height: 1.7;
|
|
@@ -529,28 +436,6 @@ td p {
|
|
|
529
436
|
.actions button {
|
|
530
437
|
min-height: 39px;
|
|
531
438
|
}
|
|
532
|
-
.form-footer {
|
|
533
|
-
display: flex;
|
|
534
|
-
align-items: center;
|
|
535
|
-
justify-content: flex-end;
|
|
536
|
-
gap: 12px;
|
|
537
|
-
flex-wrap: wrap;
|
|
538
|
-
margin-top: 15px;
|
|
539
|
-
}
|
|
540
|
-
.form-footer p {
|
|
541
|
-
flex: 1;
|
|
542
|
-
min-width: 180px;
|
|
543
|
-
}
|
|
544
|
-
.inline-label {
|
|
545
|
-
display: flex;
|
|
546
|
-
align-items: center;
|
|
547
|
-
gap: 9px;
|
|
548
|
-
margin: 0;
|
|
549
|
-
max-width: 360px;
|
|
550
|
-
}
|
|
551
|
-
.inline-label select {
|
|
552
|
-
max-width: 290px;
|
|
553
|
-
}
|
|
554
439
|
.notice {
|
|
555
440
|
padding: 13px 16px;
|
|
556
441
|
border: 1px solid var(--line);
|
|
@@ -598,22 +483,6 @@ footer {
|
|
|
598
483
|
footer span:last-child {
|
|
599
484
|
margin-left: auto;
|
|
600
485
|
}
|
|
601
|
-
dialog {
|
|
602
|
-
border: 1px solid var(--line);
|
|
603
|
-
background: var(--surface);
|
|
604
|
-
color: var(--text);
|
|
605
|
-
border-radius: 14px;
|
|
606
|
-
padding: 25px;
|
|
607
|
-
width: min(650px, calc(100vw - 36px));
|
|
608
|
-
box-shadow: 0 20px 90px #0008;
|
|
609
|
-
}
|
|
610
|
-
dialog::backdrop {
|
|
611
|
-
background: #0008;
|
|
612
|
-
backdrop-filter: blur(3px);
|
|
613
|
-
}
|
|
614
|
-
dialog .primary {
|
|
615
|
-
margin-top: 17px;
|
|
616
|
-
}
|
|
617
486
|
body[data-disconnected='true'] main {
|
|
618
487
|
opacity: 0.78;
|
|
619
488
|
}
|
|
@@ -642,9 +511,6 @@ body[data-disconnected='true'] main {
|
|
|
642
511
|
.metric .value {
|
|
643
512
|
font-size: 19px;
|
|
644
513
|
}
|
|
645
|
-
.agents {
|
|
646
|
-
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
647
|
-
}
|
|
648
514
|
}
|
|
649
515
|
@media (max-width: 650px) {
|
|
650
516
|
body {
|
|
@@ -704,22 +570,10 @@ body[data-disconnected='true'] main {
|
|
|
704
570
|
.card {
|
|
705
571
|
padding: 17px;
|
|
706
572
|
}
|
|
707
|
-
.steps {
|
|
708
|
-
flex-wrap: wrap;
|
|
709
|
-
}
|
|
710
|
-
.step {
|
|
711
|
-
flex-basis: 28%;
|
|
712
|
-
}
|
|
713
|
-
.agents {
|
|
714
|
-
grid-template-columns: 1fr;
|
|
715
|
-
}
|
|
716
573
|
.section-heading {
|
|
717
574
|
align-items: flex-start;
|
|
718
575
|
flex-wrap: wrap;
|
|
719
576
|
}
|
|
720
|
-
.form-footer {
|
|
721
|
-
justify-content: flex-start;
|
|
722
|
-
}
|
|
723
577
|
footer {
|
|
724
578
|
font-size: 8px;
|
|
725
579
|
line-height: 1.6;
|
|
@@ -768,38 +622,6 @@ body[data-disconnected='true'] main {
|
|
|
768
622
|
scroll-behavior: auto !important;
|
|
769
623
|
}
|
|
770
624
|
}
|
|
771
|
-
.avatar {
|
|
772
|
-
width: 64px;
|
|
773
|
-
height: 64px;
|
|
774
|
-
object-fit: contain;
|
|
775
|
-
image-rendering: pixelated;
|
|
776
|
-
flex-shrink: 0;
|
|
777
|
-
}
|
|
778
|
-
.agent-title {
|
|
779
|
-
display: flex;
|
|
780
|
-
align-items: center;
|
|
781
|
-
gap: 10px;
|
|
782
|
-
}
|
|
783
|
-
.agent-title h3 {
|
|
784
|
-
display: flex;
|
|
785
|
-
flex-direction: column;
|
|
786
|
-
align-items: flex-start;
|
|
787
|
-
gap: 4px;
|
|
788
|
-
}
|
|
789
|
-
.agent-title small {
|
|
790
|
-
font-size: 11px;
|
|
791
|
-
font-weight: 500;
|
|
792
|
-
}
|
|
793
625
|
.brand-mark img {
|
|
794
626
|
display: block;
|
|
795
627
|
}
|
|
796
|
-
.task-summary {
|
|
797
|
-
font-size: 13px;
|
|
798
|
-
line-height: 1.6;
|
|
799
|
-
white-space: pre-wrap;
|
|
800
|
-
border-left: 2px solid var(--accent);
|
|
801
|
-
padding-left: 14px;
|
|
802
|
-
margin: 0 0 22px;
|
|
803
|
-
max-height: 150px;
|
|
804
|
-
overflow: auto;
|
|
805
|
-
}
|