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
|
@@ -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
|
|
11
|
-
|
|
|
12
|
-
| Implement APEX changes in this chat
|
|
13
|
-
|
|
|
14
|
-
|
|
|
15
|
-
|
|
|
16
|
-
|
|
|
17
|
-
|
|
|
18
|
-
|
|
|
19
|
-
|
|
|
20
|
-
|
|
|
21
|
-
|
|
|
22
|
-
|
|
|
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
|
|
package/dist/codex-compat/plugins/apexrest-apex/skills/apexrest-menu/references/cli-catalog.md
CHANGED
|
@@ -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
|
|
6
|
-
|
|
|
7
|
-
| Setup/maintenance
|
|
8
|
-
| Dependencies
|
|
9
|
-
| SQLcl backend
|
|
10
|
-
|
|
|
11
|
-
|
|
|
12
|
-
|
|
|
13
|
-
|
|
|
14
|
-
|
|
|
15
|
-
|
|
|
16
|
-
|
|
|
17
|
-
|
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
3
|
-
short_description:
|
|
4
|
-
default_prompt:
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
3
|
-
short_description:
|
|
4
|
-
default_prompt:
|
|
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">
|
|
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
|
-
}
|