@automagik/genie 4.260420.5 → 4.260420.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -164,6 +164,28 @@ an external dead-man's switch. Consumer-compat promises are published at
164
164
  [docs/observability-contract.md](docs/observability-contract.md); the 5-phase
165
165
  rollout plan at [docs/observability-rollout.md](docs/observability-rollout.md).
166
166
 
167
+ ### Executor read endpoint
168
+
169
+ External consumers (e.g. the omni scope-enforcer) can query ground-truth turn
170
+ state directly from `genie serve`. Two paths are supported:
171
+
172
+ **HTTP** — `GET http://127.0.0.1:<port>/executors/:id/state` returns
173
+ `{state, outcome, closed_at}` as JSON. The default port is `pgserve_port + 2`;
174
+ override with `GENIE_EXECUTOR_READ_PORT`. Returns 404 for unknown IDs, 400 for
175
+ non-UUID IDs, 200 otherwise. No authz — executor IDs are random UUIDs and the
176
+ view exposes no secrets.
177
+
178
+ **Direct SQL** — connect to genie-PG as the read-only `executors_reader` role
179
+ and `SELECT state, outcome, closed_at FROM executors_public_state WHERE id = $1`.
180
+ Layer login credentials on top:
181
+
182
+ ```sql
183
+ CREATE ROLE omni_scope_enforcer LOGIN PASSWORD '…' IN ROLE executors_reader;
184
+ ```
185
+
186
+ Response shape (`state` / `outcome` / `closed_at`) is the stable boundary
187
+ contract; removing or renaming fields is a coordinated breaking change.
188
+
167
189
  ---
168
190
 
169
191
  <p align="center">