opendevbrowser 0.0.11 → 0.0.15

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 (47) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +289 -28
  3. package/dist/chunk-JVBMT2O5.js +7173 -0
  4. package/dist/chunk-JVBMT2O5.js.map +1 -0
  5. package/dist/cli/index.js +3690 -275
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/index.js +1080 -2857
  8. package/dist/index.js.map +1 -1
  9. package/dist/opendevbrowser.js +1080 -2857
  10. package/dist/opendevbrowser.js.map +1 -1
  11. package/extension/dist/annotate-content.css +237 -0
  12. package/extension/dist/annotate-content.js +934 -0
  13. package/extension/dist/background.js +1291 -8
  14. package/extension/dist/logging.js +50 -0
  15. package/extension/dist/ops/dom-bridge.js +355 -0
  16. package/extension/dist/ops/ops-runtime.js +1249 -0
  17. package/extension/dist/ops/ops-session-store.js +189 -0
  18. package/extension/dist/ops/redaction.js +52 -0
  19. package/extension/dist/ops/snapshot-builder.js +4 -0
  20. package/extension/dist/ops/snapshot-shared.js +220 -0
  21. package/extension/dist/popup.js +398 -21
  22. package/extension/dist/relay-settings.js +3 -1
  23. package/extension/dist/services/CDPRouter.js +501 -103
  24. package/extension/dist/services/ConnectionManager.js +464 -57
  25. package/extension/dist/services/NativePortManager.js +182 -0
  26. package/extension/dist/services/RelayClient.js +227 -26
  27. package/extension/dist/services/TabManager.js +81 -0
  28. package/extension/dist/services/TargetSessionMap.js +146 -0
  29. package/extension/dist/services/cdp-router-commands.js +203 -0
  30. package/extension/dist/services/url-restrictions.js +41 -0
  31. package/extension/dist/types.js +3 -1
  32. package/extension/icons/icon128.png +0 -0
  33. package/extension/icons/icon16.png +0 -0
  34. package/extension/icons/icon32.png +0 -0
  35. package/extension/icons/icon48.png +0 -0
  36. package/extension/manifest.json +17 -3
  37. package/extension/popup.html +469 -65
  38. package/package.json +2 -2
  39. package/skills/AGENTS.md +34 -61
  40. package/skills/data-extraction/SKILL.md +95 -103
  41. package/skills/form-testing/SKILL.md +75 -82
  42. package/skills/login-automation/SKILL.md +76 -66
  43. package/skills/opendevbrowser-best-practices/SKILL.md +90 -49
  44. package/skills/opendevbrowser-continuity-ledger/SKILL.md +57 -23
  45. package/dist/chunk-R5VUZEUU.js +0 -128
  46. package/dist/chunk-R5VUZEUU.js.map +0 -1
  47. package/extension/dist/popup.jsx +0 -150
