potential!

This commit is contained in:
2026-03-17 00:21:43 -04:00
parent f54ce0579b
commit 23523c2db4
4 changed files with 38 additions and 19 deletions

View File

@@ -2,13 +2,15 @@
"name": "@FrenoCorp/plugin-agent-permissions", "name": "@FrenoCorp/plugin-agent-permissions",
"version": "0.1.0", "version": "0.1.0",
"type": "module", "type": "module",
"private": true,
"description": "Per-agent permission toggling for fine-grained access control", "description": "Per-agent permission toggling for fine-grained access control",
"scripts": { "scripts": {
"build": "node ./esbuild.config.mjs", "prebuild": "node ../../../scripts/ensure-plugin-build-deps.mjs",
"build": "tsc && node ./scripts/build-ui.mjs",
"dev": "node ./esbuild.config.mjs --watch", "dev": "node ./esbuild.config.mjs --watch",
"dev:ui": "paperclip-plugin-dev-server --root . --ui-dir dist/ui --port 4177", "dev:ui": "paperclip-plugin-dev-server --root . --ui-dir dist/ui --port 4177",
"test": "vitest run --config ./vitest.config.ts", "test": "vitest run --config ./vitest.config.ts",
"typecheck": "tsc --noEmit" "typecheck": "pnpm --filter @paperclipai/plugin-sdk build && tsc --noEmit"
}, },
"paperclipPlugin": { "paperclipPlugin": {
"manifest": "./dist/manifest.js", "manifest": "./dist/manifest.js",
@@ -23,25 +25,14 @@
], ],
"author": "FrenoCorp", "author": "FrenoCorp",
"license": "MIT", "license": "MIT",
"publishConfig": { "dependencies": {
"access": "public", "@paperclipai/plugin-sdk": "workspace:*",
"registry": "https://registry.npmjs.org/" "@paperclipai/shared": "workspace:*"
},
"pnpm": {
"overrides": {
"@paperclipai/shared": "file:.paperclip-sdk/paperclipai-shared-0.3.1.tgz"
}
}, },
"devDependencies": { "devDependencies": {
"@paperclipai/shared": "file:.paperclip-sdk/paperclipai-shared-0.3.1.tgz",
"@paperclipai/plugin-sdk": "file:.paperclip-sdk/paperclipai-plugin-sdk-1.0.0.tgz",
"@rollup/plugin-node-resolve": "^16.0.1",
"@rollup/plugin-typescript": "^12.1.2",
"@types/node": "^24.6.0", "@types/node": "^24.6.0",
"@types/react": "^19.0.8", "@types/react": "^19.0.8",
"esbuild": "^0.27.3", "esbuild": "^0.27.3",
"rollup": "^4.38.0",
"tslib": "^2.8.1",
"typescript": "^5.7.3", "typescript": "^5.7.3",
"vitest": "^3.0.5" "vitest": "^3.0.5"
}, },

View File

@@ -0,0 +1,24 @@
import esbuild from "esbuild";
import path from "node:path";
import { fileURLToPath } from "node:url";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const packageRoot = path.resolve(__dirname, "..");
await esbuild.build({
entryPoints: [path.join(packageRoot, "src/ui/index.tsx")],
outfile: path.join(packageRoot, "dist/ui/index.js"),
bundle: true,
format: "esm",
platform: "browser",
target: ["es2022"],
sourcemap: true,
external: [
"react",
"react-dom",
"react/jsx-runtime",
"@paperclipai/plugin-sdk/ui",
],
logLevel: "info",
});

View File

@@ -1,7 +1,7 @@
import type { PaperclipPluginManifestV1 } from "@paperclipai/plugin-sdk"; import type { PaperclipPluginManifestV1 } from "@paperclipai/plugin-sdk";
const manifest: PaperclipPluginManifestV1 = { const manifest: PaperclipPluginManifestV1 = {
id: "frenocorp.plugin-agent-permissions", id: "paperclipai.plugin-agent-permissions",
apiVersion: 1, apiVersion: 1,
version: "0.1.0", version: "0.1.0",
displayName: "Agent Permissions", displayName: "Agent Permissions",

View File

@@ -1,4 +1,4 @@
import { usePluginData } from "@paperclipai/plugin-sdk/ui"; import { usePluginData, useHostContext } from "@paperclipai/plugin-sdk/ui";
import type { PluginSidebarProps } from "@paperclipai/plugin-sdk/ui"; import type { PluginSidebarProps } from "@paperclipai/plugin-sdk/ui";
import { SIDEBAR_PREVIEW_LIMIT, type PermissionKey } from "../constants"; import { SIDEBAR_PREVIEW_LIMIT, type PermissionKey } from "../constants";
@@ -9,7 +9,11 @@ interface AgentPermissionsSummary {
} }
export function PermissionsNav(_props: PluginSidebarProps) { export function PermissionsNav(_props: PluginSidebarProps) {
const { data: agentsData, loading, error } = usePluginData<AgentPermissionsSummary[]>("all-agents-permissions"); const { companyId } = useHostContext();
const { data: agentsData, loading, error } = usePluginData<AgentPermissionsSummary[]>(
"all-agents-permissions",
companyId ? { companyId } : undefined
);
if (loading) return ( if (loading) return (
<div role="status" style={{ padding: "1rem" }}> <div role="status" style={{ padding: "1rem" }}>