dumbtv
dumbtv takes the ads, screen tracking and update nags out of your Fire TV over ADB. No root, none of your apps touched, every step can be undone. Free and open source.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Authorizing AI agents with OPA: the real Rego policy, compiled to Wasm, running in the browser.
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
An interactive explainer. Pick one of five scenarios, each an AI agent trying to call a tool on someone's behalf, and follow the request through a flow graph:
Every verdict on the page comes from the real Rego policy in policy/authz.rego, compiled to WebAssembly and evaluated in your browser with @open-policy-agent/opa-wasm. Nothing is hard-coded in TypeScript and nothing is sent to a server. Click the OPA node to see the policy block by block, with the value each line resolved to.
The policy has four layers and three outcomes:查看完整 README ↗Live: agents.shiben.dev
An interactive explainer. Pick one of five scenarios, each an AI agent trying to call a tool on someone's behalf, and follow the request through a flow graph:
Person → (Untrusted input) → Agent → Tool call → Gateway ⇅ OPA → Tool runs | Human approval | Blocked + logged
Every verdict on the page comes from the real Rego policy in policy/authz.rego, compiled to WebAssembly and evaluated in your browser with @open-policy-agent/opa-wasm. Nothing is hard-coded in TypeScript and nothing is sent to a server. Click the OPA node to see the policy block by block, with the value each line resolved to.
| Path | What it is |
|---|---|
policy/authz.rego | The policy. Single source of truth for the UI, the tests and the expected verdicts. |
policy/data.json | Agents, users, tools, limits, org domain. Loaded into the Wasm at runtime with setData. |
policy/authz_test.rego | opa test suite: scenario-driven tests plus edge cases. |
scenarios/scenarios.json | The 5 scenarios: display metadata, OPA input, expected verdict. Read by both opa test and the UI. |
scripts/build-policy.sh | fmt → check --strict → test → build -t wasm, then writes public/policy.wasm and public/test-summary.json. |
public/policy.wasm | Generated and committed. CI fails if it is stale. |
lib/opa.ts | Fetches /policy.wasm once, loads data.json, evaluate(input) → PolicyResult. No fallback logic. |
lib/trace.ts | Formats result.evidence and result.checks against the Rego source lines. No authorization logic. |
components/ | Scenario picker, flow graph, detail views, OPA Evaluate and Build tabs. |
The policy has four layers and three outcomes:
decision is allow, needs_approval or deny, and defaults to deny. The Wasm entrypoint is agent/authz/result, which also returns checks, failed and evidence so the UI never has to recompute a decision.
Requires Node 22+ and pnpm 10.
pnpm install
pnpm dev
pnpm test # Vitest: all scenarios through public/policy.wasm, trace ↔ Rego source sync
pnpm typecheck
pnpm build
Change policy/authz.rego, policy/data.json or scenarios/scenarios.json.
Rebuild and test with the pinned OPA version (the script refuses any other version, because a different compiler can emit a different Wasm):
pnpm policy # uses `opa` on your PATH
OPA=/path/to/opa pnpm policy # or point at a specific binary
Commit public/policy.wasm and public/test-summary.json along with your change.
No TypeScript change is needed for a data or policy change to show up in the UI. For example, lower limits.payment_inr below 40000 and the "Web page sets the amount" scenario flips from NEEDS APPROVAL to DENY. If a new display needs a value the policy doesn't return, add it to evidence in Rego rather than computing it in lib/trace.ts.
| Tool | Version | Notes |
|---|---|---|
| OPA CLI | 1.21.1 | Pinned in scripts/build-policy.sh and .github/workflows/policy.yml. Wasm ABI 1.3. |
@open-policy-agent/opa-wasm | 1.10.0 | Latest release. Confirmed to load and evaluate Wasm built by OPA 1.21.1 (see tests/opa.test.ts). |
| Next.js | 16.4.0 | App Router, static output. |
pnpm audit reports one moderate advisory in sprintf-js, pulled in by opa-wasm for the sprintf builtin. That builtin isn't reachable from the compiled entrypoint here, and there is no patched release yet.
.github/workflows/policy.yml has two jobs:
scripts/build-policy.sh, then git diff --exit-code public/. The deployed Wasm is always the tested one.pnpm typecheck, pnpm test, pnpm build.Vercel project agents-opa, connected to this repo, building with the Next.js preset. Vercel has no OPA binary, which is why the Wasm is committed. Domain: agents.shiben.dev (Vercel DNS). No analytics, no cookies.
All names and domains in the data are fictional; .example is reserved for exactly this.