@@ -0,0 +1,237 @@
1
+ :root {
2
+ --odb-bg: rgba(15, 20, 30, 0.86);
3
+ --odb-panel: rgba(18, 26, 38, 0.92);
4
+ --odb-border: rgba(255, 255, 255, 0.12);
5
+ --odb-border-strong: rgba(255, 255, 255, 0.2);
6
+ --odb-text: #e8edf6;
7
+ --odb-muted: #98a7c2;
8
+ --odb-accent: #20d5c6;
9
+ --odb-accent-2: #6ee7ff;
10
+ --odb-danger: #f16b4e;
11
+ --odb-shadow: 0 18px 38px rgba(6, 10, 18, 0.45);
12
+ font-family: "Space Grotesk", "Sora", "Avenir Next", "Segoe UI", sans-serif;
13
+ }
14
+
15
+ #odb-annotate-root {
16
+ position: fixed;
17
+ inset: 0;
18
+ z-index: 2147483647;
19
+ pointer-events: none;
20
+ }
21
+
22
+ .odb-panel {
23
+ position: fixed;
24
+ top: 16px;
25
+ right: 16px;
26
+ width: 320px;
27
+ background: var(--odb-panel);
28
+ border: 1px solid var(--odb-border);
29
+ border-radius: 14px;
30
+ color: var(--odb-text);
31
+ box-shadow: var(--odb-shadow);
32
+ backdrop-filter: blur(16px) saturate(120%);
33
+ pointer-events: auto;
34
+ }
35
+
36
+ .odb-panel-header {
37
+ display: flex;
38
+ align-items: center;
39
+ justify-content: space-between;
40
+ padding: 12px 14px 8px;
41
+ border-bottom: 1px solid rgba(255, 255, 255, 0.06);
42
+ cursor: grab;
43
+ user-select: none;
44
+ }
45
+
46
+ .odb-title {
47
+ font-weight: 600;
48
+ letter-spacing: 0.02em;
49
+ font-size: 13px;
50
+ }
51
+
52
+ .odb-actions {
53
+ display: flex;
54
+ gap: 8px;
55
+ }
56
+
57
+ .odb-btn {
58
+ font-size: 11px;
59
+ border-radius: 10px;
60
+ padding: 6px 10px;
61
+ border: 1px solid var(--odb-border);
62
+ background: transparent;
63
+ color: var(--odb-text);
64
+ cursor: pointer;
65
+ }
66
+
67
+ .odb-btn-icon {
68
+ width: 24px;
69
+ height: 24px;
70
+ padding: 0;
71
+ line-height: 1;
72
+ font-weight: 600;
73
+ display: inline-flex;
74
+ align-items: center;
75
+ justify-content: center;
76
+ }
77
+
78
+ .odb-btn-primary {
79
+ background: linear-gradient(135deg, var(--odb-accent) 0%, var(--odb-accent-2) 100%);
80
+ color: #041114;
81
+ border: none;
82
+ }
83
+
84
+ .odb-btn-ghost {
85
+ color: var(--odb-muted);
86
+ }
87
+
88
+ .odb-panel-body {
89
+ padding: 12px 14px 14px;
90
+ display: grid;
91
+ gap: 10px;
92
+ }
93
+
94
+ .odb-row {
95
+ display: flex;
96
+ align-items: center;
97
+ justify-content: space-between;
98
+ color: var(--odb-muted);
99
+ font-size: 11px;
100
+ }
101
+
102
+ .odb-count {
103
+ color: var(--odb-text);
104
+ font-weight: 600;
105
+ }
106
+
107
+ .odb-label {
108
+ font-size: 11px;
109
+ color: var(--odb-muted);
110
+ }
111
+
112
+ .odb-textarea {
113
+ width: 100%;
114
+ box-sizing: border-box;
115
+ border-radius: 10px;
116
+ border: 1px solid var(--odb-border);
117
+ background: var(--odb-bg);
118
+ color: var(--odb-text);
119
+ padding: 10px 12px;
120
+ resize: vertical;
121
+ font-size: 11px;
122
+ }
123
+
124
+ .odb-switch {
125
+ position: relative;
126
+ width: 36px;
127
+ height: 18px;
128
+ display: inline-flex;
129
+ align-items: center;
130
+ }
131
+
132
+ .odb-switch input {
133
+ opacity: 0;
134
+ width: 0;
135
+ height: 0;
136
+ }
137
+
138
+ .odb-switch span {
139
+ position: absolute;
140
+ inset: 0;
141
+ border-radius: 999px;
142
+ background: rgba(255, 255, 255, 0.08);
143
+ border: 1px solid rgba(255, 255, 255, 0.2);
144
+ }
145
+
146
+ .odb-switch span::after {
147
+ content: "";
148
+ position: absolute;
149
+ width: 14px;
150
+ height: 14px;
151
+ top: 1px;
152
+ left: 2px;
153
+ border-radius: 999px;
154
+ background: #0d1524;
155
+ transition: transform 0.2s ease;
156
+ }
157
+
158
+ .odb-switch input:checked + span {
159
+ background: linear-gradient(135deg, rgba(32, 213, 198, 0.9), rgba(110, 231, 255, 0.9));
160
+ border-color: rgba(32, 213, 198, 0.8);
161
+ box-shadow: 0 0 0 2px rgba(32, 213, 198, 0.2);
162
+ }
163
+
164
+ .odb-switch input:checked + span::after {
165
+ transform: translateX(16px);
166
+ }
167
+
168
+ .odb-highlight {
169
+ position: fixed;
170
+ border: 2px solid var(--odb-accent);
171
+ border-radius: 6px;
172
+ box-shadow: 0 0 0 2px rgba(32, 213, 198, 0.2);
173
+ pointer-events: none;
174
+ opacity: 0;
175
+ }
176
+
177
+ .odb-tooltip {
178
+ position: fixed;
179
+ padding: 6px 10px;
180
+ border-radius: 999px;
181
+ background: var(--odb-bg);
182
+ color: var(--odb-text);
183
+ font-size: 11px;
184
+ border: 1px solid var(--odb-border-strong);
185
+ pointer-events: none;
186
+ opacity: 0;
187
+ max-width: 220px;
188
+ white-space: nowrap;
189
+ overflow: hidden;
190
+ text-overflow: ellipsis;
191
+ }
192
+
193
+ .odb-note {
194
+ position: fixed;
195
+ width: 220px;
196
+ background: var(--odb-panel);
197
+ border: 1px solid var(--odb-border);
198
+ border-radius: 12px;
199
+ color: var(--odb-text);
200
+ box-shadow: var(--odb-shadow);
201
+ pointer-events: auto;
202
+ }
203
+
204
+ .odb-note-header {
205
+ display: flex;
206
+ align-items: center;
207
+ justify-content: space-between;
208
+ padding: 8px 10px;
209
+ border-bottom: 1px solid rgba(255, 255, 255, 0.06);
210
+ font-size: 11px;
211
+ cursor: grab;
212
+ }
213
+
214
+ .odb-note-close {
215
+ background: transparent;
216
+ border: none;
217
+ color: var(--odb-muted);
218
+ cursor: pointer;
219
+ }
220
+
221
+ .odb-note-input {
222
+ width: 100%;
223
+ border: none;
224
+ background: transparent;
225
+ color: var(--odb-text);
226
+ box-sizing: border-box;
227
+ padding: 10px 12px;
228
+ resize: vertical;
229
+ font-size: 11px;
230
+ }
231
+
232
+ .odb-connectors {
233
+ position: fixed;
234
+ inset: 0;
235
+ color: var(--odb-accent);
236
+ pointer-events: none;
237
+ }