This commit is contained in:
Oleg Maslov
2026-09-02 10:14:22 +02:00
parent 0c3e2ead3b
commit b20b138fe4
771 changed files with 161561 additions and 9027 deletions

View File

@@ -1,5 +1,10 @@
# @waggle/hive-mind-hooks-cursor
> **Roadmap-only in the current Waggle Windows Solo release.** This package is
> retained for development and future qualification. The production manifest
> does not expose Cursor launch, hook installation, Fleet/task dispatch, or
> direct agent runs. The implementation notes below do not override that gate.
Silent-capture shim that wires **Cursor** lifecycle hooks into
[hive-mind](https://github.com/marolinik/hive-mind) frames. Every Cursor
session deterministically captures sessionStart / beforeSubmitPrompt / stop /

View File

@@ -10,6 +10,7 @@
*/
import {
isDirectExecution,
makePreCompactHandler,
runHook,
type HookRunOptions,
@@ -24,15 +25,6 @@ export async function runPreCompact(opts: Partial<HookRunOptions> = {}): Promise
});
}
const isMain = (() => {
try {
if (typeof process.argv[1] !== 'string') return false;
const url = new URL(`file://${process.argv[1].replace(/\\/g, '/')}`);
return url.href === import.meta.url;
} catch {
return false;
}
})();
if (isMain) {
if (isDirectExecution(import.meta.url)) {
void runPreCompact();
}

View File

@@ -11,6 +11,7 @@
*/
import {
isDirectExecution,
makeSessionStartHandler,
runHook,
type HookRunOptions,
@@ -25,15 +26,6 @@ export async function runSessionStart(opts: Partial<HookRunOptions> = {}): Promi
});
}
const isMain = (() => {
try {
if (typeof process.argv[1] !== 'string') return false;
const url = new URL(`file://${process.argv[1].replace(/\\/g, '/')}`);
return url.href === import.meta.url;
} catch {
return false;
}
})();
if (isMain) {
if (isDirectExecution(import.meta.url)) {
void runSessionStart();
}

View File

@@ -12,6 +12,7 @@
*/
import {
isDirectExecution,
makeStopHandler,
runHook,
type HookRunOptions,
@@ -26,15 +27,6 @@ export async function runStop(opts: Partial<HookRunOptions> = {}): Promise<void>
});
}
const isMain = (() => {
try {
if (typeof process.argv[1] !== 'string') return false;
const url = new URL(`file://${process.argv[1].replace(/\\/g, '/')}`);
return url.href === import.meta.url;
} catch {
return false;
}
})();
if (isMain) {
if (isDirectExecution(import.meta.url)) {
void runStop();
}

View File

@@ -11,6 +11,7 @@
*/
import {
isDirectExecution,
makeUserPromptSubmitHandler,
runHook,
type HookRunOptions,
@@ -25,15 +26,6 @@ export async function runUserPromptSubmit(opts: Partial<HookRunOptions> = {}): P
});
}
const isMain = (() => {
try {
if (typeof process.argv[1] !== 'string') return false;
const url = new URL(`file://${process.argv[1].replace(/\\/g, '/')}`);
return url.href === import.meta.url;
} catch {
return false;
}
})();
if (isMain) {
if (isDirectExecution(import.meta.url)) {
void runUserPromptSubmit();
}