apexrest 0.5.0-beta.1 → 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.
Files changed (84) hide show
  1. package/NOTICE +0 -6
  2. package/README.md +13 -36
  3. package/README.uk.md +13 -36
  4. package/dist/codex-compat/plugins/apexrest-apex/.codex-plugin/plugin.json +4 -4
  5. package/dist/codex-compat/plugins/apexrest-apex/NOTICE +0 -6
  6. package/dist/codex-compat/plugins/apexrest-apex/resources/panel/index.html +4 -11
  7. package/dist/codex-compat/plugins/apexrest-apex/resources/panel/panel.css +4 -182
  8. package/dist/codex-compat/plugins/apexrest-apex/resources/panel/panel.js +61 -383
  9. package/dist/codex-compat/plugins/apexrest-apex/resources/playwright/package.json +1 -1
  10. package/dist/codex-compat/plugins/apexrest-apex/resources/schemas/operations.schema.json +0 -327
  11. package/dist/codex-compat/plugins/apexrest-apex/runtime/apexrest.mjs +12 -43
  12. package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-AOZ4CKYZ.mjs → chunk-3XRCAA5S.mjs} +4 -4
  13. package/dist/{runtime/chunk-L6AYPZ54.mjs → codex-compat/plugins/apexrest-apex/runtime/chunk-4GIV3RLJ.mjs} +2 -2
  14. package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-RF4XQO6I.mjs → chunk-CJC3ESO4.mjs} +2 -2
  15. package/dist/{runtime/chunk-OIK5PIV3.mjs → codex-compat/plugins/apexrest-apex/runtime/chunk-DLUIX7FA.mjs} +20 -62
  16. package/dist/{runtime/chunk-JWX4UQAZ.mjs → codex-compat/plugins/apexrest-apex/runtime/chunk-EG2NPDAF.mjs} +1 -1
  17. package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-EMRXOSVH.mjs +14 -0
  18. package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-FPOEB42H.mjs → chunk-JN3KZCDI.mjs} +1 -1
  19. package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-QLRGI23I.mjs → chunk-K5BV3TBZ.mjs} +9 -108
  20. package/dist/{runtime/chunk-MVLTHX4F.mjs → codex-compat/plugins/apexrest-apex/runtime/chunk-MNYOWIHJ.mjs} +24 -77
  21. package/dist/{runtime/chunk-EES7RR3V.mjs → codex-compat/plugins/apexrest-apex/runtime/chunk-NHYXXMBY.mjs} +21 -213
  22. package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-2SZCZZ3J.mjs → chunk-R6MER5QH.mjs} +0 -1
  23. package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-6DVCO643.mjs → chunk-SVB7G3KQ.mjs} +5 -7
  24. package/dist/{runtime/chunk-ZDS4MURX.mjs → codex-compat/plugins/apexrest-apex/runtime/chunk-SWW7SKB4.mjs} +19 -42
  25. package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-F62JTWRM.mjs → chunk-XZNIV6UL.mjs} +5 -6
  26. package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-4YG2AJYM.mjs → chunk-YXHLPFQX.mjs} +15 -13
  27. package/dist/codex-compat/plugins/apexrest-apex/runtime/mcp.mjs +7 -8
  28. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-apexlang/SKILL.md +1 -1
  29. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-database/SKILL.md +0 -2
  30. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-debug/SKILL.md +0 -2
  31. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-menu/SKILL.md +13 -14
  32. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-menu/references/cli-catalog.md +14 -15
  33. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-panel/SKILL.md +4 -10
  34. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-panel/agents/openai.yaml +3 -3
  35. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-project/SKILL.md +1 -1
  36. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-work/SKILL.md +5 -8
  37. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-work/agents/openai.yaml +3 -3
  38. package/dist/resources/panel/index.html +4 -11
  39. package/dist/resources/panel/panel.css +4 -182
  40. package/dist/resources/panel/panel.js +61 -383
  41. package/dist/resources/playwright/package.json +1 -1
  42. package/dist/resources/schemas/operations.schema.json +0 -327
  43. package/dist/runtime/apexrest.mjs +12 -43
  44. package/dist/runtime/{chunk-AOZ4CKYZ.mjs → chunk-3XRCAA5S.mjs} +4 -4
  45. package/dist/{codex-compat/plugins/apexrest-apex/runtime/chunk-L6AYPZ54.mjs → runtime/chunk-4GIV3RLJ.mjs} +2 -2
  46. package/dist/runtime/{chunk-RF4XQO6I.mjs → chunk-CJC3ESO4.mjs} +2 -2
  47. package/dist/{codex-compat/plugins/apexrest-apex/runtime/chunk-OIK5PIV3.mjs → runtime/chunk-DLUIX7FA.mjs} +20 -62
  48. package/dist/{codex-compat/plugins/apexrest-apex/runtime/chunk-JWX4UQAZ.mjs → runtime/chunk-EG2NPDAF.mjs} +1 -1
  49. package/dist/runtime/chunk-EMRXOSVH.mjs +14 -0
  50. package/dist/runtime/{chunk-FPOEB42H.mjs → chunk-JN3KZCDI.mjs} +1 -1
  51. package/dist/runtime/{chunk-QLRGI23I.mjs → chunk-K5BV3TBZ.mjs} +9 -108
  52. package/dist/{codex-compat/plugins/apexrest-apex/runtime/chunk-MVLTHX4F.mjs → runtime/chunk-MNYOWIHJ.mjs} +24 -77
  53. package/dist/{codex-compat/plugins/apexrest-apex/runtime/chunk-EES7RR3V.mjs → runtime/chunk-NHYXXMBY.mjs} +21 -213
  54. package/dist/runtime/{chunk-2SZCZZ3J.mjs → chunk-R6MER5QH.mjs} +0 -1
  55. package/dist/runtime/{chunk-6DVCO643.mjs → chunk-SVB7G3KQ.mjs} +5 -7
  56. package/dist/{codex-compat/plugins/apexrest-apex/runtime/chunk-ZDS4MURX.mjs → runtime/chunk-SWW7SKB4.mjs} +19 -42
  57. package/dist/runtime/{chunk-F62JTWRM.mjs → chunk-XZNIV6UL.mjs} +5 -6
  58. package/dist/runtime/{chunk-4YG2AJYM.mjs → chunk-YXHLPFQX.mjs} +15 -13
  59. package/dist/runtime/mcp.mjs +7 -8
  60. package/package.json +1 -3
  61. package/dist/codex-compat/plugins/apexrest-apex/resources/panel/assets/LICENCE.txt +0 -118
  62. package/dist/codex-compat/plugins/apexrest-apex/resources/panel/assets/bulbasaur.png +0 -0
  63. package/dist/codex-compat/plugins/apexrest-apex/resources/panel/assets/charmander.png +0 -0
  64. package/dist/codex-compat/plugins/apexrest-apex/resources/panel/assets/mewtwo.png +0 -0
  65. package/dist/codex-compat/plugins/apexrest-apex/resources/panel/assets/pikachu.png +0 -0
  66. package/dist/codex-compat/plugins/apexrest-apex/resources/panel/assets/sources.json +0 -36
  67. package/dist/codex-compat/plugins/apexrest-apex/resources/panel/assets/squirtle.png +0 -0
  68. package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-ED2YPDPS.mjs +0 -1123
  69. package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-GFRSRK3K.mjs +0 -16
  70. package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-MIJVJA7M.mjs +0 -15
  71. package/dist/codex-compat/plugins/apexrest-apex/runtime/chunk-VPCUV5QA.mjs +0 -237
  72. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-team/SKILL.md +0 -24
  73. package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-team/agents/openai.yaml +0 -4
  74. package/dist/resources/panel/assets/LICENCE.txt +0 -118
  75. package/dist/resources/panel/assets/bulbasaur.png +0 -0
  76. package/dist/resources/panel/assets/charmander.png +0 -0
  77. package/dist/resources/panel/assets/mewtwo.png +0 -0
  78. package/dist/resources/panel/assets/pikachu.png +0 -0
  79. package/dist/resources/panel/assets/sources.json +0 -36
  80. package/dist/resources/panel/assets/squirtle.png +0 -0
  81. package/dist/runtime/chunk-ED2YPDPS.mjs +0 -1123
  82. package/dist/runtime/chunk-GFRSRK3K.mjs +0 -16
  83. package/dist/runtime/chunk-MIJVJA7M.mjs +0 -15
  84. 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
  ![APEXREST connects a Codex request to APEXlang source, a verified deployment plan, Oracle APEX and runtime checks.](docs/assets/overview.svg)
