TenantAtlas/apps/platform/.pnpm-store/v10/files/21/83a64ed4595e5dd6abaebe9c972947cd093a8415ad1cc856f0081942fedc7aaf5f9eb2769fb69ce1a50613706e557ca78d070d468774a5b211c3b585dda163
ahmido 1fec9c6f9d
Some checks failed
Main Confidence / confidence (push) Failing after 45s
feat: compress governance operator outcomes (#253)
## Summary
- introduce surface-aware compressed governance outcomes and reuse the shared truth/explanation seams for operator-first summaries
- apply the compressed outcome hierarchy across baseline, evidence, review, review-pack, canonical review/evidence, and artifact-oriented operation-run surfaces
- expand spec 214 fixtures and Pest coverage, and fix tenant-panel route assertions by generating explicit tenant-panel URLs in the affected Filament tests

## Validation
- `cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent`
- focused governance compression suite from `specs/214-governance-outcome-compression/quickstart.md` passed (`68` tests, `445` assertions)
- `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament/InventoryItemResourceTest.php tests/Feature/Filament/BackupSetUiEnforcementTest.php tests/Feature/Filament/RestoreRunUiEnforcementTest.php` passed (`18` tests, `81` assertions)

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #253
2026-04-19 12:30:36 +00:00

138 lines
4.2 KiB
Plaintext

"use strict";
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var screencast_exports = {};
__export(screencast_exports, {
Screencast: () => Screencast
});
module.exports = __toCommonJS(screencast_exports);
var import_utils = require("../utils");
var import_utils2 = require("../utils");
class Screencast {
constructor(page) {
this._clients = /* @__PURE__ */ new Set();
this.page = page;
this.page.instrumentation.addListener(this, page.browserContext);
}
async handlePageOrContextClose() {
const clients = [...this._clients];
this._clients.clear();
for (const client of clients) {
if (client.gracefulClose)
await client.gracefulClose();
}
}
dispose() {
for (const client of this._clients)
client.dispose();
this._clients.clear();
this.page.instrumentation.removeListener(this);
}
showActions(options) {
this._actions = options;
}
hideActions() {
this._actions = void 0;
}
addClient(client) {
this._clients.add(client);
if (this._clients.size === 1)
this._startScreencast(client.size, client.quality);
return { size: this._size };
}
removeClient(client) {
if (!this._clients.has(client))
return;
this._clients.delete(client);
if (!this._clients.size)
this._stopScreencast();
}
size() {
return this._size;
}
_startScreencast(size, quality) {
this._size = size;
if (!this._size) {
const viewport = this.page.browserContext._options.viewport || { width: 800, height: 600 };
const scale = Math.min(1, 800 / Math.max(viewport.width, viewport.height));
this._size = {
width: Math.floor(viewport.width * scale),
height: Math.floor(viewport.height * scale)
};
}
this._size = {
width: this._size.width & ~1,
height: this._size.height & ~1
};
this.page.delegate.startScreencast({
width: this._size.width,
height: this._size.height,
quality: quality ?? 90
});
}
_stopScreencast() {
this.page.delegate.stopScreencast();
}
onScreencastFrame(frame, ack) {
const asyncResults = [];
for (const client of this._clients) {
const result = client.onFrame(frame);
if (result)
asyncResults.push(result);
}
if (ack) {
if (!asyncResults.length)
ack();
else
Promise.race(asyncResults).then(ack);
}
}
async onBeforeCall(sdkObject, metadata, parentId) {
if (!this._actions)
return;
metadata.annotate = true;
}
async onBeforeInputAction(sdkObject, metadata) {
if (!this._actions)
return;
const page = sdkObject.attribution.page;
if (!page)
return;
const actionTitle = (0, import_utils.renderTitleForCall)(metadata);
const utility = await page.mainFrame()._utilityContext();
await utility.evaluate(async (options) => {
const { injected, duration } = options;
injected.setScreencastAnnotation(options);
await new Promise((f) => injected.utils.builtins.setTimeout(f, duration));
injected.setScreencastAnnotation(null);
}, {
injected: await utility.injectedScript(),
duration: this._actions?.duration ?? 500,
point: metadata.point,
box: metadata.box,
actionTitle,
position: this._actions?.position,
fontSize: this._actions?.fontSize
}).catch((e) => import_utils2.debugLogger.log("error", e));
}
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
Screencast
});