@next-open-ai/openclawx 0.6.6

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.
Files changed (198) hide show
  1. package/README.md +523 -0
  2. package/apps/desktop/README.md +210 -0
  3. package/apps/desktop/renderer/dist/assets/index-CYkSfhcp.css +10 -0
  4. package/apps/desktop/renderer/dist/assets/index-FI6O25Ms.js +89 -0
  5. package/apps/desktop/renderer/dist/index.html +22 -0
  6. package/dist/cli/cli.d.ts +2 -0
  7. package/dist/cli/cli.js +198 -0
  8. package/dist/cli/service.d.ts +13 -0
  9. package/dist/cli/service.js +243 -0
  10. package/dist/cli.d.ts +5 -0
  11. package/dist/cli.js +5 -0
  12. package/dist/core/agent/agent-dir.d.ts +14 -0
  13. package/dist/core/agent/agent-dir.js +75 -0
  14. package/dist/core/agent/agent-manager.d.ts +64 -0
  15. package/dist/core/agent/agent-manager.js +278 -0
  16. package/dist/core/agent/config-manager.d.ts +25 -0
  17. package/dist/core/agent/config-manager.js +84 -0
  18. package/dist/core/agent/run.d.ts +26 -0
  19. package/dist/core/agent/run.js +65 -0
  20. package/dist/core/agent/skills.d.ts +20 -0
  21. package/dist/core/agent/skills.js +86 -0
  22. package/dist/core/config/desktop-config.d.ts +90 -0
  23. package/dist/core/config/desktop-config.js +521 -0
  24. package/dist/core/config/provider-support-default.d.ts +21 -0
  25. package/dist/core/config/provider-support-default.js +57 -0
  26. package/dist/core/installer/index.d.ts +1 -0
  27. package/dist/core/installer/index.js +1 -0
  28. package/dist/core/installer/skill-installer.d.ts +39 -0
  29. package/dist/core/installer/skill-installer.js +215 -0
  30. package/dist/core/mcp/adapter.d.ts +17 -0
  31. package/dist/core/mcp/adapter.js +49 -0
  32. package/dist/core/mcp/client.d.ts +24 -0
  33. package/dist/core/mcp/client.js +70 -0
  34. package/dist/core/mcp/config.d.ts +22 -0
  35. package/dist/core/mcp/config.js +69 -0
  36. package/dist/core/mcp/index.d.ts +18 -0
  37. package/dist/core/mcp/index.js +20 -0
  38. package/dist/core/mcp/operator.d.ts +15 -0
  39. package/dist/core/mcp/operator.js +72 -0
  40. package/dist/core/mcp/transport/index.d.ts +11 -0
  41. package/dist/core/mcp/transport/index.js +16 -0
  42. package/dist/core/mcp/transport/sse.d.ts +20 -0
  43. package/dist/core/mcp/transport/sse.js +82 -0
  44. package/dist/core/mcp/transport/stdio.d.ts +32 -0
  45. package/dist/core/mcp/transport/stdio.js +132 -0
  46. package/dist/core/mcp/types.d.ts +72 -0
  47. package/dist/core/mcp/types.js +5 -0
  48. package/dist/core/memory/build-summary.d.ts +6 -0
  49. package/dist/core/memory/build-summary.js +27 -0
  50. package/dist/core/memory/compaction-extension.d.ts +6 -0
  51. package/dist/core/memory/compaction-extension.js +23 -0
  52. package/dist/core/memory/embedding.d.ts +4 -0
  53. package/dist/core/memory/embedding.js +15 -0
  54. package/dist/core/memory/index.d.ts +29 -0
  55. package/dist/core/memory/index.js +70 -0
  56. package/dist/core/memory/remote-embedding.d.ts +10 -0
  57. package/dist/core/memory/remote-embedding.js +36 -0
  58. package/dist/core/memory/types.d.ts +16 -0
  59. package/dist/core/memory/types.js +1 -0
  60. package/dist/core/memory/vector-store.d.ts +15 -0
  61. package/dist/core/memory/vector-store.js +65 -0
  62. package/dist/core/tools/bookmark-tool.d.ts +9 -0
  63. package/dist/core/tools/bookmark-tool.js +118 -0
  64. package/dist/core/tools/browser-tool.d.ts +10 -0
  65. package/dist/core/tools/browser-tool.js +362 -0
  66. package/dist/core/tools/index.d.ts +4 -0
  67. package/dist/core/tools/index.js +4 -0
  68. package/dist/core/tools/install-skill-tool.d.ts +6 -0
  69. package/dist/core/tools/install-skill-tool.js +53 -0
  70. package/dist/core/tools/save-experience-tool.d.ts +5 -0
  71. package/dist/core/tools/save-experience-tool.js +54 -0
  72. package/dist/gateway/auth-hooks.d.ts +17 -0
  73. package/dist/gateway/auth-hooks.js +19 -0
  74. package/dist/gateway/backend-url.d.ts +2 -0
  75. package/dist/gateway/backend-url.js +11 -0
  76. package/dist/gateway/channel-handler.d.ts +6 -0
  77. package/dist/gateway/channel-handler.js +3 -0
  78. package/dist/gateway/clients.d.ts +5 -0
  79. package/dist/gateway/clients.js +4 -0
  80. package/dist/gateway/connection-handler.d.ts +6 -0
  81. package/dist/gateway/connection-handler.js +48 -0
  82. package/dist/gateway/index.d.ts +3 -0
  83. package/dist/gateway/index.js +2 -0
  84. package/dist/gateway/message-handler.d.ts +5 -0
  85. package/dist/gateway/message-handler.js +65 -0
  86. package/dist/gateway/methods/agent-cancel.d.ts +10 -0
  87. package/dist/gateway/methods/agent-cancel.js +17 -0
  88. package/dist/gateway/methods/agent-chat.d.ts +8 -0
  89. package/dist/gateway/methods/agent-chat.js +148 -0
  90. package/dist/gateway/methods/connect.d.ts +9 -0
  91. package/dist/gateway/methods/connect.js +18 -0
  92. package/dist/gateway/methods/install-skill-from-path.d.ts +13 -0
  93. package/dist/gateway/methods/install-skill-from-path.js +15 -0
  94. package/dist/gateway/methods/install-skill-from-upload.d.ts +14 -0
  95. package/dist/gateway/methods/install-skill-from-upload.js +13 -0
  96. package/dist/gateway/methods/run-scheduled-task.d.ts +15 -0
  97. package/dist/gateway/methods/run-scheduled-task.js +127 -0
  98. package/dist/gateway/paths.d.ts +20 -0
  99. package/dist/gateway/paths.js +19 -0
  100. package/dist/gateway/server.d.ts +8 -0
  101. package/dist/gateway/server.js +190 -0
  102. package/dist/gateway/sse-handler.d.ts +6 -0
  103. package/dist/gateway/sse-handler.js +3 -0
  104. package/dist/gateway/types.d.ts +90 -0
  105. package/dist/gateway/types.js +1 -0
  106. package/dist/gateway/utils.d.ts +22 -0
  107. package/dist/gateway/utils.js +67 -0
  108. package/dist/gateway/voice-handler.d.ts +12 -0
  109. package/dist/gateway/voice-handler.js +18 -0
  110. package/dist/index.d.ts +5 -0
  111. package/dist/index.js +5 -0
  112. package/dist/server/agent-config/agent-config.controller.d.ts +30 -0
  113. package/dist/server/agent-config/agent-config.controller.js +83 -0
  114. package/dist/server/agent-config/agent-config.module.d.ts +2 -0
  115. package/dist/server/agent-config/agent-config.module.js +19 -0
  116. package/dist/server/agent-config/agent-config.service.d.ts +53 -0
  117. package/dist/server/agent-config/agent-config.service.js +213 -0
  118. package/dist/server/agents/agents.controller.d.ts +41 -0
  119. package/dist/server/agents/agents.controller.js +118 -0
  120. package/dist/server/agents/agents.gateway.d.ts +21 -0
  121. package/dist/server/agents/agents.gateway.js +103 -0
  122. package/dist/server/agents/agents.module.d.ts +2 -0
  123. package/dist/server/agents/agents.module.js +20 -0
  124. package/dist/server/agents/agents.service.d.ts +63 -0
  125. package/dist/server/agents/agents.service.js +169 -0
  126. package/dist/server/app.module.d.ts +2 -0
  127. package/dist/server/app.module.js +38 -0
  128. package/dist/server/auth/auth.controller.d.ts +20 -0
  129. package/dist/server/auth/auth.controller.js +64 -0
  130. package/dist/server/auth/auth.module.d.ts +2 -0
  131. package/dist/server/auth/auth.module.js +19 -0
  132. package/dist/server/bootstrap.d.ts +15 -0
  133. package/dist/server/bootstrap.js +38 -0
  134. package/dist/server/config/config.controller.d.ts +73 -0
  135. package/dist/server/config/config.controller.js +95 -0
  136. package/dist/server/config/config.module.d.ts +2 -0
  137. package/dist/server/config/config.module.js +21 -0
  138. package/dist/server/config/config.service.d.ts +82 -0
  139. package/dist/server/config/config.service.js +123 -0
  140. package/dist/server/database/database.module.d.ts +2 -0
  141. package/dist/server/database/database.module.js +18 -0
  142. package/dist/server/database/database.service.d.ts +26 -0
  143. package/dist/server/database/database.service.js +253 -0
  144. package/dist/server/main.d.ts +1 -0
  145. package/dist/server/main.js +9 -0
  146. package/dist/server/saved-items/saved-items.controller.d.ts +57 -0
  147. package/dist/server/saved-items/saved-items.controller.js +229 -0
  148. package/dist/server/saved-items/saved-items.module.d.ts +2 -0
  149. package/dist/server/saved-items/saved-items.module.js +25 -0
  150. package/dist/server/saved-items/saved-items.service.d.ts +31 -0
  151. package/dist/server/saved-items/saved-items.service.js +105 -0
  152. package/dist/server/saved-items/tags.controller.d.ts +30 -0
  153. package/dist/server/saved-items/tags.controller.js +85 -0
  154. package/dist/server/saved-items/tags.service.d.ts +24 -0
  155. package/dist/server/saved-items/tags.service.js +84 -0
  156. package/dist/server/skills/skills.controller.d.ts +63 -0
  157. package/dist/server/skills/skills.controller.js +194 -0
  158. package/dist/server/skills/skills.module.d.ts +2 -0
  159. package/dist/server/skills/skills.module.js +22 -0
  160. package/dist/server/skills/skills.service.d.ts +65 -0
  161. package/dist/server/skills/skills.service.js +388 -0
  162. package/dist/server/tasks/tasks.controller.d.ts +52 -0
  163. package/dist/server/tasks/tasks.controller.js +163 -0
  164. package/dist/server/tasks/tasks.module.d.ts +2 -0
  165. package/dist/server/tasks/tasks.module.js +23 -0
  166. package/dist/server/tasks/tasks.service.d.ts +86 -0
  167. package/dist/server/tasks/tasks.service.js +327 -0
  168. package/dist/server/usage/usage.controller.d.ts +12 -0
  169. package/dist/server/usage/usage.controller.js +46 -0
  170. package/dist/server/usage/usage.module.d.ts +2 -0
  171. package/dist/server/usage/usage.module.js +19 -0
  172. package/dist/server/usage/usage.service.d.ts +21 -0
  173. package/dist/server/usage/usage.service.js +55 -0
  174. package/dist/server/users/users.controller.d.ts +35 -0
  175. package/dist/server/users/users.controller.js +69 -0
  176. package/dist/server/users/users.module.d.ts +2 -0
  177. package/dist/server/users/users.module.js +19 -0
  178. package/dist/server/users/users.service.d.ts +39 -0
  179. package/dist/server/users/users.service.js +140 -0
  180. package/dist/server/workspace/workspace.controller.d.ts +24 -0
  181. package/dist/server/workspace/workspace.controller.js +132 -0
  182. package/dist/server/workspace/workspace.module.d.ts +2 -0
  183. package/dist/server/workspace/workspace.module.js +21 -0
  184. package/dist/server/workspace/workspace.service.d.ts +36 -0
  185. package/dist/server/workspace/workspace.service.js +142 -0
  186. package/package.json +90 -0
  187. package/skills/agent-browser/SKILL.md +207 -0
  188. package/skills/agent-browser/references/authentication.md +202 -0
  189. package/skills/agent-browser/references/commands.md +259 -0
  190. package/skills/agent-browser/references/proxy-support.md +188 -0
  191. package/skills/agent-browser/references/session-management.md +193 -0
  192. package/skills/agent-browser/references/snapshot-refs.md +194 -0
  193. package/skills/agent-browser/references/video-recording.md +173 -0
  194. package/skills/agent-browser/templates/authenticated-session.sh +97 -0
  195. package/skills/agent-browser/templates/capture-workflow.sh +69 -0
  196. package/skills/agent-browser/templates/form-automation.sh +62 -0
  197. package/skills/find-skills/SKILL.md +140 -0
  198. package/skills/url-bookmark/SKILL.md +36 -0
