@pasko70/pibo 1.4.0 → 1.4.2
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 +183 -183
- package/context/codex-base-prompt.md +148 -148
- package/context/compute-worker.md +23 -23
- package/context/pibo-compaction-prompt.md +100 -100
- package/context/pibo-native-tooling.md +18 -18
- package/context/pibo-system-prompt.md +77 -77
- package/dist/apps/chat/agent-store.js +82 -82
- package/dist/apps/chat/data/project-service.js +166 -166
- package/dist/apps/chat/data/read-state-service.js +18 -18
- package/dist/apps/chat/data/timeline-query-service.js +8 -8
- package/dist/apps/chat/model-catalog.js +5 -1
- package/dist/apps/chat/static-assets.js +853 -853
- package/dist/apps/chat/workflow-persistence.js +255 -255
- package/dist/apps/chat-ui/assets/{dist-7YaJd19a.js → dist-B2BEpL7n.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-CiYeO8nN.js → dist-BAGS_xkV.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-BIvPnn_C.js → dist-BAXNalar.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-CjSI6y5z.js → dist-BwUvs6Ph.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-Ubstha8t.js → dist-C0zsJ8II.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-KXCMNKIL.js → dist-C3PnEkhb.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-CVQU42Fn.js → dist-CYPL-B2Z.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-BbNE72h8.js → dist-CiDSXgtg.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-D7TCkoFT.js → dist-DnACFKyO.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-ChSZNqKE.js → dist-ZB1-ui2y.js} +1 -1
- package/dist/apps/chat-ui/assets/{dist-8Noo5eCN.js → dist-vKlxFkTa.js} +1 -1
- package/dist/apps/chat-ui/assets/{index-CmxtUVG1.js → index-0x7tuTNX.js} +3 -3
- package/dist/apps/chat-ui/assets/{index-C25VYnyb.css → index-B-qaya1G.css} +1 -1
- package/dist/apps/chat-ui/index.html +18 -18
- package/dist/apps/chat-ui/manifest.webmanifest +25 -25
- package/dist/apps/chat-ui/sw.js +41 -41
- package/dist/apps/chat-vscode-web/index.html +12 -12
- package/dist/apps/cli-ui/cliSessionsCommand.js +23 -23
- package/dist/apps/context-files-ui/index.html +11 -11
- package/dist/apps/vscode-artifacts/latest.vsix +0 -0
- package/dist/apps/vscode-artifacts/pibo-vscode-ext-1.4.2.vsix +0 -0
- package/dist/bin/pibo.js +0 -0
- package/dist/bin/rg.js +0 -0
- package/dist/cli.js +35 -35
- package/dist/compute/cli.js +54 -54
- package/dist/core/runtime.js +2 -0
- package/dist/core/session-router.js +1 -0
- package/dist/cron/cli.js +15 -15
- package/dist/cron/store.js +49 -49
- package/dist/data/cli.js +23 -23
- package/dist/data/event-log.js +23 -23
- package/dist/data/message-store.js +20 -20
- package/dist/data/navigation-store.js +9 -9
- package/dist/data/observation-store.js +4 -4
- package/dist/data/payload-store.js +17 -17
- package/dist/data/schema.js +429 -429
- package/dist/data/session-store.js +4 -4
- package/dist/data/telemetry-queries.js +54 -54
- package/dist/data/telemetry.js +156 -156
- package/dist/debug/events.js +12 -12
- package/dist/debug/failures.js +6 -6
- package/dist/debug/index.js +207 -207
- package/dist/debug/messages.js +6 -6
- package/dist/debug/pty.js +124 -124
- package/dist/debug/session.js +29 -29
- package/dist/debug/tools.js +5 -5
- package/dist/debug/web-snapshot-browser-scripts.js +294 -294
- package/dist/debug/web-streaming-browser-library.js +925 -925
- package/dist/debug/web-streaming-browser-scripts.js +232 -232
- package/dist/debug/web-streaming-provider-telemetry.js +4 -4
- package/dist/debug/web.js +93 -93
- package/dist/gateway/cli.js +19 -19
- package/dist/mcp/config-command.js +53 -53
- package/dist/mcp/index.js +21 -21
- package/dist/mcp/registry.js +11 -11
- package/dist/pi-packages/cli.js +11 -11
- package/dist/plugins/context-files-store.js +110 -110
- package/dist/plugins/context-files.js +4 -4
- package/dist/providers/glm.js +59 -0
- package/dist/ralph/cli.js +18 -18
- package/dist/ralph/templates.js +140 -140
- package/dist/reliability/store.js +226 -226
- package/dist/sessions/pibo-data-store.js +16 -16
- package/dist/sessions/sqlite-store.js +53 -53
- package/dist/setup/cli.js +58 -58
- package/dist/tools/agent-browser-wrapper.js +80 -80
- package/dist/tools/browser-use-cdp.js +12 -12
- package/dist/tools/browser-use-wrapper.js +762 -762
- package/dist/tools/guides.js +455 -455
- package/dist/tools/index.js +99 -99
- package/dist/tools/runtime/node-worker-source.js +205 -205
- package/dist/tools/runtime/python-worker-source.js +177 -177
- package/dist/vscode/cli.js +9 -9
- package/dist/web-annotations/cdp.js +900 -900
- package/dist/web-annotations/store.js +96 -96
- package/docs/README.md +23 -23
- package/docs/ops/install-developer-host.md +112 -112
- package/docs/ops/install-user-host.md +96 -96
- package/docs/ops/upgrade-user-to-developer-host.md +69 -69
- package/docs/ops/vscode-extension-release.md +160 -160
- package/package.json +1 -1
- package/skills/builtin/pi-agent-harness/SKILL.md +319 -319
- package/skills/builtin/pi-agent-harness/agents/openai.yaml +4 -4
- package/skills/builtin/pibo-docker-system/SKILL.md +170 -170
- package/skills/builtin/pibo-spec-writing/SKILL.md +330 -330
- package/skills/builtin/prd/SKILL.md +143 -143
- package/skills/builtin/ralph-loop/SKILL.md +359 -359
- package/skills/builtin/ralph-prd-json/SKILL.md +123 -123
- package/skills/builtin/skill-creator/LICENSE.txt +201 -201
- package/skills/builtin/skill-creator/SKILL.md +513 -513
- package/skills/builtin/skill-creator/agents/analyzer.md +274 -274
- package/skills/builtin/skill-creator/agents/comparator.md +202 -202
- package/skills/builtin/skill-creator/agents/grader.md +223 -223
- package/skills/builtin/skill-creator/assets/eval_review.html +146 -146
- package/skills/builtin/skill-creator/eval-viewer/generate_review.py +471 -471
- package/skills/builtin/skill-creator/eval-viewer/viewer.html +1325 -1325
- package/skills/builtin/skill-creator/references/schemas.md +430 -430
- package/skills/builtin/skill-creator/scripts/aggregate_benchmark.py +401 -401
- package/skills/builtin/skill-creator/scripts/generate_report.py +326 -326
- package/skills/builtin/skill-creator/scripts/improve_description.py +247 -247
- package/skills/builtin/skill-creator/scripts/package_skill.py +136 -136
- package/skills/builtin/skill-creator/scripts/quick_validate.py +102 -102
- package/skills/builtin/skill-creator/scripts/run_eval.py +310 -310
- package/skills/builtin/skill-creator/scripts/run_loop.py +328 -328
- package/skills/builtin/skill-creator/scripts/utils.py +47 -47
- package/skills/builtin/web-annotations/SKILL.md +93 -93
- package/src/mcp/LICENSE.mcp-cli +21 -21
- package/dist/apps/vscode-artifacts/pibo-vscode-1.3.0.vsix +0 -0
- package/dist/apps/vscode-artifacts/pibo-vscode-ext-1.3.3.vsix +0 -0
- package/dist/apps/vscode-artifacts/pibo-vscode-ext-1.3.4.vsix +0 -0
- package/dist/apps/vscode-artifacts/pibo-vscode-ext-1.3.5.vsix +0 -0
- package/dist/core/shared-app.js +0 -17
- package/dist/data/final-app-space-cutover-migration.js +0 -728
- package/dist/data/shared-app-migration.js +0 -757
- package/dist/session-ui/ownerViewModel.js +0 -27
- package/dist/shared-app.js +0 -4
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
"""Shared utilities for skill-creator scripts."""
|
|
2
|
-
|
|
3
|
-
from pathlib import Path
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
def parse_skill_md(skill_path: Path) -> tuple[str, str, str]:
|
|
8
|
-
"""Parse a SKILL.md file, returning (name, description, full_content)."""
|
|
9
|
-
content = (skill_path / "SKILL.md").read_text()
|
|
10
|
-
lines = content.split("\n")
|
|
11
|
-
|
|
12
|
-
if lines[0].strip() != "---":
|
|
13
|
-
raise ValueError("SKILL.md missing frontmatter (no opening ---)")
|
|
14
|
-
|
|
15
|
-
end_idx = None
|
|
16
|
-
for i, line in enumerate(lines[1:], start=1):
|
|
17
|
-
if line.strip() == "---":
|
|
18
|
-
end_idx = i
|
|
19
|
-
break
|
|
20
|
-
|
|
21
|
-
if end_idx is None:
|
|
22
|
-
raise ValueError("SKILL.md missing frontmatter (no closing ---)")
|
|
23
|
-
|
|
24
|
-
name = ""
|
|
25
|
-
description = ""
|
|
26
|
-
frontmatter_lines = lines[1:end_idx]
|
|
27
|
-
i = 0
|
|
28
|
-
while i < len(frontmatter_lines):
|
|
29
|
-
line = frontmatter_lines[i]
|
|
30
|
-
if line.startswith("name:"):
|
|
31
|
-
name = line[len("name:"):].strip().strip('"').strip("'")
|
|
32
|
-
elif line.startswith("description:"):
|
|
33
|
-
value = line[len("description:"):].strip()
|
|
34
|
-
# Handle YAML multiline indicators (>, |, >-, |-)
|
|
35
|
-
if value in (">", "|", ">-", "|-"):
|
|
36
|
-
continuation_lines: list[str] = []
|
|
37
|
-
i += 1
|
|
38
|
-
while i < len(frontmatter_lines) and (frontmatter_lines[i].startswith(" ") or frontmatter_lines[i].startswith("\t")):
|
|
39
|
-
continuation_lines.append(frontmatter_lines[i].strip())
|
|
40
|
-
i += 1
|
|
41
|
-
description = " ".join(continuation_lines)
|
|
42
|
-
continue
|
|
43
|
-
else:
|
|
44
|
-
description = value.strip('"').strip("'")
|
|
45
|
-
i += 1
|
|
46
|
-
|
|
47
|
-
return name, description, content
|
|
1
|
+
"""Shared utilities for skill-creator scripts."""
|
|
2
|
+
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def parse_skill_md(skill_path: Path) -> tuple[str, str, str]:
|
|
8
|
+
"""Parse a SKILL.md file, returning (name, description, full_content)."""
|
|
9
|
+
content = (skill_path / "SKILL.md").read_text()
|
|
10
|
+
lines = content.split("\n")
|
|
11
|
+
|
|
12
|
+
if lines[0].strip() != "---":
|
|
13
|
+
raise ValueError("SKILL.md missing frontmatter (no opening ---)")
|
|
14
|
+
|
|
15
|
+
end_idx = None
|
|
16
|
+
for i, line in enumerate(lines[1:], start=1):
|
|
17
|
+
if line.strip() == "---":
|
|
18
|
+
end_idx = i
|
|
19
|
+
break
|
|
20
|
+
|
|
21
|
+
if end_idx is None:
|
|
22
|
+
raise ValueError("SKILL.md missing frontmatter (no closing ---)")
|
|
23
|
+
|
|
24
|
+
name = ""
|
|
25
|
+
description = ""
|
|
26
|
+
frontmatter_lines = lines[1:end_idx]
|
|
27
|
+
i = 0
|
|
28
|
+
while i < len(frontmatter_lines):
|
|
29
|
+
line = frontmatter_lines[i]
|
|
30
|
+
if line.startswith("name:"):
|
|
31
|
+
name = line[len("name:"):].strip().strip('"').strip("'")
|
|
32
|
+
elif line.startswith("description:"):
|
|
33
|
+
value = line[len("description:"):].strip()
|
|
34
|
+
# Handle YAML multiline indicators (>, |, >-, |-)
|
|
35
|
+
if value in (">", "|", ">-", "|-"):
|
|
36
|
+
continuation_lines: list[str] = []
|
|
37
|
+
i += 1
|
|
38
|
+
while i < len(frontmatter_lines) and (frontmatter_lines[i].startswith(" ") or frontmatter_lines[i].startswith("\t")):
|
|
39
|
+
continuation_lines.append(frontmatter_lines[i].strip())
|
|
40
|
+
i += 1
|
|
41
|
+
description = " ".join(continuation_lines)
|
|
42
|
+
continue
|
|
43
|
+
else:
|
|
44
|
+
description = value.strip('"').strip("'")
|
|
45
|
+
i += 1
|
|
46
|
+
|
|
47
|
+
return name, description, content
|
|
@@ -1,93 +1,93 @@
|
|
|
1
|
-
# Web Annotations Setup Guide
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
Web Annotations let a user mark elements on a live web page and send structured feedback to the current Pibo Session. The agent receives precise target metadata (selector, DOM path, bounding box, source hints) instead of vague text descriptions.
|
|
6
|
-
|
|
7
|
-
## How It Works
|
|
8
|
-
|
|
9
|
-
1. The user opens **Web Annotations** from Chat Web (Bug icon in the header).
|
|
10
|
-
2. A browser target is bound to the current Pibo Session via Chrome DevTools Protocol (CDP).
|
|
11
|
-
3. An overlay is injected into the page, letting the user click elements or place pins and write notes.
|
|
12
|
-
4. Annotations are stored session-scoped and can be attached to messages.
|
|
13
|
-
5. The agent sees structured context and can update annotation status via tools.
|
|
14
|
-
|
|
15
|
-
## Prerequisites: A CDP-enabled Browser
|
|
16
|
-
|
|
17
|
-
Web Annotations requires a Chrome/Chromium instance with an active remote debugging port. Without this, the "Refresh targets" button shows an error.
|
|
18
|
-
|
|
19
|
-
### Local Development (User runs `pibo gateway` or `pibo gateway:web`)
|
|
20
|
-
|
|
21
|
-
The user is already in a browser viewing Chat Web, but that browser tab is the **Chat UI itself**, not the target page to annotate. The user must either:
|
|
22
|
-
|
|
23
|
-
**Option A: Start Chrome with remote debugging**
|
|
24
|
-
```bash
|
|
25
|
-
# macOS
|
|
26
|
-
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
|
|
27
|
-
--remote-debugging-port=9222 \
|
|
28
|
-
--user-data-dir=/tmp/pibo-chrome-profile
|
|
29
|
-
|
|
30
|
-
# Linux
|
|
31
|
-
chromium --remote-debugging-port=9222 \
|
|
32
|
-
--user-data-dir=/tmp/pibo-chrome-profile
|
|
33
|
-
|
|
34
|
-
# Windows
|
|
35
|
-
chrome.exe --remote-debugging-port=9222
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
Then in Chat Web:
|
|
39
|
-
- Open the **Web Annotations** panel (Bug icon).
|
|
40
|
-
- Enter `http://localhost:9222` in the **CDP URL** field (optional if auto-detected).
|
|
41
|
-
- Click **Refresh** to list targets.
|
|
42
|
-
- Click **Annotate URL** and enter the page to annotate, or attach an existing tab.
|
|
43
|
-
|
|
44
|
-
**Option B: Use the Browser Use daemon (if running)**
|
|
45
|
-
|
|
46
|
-
If a Browser Use worker is active (e.g., for Ralph jobs), it already runs Chromium with `--remote-debugging-port`. The CDP URL may differ from the default. Check `ps aux | grep remote-debugging-port` on the server or ask the operator for the active CDP port.
|
|
47
|
-
|
|
48
|
-
**Option C: Docker Compute Worker**
|
|
49
|
-
|
|
50
|
-
Docker workers typically expose their browser CDP endpoint. The operator should ensure the worker's CDP port is reachable from the gateway host. The CDP URL can then be entered in the panel.
|
|
51
|
-
|
|
52
|
-
### Production (Remote Server)
|
|
53
|
-
|
|
54
|
-
In production, the operator should configure a persistent Chrome instance or use a managed browser pool. The CDP URL can be set as a default via config or environment variable.
|
|
55
|
-
|
|
56
|
-
## Using the Overlay
|
|
57
|
-
|
|
58
|
-
Once a binding is created and injected:
|
|
59
|
-
|
|
60
|
-
1. **Annotate mode** (default): Hover over elements to see a blue highlight. Click an element to open a note popup.
|
|
61
|
-
2. **Pin mode**: Click anywhere on the page to mark a point.
|
|
62
|
-
3. Write a note and click **Submit**.
|
|
63
|
-
4. Return to Chat Web. The annotation appears in the session panel.
|
|
64
|
-
5. Click **Attach** on the annotation chip before sending a message.
|
|
65
|
-
|
|
66
|
-
## Agent Tools
|
|
67
|
-
|
|
68
|
-
When the profile selects the `web-annotation-agent-tools` capability package, these tools are available:
|
|
69
|
-
|
|
70
|
-
- `web_annotations_list` – list annotations for the current session.
|
|
71
|
-
- `web_annotations_get` – inspect one annotation with full target metadata.
|
|
72
|
-
- `web_annotations_watch` – wait briefly for new annotations.
|
|
73
|
-
- `web_annotations_acknowledge` – mark an annotation as seen.
|
|
74
|
-
- `web_annotations_resolve` – mark work as complete.
|
|
75
|
-
- `web_annotations_dismiss` – close an irrelevant annotation.
|
|
76
|
-
|
|
77
|
-
## Troubleshooting
|
|
78
|
-
|
|
79
|
-
| Symptom | Cause | Fix |
|
|
80
|
-
|---------|-------|-----|
|
|
81
|
-
| "CDP unavailable" or "fetch failed" | No browser with `--remote-debugging-port` is running. | Start Chrome with `--remote-debugging-port=9222` (see Option A above). |
|
|
82
|
-
| "No attachable browser targets found" | Chrome is running but has no open tabs/pages. | Open a page in Chrome, or use **Annotate URL** to open one automatically. |
|
|
83
|
-
| "Target not found" | The selected tab was closed. | Refresh targets and select again, or re-inject the binding. |
|
|
84
|
-
| "Injection failed" | The page blocked script evaluation or the target reloaded. | Reload the page and re-inject from Chat Web. |
|
|
85
|
-
| Overlay disappears after reload | The overlay is runtime-only. | Re-inject via Chat Web for the same binding. |
|
|
86
|
-
| Cross-origin iframe cannot be inspected | Browser security prevents top-level overlay from accessing frame content. | Annotate the iframe element itself, or open the framed page directly. |
|
|
87
|
-
|
|
88
|
-
## Important Notes
|
|
89
|
-
|
|
90
|
-
- Annotations are app resources keyed by Pibo Session ID and annotated page/resource metadata. They are visible through app context access and are not partitioned by login account.
|
|
91
|
-
- The overlay does **not** modify the target page permanently. It is a runtime script injection.
|
|
92
|
-
- Full DOM dumps, inline screenshots, or page HTML are **not** sent to the model by default. Only bounded metadata (selector, hints, note, viewport) is included.
|
|
93
|
-
- The default CDP URL is `http://127.0.0.1:56663`. If your Chrome runs on a different port, enter it in the CDP URL field.
|
|
1
|
+
# Web Annotations Setup Guide
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Web Annotations let a user mark elements on a live web page and send structured feedback to the current Pibo Session. The agent receives precise target metadata (selector, DOM path, bounding box, source hints) instead of vague text descriptions.
|
|
6
|
+
|
|
7
|
+
## How It Works
|
|
8
|
+
|
|
9
|
+
1. The user opens **Web Annotations** from Chat Web (Bug icon in the header).
|
|
10
|
+
2. A browser target is bound to the current Pibo Session via Chrome DevTools Protocol (CDP).
|
|
11
|
+
3. An overlay is injected into the page, letting the user click elements or place pins and write notes.
|
|
12
|
+
4. Annotations are stored session-scoped and can be attached to messages.
|
|
13
|
+
5. The agent sees structured context and can update annotation status via tools.
|
|
14
|
+
|
|
15
|
+
## Prerequisites: A CDP-enabled Browser
|
|
16
|
+
|
|
17
|
+
Web Annotations requires a Chrome/Chromium instance with an active remote debugging port. Without this, the "Refresh targets" button shows an error.
|
|
18
|
+
|
|
19
|
+
### Local Development (User runs `pibo gateway` or `pibo gateway:web`)
|
|
20
|
+
|
|
21
|
+
The user is already in a browser viewing Chat Web, but that browser tab is the **Chat UI itself**, not the target page to annotate. The user must either:
|
|
22
|
+
|
|
23
|
+
**Option A: Start Chrome with remote debugging**
|
|
24
|
+
```bash
|
|
25
|
+
# macOS
|
|
26
|
+
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
|
|
27
|
+
--remote-debugging-port=9222 \
|
|
28
|
+
--user-data-dir=/tmp/pibo-chrome-profile
|
|
29
|
+
|
|
30
|
+
# Linux
|
|
31
|
+
chromium --remote-debugging-port=9222 \
|
|
32
|
+
--user-data-dir=/tmp/pibo-chrome-profile
|
|
33
|
+
|
|
34
|
+
# Windows
|
|
35
|
+
chrome.exe --remote-debugging-port=9222
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Then in Chat Web:
|
|
39
|
+
- Open the **Web Annotations** panel (Bug icon).
|
|
40
|
+
- Enter `http://localhost:9222` in the **CDP URL** field (optional if auto-detected).
|
|
41
|
+
- Click **Refresh** to list targets.
|
|
42
|
+
- Click **Annotate URL** and enter the page to annotate, or attach an existing tab.
|
|
43
|
+
|
|
44
|
+
**Option B: Use the Browser Use daemon (if running)**
|
|
45
|
+
|
|
46
|
+
If a Browser Use worker is active (e.g., for Ralph jobs), it already runs Chromium with `--remote-debugging-port`. The CDP URL may differ from the default. Check `ps aux | grep remote-debugging-port` on the server or ask the operator for the active CDP port.
|
|
47
|
+
|
|
48
|
+
**Option C: Docker Compute Worker**
|
|
49
|
+
|
|
50
|
+
Docker workers typically expose their browser CDP endpoint. The operator should ensure the worker's CDP port is reachable from the gateway host. The CDP URL can then be entered in the panel.
|
|
51
|
+
|
|
52
|
+
### Production (Remote Server)
|
|
53
|
+
|
|
54
|
+
In production, the operator should configure a persistent Chrome instance or use a managed browser pool. The CDP URL can be set as a default via config or environment variable.
|
|
55
|
+
|
|
56
|
+
## Using the Overlay
|
|
57
|
+
|
|
58
|
+
Once a binding is created and injected:
|
|
59
|
+
|
|
60
|
+
1. **Annotate mode** (default): Hover over elements to see a blue highlight. Click an element to open a note popup.
|
|
61
|
+
2. **Pin mode**: Click anywhere on the page to mark a point.
|
|
62
|
+
3. Write a note and click **Submit**.
|
|
63
|
+
4. Return to Chat Web. The annotation appears in the session panel.
|
|
64
|
+
5. Click **Attach** on the annotation chip before sending a message.
|
|
65
|
+
|
|
66
|
+
## Agent Tools
|
|
67
|
+
|
|
68
|
+
When the profile selects the `web-annotation-agent-tools` capability package, these tools are available:
|
|
69
|
+
|
|
70
|
+
- `web_annotations_list` – list annotations for the current session.
|
|
71
|
+
- `web_annotations_get` – inspect one annotation with full target metadata.
|
|
72
|
+
- `web_annotations_watch` – wait briefly for new annotations.
|
|
73
|
+
- `web_annotations_acknowledge` – mark an annotation as seen.
|
|
74
|
+
- `web_annotations_resolve` – mark work as complete.
|
|
75
|
+
- `web_annotations_dismiss` – close an irrelevant annotation.
|
|
76
|
+
|
|
77
|
+
## Troubleshooting
|
|
78
|
+
|
|
79
|
+
| Symptom | Cause | Fix |
|
|
80
|
+
|---------|-------|-----|
|
|
81
|
+
| "CDP unavailable" or "fetch failed" | No browser with `--remote-debugging-port` is running. | Start Chrome with `--remote-debugging-port=9222` (see Option A above). |
|
|
82
|
+
| "No attachable browser targets found" | Chrome is running but has no open tabs/pages. | Open a page in Chrome, or use **Annotate URL** to open one automatically. |
|
|
83
|
+
| "Target not found" | The selected tab was closed. | Refresh targets and select again, or re-inject the binding. |
|
|
84
|
+
| "Injection failed" | The page blocked script evaluation or the target reloaded. | Reload the page and re-inject from Chat Web. |
|
|
85
|
+
| Overlay disappears after reload | The overlay is runtime-only. | Re-inject via Chat Web for the same binding. |
|
|
86
|
+
| Cross-origin iframe cannot be inspected | Browser security prevents top-level overlay from accessing frame content. | Annotate the iframe element itself, or open the framed page directly. |
|
|
87
|
+
|
|
88
|
+
## Important Notes
|
|
89
|
+
|
|
90
|
+
- Annotations are app resources keyed by Pibo Session ID and annotated page/resource metadata. They are visible through app context access and are not partitioned by login account.
|
|
91
|
+
- The overlay does **not** modify the target page permanently. It is a runtime script injection.
|
|
92
|
+
- Full DOM dumps, inline screenshots, or page HTML are **not** sent to the model by default. Only bounded metadata (selector, hints, note, viewport) is included.
|
|
93
|
+
- The default CDP URL is `http://127.0.0.1:56663`. If your Chrome runs on a different port, enter it in the CDP URL field.
|
package/src/mcp/LICENSE.mcp-cli
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/dist/core/shared-app.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export const SHARED_APP_SCOPE = "shared:app";
|
|
2
|
-
export const SHARED_PRINCIPAL_ID = "shared:app";
|
|
3
|
-
export function compatibleOwnerScopes(ownerScope) {
|
|
4
|
-
if (!ownerScope || ownerScope === SHARED_APP_SCOPE)
|
|
5
|
-
return [SHARED_APP_SCOPE];
|
|
6
|
-
return [ownerScope, SHARED_APP_SCOPE];
|
|
7
|
-
}
|
|
8
|
-
export function compatiblePrincipalIds(principalId) {
|
|
9
|
-
if (!principalId || principalId === SHARED_PRINCIPAL_ID)
|
|
10
|
-
return [SHARED_PRINCIPAL_ID];
|
|
11
|
-
return [principalId, SHARED_PRINCIPAL_ID];
|
|
12
|
-
}
|
|
13
|
-
export function isCompatibleOwnerScope(actual, expected) {
|
|
14
|
-
if (!expected)
|
|
15
|
-
return true;
|
|
16
|
-
return compatibleOwnerScopes(expected).includes(actual ?? SHARED_APP_SCOPE);
|
|
17
|
-
}
|