thepopebot 1.2.74 → 1.2.75-beta.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.
Files changed (63) hide show
  1. package/README.md +11 -0
  2. package/api/CLAUDE.md +2 -0
  3. package/api/index.js +95 -3
  4. package/bin/cli.js +1 -1
  5. package/bin/managed-paths.js +1 -1
  6. package/bin/sync.js +7 -2
  7. package/config/instrumentation.js +4 -0
  8. package/lib/chat/actions.js +4 -4
  9. package/lib/chat/components/chat-input.js +2 -2
  10. package/lib/chat/components/chat-input.jsx +2 -2
  11. package/lib/chat/components/settings-chat-page.js +41 -37
  12. package/lib/chat/components/settings-chat-page.jsx +39 -37
  13. package/lib/chat/components/settings-jobs-page.js +68 -10
  14. package/lib/chat/components/settings-jobs-page.jsx +99 -34
  15. package/lib/code/code-page.js +2 -1
  16. package/lib/code/code-page.jsx +2 -1
  17. package/lib/code/terminal-view.js +6 -3
  18. package/lib/code/terminal-view.jsx +6 -3
  19. package/lib/db/api-keys.js +35 -2
  20. package/lib/db/config.js +40 -4
  21. package/lib/maintenance.js +35 -0
  22. package/lib/oauth/helper.js +34 -0
  23. package/lib/tools/create-agent-job.js +3 -0
  24. package/lib/tools/docker.js +12 -5
  25. package/package.json +3 -2
  26. package/templates/docker-compose.custom.yml +1 -0
  27. package/templates/docker-compose.litellm.yml +1 -0
  28. package/templates/docker-compose.yml +2 -0
  29. package/templates/skills/agent-job-secrets/SKILL.md +25 -0
  30. package/templates/skills/agent-job-secrets/agent-job-secrets.js +66 -0
  31. package/templates/skills/playwright-cli/SKILL.md +294 -0
  32. package/templates/skills/brave-search/SKILL.md +0 -79
  33. package/templates/skills/brave-search/content.js +0 -86
  34. package/templates/skills/brave-search/package-lock.json +0 -621
  35. package/templates/skills/brave-search/package.json +0 -14
  36. package/templates/skills/brave-search/search.js +0 -199
  37. package/templates/skills/browser-tools/SKILL.md +0 -196
  38. package/templates/skills/browser-tools/browser-content.js +0 -103
  39. package/templates/skills/browser-tools/browser-cookies.js +0 -35
  40. package/templates/skills/browser-tools/browser-eval.js +0 -53
  41. package/templates/skills/browser-tools/browser-hn-scraper.js +0 -108
  42. package/templates/skills/browser-tools/browser-nav.js +0 -44
  43. package/templates/skills/browser-tools/browser-pick.js +0 -162
  44. package/templates/skills/browser-tools/browser-screenshot.js +0 -34
  45. package/templates/skills/browser-tools/browser-start.js +0 -87
  46. package/templates/skills/browser-tools/package-lock.json +0 -2556
  47. package/templates/skills/browser-tools/package.json +0 -19
  48. package/templates/skills/get-secret/SKILL.md +0 -34
  49. package/templates/skills/get-secret/get-secret.js +0 -33
  50. package/templates/skills/google-docs/SKILL.md +0 -23
  51. package/templates/skills/google-docs/create.sh +0 -69
  52. package/templates/skills/google-drive/SKILL.md +0 -47
  53. package/templates/skills/google-drive/delete.sh +0 -47
  54. package/templates/skills/google-drive/download.sh +0 -50
  55. package/templates/skills/google-drive/list.sh +0 -41
  56. package/templates/skills/google-drive/upload.sh +0 -76
  57. package/templates/skills/kie-ai/SKILL.md +0 -38
  58. package/templates/skills/kie-ai/generate-image.sh +0 -77
  59. package/templates/skills/kie-ai/generate-video.sh +0 -69
  60. package/templates/skills/youtube-transcript/SKILL.md +0 -41
  61. package/templates/skills/youtube-transcript/package-lock.json +0 -24
  62. package/templates/skills/youtube-transcript/package.json +0 -8
  63. package/templates/skills/youtube-transcript/transcript.js +0 -84
