sourceloop 0.1.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.
- package/README.md +401 -0
- package/dist/commands/attach.d.ts +2 -0
- package/dist/commands/attach.js +103 -0
- package/dist/commands/attach.js.map +1 -0
- package/dist/commands/auth.d.ts +2 -0
- package/dist/commands/auth.js +33 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/chrome.d.ts +2 -0
- package/dist/commands/chrome.js +30 -0
- package/dist/commands/chrome.js.map +1 -0
- package/dist/commands/compose.d.ts +2 -0
- package/dist/commands/compose.js +14 -0
- package/dist/commands/compose.js.map +1 -0
- package/dist/commands/doctor.d.ts +2 -0
- package/dist/commands/doctor.js +15 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/import-latest.d.ts +2 -0
- package/dist/commands/import-latest.js +42 -0
- package/dist/commands/import-latest.js.map +1 -0
- package/dist/commands/ingest.d.ts +2 -0
- package/dist/commands/ingest.js +14 -0
- package/dist/commands/ingest.js.map +1 -0
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.js +24 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/notebook-bind.d.ts +2 -0
- package/dist/commands/notebook-bind.js +39 -0
- package/dist/commands/notebook-bind.js.map +1 -0
- package/dist/commands/notebook-create.d.ts +2 -0
- package/dist/commands/notebook-create.js +39 -0
- package/dist/commands/notebook-create.js.map +1 -0
- package/dist/commands/notebook-import.d.ts +2 -0
- package/dist/commands/notebook-import.js +39 -0
- package/dist/commands/notebook-import.js.map +1 -0
- package/dist/commands/notebook-source.d.ts +2 -0
- package/dist/commands/notebook-source.js +71 -0
- package/dist/commands/notebook-source.js.map +1 -0
- package/dist/commands/plan.d.ts +9 -0
- package/dist/commands/plan.js +59 -0
- package/dist/commands/plan.js.map +1 -0
- package/dist/commands/run.d.ts +2 -0
- package/dist/commands/run.js +76 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/status.d.ts +2 -0
- package/dist/commands/status.js +15 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/topic.d.ts +2 -0
- package/dist/commands/topic.js +53 -0
- package/dist/commands/topic.js.map +1 -0
- package/dist/core/attach/launch-managed-chrome.d.ts +27 -0
- package/dist/core/attach/launch-managed-chrome.js +136 -0
- package/dist/core/attach/launch-managed-chrome.js.map +1 -0
- package/dist/core/attach/manage-targets.d.ts +49 -0
- package/dist/core/attach/manage-targets.js +179 -0
- package/dist/core/attach/manage-targets.js.map +1 -0
- package/dist/core/ingest/frontmatter.d.ts +4 -0
- package/dist/core/ingest/frontmatter.js +30 -0
- package/dist/core/ingest/frontmatter.js.map +1 -0
- package/dist/core/ingest/html-to-markdown.d.ts +5 -0
- package/dist/core/ingest/html-to-markdown.js +53 -0
- package/dist/core/ingest/html-to-markdown.js.map +1 -0
- package/dist/core/ingest/ingest-source.d.ts +11 -0
- package/dist/core/ingest/ingest-source.js +115 -0
- package/dist/core/ingest/ingest-source.js.map +1 -0
- package/dist/core/notebooklm/adapter.d.ts +17 -0
- package/dist/core/notebooklm/adapter.js +2 -0
- package/dist/core/notebooklm/adapter.js.map +1 -0
- package/dist/core/notebooklm/auth.d.ts +30 -0
- package/dist/core/notebooklm/auth.js +105 -0
- package/dist/core/notebooklm/auth.js.map +1 -0
- package/dist/core/notebooklm/browser-agent-adapter.d.ts +21 -0
- package/dist/core/notebooklm/browser-agent-adapter.js +37 -0
- package/dist/core/notebooklm/browser-agent-adapter.js.map +1 -0
- package/dist/core/notebooklm/browser-agent.d.ts +121 -0
- package/dist/core/notebooklm/browser-agent.js +1604 -0
- package/dist/core/notebooklm/browser-agent.js.map +1 -0
- package/dist/core/notebooklm/config.d.ts +20 -0
- package/dist/core/notebooklm/config.js +133 -0
- package/dist/core/notebooklm/config.js.map +1 -0
- package/dist/core/notebooklm/fixture-adapter.d.ts +13 -0
- package/dist/core/notebooklm/fixture-adapter.js +32 -0
- package/dist/core/notebooklm/fixture-adapter.js.map +1 -0
- package/dist/core/notebooklm/response-extraction.d.ts +23 -0
- package/dist/core/notebooklm/response-extraction.js +348 -0
- package/dist/core/notebooklm/response-extraction.js.map +1 -0
- package/dist/core/notebooks/bind-notebook.d.ts +21 -0
- package/dist/core/notebooks/bind-notebook.js +95 -0
- package/dist/core/notebooks/bind-notebook.js.map +1 -0
- package/dist/core/notebooks/manage-managed-notebooks.d.ts +70 -0
- package/dist/core/notebooks/manage-managed-notebooks.js +491 -0
- package/dist/core/notebooks/manage-managed-notebooks.js.map +1 -0
- package/dist/core/notebooks/manage-notebook-source-manifests.d.ts +25 -0
- package/dist/core/notebooks/manage-notebook-source-manifests.js +127 -0
- package/dist/core/notebooks/manage-notebook-source-manifests.js.map +1 -0
- package/dist/core/operator/workspace-operator.d.ts +82 -0
- package/dist/core/operator/workspace-operator.js +610 -0
- package/dist/core/operator/workspace-operator.js.map +1 -0
- package/dist/core/outputs/compose-run.d.ts +11 -0
- package/dist/core/outputs/compose-run.js +98 -0
- package/dist/core/outputs/compose-run.js.map +1 -0
- package/dist/core/runs/load-artifacts.d.ts +14 -0
- package/dist/core/runs/load-artifacts.js +51 -0
- package/dist/core/runs/load-artifacts.js.map +1 -0
- package/dist/core/runs/question-planner.d.ts +20 -0
- package/dist/core/runs/question-planner.js +276 -0
- package/dist/core/runs/question-planner.js.map +1 -0
- package/dist/core/runs/render-run-note.d.ts +13 -0
- package/dist/core/runs/render-run-note.js +111 -0
- package/dist/core/runs/render-run-note.js.map +1 -0
- package/dist/core/runs/run-qa.d.ts +28 -0
- package/dist/core/runs/run-qa.js +393 -0
- package/dist/core/runs/run-qa.js.map +1 -0
- package/dist/core/topics/manage-topics.d.ts +27 -0
- package/dist/core/topics/manage-topics.js +314 -0
- package/dist/core/topics/manage-topics.js.map +1 -0
- package/dist/core/vault/notes.d.ts +29 -0
- package/dist/core/vault/notes.js +147 -0
- package/dist/core/vault/notes.js.map +1 -0
- package/dist/core/vault/paths.d.ts +31 -0
- package/dist/core/vault/paths.js +44 -0
- package/dist/core/vault/paths.js.map +1 -0
- package/dist/core/workspace/bootstrap.d.ts +16 -0
- package/dist/core/workspace/bootstrap.js +443 -0
- package/dist/core/workspace/bootstrap.js.map +1 -0
- package/dist/core/workspace/constants.d.ts +3 -0
- package/dist/core/workspace/constants.js +16 -0
- package/dist/core/workspace/constants.js.map +1 -0
- package/dist/core/workspace/init-workspace.d.ts +15 -0
- package/dist/core/workspace/init-workspace.js +86 -0
- package/dist/core/workspace/init-workspace.js.map +1 -0
- package/dist/core/workspace/load-workspace.d.ts +6 -0
- package/dist/core/workspace/load-workspace.js +51 -0
- package/dist/core/workspace/load-workspace.js.map +1 -0
- package/dist/core/workspace/schema.d.ts +19 -0
- package/dist/core/workspace/schema.js +19 -0
- package/dist/core/workspace/schema.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +41 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/cli-output.d.ts +2 -0
- package/dist/lib/cli-output.js +7 -0
- package/dist/lib/cli-output.js.map +1 -0
- package/dist/lib/obsidian.d.ts +4 -0
- package/dist/lib/obsidian.js +23 -0
- package/dist/lib/obsidian.js.map +1 -0
- package/dist/lib/slugify.d.ts +1 -0
- package/dist/lib/slugify.js +10 -0
- package/dist/lib/slugify.js.map +1 -0
- package/dist/lib/write-json.d.ts +1 -0
- package/dist/lib/write-json.js +5 -0
- package/dist/lib/write-json.js.map +1 -0
- package/dist/schemas/attach.d.ts +118 -0
- package/dist/schemas/attach.js +33 -0
- package/dist/schemas/attach.js.map +1 -0
- package/dist/schemas/managed-notebook.d.ts +47 -0
- package/dist/schemas/managed-notebook.js +30 -0
- package/dist/schemas/managed-notebook.js.map +1 -0
- package/dist/schemas/notebook-source.d.ts +31 -0
- package/dist/schemas/notebook-source.js +23 -0
- package/dist/schemas/notebook-source.js.map +1 -0
- package/dist/schemas/notebook.d.ts +26 -0
- package/dist/schemas/notebook.js +18 -0
- package/dist/schemas/notebook.js.map +1 -0
- package/dist/schemas/run.d.ts +169 -0
- package/dist/schemas/run.js +80 -0
- package/dist/schemas/run.js.map +1 -0
- package/dist/schemas/source.d.ts +18 -0
- package/dist/schemas/source.js +13 -0
- package/dist/schemas/source.js.map +1 -0
- package/dist/schemas/topic.d.ts +37 -0
- package/dist/schemas/topic.js +25 -0
- package/dist/schemas/topic.js.map +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ingest-source.js","sourceRoot":"","sources":["../../../src/core/ingest/ingest-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { NotebookBinding } from "../../schemas/notebook.js";
|
|
2
|
+
import type { PlannedQuestion, CitationReference } from "../../schemas/run.js";
|
|
3
|
+
export type NotebookRunnerAnswer = {
|
|
4
|
+
answer: string;
|
|
5
|
+
citations: CitationReference[];
|
|
6
|
+
answerSource: "notebooklm";
|
|
7
|
+
};
|
|
8
|
+
export type NotebookRunnerExecutionMetadata = {
|
|
9
|
+
executionMode?: "attached_chrome" | "fixture";
|
|
10
|
+
attachedChromeTargetId?: string;
|
|
11
|
+
};
|
|
12
|
+
export interface NotebookRunnerAdapter {
|
|
13
|
+
readonly kind: "browser-agent" | "fixture";
|
|
14
|
+
prepareRun?(binding: NotebookBinding): Promise<NotebookRunnerExecutionMetadata | void>;
|
|
15
|
+
askQuestion(binding: NotebookBinding, question: PlannedQuestion): Promise<NotebookRunnerAnswer>;
|
|
16
|
+
dispose?(): Promise<void>;
|
|
17
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/core/notebooklm/adapter.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export type NotebookAuthProfileStatus = {
|
|
2
|
+
profile: string;
|
|
3
|
+
authenticated: boolean;
|
|
4
|
+
stateFilePath: string;
|
|
5
|
+
profileDirPath: string;
|
|
6
|
+
stateAgeHours?: number;
|
|
7
|
+
};
|
|
8
|
+
export type SetupNotebookAuthInput = {
|
|
9
|
+
profile?: string;
|
|
10
|
+
cwd?: string;
|
|
11
|
+
timeoutMinutes?: number;
|
|
12
|
+
};
|
|
13
|
+
export declare function setupNotebookAuth(input: SetupNotebookAuthInput): Promise<NotebookAuthProfileStatus>;
|
|
14
|
+
export declare function clearNotebookAuth(input: {
|
|
15
|
+
profile?: string;
|
|
16
|
+
cwd?: string;
|
|
17
|
+
}): Promise<NotebookAuthProfileStatus>;
|
|
18
|
+
export declare function getNotebookAuthStatus(input: {
|
|
19
|
+
cwd?: string;
|
|
20
|
+
rootDir?: string;
|
|
21
|
+
profile?: string;
|
|
22
|
+
}): Promise<NotebookAuthProfileStatus>;
|
|
23
|
+
export declare function readNotebookStorageState(rootDir: string, profile: string): Promise<string>;
|
|
24
|
+
export declare function getNotebookAuthPaths(rootDir: string, profile: string): {
|
|
25
|
+
profile: string;
|
|
26
|
+
profileRootPath: string;
|
|
27
|
+
profileDirPath: string;
|
|
28
|
+
stateFilePath: string;
|
|
29
|
+
authInfoPath: string;
|
|
30
|
+
};
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { access, mkdir, rm, stat, writeFile } from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { chromium } from "playwright";
|
|
4
|
+
import { loadWorkspace } from "../workspace/load-workspace.js";
|
|
5
|
+
import { NOTEBOOKLM_DEFAULT_URL } from "./config.js";
|
|
6
|
+
export async function setupNotebookAuth(input) {
|
|
7
|
+
const workspace = await loadWorkspace(input.cwd);
|
|
8
|
+
const profile = input.profile ?? "default";
|
|
9
|
+
const paths = getNotebookAuthPaths(workspace.rootDir, profile);
|
|
10
|
+
await mkdir(paths.profileDirPath, { recursive: true });
|
|
11
|
+
const context = await chromium.launchPersistentContext(paths.profileDirPath, {
|
|
12
|
+
channel: "chrome",
|
|
13
|
+
headless: false,
|
|
14
|
+
viewport: null,
|
|
15
|
+
ignoreDefaultArgs: ["--enable-automation"]
|
|
16
|
+
});
|
|
17
|
+
try {
|
|
18
|
+
const page = await openNotebookPage(context, NOTEBOOKLM_DEFAULT_URL);
|
|
19
|
+
await page.waitForURL(/^https:\/\/notebooklm\.google\.com\//, {
|
|
20
|
+
timeout: (input.timeoutMinutes ?? 10) * 60 * 1000
|
|
21
|
+
});
|
|
22
|
+
await context.storageState({ path: paths.stateFilePath });
|
|
23
|
+
await writeFile(paths.authInfoPath, JSON.stringify({ authenticatedAt: new Date().toISOString() }, null, 2) + "\n");
|
|
24
|
+
return getNotebookAuthStatus({ rootDir: workspace.rootDir, profile });
|
|
25
|
+
}
|
|
26
|
+
finally {
|
|
27
|
+
await context.close();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
async function openNotebookPage(context, url) {
|
|
31
|
+
let page = await context.newPage();
|
|
32
|
+
try {
|
|
33
|
+
await page.goto(url, { waitUntil: "domcontentloaded" });
|
|
34
|
+
return page;
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
await page.close().catch(() => undefined);
|
|
38
|
+
if (!(error instanceof Error) || !error.message.includes("ERR_INVALID_ARGUMENT")) {
|
|
39
|
+
throw error;
|
|
40
|
+
}
|
|
41
|
+
page = await context.newPage();
|
|
42
|
+
await page.goto(url, { waitUntil: "domcontentloaded" });
|
|
43
|
+
return page;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
export async function clearNotebookAuth(input) {
|
|
47
|
+
const workspace = await loadWorkspace(input.cwd);
|
|
48
|
+
const profile = input.profile ?? "default";
|
|
49
|
+
const paths = getNotebookAuthPaths(workspace.rootDir, profile);
|
|
50
|
+
await rm(paths.profileRootPath, { recursive: true, force: true });
|
|
51
|
+
return {
|
|
52
|
+
profile,
|
|
53
|
+
authenticated: false,
|
|
54
|
+
stateFilePath: paths.stateFilePath,
|
|
55
|
+
profileDirPath: paths.profileDirPath
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
export async function getNotebookAuthStatus(input) {
|
|
59
|
+
const rootDir = input.rootDir ?? (await loadWorkspace(input.cwd)).rootDir;
|
|
60
|
+
const profile = input.profile ?? "default";
|
|
61
|
+
const paths = getNotebookAuthPaths(rootDir, profile);
|
|
62
|
+
const exists = await fileExists(paths.stateFilePath);
|
|
63
|
+
if (!exists) {
|
|
64
|
+
return {
|
|
65
|
+
profile,
|
|
66
|
+
authenticated: false,
|
|
67
|
+
stateFilePath: paths.stateFilePath,
|
|
68
|
+
profileDirPath: paths.profileDirPath
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
const stateStat = await stat(paths.stateFilePath);
|
|
72
|
+
return {
|
|
73
|
+
profile,
|
|
74
|
+
authenticated: true,
|
|
75
|
+
stateFilePath: paths.stateFilePath,
|
|
76
|
+
profileDirPath: paths.profileDirPath,
|
|
77
|
+
stateAgeHours: (Date.now() - stateStat.mtimeMs) / 1000 / 60 / 60
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
export async function readNotebookStorageState(rootDir, profile) {
|
|
81
|
+
const paths = getNotebookAuthPaths(rootDir, profile);
|
|
82
|
+
await access(paths.stateFilePath);
|
|
83
|
+
return paths.stateFilePath;
|
|
84
|
+
}
|
|
85
|
+
export function getNotebookAuthPaths(rootDir, profile) {
|
|
86
|
+
const profileSlug = profile.trim() || "default";
|
|
87
|
+
const baseDir = path.join(rootDir, ".sourceloop", "notebooklm", profileSlug);
|
|
88
|
+
return {
|
|
89
|
+
profile,
|
|
90
|
+
profileRootPath: baseDir,
|
|
91
|
+
profileDirPath: path.join(baseDir, "profile"),
|
|
92
|
+
stateFilePath: path.join(baseDir, "state.json"),
|
|
93
|
+
authInfoPath: path.join(baseDir, "auth-info.json")
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
async function fileExists(filePath) {
|
|
97
|
+
try {
|
|
98
|
+
await access(filePath);
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/core/notebooklm/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ChromeAttachTarget } from "../../schemas/attach.js";
|
|
2
|
+
import type { NotebookBinding } from "../../schemas/notebook.js";
|
|
3
|
+
import type { PlannedQuestion } from "../../schemas/run.js";
|
|
4
|
+
import type { NotebookRunnerAdapter, NotebookRunnerAnswer } from "./adapter.js";
|
|
5
|
+
import { type NotebookBrowserSessionFactory } from "./browser-agent.js";
|
|
6
|
+
export declare class BrowserAgentNotebookRunnerAdapter implements NotebookRunnerAdapter {
|
|
7
|
+
private readonly options;
|
|
8
|
+
readonly kind: "browser-agent";
|
|
9
|
+
private session;
|
|
10
|
+
constructor(options: {
|
|
11
|
+
attachTarget: ChromeAttachTarget;
|
|
12
|
+
showBrowser?: boolean;
|
|
13
|
+
sessionFactory?: NotebookBrowserSessionFactory;
|
|
14
|
+
});
|
|
15
|
+
prepareRun(binding: NotebookBinding): Promise<{
|
|
16
|
+
executionMode: "attached_chrome";
|
|
17
|
+
attachedChromeTargetId: string;
|
|
18
|
+
}>;
|
|
19
|
+
askQuestion(binding: NotebookBinding, question: PlannedQuestion): Promise<NotebookRunnerAnswer>;
|
|
20
|
+
dispose(): Promise<void>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { defaultNotebookBrowserSessionFactory } from "./browser-agent.js";
|
|
2
|
+
export class BrowserAgentNotebookRunnerAdapter {
|
|
3
|
+
options;
|
|
4
|
+
kind = "browser-agent";
|
|
5
|
+
session;
|
|
6
|
+
constructor(options) {
|
|
7
|
+
this.options = options;
|
|
8
|
+
}
|
|
9
|
+
async prepareRun(binding) {
|
|
10
|
+
const sessionFactory = this.options.sessionFactory ?? defaultNotebookBrowserSessionFactory;
|
|
11
|
+
this.session = await sessionFactory.createSession({
|
|
12
|
+
target: this.options.attachTarget,
|
|
13
|
+
...(this.options.showBrowser !== undefined ? { showBrowser: this.options.showBrowser } : {})
|
|
14
|
+
});
|
|
15
|
+
await this.session.preflight(binding.notebookUrl);
|
|
16
|
+
return {
|
|
17
|
+
executionMode: "attached_chrome",
|
|
18
|
+
attachedChromeTargetId: this.options.attachTarget.id
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
async askQuestion(binding, question) {
|
|
22
|
+
if (!this.session) {
|
|
23
|
+
throw new Error("Browser-agent adapter has no attached NotebookLM session. Call prepareRun() first.");
|
|
24
|
+
}
|
|
25
|
+
const response = await this.session.askQuestion(question);
|
|
26
|
+
return {
|
|
27
|
+
answer: response.answer,
|
|
28
|
+
citations: response.citations,
|
|
29
|
+
answerSource: "notebooklm"
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
async dispose() {
|
|
33
|
+
await this.session?.close();
|
|
34
|
+
this.session = undefined;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=browser-agent-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-agent-adapter.js","sourceRoot":"","sources":["../../../src/core/notebooklm/browser-agent-adapter.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,oCAAoC,EAGrC,MAAM,oBAAoB,CAAC;AAE5B,MAAM,OAAO,iCAAiC;IAKzB;IAJV,IAAI,GAAG,eAAwB,CAAC;IACjC,OAAO,CAAqC;IAEpD,YACmB,OAIhB;QAJgB,YAAO,GAAP,OAAO,CAIvB;IACA,CAAC;IAEJ,KAAK,CAAC,UAAU,CAAC,OAAwB;QACvC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,oCAAoC,CAAC;QAC3F,IAAI,CAAC,OAAO,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC;YAChD,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;YACjC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7F,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAElD,OAAO;YACL,aAAa,EAAE,iBAA0B;YACzC,sBAAsB,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;SACrD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAwB,EAAE,QAAyB;QACnE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;QACxG,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE1D,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,YAAY,EAAE,YAAY;SAC3B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import type { ChromeAttachTarget } from "../../schemas/attach.js";
|
|
2
|
+
import type { ManagedNotebookImportStatus } from "../../schemas/managed-notebook.js";
|
|
3
|
+
import type { CitationReference, PlannedQuestion } from "../../schemas/run.js";
|
|
4
|
+
export type NotebookLMCitationOverflowCandidate = {
|
|
5
|
+
overflowId: string;
|
|
6
|
+
text?: string | null;
|
|
7
|
+
ariaLabel?: string | null;
|
|
8
|
+
title?: string | null;
|
|
9
|
+
className?: string | null;
|
|
10
|
+
dataTestId?: string | null;
|
|
11
|
+
selector?: string | null;
|
|
12
|
+
citationAdjacent?: boolean;
|
|
13
|
+
};
|
|
14
|
+
export declare function isLikelyCitationOverflowControl(candidate: {
|
|
15
|
+
text?: string | null;
|
|
16
|
+
ariaLabel?: string | null;
|
|
17
|
+
title?: string | null;
|
|
18
|
+
className?: string | null;
|
|
19
|
+
dataTestId?: string | null;
|
|
20
|
+
selector?: string | null;
|
|
21
|
+
}): boolean;
|
|
22
|
+
export declare function shouldExpandCitationOverflowControl(candidate: NotebookLMCitationOverflowCandidate): boolean;
|
|
23
|
+
export declare function isLikelyNotebookLMCitationMarker(candidate: {
|
|
24
|
+
text?: string | null;
|
|
25
|
+
ariaLabel?: string | null;
|
|
26
|
+
dialogLabel?: string | null;
|
|
27
|
+
triggerDescription?: string | null;
|
|
28
|
+
}): boolean;
|
|
29
|
+
export declare function hasNotebookLMCitationSnippet(note?: string | null): boolean;
|
|
30
|
+
export type ChromeAttachValidationCode = "chrome_unreachable" | "notebooklm_sign_in_required" | "notebooklm_preflight_failed";
|
|
31
|
+
export declare class ChromeAttachValidationError extends Error {
|
|
32
|
+
readonly code: ChromeAttachValidationCode;
|
|
33
|
+
constructor(code: ChromeAttachValidationCode, message: string);
|
|
34
|
+
}
|
|
35
|
+
export type ManagedNotebookBrowserCreateResult = {
|
|
36
|
+
notebookUrl: string;
|
|
37
|
+
};
|
|
38
|
+
export type ManagedNotebookBrowserImportInput = ({
|
|
39
|
+
notebookUrl?: string;
|
|
40
|
+
} & ({
|
|
41
|
+
importKind: "file_upload";
|
|
42
|
+
title: string;
|
|
43
|
+
sourceUri: string;
|
|
44
|
+
filePath: string;
|
|
45
|
+
} | {
|
|
46
|
+
importKind: "youtube_url" | "web_url";
|
|
47
|
+
title: string;
|
|
48
|
+
sourceUri: string;
|
|
49
|
+
url: string;
|
|
50
|
+
}));
|
|
51
|
+
export type ManagedNotebookBrowserImportResult = {
|
|
52
|
+
status: ManagedNotebookImportStatus;
|
|
53
|
+
failureReason?: string;
|
|
54
|
+
};
|
|
55
|
+
export type NotebookLMImportSuccessCandidate = {
|
|
56
|
+
signature: string;
|
|
57
|
+
text: string;
|
|
58
|
+
};
|
|
59
|
+
export interface NotebookBrowserSession {
|
|
60
|
+
preflight(notebookUrl?: string): Promise<void>;
|
|
61
|
+
askQuestion(question: PlannedQuestion): Promise<{
|
|
62
|
+
answer: string;
|
|
63
|
+
citations: CitationReference[];
|
|
64
|
+
}>;
|
|
65
|
+
captureLatestAnswer(): Promise<{
|
|
66
|
+
answer: string;
|
|
67
|
+
citations: CitationReference[];
|
|
68
|
+
}>;
|
|
69
|
+
createNotebook(title: string): Promise<ManagedNotebookBrowserCreateResult>;
|
|
70
|
+
importSource(input: ManagedNotebookBrowserImportInput): Promise<ManagedNotebookBrowserImportResult>;
|
|
71
|
+
close(): Promise<void>;
|
|
72
|
+
}
|
|
73
|
+
export interface NotebookBrowserSessionFactory {
|
|
74
|
+
createSession(input: {
|
|
75
|
+
target: ChromeAttachTarget;
|
|
76
|
+
showBrowser?: boolean;
|
|
77
|
+
reuseExistingNotebookPage?: boolean;
|
|
78
|
+
}): Promise<NotebookBrowserSession>;
|
|
79
|
+
}
|
|
80
|
+
export declare function disposeNotebookBrowserSessionResources(input: {
|
|
81
|
+
closePage: () => Promise<unknown>;
|
|
82
|
+
closeBrowserConnection: () => Promise<unknown>;
|
|
83
|
+
ownsBrowserProcess: boolean;
|
|
84
|
+
killSpawnedProcess?: () => Promise<void> | void;
|
|
85
|
+
}): Promise<void>;
|
|
86
|
+
export declare function validateChromeAttachTarget(input: {
|
|
87
|
+
target: ChromeAttachTarget;
|
|
88
|
+
notebookUrl?: string;
|
|
89
|
+
showBrowser?: boolean;
|
|
90
|
+
sessionFactory?: NotebookBrowserSessionFactory;
|
|
91
|
+
}): Promise<{
|
|
92
|
+
ok: true;
|
|
93
|
+
} | {
|
|
94
|
+
ok: false;
|
|
95
|
+
code: ChromeAttachValidationCode;
|
|
96
|
+
message: string;
|
|
97
|
+
}>;
|
|
98
|
+
export declare const defaultNotebookBrowserSessionFactory: NotebookBrowserSessionFactory;
|
|
99
|
+
export declare function isNotebookPageMatch(currentUrl: string, notebookUrl: string): boolean;
|
|
100
|
+
export declare function canonicalizeNotebookUrl(url: string): string;
|
|
101
|
+
export declare function extractNotebookResourceId(url: string): string | undefined;
|
|
102
|
+
export declare function ensureNotebookTargetMatch(currentUrl: string, notebookUrl: string): void;
|
|
103
|
+
export declare function resolveChromeExecutablePath(customPath?: string): Promise<string>;
|
|
104
|
+
export declare function allocateFreePort(): Promise<number>;
|
|
105
|
+
export declare function waitForRemoteDebuggingEndpoint(endpoint: string, timeoutMs: number): Promise<void>;
|
|
106
|
+
export declare function shouldTreatCitationMetadataAsSettled(input: {
|
|
107
|
+
signature: string;
|
|
108
|
+
latestSignature: string;
|
|
109
|
+
stableCount: number;
|
|
110
|
+
emptyStableCount: number;
|
|
111
|
+
}): {
|
|
112
|
+
stableCount: number;
|
|
113
|
+
emptyStableCount: number;
|
|
114
|
+
settled: boolean;
|
|
115
|
+
};
|
|
116
|
+
export declare function countRichNotebookLMCitations(citations: CitationReference[]): number;
|
|
117
|
+
export declare function shouldRetryNotebookLMCitationCapture(citations: CitationReference[]): boolean;
|
|
118
|
+
export declare function parseNotebookSourceCount(text: string): number | undefined;
|
|
119
|
+
export declare function didImportIncreaseVisibleSourceCount(baselineSourceCount: number | undefined, currentSourceCount: number | undefined): boolean;
|
|
120
|
+
export declare function getManagedImportSuccessNeedles(input: ManagedNotebookBrowserImportInput): string[];
|
|
121
|
+
export declare function didImportProduceNewMatchingCandidate(baselineCandidates: NotebookLMImportSuccessCandidate[], currentCandidates: NotebookLMImportSuccessCandidate[], input: ManagedNotebookBrowserImportInput): boolean;
|