@vforsh/argus 0.1.5 → 0.1.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 (75) hide show
  1. package/README.md +0 -2
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/argus.js +159 -297
  4. package/dist/bin.js +2 -0
  5. package/dist/bin.js.map +1 -1
  6. package/dist/cli/plugins/registerPlugins.d.ts +3 -0
  7. package/dist/cli/plugins/registerPlugins.d.ts.map +1 -0
  8. package/dist/cli/plugins/registerPlugins.js +134 -0
  9. package/dist/cli/plugins/registerPlugins.js.map +1 -0
  10. package/dist/cli/program.d.ts.map +1 -1
  11. package/dist/cli/program.js +1 -2
  12. package/dist/cli/program.js.map +1 -1
  13. package/dist/cli/register/registerExtension.d.ts.map +1 -1
  14. package/dist/cli/register/registerExtension.js +0 -9
  15. package/dist/cli/register/registerExtension.js.map +1 -1
  16. package/dist/commands/configInit.d.ts.map +1 -1
  17. package/dist/commands/configInit.js +1 -0
  18. package/dist/commands/configInit.js.map +1 -1
  19. package/dist/commands/contexts.d.ts +7 -0
  20. package/dist/commands/contexts.d.ts.map +1 -0
  21. package/dist/commands/contexts.js +54 -0
  22. package/dist/commands/contexts.js.map +1 -0
  23. package/dist/commands/domDiff.d.ts +43 -0
  24. package/dist/commands/domDiff.d.ts.map +1 -0
  25. package/dist/commands/domDiff.js +279 -0
  26. package/dist/commands/domDiff.js.map +1 -0
  27. package/dist/commands/extension/attach.d.ts +8 -0
  28. package/dist/commands/extension/attach.d.ts.map +1 -0
  29. package/dist/commands/extension/attach.js +171 -0
  30. package/dist/commands/extension/attach.js.map +1 -0
  31. package/dist/commands/extension/detach.d.ts +6 -0
  32. package/dist/commands/extension/detach.d.ts.map +1 -0
  33. package/dist/commands/extension/detach.js +132 -0
  34. package/dist/commands/extension/detach.js.map +1 -0
  35. package/dist/commands/extension/targets.d.ts +13 -0
  36. package/dist/commands/extension/targets.d.ts.map +1 -0
  37. package/dist/commands/extension/targets.js +77 -0
  38. package/dist/commands/extension/targets.js.map +1 -0
  39. package/dist/commands/frames.d.ts +7 -0
  40. package/dist/commands/frames.d.ts.map +1 -0
  41. package/dist/commands/frames.js +90 -0
  42. package/dist/commands/frames.js.map +1 -0
  43. package/dist/config/argusConfig.d.ts +6 -0
  44. package/dist/config/argusConfig.d.ts.map +1 -1
  45. package/dist/config/argusConfig.js +16 -1
  46. package/dist/config/argusConfig.js.map +1 -1
  47. package/dist/frame/frameSelector.d.ts +14 -0
  48. package/dist/frame/frameSelector.d.ts.map +1 -0
  49. package/dist/frame/frameSelector.js +31 -0
  50. package/dist/frame/frameSelector.js.map +1 -0
  51. package/dist/output/domDiff.d.ts +14 -0
  52. package/dist/output/domDiff.d.ts.map +1 -0
  53. package/dist/output/domDiff.js +151 -0
  54. package/dist/output/domDiff.js.map +1 -0
  55. package/dist/plugin.d.ts +29 -0
  56. package/dist/plugin.d.ts.map +1 -0
  57. package/dist/plugin.js +2 -0
  58. package/dist/plugin.js.map +1 -0
  59. package/dist/throttle/networkPresets.d.ts +6 -0
  60. package/dist/throttle/networkPresets.d.ts.map +1 -0
  61. package/dist/throttle/networkPresets.js +24 -0
  62. package/dist/throttle/networkPresets.js.map +1 -0
  63. package/package.json +15 -5
  64. package/dist/commands/extension/doctor.d.ts +0 -5
  65. package/dist/commands/extension/doctor.d.ts.map +0 -1
  66. package/dist/commands/extension/doctor.js +0 -262
  67. package/dist/commands/extension/doctor.js.map +0 -1
  68. package/dist/commands/extension/id.d.ts +0 -9
  69. package/dist/commands/extension/id.d.ts.map +0 -1
  70. package/dist/commands/extension/id.js +0 -122
  71. package/dist/commands/extension/id.js.map +0 -1
  72. package/dist/commands/extension/list.d.ts +0 -8
  73. package/dist/commands/extension/list.d.ts.map +0 -1
  74. package/dist/commands/extension/list.js +0 -194
  75. package/dist/commands/extension/list.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domDiff.js","sourceRoot":"","sources":["../../src/commands/domDiff.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export type ExtensionAttachOptions = {
2
+ tabId?: string;
3
+ url?: string;
4
+ title?: string;
5
+ json?: boolean;
6
+ };
7
+ export declare const runExtensionAttach: (id: string | undefined, options: ExtensionAttachOptions) => Promise<void>;
8
+ //# sourceMappingURL=attach.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attach.d.ts","sourceRoot":"","sources":["../../../src/commands/extension/attach.ts"],"names":[],"mappings":"AAkBA,MAAM,MAAM,sBAAsB,GAAG;IACpC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,SAAS,sBAAsB,KAAG,OAAO,CAAC,IAAI,CAsH9G,CAAA"}
@@ -0,0 +1,171 @@
1
+ import { fetchJson } from '../../httpClient.js';
2
+ import { createOutput } from '../../output/io.js';
3
+ import { resolveWatcher } from '../../watchers/resolveWatcher.js';
4
+ import { writeWatcherCandidates } from '../../watchers/candidates.js';
5
+ export const runExtensionAttach = async (id, options) => {
6
+ const output = createOutput(options);
7
+ const resolved = await resolveWatcher({ id });
8
+ if (!resolved.ok) {
9
+ output.writeWarn(resolved.error);
10
+ if (resolved.candidates && resolved.candidates.length > 0) {
11
+ writeWatcherCandidates(resolved.candidates, output);
12
+ }
13
+ process.exitCode = resolved.exitCode;
14
+ return;
15
+ }
16
+ const { watcher } = resolved;
17
+ const baseUrl = `http://${watcher.host}:${watcher.port}`;
18
+ // If tabId is provided directly, use it
19
+ if (options.tabId) {
20
+ const tabIdNum = parseInt(options.tabId, 10);
21
+ if (isNaN(tabIdNum)) {
22
+ output.writeWarn(`Invalid tabId: ${options.tabId}`);
23
+ process.exitCode = 2;
24
+ return;
25
+ }
26
+ await attachToTab(baseUrl, tabIdNum, options.tabId, output, options.json);
27
+ return;
28
+ }
29
+ // Otherwise, we need to find a matching tab
30
+ if (!options.url && !options.title) {
31
+ output.writeWarn('Either --tab-id, --url, or --title is required.');
32
+ output.writeWarn('');
33
+ output.writeWarn('Examples:');
34
+ output.writeWarn(' argus ext attach app --tab-id 123456789');
35
+ output.writeWarn(' argus ext attach app --url localhost:3000');
36
+ output.writeWarn(' argus ext attach app --title "My App"');
37
+ process.exitCode = 2;
38
+ return;
39
+ }
40
+ // Fetch available targets
41
+ let targetsResponse;
42
+ try {
43
+ targetsResponse = await fetchJson(`${baseUrl}/targets`, { timeoutMs: 5_000, returnErrorResponse: true });
44
+ }
45
+ catch (error) {
46
+ output.writeWarn(`Failed to fetch targets: ${error instanceof Error ? error.message : error}`);
47
+ process.exitCode = 1;
48
+ return;
49
+ }
50
+ if (!targetsResponse.ok || !targetsResponse.targets) {
51
+ const message = targetsResponse.error?.message ?? 'Unknown error';
52
+ if (targetsResponse.error?.code === 'not_available' || targetsResponse.error?.code === 'not_found') {
53
+ output.writeWarn(`Watcher "${watcher.id}" is not in extension mode.`);
54
+ output.writeWarn('Start the watcher with --source extension to use this command.');
55
+ }
56
+ else {
57
+ output.writeWarn(`Failed to list targets: ${message}`);
58
+ }
59
+ process.exitCode = 1;
60
+ return;
61
+ }
62
+ const { targets } = targetsResponse;
63
+ // Filter to non-attached targets
64
+ const available = targets.filter((t) => !t.attached);
65
+ if (available.length === 0) {
66
+ output.writeWarn('No available tabs to attach.');
67
+ const attached = targets.filter((t) => t.attached);
68
+ if (attached.length > 0) {
69
+ output.writeWarn(`Already attached to ${attached.length} tab(s).`);
70
+ }
71
+ process.exitCode = 1;
72
+ return;
73
+ }
74
+ // Find matching tabs
75
+ const matches = available.filter((target) => {
76
+ if (options.url && !target.url.toLowerCase().includes(options.url.toLowerCase())) {
77
+ return false;
78
+ }
79
+ if (options.title && !target.title.toLowerCase().includes(options.title.toLowerCase())) {
80
+ return false;
81
+ }
82
+ return true;
83
+ });
84
+ if (matches.length === 0) {
85
+ output.writeWarn('No tabs match the specified criteria.');
86
+ output.writeWarn('');
87
+ output.writeWarn('Available tabs:');
88
+ for (const target of available.slice(0, 5)) {
89
+ output.writeWarn(` [${target.id}] ${truncate(target.title, 40)} - ${truncate(target.url, 50)}`);
90
+ }
91
+ if (available.length > 5) {
92
+ output.writeWarn(` ... and ${available.length - 5} more`);
93
+ }
94
+ process.exitCode = 1;
95
+ return;
96
+ }
97
+ if (matches.length > 1) {
98
+ output.writeWarn(`Multiple tabs match (${matches.length}). Be more specific or use --tab-id.`);
99
+ output.writeWarn('');
100
+ output.writeWarn('Matching tabs:');
101
+ for (const target of matches.slice(0, 5)) {
102
+ output.writeWarn(` [${target.id}] ${truncate(target.title, 40)} - ${truncate(target.url, 50)}`);
103
+ }
104
+ if (matches.length > 5) {
105
+ output.writeWarn(` ... and ${matches.length - 5} more`);
106
+ }
107
+ process.exitCode = 1;
108
+ return;
109
+ }
110
+ // Attach to the single match
111
+ const target = matches[0];
112
+ const tabIdNum = parseInt(target.id, 10);
113
+ await attachToTab(baseUrl, tabIdNum, target.id, output, options.json, target);
114
+ };
115
+ const attachToTab = async (baseUrl, tabId, tabIdStr, output, json, target) => {
116
+ let response;
117
+ try {
118
+ response = await fetchJson(`${baseUrl}/attach`, {
119
+ method: 'POST',
120
+ body: { tabId },
121
+ timeoutMs: 5_000,
122
+ returnErrorResponse: true,
123
+ });
124
+ }
125
+ catch (error) {
126
+ if (json) {
127
+ output.writeJson({ success: false, error: error instanceof Error ? error.message : String(error) });
128
+ }
129
+ else {
130
+ output.writeWarn(`Failed to attach: ${error instanceof Error ? error.message : error}`);
131
+ }
132
+ process.exitCode = 1;
133
+ return;
134
+ }
135
+ if (!response.ok) {
136
+ const message = response.error?.message ?? 'Unknown error';
137
+ if (json) {
138
+ output.writeJson({ success: false, error: message });
139
+ }
140
+ else {
141
+ output.writeWarn(`Failed to attach: ${message}`);
142
+ }
143
+ process.exitCode = 1;
144
+ return;
145
+ }
146
+ if (json) {
147
+ output.writeJson({
148
+ success: true,
149
+ tabId: tabIdStr,
150
+ title: target?.title ?? null,
151
+ url: target?.url ?? null,
152
+ });
153
+ }
154
+ else {
155
+ output.writeHuman('');
156
+ output.writeHuman(`Attach request sent for tab ${tabIdStr}`);
157
+ if (target) {
158
+ output.writeHuman(` Title: ${target.title}`);
159
+ output.writeHuman(` URL: ${target.url}`);
160
+ }
161
+ output.writeHuman('');
162
+ output.writeHuman('The extension will attach shortly. Chrome will show a debugging indicator.');
163
+ output.writeHuman('');
164
+ }
165
+ };
166
+ const truncate = (str, maxLen) => {
167
+ if (str.length <= maxLen)
168
+ return str;
169
+ return str.slice(0, maxLen - 3) + '...';
170
+ };
171
+ //# sourceMappingURL=attach.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attach.js","sourceRoot":"","sources":["../../../src/commands/extension/attach.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export type ExtensionDetachOptions = {
2
+ tabId?: string;
3
+ json?: boolean;
4
+ };
5
+ export declare const runExtensionDetach: (id: string | undefined, options: ExtensionDetachOptions) => Promise<void>;
6
+ //# sourceMappingURL=detach.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detach.d.ts","sourceRoot":"","sources":["../../../src/commands/extension/detach.ts"],"names":[],"mappings":"AAkBA,MAAM,MAAM,sBAAsB,GAAG;IACpC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,SAAS,sBAAsB,KAAG,OAAO,CAAC,IAAI,CA6E9G,CAAA"}
@@ -0,0 +1,132 @@
1
+ import { fetchJson } from '../../httpClient.js';
2
+ import { createOutput } from '../../output/io.js';
3
+ import { resolveWatcher } from '../../watchers/resolveWatcher.js';
4
+ import { writeWatcherCandidates } from '../../watchers/candidates.js';
5
+ export const runExtensionDetach = async (id, options) => {
6
+ const output = createOutput(options);
7
+ const resolved = await resolveWatcher({ id });
8
+ if (!resolved.ok) {
9
+ output.writeWarn(resolved.error);
10
+ if (resolved.candidates && resolved.candidates.length > 0) {
11
+ writeWatcherCandidates(resolved.candidates, output);
12
+ }
13
+ process.exitCode = resolved.exitCode;
14
+ return;
15
+ }
16
+ const { watcher } = resolved;
17
+ const baseUrl = `http://${watcher.host}:${watcher.port}`;
18
+ // If tabId is provided directly, use it
19
+ if (options.tabId) {
20
+ const tabIdNum = parseInt(options.tabId, 10);
21
+ if (isNaN(tabIdNum)) {
22
+ output.writeWarn(`Invalid tabId: ${options.tabId}`);
23
+ process.exitCode = 2;
24
+ return;
25
+ }
26
+ await detachFromTab(baseUrl, tabIdNum, options.tabId, output, options.json);
27
+ return;
28
+ }
29
+ // Otherwise, find attached tabs and detach from the first one (or all)
30
+ let targetsResponse;
31
+ try {
32
+ targetsResponse = await fetchJson(`${baseUrl}/targets`, { timeoutMs: 5_000, returnErrorResponse: true });
33
+ }
34
+ catch (error) {
35
+ output.writeWarn(`Failed to fetch targets: ${error instanceof Error ? error.message : error}`);
36
+ process.exitCode = 1;
37
+ return;
38
+ }
39
+ if (!targetsResponse.ok || !targetsResponse.targets) {
40
+ const message = targetsResponse.error?.message ?? 'Unknown error';
41
+ if (targetsResponse.error?.code === 'not_available' || targetsResponse.error?.code === 'not_found') {
42
+ output.writeWarn(`Watcher "${watcher.id}" is not in extension mode.`);
43
+ output.writeWarn('Start the watcher with --source extension to use this command.');
44
+ }
45
+ else {
46
+ output.writeWarn(`Failed to list targets: ${message}`);
47
+ }
48
+ process.exitCode = 1;
49
+ return;
50
+ }
51
+ const { targets } = targetsResponse;
52
+ const attached = targets.filter((t) => t.attached);
53
+ if (attached.length === 0) {
54
+ if (options.json) {
55
+ output.writeJson({ success: false, error: 'No tabs currently attached' });
56
+ }
57
+ else {
58
+ output.writeWarn('No tabs currently attached.');
59
+ }
60
+ process.exitCode = 1;
61
+ return;
62
+ }
63
+ if (attached.length > 1) {
64
+ output.writeWarn(`Multiple tabs attached (${attached.length}). Use --tab-id to specify which one.`);
65
+ output.writeWarn('');
66
+ output.writeWarn('Attached tabs:');
67
+ for (const target of attached) {
68
+ output.writeWarn(` [${target.id}] ${truncate(target.title, 40)} - ${truncate(target.url, 50)}`);
69
+ }
70
+ process.exitCode = 1;
71
+ return;
72
+ }
73
+ // Detach from the single attached tab
74
+ const target = attached[0];
75
+ const tabIdNum = parseInt(target.id, 10);
76
+ await detachFromTab(baseUrl, tabIdNum, target.id, output, options.json, target);
77
+ };
78
+ const detachFromTab = async (baseUrl, tabId, tabIdStr, output, json, target) => {
79
+ let response;
80
+ try {
81
+ response = await fetchJson(`${baseUrl}/detach`, {
82
+ method: 'POST',
83
+ body: { tabId },
84
+ timeoutMs: 5_000,
85
+ returnErrorResponse: true,
86
+ });
87
+ }
88
+ catch (error) {
89
+ if (json) {
90
+ output.writeJson({ success: false, error: error instanceof Error ? error.message : String(error) });
91
+ }
92
+ else {
93
+ output.writeWarn(`Failed to detach: ${error instanceof Error ? error.message : error}`);
94
+ }
95
+ process.exitCode = 1;
96
+ return;
97
+ }
98
+ if (!response.ok) {
99
+ const message = response.error?.message ?? 'Unknown error';
100
+ if (json) {
101
+ output.writeJson({ success: false, error: message });
102
+ }
103
+ else {
104
+ output.writeWarn(`Failed to detach: ${message}`);
105
+ }
106
+ process.exitCode = 1;
107
+ return;
108
+ }
109
+ if (json) {
110
+ output.writeJson({
111
+ success: true,
112
+ tabId: tabIdStr,
113
+ title: target?.title ?? null,
114
+ url: target?.url ?? null,
115
+ });
116
+ }
117
+ else {
118
+ output.writeHuman('');
119
+ output.writeHuman(`Detach request sent for tab ${tabIdStr}`);
120
+ if (target) {
121
+ output.writeHuman(` Title: ${target.title}`);
122
+ output.writeHuman(` URL: ${target.url}`);
123
+ }
124
+ output.writeHuman('');
125
+ }
126
+ };
127
+ const truncate = (str, maxLen) => {
128
+ if (str.length <= maxLen)
129
+ return str;
130
+ return str.slice(0, maxLen - 3) + '...';
131
+ };
132
+ //# sourceMappingURL=detach.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detach.js","sourceRoot":"","sources":["../../../src/commands/extension/detach.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export type ExtensionTarget = {
2
+ id: string;
3
+ title: string;
4
+ url: string;
5
+ type?: string;
6
+ faviconUrl?: string;
7
+ attached?: boolean;
8
+ };
9
+ export type ExtensionTargetsOptions = {
10
+ json?: boolean;
11
+ };
12
+ export declare const runExtensionTargets: (id: string | undefined, options: ExtensionTargetsOptions) => Promise<void>;
13
+ //# sourceMappingURL=targets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../../../src/commands/extension/targets.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,eAAe,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAQD,MAAM,MAAM,uBAAuB,GAAG;IACrC,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,SAAS,uBAAuB,KAAG,OAAO,CAAC,IAAI,CA0EhH,CAAA"}
@@ -0,0 +1,77 @@
1
+ import { fetchJson } from '../../httpClient.js';
2
+ import { createOutput } from '../../output/io.js';
3
+ import { resolveWatcher } from '../../watchers/resolveWatcher.js';
4
+ import { writeWatcherCandidates } from '../../watchers/candidates.js';
5
+ export const runExtensionTargets = async (id, options) => {
6
+ const output = createOutput(options);
7
+ const resolved = await resolveWatcher({ id });
8
+ if (!resolved.ok) {
9
+ output.writeWarn(resolved.error);
10
+ if (resolved.candidates && resolved.candidates.length > 0) {
11
+ writeWatcherCandidates(resolved.candidates, output);
12
+ }
13
+ process.exitCode = resolved.exitCode;
14
+ return;
15
+ }
16
+ const { watcher } = resolved;
17
+ const url = `http://${watcher.host}:${watcher.port}/targets`;
18
+ let response;
19
+ try {
20
+ response = await fetchJson(url, { timeoutMs: 5_000, returnErrorResponse: true });
21
+ }
22
+ catch (error) {
23
+ output.writeWarn(`Failed to fetch targets: ${error instanceof Error ? error.message : error}`);
24
+ process.exitCode = 1;
25
+ return;
26
+ }
27
+ if (!response.ok || !response.targets) {
28
+ const message = response.error?.message ?? 'Unknown error';
29
+ if (response.error?.code === 'not_available' || response.error?.code === 'not_found') {
30
+ output.writeWarn(`Watcher "${watcher.id}" is not in extension mode.`);
31
+ output.writeWarn('Start the watcher with --source extension to use this command.');
32
+ }
33
+ else {
34
+ output.writeWarn(`Failed to list targets: ${message}`);
35
+ }
36
+ process.exitCode = 1;
37
+ return;
38
+ }
39
+ const { targets } = response;
40
+ if (options.json) {
41
+ output.writeJson({ targets });
42
+ return;
43
+ }
44
+ if (targets.length === 0) {
45
+ output.writeHuman('No tabs available.');
46
+ output.writeHuman('');
47
+ output.writeHuman('Make sure Chrome has tabs open and the extension is connected.');
48
+ return;
49
+ }
50
+ const attached = targets.filter((t) => t.attached);
51
+ const available = targets.filter((t) => !t.attached);
52
+ output.writeHuman('');
53
+ if (attached.length > 0) {
54
+ output.writeHuman('ATTACHED:');
55
+ for (const target of attached) {
56
+ output.writeHuman(` [${target.id}] ${truncate(target.title, 50)}`);
57
+ output.writeHuman(` ${truncate(target.url, 60)}`);
58
+ }
59
+ output.writeHuman('');
60
+ }
61
+ if (available.length > 0) {
62
+ output.writeHuman('AVAILABLE:');
63
+ for (const target of available) {
64
+ output.writeHuman(` [${target.id}] ${truncate(target.title, 50)}`);
65
+ output.writeHuman(` ${truncate(target.url, 60)}`);
66
+ }
67
+ output.writeHuman('');
68
+ }
69
+ output.writeHuman(`${attached.length} attached, ${available.length} available`);
70
+ output.writeHuman('');
71
+ };
72
+ const truncate = (str, maxLen) => {
73
+ if (str.length <= maxLen)
74
+ return str;
75
+ return str.slice(0, maxLen - 3) + '...';
76
+ };
77
+ //# sourceMappingURL=targets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"targets.js","sourceRoot":"","sources":["../../../src/commands/extension/targets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /** Options for the frame list command. */
2
+ export type FrameListOptions = {
3
+ json?: boolean;
4
+ };
5
+ /** Execute the frame list command for a watcher id. */
6
+ export declare const runFramesList: (id: string | undefined, options: FrameListOptions) => Promise<void>;
7
+ //# sourceMappingURL=frames.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frames.d.ts","sourceRoot":"","sources":["../../src/commands/frames.ts"],"names":[],"mappings":"AAMA,0CAA0C;AAC1C,MAAM,MAAM,gBAAgB,GAAG;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,uDAAuD;AACvD,eAAO,MAAM,aAAa,GAAU,IAAI,MAAM,GAAG,SAAS,EAAE,SAAS,gBAAgB,KAAG,OAAO,CAAC,IAAI,CA2DnG,CAAA"}
@@ -0,0 +1,90 @@
1
+ import { fetchJson } from '../httpClient.js';
2
+ import { createOutput } from '../output/io.js';
3
+ import { writeWatcherCandidates } from '../watchers/candidates.js';
4
+ import { resolveWatcher } from '../watchers/resolveWatcher.js';
5
+ /** Execute the frame list command for a watcher id. */
6
+ export const runFramesList = async (id, options) => {
7
+ const output = createOutput(options);
8
+ const resolved = await resolveWatcher({ id });
9
+ if (!resolved.ok) {
10
+ output.writeWarn(resolved.error);
11
+ if (resolved.candidates && resolved.candidates.length > 0) {
12
+ writeWatcherCandidates(resolved.candidates, output);
13
+ output.writeWarn('Hint: run `argus list` to see all watchers.');
14
+ }
15
+ process.exitCode = resolved.exitCode;
16
+ return;
17
+ }
18
+ const { watcher } = resolved;
19
+ const url = `http://${watcher.host}:${watcher.port}/frames`;
20
+ let response;
21
+ try {
22
+ response = await fetchJson(url, {
23
+ method: 'GET',
24
+ timeoutMs: 30_000,
25
+ returnErrorResponse: true,
26
+ });
27
+ }
28
+ catch (error) {
29
+ output.writeWarn(`${watcher.id}: failed to reach watcher (${formatError(error)})`);
30
+ process.exitCode = 1;
31
+ return;
32
+ }
33
+ if (!response.ok) {
34
+ const errorResp = response;
35
+ if (options.json) {
36
+ output.writeJson(response);
37
+ }
38
+ else {
39
+ output.writeWarn(`Error: ${errorResp.error.message}`);
40
+ }
41
+ process.exitCode = 1;
42
+ return;
43
+ }
44
+ const successResp = response;
45
+ if (options.json) {
46
+ output.writeJson(successResp);
47
+ return;
48
+ }
49
+ if (successResp.frames.length === 0) {
50
+ output.writeHuman('No frames found');
51
+ return;
52
+ }
53
+ // Pretty print frames
54
+ output.writeHuman(`Found ${successResp.frames.length} frame(s):\n`);
55
+ for (let i = 0; i < successResp.frames.length; i++) {
56
+ const frame = successResp.frames[i];
57
+ output.writeHuman(formatFrame(i, frame));
58
+ }
59
+ };
60
+ const formatFrame = (index, frame) => {
61
+ const lines = [];
62
+ const indent = ' ';
63
+ const main = frame.isMainFrame ? ' (main)' : '';
64
+ lines.push(`[${index}] ${frame.frameId}${main}`);
65
+ lines.push(`${indent}url: ${frame.url || '(empty)'}`);
66
+ if (frame.name) {
67
+ lines.push(`${indent}name: ${frame.name}`);
68
+ }
69
+ if (frame.securityOrigin) {
70
+ lines.push(`${indent}origin: ${frame.securityOrigin}`);
71
+ }
72
+ if (frame.contextId != null) {
73
+ lines.push(`${indent}contextId: ${frame.contextId}`);
74
+ }
75
+ if (frame.parentId) {
76
+ lines.push(`${indent}parent: ${frame.parentId}`);
77
+ }
78
+ lines.push('');
79
+ return lines.join('\n');
80
+ };
81
+ const formatError = (error) => {
82
+ if (!error) {
83
+ return 'unknown error';
84
+ }
85
+ if (error instanceof Error) {
86
+ return error.message;
87
+ }
88
+ return String(error);
89
+ };
90
+ //# sourceMappingURL=frames.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frames.js","sourceRoot":"","sources":["../../src/commands/frames.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,12 @@ export type ArgusConfig = {
27
27
  watcher?: {
28
28
  start?: WatcherStartConfig;
29
29
  };