18
18
 
19
- > **Beta: `0.5.0-beta.1`.** Single mode uses your current Codex session; teams require explicit Settings opt-in. Programmatic job waiting, metadata batches, concise project summaries and focused reference retrieval reduce repeated model/tool exchanges; see the [release notes](docs/release-notes.md). Existing Oracle template compilation, unchanged ORDS application round-trip and native Codex installation evidence retains its recorded scope and version. Stable release readiness is still blocked by the remaining integration, recovery and platform checks. Independent APEXREST tooling; not an official Oracle or OpenAI product.
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 implementation in Codex chat: `$apexrest-work` uses the existing session directly in single mode, without another agent or automatic panel startup. The current host controls its model and permissions. Explicitly enabled teams retain separate sessions, Auto model routing and the in-app panel; results return to the same conversation. See [chat workflow and Auto models](docs/chat-workflow.md). The team retains separate developers, mandatory manager code review, independent QA and final manager review. See [team APIs and review gates](docs/team.md) and the [Codex source audit](docs/codex-integration.md).
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 live project settings, Pokémon agent activity, mandatory reviews, QA and APEX operations inside Codex. The console view is `apexrest panel tui`. See the [development panel](docs/panel.md).
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
- ![Actual Codex panel with Mewtwo, Pikachu, Charmander and Squirtle after a reviewed local coding task.](docs/assets/panel-agent-team.jpg)
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
- | | Local mode | Codex Cloud setup |
50
- | --- | --- | --- |
51
- | Where tasks run | On your computer; it must stay on while agents work. | In a hosted container; your home computer can be off. |
52
- | Tools and dependencies | Installed and maintained on your computer. | Prepared through reusable setup and maintenance scripts. |
53
- | Database access | Direct Oracle connection or ORDS HTTP(S). | The documented setup uses an authorized ORDS endpoint over HTTPS. |
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
- ### An agent-team workflow to configure and verify
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
- ![APEXREST concept: a browser or Slack on a phone delegates to Codex Cloud, whose CLI reaches Oracle through ORDS HTTPS; local and Cloud execution are compared, and the agent-team workflow still needs configuration and verification.](docs/assets/ords-codex-cloud.png)
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). This release targets [apexrest](https://www.npmjs.com/package/apexrest) `0.5.0-beta.1` on the npm `beta` channel. See the [publication record](docs/evidence/npm-050-publication.json) for publication status and registry verification. The `latest` channel remains on `0.4.0-beta.1`.
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@beta
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@beta
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.5.0-beta.1`. The repository installation below remains available.
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
  ![APEXREST поєднує запит у Codex із кодом APEXlang, перевіреним планом розгортання, Oracle APEX та перевірками виконання.](docs/assets/overview.uk.svg)
18
18
 
19
- > **Бета: `0.5.0-beta.1`.** Single використовує поточну сесію Codex; команда потребує явного увімкнення у Settings. Програмне очікування завдань, пакети метаданих, стислі відомості про проєкт і точковий пошук довідки зменшують повторні обміни між моделлю та інструментами; див. [примітки до випуску](docs/release-notes.uk.md). Наявні докази компіляції шаблонів Oracle, циклу незміненого застосунку через ORDS і нативного встановлення Codex зберігають зафіксовані межі та версії. Готовність стабільного випуску досі заблокована рештою інтеграційних, відновлювальних і платформних перевірок. APEXREST — незалежний інструмент, а не офіційний продукт Oracle чи OpenAI.
19
+ > **Стабільний випуск: `1.0.0`.** Працюйте безпосередньо в поточній сесії Codex з 18 MCP-інструментами та 12 спеціалізованими skills. Codex керує розмовою й виконанням; APEXREST виконує операції Oracle/APEX. Програмне очікування завдань, пакетні метадані, стисла перевірка проєкту й цільова довідка скорочують рутинні виклики. Зміни й межі доказів — у [примітках до випуску](docs/release-notes.uk.md). Незалежні інструменти; це не офіційний продукт Oracle чи OpenAI.
20
20
 
21
- Опишіть реалізацію в чаті Codex: `$apexrest-work` у single використовує наявну сесію безпосередньо, без іншого агента чи автовідкриття панелі. Моделлю й дозволами керує поточний хост. Явно увімкнені команди зберігають окремі сесії, Auto-маршрутизацію моделей і вбудовану панель; результати повертаються в ту саму розмову. Дивіться [сценарій із чату та моделі Auto](docs/chat-workflow.uk.md). Команда зберігає окремих розробників, обов’язкове рев’ю коду менеджером, незалежний QA та фінальне рев’ю менеджером. Дивіться [API команди та умови схвалення](docs/team.uk.md) й [аудит коду Codex](docs/codex-integration.uk.md).
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`, щоб бачити налаштування проєкту, роботу агентів-покемонів, обов’язкові рев’ю, QA та операції APEX у Codex. Консольний режим — `apexrest panel tui`. Дивіться [панель розробки](docs/panel.uk.md).
30
-
31
- Читайте [повний агентний процес зі скріншотами](docs/agent-workflow.uk.md): налаштування завдання, ролі покемонів, обов’язкові рев’ю, QA, цикли виправлень і дозволена доставка APEX.
32
-
33
- ![Фактична панель Codex із Mewtwo, Pikachu, Charmander і Squirtle після локального завдання з обов’язковими рев’ю.](docs/assets/panel-agent-team.jpg)
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
- | | Локальний режим | Налаштування Codex Cloud |
50
- | --- | --- | --- |
51
- | Де виконуються задачі | На вашому комп’ютері; він має залишатися ввімкненим, поки працюють агенти. | У хмарному контейнері; домашній комп’ютер може бути вимкнений. |
52
- | Інструменти й залежності | Встановлюються й підтримуються на вашому комп’ютері. | Готуються скриптами налаштування й обслуговування для повторного використання. |
53
- | Доступ до бази | Пряме з’єднання Oracle або ORDS HTTP(S). | Описане налаштування використовує дозволену точку доступу ORDS через HTTPS. |
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
- ![Концепція APEXREST: браузер або Slack на телефоні делегує роботу Codex Cloud, CLI якого звертається до Oracle через ORDS HTTPS; порівняно локальне та хмарне виконання, а процес команди агентів ще потребує налаштування й перевірки.](docs/assets/ords-codex-cloud.png)
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). Ціль цього випуску — [пакет apexrest](https://www.npmjs.com/package/apexrest) `0.5.0-beta.1` у каналі npm `beta`. Статус публікації та перевірку реєстру наведено в [записі публікації](docs/evidence/npm-050-publication.json). Канал `latest` залишається на `0.4.0-beta.1`.
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@beta
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@beta
70
+ npm install apexrest
94
71
  npx apexrest --version
95
72
  npx apexrest
96
73
  ```
97
74
 
98
- Щоб зафіксувати цю версію, використовуйте `npm install -g apexrest@0.5.0-beta.1`. Наведене нижче встановлення з репозиторію також доступне.
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.5.0-beta.1",
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": "Independent APEXREST tooling for controlled Oracle APEX development, deployment and testing.",
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. Use saved settings; in single mode complete my APEX task directly in this Codex chat.",
26
- "Use $apexrest-panel to open project settings, agent activity, reviews and APEX operations inside Codex.",
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">Your team, settings and APEX work in one place.</p></div><button id="new-task" class="primary">+ New task</button></header>
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">WORKFLOW</p><h2>Defaults for new work</h2><label>Execution mode<select id="default-execution-mode"><option value="single">Single agent</option><option value="team">Agent team</option></select></label><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><label>Developers<select id="default-developers"><option>1</option><option>2</option><option>3</option></select></label><label>Developer permissions<select id="default-sandbox"><option value="workspace-write">Write inside this project</option><option value="read-only">Read only</option></select></label><label>Time limit (seconds)<input id="default-timeout" type="number" min="30" max="3600" required></label><p id="default-workflow-note" class="subtle"></p><button type="submit">Save work defaults</button></form>
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 · Updates every 2 seconds</span></footer>
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
- .activity {
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
- .review:last-child {
376
+ .journal-entry:last-child {
470
377
  border: 0;
471
378
  }
472
- .review p {
379
+ .journal-entry p {
473
380
  font-size: 12px;
474
381
  margin-top: 9px;
475
382
  white-space: pre-wrap;
476
383
  }
477
- .review ul {
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
- }