sourceloop 0.1.1 → 0.1.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.
- package/dist/commands/chrome.js +16 -1
- package/dist/commands/chrome.js.map +1 -1
- package/dist/commands/import-latest.js +5 -0
- package/dist/commands/import-latest.js.map +1 -1
- package/dist/commands/run.js +2 -1
- package/dist/commands/run.js.map +1 -1
- package/dist/core/attach/launch-managed-chrome.d.ts +22 -2
- package/dist/core/attach/launch-managed-chrome.js +101 -1
- package/dist/core/attach/launch-managed-chrome.js.map +1 -1
- package/dist/core/attach/manage-targets.d.ts +1 -0
- package/dist/core/attach/manage-targets.js +4 -0
- package/dist/core/attach/manage-targets.js.map +1 -1
- package/dist/core/notebooklm/browser-agent-adapter.d.ts +3 -0
- package/dist/core/notebooklm/browser-agent-adapter.js +6 -0
- package/dist/core/notebooklm/browser-agent-adapter.js.map +1 -1
- package/dist/core/workspace/bootstrap.js +84 -53
- package/dist/core/workspace/bootstrap.js.map +1 -1
- package/dist/schemas/attach.d.ts +2 -0
- package/dist/schemas/attach.js +1 -0
- package/dist/schemas/attach.js.map +1 -1
- package/package.json +1 -1
package/dist/commands/chrome.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
|
-
import { launchManagedChrome } from "../core/attach/launch-managed-chrome.js";
|
|
2
|
+
import { closeManagedChrome, launchManagedChrome } from "../core/attach/launch-managed-chrome.js";
|
|
3
3
|
import { writeJsonOutput, writeTextOutput } from "../lib/cli-output.js";
|
|
4
4
|
export const chromeCommand = new Command("chrome").description("Launch and inspect SourceLoop-managed Chrome browser workflows");
|
|
5
5
|
chromeCommand
|
|
@@ -27,4 +27,19 @@ chromeCommand
|
|
|
27
27
|
}
|
|
28
28
|
writeTextOutput(`${result.launched ? "Launched" : "Reused"} managed Chrome ${result.target.id} at ${result.endpoint} using ${result.profileDirPath}`);
|
|
29
29
|
});
|
|
30
|
+
chromeCommand
|
|
31
|
+
.command("close")
|
|
32
|
+
.description("Close a SourceLoop-managed isolated Chrome browser")
|
|
33
|
+
.argument("<target-id>", "managed Chrome attach target id")
|
|
34
|
+
.option("--json", "emit machine-readable JSON", false)
|
|
35
|
+
.action(async (targetId, options) => {
|
|
36
|
+
const result = await closeManagedChrome({ targetId });
|
|
37
|
+
if (options.json) {
|
|
38
|
+
writeJsonOutput(result);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
writeTextOutput(result.closed
|
|
42
|
+
? `Closed managed Chrome ${result.targetId}${result.processId ? ` (pid ${result.processId})` : ""}`
|
|
43
|
+
: `Managed Chrome ${result.targetId} is not running.`);
|
|
44
|
+
});
|
|
30
45
|
//# sourceMappingURL=chrome.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chrome.js","sourceRoot":"","sources":["../../src/commands/chrome.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"chrome.js","sourceRoot":"","sources":["../../src/commands/chrome.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
2
|
import { loadChromeAttachTarget } from "../core/attach/manage-targets.js";
|
|
3
|
+
import { closeManagedChromeIfOwnedTarget } from "../core/attach/launch-managed-chrome.js";
|
|
3
4
|
import { loadNotebookBinding, loadQuestionBatch } from "../core/runs/load-artifacts.js";
|
|
4
5
|
import { defaultNotebookBrowserSessionFactory } from "../core/notebooklm/browser-agent.js";
|
|
5
6
|
import { importLatestAnswerIntoRun } from "../core/runs/run-qa.js";
|
|
@@ -37,6 +38,10 @@ export const importLatestCommand = new Command("import-latest")
|
|
|
37
38
|
}
|
|
38
39
|
finally {
|
|
39
40
|
await session.close();
|
|
41
|
+
await closeManagedChromeIfOwnedTarget({
|
|
42
|
+
target,
|
|
43
|
+
cwd: process.cwd()
|
|
44
|
+
}).catch(() => undefined);
|
|
40
45
|
}
|
|
41
46
|
});
|
|
42
47
|
//# sourceMappingURL=import-latest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-latest.js","sourceRoot":"","sources":["../../src/commands/import-latest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxF,OAAO,EAAE,oCAAoC,EAAE,MAAM,qCAAqC,CAAC;AAC3F,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC;KAC5D,WAAW,CAAC,0EAA0E,CAAC;KACvF,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC;KAC7C,MAAM,CAAC,6BAA6B,EAAE,uDAAuD,CAAC;KAC9F,MAAM,CAAC,6BAA6B,EAAE,6CAA6C,CAAC;KACpF,MAAM,CAAC,gBAAgB,EAAE,2CAA2C,EAAE,KAAK,CAAC;KAC5E,MAAM,CACL,KAAK,EACH,KAAa,EACb,OAIC,EACD,EAAE;IACF,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,mBAAmB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACrE,MAAM,cAAc,GAAG,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC;IAEtE,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,OAAO,KAAK,8HAA8H,CAC3I,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,sBAAsB,CAAC,cAAc,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,MAAM,oCAAoC,CAAC,aAAa,CAAC;QACvE,MAAM;QACN,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,yBAAyB,EAAE,IAAI;KAChC,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,mBAAmB,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC;YAC7C,KAAK;YACL,MAAM,EAAE;gBACN,GAAG,YAAY;gBACf,YAAY,EAAE,YAAY;aAC3B;YACD,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClE,CAAC,CAAC;QAEH,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,0CAA0C,MAAM,CAAC,kBAAkB,KAAK,MAAM,CAAC,GAAG,CAAC,MAAM,KAAK,CAC/F,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"import-latest.js","sourceRoot":"","sources":["../../src/commands/import-latest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxF,OAAO,EAAE,oCAAoC,EAAE,MAAM,qCAAqC,CAAC;AAC3F,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC;KAC5D,WAAW,CAAC,0EAA0E,CAAC;KACvF,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC;KAC7C,MAAM,CAAC,6BAA6B,EAAE,uDAAuD,CAAC;KAC9F,MAAM,CAAC,6BAA6B,EAAE,6CAA6C,CAAC;KACpF,MAAM,CAAC,gBAAgB,EAAE,2CAA2C,EAAE,KAAK,CAAC;KAC5E,MAAM,CACL,KAAK,EACH,KAAa,EACb,OAIC,EACD,EAAE;IACF,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,mBAAmB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACrE,MAAM,cAAc,GAAG,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC;IAEtE,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,OAAO,KAAK,8HAA8H,CAC3I,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,sBAAsB,CAAC,cAAc,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,MAAM,oCAAoC,CAAC,aAAa,CAAC;QACvE,MAAM;QACN,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,yBAAyB,EAAE,IAAI;KAChC,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,mBAAmB,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC;YAC7C,KAAK;YACL,MAAM,EAAE;gBACN,GAAG,YAAY;gBACf,YAAY,EAAE,YAAY;aAC3B;YACD,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClE,CAAC,CAAC;QAEH,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,0CAA0C,MAAM,CAAC,kBAAkB,KAAK,MAAM,CAAC,GAAG,CAAC,MAAM,KAAK,CAC/F,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,+BAA+B,CAAC;YACpC,MAAM;YACN,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;SACnB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC,CACF,CAAC"}
|
package/dist/commands/run.js
CHANGED
|
@@ -70,7 +70,8 @@ async function createAttachedBrowserAdapter(runId, explicitAttachTargetId, showB
|
|
|
70
70
|
const { target } = await loadChromeAttachTarget(attachTargetId);
|
|
71
71
|
return new BrowserAgentNotebookRunnerAdapter({
|
|
72
72
|
attachTarget: target,
|
|
73
|
-
showBrowser
|
|
73
|
+
showBrowser,
|
|
74
|
+
cwd: process.cwd()
|
|
74
75
|
});
|
|
75
76
|
}
|
|
76
77
|
//# sourceMappingURL=run.js.map
|
package/dist/commands/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type ChildProcess } from "node:child_process";
|
|
2
|
-
import { type RegisterChromeAttachTargetResult } from "./manage-targets.js";
|
|
2
|
+
import { loadChromeAttachTarget, type RegisterChromeAttachTargetResult, upsertChromeAttachTarget } from "./manage-targets.js";
|
|
3
3
|
import { allocateFreePort, resolveChromeExecutablePath, waitForRemoteDebuggingEndpoint } from "../notebooklm/browser-agent.js";
|
|
4
|
+
import type { ChromeAttachTarget, ChromeProfileAttachTarget } from "../../schemas/attach.js";
|
|
4
5
|
export type LaunchManagedChromeInput = {
|
|
5
6
|
name?: string;
|
|
6
7
|
chromeExecutablePath?: string;
|
|
@@ -16,12 +17,31 @@ export type LaunchManagedChromeResult = RegisterChromeAttachTargetResult & {
|
|
|
16
17
|
launched: boolean;
|
|
17
18
|
reusedTarget: boolean;
|
|
18
19
|
};
|
|
19
|
-
type
|
|
20
|
+
export type CloseManagedChromeResult = {
|
|
21
|
+
targetId: string;
|
|
22
|
+
closed: boolean;
|
|
23
|
+
processId?: number;
|
|
24
|
+
};
|
|
25
|
+
type SpawnedChromeProcess = Pick<ChildProcess, "kill" | "unref" | "pid">;
|
|
20
26
|
type LaunchManagedChromeDeps = {
|
|
21
27
|
resolveChromeExecutablePath: typeof resolveChromeExecutablePath;
|
|
22
28
|
allocateFreePort: typeof allocateFreePort;
|
|
23
29
|
waitForRemoteDebuggingEndpoint: typeof waitForRemoteDebuggingEndpoint;
|
|
24
30
|
spawnChromeProcess: (executablePath: string, args: string[]) => SpawnedChromeProcess;
|
|
25
31
|
};
|
|
32
|
+
type CloseManagedChromeDeps = {
|
|
33
|
+
loadChromeAttachTarget: typeof loadChromeAttachTarget;
|
|
34
|
+
upsertChromeAttachTarget: typeof upsertChromeAttachTarget;
|
|
35
|
+
findRunningProcessId: (target: ChromeProfileAttachTarget) => Promise<number | undefined>;
|
|
36
|
+
terminateProcess: (processId: number) => Promise<boolean>;
|
|
37
|
+
};
|
|
26
38
|
export declare function launchManagedChrome(input: LaunchManagedChromeInput, deps?: LaunchManagedChromeDeps): Promise<LaunchManagedChromeResult>;
|
|
39
|
+
export declare function closeManagedChrome(input: {
|
|
40
|
+
targetId: string;
|
|
41
|
+
cwd?: string;
|
|
42
|
+
}, deps?: CloseManagedChromeDeps): Promise<CloseManagedChromeResult>;
|
|
43
|
+
export declare function closeManagedChromeIfOwnedTarget(input: {
|
|
44
|
+
target: ChromeAttachTarget;
|
|
45
|
+
cwd?: string;
|
|
46
|
+
}, deps?: CloseManagedChromeDeps): Promise<void>;
|
|
27
47
|
export {};
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { mkdir } from "node:fs/promises";
|
|
2
|
+
import { execFile } from "node:child_process";
|
|
2
3
|
import { spawn } from "node:child_process";
|
|
4
|
+
import { promisify } from "node:util";
|
|
3
5
|
import path from "node:path";
|
|
4
6
|
import { getVaultPaths } from "../vault/paths.js";
|
|
5
7
|
import { loadWorkspace } from "../workspace/load-workspace.js";
|
|
6
8
|
import { slugify } from "../../lib/slugify.js";
|
|
7
|
-
import { loadChromeAttachTarget, registerChromeProfileTarget } from "./manage-targets.js";
|
|
9
|
+
import { loadChromeAttachTarget, registerChromeProfileTarget, upsertChromeAttachTarget } from "./manage-targets.js";
|
|
8
10
|
import { allocateFreePort, resolveChromeExecutablePath, waitForRemoteDebuggingEndpoint } from "../notebooklm/browser-agent.js";
|
|
11
|
+
const execFileAsync = promisify(execFile);
|
|
9
12
|
const defaultDeps = {
|
|
10
13
|
resolveChromeExecutablePath,
|
|
11
14
|
allocateFreePort,
|
|
@@ -17,6 +20,12 @@ const defaultDeps = {
|
|
|
17
20
|
});
|
|
18
21
|
}
|
|
19
22
|
};
|
|
23
|
+
const defaultCloseDeps = {
|
|
24
|
+
loadChromeAttachTarget,
|
|
25
|
+
upsertChromeAttachTarget,
|
|
26
|
+
findRunningProcessId: findManagedChromeProcessId,
|
|
27
|
+
terminateProcess: terminateManagedChromeProcess
|
|
28
|
+
};
|
|
20
29
|
export async function launchManagedChrome(input, deps = defaultDeps) {
|
|
21
30
|
const workspace = await loadWorkspace(input.cwd);
|
|
22
31
|
const vault = getVaultPaths(workspace);
|
|
@@ -50,6 +59,7 @@ export async function launchManagedChrome(input, deps = defaultDeps) {
|
|
|
50
59
|
launchArgs: input.launchArgs ?? reusableTarget.launchArgs,
|
|
51
60
|
description: input.description ?? reusableTarget.description,
|
|
52
61
|
createdAt: reusableTarget.createdAt,
|
|
62
|
+
currentProcessId: reusableTarget.currentProcessId ?? (await findManagedChromeProcessId(reusableTarget)),
|
|
53
63
|
notebooklmReadiness: reusableTarget.notebooklmReadiness,
|
|
54
64
|
notebooklmValidatedAt: reusableTarget.notebooklmValidatedAt,
|
|
55
65
|
force: true
|
|
@@ -88,6 +98,7 @@ export async function launchManagedChrome(input, deps = defaultDeps) {
|
|
|
88
98
|
name,
|
|
89
99
|
profileDirPath,
|
|
90
100
|
executablePath,
|
|
101
|
+
currentProcessId: toChildProcessId(processHandle.pid),
|
|
91
102
|
remoteDebuggingPort,
|
|
92
103
|
launchArgs: input.launchArgs ?? reusableTarget?.launchArgs,
|
|
93
104
|
description: input.description ?? reusableTarget?.description,
|
|
@@ -104,6 +115,32 @@ export async function launchManagedChrome(input, deps = defaultDeps) {
|
|
|
104
115
|
reusedTarget: Boolean(reusableTarget)
|
|
105
116
|
};
|
|
106
117
|
}
|
|
118
|
+
export async function closeManagedChrome(input, deps = defaultCloseDeps) {
|
|
119
|
+
const { target } = await deps.loadChromeAttachTarget(input.targetId, input.cwd);
|
|
120
|
+
if (!isSourceLoopManagedLaunchTarget(target)) {
|
|
121
|
+
throw new Error(`Attach target ${input.targetId} is not a SourceLoop-managed isolated Chrome profile.`);
|
|
122
|
+
}
|
|
123
|
+
const processId = target.currentProcessId ?? (await deps.findRunningProcessId(target));
|
|
124
|
+
const closed = processId ? await deps.terminateProcess(processId) : false;
|
|
125
|
+
await deps.upsertChromeAttachTarget(stripCurrentProcessId(target), {
|
|
126
|
+
force: true,
|
|
127
|
+
...(input.cwd ? { cwd: input.cwd } : {})
|
|
128
|
+
});
|
|
129
|
+
return {
|
|
130
|
+
targetId: target.id,
|
|
131
|
+
closed,
|
|
132
|
+
...(processId ? { processId } : {})
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
export async function closeManagedChromeIfOwnedTarget(input, deps = defaultCloseDeps) {
|
|
136
|
+
if (!isSourceLoopManagedLaunchTarget(input.target)) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
await closeManagedChrome({
|
|
140
|
+
targetId: input.target.id,
|
|
141
|
+
...(input.cwd ? { cwd: input.cwd } : {})
|
|
142
|
+
}, deps);
|
|
143
|
+
}
|
|
107
144
|
function isSourceLoopManagedLaunchTarget(target) {
|
|
108
145
|
return target.targetType === "profile" && target.ownership === "sourceloop_managed" && target.profileIsolation === "isolated";
|
|
109
146
|
}
|
|
@@ -124,6 +161,7 @@ function buildRegisterInput(input) {
|
|
|
124
161
|
ownership: "sourceloop_managed",
|
|
125
162
|
profileIsolation: "isolated",
|
|
126
163
|
chromeExecutablePath: input.executablePath,
|
|
164
|
+
...(input.currentProcessId ? { currentProcessId: input.currentProcessId } : {}),
|
|
127
165
|
remoteDebuggingPort: input.remoteDebuggingPort,
|
|
128
166
|
...(input.launchArgs ? { launchArgs: input.launchArgs } : {}),
|
|
129
167
|
...(input.description ? { description: input.description } : {}),
|
|
@@ -133,4 +171,66 @@ function buildRegisterInput(input) {
|
|
|
133
171
|
force: input.force
|
|
134
172
|
};
|
|
135
173
|
}
|
|
174
|
+
function toChildProcessId(processId) {
|
|
175
|
+
return typeof processId === "number" && Number.isInteger(processId) && processId > 0 ? processId : undefined;
|
|
176
|
+
}
|
|
177
|
+
function stripCurrentProcessId(target) {
|
|
178
|
+
const { currentProcessId: _currentProcessId, ...rest } = target;
|
|
179
|
+
return rest;
|
|
180
|
+
}
|
|
181
|
+
async function findManagedChromeProcessId(target) {
|
|
182
|
+
if (process.platform === "win32") {
|
|
183
|
+
return target.currentProcessId;
|
|
184
|
+
}
|
|
185
|
+
const { stdout } = await execFileAsync("ps", ["-axo", "pid=,command="], {
|
|
186
|
+
encoding: "utf8",
|
|
187
|
+
maxBuffer: 1024 * 1024
|
|
188
|
+
});
|
|
189
|
+
const processArg = `--user-data-dir=${target.profileDirPath}`;
|
|
190
|
+
for (const line of stdout.split("\n")) {
|
|
191
|
+
const trimmed = line.trim();
|
|
192
|
+
if (!trimmed || !trimmed.includes(processArg)) {
|
|
193
|
+
continue;
|
|
194
|
+
}
|
|
195
|
+
const match = trimmed.match(/^(\d+)\s+/);
|
|
196
|
+
if (!match) {
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
199
|
+
return Number(match[1]);
|
|
200
|
+
}
|
|
201
|
+
return undefined;
|
|
202
|
+
}
|
|
203
|
+
async function terminateManagedChromeProcess(processId) {
|
|
204
|
+
if (!isProcessRunning(processId)) {
|
|
205
|
+
return false;
|
|
206
|
+
}
|
|
207
|
+
process.kill(processId, "SIGTERM");
|
|
208
|
+
if (await waitForProcessExit(processId, 5_000)) {
|
|
209
|
+
return true;
|
|
210
|
+
}
|
|
211
|
+
if (!isProcessRunning(processId)) {
|
|
212
|
+
return true;
|
|
213
|
+
}
|
|
214
|
+
process.kill(processId, "SIGKILL");
|
|
215
|
+
return waitForProcessExit(processId, 2_000);
|
|
216
|
+
}
|
|
217
|
+
function isProcessRunning(processId) {
|
|
218
|
+
try {
|
|
219
|
+
process.kill(processId, 0);
|
|
220
|
+
return true;
|
|
221
|
+
}
|
|
222
|
+
catch {
|
|
223
|
+
return false;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
async function waitForProcessExit(processId, timeoutMs) {
|
|
227
|
+
const deadline = Date.now() + timeoutMs;
|
|
228
|
+
while (Date.now() < deadline) {
|
|
229
|
+
if (!isProcessRunning(processId)) {
|
|
230
|
+
return true;
|
|
231
|
+
}
|
|
232
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
233
|
+
}
|
|
234
|
+
return !isProcessRunning(processId);
|
|
235
|
+
}
|
|
136
236
|
//# sourceMappingURL=launch-managed-chrome.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch-managed-chrome.js","sourceRoot":"","sources":["../../../src/core/attach/launch-managed-chrome.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EACL,sBAAsB,EACtB,2BAA2B,
|
|
1
|
+
{"version":3,"file":"launch-managed-chrome.js","sourceRoot":"","sources":["../../../src/core/attach/launch-managed-chrome.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ type RegisterChromeProfileTargetInput = {
|
|
|
8
8
|
notebooklmReadiness?: ChromeNotebooklmReadiness;
|
|
9
9
|
notebooklmValidatedAt?: string;
|
|
10
10
|
chromeExecutablePath?: string;
|
|
11
|
+
currentProcessId?: number;
|
|
11
12
|
remoteDebuggingPort?: number;
|
|
12
13
|
launchArgs?: string[];
|
|
13
14
|
description?: string;
|
|
@@ -21,6 +21,7 @@ export async function registerChromeProfileTarget(input) {
|
|
|
21
21
|
targetType: "profile",
|
|
22
22
|
profileDirPath: path.resolve(input.profileDirPath),
|
|
23
23
|
chromeExecutablePath: input.chromeExecutablePath ? path.resolve(input.chromeExecutablePath) : undefined,
|
|
24
|
+
currentProcessId: input.currentProcessId,
|
|
24
25
|
remoteDebuggingPort: input.remoteDebuggingPort,
|
|
25
26
|
launchArgs: input.launchArgs ?? [],
|
|
26
27
|
createdAt: input.createdAt ?? new Date().toISOString()
|
|
@@ -154,6 +155,9 @@ function appendProfileBody(lines, target) {
|
|
|
154
155
|
if (target.chromeExecutablePath) {
|
|
155
156
|
lines.push(`- Chrome Executable: ${target.chromeExecutablePath}`);
|
|
156
157
|
}
|
|
158
|
+
if (target.currentProcessId) {
|
|
159
|
+
lines.push(`- Current Process Id: ${target.currentProcessId}`);
|
|
160
|
+
}
|
|
157
161
|
if (target.remoteDebuggingPort) {
|
|
158
162
|
lines.push(`- Preferred Remote Debugging Port: ${target.remoteDebuggingPort}`);
|
|
159
163
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manage-targets.js","sourceRoot":"","sources":["../../../src/core/attach/manage-targets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EACL,wBAAwB,EAOzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"manage-targets.js","sourceRoot":"","sources":["../../../src/core/attach/manage-targets.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import type { ChromeAttachTarget } from "../../schemas/attach.js";
|
|
|
2
2
|
import type { NotebookBinding } from "../../schemas/notebook.js";
|
|
3
3
|
import type { PlannedQuestion } from "../../schemas/run.js";
|
|
4
4
|
import type { NotebookRunnerAdapter, NotebookRunnerAnswer } from "./adapter.js";
|
|
5
|
+
import { closeManagedChromeIfOwnedTarget } from "../attach/launch-managed-chrome.js";
|
|
5
6
|
import { type NotebookBrowserSessionFactory } from "./browser-agent.js";
|
|
6
7
|
export declare class BrowserAgentNotebookRunnerAdapter implements NotebookRunnerAdapter {
|
|
7
8
|
private readonly options;
|
|
@@ -10,6 +11,8 @@ export declare class BrowserAgentNotebookRunnerAdapter implements NotebookRunner
|
|
|
10
11
|
constructor(options: {
|
|
11
12
|
attachTarget: ChromeAttachTarget;
|
|
12
13
|
showBrowser?: boolean;
|
|
14
|
+
cwd?: string;
|
|
15
|
+
closeManagedChrome?: typeof closeManagedChromeIfOwnedTarget;
|
|
13
16
|
sessionFactory?: NotebookBrowserSessionFactory;
|
|
14
17
|
});
|
|
15
18
|
prepareRun(binding: NotebookBinding): Promise<{
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { closeManagedChromeIfOwnedTarget } from "../attach/launch-managed-chrome.js";
|
|
1
2
|
import { defaultNotebookBrowserSessionFactory } from "./browser-agent.js";
|
|
2
3
|
export class BrowserAgentNotebookRunnerAdapter {
|
|
3
4
|
options;
|
|
@@ -32,6 +33,11 @@ export class BrowserAgentNotebookRunnerAdapter {
|
|
|
32
33
|
async dispose() {
|
|
33
34
|
await this.session?.close();
|
|
34
35
|
this.session = undefined;
|
|
36
|
+
const closeManagedChrome = this.options.closeManagedChrome ?? closeManagedChromeIfOwnedTarget;
|
|
37
|
+
await closeManagedChrome({
|
|
38
|
+
target: this.options.attachTarget,
|
|
39
|
+
...(this.options.cwd ? { cwd: this.options.cwd } : {})
|
|
40
|
+
}).catch(() => undefined);
|
|
35
41
|
}
|
|
36
42
|
}
|
|
37
43
|
//# sourceMappingURL=browser-agent-adapter.js.map
|
|
@@ -1 +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,
|
|
1
|
+
{"version":3,"file":"browser-agent-adapter.js","sourceRoot":"","sources":["../../../src/core/notebooklm/browser-agent-adapter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,+BAA+B,EAAE,MAAM,oCAAoC,CAAC;AACrF,OAAO,EACL,oCAAoC,EAGrC,MAAM,oBAAoB,CAAC;AAE5B,MAAM,OAAO,iCAAiC;IAKzB;IAJV,IAAI,GAAG,eAAwB,CAAC;IACjC,OAAO,CAAqC;IAEpD,YACmB,OAMhB;QANgB,YAAO,GAAP,OAAO,CAMvB;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;QACzB,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,+BAA+B,CAAC;QAC9F,MAAM,kBAAkB,CACtB;YACE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;YACjC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvD,CACF,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -67,23 +67,25 @@ Use this skill when the current project is a SourceLoop workspace.
|
|
|
67
67
|
|
|
68
68
|
## Core loop
|
|
69
69
|
|
|
70
|
-
1.
|
|
71
|
-
2. Run \`sourceloop
|
|
72
|
-
3.
|
|
73
|
-
4.
|
|
74
|
-
5.
|
|
70
|
+
1. If the workspace is not bootstrapped yet, run \`sourceloop init --ai <codex|claude|gemini>\`
|
|
71
|
+
2. Run \`sourceloop status --json\`
|
|
72
|
+
3. Run \`sourceloop doctor --json\`
|
|
73
|
+
4. Fix blocking prerequisites before planning or running
|
|
74
|
+
5. Prepare the managed browser before notebook creation or execution
|
|
75
|
+
6. Choose the kickoff path:
|
|
75
76
|
- no topic provided
|
|
76
77
|
- topic only
|
|
77
78
|
- topic plus sources
|
|
78
79
|
- existing NotebookLM URL
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
7. Prepare notebook before evidence import or declaration
|
|
81
|
+
8. Require usable evidence before planning
|
|
82
|
+
9. Execution defaults:
|
|
82
83
|
- planning defaults to 10 questions unless the user asked for a different count
|
|
83
84
|
- once a 10-question batch is planned, prefer running the full batch unless the user explicitly asked for a smaller partial pass
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
85
|
+
10. Re-check \`status --json\` after each meaningful step
|
|
86
|
+
11. If a NotebookLM step may take a while, say so briefly before waiting
|
|
87
|
+
12. If a run command already has a chosen \`--limit\`, let that command finish its full requested scope before asking what to do next
|
|
88
|
+
13. While waiting on login, permission, or NotebookLM entry readiness, do not fill the gap with outside summaries, source analysis, or speculative prep work
|
|
87
89
|
|
|
88
90
|
## NotebookLM entry rules
|
|
89
91
|
|
|
@@ -93,6 +95,7 @@ Use this skill when the current project is a SourceLoop workspace.
|
|
|
93
95
|
- create/bind flow is reachable
|
|
94
96
|
- If these checks fail, do not wander through the UI.
|
|
95
97
|
- Stop and ask the user to fix login, permissions, or landing-page state.
|
|
98
|
+
- While blocked on login or NotebookLM entry readiness, do not switch to summarizing sources, collecting web material, or drafting answer content in parallel.
|
|
96
99
|
- If only another Chrome is available, do not silently continue on that path.
|
|
97
100
|
- Ask the user whether to keep going with that Chrome or switch back to the SourceLoop browser first.
|
|
98
101
|
|
|
@@ -127,8 +130,10 @@ Use this skill when the current project is a SourceLoop workspace.
|
|
|
127
130
|
- No topic: \`sourceloop topic create ...\`
|
|
128
131
|
- User asked to start research without a topic: ask which topic to research before doing anything else
|
|
129
132
|
- When asking for the topic, also mention that the default planned question count is 10 and the user can override it
|
|
133
|
+
- Workspace not bootstrapped yet: \`sourceloop init --ai <codex|claude|gemini>\`
|
|
130
134
|
- No trusted isolated Chrome target: \`sourceloop chrome launch\`
|
|
131
135
|
- Treat \`sourceloop chrome launch\` as the visible setup step for login and first NotebookLM checks
|
|
136
|
+
- If a stale SourceLoop-managed browser needs to be cleaned up directly: \`sourceloop chrome close <target>\`
|
|
132
137
|
- Managed isolated Chrome target exists but is not validated yet: \`sourceloop attach validate <target>\`
|
|
133
138
|
- Topic only and no notebook yet: \`sourceloop notebook-create ...\` then ask for source inputs
|
|
134
139
|
- Topic plus sources and no notebook yet: \`sourceloop notebook-create ...\`
|
|
@@ -140,6 +145,7 @@ Use this skill when the current project is a SourceLoop workspace.
|
|
|
140
145
|
- Planned or incomplete run: \`sourceloop run ... --json\`
|
|
141
146
|
- Existing latest answer only: \`sourceloop import-latest ...\`
|
|
142
147
|
- Treat \`--limit\` as the execution scope for one run command. Do not stop halfway through that requested limit just to ask again.
|
|
148
|
+
- After \`run\` or \`import-latest\` finishes generating the requested answer output, the SourceLoop-managed Chrome should be closed.
|
|
143
149
|
|
|
144
150
|
## Safety
|
|
145
151
|
|
|
@@ -149,11 +155,13 @@ Use this skill when the current project is a SourceLoop workspace.
|
|
|
149
155
|
- Do not silently fall back to another Chrome session
|
|
150
156
|
- Ask the user before continuing with a non-SourceLoop browser
|
|
151
157
|
- Do not autonomously search the web or choose source materials unless the user explicitly asked you to find sources
|
|
158
|
+
- Do not do sidecar source analysis or answer drafting while waiting for the user to finish NotebookLM login or other entry blockers
|
|
152
159
|
- Do not run \`plan\` without usable evidence
|
|
153
160
|
- Do not run \`run\` without a notebook binding and planned run
|
|
154
161
|
- Do not use \`--question-id\` and \`--from-question\` together
|
|
155
162
|
- Do not impose a partial run limit by default when the planned batch should be executed end to end
|
|
156
163
|
- Do not turn bounded execution into per-question interruptions unless the user explicitly asked for checkpoint-style approval
|
|
164
|
+
- Do not leave a SourceLoop-managed Chrome running after answer generation finishes unless the user explicitly asked to keep it open
|
|
157
165
|
|
|
158
166
|
For the full operator flow, read [references/playbook.md](references/playbook.md).
|
|
159
167
|
`;
|
|
@@ -163,17 +171,18 @@ function buildCodexPlaybookReference() {
|
|
|
163
171
|
|
|
164
172
|
## Preferred order
|
|
165
173
|
|
|
166
|
-
1. \`sourceloop
|
|
167
|
-
2. \`sourceloop
|
|
168
|
-
3.
|
|
169
|
-
4.
|
|
170
|
-
5.
|
|
171
|
-
6. \`
|
|
172
|
-
7. \`
|
|
173
|
-
8. \`
|
|
174
|
-
9. \`
|
|
175
|
-
10. \`
|
|
176
|
-
11. \`
|
|
174
|
+
1. \`sourceloop init --ai <codex|claude|gemini>\` when the workspace has not been bootstrapped yet
|
|
175
|
+
2. \`sourceloop status --json\`
|
|
176
|
+
3. \`sourceloop doctor --json\`
|
|
177
|
+
4. topic preparation
|
|
178
|
+
5. managed isolated Chrome / NotebookLM session preparation
|
|
179
|
+
6. \`chrome launch\`
|
|
180
|
+
7. \`attach validate\`
|
|
181
|
+
8. \`notebook-create\` or \`notebook-bind\`
|
|
182
|
+
9. \`ingest\`, \`notebook-import\`, or \`notebook-source declare\`
|
|
183
|
+
10. \`status --json\` and \`doctor --json\` again
|
|
184
|
+
11. \`plan --max-questions 10 --json\`
|
|
185
|
+
12. \`run --json\`
|
|
177
186
|
|
|
178
187
|
## Start conditions
|
|
179
188
|
|
|
@@ -192,6 +201,7 @@ The operator should classify the user's first request into one of these:
|
|
|
192
201
|
- create or bind flow is reachable
|
|
193
202
|
- If any of these checks fail, do not explore the UI further.
|
|
194
203
|
- Stop and ask the user to fix login, permissions, or landing-page state.
|
|
204
|
+
- While blocked on login or NotebookLM entry readiness, do not switch to summarizing sources, collecting web material, or drafting answer content in parallel.
|
|
195
205
|
- If only another Chrome is available, do not silently continue on that path.
|
|
196
206
|
- Ask the user whether to keep going with that Chrome or switch back to the SourceLoop browser first.
|
|
197
207
|
|
|
@@ -200,6 +210,7 @@ The operator should classify the user's first request into one of these:
|
|
|
200
210
|
- If doctor has errors, resolve them first.
|
|
201
211
|
- Prefer \`sourceloop chrome launch\` so NotebookLM research uses a SourceLoop-managed isolated profile instead of a shared default browser profile.
|
|
202
212
|
- Use \`chrome launch\` as the visible setup step, then keep later notebook actions hidden unless you need \`--show-browser\` for debugging.
|
|
213
|
+
- Use \`sourceloop chrome close <target>\` when a stale SourceLoop-managed browser should be closed directly.
|
|
203
214
|
- Prefer URL-less \`sourceloop attach validate <target>\` before notebook creation when only NotebookLM home readiness is needed.
|
|
204
215
|
- If the user did not provide a topic, ask for the topic first and mention that planning defaults to 10 questions unless they want another count.
|
|
205
216
|
- If no trusted isolated Chrome target exists, launch browser state before notebook actions.
|
|
@@ -212,6 +223,8 @@ The operator should classify the user's first request into one of these:
|
|
|
212
223
|
- If the user planned 10 questions and did not ask for a partial pass, run the full remaining batch instead of adding a default \`--limit\`.
|
|
213
224
|
- If you already chose a bounded run command such as \`run --limit 1\`, let that command complete before asking whether to continue with another run.
|
|
214
225
|
- Tell the user that NotebookLM actions can take a bit before you wait on them, and if the wait becomes long, ask whether to keep waiting or just report the current state.
|
|
226
|
+
- While blocked on login, permission prompts, or NotebookLM entry readiness, wait on that blocker only instead of doing outside source analysis in parallel.
|
|
227
|
+
- After \`run\` or \`import-latest\` completes and the requested answer output has been generated, the SourceLoop-managed Chrome should be closed automatically unless the user explicitly asked to keep it open.
|
|
215
228
|
`;
|
|
216
229
|
}
|
|
217
230
|
async function bootstrapClaudeWorkspace(rootDir, force) {
|
|
@@ -256,20 +269,21 @@ Use this skill when the current project is a SourceLoop workspace.
|
|
|
256
269
|
|
|
257
270
|
## Core loop
|
|
258
271
|
|
|
259
|
-
1.
|
|
260
|
-
2. Run \`sourceloop
|
|
261
|
-
3.
|
|
262
|
-
4.
|
|
263
|
-
5.
|
|
272
|
+
1. If the workspace is not bootstrapped yet, run \`sourceloop init --ai <codex|claude|gemini>\`
|
|
273
|
+
2. Run \`sourceloop status --json\`
|
|
274
|
+
3. Run \`sourceloop doctor --json\`
|
|
275
|
+
4. Fix blocking prerequisites before planning or running
|
|
276
|
+
5. Prepare the managed browser before notebook creation or execution
|
|
277
|
+
6. Choose the kickoff path:
|
|
264
278
|
- no topic provided
|
|
265
279
|
- topic only
|
|
266
280
|
- topic plus sources
|
|
267
281
|
- existing NotebookLM URL
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
282
|
+
7. Prepare notebook before evidence import or declaration
|
|
283
|
+
8. Require usable evidence before planning
|
|
284
|
+
9. Planning defaults to 10 questions unless the user asked for another count
|
|
285
|
+
10. Once a 10-question batch is planned, prefer running the full batch unless the user explicitly asked for a smaller partial pass
|
|
286
|
+
11. Re-check \`sourceloop status --json\` after each meaningful step
|
|
273
287
|
|
|
274
288
|
## NotebookLM entry rules
|
|
275
289
|
|
|
@@ -279,12 +293,15 @@ Use this skill when the current project is a SourceLoop workspace.
|
|
|
279
293
|
- create or bind flow is reachable
|
|
280
294
|
- If these checks fail, do not wander through the UI.
|
|
281
295
|
- Stop and ask the user to fix login, permissions, or landing-page state.
|
|
296
|
+
- While blocked on login or NotebookLM entry readiness, do not switch to summarizing sources, collecting web material, or drafting answer content in parallel.
|
|
282
297
|
- If only another Chrome is available, do not silently continue on that path.
|
|
283
298
|
- Ask the user whether to keep going with that Chrome or switch back to the SourceLoop browser first.
|
|
284
299
|
|
|
285
300
|
## Command selection
|
|
286
301
|
|
|
302
|
+
- Workspace not bootstrapped yet: \`sourceloop init --ai <codex|claude|gemini>\`
|
|
287
303
|
- No trusted isolated Chrome target: \`sourceloop chrome launch\`
|
|
304
|
+
- If a stale SourceLoop-managed browser needs to be cleaned up directly: \`sourceloop chrome close <target>\`
|
|
288
305
|
- Managed isolated Chrome target exists but is not validated yet: \`sourceloop attach validate <target>\`
|
|
289
306
|
- Topic only and no notebook yet: \`sourceloop notebook-create ...\`, then ask which sources to import
|
|
290
307
|
- Topic plus sources and no notebook yet: \`sourceloop notebook-create ...\`, then import the provided files or URLs
|
|
@@ -294,6 +311,7 @@ Use this skill when the current project is a SourceLoop workspace.
|
|
|
294
311
|
- Ready topic with no run: \`sourceloop plan ... --max-questions 10 --json\`
|
|
295
312
|
- Planned or incomplete run: \`sourceloop run ... --json\`
|
|
296
313
|
- Existing latest answer only: \`sourceloop import-latest ...\`
|
|
314
|
+
- After \`run\` or \`import-latest\` finishes generating the requested answer output, the SourceLoop-managed Chrome should be closed.
|
|
297
315
|
|
|
298
316
|
## Safety
|
|
299
317
|
|
|
@@ -302,10 +320,12 @@ Use this skill when the current project is a SourceLoop workspace.
|
|
|
302
320
|
- Treat shared or unknown Chrome profile isolation as a warning that should be surfaced before more NotebookLM work
|
|
303
321
|
- Do not silently fall back to another Chrome session
|
|
304
322
|
- Do not autonomously search the web or choose source materials unless the user explicitly asked you to find sources
|
|
323
|
+
- Do not do sidecar source analysis or answer drafting while waiting for the user to finish NotebookLM login or other entry blockers
|
|
305
324
|
- Do not run \`plan\` without usable evidence
|
|
306
325
|
- Do not run \`run\` without a notebook binding and planned run
|
|
307
326
|
- Do not use \`--question-id\` and \`--from-question\` together
|
|
308
327
|
- Do not impose a partial run limit by default when the planned batch should be executed end to end
|
|
328
|
+
- Do not leave a SourceLoop-managed Chrome running after answer generation finishes unless the user explicitly asked to keep it open
|
|
309
329
|
|
|
310
330
|
For the full operator flow, read [references/playbook.md](references/playbook.md).
|
|
311
331
|
`;
|
|
@@ -320,20 +340,21 @@ Use this skill when the current project is a SourceLoop workspace.
|
|
|
320
340
|
|
|
321
341
|
## Core loop
|
|
322
342
|
|
|
323
|
-
1.
|
|
324
|
-
2. Run \`sourceloop
|
|
325
|
-
3.
|
|
326
|
-
4.
|
|
327
|
-
5.
|
|
343
|
+
1. If the workspace is not bootstrapped yet, run \`sourceloop init --ai <codex|claude|gemini>\`
|
|
344
|
+
2. Run \`sourceloop status --json\`
|
|
345
|
+
3. Run \`sourceloop doctor --json\`
|
|
346
|
+
4. Fix blocking prerequisites before planning or running
|
|
347
|
+
5. Prepare the managed browser before notebook creation or execution
|
|
348
|
+
6. Choose the kickoff path:
|
|
328
349
|
- no topic provided
|
|
329
350
|
- topic only
|
|
330
351
|
- topic plus sources
|
|
331
352
|
- existing NotebookLM URL
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
353
|
+
7. Prepare notebook before evidence import or declaration
|
|
354
|
+
8. Require usable evidence before planning
|
|
355
|
+
9. Planning defaults to 10 questions unless the user asked for another count
|
|
356
|
+
10. Once a 10-question batch is planned, prefer running the full batch unless the user explicitly asked for a smaller partial pass
|
|
357
|
+
11. Re-check \`sourceloop status --json\` after each meaningful step
|
|
337
358
|
|
|
338
359
|
## NotebookLM entry rules
|
|
339
360
|
|
|
@@ -343,12 +364,15 @@ Use this skill when the current project is a SourceLoop workspace.
|
|
|
343
364
|
- create or bind flow is reachable
|
|
344
365
|
- If these checks fail, do not wander through the UI.
|
|
345
366
|
- Stop and ask the user to fix login, permissions, or landing-page state.
|
|
367
|
+
- While blocked on login or NotebookLM entry readiness, do not switch to summarizing sources, collecting web material, or drafting answer content in parallel.
|
|
346
368
|
- If only another Chrome is available, do not silently continue on that path.
|
|
347
369
|
- Ask the user whether to keep going with that Chrome or switch back to the SourceLoop browser first.
|
|
348
370
|
|
|
349
371
|
## Command selection
|
|
350
372
|
|
|
373
|
+
- Workspace not bootstrapped yet: \`sourceloop init --ai <codex|claude|gemini>\`
|
|
351
374
|
- No trusted isolated Chrome target: \`sourceloop chrome launch\`
|
|
375
|
+
- If a stale SourceLoop-managed browser needs to be cleaned up directly: \`sourceloop chrome close <target>\`
|
|
352
376
|
- Managed isolated Chrome target exists but is not validated yet: \`sourceloop attach validate <target>\`
|
|
353
377
|
- Topic only and no notebook yet: \`sourceloop notebook-create ...\`, then ask which sources to import
|
|
354
378
|
- Topic plus sources and no notebook yet: \`sourceloop notebook-create ...\`, then import the provided files or URLs
|
|
@@ -358,6 +382,7 @@ Use this skill when the current project is a SourceLoop workspace.
|
|
|
358
382
|
- Ready topic with no run: \`sourceloop plan ... --max-questions 10 --json\`
|
|
359
383
|
- Planned or incomplete run: \`sourceloop run ... --json\`
|
|
360
384
|
- Existing latest answer only: \`sourceloop import-latest ...\`
|
|
385
|
+
- After \`run\` or \`import-latest\` finishes generating the requested answer output, the SourceLoop-managed Chrome should be closed.
|
|
361
386
|
|
|
362
387
|
## Safety
|
|
363
388
|
|
|
@@ -366,10 +391,12 @@ Use this skill when the current project is a SourceLoop workspace.
|
|
|
366
391
|
- Treat shared or unknown Chrome profile isolation as a warning that should be surfaced before more NotebookLM work
|
|
367
392
|
- Do not silently fall back to another Chrome session
|
|
368
393
|
- Do not autonomously search the web or choose source materials unless the user explicitly asked you to find sources
|
|
394
|
+
- Do not do sidecar source analysis or answer drafting while waiting for the user to finish NotebookLM login or other entry blockers
|
|
369
395
|
- Do not run \`plan\` without usable evidence
|
|
370
396
|
- Do not run \`run\` without a notebook binding and planned run
|
|
371
397
|
- Do not use \`--question-id\` and \`--from-question\` together
|
|
372
398
|
- Do not impose a partial run limit by default when the planned batch should be executed end to end
|
|
399
|
+
- Do not leave a SourceLoop-managed Chrome running after answer generation finishes unless the user explicitly asked to keep it open
|
|
373
400
|
|
|
374
401
|
For the full operator flow, read [references/playbook.md](references/playbook.md).
|
|
375
402
|
`;
|
|
@@ -379,32 +406,36 @@ function buildSharedPlaybookReference() {
|
|
|
379
406
|
|
|
380
407
|
## Preferred order
|
|
381
408
|
|
|
382
|
-
1. \`sourceloop
|
|
383
|
-
2. \`sourceloop
|
|
384
|
-
3.
|
|
385
|
-
4.
|
|
386
|
-
5.
|
|
387
|
-
6. \`
|
|
388
|
-
7. \`
|
|
389
|
-
8. \`
|
|
390
|
-
9. \`
|
|
391
|
-
10. \`
|
|
392
|
-
11. \`
|
|
409
|
+
1. \`sourceloop init --ai <codex|claude|gemini>\` when the workspace has not been bootstrapped yet
|
|
410
|
+
2. \`sourceloop status --json\`
|
|
411
|
+
3. \`sourceloop doctor --json\`
|
|
412
|
+
4. topic preparation
|
|
413
|
+
5. managed isolated Chrome / NotebookLM session preparation
|
|
414
|
+
6. \`chrome launch\`
|
|
415
|
+
7. \`attach validate\`
|
|
416
|
+
8. \`notebook-create\` or \`notebook-bind\`
|
|
417
|
+
9. \`ingest\`, \`notebook-import\`, or \`notebook-source declare\`
|
|
418
|
+
10. \`status --json\` and \`doctor --json\` again
|
|
419
|
+
11. \`plan --max-questions 10 --json\`
|
|
420
|
+
12. \`run --json\`
|
|
393
421
|
|
|
394
422
|
## Decision rules
|
|
395
423
|
|
|
396
424
|
- If doctor has errors, resolve them first.
|
|
397
425
|
- Prefer \`sourceloop chrome launch\` so NotebookLM research uses a SourceLoop-managed isolated profile instead of a shared default browser profile.
|
|
426
|
+
- Use \`sourceloop chrome close <target>\` when a stale SourceLoop-managed browser should be closed directly.
|
|
398
427
|
- Prefer URL-less \`sourceloop attach validate <target>\` before notebook creation when only NotebookLM home readiness is needed.
|
|
399
428
|
- If the user did not provide a topic, ask for the topic first and mention that planning defaults to 10 questions unless they want another count.
|
|
400
429
|
- If no trusted isolated Chrome target exists, launch browser state before notebook actions.
|
|
401
430
|
- If only another Chrome is available, ask the user whether to keep going with that Chrome before using it.
|
|
431
|
+
- If NotebookLM login or entry readiness is blocking the workflow, do not spend that waiting time producing outside source summaries or speculative answer drafts.
|
|
402
432
|
- If the user provided only a topic, confirm the question count, create a managed notebook, and ask which sources to import.
|
|
403
433
|
- If the user did not provide sources, do not search for or choose source materials unless the user explicitly asked you to find sources.
|
|
404
434
|
- If the user provided topic plus sources, create a managed notebook and import those sources.
|
|
405
435
|
- If the user provided a NotebookLM URL, bind the existing notebook and continue from its source state.
|
|
406
436
|
- If a run already exists, resume it before creating a new pass.
|
|
407
437
|
- If the user planned 10 questions and did not ask for a partial pass, run the full remaining batch instead of adding a default \`--limit\`.
|
|
438
|
+
- After \`run\` or \`import-latest\` completes and the requested answer output has been generated, the SourceLoop-managed Chrome should be closed automatically unless the user explicitly asked to keep it open.
|
|
408
439
|
`;
|
|
409
440
|
}
|
|
410
441
|
function getBootstrapPaths(rootDir, ai) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/core/workspace/bootstrap.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/core/workspace/bootstrap.ts"],"names":[],"mappings":"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"}
|
package/dist/schemas/attach.d.ts
CHANGED
|
@@ -36,6 +36,7 @@ export declare const chromeProfileAttachTargetSchema: z.ZodObject<{
|
|
|
36
36
|
}>>;
|
|
37
37
|
profileDirPath: z.ZodString;
|
|
38
38
|
chromeExecutablePath: z.ZodOptional<z.ZodString>;
|
|
39
|
+
currentProcessId: z.ZodOptional<z.ZodNumber>;
|
|
39
40
|
launchArgs: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
40
41
|
remoteDebuggingPort: z.ZodOptional<z.ZodNumber>;
|
|
41
42
|
}, z.core.$strip>;
|
|
@@ -85,6 +86,7 @@ export declare const chromeAttachTargetSchema: z.ZodDiscriminatedUnion<[z.ZodObj
|
|
|
85
86
|
}>>;
|
|
86
87
|
profileDirPath: z.ZodString;
|
|
87
88
|
chromeExecutablePath: z.ZodOptional<z.ZodString>;
|
|
89
|
+
currentProcessId: z.ZodOptional<z.ZodNumber>;
|
|
88
90
|
launchArgs: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
89
91
|
remoteDebuggingPort: z.ZodOptional<z.ZodNumber>;
|
|
90
92
|
}, z.core.$strip>, z.ZodObject<{
|
package/dist/schemas/attach.js
CHANGED
|
@@ -18,6 +18,7 @@ export const chromeProfileAttachTargetSchema = attachTargetBaseSchema.extend({
|
|
|
18
18
|
ownership: chromeAttachOwnershipSchema.exclude(["external"]).default("user_managed"),
|
|
19
19
|
profileDirPath: z.string().min(1),
|
|
20
20
|
chromeExecutablePath: z.string().min(1).optional(),
|
|
21
|
+
currentProcessId: z.number().int().positive().optional(),
|
|
21
22
|
launchArgs: z.array(z.string()).default([]),
|
|
22
23
|
remoteDebuggingPort: z.number().int().positive().optional()
|
|
23
24
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attach.js","sourceRoot":"","sources":["../../src/schemas/attach.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;AACtF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,oBAAoB,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;AACtG,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;AAEhF,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACzC,gBAAgB,EAAE,4BAA4B,CAAC,OAAO,CAAC,SAAS,CAAC;IACjE,SAAS,EAAE,2BAA2B,CAAC,OAAO,CAAC,UAAU,CAAC;IAC1D,mBAAmB,EAAE,+BAA+B,CAAC,OAAO,CAAC,SAAS,CAAC;IACvE,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACvD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,+BAA+B,GAAG,sBAAsB,CAAC,MAAM,CAAC;IAC3E,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAChC,SAAS,EAAE,2BAA2B,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;IACpF,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClD,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3C,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC5D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gCAAgC,GAAG,sBAAsB,CAAC,MAAM,CAAC;IAC5E,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,2BAA2B,CAAC;IAClD,SAAS,EAAE,2BAA2B,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAC1F,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;CAC3B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,kBAAkB,CAAC,YAAY,EAAE;IACzE,+BAA+B;IAC/B,gCAAgC;CACjC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"attach.js","sourceRoot":"","sources":["../../src/schemas/attach.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;AACtF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,oBAAoB,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;AACtG,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;AAEhF,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACzC,gBAAgB,EAAE,4BAA4B,CAAC,OAAO,CAAC,SAAS,CAAC;IACjE,SAAS,EAAE,2BAA2B,CAAC,OAAO,CAAC,UAAU,CAAC;IAC1D,mBAAmB,EAAE,+BAA+B,CAAC,OAAO,CAAC,SAAS,CAAC;IACvE,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACvD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,+BAA+B,GAAG,sBAAsB,CAAC,MAAM,CAAC;IAC3E,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAChC,SAAS,EAAE,2BAA2B,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;IACpF,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACjC,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClD,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACxD,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3C,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC5D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gCAAgC,GAAG,sBAAsB,CAAC,MAAM,CAAC;IAC5E,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,2BAA2B,CAAC;IAClD,SAAS,EAAE,2BAA2B,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAC1F,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;CAC3B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,kBAAkB,CAAC,YAAY,EAAE;IACzE,+BAA+B;IAC/B,gCAAgC;CACjC,CAAC,CAAC"}
|