@signetai/connector-gemini 0.227.1 → 0.228.0
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/index.js +466 -190
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
// src/index.ts
|
|
2
2
|
import {
|
|
3
3
|
existsSync as existsSync2,
|
|
4
|
-
lstatSync
|
|
4
|
+
lstatSync,
|
|
5
5
|
mkdirSync,
|
|
6
6
|
readFileSync as readFileSync2,
|
|
7
7
|
readdirSync,
|
|
8
8
|
readlinkSync,
|
|
9
|
-
rmSync
|
|
9
|
+
rmSync,
|
|
10
10
|
unlinkSync as unlinkSync3,
|
|
11
11
|
writeFileSync as writeFileSync2
|
|
12
12
|
} from "node:fs";
|
|
13
13
|
import { homedir as homedir3 } from "node:os";
|
|
14
|
-
import { dirname as
|
|
14
|
+
import { dirname as dirname9, join as join6, resolve as resolve5 } from "node:path";
|
|
15
15
|
|
|
16
16
|
// ../../../libs/connector-base/dist/index.js
|
|
17
17
|
import { randomBytes } from "node:crypto";
|
|
@@ -19,7 +19,7 @@ import { existsSync, readFileSync, realpathSync, renameSync, statSync, unlinkSyn
|
|
|
19
19
|
import { homedir } from "node:os";
|
|
20
20
|
import { dirname as dirname2, isAbsolute, join as join3, relative, sep } from "node:path";
|
|
21
21
|
import { createRequire } from "node:module";
|
|
22
|
-
import { dirname, join } from "node:path";
|
|
22
|
+
import { dirname, join, resolve } from "node:path";
|
|
23
23
|
import { fileURLToPath } from "node:url";
|
|
24
24
|
import {
|
|
25
25
|
execFile as nodeExecFile,
|
|
@@ -31,29 +31,30 @@ import {
|
|
|
31
31
|
import { promisify } from "node:util";
|
|
32
32
|
import { createHash } from "node:crypto";
|
|
33
33
|
import { homedir as homedir2 } from "node:os";
|
|
34
|
-
import { join as join2, resolve } from "node:path";
|
|
34
|
+
import { join as join2, resolve as resolve2 } from "node:path";
|
|
35
|
+
import { constants as fsConstants } from "node:fs";
|
|
35
36
|
import {
|
|
36
|
-
closeSync as
|
|
37
|
-
existsSync as
|
|
37
|
+
closeSync as closeSync3,
|
|
38
|
+
existsSync as existsSync12,
|
|
38
39
|
fsyncSync as fsyncSync2,
|
|
39
|
-
mkdirSync as
|
|
40
|
-
openSync as
|
|
41
|
-
readFileSync as
|
|
42
|
-
renameSync as
|
|
43
|
-
rmSync,
|
|
44
|
-
statSync as
|
|
40
|
+
mkdirSync as mkdirSync6,
|
|
41
|
+
openSync as openSync3,
|
|
42
|
+
readFileSync as readFileSync9,
|
|
43
|
+
renameSync as renameSync3,
|
|
44
|
+
rmSync as rmSync3,
|
|
45
|
+
statSync as statSync5,
|
|
45
46
|
writeSync
|
|
46
47
|
} from "node:fs";
|
|
47
48
|
import { homedir as homedir4 } from "node:os";
|
|
48
|
-
import { dirname as
|
|
49
|
+
import { dirname as dirname5, join as join13, resolve as resolve7 } from "node:path";
|
|
49
50
|
import { createRequire as createRequire2 } from "node:module";
|
|
50
51
|
import { homedir as homedir5 } from "node:os";
|
|
51
|
-
import { dirname as
|
|
52
|
+
import { dirname as dirname6, join as join14, resolve as resolve8 } from "node:path";
|
|
52
53
|
import { homedir as homedir6, platform as platform2 } from "node:os";
|
|
53
|
-
import { basename, dirname as
|
|
54
|
+
import { basename, dirname as dirname7, resolve as resolve9 } from "node:path";
|
|
54
55
|
import { homedir as homedir8 } from "node:os";
|
|
55
|
-
import { existsSync as
|
|
56
|
-
import { join as
|
|
56
|
+
import { existsSync as existsSync18, lstatSync as lstatSync3, mkdirSync as mkdirSync10, readdirSync as readdirSync9, symlinkSync as symlinkSync2, unlinkSync as unlinkSync2 } from "node:fs";
|
|
57
|
+
import { join as join18 } from "node:path";
|
|
57
58
|
var __create2 = Object.create;
|
|
58
59
|
var __getProtoOf2 = Object.getPrototypeOf;
|
|
59
60
|
var __defProp2 = Object.defineProperty;
|
|
@@ -15920,6 +15921,102 @@ function up159(db) {
|
|
|
15920
15921
|
ON memories(agent_id, memory_kind);
|
|
15921
15922
|
`);
|
|
15922
15923
|
}
|
|
15924
|
+
var ledgerColumns = [
|
|
15925
|
+
"key",
|
|
15926
|
+
"agent_id",
|
|
15927
|
+
"workspace_id",
|
|
15928
|
+
"file_name",
|
|
15929
|
+
"status",
|
|
15930
|
+
"original_path",
|
|
15931
|
+
"sha256",
|
|
15932
|
+
"size_bytes",
|
|
15933
|
+
"request_fingerprint",
|
|
15934
|
+
"source_id",
|
|
15935
|
+
"lease_token",
|
|
15936
|
+
"lease_expires_at",
|
|
15937
|
+
"attempt_count",
|
|
15938
|
+
"error",
|
|
15939
|
+
"created_at",
|
|
15940
|
+
"updated_at"
|
|
15941
|
+
];
|
|
15942
|
+
function columns(db, table) {
|
|
15943
|
+
return new Set(db.prepare(`PRAGMA table_info(${table})`).all().map((row) => String(row.name)));
|
|
15944
|
+
}
|
|
15945
|
+
function addMissingColumns(db, table, definitions) {
|
|
15946
|
+
const present = columns(db, table);
|
|
15947
|
+
for (const definition of definitions) {
|
|
15948
|
+
const name = definition.split(" ", 1)[0];
|
|
15949
|
+
if (!present.has(name))
|
|
15950
|
+
db.exec(`ALTER TABLE ${table} ADD COLUMN ${definition}`);
|
|
15951
|
+
}
|
|
15952
|
+
}
|
|
15953
|
+
function rebuildLedgerWithoutGlobalKeyPrimaryKey(db) {
|
|
15954
|
+
const keyInfo = db.prepare("PRAGMA table_info(import_admission_ledger)").all().find((row) => row.name === "key");
|
|
15955
|
+
if (!keyInfo || Number(keyInfo.pk) === 0)
|
|
15956
|
+
return;
|
|
15957
|
+
const savepoint = "migration_158_rebuild_ledger";
|
|
15958
|
+
db.exec(`SAVEPOINT ${savepoint}`);
|
|
15959
|
+
try {
|
|
15960
|
+
db.exec(`
|
|
15961
|
+
CREATE TABLE import_admission_ledger_v158 (
|
|
15962
|
+
key TEXT NOT NULL, agent_id TEXT NOT NULL DEFAULT '', workspace_id TEXT NOT NULL DEFAULT '',
|
|
15963
|
+
file_name TEXT NOT NULL, status TEXT NOT NULL CHECK (status IN ('pending','processing','imported','duplicate','failed','quarantined','original_unavailable')),
|
|
15964
|
+
original_path TEXT NOT NULL, sha256 TEXT NOT NULL, size_bytes INTEGER NOT NULL,
|
|
15965
|
+
request_fingerprint TEXT NOT NULL DEFAULT '', source_id TEXT, lease_token TEXT, lease_expires_at TEXT,
|
|
15966
|
+
attempt_count INTEGER NOT NULL DEFAULT 0, error TEXT, created_at TEXT NOT NULL, updated_at TEXT NOT NULL
|
|
15967
|
+
);
|
|
15968
|
+
INSERT INTO import_admission_ledger_v158 (${ledgerColumns.join(",")})
|
|
15969
|
+
SELECT ${ledgerColumns.join(",")} FROM import_admission_ledger;
|
|
15970
|
+
DROP TABLE import_admission_ledger;
|
|
15971
|
+
ALTER TABLE import_admission_ledger_v158 RENAME TO import_admission_ledger;
|
|
15972
|
+
`);
|
|
15973
|
+
db.exec(`RELEASE ${savepoint}`);
|
|
15974
|
+
} catch (error) {
|
|
15975
|
+
try {
|
|
15976
|
+
db.exec(`ROLLBACK TO SAVEPOINT ${savepoint}`);
|
|
15977
|
+
} finally {
|
|
15978
|
+
try {
|
|
15979
|
+
db.exec(`RELEASE ${savepoint}`);
|
|
15980
|
+
} catch {}
|
|
15981
|
+
}
|
|
15982
|
+
throw error;
|
|
15983
|
+
}
|
|
15984
|
+
}
|
|
15985
|
+
function up160(db) {
|
|
15986
|
+
db.exec(`
|
|
15987
|
+
CREATE TABLE IF NOT EXISTS import_admission_ledger (
|
|
15988
|
+
key TEXT NOT NULL, agent_id TEXT NOT NULL, workspace_id TEXT NOT NULL DEFAULT '', file_name TEXT NOT NULL,
|
|
15989
|
+
status TEXT NOT NULL CHECK (status IN ('pending','processing','imported','duplicate','failed','quarantined','original_unavailable')),
|
|
15990
|
+
original_path TEXT NOT NULL, sha256 TEXT NOT NULL, size_bytes INTEGER NOT NULL,
|
|
15991
|
+
request_fingerprint TEXT NOT NULL DEFAULT '', source_id TEXT, lease_token TEXT, lease_expires_at TEXT,
|
|
15992
|
+
attempt_count INTEGER NOT NULL DEFAULT 0, error TEXT, created_at TEXT NOT NULL, updated_at TEXT NOT NULL
|
|
15993
|
+
);
|
|
15994
|
+
CREATE TABLE IF NOT EXISTS import_admission_events (
|
|
15995
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT, admission_key TEXT NOT NULL, agent_id TEXT NOT NULL DEFAULT '',
|
|
15996
|
+
workspace_id TEXT NOT NULL DEFAULT '', event TEXT NOT NULL, created_at TEXT NOT NULL
|
|
15997
|
+
);
|
|
15998
|
+
`);
|
|
15999
|
+
addMissingColumns(db, "import_admission_ledger", [
|
|
16000
|
+
"agent_id TEXT NOT NULL DEFAULT ''",
|
|
16001
|
+
"workspace_id TEXT NOT NULL DEFAULT ''",
|
|
16002
|
+
"request_fingerprint TEXT NOT NULL DEFAULT ''",
|
|
16003
|
+
"source_id TEXT",
|
|
16004
|
+
"lease_token TEXT",
|
|
16005
|
+
"lease_expires_at TEXT",
|
|
16006
|
+
"attempt_count INTEGER NOT NULL DEFAULT 0",
|
|
16007
|
+
"error TEXT"
|
|
16008
|
+
]);
|
|
16009
|
+
addMissingColumns(db, "import_admission_events", [
|
|
16010
|
+
"agent_id TEXT NOT NULL DEFAULT ''",
|
|
16011
|
+
"workspace_id TEXT NOT NULL DEFAULT ''"
|
|
16012
|
+
]);
|
|
16013
|
+
rebuildLedgerWithoutGlobalKeyPrimaryKey(db);
|
|
16014
|
+
db.exec(`
|
|
16015
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_import_admission_scope_key ON import_admission_ledger(key, agent_id, workspace_id);
|
|
16016
|
+
CREATE INDEX IF NOT EXISTS idx_import_admission_status ON import_admission_ledger(agent_id, workspace_id, status, updated_at);
|
|
16017
|
+
CREATE INDEX IF NOT EXISTS idx_import_admission_events_key ON import_admission_events(admission_key, agent_id, workspace_id, id);
|
|
16018
|
+
`);
|
|
16019
|
+
}
|
|
15923
16020
|
var MIGRATIONS = [
|
|
15924
16021
|
{
|
|
15925
16022
|
version: 1,
|
|
@@ -17208,6 +17305,18 @@ var MIGRATIONS = [
|
|
|
17208
17305
|
version: 159,
|
|
17209
17306
|
name: "retire-obsolete-invocation-ledger",
|
|
17210
17307
|
up: up5
|
|
17308
|
+
},
|
|
17309
|
+
{
|
|
17310
|
+
version: 160,
|
|
17311
|
+
name: "import-admission-ledger",
|
|
17312
|
+
up: up160,
|
|
17313
|
+
artifacts: {
|
|
17314
|
+
tables: ["import_admission_ledger", "import_admission_events"],
|
|
17315
|
+
indexes: ["idx_import_admission_status", "idx_import_admission_events_key"],
|
|
17316
|
+
columns: [
|
|
17317
|
+
...["workspace_id", "request_fingerprint", "source_id", "lease_token", "lease_expires_at", "attempt_count"].map((column) => ({ table: "import_admission_ledger", column }))
|
|
17318
|
+
]
|
|
17319
|
+
}
|
|
17211
17320
|
}
|
|
17212
17321
|
];
|
|
17213
17322
|
var LATEST_SCHEMA_VERSION = MIGRATIONS[MIGRATIONS.length - 1]?.version ?? 0;
|
|
@@ -17222,6 +17331,98 @@ function expandHome(p2, home = homedir2()) {
|
|
|
17222
17331
|
return join2(home, p2.slice(2));
|
|
17223
17332
|
return p2;
|
|
17224
17333
|
}
|
|
17334
|
+
var SIGNET_SOURCE_CHECKOUT_DIRNAME = "signetai";
|
|
17335
|
+
var SIGNET_GIT_ALLOWED_DIRECTORIES = ["skills", "tools", "dreaming"];
|
|
17336
|
+
var SIGNET_GIT_PROTECTED_PATHS = [
|
|
17337
|
+
".daemon",
|
|
17338
|
+
".secrets",
|
|
17339
|
+
".shadow",
|
|
17340
|
+
"cache",
|
|
17341
|
+
"data",
|
|
17342
|
+
"files",
|
|
17343
|
+
"runtime",
|
|
17344
|
+
"workspace-layout.json",
|
|
17345
|
+
"node_modules",
|
|
17346
|
+
":(glob)**/node_modules/**",
|
|
17347
|
+
`${SIGNET_SOURCE_CHECKOUT_DIRNAME}`,
|
|
17348
|
+
"memory/backups",
|
|
17349
|
+
"memory/memories.db",
|
|
17350
|
+
":(glob)memory/memories.db*",
|
|
17351
|
+
":(glob)memory/**/*.db",
|
|
17352
|
+
":(glob)memory/**/*.db-*",
|
|
17353
|
+
":(glob)memory/**/*.db-journal",
|
|
17354
|
+
":(glob)memory/**/*.db-shm",
|
|
17355
|
+
":(glob)memory/**/*.db-wal",
|
|
17356
|
+
":(glob)memory/**/*.sqlite",
|
|
17357
|
+
":(glob)memory/**/*.sqlite3",
|
|
17358
|
+
":(glob)**/*.db",
|
|
17359
|
+
":(glob)**/*.db-*",
|
|
17360
|
+
":(glob)**/*.db-journal",
|
|
17361
|
+
":(glob)**/*.db-shm",
|
|
17362
|
+
":(glob)**/*.db-wal",
|
|
17363
|
+
":(glob)**/*.sqlite",
|
|
17364
|
+
":(glob)**/*.sqlite3"
|
|
17365
|
+
];
|
|
17366
|
+
var SIGNET_GIT_TRACKED_PATHS = [
|
|
17367
|
+
"*.md",
|
|
17368
|
+
":(glob)**/*.md",
|
|
17369
|
+
"*.json",
|
|
17370
|
+
":(glob)**/*.json",
|
|
17371
|
+
"*.jsonl",
|
|
17372
|
+
":(glob)**/*.jsonl",
|
|
17373
|
+
"*.html",
|
|
17374
|
+
":(glob)**/*.html",
|
|
17375
|
+
"*.yaml",
|
|
17376
|
+
":(glob)**/*.yaml",
|
|
17377
|
+
"*.yml",
|
|
17378
|
+
":(glob)**/*.yml",
|
|
17379
|
+
...SIGNET_GIT_ALLOWED_DIRECTORIES
|
|
17380
|
+
];
|
|
17381
|
+
var SIGNET_GITIGNORE_PROTECTED_PATTERNS = [
|
|
17382
|
+
".daemon/",
|
|
17383
|
+
".secrets/",
|
|
17384
|
+
".shadow/",
|
|
17385
|
+
"cache/",
|
|
17386
|
+
"data/",
|
|
17387
|
+
"files/",
|
|
17388
|
+
"runtime/",
|
|
17389
|
+
"workspace-layout.json",
|
|
17390
|
+
"node_modules/",
|
|
17391
|
+
`${SIGNET_SOURCE_CHECKOUT_DIRNAME}/`,
|
|
17392
|
+
"memory/memories.db*",
|
|
17393
|
+
"memory/**/*.db",
|
|
17394
|
+
"memory/**/*.db-*",
|
|
17395
|
+
"memory/**/*.db-journal",
|
|
17396
|
+
"memory/**/*.db-shm",
|
|
17397
|
+
"memory/**/*.db-wal",
|
|
17398
|
+
"memory/**/*.sqlite",
|
|
17399
|
+
"memory/**/*.sqlite3",
|
|
17400
|
+
"memory/backups/",
|
|
17401
|
+
"*.db",
|
|
17402
|
+
"*.db-*",
|
|
17403
|
+
"*.db-journal",
|
|
17404
|
+
"*.db-shm",
|
|
17405
|
+
"*.db-wal",
|
|
17406
|
+
"*.sqlite",
|
|
17407
|
+
"*.sqlite3"
|
|
17408
|
+
];
|
|
17409
|
+
var DESCRIPTOR_ROOT = process.platform === "linux" ? "/proc/self/fd" : process.platform === "darwin" ? "/dev/fd" : undefined;
|
|
17410
|
+
var DIRECTORY_FLAGS = fsConstants.O_RDONLY | (fsConstants.O_DIRECTORY ?? 0) | (fsConstants.O_NOFOLLOW ?? 0);
|
|
17411
|
+
var FILE_FLAGS = fsConstants.O_RDONLY | (fsConstants.O_NOFOLLOW ?? 0) | (fsConstants.O_NONBLOCK ?? 0);
|
|
17412
|
+
var NOFOLLOW = fsConstants.O_NOFOLLOW ?? 0;
|
|
17413
|
+
var PROTECTION_COMPONENT_IDS = [
|
|
17414
|
+
"root-authored",
|
|
17415
|
+
"skills",
|
|
17416
|
+
"managed-originals",
|
|
17417
|
+
"sqlite",
|
|
17418
|
+
"transcripts",
|
|
17419
|
+
"external-sources",
|
|
17420
|
+
"runtime",
|
|
17421
|
+
"filesystem-cache",
|
|
17422
|
+
"secrets"
|
|
17423
|
+
];
|
|
17424
|
+
var ORDER = new Map(PROTECTION_COMPONENT_IDS.map((id, index) => [id, index]));
|
|
17425
|
+
var BLOCKING = new Set(["missing", "stale", "degraded"]);
|
|
17225
17426
|
var STATES = new Set([
|
|
17226
17427
|
"found",
|
|
17227
17428
|
"missing",
|
|
@@ -17238,7 +17439,7 @@ var import_yaml2 = __toESM2(require_dist(), 1);
|
|
|
17238
17439
|
var WORKSPACE_ENV_KEYS = ["SIGNET_PATH", "SIGNET_WORKSPACE"];
|
|
17239
17440
|
var DEFAULT_AGENTS_DIRNAME = ".agents";
|
|
17240
17441
|
function normalizeWorkspacePath(pathValue, home = homedir4()) {
|
|
17241
|
-
return
|
|
17442
|
+
return resolve7(expandHome(pathValue.trim(), home));
|
|
17242
17443
|
}
|
|
17243
17444
|
function readTrimmedEnv(env, name) {
|
|
17244
17445
|
const value = env[name];
|
|
@@ -17250,13 +17451,13 @@ function readTrimmedEnv(env, name) {
|
|
|
17250
17451
|
function readConfigHome(env, home) {
|
|
17251
17452
|
const raw = env.XDG_CONFIG_HOME;
|
|
17252
17453
|
if (typeof raw !== "string")
|
|
17253
|
-
return
|
|
17454
|
+
return join13(home, ".config");
|
|
17254
17455
|
const trimmed = raw.trim();
|
|
17255
|
-
return trimmed.length > 0 ? normalizeWorkspacePath(trimmed, home) :
|
|
17456
|
+
return trimmed.length > 0 ? normalizeWorkspacePath(trimmed, home) : join13(home, ".config");
|
|
17256
17457
|
}
|
|
17257
17458
|
function isExistingDirectory(path) {
|
|
17258
17459
|
try {
|
|
17259
|
-
return
|
|
17460
|
+
return statSync5(path).isDirectory();
|
|
17260
17461
|
} catch {
|
|
17261
17462
|
return false;
|
|
17262
17463
|
}
|
|
@@ -17265,16 +17466,16 @@ function isRecord5(value) {
|
|
|
17265
17466
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
17266
17467
|
}
|
|
17267
17468
|
function getWorkspaceConfigPath(env = process.env, home = homedir4()) {
|
|
17268
|
-
return
|
|
17469
|
+
return join13(readConfigHome(env, home), "signet", "workspace.json");
|
|
17269
17470
|
}
|
|
17270
17471
|
function readConfiguredWorkspacePath(env = process.env, home = homedir4(), options = {}) {
|
|
17271
17472
|
const strict = options.strict ?? true;
|
|
17272
17473
|
const configPath = getWorkspaceConfigPath(env, home);
|
|
17273
|
-
if (!
|
|
17474
|
+
if (!existsSync12(configPath))
|
|
17274
17475
|
return null;
|
|
17275
17476
|
let raw;
|
|
17276
17477
|
try {
|
|
17277
|
-
raw = JSON.parse(
|
|
17478
|
+
raw = JSON.parse(readFileSync9(configPath, "utf-8"));
|
|
17278
17479
|
} catch (err) {
|
|
17279
17480
|
if (!strict)
|
|
17280
17481
|
return null;
|
|
@@ -17319,7 +17520,7 @@ function resolveWorkspacePath(options = {}) {
|
|
|
17319
17520
|
};
|
|
17320
17521
|
}
|
|
17321
17522
|
return {
|
|
17322
|
-
path:
|
|
17523
|
+
path: join13(home, DEFAULT_AGENTS_DIRNAME),
|
|
17323
17524
|
source: "default",
|
|
17324
17525
|
configPath,
|
|
17325
17526
|
configuredPath: configValue
|
|
@@ -17342,81 +17543,18 @@ try {
|
|
|
17342
17543
|
const esmRequire = createRequire2(import.meta.url);
|
|
17343
17544
|
native = esmRequire("@signet/native");
|
|
17344
17545
|
} catch {}
|
|
17345
|
-
var GRAPHIQ_DEFAULT_INSTALL_DIR =
|
|
17346
|
-
var SIGNET_SOURCE_CHECKOUT_DIRNAME = "signetai";
|
|
17347
|
-
var SIGNET_GIT_ALLOWED_DIRECTORIES = ["skills", "tools", "dreaming"];
|
|
17348
|
-
var SIGNET_GIT_PROTECTED_PATHS = [
|
|
17349
|
-
".daemon",
|
|
17350
|
-
".shadow",
|
|
17351
|
-
"node_modules",
|
|
17352
|
-
":(glob)**/node_modules/**",
|
|
17353
|
-
`${SIGNET_SOURCE_CHECKOUT_DIRNAME}`,
|
|
17354
|
-
"memory/backups",
|
|
17355
|
-
"memory/memories.db",
|
|
17356
|
-
":(glob)memory/memories.db*",
|
|
17357
|
-
":(glob)memory/**/*.db",
|
|
17358
|
-
":(glob)memory/**/*.db-*",
|
|
17359
|
-
":(glob)memory/**/*.db-journal",
|
|
17360
|
-
":(glob)memory/**/*.db-shm",
|
|
17361
|
-
":(glob)memory/**/*.db-wal",
|
|
17362
|
-
":(glob)memory/**/*.sqlite",
|
|
17363
|
-
":(glob)memory/**/*.sqlite3",
|
|
17364
|
-
":(glob)**/*.db",
|
|
17365
|
-
":(glob)**/*.db-*",
|
|
17366
|
-
":(glob)**/*.db-journal",
|
|
17367
|
-
":(glob)**/*.db-shm",
|
|
17368
|
-
":(glob)**/*.db-wal",
|
|
17369
|
-
":(glob)**/*.sqlite",
|
|
17370
|
-
":(glob)**/*.sqlite3"
|
|
17371
|
-
];
|
|
17372
|
-
var SIGNET_GIT_TRACKED_PATHS = [
|
|
17373
|
-
"*.md",
|
|
17374
|
-
":(glob)**/*.md",
|
|
17375
|
-
"*.json",
|
|
17376
|
-
":(glob)**/*.json",
|
|
17377
|
-
"*.jsonl",
|
|
17378
|
-
":(glob)**/*.jsonl",
|
|
17379
|
-
"*.html",
|
|
17380
|
-
":(glob)**/*.html",
|
|
17381
|
-
"*.yaml",
|
|
17382
|
-
":(glob)**/*.yaml",
|
|
17383
|
-
"*.yml",
|
|
17384
|
-
":(glob)**/*.yml",
|
|
17385
|
-
...SIGNET_GIT_ALLOWED_DIRECTORIES
|
|
17386
|
-
];
|
|
17387
|
-
var SIGNET_GITIGNORE_PROTECTED_PATTERNS = [
|
|
17388
|
-
".daemon/",
|
|
17389
|
-
".shadow/",
|
|
17390
|
-
"node_modules/",
|
|
17391
|
-
`${SIGNET_SOURCE_CHECKOUT_DIRNAME}/`,
|
|
17392
|
-
"memory/memories.db*",
|
|
17393
|
-
"memory/**/*.db",
|
|
17394
|
-
"memory/**/*.db-*",
|
|
17395
|
-
"memory/**/*.db-journal",
|
|
17396
|
-
"memory/**/*.db-shm",
|
|
17397
|
-
"memory/**/*.db-wal",
|
|
17398
|
-
"memory/**/*.sqlite",
|
|
17399
|
-
"memory/**/*.sqlite3",
|
|
17400
|
-
"memory/backups/",
|
|
17401
|
-
"*.db",
|
|
17402
|
-
"*.db-*",
|
|
17403
|
-
"*.db-journal",
|
|
17404
|
-
"*.db-shm",
|
|
17405
|
-
"*.db-wal",
|
|
17406
|
-
"*.sqlite",
|
|
17407
|
-
"*.sqlite3"
|
|
17408
|
-
];
|
|
17546
|
+
var GRAPHIQ_DEFAULT_INSTALL_DIR = join14(homedir5(), ".local", "bin");
|
|
17409
17547
|
var DEFAULT_DISCORD_DESKTOP_CACHE_PATH = defaultDiscordDesktopCachePath();
|
|
17410
17548
|
var DEFAULT_GITHUB_RESOURCE_TYPES = ["issues", "pulls", "discussions", "docs"];
|
|
17411
17549
|
var VALID_GITHUB_RESOURCE_TYPES = new Set(DEFAULT_GITHUB_RESOURCE_TYPES);
|
|
17412
17550
|
function defaultDiscordDesktopCachePath() {
|
|
17413
17551
|
switch (platform2()) {
|
|
17414
17552
|
case "darwin":
|
|
17415
|
-
return
|
|
17553
|
+
return resolve9(homedir6(), "Library", "Application Support", "discord");
|
|
17416
17554
|
case "win32":
|
|
17417
|
-
return
|
|
17555
|
+
return resolve9(process.env.APPDATA || resolve9(homedir6(), "AppData", "Roaming"), "discord");
|
|
17418
17556
|
default:
|
|
17419
|
-
return
|
|
17557
|
+
return resolve9(process.env.XDG_CONFIG_HOME || resolve9(homedir6(), ".config"), "discord");
|
|
17420
17558
|
}
|
|
17421
17559
|
}
|
|
17422
17560
|
var IDENTITY_FILES = {
|
|
@@ -17476,7 +17614,7 @@ var REQUIRED_IDENTITY_KEYS = Object.entries(IDENTITY_FILES).filter(([, spec]) =>
|
|
|
17476
17614
|
var OPTIONAL_IDENTITY_KEYS = Object.entries(IDENTITY_FILES).filter(([, spec]) => spec.optional).map(([key]) => key);
|
|
17477
17615
|
function linkDirSync(target, path) {
|
|
17478
17616
|
const type = process.platform === "win32" ? "junction" : "dir";
|
|
17479
|
-
|
|
17617
|
+
symlinkSync2(target, path, type);
|
|
17480
17618
|
}
|
|
17481
17619
|
function symlinkSkills(sourceDir, targetDir, options = {}) {
|
|
17482
17620
|
const result = {
|
|
@@ -17484,19 +17622,19 @@ function symlinkSkills(sourceDir, targetDir, options = {}) {
|
|
|
17484
17622
|
skipped: [],
|
|
17485
17623
|
errors: []
|
|
17486
17624
|
};
|
|
17487
|
-
if (!
|
|
17625
|
+
if (!existsSync18(sourceDir)) {
|
|
17488
17626
|
return result;
|
|
17489
17627
|
}
|
|
17490
|
-
const targetParent =
|
|
17491
|
-
if (!
|
|
17492
|
-
|
|
17628
|
+
const targetParent = join18(targetDir, "..");
|
|
17629
|
+
if (!existsSync18(targetParent)) {
|
|
17630
|
+
mkdirSync10(targetParent, { recursive: true });
|
|
17493
17631
|
}
|
|
17494
|
-
if (!
|
|
17495
|
-
|
|
17632
|
+
if (!existsSync18(targetDir)) {
|
|
17633
|
+
mkdirSync10(targetDir, { recursive: true });
|
|
17496
17634
|
}
|
|
17497
17635
|
let entries;
|
|
17498
17636
|
try {
|
|
17499
|
-
entries =
|
|
17637
|
+
entries = readdirSync9(sourceDir);
|
|
17500
17638
|
} catch (e) {
|
|
17501
17639
|
result.errors.push({
|
|
17502
17640
|
path: sourceDir,
|
|
@@ -17505,10 +17643,10 @@ function symlinkSkills(sourceDir, targetDir, options = {}) {
|
|
|
17505
17643
|
return result;
|
|
17506
17644
|
}
|
|
17507
17645
|
for (const entry of entries) {
|
|
17508
|
-
const srcPath =
|
|
17509
|
-
const destPath =
|
|
17646
|
+
const srcPath = join18(sourceDir, entry);
|
|
17647
|
+
const destPath = join18(targetDir, entry);
|
|
17510
17648
|
try {
|
|
17511
|
-
const src =
|
|
17649
|
+
const src = lstatSync3(srcPath);
|
|
17512
17650
|
if (src.isSymbolicLink() || !src.isDirectory()) {
|
|
17513
17651
|
result.skipped.push(srcPath);
|
|
17514
17652
|
continue;
|
|
@@ -17521,7 +17659,7 @@ function symlinkSkills(sourceDir, targetDir, options = {}) {
|
|
|
17521
17659
|
continue;
|
|
17522
17660
|
}
|
|
17523
17661
|
try {
|
|
17524
|
-
const destStat =
|
|
17662
|
+
const destStat = lstatSync3(destPath);
|
|
17525
17663
|
if (destStat.isSymbolicLink()) {
|
|
17526
17664
|
if (!options.dryRun) {
|
|
17527
17665
|
unlinkSync2(destPath);
|
|
@@ -17701,7 +17839,7 @@ function resolveSignetWorkspacePath(home2 = homedir()) {
|
|
|
17701
17839
|
|
|
17702
17840
|
// ../../../platform/core/dist/index.js
|
|
17703
17841
|
import { createRequire as createRequire3 } from "node:module";
|
|
17704
|
-
import { dirname as dirname3, join as join4 } from "node:path";
|
|
17842
|
+
import { dirname as dirname3, join as join4, resolve as resolve3 } from "node:path";
|
|
17705
17843
|
import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
17706
17844
|
import {
|
|
17707
17845
|
execFile as nodeExecFile2,
|
|
@@ -17713,14 +17851,15 @@ import {
|
|
|
17713
17851
|
import { promisify as promisify2 } from "node:util";
|
|
17714
17852
|
import { createHash as createHash2 } from "node:crypto";
|
|
17715
17853
|
import { homedir as homedir22 } from "node:os";
|
|
17716
|
-
import { join as join22, resolve as
|
|
17854
|
+
import { join as join22, resolve as resolve22 } from "node:path";
|
|
17855
|
+
import { constants as fsConstants2 } from "node:fs";
|
|
17717
17856
|
import { createRequire as createRequire22 } from "node:module";
|
|
17718
17857
|
import { homedir as homedir52 } from "node:os";
|
|
17719
|
-
import { dirname as
|
|
17858
|
+
import { dirname as dirname62, join as join142, resolve as resolve82 } from "node:path";
|
|
17720
17859
|
import { homedir as homedir62, platform as platform22 } from "node:os";
|
|
17721
|
-
import { basename as basename2, dirname as
|
|
17722
|
-
import { existsSync as
|
|
17723
|
-
import { dirname as
|
|
17860
|
+
import { basename as basename2, dirname as dirname72, resolve as resolve92 } from "node:path";
|
|
17861
|
+
import { existsSync as existsSync16, readFileSync as readFileSync13, realpathSync as realpathSync2, statSync as statSync8 } from "node:fs";
|
|
17862
|
+
import { dirname as dirname8, join as join16 } from "node:path";
|
|
17724
17863
|
import { homedir as homedir82 } from "node:os";
|
|
17725
17864
|
var __create = Object.create;
|
|
17726
17865
|
var __getProtoOf = Object.getPrototypeOf;
|
|
@@ -28287,7 +28426,7 @@ var DAEMON_DERIVED_MEMORY_SOURCE_TYPES2 = [
|
|
|
28287
28426
|
"checkpoint",
|
|
28288
28427
|
"dreaming"
|
|
28289
28428
|
];
|
|
28290
|
-
function
|
|
28429
|
+
function up161(db) {
|
|
28291
28430
|
const hasColumn26 = (table, column) => {
|
|
28292
28431
|
const statement = db.prepare(`SELECT 1 FROM pragma_table_info('${table}') WHERE name = ?`);
|
|
28293
28432
|
try {
|
|
@@ -28354,8 +28493,8 @@ function up210(db) {
|
|
|
28354
28493
|
`);
|
|
28355
28494
|
}
|
|
28356
28495
|
function addColumnIfMissing30(db, column, definition) {
|
|
28357
|
-
const
|
|
28358
|
-
if (
|
|
28496
|
+
const columns2 = db.prepare("PRAGMA table_info(transcript_capture_jobs)").all();
|
|
28497
|
+
if (columns2.some((row) => row.name === column))
|
|
28359
28498
|
return;
|
|
28360
28499
|
db.exec(`ALTER TABLE transcript_capture_jobs ADD COLUMN ${column} ${definition}`);
|
|
28361
28500
|
}
|
|
@@ -29236,8 +29375,8 @@ function up252(db) {
|
|
|
29236
29375
|
addColumnIfMissing82(db, "session_memories", "structural_density", "INTEGER");
|
|
29237
29376
|
}
|
|
29238
29377
|
function up262(db) {
|
|
29239
|
-
const
|
|
29240
|
-
const columnNames = new Set(
|
|
29378
|
+
const columns2 = db.prepare("PRAGMA table_info(session_checkpoints)").all();
|
|
29379
|
+
const columnNames = new Set(columns2.flatMap((column) => typeof column.name === "string" ? [column.name] : []));
|
|
29241
29380
|
if (!columnNames.has("focal_entity_ids")) {
|
|
29242
29381
|
db.exec("ALTER TABLE session_checkpoints ADD COLUMN focal_entity_ids TEXT");
|
|
29243
29382
|
}
|
|
@@ -31549,8 +31688,8 @@ function up972(db) {
|
|
|
31549
31688
|
`);
|
|
31550
31689
|
}
|
|
31551
31690
|
function up982(db) {
|
|
31552
|
-
const
|
|
31553
|
-
if (!
|
|
31691
|
+
const columns2 = db.prepare("PRAGMA table_info(dreaming_state)").all();
|
|
31692
|
+
if (!columns2.some((column) => column.name === "evidence_cursor")) {
|
|
31554
31693
|
db.exec("ALTER TABLE dreaming_state ADD COLUMN evidence_cursor TEXT");
|
|
31555
31694
|
}
|
|
31556
31695
|
}
|
|
@@ -31594,8 +31733,8 @@ function up1012(db) {
|
|
|
31594
31733
|
db.exec("DROP TABLE IF EXISTS ingestion_jobs");
|
|
31595
31734
|
}
|
|
31596
31735
|
function up1022(db) {
|
|
31597
|
-
const
|
|
31598
|
-
if (!
|
|
31736
|
+
const columns2 = db.prepare("PRAGMA table_info(dreaming_state)").all();
|
|
31737
|
+
if (!columns2.some((column) => column.name === "last_failure_at")) {
|
|
31599
31738
|
db.exec("ALTER TABLE dreaming_state ADD COLUMN last_failure_at TEXT");
|
|
31600
31739
|
}
|
|
31601
31740
|
db.exec("UPDATE dreaming_state SET last_failure_at = updated_at WHERE consecutive_failures > 0 AND last_failure_at IS NULL");
|
|
@@ -31638,11 +31777,11 @@ function up1042(db) {
|
|
|
31638
31777
|
`);
|
|
31639
31778
|
}
|
|
31640
31779
|
function up1052(db) {
|
|
31641
|
-
const
|
|
31642
|
-
if (!
|
|
31780
|
+
const columns2 = db.prepare("PRAGMA table_info(dreaming_passes)").all();
|
|
31781
|
+
if (!columns2.some((column) => column.name === "evidence_window_json")) {
|
|
31643
31782
|
db.exec("ALTER TABLE dreaming_passes ADD COLUMN evidence_window_json TEXT");
|
|
31644
31783
|
}
|
|
31645
|
-
if (!
|
|
31784
|
+
if (!columns2.some((column) => column.name === "runbook_json")) {
|
|
31646
31785
|
db.exec("ALTER TABLE dreaming_passes ADD COLUMN runbook_json TEXT");
|
|
31647
31786
|
}
|
|
31648
31787
|
}
|
|
@@ -32081,8 +32220,8 @@ function hasTable42(db, table) {
|
|
|
32081
32220
|
return db.prepare("SELECT 1 AS present FROM sqlite_master WHERE type = 'table' AND name = ?").get(table) != null;
|
|
32082
32221
|
}
|
|
32083
32222
|
function addColumnIfMissing262(db, table, column, definition) {
|
|
32084
|
-
const
|
|
32085
|
-
if (
|
|
32223
|
+
const columns2 = db.prepare(`PRAGMA table_info(${table})`).all();
|
|
32224
|
+
if (columns2.some((row) => row.name === column))
|
|
32086
32225
|
return;
|
|
32087
32226
|
db.exec(`ALTER TABLE ${table} ADD COLUMN ${column} ${definition}`);
|
|
32088
32227
|
}
|
|
@@ -32094,8 +32233,8 @@ function hashTranscript2(content) {
|
|
|
32094
32233
|
return createHash2("sha256").update(content, "utf8").digest("hex");
|
|
32095
32234
|
}
|
|
32096
32235
|
function backfillTranscriptHashes2(db) {
|
|
32097
|
-
const
|
|
32098
|
-
if (!
|
|
32236
|
+
const columns2 = tableColumns2(db, "session_transcripts");
|
|
32237
|
+
if (!columns2.has("content_hash") || !columns2.has("content"))
|
|
32099
32238
|
return;
|
|
32100
32239
|
const rows = db.prepare("SELECT session_key, agent_id, content FROM session_transcripts WHERE content_hash IS NULL").all();
|
|
32101
32240
|
const update = db.prepare("UPDATE session_transcripts SET content_hash = ? WHERE agent_id = ? AND session_key = ? AND content_hash IS NULL");
|
|
@@ -32121,8 +32260,8 @@ function laterTimestamp2(current, candidate) {
|
|
|
32121
32260
|
}
|
|
32122
32261
|
return candidate > current ? candidate : current;
|
|
32123
32262
|
}
|
|
32124
|
-
function isCompletionBoundary2(job,
|
|
32125
|
-
return
|
|
32263
|
+
function isCompletionBoundary2(job, columns2) {
|
|
32264
|
+
return columns2.has("trigger") && job.trigger === "session_end" || columns2.has("boundary_reason") && COMPLETION_BOUNDARY_REASONS2.has(job.boundary_reason ?? "");
|
|
32126
32265
|
}
|
|
32127
32266
|
function mergeTranscriptContent2(current, next) {
|
|
32128
32267
|
if (current.length === 0)
|
|
@@ -32370,8 +32509,8 @@ function up1262(db) {
|
|
|
32370
32509
|
`);
|
|
32371
32510
|
}
|
|
32372
32511
|
function up1272(db) {
|
|
32373
|
-
const
|
|
32374
|
-
const names = new Set(
|
|
32512
|
+
const columns2 = db.prepare("PRAGMA table_info(dreaming_evidence_exclusions)").all();
|
|
32513
|
+
const names = new Set(columns2.map((column) => column.name));
|
|
32375
32514
|
if (!names.has("failure_class")) {
|
|
32376
32515
|
db.exec("ALTER TABLE dreaming_evidence_exclusions ADD COLUMN failure_class TEXT NOT NULL DEFAULT 'unknown' CHECK (failure_class IN ('incomplete_transcript', 'source_projection', 'scope_mismatch', 'quote_mismatch', 'unknown'))");
|
|
32377
32516
|
}
|
|
@@ -32783,8 +32922,8 @@ function up1382(db) {
|
|
|
32783
32922
|
CREATE INDEX IF NOT EXISTS idx_memory_head_revision_entries_entry
|
|
32784
32923
|
ON memory_head_revision_entries(agent_id, entry_id, revision DESC);
|
|
32785
32924
|
`);
|
|
32786
|
-
const
|
|
32787
|
-
const names = new Set(
|
|
32925
|
+
const columns2 = db.prepare("PRAGMA table_info(memory_md_heads)").all();
|
|
32926
|
+
const names = new Set(columns2.map((column) => String(column.name)));
|
|
32788
32927
|
if (!names.has("revision_id"))
|
|
32789
32928
|
db.exec("ALTER TABLE memory_md_heads ADD COLUMN revision_id TEXT");
|
|
32790
32929
|
if (!names.has("pass_id"))
|
|
@@ -33210,13 +33349,13 @@ function up1462(db) {
|
|
|
33210
33349
|
`);
|
|
33211
33350
|
}
|
|
33212
33351
|
function up1472(db) {
|
|
33213
|
-
const
|
|
33214
|
-
if (!
|
|
33352
|
+
const columns2 = db.prepare("PRAGMA table_info(source_sync_checkpoints)").all();
|
|
33353
|
+
if (!columns2.some((column) => column.name === "frontier")) {
|
|
33215
33354
|
db.exec("ALTER TABLE source_sync_checkpoints ADD COLUMN frontier TEXT");
|
|
33216
33355
|
}
|
|
33217
33356
|
}
|
|
33218
33357
|
function up1482(db) {
|
|
33219
|
-
const
|
|
33358
|
+
const columns2 = new Set(db.prepare("PRAGMA table_info(embedding_index_state)").all().map((row) => row.name).filter((name) => typeof name === "string"));
|
|
33220
33359
|
const additions = [
|
|
33221
33360
|
["migration_phase", "TEXT"],
|
|
33222
33361
|
["progress_staged", "INTEGER NOT NULL DEFAULT 0"],
|
|
@@ -33227,7 +33366,7 @@ function up1482(db) {
|
|
|
33227
33366
|
["provider_endpoint", "TEXT"]
|
|
33228
33367
|
];
|
|
33229
33368
|
for (const [name, definition] of additions) {
|
|
33230
|
-
if (!
|
|
33369
|
+
if (!columns2.has(name))
|
|
33231
33370
|
db.exec(`ALTER TABLE embedding_index_state ADD COLUMN ${name} ${definition}`);
|
|
33232
33371
|
}
|
|
33233
33372
|
db.exec(`
|
|
@@ -33251,8 +33390,8 @@ function up1482(db) {
|
|
|
33251
33390
|
}
|
|
33252
33391
|
}
|
|
33253
33392
|
function up1492(db) {
|
|
33254
|
-
const
|
|
33255
|
-
if (!
|
|
33393
|
+
const columns2 = new Set(db.prepare("PRAGMA table_info(memory_jobs)").all().map((row) => row.name).filter((name) => typeof name === "string"));
|
|
33394
|
+
if (!columns2.has("lease_token")) {
|
|
33256
33395
|
db.exec("ALTER TABLE memory_jobs ADD COLUMN lease_token TEXT");
|
|
33257
33396
|
}
|
|
33258
33397
|
}
|
|
@@ -33345,8 +33484,8 @@ function up1522(db) {
|
|
|
33345
33484
|
db.exec("CREATE INDEX IF NOT EXISTS idx_source_import_files_job_state ON source_import_files(job_id, state)");
|
|
33346
33485
|
}
|
|
33347
33486
|
function up1532(db) {
|
|
33348
|
-
const
|
|
33349
|
-
if (!
|
|
33487
|
+
const columns2 = db.prepare("PRAGMA table_info(source_import_record_attempts)").all();
|
|
33488
|
+
if (!columns2.some((column) => column.name === "source_id")) {
|
|
33350
33489
|
db.exec("ALTER TABLE source_import_record_attempts ADD COLUMN source_id TEXT");
|
|
33351
33490
|
}
|
|
33352
33491
|
}
|
|
@@ -33367,8 +33506,8 @@ function up1542(db) {
|
|
|
33367
33506
|
addColumn("source_import_files", "error", "TEXT");
|
|
33368
33507
|
}
|
|
33369
33508
|
function addColumnIfMissing292(db, table, column, definition) {
|
|
33370
|
-
const
|
|
33371
|
-
if (!
|
|
33509
|
+
const columns2 = db.prepare(`PRAGMA table_info(${table})`).all();
|
|
33510
|
+
if (!columns2.some((row) => row.name === column))
|
|
33372
33511
|
db.exec(`ALTER TABLE ${table} ADD COLUMN ${column} ${definition}`);
|
|
33373
33512
|
}
|
|
33374
33513
|
function up1552(db) {
|
|
@@ -33568,8 +33707,8 @@ function up1572(db) {
|
|
|
33568
33707
|
`);
|
|
33569
33708
|
}
|
|
33570
33709
|
function up1582(db) {
|
|
33571
|
-
const
|
|
33572
|
-
if (!
|
|
33710
|
+
const columns2 = new Set(db.prepare("PRAGMA table_info(embedding_repair_checkpoints)").all().map((row) => row.name));
|
|
33711
|
+
if (!columns2.has("profile_fingerprint")) {
|
|
33573
33712
|
db.exec("ALTER TABLE embedding_repair_checkpoints ADD COLUMN profile_fingerprint TEXT");
|
|
33574
33713
|
}
|
|
33575
33714
|
db.exec(`
|
|
@@ -33588,6 +33727,102 @@ function up1592(db) {
|
|
|
33588
33727
|
ON memories(agent_id, memory_kind);
|
|
33589
33728
|
`);
|
|
33590
33729
|
}
|
|
33730
|
+
var ledgerColumns2 = [
|
|
33731
|
+
"key",
|
|
33732
|
+
"agent_id",
|
|
33733
|
+
"workspace_id",
|
|
33734
|
+
"file_name",
|
|
33735
|
+
"status",
|
|
33736
|
+
"original_path",
|
|
33737
|
+
"sha256",
|
|
33738
|
+
"size_bytes",
|
|
33739
|
+
"request_fingerprint",
|
|
33740
|
+
"source_id",
|
|
33741
|
+
"lease_token",
|
|
33742
|
+
"lease_expires_at",
|
|
33743
|
+
"attempt_count",
|
|
33744
|
+
"error",
|
|
33745
|
+
"created_at",
|
|
33746
|
+
"updated_at"
|
|
33747
|
+
];
|
|
33748
|
+
function columns2(db, table) {
|
|
33749
|
+
return new Set(db.prepare(`PRAGMA table_info(${table})`).all().map((row) => String(row.name)));
|
|
33750
|
+
}
|
|
33751
|
+
function addMissingColumns2(db, table, definitions) {
|
|
33752
|
+
const present = columns2(db, table);
|
|
33753
|
+
for (const definition of definitions) {
|
|
33754
|
+
const name = definition.split(" ", 1)[0];
|
|
33755
|
+
if (!present.has(name))
|
|
33756
|
+
db.exec(`ALTER TABLE ${table} ADD COLUMN ${definition}`);
|
|
33757
|
+
}
|
|
33758
|
+
}
|
|
33759
|
+
function rebuildLedgerWithoutGlobalKeyPrimaryKey2(db) {
|
|
33760
|
+
const keyInfo = db.prepare("PRAGMA table_info(import_admission_ledger)").all().find((row) => row.name === "key");
|
|
33761
|
+
if (!keyInfo || Number(keyInfo.pk) === 0)
|
|
33762
|
+
return;
|
|
33763
|
+
const savepoint = "migration_158_rebuild_ledger";
|
|
33764
|
+
db.exec(`SAVEPOINT ${savepoint}`);
|
|
33765
|
+
try {
|
|
33766
|
+
db.exec(`
|
|
33767
|
+
CREATE TABLE import_admission_ledger_v158 (
|
|
33768
|
+
key TEXT NOT NULL, agent_id TEXT NOT NULL DEFAULT '', workspace_id TEXT NOT NULL DEFAULT '',
|
|
33769
|
+
file_name TEXT NOT NULL, status TEXT NOT NULL CHECK (status IN ('pending','processing','imported','duplicate','failed','quarantined','original_unavailable')),
|
|
33770
|
+
original_path TEXT NOT NULL, sha256 TEXT NOT NULL, size_bytes INTEGER NOT NULL,
|
|
33771
|
+
request_fingerprint TEXT NOT NULL DEFAULT '', source_id TEXT, lease_token TEXT, lease_expires_at TEXT,
|
|
33772
|
+
attempt_count INTEGER NOT NULL DEFAULT 0, error TEXT, created_at TEXT NOT NULL, updated_at TEXT NOT NULL
|
|
33773
|
+
);
|
|
33774
|
+
INSERT INTO import_admission_ledger_v158 (${ledgerColumns2.join(",")})
|
|
33775
|
+
SELECT ${ledgerColumns2.join(",")} FROM import_admission_ledger;
|
|
33776
|
+
DROP TABLE import_admission_ledger;
|
|
33777
|
+
ALTER TABLE import_admission_ledger_v158 RENAME TO import_admission_ledger;
|
|
33778
|
+
`);
|
|
33779
|
+
db.exec(`RELEASE ${savepoint}`);
|
|
33780
|
+
} catch (error) {
|
|
33781
|
+
try {
|
|
33782
|
+
db.exec(`ROLLBACK TO SAVEPOINT ${savepoint}`);
|
|
33783
|
+
} finally {
|
|
33784
|
+
try {
|
|
33785
|
+
db.exec(`RELEASE ${savepoint}`);
|
|
33786
|
+
} catch {}
|
|
33787
|
+
}
|
|
33788
|
+
throw error;
|
|
33789
|
+
}
|
|
33790
|
+
}
|
|
33791
|
+
function up1602(db) {
|
|
33792
|
+
db.exec(`
|
|
33793
|
+
CREATE TABLE IF NOT EXISTS import_admission_ledger (
|
|
33794
|
+
key TEXT NOT NULL, agent_id TEXT NOT NULL, workspace_id TEXT NOT NULL DEFAULT '', file_name TEXT NOT NULL,
|
|
33795
|
+
status TEXT NOT NULL CHECK (status IN ('pending','processing','imported','duplicate','failed','quarantined','original_unavailable')),
|
|
33796
|
+
original_path TEXT NOT NULL, sha256 TEXT NOT NULL, size_bytes INTEGER NOT NULL,
|
|
33797
|
+
request_fingerprint TEXT NOT NULL DEFAULT '', source_id TEXT, lease_token TEXT, lease_expires_at TEXT,
|
|
33798
|
+
attempt_count INTEGER NOT NULL DEFAULT 0, error TEXT, created_at TEXT NOT NULL, updated_at TEXT NOT NULL
|
|
33799
|
+
);
|
|
33800
|
+
CREATE TABLE IF NOT EXISTS import_admission_events (
|
|
33801
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT, admission_key TEXT NOT NULL, agent_id TEXT NOT NULL DEFAULT '',
|
|
33802
|
+
workspace_id TEXT NOT NULL DEFAULT '', event TEXT NOT NULL, created_at TEXT NOT NULL
|
|
33803
|
+
);
|
|
33804
|
+
`);
|
|
33805
|
+
addMissingColumns2(db, "import_admission_ledger", [
|
|
33806
|
+
"agent_id TEXT NOT NULL DEFAULT ''",
|
|
33807
|
+
"workspace_id TEXT NOT NULL DEFAULT ''",
|
|
33808
|
+
"request_fingerprint TEXT NOT NULL DEFAULT ''",
|
|
33809
|
+
"source_id TEXT",
|
|
33810
|
+
"lease_token TEXT",
|
|
33811
|
+
"lease_expires_at TEXT",
|
|
33812
|
+
"attempt_count INTEGER NOT NULL DEFAULT 0",
|
|
33813
|
+
"error TEXT"
|
|
33814
|
+
]);
|
|
33815
|
+
addMissingColumns2(db, "import_admission_events", [
|
|
33816
|
+
"agent_id TEXT NOT NULL DEFAULT ''",
|
|
33817
|
+
"workspace_id TEXT NOT NULL DEFAULT ''"
|
|
33818
|
+
]);
|
|
33819
|
+
rebuildLedgerWithoutGlobalKeyPrimaryKey2(db);
|
|
33820
|
+
db.exec(`
|
|
33821
|
+
CREATE UNIQUE INDEX IF NOT EXISTS uq_import_admission_scope_key ON import_admission_ledger(key, agent_id, workspace_id);
|
|
33822
|
+
CREATE INDEX IF NOT EXISTS idx_import_admission_status ON import_admission_ledger(agent_id, workspace_id, status, updated_at);
|
|
33823
|
+
CREATE INDEX IF NOT EXISTS idx_import_admission_events_key ON import_admission_events(admission_key, agent_id, workspace_id, id);
|
|
33824
|
+
`);
|
|
33825
|
+
}
|
|
33591
33826
|
var MIGRATIONS2 = [
|
|
33592
33827
|
{
|
|
33593
33828
|
version: 1,
|
|
@@ -34792,7 +35027,7 @@ var MIGRATIONS2 = [
|
|
|
34792
35027
|
{
|
|
34793
35028
|
version: 151,
|
|
34794
35029
|
name: "transcript-import-bytes",
|
|
34795
|
-
up:
|
|
35030
|
+
up: up161,
|
|
34796
35031
|
artifacts: {
|
|
34797
35032
|
tables: [
|
|
34798
35033
|
"source_import_chunks",
|
|
@@ -34876,6 +35111,18 @@ var MIGRATIONS2 = [
|
|
|
34876
35111
|
version: 159,
|
|
34877
35112
|
name: "retire-obsolete-invocation-ledger",
|
|
34878
35113
|
up: up510
|
|
35114
|
+
},
|
|
35115
|
+
{
|
|
35116
|
+
version: 160,
|
|
35117
|
+
name: "import-admission-ledger",
|
|
35118
|
+
up: up1602,
|
|
35119
|
+
artifacts: {
|
|
35120
|
+
tables: ["import_admission_ledger", "import_admission_events"],
|
|
35121
|
+
indexes: ["idx_import_admission_status", "idx_import_admission_events_key"],
|
|
35122
|
+
columns: [
|
|
35123
|
+
...["workspace_id", "request_fingerprint", "source_id", "lease_token", "lease_expires_at", "attempt_count"].map((column) => ({ table: "import_admission_ledger", column }))
|
|
35124
|
+
]
|
|
35125
|
+
}
|
|
34879
35126
|
}
|
|
34880
35127
|
];
|
|
34881
35128
|
var LATEST_SCHEMA_VERSION2 = MIGRATIONS2[MIGRATIONS2.length - 1]?.version ?? 0;
|
|
@@ -34890,38 +35137,17 @@ function expandHome2(p3, home2 = homedir22()) {
|
|
|
34890
35137
|
return join22(home2, p3.slice(2));
|
|
34891
35138
|
return p3;
|
|
34892
35139
|
}
|
|
34893
|
-
var STATES2 = new Set([
|
|
34894
|
-
"found",
|
|
34895
|
-
"missing",
|
|
34896
|
-
"locked",
|
|
34897
|
-
"unavailable",
|
|
34898
|
-
"permission-denied",
|
|
34899
|
-
"corrupt",
|
|
34900
|
-
"unsupported"
|
|
34901
|
-
]);
|
|
34902
|
-
var mutation2 = Promise.resolve();
|
|
34903
|
-
var LOOPBACK_HOST2 = "127.0.0.1";
|
|
34904
|
-
var LOCAL_BINDS2 = new Set([LOOPBACK_HOST2, "localhost", "::1", "::ffff:127.0.0.1"]);
|
|
34905
|
-
var import_yaml22 = __toESM(require_dist2(), 1);
|
|
34906
|
-
function parseSimpleYaml(text) {
|
|
34907
|
-
try {
|
|
34908
|
-
const parsed = import_yaml22.default.parse(text);
|
|
34909
|
-
return typeof parsed === "object" && parsed !== null ? parsed : {};
|
|
34910
|
-
} catch {
|
|
34911
|
-
return {};
|
|
34912
|
-
}
|
|
34913
|
-
}
|
|
34914
|
-
var native2 = null;
|
|
34915
|
-
try {
|
|
34916
|
-
const esmRequire = createRequire22(import.meta.url);
|
|
34917
|
-
native2 = esmRequire("@signet/native");
|
|
34918
|
-
} catch {}
|
|
34919
|
-
var GRAPHIQ_DEFAULT_INSTALL_DIR2 = join92(homedir52(), ".local", "bin");
|
|
34920
35140
|
var SIGNET_SOURCE_CHECKOUT_DIRNAME2 = "signetai";
|
|
34921
35141
|
var SIGNET_GIT_ALLOWED_DIRECTORIES2 = ["skills", "tools", "dreaming"];
|
|
34922
35142
|
var SIGNET_GIT_PROTECTED_PATHS2 = [
|
|
34923
35143
|
".daemon",
|
|
35144
|
+
".secrets",
|
|
34924
35145
|
".shadow",
|
|
35146
|
+
"cache",
|
|
35147
|
+
"data",
|
|
35148
|
+
"files",
|
|
35149
|
+
"runtime",
|
|
35150
|
+
"workspace-layout.json",
|
|
34925
35151
|
"node_modules",
|
|
34926
35152
|
":(glob)**/node_modules/**",
|
|
34927
35153
|
`${SIGNET_SOURCE_CHECKOUT_DIRNAME2}`,
|
|
@@ -34960,7 +35186,13 @@ var SIGNET_GIT_TRACKED_PATHS2 = [
|
|
|
34960
35186
|
];
|
|
34961
35187
|
var SIGNET_GITIGNORE_PROTECTED_PATTERNS2 = [
|
|
34962
35188
|
".daemon/",
|
|
35189
|
+
".secrets/",
|
|
34963
35190
|
".shadow/",
|
|
35191
|
+
"cache/",
|
|
35192
|
+
"data/",
|
|
35193
|
+
"files/",
|
|
35194
|
+
"runtime/",
|
|
35195
|
+
"workspace-layout.json",
|
|
34964
35196
|
"node_modules/",
|
|
34965
35197
|
`${SIGNET_SOURCE_CHECKOUT_DIRNAME2}/`,
|
|
34966
35198
|
"memory/memories.db*",
|
|
@@ -34980,17 +35212,61 @@ var SIGNET_GITIGNORE_PROTECTED_PATTERNS2 = [
|
|
|
34980
35212
|
"*.sqlite",
|
|
34981
35213
|
"*.sqlite3"
|
|
34982
35214
|
];
|
|
35215
|
+
var DESCRIPTOR_ROOT2 = process.platform === "linux" ? "/proc/self/fd" : process.platform === "darwin" ? "/dev/fd" : undefined;
|
|
35216
|
+
var DIRECTORY_FLAGS2 = fsConstants2.O_RDONLY | (fsConstants2.O_DIRECTORY ?? 0) | (fsConstants2.O_NOFOLLOW ?? 0);
|
|
35217
|
+
var FILE_FLAGS2 = fsConstants2.O_RDONLY | (fsConstants2.O_NOFOLLOW ?? 0) | (fsConstants2.O_NONBLOCK ?? 0);
|
|
35218
|
+
var NOFOLLOW2 = fsConstants2.O_NOFOLLOW ?? 0;
|
|
35219
|
+
var PROTECTION_COMPONENT_IDS2 = [
|
|
35220
|
+
"root-authored",
|
|
35221
|
+
"skills",
|
|
35222
|
+
"managed-originals",
|
|
35223
|
+
"sqlite",
|
|
35224
|
+
"transcripts",
|
|
35225
|
+
"external-sources",
|
|
35226
|
+
"runtime",
|
|
35227
|
+
"filesystem-cache",
|
|
35228
|
+
"secrets"
|
|
35229
|
+
];
|
|
35230
|
+
var ORDER2 = new Map(PROTECTION_COMPONENT_IDS2.map((id, index) => [id, index]));
|
|
35231
|
+
var BLOCKING2 = new Set(["missing", "stale", "degraded"]);
|
|
35232
|
+
var STATES2 = new Set([
|
|
35233
|
+
"found",
|
|
35234
|
+
"missing",
|
|
35235
|
+
"locked",
|
|
35236
|
+
"unavailable",
|
|
35237
|
+
"permission-denied",
|
|
35238
|
+
"corrupt",
|
|
35239
|
+
"unsupported"
|
|
35240
|
+
]);
|
|
35241
|
+
var mutation2 = Promise.resolve();
|
|
35242
|
+
var LOOPBACK_HOST2 = "127.0.0.1";
|
|
35243
|
+
var LOCAL_BINDS2 = new Set([LOOPBACK_HOST2, "localhost", "::1", "::ffff:127.0.0.1"]);
|
|
35244
|
+
var import_yaml22 = __toESM(require_dist2(), 1);
|
|
35245
|
+
function parseSimpleYaml(text) {
|
|
35246
|
+
try {
|
|
35247
|
+
const parsed = import_yaml22.default.parse(text);
|
|
35248
|
+
return typeof parsed === "object" && parsed !== null ? parsed : {};
|
|
35249
|
+
} catch {
|
|
35250
|
+
return {};
|
|
35251
|
+
}
|
|
35252
|
+
}
|
|
35253
|
+
var native2 = null;
|
|
35254
|
+
try {
|
|
35255
|
+
const esmRequire = createRequire22(import.meta.url);
|
|
35256
|
+
native2 = esmRequire("@signet/native");
|
|
35257
|
+
} catch {}
|
|
35258
|
+
var GRAPHIQ_DEFAULT_INSTALL_DIR2 = join142(homedir52(), ".local", "bin");
|
|
34983
35259
|
var DEFAULT_DISCORD_DESKTOP_CACHE_PATH2 = defaultDiscordDesktopCachePath2();
|
|
34984
35260
|
var DEFAULT_GITHUB_RESOURCE_TYPES2 = ["issues", "pulls", "discussions", "docs"];
|
|
34985
35261
|
var VALID_GITHUB_RESOURCE_TYPES2 = new Set(DEFAULT_GITHUB_RESOURCE_TYPES2);
|
|
34986
35262
|
function defaultDiscordDesktopCachePath2() {
|
|
34987
35263
|
switch (platform22()) {
|
|
34988
35264
|
case "darwin":
|
|
34989
|
-
return
|
|
35265
|
+
return resolve92(homedir62(), "Library", "Application Support", "discord");
|
|
34990
35266
|
case "win32":
|
|
34991
|
-
return
|
|
35267
|
+
return resolve92(process.env.APPDATA || resolve92(homedir62(), "AppData", "Roaming"), "discord");
|
|
34992
35268
|
default:
|
|
34993
|
-
return
|
|
35269
|
+
return resolve92(process.env.XDG_CONFIG_HOME || resolve92(homedir62(), ".config"), "discord");
|
|
34994
35270
|
}
|
|
34995
35271
|
}
|
|
34996
35272
|
var IDENTITY_MODES = ["managed", "off"];
|
|
@@ -35093,7 +35369,7 @@ function hasValidIdentity(basePath) {
|
|
|
35093
35369
|
if (mode !== "managed")
|
|
35094
35370
|
return true;
|
|
35095
35371
|
for (const path of resolveRequiredIdentityPaths(basePath)) {
|
|
35096
|
-
if (!
|
|
35372
|
+
if (!existsSync16(join16(basePath, path))) {
|
|
35097
35373
|
return false;
|
|
35098
35374
|
}
|
|
35099
35375
|
}
|
|
@@ -35101,11 +35377,11 @@ function hasValidIdentity(basePath) {
|
|
|
35101
35377
|
}
|
|
35102
35378
|
function resolveRequiredIdentityPaths(basePath) {
|
|
35103
35379
|
const legacyRequired = () => REQUIRED_IDENTITY_KEYS2.map((key) => IDENTITY_FILES2[key].path);
|
|
35104
|
-
const agentYaml =
|
|
35105
|
-
if (!
|
|
35380
|
+
const agentYaml = join16(basePath, "agent.yaml");
|
|
35381
|
+
if (!existsSync16(agentYaml))
|
|
35106
35382
|
return legacyRequired();
|
|
35107
35383
|
try {
|
|
35108
|
-
const config = parseSimpleYaml(
|
|
35384
|
+
const config = parseSimpleYaml(readFileSync13(agentYaml, "utf-8"));
|
|
35109
35385
|
const identity = readRecord(readRecord(config).identity);
|
|
35110
35386
|
const configured = readIdentityEntryList(readRecord(identity.startup).load);
|
|
35111
35387
|
if (configured.length > 0)
|
|
@@ -35148,11 +35424,11 @@ function resolveIdentityModeFromConfig(config) {
|
|
|
35148
35424
|
return "managed";
|
|
35149
35425
|
}
|
|
35150
35426
|
function loadIdentityMode(agentsDir) {
|
|
35151
|
-
const agentYaml =
|
|
35152
|
-
if (!
|
|
35427
|
+
const agentYaml = join16(agentsDir, "agent.yaml");
|
|
35428
|
+
if (!existsSync16(agentYaml))
|
|
35153
35429
|
return "managed";
|
|
35154
35430
|
try {
|
|
35155
|
-
return resolveIdentityModeFromConfig(parseSimpleYaml(
|
|
35431
|
+
return resolveIdentityModeFromConfig(parseSimpleYaml(readFileSync13(agentYaml, "utf-8")));
|
|
35156
35432
|
} catch {
|
|
35157
35433
|
return "managed";
|
|
35158
35434
|
}
|
|
@@ -35210,7 +35486,7 @@ class GeminiConnector extends BaseConnector {
|
|
|
35210
35486
|
if (isJsonObject(contextConfig)) {
|
|
35211
35487
|
const fileNames = contextConfig.fileName;
|
|
35212
35488
|
if (Array.isArray(fileNames) && typeof fileNames[0] === "string") {
|
|
35213
|
-
const candidate =
|
|
35489
|
+
const candidate = resolve5(geminiHome, fileNames[0]);
|
|
35214
35490
|
if (isChildOf(candidate, geminiHome)) {
|
|
35215
35491
|
return candidate;
|
|
35216
35492
|
}
|
|
@@ -35256,7 +35532,7 @@ class GeminiConnector extends BaseConnector {
|
|
|
35256
35532
|
try {
|
|
35257
35533
|
const raw = readFileSync2(staleGeminiMd, "utf-8");
|
|
35258
35534
|
if (isSignetGeneratedFile(raw)) {
|
|
35259
|
-
|
|
35535
|
+
rmSync(staleGeminiMd);
|
|
35260
35536
|
}
|
|
35261
35537
|
} catch {}
|
|
35262
35538
|
}
|
|
@@ -35286,7 +35562,7 @@ class GeminiConnector extends BaseConnector {
|
|
|
35286
35562
|
if (existsSync2(geminiMdPath)) {
|
|
35287
35563
|
const raw = readFileSync2(geminiMdPath, "utf-8");
|
|
35288
35564
|
if (isSignetGeneratedFile(raw)) {
|
|
35289
|
-
|
|
35565
|
+
rmSync(geminiMdPath);
|
|
35290
35566
|
filesRemoved.push(geminiMdPath);
|
|
35291
35567
|
}
|
|
35292
35568
|
}
|
|
@@ -35307,7 +35583,7 @@ class GeminiConnector extends BaseConnector {
|
|
|
35307
35583
|
return existsSync2(join6(homedir3(), ".gemini", "settings.json"));
|
|
35308
35584
|
}
|
|
35309
35585
|
removeSignetSkillSymlinks(skillsDir, signetWorkspace) {
|
|
35310
|
-
const signetSkillsSource =
|
|
35586
|
+
const signetSkillsSource = resolve5(signetWorkspace, "skills");
|
|
35311
35587
|
let entries;
|
|
35312
35588
|
try {
|
|
35313
35589
|
entries = readdirSync(skillsDir);
|
|
@@ -35318,14 +35594,14 @@ class GeminiConnector extends BaseConnector {
|
|
|
35318
35594
|
const entryPath = join6(skillsDir, entry);
|
|
35319
35595
|
let stat = null;
|
|
35320
35596
|
try {
|
|
35321
|
-
stat =
|
|
35597
|
+
stat = lstatSync(entryPath);
|
|
35322
35598
|
} catch {
|
|
35323
35599
|
continue;
|
|
35324
35600
|
}
|
|
35325
35601
|
if (stat?.isSymbolicLink()) {
|
|
35326
35602
|
try {
|
|
35327
35603
|
const rawTarget = readlinkSync(entryPath);
|
|
35328
|
-
const target =
|
|
35604
|
+
const target = resolve5(dirname9(entryPath), rawTarget);
|
|
35329
35605
|
if (isChildOf(target, signetSkillsSource)) {
|
|
35330
35606
|
unlinkSync3(entryPath);
|
|
35331
35607
|
}
|
|
@@ -35400,7 +35676,7 @@ class GeminiConnector extends BaseConnector {
|
|
|
35400
35676
|
].join(`
|
|
35401
35677
|
`);
|
|
35402
35678
|
const destPath = this.getGeminiMdPath();
|
|
35403
|
-
mkdirSync(
|
|
35679
|
+
mkdirSync(dirname9(destPath), { recursive: true });
|
|
35404
35680
|
writeFileSync2(destPath, header + userContent + extras + notificationPolling);
|
|
35405
35681
|
return destPath;
|
|
35406
35682
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@signetai/connector-gemini",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.228.0",
|
|
4
4
|
"description": "Signet connector for Gemini CLI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"typecheck": "tsc --noEmit"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@signetai/connector-base": "0.
|
|
28
|
-
"@signetai/core": "0.
|
|
27
|
+
"@signetai/connector-base": "0.228.0",
|
|
28
|
+
"@signetai/core": "0.228.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@types/node": "^22.0.0",
|