@assemblyline-agents/peekaboo 5.0.10 → 6.0.1

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
@@ -1,30 +1,18 @@
1
1
  # @assemblyline-agents/peekaboo
2
2
 
3
- Official Assembly Line connection plugin for same-host macOS computer use through
4
- Peekaboo's stdio MCP server.
3
+ Official same-host macOS computer-use plugin backed by Peekaboo's stdio MCP
4
+ server.
5
5
 
6
- ## Deployment boundary
6
+ ## Requirements
7
7
 
8
- This package is only for a local Assembly Line deployment on the Mac being
9
- controlled. It does not provide remote desktop or a tunnel from a Railway,
10
- Docker, Fly, or other hosted runtime back to a developer computer.
8
+ - macOS 15 or newer
9
+ - a local Assembly Line gateway on the Mac being controlled
10
+ - Accessibility and Screen Recording permission for the host process
11
11
 
12
- Assembly Line records these restrictions in the compiled connection metadata:
12
+ Hosted gateways cannot reach back to the Mac. Validation warns and deployment
13
+ rejects that combination.
13
14
 
14
- - deploy target: `local`
15
- - runtime platform: `darwin`
16
- - minimum supported host for Peekaboo: macOS 15+
17
-
18
- `assembly-line validate` warns when `gateway.ts` defaults to a hosted target.
19
- `assembly-line deploy` refuses incompatible targets, including a hosted `--target`
20
- override. The runtime also rejects the connection before launching a process
21
- when it is loaded on a non-macOS host.
22
-
23
- The model provider may still be remote. OpenAI, Anthropic, or another model can
24
- perform inference in the cloud while the Assembly Line Node host and Peekaboo execute
25
- on the local Mac.
26
-
27
- ## Setup
15
+ ## Configure
28
16
 
29
17
  ```sh
30
18
  brew install steipete/tap/peekaboo
@@ -32,67 +20,61 @@ peekaboo permissions status
32
20
  assembly-line add peekaboo agent
33
21
  ```
34
22
 
35
- Use a local deploy adapter:
36
-
37
- ```ts
38
- // agent/gateway.ts
39
- import { adapter, defineGateway } from "@assemblyline-agents/core";
23
+ Keep the gateway local in `agent.md`:
40
24
 
41
- export default defineGateway({
42
- deploy: adapter("local"),
43
- runtime: adapter("node")
44
- });
25
+ ```yaml
26
+ deploy: local
45
27
  ```
46
28
 
47
- The generated connection enables reviewed tools without requiring an approval
48
- surface:
29
+ The plugin's reviewed tools activate when selected. To inspect without acting,
30
+ disable its write actions through the connection exception:
31
+
32
+ ```yaml
33
+ capabilities:
34
+ peekaboo:
35
+ connections:
36
+ peekaboo:
37
+ disable:
38
+ - click
39
+ - type
40
+ - hotkey
41
+ - scroll
42
+ - drag
43
+ - swipe
44
+ - move
45
+ - set_value
46
+ - perform_action
47
+ - app
48
+ - window
49
+ - menu
50
+ - dock
51
+ - dialog
52
+ - space
53
+ ```
49
54
 
50
- ```ts
51
- // agent/connections/peekaboo.ts
52
- import { definePeekabooConnection } from "@assemblyline-agents/peekaboo";
55
+ Or require approval for selected actions:
53
56
 
54
- export default definePeekabooConnection({
55
- // Reviewed tools are enabled by default.
56
- });
57
+ ```yaml
58
+ capabilities:
59
+ peekaboo:
60
+ connections:
61
+ peekaboo:
62
+ approval:
63
+ click: always
64
+ type: always
57
65
  ```
58
66
 
59
- Validate and run it on the Mac:
67
+ Validate and run on the Mac:
60
68
 
61
69
  ```sh
62
70
  assembly-line validate agent
63
71
  assembly-line deploy agent --target local --serve
64
72
  ```
65
73
 
