@ank1015/llm-extension 0.0.1

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 (85) hide show
  1. package/README.md +214 -0
  2. package/dist/chrome/background.js +244 -0
  3. package/dist/chrome/manifest.json +23 -0
  4. package/dist/index.d.ts +8 -0
  5. package/dist/index.d.ts.map +1 -0
  6. package/dist/index.js +8 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/native/host-wrapper.sh +11 -0
  9. package/dist/native/host.d.ts +2 -0
  10. package/dist/native/host.d.ts.map +1 -0
  11. package/dist/native/host.js +21 -0
  12. package/dist/native/host.js.map +1 -0
  13. package/dist/native/server.d.ts +28 -0
  14. package/dist/native/server.d.ts.map +1 -0
  15. package/dist/native/server.js +112 -0
  16. package/dist/native/server.js.map +1 -0
  17. package/dist/native/stdio.d.ts +21 -0
  18. package/dist/native/stdio.d.ts.map +1 -0
  19. package/dist/native/stdio.js +94 -0
  20. package/dist/native/stdio.js.map +1 -0
  21. package/dist/protocol/constants.d.ts +26 -0
  22. package/dist/protocol/constants.d.ts.map +1 -0
  23. package/dist/protocol/constants.js +26 -0
  24. package/dist/protocol/constants.js.map +1 -0
  25. package/dist/protocol/types.d.ts +39 -0
  26. package/dist/protocol/types.d.ts.map +1 -0
  27. package/dist/protocol/types.js +3 -0
  28. package/dist/protocol/types.js.map +1 -0
  29. package/dist/sdk/action/diff.d.ts +7 -0
  30. package/dist/sdk/action/diff.d.ts.map +1 -0
  31. package/dist/sdk/action/diff.js +54 -0
  32. package/dist/sdk/action/diff.js.map +1 -0
  33. package/dist/sdk/action/helpers.d.ts +23 -0
  34. package/dist/sdk/action/helpers.d.ts.map +1 -0
  35. package/dist/sdk/action/helpers.js +93 -0
  36. package/dist/sdk/action/helpers.js.map +1 -0
  37. package/dist/sdk/action/index.d.ts +6 -0
  38. package/dist/sdk/action/index.d.ts.map +1 -0
  39. package/dist/sdk/action/index.js +4 -0
  40. package/dist/sdk/action/index.js.map +1 -0
  41. package/dist/sdk/action/script.d.ts +4 -0
  42. package/dist/sdk/action/script.d.ts.map +1 -0
  43. package/dist/sdk/action/script.js +359 -0
  44. package/dist/sdk/action/script.js.map +1 -0
  45. package/dist/sdk/action/types.d.ts +47 -0
  46. package/dist/sdk/action/types.d.ts.map +1 -0
  47. package/dist/sdk/action/types.js +2 -0
  48. package/dist/sdk/action/types.js.map +1 -0
  49. package/dist/sdk/client.d.ts +42 -0
  50. package/dist/sdk/client.d.ts.map +1 -0
  51. package/dist/sdk/client.js +118 -0
  52. package/dist/sdk/client.js.map +1 -0
  53. package/dist/sdk/connect.d.ts +29 -0
  54. package/dist/sdk/connect.d.ts.map +1 -0
  55. package/dist/sdk/connect.js +99 -0
  56. package/dist/sdk/connect.js.map +1 -0
  57. package/dist/sdk/index.d.ts +17 -0
  58. package/dist/sdk/index.d.ts.map +1 -0
  59. package/dist/sdk/index.js +19 -0
  60. package/dist/sdk/index.js.map +1 -0
  61. package/dist/sdk/observe/helpers.d.ts +16 -0
  62. package/dist/sdk/observe/helpers.d.ts.map +1 -0
  63. package/dist/sdk/observe/helpers.js +278 -0
  64. package/dist/sdk/observe/helpers.js.map +1 -0
  65. package/dist/sdk/observe/index.d.ts +6 -0
  66. package/dist/sdk/observe/index.d.ts.map +1 -0
  67. package/dist/sdk/observe/index.js +4 -0
  68. package/dist/sdk/observe/index.js.map +1 -0
  69. package/dist/sdk/observe/script.d.ts +7 -0
  70. package/dist/sdk/observe/script.d.ts.map +1 -0
  71. package/dist/sdk/observe/script.js +680 -0
  72. package/dist/sdk/observe/script.js.map +1 -0
  73. package/dist/sdk/observe/storage.d.ts +39 -0
  74. package/dist/sdk/observe/storage.d.ts.map +1 -0
  75. package/dist/sdk/observe/storage.js +83 -0
  76. package/dist/sdk/observe/storage.js.map +1 -0
  77. package/dist/sdk/observe/types.d.ts +140 -0
  78. package/dist/sdk/observe/types.d.ts.map +1 -0
  79. package/dist/sdk/observe/types.js +2 -0
  80. package/dist/sdk/observe/types.js.map +1 -0
  81. package/dist/sdk/window.d.ts +97 -0
  82. package/dist/sdk/window.d.ts.map +1 -0
  83. package/dist/sdk/window.js +795 -0
  84. package/dist/sdk/window.js.map +1 -0
  85. package/package.json +55 -0