@@ -0,0 +1,173 @@
1
+ # Video Recording
2
+
3
+ Capture browser automation as video for debugging, documentation, or verification.
4
+
5
+ **Related**: [commands.md](commands.md) for full command reference, [SKILL.md](../SKILL.md) for quick start.
6
+
7
+ ## Contents
8
+
9
+ - [Basic Recording](#basic-recording)
10
+ - [Recording Commands](#recording-commands)
11
+ - [Use Cases](#use-cases)
12
+ - [Best Practices](#best-practices)
13
+ - [Output Format](#output-format)
14
+ - [Limitations](#limitations)
15
+
16
+ ## Basic Recording
17
+
18
+ ```bash
19
+ # Start recording
20
+ agent-browser record start ./demo.webm
21
+
22
+ # Perform actions
23
+ agent-browser open https://example.com
24
+ agent-browser snapshot -i
25
+ agent-browser click @e1
26
+ agent-browser fill @e2 "test input"
27
+
28
+ # Stop and save
29
+ agent-browser record stop
30
+ ```
31
+
32
+ ## Recording Commands
33
+
34
+ ```bash
35
+ # Start recording to file
36
+ agent-browser record start ./output.webm
37
+
38
+ # Stop current recording
39
+ agent-browser record stop
40
+
41
+ # Restart with new file (stops current + starts new)
42
+ agent-browser record restart ./take2.webm
43
+ ```
44
+
45
+ ## Use Cases
46
+
47
+ ### Debugging Failed Automation
48
+
49
+ ```bash
50
+ #!/bin/bash
51
+ # Record automation for debugging
52
+
53
+ agent-browser record start ./debug-$(date +%Y%m%d-%H%M%S).webm
54
+
55
+ # Run your automation
56
+ agent-browser open https://app.example.com
57
+ agent-browser snapshot -i
58
+ agent-browser click @e1 || {
59
+ echo "Click failed - check recording"
60
+ agent-browser record stop
61
+ exit 1
62
+ }
63
+
64
+ agent-browser record stop
65
+ ```
66
+
67
+ ### Documentation Generation
68
+
69
+ ```bash
70
+ #!/bin/bash
71
+ # Record workflow for documentation
72
+
73
+ agent-browser record start ./docs/how-to-login.webm
74
+
75
+ agent-browser open https://app.example.com/login
76
+ agent-browser wait 1000 # Pause for visibility
77
+
78
+ agent-browser snapshot -i
79
+ agent-browser fill @e1 "demo@example.com"
80
+ agent-browser wait 500
81
+
82
+ agent-browser fill @e2 "password"
83
+ agent-browser wait 500
84
+
85
+ agent-browser click @e3
86
+ agent-browser wait --load networkidle
87
+ agent-browser wait 1000 # Show result
88
+
89
+ agent-browser record stop
90
+ ```
91
+
92
+ ### CI/CD Test Evidence
93
+
94
+ ```bash
95
+ #!/bin/bash
96
+ # Record E2E test runs for CI artifacts
97
+
98
+ TEST_NAME="${1:-e2e-test}"
99
+ RECORDING_DIR="./test-recordings"
100
+ mkdir -p "$RECORDING_DIR"
101
+
102
+ agent-browser record start "$RECORDING_DIR/$TEST_NAME-$(date +%s).webm"
103
+
104
+ # Run test
105
+ if run_e2e_test; then
106
+ echo "Test passed"
107
+ else
108
+ echo "Test failed - recording saved"
109
+ fi
110
+
111
+ agent-browser record stop
112
+ ```
113
+
114
+ ## Best Practices
115
+
116
+ ### 1. Add Pauses for Clarity
117
+
118
+ ```bash
119
+ # Slow down for human viewing
120
+ agent-browser click @e1
121
+ agent-browser wait 500 # Let viewer see result
122
+ ```
123
+
124
+ ### 2. Use Descriptive Filenames
125
+
126
+ ```bash
127
+ # Include context in filename
128
+ agent-browser record start ./recordings/login-flow-2024-01-15.webm
129
+ agent-browser record start ./recordings/checkout-test-run-42.webm
130
+ ```
131
+
132
+ ### 3. Handle Recording in Error Cases
133
+
134
+ ```bash
135
+ #!/bin/bash
136
+ set -e
137
+
138
+ cleanup() {
139
+ agent-browser record stop 2>/dev/null || true
140
+ agent-browser close 2>/dev/null || true
141
+ }
142
+ trap cleanup EXIT
143
+
144
+ agent-browser record start ./automation.webm
145
+ # ... automation steps ...
146
+ ```
147
+
148
+ ### 4. Combine with Screenshots
149
+
150
+ ```bash
151
+ # Record video AND capture key frames
152
+ agent-browser record start ./flow.webm
153
+
154
+ agent-browser open https://example.com
155
+ agent-browser screenshot ./screenshots/step1-homepage.png
156
+
157
+ agent-browser click @e1
158
+ agent-browser screenshot ./screenshots/step2-after-click.png
159
+
160
+ agent-browser record stop
161
+ ```
162
+
163
+ ## Output Format
164
+
165
+ - Default format: WebM (VP8/VP9 codec)
166
+ - Compatible with all modern browsers and video players
167
+ - Compressed but high quality
168
+
169
+ ## Limitations
170
+
171
+ - Recording adds slight overhead to automation
172
+ - Large recordings can consume significant disk space
173
+ - Some headless environments may have codec limitations
@@ -0,0 +1,97 @@
1
+ #!/bin/bash
2
+ # Template: Authenticated Session Workflow
3
+ # Purpose: Login once, save state, reuse for subsequent runs
4
+ # Usage: ./authenticated-session.sh <login-url> [state-file]
5
+ #
6
+ # Environment variables:
7
+ # APP_USERNAME - Login username/email
8
+ # APP_PASSWORD - Login password
9
+ #
10
+ # Two modes:
11
+ # 1. Discovery mode (default): Shows form structure so you can identify refs
12
+ # 2. Login mode: Performs actual login after you update the refs
13
+ #
14
+ # Setup steps:
15
+ # 1. Run once to see form structure (discovery mode)
16
+ # 2. Update refs in LOGIN FLOW section below
17
+ # 3. Set APP_USERNAME and APP_PASSWORD
18
+ # 4. Delete the DISCOVERY section
19
+
20
+ set -euo pipefail
21
+
22
+ LOGIN_URL="${1:?Usage: $0 <login-url> [state-file]}"
23
+ STATE_FILE="${2:-./auth-state.json}"
24
+
25
+ echo "Authentication workflow: $LOGIN_URL"
26
+
27
+ # ================================================================
28
+ # SAVED STATE: Skip login if valid saved state exists
29
+ # ================================================================
30
+ if [[ -f "$STATE_FILE" ]]; then
31
+ echo "Loading saved state from $STATE_FILE..."
32
+ agent-browser state load "$STATE_FILE"
33
+ agent-browser open "$LOGIN_URL"
34
+ agent-browser wait --load networkidle
35
+
36
+ CURRENT_URL=$(agent-browser get url)
37
+ if [[ "$CURRENT_URL" != *"login"* ]] && [[ "$CURRENT_URL" != *"signin"* ]]; then
38
+ echo "Session restored successfully"
39
+ agent-browser snapshot -i
40
+ exit 0
41
+ fi
42
+ echo "Session expired, performing fresh login..."
43
+ rm -f "$STATE_FILE"
44
+ fi
45
+
46
+ # ================================================================
47
+ # DISCOVERY MODE: Shows form structure (delete after setup)
48
+ # ================================================================
49
+ echo "Opening login page..."
50
+ agent-browser open "$LOGIN_URL"
51
+ agent-browser wait --load networkidle
52
+
53
+ echo ""
54
+ echo "Login form structure:"
55
+ echo "---"
56
+ agent-browser snapshot -i
57
+ echo "---"
58
+ echo ""
59
+ echo "Next steps:"
60
+ echo " 1. Note the refs: username=@e?, password=@e?, submit=@e?"
61
+ echo " 2. Update the LOGIN FLOW section below with your refs"
62
+ echo " 3. Set: export APP_USERNAME='...' APP_PASSWORD='...'"
63
+ echo " 4. Delete this DISCOVERY MODE section"
64
+ echo ""
65
+ agent-browser close
66
+ exit 0
67
+
68
+ # ================================================================
69
+ # LOGIN FLOW: Uncomment and customize after discovery
70
+ # ================================================================
71
+ # : "${APP_USERNAME:?Set APP_USERNAME environment variable}"
72
+ # : "${APP_PASSWORD:?Set APP_PASSWORD environment variable}"
73
+ #
74
+ # agent-browser open "$LOGIN_URL"
75
+ # agent-browser wait --load networkidle
76
+ # agent-browser snapshot -i
77
+ #
78
+ # # Fill credentials (update refs to match your form)
79
+ # agent-browser fill @e1 "$APP_USERNAME"
80
+ # agent-browser fill @e2 "$APP_PASSWORD"
81
+ # agent-browser click @e3
82
+ # agent-browser wait --load networkidle
83
+ #
84
+ # # Verify login succeeded
85
+ # FINAL_URL=$(agent-browser get url)
86
+ # if [[ "$FINAL_URL" == *"login"* ]] || [[ "$FINAL_URL" == *"signin"* ]]; then
87
+ # echo "Login failed - still on login page"
88
+ # agent-browser screenshot /tmp/login-failed.png
89
+ # agent-browser close
90
+ # exit 1
91
+ # fi
92
+ #
93
+ # # Save state for future runs
94
+ # echo "Saving state to $STATE_FILE"
95
+ # agent-browser state save "$STATE_FILE"
96
+ # echo "Login successful"
97
+ # agent-browser snapshot -i
@@ -0,0 +1,69 @@
1
+ #!/bin/bash
2
+ # Template: Content Capture Workflow
3
+ # Purpose: Extract content from web pages (text, screenshots, PDF)
4
+ # Usage: ./capture-workflow.sh <url> [output-dir]
5
+ #
6
+ # Outputs:
7
+ # - page-full.png: Full page screenshot
8
+ # - page-structure.txt: Page element structure with refs
9
+ # - page-text.txt: All text content
10
+ # - page.pdf: PDF version
11
+ #
12
+ # Optional: Load auth state for protected pages
13
+
14
+ set -euo pipefail
15
+
16
+ TARGET_URL="${1:?Usage: $0 <url> [output-dir]}"
17
+ OUTPUT_DIR="${2:-.}"
18
+
19
+ echo "Capturing: $TARGET_URL"
20
+ mkdir -p "$OUTPUT_DIR"
21
+
22
+ # Optional: Load authentication state
23
+ # if [[ -f "./auth-state.json" ]]; then
24
+ # echo "Loading authentication state..."
25
+ # agent-browser state load "./auth-state.json"
26
+ # fi
27
+
28
+ # Navigate to target
29
+ agent-browser open "$TARGET_URL"
30
+ agent-browser wait --load networkidle
31
+
32
+ # Get metadata
33
+ TITLE=$(agent-browser get title)
34
+ URL=$(agent-browser get url)
35
+ echo "Title: $TITLE"
36
+ echo "URL: $URL"
37
+
38
+ # Capture full page screenshot
39
+ agent-browser screenshot --full "$OUTPUT_DIR/page-full.png"
40
+ echo "Saved: $OUTPUT_DIR/page-full.png"
41
+
42
+ # Get page structure with refs
43
+ agent-browser snapshot -i > "$OUTPUT_DIR/page-structure.txt"
44
+ echo "Saved: $OUTPUT_DIR/page-structure.txt"
45
+
46
+ # Extract all text content
47
+ agent-browser get text body > "$OUTPUT_DIR/page-text.txt"
48
+ echo "Saved: $OUTPUT_DIR/page-text.txt"
49
+
50
+ # Save as PDF
51
+ agent-browser pdf "$OUTPUT_DIR/page.pdf"
52
+ echo "Saved: $OUTPUT_DIR/page.pdf"
53
+
54
+ # Optional: Extract specific elements using refs from structure
55
+ # agent-browser get text @e5 > "$OUTPUT_DIR/main-content.txt"
56
+
57
+ # Optional: Handle infinite scroll pages
58
+ # for i in {1..5}; do
59
+ # agent-browser scroll down 1000
60
+ # agent-browser wait 1000
61
+ # done
62
+ # agent-browser screenshot --full "$OUTPUT_DIR/page-scrolled.png"
63
+
64
+ # Cleanup
65
+ agent-browser close
66
+
67
+ echo ""
68
+ echo "Capture complete:"
69
+ ls -la "$OUTPUT_DIR"
@@ -0,0 +1,62 @@
1
+ #!/bin/bash
2
+ # Template: Form Automation Workflow
3
+ # Purpose: Fill and submit web forms with validation
4
+ # Usage: ./form-automation.sh <form-url>
5
+ #
6
+ # This template demonstrates the snapshot-interact-verify pattern:
7
+ # 1. Navigate to form
8
+ # 2. Snapshot to get element refs
9
+ # 3. Fill fields using refs
10
+ # 4. Submit and verify result
11
+ #
12
+ # Customize: Update the refs (@e1, @e2, etc.) based on your form's snapshot output
13
+
14
+ set -euo pipefail
15
+
16
+ FORM_URL="${1:?Usage: $0 <form-url>}"
17
+
18
+ echo "Form automation: $FORM_URL"
19
+
20
+ # Step 1: Navigate to form
21
+ agent-browser open "$FORM_URL"
22
+ agent-browser wait --load networkidle
23
+
24
+ # Step 2: Snapshot to discover form elements
25
+ echo ""
26
+ echo "Form structure:"
27
+ agent-browser snapshot -i
28
+
29
+ # Step 3: Fill form fields (customize these refs based on snapshot output)
30
+ #
31
+ # Common field types:
32
+ # agent-browser fill @e1 "John Doe" # Text input
33
+ # agent-browser fill @e2 "user@example.com" # Email input
34
+ # agent-browser fill @e3 "SecureP@ss123" # Password input
35
+ # agent-browser select @e4 "Option Value" # Dropdown
36
+ # agent-browser check @e5 # Checkbox
37
+ # agent-browser click @e6 # Radio button
38
+ # agent-browser fill @e7 "Multi-line text" # Textarea
39
+ # agent-browser upload @e8 /path/to/file.pdf # File upload
40
+ #
41
+ # Uncomment and modify:
42
+ # agent-browser fill @e1 "Test User"
43
+ # agent-browser fill @e2 "test@example.com"
44
+ # agent-browser click @e3 # Submit button
45
+
46
+ # Step 4: Wait for submission
47
+ # agent-browser wait --load networkidle
48
+ # agent-browser wait --url "**/success" # Or wait for redirect
49
+
50
+ # Step 5: Verify result
51
+ echo ""
52
+ echo "Result:"
53
+ agent-browser get url
54
+ agent-browser snapshot -i
55
+
56
+ # Optional: Capture evidence
57
+ agent-browser screenshot /tmp/form-result.png
58
+ echo "Screenshot saved: /tmp/form-result.png"
59
+
60
+ # Cleanup
61
+ agent-browser close
62
+ echo "Done"
@@ -0,0 +1,140 @@
1
+ ---
2
+ name: find-skills
3
+ description: Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
4
+ ---
5
+
6
+ # Find Skills
7
+
8
+ This skill helps you discover and install skills from the open agent skills ecosystem.
9
+
10
+ ## When to Use This Skill
11
+
12
+ Use this skill when the user:
13
+
14
+ - Asks "how do I do X" where X might be a common task with an existing skill
15
+ - Says "find a skill for X" or "is there a skill for X"
16
+ - Asks "can you do X" where X is a specialized capability
17
+ - Expresses interest in extending agent capabilities
18
+ - Wants to search for tools, templates, or workflows
19
+ - Mentions they wish they had help with a specific domain (design, testing, deployment, etc.)
20
+
21
+ ## OpenBot: Install to Correct Path
22
+
23
+ When you have the **install_skill** tool available, you are in OpenBot. Always use **install_skill** with the skill URL to install—do not run `npx skills add` in the terminal. The tool installs to the **current agent's workspace** (the same place as "手动安装" in that agent's config). For global installs, the user should use the app's global skills management and manual install there.
24
+
25
+ ## What is the Skills CLI?
26
+
27
+ The Skills CLI (`npx skills`) is the package manager for the open agent skills ecosystem. Skills are modular packages that extend agent capabilities with specialized knowledge, workflows, and tools.
28
+
29
+ **Key commands:**
30
+
31
+ - `npx skills find [query]` - Search for skills interactively or by keyword
32
+ - `npx skills add <package>` - Install a skill from GitHub or other sources
33
+ - `npx skills check` - Check for skill updates
34
+ - `npx skills update` - Update all installed skills
35
+
36
+ **Browse skills at:** https://skills.sh/
37
+
38
+ ## How to Help Users Find Skills
39
+
40
+ ### Step 1: Understand What They Need
41
+
42
+ When a user asks for help with something, identify:
43
+
44
+ 1. The domain (e.g., React, testing, design, deployment)
45
+ 2. The specific task (e.g., writing tests, creating animations, reviewing PRs)
46
+ 3. Whether this is a common enough task that a skill likely exists
47
+
48
+ ### Step 2: Search for Skills
49
+
50
+ Run the find command with a relevant query:
51
+
52
+ ```bash
53
+ npx skills find [query]
54
+ ```
55
+
56
+ For example:
57
+
58
+ - User asks "how do I make my React app faster?" → `npx skills find react performance`
59
+ - User asks "can you help me with PR reviews?" → `npx skills find pr review`
60
+ - User asks "I need to create a changelog" → `npx skills find changelog`
61
+
62
+ The command will return results like:
63
+
64
+ ```
65
+ Install with npx skills add <owner/repo@skill>
66
+
67
+ vercel-labs/agent-skills@vercel-react-best-practices
68
+ └ https://skills.sh/vercel-labs/agent-skills/vercel-react-best-practices
69
+ ```
70
+
71
+ ### Step 3: Present Options to the User
72
+
73
+ When you find relevant skills, present them to the user with:
74
+
75
+ 1. The skill name and what it does
76
+ 2. The install command they can run
77
+ 3. A link to learn more at skills.sh
78
+
79
+ Example response:
80
+
81
+ ```
82
+ I found a skill that might help! The "vercel-react-best-practices" skill provides
83
+ React and Next.js performance optimization guidelines from Vercel Engineering.
84
+
85
+ To install it (in OpenBot use the install_skill tool with the URL; elsewhere run in terminal):
86
+ npx skills add vercel-labs/agent-skills@vercel-react-best-practices
87
+
88
+ Learn more: https://skills.sh/vercel-labs/agent-skills/vercel-react-best-practices
89
+ ```
90
+
91
+ ### Step 4: Offer to Install
92
+
93
+ If the user wants to proceed, install the skill:
94
+
95
+ - **In OpenBot**: Use the **install_skill** tool with the skill URL (e.g. `owner/repo@skillName` or `owner/repo`). This installs to the **current agent's workspace** skills directory. Do **not** run `npx skills add` for installation in this app.
96
+ - **In other agents (Cursor, Codex, etc.)**: Run in the terminal:
97
+
98
+ ```bash
99
+ npx skills add <owner/repo@skill> -g -y
100
+ ```
101
+
102
+ The `-g` flag installs globally (user-level) and `-y` skips confirmation prompts.
103
+
104
+ ## Common Skill Categories
105
+
106
+ When searching, consider these common categories:
107
+
108
+ | Category | Example Queries |
109
+ | --------------- | ---------------------------------------- |
110
+ | Web Development | react, nextjs, typescript, css, tailwind |
111
+ | Testing | testing, jest, playwright, e2e |
112
+ | DevOps | deploy, docker, kubernetes, ci-cd |
113
+ | Documentation | docs, readme, changelog, api-docs |
114
+ | Code Quality | review, lint, refactor, best-practices |
115
+ | Design | ui, ux, design-system, accessibility |
116
+ | Productivity | workflow, automation, git |
117
+
118
+ ## Tips for Effective Searches
119
+
120
+ 1. **Use specific keywords**: "react testing" is better than just "testing"
121
+ 2. **Try alternative terms**: If "deploy" doesn't work, try "deployment" or "ci-cd"
122
+ 3. **Check popular sources**: Many skills come from `vercel-labs/agent-skills` or `ComposioHQ/awesome-claude-skills`
123
+
124
+ ## When No Skills Are Found
125
+
126
+ If no relevant skills exist:
127
+
128
+ 1. Acknowledge that no existing skill was found
129
+ 2. Offer to help with the task directly using your general capabilities
130
+ 3. Suggest the user could create their own skill with `npx skills init`
131
+
132
+ Example:
133
+
134
+ ```
135
+ I searched for skills related to "xyz" but didn't find any matches.
136
+ I can still help you with this task directly! Would you like me to proceed?
137
+
138
+ If this is something you do often, you could create your own skill:
139
+ npx skills init my-xyz-skill
140
+ ```
@@ -0,0 +1,36 @@
1
+ ---
2
+ name: url-bookmark
3
+ description: 根据用户指令将 URL 保存为收藏,并匹配系统中已维护的标签。当用户说「收藏这个链接」「把这条存到技术标签」「保存网址」等时使用。先调用 get_bookmark_tags 获取可用标签列表,再根据用户意图选择匹配的标签,最后用 save_bookmark 保存。
4
+ allowed-tools: get_bookmark_tags, save_bookmark
5
+ ---
6
+
7
+ # URL 收藏技能
8
+
9
+ ## 何时使用
10
+
11
+ 当用户希望**保存一个链接/URL 到收藏**时使用本技能,例如:
12
+
13
+ - 「收藏这个链接」「把这条链接存一下」
14
+ - 「把这个网址加到技术标签」「存到待读里」
15
+ - 「保存当前页面」「记一下这个地址」
16
+
17
+ ## 工作流程
18
+
19
+ 1. **获取可用标签**:先调用工具 `get_bookmark_tags`,获取系统中已维护的标签列表(用户在「设置 → 标签管理」中维护)。
20
+ 2. **理解用户意图**:从用户话里提取:
21
+ - 要收藏的 **URL**(用户可能直接给出,或说「当前页面」「刚发的那条」等,需结合上下文确定);
22
+ - 用户指定的**标签**(如「技术」「待读」),须与 `get_bookmark_tags` 返回的标签名**完全一致**;若用户未指定,可根据内容推断一个已有标签或留空。
23
+ 3. **保存收藏**:调用工具 `save_bookmark`,传入:
24
+ - `url`:必填,要收藏的链接;
25
+ - `title`:可选,可取自页面标题或用户描述;
26
+ - `tagNames`:可选,从可用标签中选出的名称数组(须与系统标签一致)。
27
+
28
+ ## 工具说明
29
+
30
+ - **get_bookmark_tags**:无参数。返回当前可用的标签名称列表,供后续匹配。
31
+ - **save_bookmark**:参数 `url`(必填)、`title`(可选)、`tagNames`(可选,字符串数组)。标签名必须来自 get_bookmark_tags,否则不会关联成功。
32
+
33
+ ## 注意
34
+
35
+ - 标签由用户在「设置 → 标签管理」中维护;若尚无标签,可只保存 URL,不传 `tagNames`。
36
+ - 用户说「存到某某分类」时,将「某某」与 get_bookmark_tags 返回的标签名做匹配(同义或相近即可选对应标签)。