66
- Grant Accessibility and Screen Recording to the process identity that hosts
67
- Peekaboo. Confirm the permissions again after changing application signatures,
68
- binary locations, or host applications.
69
-
70
- ## Changing action authority
71
-
72
- Require approval for desktop actions when the host provides an approval surface:
73
-
74
- ```ts
75
- export default definePeekabooConnection({ access: "approval-required" });
76
- ```
77
-
78
- Use the read-only preset when the agent should inspect the Mac without acting:
79
-
80
- ```ts
81
- export default definePeekabooConnection({ access: "read-only" });
82
- ```
83
-
84
- Use the default policy only for an agent running in a macOS account whose
85
- applications, files, and signed-in services are appropriate for unattended
86
- control.
87
-
88
- The initial allowlist is accessibility-first. Screenshot/vision, recording,
89
- nested agents, configuration, cleanup, shell, clipboard/paste, and
90
- browser-specific Peekaboo tools are excluded.
74
+ For a hosted agent controlling a paired Mac, use
75
+ `@assemblyline-agents/computer-use` instead of exposing Peekaboo over the public
76
+ internet.
91
77
 
92
- ## Remotely hosted agents
78
+ ## License
93
79
 
94
- Do not expose the stdio MCP process, a loopback wrapper, or an unauthenticated
95
- HTTP bridge to the public internet. A hosted agent should use
96
- `@assemblyline-agents/computer-use`, which pairs Assembly Line Builder's signed Mac host with a
97
- deployment-scoped credential, outbound connection, local policy enforcement,
98
- approvals, and end-to-end encrypted relay transport.
80
+ MIT
@@ -0,0 +1,82 @@
1
+ {
2
+ "kind": "peekaboo",
3
+ "role": "connection",
4
+ "packageName": "@assemblyline-agents/peekaboo",
5
+ "helper": "definePeekabooConnection",
6
+ "protocol": "mcp",
7
+ "transport": "stdio",
8
+ "provider": "peekaboo",
9
+ "description": "Same-host macOS accessibility and input automation through Peekaboo's stdio MCP server.",
10
+ "capabilities": [
11
+ "mcp",
12
+ "live-tools",
13
+ "stdio"
14
+ ],
15
+ "scopes": [],
16
+ "subject": "environment",
17
+ "tools": {
18
+ "allow": [
19
+ "inspect_ui",
20
+ "list",
21
+ "permissions",
22
+ "click",
23
+ "type",
24
+ "hotkey",
25
+ "scroll",
26
+ "drag",
27
+ "swipe",
28
+ "move",
29
+ "set_value",
30
+ "perform_action",
31
+ "app",
32
+ "window",
33
+ "menu",
34
+ "dock",
35
+ "dialog",
36
+ "space"
37
+ ]
38
+ },
39
+ "hostRequirements": {
40
+ "deployTargets": [
41
+ "local"
42
+ ],
43
+ "platforms": [
44
+ "darwin"
45
+ ],
46
+ "message": "Peekaboo is a same-host macOS connection. Run this agent with the local deploy target on the Mac being controlled; hosted Railway, Docker, Fly, and VPS deployments cannot reach back to that Mac."
47
+ },
48
+ "readToolPatterns": [
49
+ "inspect_ui",
50
+ "list",
51
+ "permissions"
52
+ ],
53
+ "writeToolPatterns": [
54
+ "click",
55
+ "type",
56
+ "hotkey",
57
+ "scroll",
58
+ "drag",
59
+ "swipe",
60
+ "move",
61
+ "set_value",
62
+ "perform_action",
63
+ "app",
64
+ "window",
65
+ "menu",
66
+ "dock",
67
+ "dialog",
68
+ "space"
69
+ ],
70
+ "setup": [
71
+ {
72
+ "kind": "connection",
73
+ "name": "peekaboo-developer-configuration",
74
+ "required": true,
75
+ "message": "Local deployment only: install Peekaboo on the Assembly Line Mac (macOS 15+), grant that host process Accessibility and Screen Recording permissions, and use the local deploy target. Hosted targets are rejected."
76
+ }
77
+ ],
78
+ "requiredConfig": [],
79
+ "optionalConfig": [],
80
+ "requiredCredentials": [],
81
+ "optionalCredentials": []
82
+ }
@@ -0,0 +1,9 @@
1
+ module.exports = {
2
+ "connections": {
3
+ "peekaboo": {
4
+ "contract": "./ai.assemblyline/connections/peekaboo.json",
5
+ "definition": "@assemblyline-agents/peekaboo",
6
+ "factory": "definePeekabooConnection"
7
+ }
8
+ }
9
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,+BAA+B,EACrC,MAAM,2BAA2B,CAAC;AAKnC,MAAM,WAAW,yBAA0B,SAAQ,+BAA+B;IAChF,kGAAkG;IAClG,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB,2IAS1E;AAED,eAAO,MAAM,kBAAkB,kDAA0C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,+BAA+B,EACrC,MAAM,2BAA2B,CAAC;AAKnC,MAAM,WAAW,yBAA0B,SAAQ,+BAA+B;IAChF,kGAAkG;IAClG,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB,2IAS1E;AAED,eAAO,MAAM,kBAAkB,kDAA0C,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
- import { connectionPluginMetadata, definePlugin, defineStdioMcpPluginConnection } from "@assemblyline-agents/core";
2
- const PLUGIN = connectionPluginMetadata("peekaboo");
1
+ import connectionContract_peekaboo from "../ai.assemblyline/connections/peekaboo.json" with { type: "json" };
2
+ import { definePlugin, defineStdioMcpPluginConnection } from "@assemblyline-agents/core";
3
+ const PLUGIN = connectionContract_peekaboo;
3
4
  const DEFAULT_ARGS = ["mcp", "serve", "--transport", "stdio"];
4
5
  export function definePeekabooConnection(options) {
5
6
  const { bridgeSocket, ...connection } = options;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,YAAY,EACZ,8BAA8B,EAE/B,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,GAAG,wBAAwB,CAAC,UAAU,CAAE,CAAC;AACrD,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;AAO9D,MAAM,UAAU,wBAAwB,CAAC,OAAkC;IACzE,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC;IAChD,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,YAAY,CAAC,CAAC,CAAC;IACpD,IAAI,YAAY;QAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;IAC7D,OAAO,8BAA8B,CAAC,MAAM,EAAE;QAC5C,GAAG,UAAU;QACb,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,UAAU;QACzC,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,2BAA2B,MAAM,8CAA8C,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC7G,OAAO,EACL,YAAY,EACZ,8BAA8B,EAE/B,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,GAAG,2BAAkE,CAAC;AAClF,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;AAO9D,MAAM,UAAU,wBAAwB,CAAC,OAAkC;IACzE,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC;IAChD,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,YAAY,CAAC,CAAC,CAAC;IACpD,IAAI,YAAY;QAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;IAC7D,OAAO,8BAA8B,CAAC,MAAM,EAAE;QAC5C,GAAG,UAAU;QACb,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,UAAU;QACzC,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@assemblyline-agents/peekaboo",
3
- "version": "5.0.10",
3
+ "version": "6.0.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -9,11 +9,13 @@
9
9
  }
10
10
  },
11
11
  "dependencies": {
12
- "@assemblyline-agents/core": "5.0.10"
12
+ "@assemblyline-agents/core": "6.0.1"
13
13
  },
14
14
  "description": "Official Assembly Line Peekaboo local macOS computer-use connection plugin.",
15
15
  "files": [
16
- "dist"
16
+ "dist",
17
+ "plugin.json",
18
+ "ai.assemblyline"
17
19
  ],
18
20
  "engines": {
19
21
  "node": ">=22.19.0"
package/plugin.json ADDED
@@ -0,0 +1,11 @@
1
+ {
2
+ "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
3
+ "name": "peekaboo",
4
+ "version": "6.0.1",
5
+ "description": "Official Assembly Line Peekaboo local macOS computer-use connection plugin.",
6
+ "extensions": {
7
+ "ai.assemblyline": {
8
+ "entry": "./ai.assemblyline/index.cjs"
9
+ }
10
+ }
11
+ }