@@ -0,0 +1,39 @@
1
+ import type { NormalizedObserveOptions, ObserveSnapshot } from './types.js';
2
+ interface PersistObserveSnapshotInput {
3
+ windowId: number;
4
+ tabId: number;
5
+ snapshot: ObserveSnapshot;
6
+ options: NormalizedObserveOptions;
7
+ }
8
+ export interface PersistObserveSnapshotResult {
9
+ snapshotId: string;
10
+ snapshotPath: string;
11
+ latestPath: string;
12
+ }
13
+ export interface ObserveSnapshotPointer {
14
+ version: number;
15
+ snapshotId: string;
16
+ createdAt: string;
17
+ windowId: number;
18
+ tabId: number;
19
+ snapshotPath: string;
20
+ }
21
+ export interface ObserveSnapshotRecord {
22
+ version: number;
23
+ snapshotId: string;
24
+ createdAt: string;
25
+ windowId: number;
26
+ tabId: number;
27
+ options: NormalizedObserveOptions;
28
+ snapshot: ObserveSnapshot;
29
+ }
30
+ export declare function getObserveTabDir(windowId: number, tabId: number): string;
31
+ export declare function getObserveLatestPath(windowId: number, tabId: number): string;
32
+ export declare function persistObserveSnapshot(input: PersistObserveSnapshotInput): Promise<PersistObserveSnapshotResult>;
33
+ /**
34
+ * Reads the latest observe snapshot record for a window+tab.
35
+ * Returns null when no snapshot exists yet.
36
+ */
37
+ export declare function readLatestObserveSnapshot(windowId: number, tabId: number): Promise<ObserveSnapshotRecord | null>;
38
+ export {};
39
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/sdk/observe/storage.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE5E,UAAU,2BAA2B;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,wBAAwB,CAAC;CACnC;AAED,MAAM,WAAW,4BAA4B;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,wBAAwB,CAAC;IAClC,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,2BAA2B,GACjC,OAAO,CAAC,4BAA4B,CAAC,CAkCvC;AA4BD;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAkBvC"}
@@ -0,0 +1,83 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { mkdir, readFile, writeFile } from 'node:fs/promises';
3
+ import { tmpdir } from 'node:os';
4
+ import { join } from 'node:path';
5
+ export function getObserveTabDir(windowId, tabId) {
6
+ return join(tmpdir(), 'ank1015-llm', 'window-observe', `window-${windowId}`, `tab-${tabId}`);
7
+ }
8
+ export function getObserveLatestPath(windowId, tabId) {
9
+ return join(getObserveTabDir(windowId, tabId), 'latest.json');
10
+ }
11
+ export async function persistObserveSnapshot(input) {
12
+ const dir = getObserveTabDir(input.windowId, input.tabId);
13
+ await mkdir(dir, { recursive: true });
14
+ const snapshotId = `obs_${Date.now().toString(36)}_${randomUUID().slice(0, 8)}`;
15
+ const snapshotPath = join(dir, `snapshot-${snapshotId}.json`);
16
+ const latestPath = join(dir, 'latest.json');
17
+ const record = {
18
+ version: 1,
19
+ snapshotId,
20
+ createdAt: new Date().toISOString(),
21
+ windowId: input.windowId,
22
+ tabId: input.tabId,
23
+ options: input.options,
24
+ snapshot: input.snapshot,
25
+ };
26
+ await writeFile(snapshotPath, JSON.stringify(record, null, 2), 'utf-8');
27
+ const pointer = {
28
+ version: 1,
29
+ snapshotId,
30
+ createdAt: record.createdAt,
31
+ windowId: input.windowId,
32
+ tabId: input.tabId,
33
+ snapshotPath,
34
+ };
35
+ await writeFile(latestPath, JSON.stringify(pointer, null, 2), 'utf-8');
36
+ return {
37
+ snapshotId,
38
+ snapshotPath,
39
+ latestPath,
40
+ };
41
+ }
42
+ async function readJsonFile(path) {
43
+ try {
44
+ const raw = await readFile(path, 'utf-8');
45
+ return JSON.parse(raw);
46
+ }
47
+ catch (error) {
48
+ if (error && typeof error === 'object' && 'code' in error && error.code === 'ENOENT') {
49
+ return null;
50
+ }
51
+ throw error;
52
+ }
53
+ }
54
+ function isObject(value) {
55
+ return typeof value === 'object' && value !== null;
56
+ }
57
+ function isSnapshotRecord(value) {
58
+ return (isObject(value) &&
59
+ typeof value.snapshotId === 'string' &&
60
+ typeof value.windowId === 'number' &&
61
+ typeof value.tabId === 'number' &&
62
+ isObject(value.snapshot));
63
+ }
64
+ /**
65
+ * Reads the latest observe snapshot record for a window+tab.
66
+ * Returns null when no snapshot exists yet.
67
+ */
68
+ export async function readLatestObserveSnapshot(windowId, tabId) {
69
+ const latestPath = getObserveLatestPath(windowId, tabId);
70
+ const pointer = await readJsonFile(latestPath);
71
+ if (!pointer || typeof pointer.snapshotPath !== 'string') {
72
+ return null;
73
+ }
74
+ const record = await readJsonFile(pointer.snapshotPath);
75
+ if (!isSnapshotRecord(record)) {
76
+ return null;
77
+ }
78
+ if (record.windowId !== windowId || record.tabId !== tabId) {
79
+ return null;
80
+ }
81
+ return record;
82
+ }
83
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/sdk/observe/storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,140 @@
1
+ export type ObserveFilter = 'interactive' | 'buttons' | 'links' | 'inputs' | 'text' | 'forms' | 'media' | 'alerts';
2
+ export interface WindowObserveOptions {
3
+ tabId?: number;
4
+ filters?: ObserveFilter[];
5
+ /**
6
+ * Optional semantic query. When provided, Window.observe passes a semantic input
7
+ * string to the constructor-provided semanticFilter callback and returns its result.
8
+ */
9
+ semanticFilter?: string;
10
+ /**
11
+ * Maximum number of items to return in list-heavy sections.
12
+ * Default: 120. Filtered observe defaults to a lower cap when omitted.
13
+ */
14
+ max?: number;
15
+ timeoutMs?: number;
16
+ }
17
+ export interface ObserveLocator {
18
+ id?: string;
19
+ testId?: string;
20
+ name?: string;
21
+ role?: string;
22
+ cssPath?: string;
23
+ }
24
+ export interface ObserveBBox {
25
+ x: number;
26
+ y: number;
27
+ width: number;
28
+ height: number;
29
+ }
30
+ export type ObserveInteractiveCategory = 'button' | 'link' | 'input' | 'interactive';
31
+ export interface ObserveSelectOption {
32
+ value: string;
33
+ label: string;
34
+ selected: boolean;
35
+ disabled: boolean;
36
+ }
37
+ export interface ObserveInteractiveElement {
38
+ id: string;
39
+ category: ObserveInteractiveCategory;
40
+ tag: string;
41
+ role: string;
42
+ name: string;
43
+ groupId: string;
44
+ actions: string[];
45
+ state: string[];
46
+ locator: ObserveLocator;
47
+ bbox: ObserveBBox;
48
+ href?: string;
49
+ selectOptions?: ObserveSelectOption[];
50
+ }
51
+ export interface ObserveTextBlock {
52
+ id: string;
53
+ kind: 'heading' | 'text';
54
+ text: string;
55
+ source: string;
56
+ groupId: string;
57
+ level?: number;
58
+ }
59
+ export interface ObserveFormSummary {
60
+ id: string;
61
+ name: string;
62
+ fields: string[];
63
+ submitButtons: string[];
64
+ }
65
+ export interface ObserveMediaElement {
66
+ id: string;
67
+ kind: 'audio' | 'video';
68
+ name: string;
69
+ state: string[];
70
+ locator: ObserveLocator;
71
+ bbox: ObserveBBox;
72
+ currentTime: number;
73
+ duration: number;
74
+ src?: string;
75
+ }
76
+ export interface ObservePageInfo {
77
+ url: string;
78
+ title: string;
79
+ lang: string;
80
+ capturedAt: string;
81
+ viewport: {
82
+ width: number;
83
+ height: number;
84
+ };
85
+ scroll: {
86
+ x: number;
87
+ y: number;
88
+ maxY: number;
89
+ };
90
+ }
91
+ export interface ObservePageSummary {
92
+ interactiveCount: number;
93
+ totalInteractiveCount: number;
94
+ textBlockCount: number;
95
+ totalTextBlockCount: number;
96
+ formCount: number;
97
+ mediaCount: number;
98
+ alertCount: number;
99
+ totalLinks: number;
100
+ totalButtons: number;
101
+ totalInputs: number;
102
+ }
103
+ export interface ObserveTruncation {
104
+ interactive: boolean;
105
+ textBlocks: boolean;
106
+ hiddenFilteredCount: number;
107
+ offscreenFilteredCount: number;
108
+ }
109
+ export interface ObserveSnapshot {
110
+ page: ObservePageInfo;
111
+ summary: ObservePageSummary;
112
+ interactive: ObserveInteractiveElement[];
113
+ textBlocks: ObserveTextBlock[];
114
+ forms: ObserveFormSummary[];
115
+ media: ObserveMediaElement[];
116
+ alerts: string[];
117
+ truncation: ObserveTruncation;
118
+ warnings: string[];
119
+ }
120
+ export interface NormalizedObserveOptions {
121
+ filters: ObserveFilter[];
122
+ semanticFilter?: string;
123
+ max: number;
124
+ effectiveMax: number;
125
+ }
126
+ export interface ObserveView {
127
+ interactive: ObserveInteractiveElement[];
128
+ textBlocks: ObserveTextBlock[];
129
+ forms: ObserveFormSummary[];
130
+ media: ObserveMediaElement[];
131
+ alerts: string[];
132
+ includeSections: {
133
+ interactive: boolean;
134
+ text: boolean;
135
+ forms: boolean;
136
+ media: boolean;
137
+ alerts: boolean;
138
+ };
139
+ }
140
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/sdk/observe/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/sdk/observe/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,97 @@
1
+ import type { WindowActionOptions, WindowScrollOptions, WindowTypeOptions } from './action/index.js';
2
+ import type { WindowObserveOptions } from './observe/index.js';
3
+ export interface WindowOpenOptions {
4
+ newTab?: boolean;
5
+ active?: boolean;
6
+ tabId?: number;
7
+ timeoutMs?: number;
8
+ }
9
+ export interface WindowScreenshotOptions {
10
+ tabId?: number;
11
+ /** Capture full-page screenshot when true. Default: false (viewport only). */
12
+ fullPage?: boolean;
13
+ }
14
+ export interface WindowEvaluateOptions {
15
+ tabId?: number;
16
+ timeoutMs?: number;
17
+ awaitPromise?: boolean;
18
+ userGesture?: boolean;
19
+ }
20
+ export interface WindowDownloadOptions {
21
+ timeoutMs?: number;
22
+ saveAs?: boolean;
23
+ }
24
+ export interface WindowGetPageOptions {
25
+ tabId?: number;
26
+ url?: string;
27
+ timeoutMs?: number;
28
+ converterUrl?: string;
29
+ }
30
+ export type { ObserveFilter, WindowObserveOptions } from './observe/index.js';
31
+ export type { WindowActionOptions, WindowScrollBehavior, WindowScrollOptions, WindowTypeOptions, } from './action/index.js';
32
+ export type WindowSemanticFilter = (input: string) => string | Promise<string>;
33
+ export interface WindowTab {
34
+ id?: number;
35
+ windowId?: number;
36
+ active?: boolean;
37
+ status?: string;
38
+ url?: string;
39
+ title?: string;
40
+ }
41
+ /**
42
+ * Agent-facing window wrapper.
43
+ *
44
+ * If a window ID is provided, it is used directly.
45
+ * Otherwise, a new Chrome window is created during initialization.
46
+ */
47
+ export declare class Window {
48
+ private chromePromise;
49
+ private semanticFilter;
50
+ private windowId;
51
+ /** Resolves when constructor initialization completes. */
52
+ readonly ready: Promise<void>;
53
+ constructor(windowId?: number | WindowSemanticFilter, semanticFilter?: WindowSemanticFilter);
54
+ open(url: string, options?: WindowOpenOptions): Promise<WindowTab>;
55
+ tabs(): Promise<WindowTab[]>;
56
+ switchTab(tabId: number): Promise<WindowTab>;
57
+ closeTab(tabId?: number): Promise<void>;
58
+ back(tabId?: number): Promise<WindowTab>;
59
+ reload(tabId?: number): Promise<WindowTab>;
60
+ screenshot(options?: WindowScreenshotOptions): Promise<string>;
61
+ download(url: string, downloadPath: string, options?: WindowDownloadOptions): Promise<string>;
62
+ evaluate<T = unknown>(code: string, options?: WindowEvaluateOptions): Promise<T>;
63
+ getPage(input?: WindowGetPageOptions | number | string): Promise<string>;
64
+ observe(options?: WindowObserveOptions): Promise<string>;
65
+ click(targetId: string, options?: WindowActionOptions): Promise<string>;
66
+ hover(targetId: string, options?: WindowActionOptions): Promise<string>;
67
+ focus(targetId: string, options?: WindowActionOptions): Promise<string>;
68
+ pressEnter(targetId: string, options?: WindowActionOptions): Promise<string>;
69
+ clear(targetId: string, options?: WindowActionOptions): Promise<string>;
70
+ toggle(targetId: string, options?: WindowActionOptions): Promise<string>;
71
+ type(targetId: string, value: string, options?: WindowTypeOptions): Promise<string>;
72
+ select(targetId: string, value: string, options?: WindowActionOptions): Promise<string>;
73
+ scroll(options?: WindowScrollOptions): Promise<string>;
74
+ current(): Promise<WindowTab | null>;
75
+ private runTargetAction;
76
+ private runPageAction;
77
+ private waitForPostActionLoad;
78
+ private captureActionSnapshot;
79
+ private getTabIfPresent;
80
+ private renderActionMarkdown;
81
+ private formatUrlForOutput;
82
+ private buildScrollPayload;
83
+ private normalizeGetPageInput;
84
+ private getCompleteHtml;
85
+ private convertHtmlToMarkdown;
86
+ private parseConvertedMarkdown;
87
+ private closeTabIfPresent;
88
+ private getChrome;
89
+ private getWindowId;
90
+ private resolveTargetTabId;
91
+ private assertTabInWindow;
92
+ private waitForTabLoad;
93
+ private waitForTabClosed;
94
+ private waitForDownloadCompletion;
95
+ private getFullPageCaptureParams;
96
+ }
97
+ //# sourceMappingURL=window.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../../src/sdk/window.ts"],"names":[],"mappings":"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"}