30
+ /**
31
+ * Optional CLI plugins to load at startup.
32
+ * Each entry is a Node/Bun module specifier (e.g. "@vforsh/argus-plugin-yagames")
33
+ * or a path resolvable from the config directory / cwd (e.g. "./plugins/yagames.js").
34
+ */
35
+ plugins?: string[];
30
36
  };
31
37
  export type ArgusConfigLoadResult = {
32
38
  config: ArgusConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"argusConfig.d.ts","sourceRoot":"","sources":["../../src/config/argusConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"argusConfig.d.ts","sourceRoot":"","sources":["../../src/config/argusConfig.ts"],"names":[],"mappings":"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"}
@@ -197,6 +197,21 @@ const validateArgusConfig = (value) => {
197
197
  if (!isRecord(value)) {
198
198
  return { ok: false, error: 'Config root must be an object.' };
199
199
  }
200
+ let plugins;
201
+ if (value.plugins !== undefined) {
202
+ if (!Array.isArray(value.plugins)) {
203
+ return { ok: false, error: '"plugins" must be an array of strings.' };
204
+ }
205
+ for (const [index, item] of value.plugins.entries()) {
206
+ if (typeof item !== 'string') {
207
+ return { ok: false, error: `"plugins[${index}]" must be a string.` };
208
+ }
209
+ if (item.trim() === '') {
210
+ return { ok: false, error: `"plugins[${index}]" must be a non-empty string.` };
211
+ }
212
+ }
213
+ plugins = value.plugins;
214
+ }
200
215
  let chromeConfig;
201
216
  if (value.chrome !== undefined) {
202
217
  if (!isRecord(value.chrome)) {
@@ -229,7 +244,7 @@ const validateArgusConfig = (value) => {
229
244
  watcherConfig = {};
230
245
  }
231
246
  }
232
- return { ok: true, value: { chrome: chromeConfig, watcher: watcherConfig } };
247
+ return { ok: true, value: { chrome: chromeConfig, watcher: watcherConfig, plugins } };
233
248
  };
234
249
  export const resolveArgusConfigPath = ({ cliPath, cwd }) => {
235
250
  if (cliPath) {