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.
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-QDAKHEPF.mjs → chunk-3XRCAA5S.mjs} +4 -4
  13. package/dist/{runtime/chunk-HYOURJBW.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-XKBZJ36H.mjs → codex-compat/plugins/apexrest-apex/runtime/chunk-DLUIX7FA.mjs} +20 -62
  16. package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-JWX4UQAZ.mjs → 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/{runtime/chunk-QLRGI23I.mjs → codex-compat/plugins/apexrest-apex/runtime/chunk-K5BV3TBZ.mjs} +9 -108
  20. package/dist/{runtime/chunk-QWQVXUVG.mjs → codex-compat/plugins/apexrest-apex/runtime/chunk-MNYOWIHJ.mjs} +24 -77
  21. package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-TTVGX5LP.mjs → 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/{runtime/chunk-XEK2R5AU.mjs → codex-compat/plugins/apexrest-apex/runtime/chunk-SVB7G3KQ.mjs} +5 -7
  24. package/dist/{runtime/chunk-L7BXN3LU.mjs → codex-compat/plugins/apexrest-apex/runtime/chunk-SWW7SKB4.mjs} +19 -42
  25. package/dist/{runtime/chunk-KJOSAKHX.mjs → codex-compat/plugins/apexrest-apex/runtime/chunk-XZNIV6UL.mjs} +5 -6
  26. package/dist/codex-compat/plugins/apexrest-apex/runtime/{chunk-DNJL7OYO.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-QDAKHEPF.mjs → chunk-3XRCAA5S.mjs} +4 -4
  45. package/dist/{codex-compat/plugins/apexrest-apex/runtime/chunk-HYOURJBW.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-XKBZJ36H.mjs → runtime/chunk-DLUIX7FA.mjs} +20 -62
  48. package/dist/runtime/{chunk-JWX4UQAZ.mjs → 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/{codex-compat/plugins/apexrest-apex/runtime/chunk-QLRGI23I.mjs → runtime/chunk-K5BV3TBZ.mjs} +9 -108
  52. package/dist/{codex-compat/plugins/apexrest-apex/runtime/chunk-QWQVXUVG.mjs → runtime/chunk-MNYOWIHJ.mjs} +24 -77
  53. package/dist/runtime/{chunk-TTVGX5LP.mjs → chunk-NHYXXMBY.mjs} +21 -213
  54. package/dist/runtime/{chunk-2SZCZZ3J.mjs → chunk-R6MER5QH.mjs} +0 -1
  55. package/dist/{codex-compat/plugins/apexrest-apex/runtime/chunk-XEK2R5AU.mjs → runtime/chunk-SVB7G3KQ.mjs} +5 -7
  56. package/dist/{codex-compat/plugins/apexrest-apex/runtime/chunk-L7BXN3LU.mjs → runtime/chunk-SWW7SKB4.mjs} +19 -42
  57. package/dist/{codex-compat/plugins/apexrest-apex/runtime/chunk-KJOSAKHX.mjs → runtime/chunk-XZNIV6UL.mjs} +5 -6
  58. package/dist/runtime/{chunk-DNJL7OYO.mjs → chunk-YXHLPFQX.mjs} +15 -13
  59. package/dist/runtime/mcp.mjs +7 -8
  60. package/package.json +1 -2
  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-N5G4ADI7.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-N5G4ADI7.mjs +0 -15
  84. package/dist/runtime/chunk-VPCUV5QA.mjs +0 -237
@@ -3,8 +3,6 @@ name: apexrest-debug
3
3
  description: Diagnose APEXREST compiler, deployment and test failures with a bounded repair loop.
4
4
  ---
5
5
 
6
- For a new implementation task, follow [work routing](../apexrest-work/SKILL.md) once. Current-session work and assigned team members continue here without restarting orchestration.
7
-
8
6
  Pass the user's absolute workspace as `project` on project-scoped calls.
9
7
  Classify the failure before changing code: input, dependency, auth/policy, conflict, source, target, assertion or unknown outcome. Read bounded registered artifacts; do not ingest full schema dumps or traces. Fix the smallest causal component, rerun compiler and affected test, then the required suite gate. After three unsuccessful attempts at the same cause, stop and report evidence and the missing input. Never weaken security or delete failing tests to obtain green.
10
8
 
@@ -7,20 +7,19 @@ description: Show the APEXREST plugin menu and route the selected command or cap
7
7
 
8
8
  Show these choices and load only the selected workflow. Opening the menu is navigation, not permission to install, deploy or run every function.
9
9
 
10
- | Choice | Workflow |
11
- | --- | --- |
12
- | Implement APEX changes in this chat; reviewed team after explicit Settings opt-in | [Work](../apexrest-work/SKILL.md) |
13
- | Inspect, steer or stop existing work; explicit team orchestration | [Team](../apexrest-team/SKILL.md) |
14
- | Open the development panel inside Codex | [Panel](../apexrest-panel/SKILL.md) |
15
- | Install/preview Node.js, Java, SQLcl, Playwright and Chromium | [Dependencies](../apexrest-install-dependencies/SKILL.md) |
16
- | Diagnose tools, configure SQLcl CLI/MCP or connections, inspect installation | [Setup](../apexrest-setup/SKILL.md) |
17
- | Initialize/adopt a project; inspect source and environments | [Projects](../apexrest-project/SKILL.md) |
18
- | Generate/edit/export/validate/compare APEXlang; pinned Oracle references | [APEXlang](../apexrest-apexlang/SKILL.md) |
19
- | Metadata, migrations and PL/SQL | [Database](../apexrest-database/SKILL.md) |
20
- | Plan/apply authorized changes, deployment status and restore plans | [Deployment](../apexrest-deploy/SKILL.md) |
21
- | SQL/API/browser suites, interactive authentication and selected-browser checks | [Tests](../apexrest-test/SKILL.md) |
22
- | Diagnose failures, inspect/cancel jobs and read registered artifacts | [Debug](../apexrest-debug/SKILL.md) |
23
- | Review preservation, security, deployment and release evidence | [Review](../apexrest-review/SKILL.md) |
10
+ | Choice | Workflow |
11
+ | ------------------------------------------------------------------------------ | --------------------------------------------------------- |
12
+ | Implement APEX changes in this chat | [Work](../apexrest-work/SKILL.md) |
13
+ | Open the development panel inside Codex | [Panel](../apexrest-panel/SKILL.md) |
14
+ | Install/preview Node.js, Java, SQLcl, Playwright and Chromium | [Dependencies](../apexrest-install-dependencies/SKILL.md) |
15
+ | Diagnose tools, configure SQLcl CLI/MCP or connections, inspect installation | [Setup](../apexrest-setup/SKILL.md) |
16
+ | Initialize/adopt a project; inspect source and environments | [Projects](../apexrest-project/SKILL.md) |
17
+ | Generate/edit/export/validate/compare APEXlang; pinned Oracle references | [APEXlang](../apexrest-apexlang/SKILL.md) |
18
+ | Metadata, migrations and PL/SQL | [Database](../apexrest-database/SKILL.md) |
19
+ | Plan/apply authorized changes, deployment status and restore plans | [Deployment](../apexrest-deploy/SKILL.md) |
20
+ | SQL/API/browser suites, interactive authentication and selected-browser checks | [Tests](../apexrest-test/SKILL.md) |
21
+ | Diagnose failures, inspect/cancel jobs and read registered artifacts | [Debug](../apexrest-debug/SKILL.md) |
22
+ | Review preservation, security, deployment and release evidence | [Review](../apexrest-review/SKILL.md) |
24
23
 
25
24
  Prefer purpose-built MCP tools; pass the user's absolute application directory as `project`. For CLI-only actions, resolve `../../runtime/apexrest.mjs` from this skill to an absolute path and invoke with Node; native installation does not add `apexrest` to PATH. Read only the selected command's `--help`. For the complete command inventory, read [CLI catalog](references/cli-catalog.md).
26
25
 
@@ -2,21 +2,20 @@
2
2
 
3
3
  Read when the user requests a complete command inventory or needs a CLI-only action. Dots below become spaces except `test.run`, which is `test unit|sql|api|e2e|all`.
4
4
 
5
- | Workflow | Operations |
6
- | --- | --- |
7
- | Setup/maintenance | `version`, `doctor`, `setup`, `plugin.validate`, `plugin.install`, `plugin.update`, `plugin.uninstall`, `connection.add`, `connection.list`, `connection.test`, `connection.remove` |
8
- | Dependencies | `dependencies.install`, `dependencies.uninstall` |
9
- | SQLcl backend | `sqlcl.status`, `sqlcl.configure` |
10
- | Work/team | `work.start`, `team.start`, `team.status`, `team.wait`, `team.message`, `team.cancel` |
11
- | Panel | `panel.open`, `panel.status`, `panel.action`, `panel.tui` |
12
- | Projects | `project.init`, `project.adopt`, `project.inspect` |
13
- | APEX/references | `apex.generate`, `apex.export`, `apex.validate`, `apex.diff`, `docs.search`, `docs.read`, `docs.sync` |
14
- | Database | `metadata.read`, `db.plan` |
15
- | Deployment/recovery | `deploy.plan`, `deploy.apply`, `deploy.status`, `deploy.restore-plan` |
16
- | Tests | `test.run`, `test.report`, `test.auth`, `browser.open` |
17
- | Jobs/artifacts | `jobs.status`, `jobs.cancel`, `artifacts.read` |
18
- | Sandbox diagnostics | `sandbox.status`, `sandbox.up`, `sandbox.down` |
5
+ | Workflow | Operations |
6
+ | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
7
+ | Setup/maintenance | `version`, `doctor`, `setup`, `plugin.validate`, `plugin.install`, `plugin.update`, `plugin.uninstall`, `connection.add`, `connection.list`, `connection.test`, `connection.remove` |
8
+ | Dependencies | `dependencies.install`, `dependencies.uninstall` |
9
+ | SQLcl backend | `sqlcl.status`, `sqlcl.configure` |
10
+ | Panel | `panel.open`, `panel.status`, `panel.action`, `panel.tui` |
11
+ | Projects | `project.init`, `project.adopt`, `project.inspect` |
12
+ | APEX/references | `apex.generate`, `apex.export`, `apex.validate`, `apex.diff`, `docs.search`, `docs.read`, `docs.sync` |
13
+ | Database | `metadata.read`, `db.plan` |
14
+ | Deployment/recovery | `deploy.plan`, `deploy.apply`, `deploy.status`, `deploy.restore-plan` |
15
+ | Tests | `test.run`, `test.report`, `test.auth`, `browser.open` |
16
+ | Jobs/artifacts | `jobs.status`, `jobs.cancel`, `artifacts.read` |
17
+ | Sandbox diagnostics | `sandbox.status`, `sandbox.up`, `sandbox.down` |
19
18
 
20
19
  `mcp` starts server transport, not an application action. Sandbox commands return unsupported diagnostics, not Oracle provisioning. `docs.sync` uses pinned references, not arbitrary downloads. Plugin maintenance retains installation ownership checks; never uninstall or switch marketplace just to display a menu.
21
20
 
22
- `panel.open` returns a local desktop URL; `panel.status` reads configuration/work; `panel.action` starts an enabled team, hands single work to the current chat, saves future defaults or queues checks. `panel tui --project PATH` opens the terminal view. Follow [panel guidance](../../apexrest-panel/SKILL.md).
21
+ `panel.open` returns a local desktop URL; `panel.status` reads configuration and operation state; `panel.action` updates browser/connection settings or queues checks. `panel tui --project PATH` opens the terminal view. Follow [panel guidance](../../apexrest-panel/SKILL.md).
@@ -1,20 +1,14 @@
1
1
  ---
2
2
  name: apexrest-panel
3
- description: Open the APEXREST panel inside Codex; inspect settings, agent work, reviews and APEX jobs, or steer an enabled team.
3
+ description: Open the APEXREST panel inside Codex to inspect Oracle/APEX operations and project, browser or connection settings.
4
4
  ---
5
5
 
6
6
  # Development panel
7
7
 
8
8
  Call `apexrest_panel_open` with the absolute application project. Open its exact URL in Codex's in-app browser (`open_in_codex` when available). Keep the URL's session capability out of public evidence, commits and messages to others. Verify rendering; a URL alone proves none. In Codex CLI, use interactive `apexrest panel tui --project PATH` or `apexrest_panel_status` for a snapshot.
9
9
 
10
- The panel shows project/target settings, SQLcl mode, execution/browser preferences, worker models/tools/messages/reviews/QA, Git changes and durable APEX jobs. Names: Mewtwo (manager), Pikachu/Charmander/Bulbasaur (developers), Squirtle (QA); role keys control routing/permissions.
10
+ The panel shows project/target settings, SQLcl execution and database transport, the verification-browser preference, Git changes and durable APEX jobs. Implementation continues in the [current chat](../apexrest-work/SKILL.md). Panel actions retain project trust, strict schemas and deploy policy; they cannot grant authorization or bypass backup, identity, drift or unknown-outcome safeguards. Complete authorized imports through [deployment](../apexrest-deploy/SKILL.md). Settings affect future operations; never switch transport during a database operation.
11
11
 
12
- For implementation, use [work routing](../apexrest-work/SKILL.md). Single returns a current-chat handoff; the panel cannot inject it into chat or start a background agent. Enabled teams can start through the panel or `apexrest_team_start`. Panel actions retain project trust, schemas and deploy policy; the panel cannot approve work, grant deploy authorization or bypass backup, identity, drift or unknown-outcome safeguards. Complete authorized imports through [deployment](../apexrest-deploy/SKILL.md). Settings affect future runs; never switch transport during a database operation.
12
+ Separate local fixtures, actual operation outcomes and Oracle/browser observations. Inner job failure remains failure after a normal process exit; a stale job remains unknown. Reconcile lost mutation responses before retrying. Report missing setup, credentials or browser access as limitations.
13
13
 
14
- Separate observations, agent claims, fixtures and real Oracle/browser evidence. Inner job failure remains failure even after a normal worker exit; stale workers remain unknown. Reconcile lost mutation responses before retrying. Report missing setup, credentials or browser access as limitations.
15
-
16
- `executionMode: team|single` and `browserMode: codex|external` apply to chat, CLI and panel launches. Single uses current-chat self-verification; team retains mandatory reviews/independent QA. The browser choice applies to APEX checks; the dashboard stays in Codex.
17
-
18
- For `sqlcl.databaseTransport: ords`, read [ORDS setup](../apexrest-setup/references/ords.md) before connection or transport changes; never silently switch transport or send passwords through chat/MCP.
19
-
20
- Single is the default. Set `multiAgentEnabled` only on an explicit Settings request; launch overrides and legacy `executionMode: team` alone cannot enable teams.
14
+ `browserMode: codex|external` selects the browser for APEX checks; the dashboard stays in Codex. For `sqlcl.databaseTransport: ords`, read [ORDS setup](../apexrest-setup/references/ords.md) before connection or transport changes; never silently switch transport or send passwords through chat/MCP.
@@ -1,4 +1,4 @@
1
1
  interface:
2
- display_name: "Development panel"
3
- short_description: "Live settings, Pokémon agents, reviews and APEX operations"
4
- default_prompt: "Use $apexrest-panel to open my Oracle APEX development panel inside Codex."
2
+ display_name: 'Development panel'
3
+ short_description: 'Oracle/APEX operations and project or connection settings'
4
+ default_prompt: 'Use $apexrest-panel to open my Oracle APEX development panel inside Codex.'
@@ -6,4 +6,4 @@ description: Initialize, adopt and inspect APEXREST projects with explicit envir
6
6
  Pass the user's absolute workspace as `project` on project-scoped calls.
7
7
  Inspect configuration and source inventory once; reuse the project, environment, connection reference and toolchain until an input changes or a diagnostic requires rediscovery. Initialize in a new directory or adopt an explicitly identified test target; do not re-adopt a working source tree. Never overwrite local edits. Preserve Oracle IDs and .apex metadata. Ask only for missing non-secret target information; never infer production or defaults. Review executable project code before granting trust. Reused discovery never replaces fresh target and drift checks before writes.
8
8
 
9
- Reuse `projectContext` from `apexrest_work_start` for basic paths/settings. Otherwise use `apexrest_project_inspect` with `detail: summary` to avoid a source hash inventory. Use `detail: full` when hashes are needed; configured identities are not live target verification.
9
+ Reuse known paths/settings. Otherwise use `apexrest_project_inspect` with `detail: summary` to avoid a source hash inventory. Use `detail: full` when hashes are needed; configured identities are not live target verification.
@@ -1,17 +1,14 @@
1
1
  ---
2
2
  name: apexrest-work
3
- description: Complete Oracle APEX changes in the current Codex chat, or an explicitly enabled reviewed team. Excludes setup, reference questions and Salesforce Apex.
3
+ description: Complete Oracle APEX changes directly in the current Codex chat. Excludes setup, reference questions and Salesforce Apex.
4
4
  ---
5
5
 
6
6
  # APEX work
7
7
 
8
- For a new task, resolve its absolute project containing `apexrest.json` and call `apexrest_work_start` once with `project`, the complete `task`/constraints/authorization and a fresh UUID `requestId`. Omit options to honor saved settings; explicit user choices may override them. Default `single`; teams require user-enabled `multiAgentEnabled`. Never enable it merely to execute work. Assigned workers and an already-started current-session task continue without restarting this workflow.
8
+ Work directly in the user's current Codex session. Preserve its task, context, model, permissions and read-only constraints. Resolve the absolute application project containing `apexrest.json`; reuse known project settings or call `apexrest_project_inspect` with `detail: "summary"` when needed. No plugin task registration or startup call is required. Configured target identity is not live verification.
9
9
 
10
- - `executionHost: current_session`: implement and verify **in this user-opened Codex chat**. Reuse returned `projectContext` for paths, targets and required suites; it does not verify live identity. Keep the current context, model and permissions; honor read-only requests. No new agents, App Server, model discovery, team polling or automatic panel. `teamId` is a retry receipt, not completion. Report actual results here; steering/cancellation stay here, without plugin token metering or worker timeouts.
11
- - `executionHost: worker`: follow the monitoring/completion rules in [team](../apexrest-team/SKILL.md), using the returned ID rather than starting again. Open the private panel inside Codex; a panel failure never justifies replacement work. Team completion needs current source-bound manager reviews and independent QA. Historical single-worker results are self-verification.
10
+ Read relevant source and focused reference matches; follow offsets/contracts when needed. Reuse discovery until its inputs change, batch coherent edits and independent reads, and run relevant checks once per change. Broaden checks only for a failure or unresolved risk. Long MCP tools wait up to 25 seconds automatically. For completed jobs, inspect `data.result.ok` and actual checks; completion alone is not success. For queued/running jobs, use `apexrest_job_status` with the existing ID and `waitSeconds: 25`. Never rerun an operation to retrieve output. Read full artifacts only for omitted details needed to proceed; reconcile uncertain writes before retrying.
12
11
 
13
- Read only relevant files and focused reference matches; follow offsets/contracts when needed. Reuse discovery until its inputs change. Batch coherent edits and independent reads. Run relevant checks once per change; broaden them only for a failure or unresolved risk. Long MCP tools wait up to 25 seconds automatically. If `data.status: completed`, inspect `data.result.ok` and its checks immediately; completion alone is not success. For queued/running jobs only, call `apexrest_job_status` with the existing ID and `waitSeconds: 25`. Never rerun an operation to retrieve output. Avoid full reports, exhaustive searches and repeated planning when focused evidence suffices.
12
+ For visible changes, call `apexrest_browser_open` for the configured environment and honor the returned browser preference; follow [browser verification](../apexrest-test/SKILL.md#in-app-browser-verification). A URL is not verified behavior; report missing controls/login. Open the [development panel](../apexrest-panel/SKILL.md) only when useful or requested.
14
13
 
15
- Use the returned `browserMode` with `apexrest_browser_open` for the configured environment and follow [browser verification](../apexrest-test/SKILL.md#in-app-browser-verification). A URL is not verified behavior; disclose missing controls/login. Open the panel only when requested in single mode.
16
-
17
- Exact retries reuse the ID and inputs; changed inputs need a new ID. Inspect uncertain starts before retrying. CLI/panel handoffs cannot inject work into a desktop chat. An identified authorized application import follows [deploy](../apexrest-deploy/SKILL.md): target checks, backup, plan/apply and runtime verification remain required. No broader DB changes, downloads, publication or external messages are implied.
14
+ An identified authorized application import follows [deploy](../apexrest-deploy/SKILL.md): fresh target checks, backup, source/target drift, plan/apply and runtime verification remain required. Preserve required suites and unknown-outcome recovery. Report actual changes, checks and limitations in this conversation. No broader DB changes, downloads, publication or external messages are implied.
@@ -1,7 +1,7 @@
1
1
  interface:
2
- display_name: "APEX work from chat"
3
- short_description: "Work in this Codex session or an enabled reviewed team"
4
- default_prompt: "Use $apexrest-work to complete my Oracle APEX change using my saved execution and browser settings. In single mode work directly in this Codex session; report actual results here."
2
+ display_name: 'APEX work from chat'
3
+ short_description: 'Complete APEX changes directly in this Codex session'
4
+ default_prompt: 'Use $apexrest-work to complete my Oracle APEX change directly in this Codex session using my project and browser settings; report actual results here.'
5
5
 
6
6
  policy:
7
7
  allow_implicit_invocation: true
@@ -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
- }