@@ -1,24 +0,0 @@
1
- {
2
- "name": "youtube-transcript-skill",
3
- "version": "1.0.0",
4
- "lockfileVersion": 3,
5
- "requires": true,
6
- "packages": {
7
- "": {
8
- "name": "youtube-transcript-skill",
9
- "version": "1.0.0",
10
- "dependencies": {
11
- "youtube-transcript-plus": "^1.2.0"
12
- }
13
- },
14
- "node_modules/youtube-transcript-plus": {
15
- "version": "1.2.0",
16
- "resolved": "https://registry.npmjs.org/youtube-transcript-plus/-/youtube-transcript-plus-1.2.0.tgz",
17
- "integrity": "sha512-SRjVft8V+vUulMKgakgfzC+pnFLSy4tolX7xGnSvp9juUNocikMFmUx5GlhzLDILzxYrijcYtmNqz0qyklnPmA==",
18
- "license": "MIT",
19
- "engines": {
20
- "node": ">=18.0.0"
21
- }
22
- }
23
- }
24
- }
@@ -1,8 +0,0 @@
1
- {
2
- "name": "youtube-transcript-skill",
3
- "version": "1.0.0",
4
- "type": "module",
5
- "dependencies": {
6
- "youtube-transcript-plus": "^1.2.0"
7
- }
8
- }
@@ -1,84 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- import { YoutubeTranscript } from 'youtube-transcript-plus';
4
-
5
- function extractVideoId(input) {
6
- if (!input) return null;
7
-
8
- // Already a plain video ID (11 characters, alphanumeric + dash/underscore)
9
- if (/^[A-Za-z0-9_-]{11}$/.test(input)) {
10
- return input;
11
- }
12
-
13
- try {
14
- const url = new URL(input);
15
-
16
- // youtu.be/VIDEO_ID
17
- if (url.hostname === 'youtu.be') {
18
- return url.pathname.slice(1);
19
- }
20
-
21
- // youtube.com/watch?v=VIDEO_ID
22
- if (url.hostname === 'www.youtube.com' || url.hostname === 'youtube.com') {
23
- return url.searchParams.get('v');
24
- }
25
- } catch {
26
- // Not a URL — treat as video ID anyway
27
- return input;
28
- }
29
-
30
- return null;
31
- }
32
-
33
- function decodeHtmlEntities(str) {
34
- return str
35
- .replace(/'/g, "'")
36
- .replace(/&/g, '&')
37
- .replace(/&lt;/g, '<')
38
- .replace(/&gt;/g, '>')
39
- .replace(/&quot;/g, '"')
40
- .replace(/&#(\d+);/g, (_, num) => String.fromCharCode(Number(num)));
41
- }
42
-
43
- function formatTime(seconds) {
44
- const totalSeconds = Math.floor(seconds);
45
- const mins = Math.floor(totalSeconds / 60);
46
- const secs = totalSeconds % 60;
47
- return `${mins}:${secs.toString().padStart(2, '0')}`;
48
- }
49
-
50
- async function main() {
51
- const input = process.argv[2];
52
-
53
- if (!input) {
54
- console.error('Usage: transcript.js <video-id-or-url>');
55
- process.exit(1);
56
- }
57
-
58
- const videoId = extractVideoId(input);
59
-
60
- if (!videoId) {
61
- console.error(`Error: Could not extract video ID from "${input}"`);
62
- process.exit(1);
63
- }
64
-
65
- try {
66
- const transcript = await YoutubeTranscript.fetchTranscript(videoId);
67
-
68
- if (!transcript || transcript.length === 0) {
69
- console.error('No transcript available for this video.');
70
- process.exit(1);
71
- }
72
-
73
- for (const entry of transcript) {
74
- const time = formatTime(entry.offset);
75
- const text = decodeHtmlEntities(entry.text.replace(/\n/g, ' ')).trim();
76
- console.log(`[${time}] ${text}`);
77
- }
78
- } catch (err) {
79
- console.error(`Error fetching transcript: ${err.message}`);
80
- process.exit(1);
81
- }
82
- }
83
-
84
- main();