@signetai/connector-forge 0.178.0 → 0.179.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 +39 -33
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -10,14 +10,14 @@ import {
|
|
|
10
10
|
unlinkSync as unlinkSync3,
|
|
11
11
|
writeFileSync as writeFileSync3
|
|
12
12
|
} from "node:fs";
|
|
13
|
-
import { homedir as
|
|
14
|
-
import { join as
|
|
13
|
+
import { homedir as homedir6 } from "node:os";
|
|
14
|
+
import { join as join7, resolve as resolve3 } from "node:path";
|
|
15
15
|
|
|
16
16
|
// ../../../libs/connector-base/dist/index.js
|
|
17
17
|
import { randomBytes } from "node:crypto";
|
|
18
18
|
import { existsSync, readFileSync, renameSync, statSync as statSync2, unlinkSync as unlinkSync2, writeFileSync } from "node:fs";
|
|
19
19
|
import { homedir } from "node:os";
|
|
20
|
-
import { dirname as
|
|
20
|
+
import { dirname as dirname5, isAbsolute, join as join3, relative, sep } from "node:path";
|
|
21
21
|
import { createRequire } from "node:module";
|
|
22
22
|
import { dirname, join } from "node:path";
|
|
23
23
|
import { fileURLToPath } from "node:url";
|
|
@@ -27,9 +27,11 @@ import { existsSync as existsSync4, mkdirSync as mkdirSync2, readFileSync as rea
|
|
|
27
27
|
import { homedir as homedir3 } from "node:os";
|
|
28
28
|
import { dirname as dirname2, join as join5, resolve } from "node:path";
|
|
29
29
|
import { createRequire as createRequire2 } from "node:module";
|
|
30
|
-
import { homedir as homedir4
|
|
30
|
+
import { homedir as homedir4 } from "node:os";
|
|
31
|
+
import { dirname as dirname3, join as join6, resolve as resolve2 } from "node:path";
|
|
32
|
+
import { homedir as homedir5, platform as platform2 } from "node:os";
|
|
31
33
|
import { basename, dirname as dirname4, resolve as resolve4 } from "node:path";
|
|
32
|
-
import { homedir as
|
|
34
|
+
import { homedir as homedir9 } from "node:os";
|
|
33
35
|
import { existsSync as existsSync13, lstatSync, mkdirSync as mkdirSync9, readdirSync as readdirSync6, symlinkSync, unlinkSync } from "node:fs";
|
|
34
36
|
import { join as join13 } from "node:path";
|
|
35
37
|
var __create2 = Object.create;
|
|
@@ -11496,6 +11498,7 @@ try {
|
|
|
11496
11498
|
const esmRequire = createRequire2(import.meta.url);
|
|
11497
11499
|
native = esmRequire("@signet/native");
|
|
11498
11500
|
} catch {}
|
|
11501
|
+
var GRAPHIQ_DEFAULT_INSTALL_DIR = join6(homedir4(), ".local", "bin");
|
|
11499
11502
|
var SIGNET_SOURCE_CHECKOUT_DIRNAME = "signetai";
|
|
11500
11503
|
var SIGNET_GIT_ALLOWED_DIRECTORIES = ["skills", "tools", "dreaming"];
|
|
11501
11504
|
var SIGNET_GIT_PROTECTED_PATHS = [
|
|
@@ -11565,11 +11568,11 @@ var VALID_GITHUB_RESOURCE_TYPES = new Set(DEFAULT_GITHUB_RESOURCE_TYPES);
|
|
|
11565
11568
|
function defaultDiscordDesktopCachePath() {
|
|
11566
11569
|
switch (platform2()) {
|
|
11567
11570
|
case "darwin":
|
|
11568
|
-
return resolve4(
|
|
11571
|
+
return resolve4(homedir5(), "Library", "Application Support", "discord");
|
|
11569
11572
|
case "win32":
|
|
11570
|
-
return resolve4(process.env.APPDATA || resolve4(
|
|
11573
|
+
return resolve4(process.env.APPDATA || resolve4(homedir5(), "AppData", "Roaming"), "discord");
|
|
11571
11574
|
default:
|
|
11572
|
-
return resolve4(process.env.XDG_CONFIG_HOME || resolve4(
|
|
11575
|
+
return resolve4(process.env.XDG_CONFIG_HOME || resolve4(homedir5(), ".config"), "discord");
|
|
11573
11576
|
}
|
|
11574
11577
|
}
|
|
11575
11578
|
var IDENTITY_FILES = {
|
|
@@ -11700,7 +11703,7 @@ function symlinkSkills(sourceDir, targetDir, options = {}) {
|
|
|
11700
11703
|
}
|
|
11701
11704
|
return result;
|
|
11702
11705
|
}
|
|
11703
|
-
var home =
|
|
11706
|
+
var home = homedir9();
|
|
11704
11707
|
var SIGNET_BLOCK_START = "<!-- SIGNET:START -->";
|
|
11705
11708
|
var SIGNET_BLOCK_END = "<!-- SIGNET:END -->";
|
|
11706
11709
|
function stripSignetBlock(content) {
|
|
@@ -11741,7 +11744,7 @@ class BaseConnector {
|
|
|
11741
11744
|
generateHeader(sourcePath, targetName) {
|
|
11742
11745
|
const name = targetName || this.name;
|
|
11743
11746
|
const safe = (p) => p.replace(/[\n\r]/g, "");
|
|
11744
|
-
const root =
|
|
11747
|
+
const root = dirname5(sourcePath);
|
|
11745
11748
|
return `# Auto-generated from ${safe(sourcePath)}
|
|
11746
11749
|
# Source: ${safe(sourcePath)}
|
|
11747
11750
|
# Generated: ${new Date().toISOString()}
|
|
@@ -11778,7 +11781,7 @@ function isSignetGeneratedFile(raw) {
|
|
|
11778
11781
|
return lines.some((line, i) => /^#\s+AUTO-GENERATED\s+from\s+.*\s+by\s+Signet/i.test(line) || /^#\s+Auto-generated\s+from\s+/.test(line) && i + 1 < lines.length && /^#\s+Source:\s+/.test(lines[i + 1]));
|
|
11779
11782
|
}
|
|
11780
11783
|
function atomicWriteText(path, content, mode) {
|
|
11781
|
-
const tmp = join3(
|
|
11784
|
+
const tmp = join3(dirname5(path), `.${randomBytes(6).toString("hex")}.tmp`);
|
|
11782
11785
|
let writeMode = mode;
|
|
11783
11786
|
if (writeMode === undefined) {
|
|
11784
11787
|
try {
|
|
@@ -11861,16 +11864,18 @@ function resolveRemoteDaemonUrl() {
|
|
|
11861
11864
|
|
|
11862
11865
|
// ../../../platform/core/dist/index.js
|
|
11863
11866
|
import { createRequire as createRequire3 } from "node:module";
|
|
11864
|
-
import { dirname as
|
|
11867
|
+
import { dirname as dirname6, join as join4 } from "node:path";
|
|
11865
11868
|
import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
11866
11869
|
import { homedir as homedir22 } from "os";
|
|
11867
11870
|
import { join as join22 } from "path";
|
|
11868
11871
|
import { createRequire as createRequire22 } from "node:module";
|
|
11869
|
-
import { homedir as homedir42
|
|
11872
|
+
import { homedir as homedir42 } from "node:os";
|
|
11873
|
+
import { dirname as dirname32, join as join62, resolve as resolve22 } from "node:path";
|
|
11874
|
+
import { homedir as homedir52, platform as platform22 } from "node:os";
|
|
11870
11875
|
import { basename as basename2, dirname as dirname42, resolve as resolve42 } from "node:path";
|
|
11871
11876
|
import { existsSync as existsSync11, readFileSync as readFileSync9, readdirSync as readdirSync4, realpathSync, statSync as statSync5 } from "node:fs";
|
|
11872
11877
|
import { dirname as dirname7, join as join11 } from "node:path";
|
|
11873
|
-
import { homedir as
|
|
11878
|
+
import { homedir as homedir92 } from "node:os";
|
|
11874
11879
|
var __create = Object.create;
|
|
11875
11880
|
var __getProtoOf = Object.getPrototypeOf;
|
|
11876
11881
|
var __defProp = Object.defineProperty;
|
|
@@ -23143,7 +23148,7 @@ var MIGRATIONS2 = [
|
|
|
23143
23148
|
];
|
|
23144
23149
|
var LATEST_SCHEMA_VERSION2 = MIGRATIONS2[MIGRATIONS2.length - 1]?.version ?? 0;
|
|
23145
23150
|
var __filename22 = fileURLToPath2(import.meta.url);
|
|
23146
|
-
var __dirname22 =
|
|
23151
|
+
var __dirname22 = dirname6(__filename22);
|
|
23147
23152
|
var import_yaml3 = __toESM(require_dist2(), 1);
|
|
23148
23153
|
function expandHome2(p, home2 = homedir22()) {
|
|
23149
23154
|
if (p === "~")
|
|
@@ -23167,6 +23172,7 @@ try {
|
|
|
23167
23172
|
const esmRequire = createRequire22(import.meta.url);
|
|
23168
23173
|
native2 = esmRequire("@signet/native");
|
|
23169
23174
|
} catch {}
|
|
23175
|
+
var GRAPHIQ_DEFAULT_INSTALL_DIR2 = join62(homedir42(), ".local", "bin");
|
|
23170
23176
|
var SIGNET_SOURCE_CHECKOUT_DIRNAME2 = "signetai";
|
|
23171
23177
|
var SIGNET_GIT_ALLOWED_DIRECTORIES2 = ["skills", "tools", "dreaming"];
|
|
23172
23178
|
var SIGNET_GIT_PROTECTED_PATHS2 = [
|
|
@@ -23236,11 +23242,11 @@ var VALID_GITHUB_RESOURCE_TYPES2 = new Set(DEFAULT_GITHUB_RESOURCE_TYPES2);
|
|
|
23236
23242
|
function defaultDiscordDesktopCachePath2() {
|
|
23237
23243
|
switch (platform22()) {
|
|
23238
23244
|
case "darwin":
|
|
23239
|
-
return resolve42(
|
|
23245
|
+
return resolve42(homedir52(), "Library", "Application Support", "discord");
|
|
23240
23246
|
case "win32":
|
|
23241
|
-
return resolve42(process.env.APPDATA || resolve42(
|
|
23247
|
+
return resolve42(process.env.APPDATA || resolve42(homedir52(), "AppData", "Roaming"), "discord");
|
|
23242
23248
|
default:
|
|
23243
|
-
return resolve42(process.env.XDG_CONFIG_HOME || resolve42(
|
|
23249
|
+
return resolve42(process.env.XDG_CONFIG_HOME || resolve42(homedir52(), ".config"), "discord");
|
|
23244
23250
|
}
|
|
23245
23251
|
}
|
|
23246
23252
|
var IDENTITY_MODES = ["managed", "off"];
|
|
@@ -23343,13 +23349,13 @@ function loadIdentityMode(agentsDir) {
|
|
|
23343
23349
|
return "managed";
|
|
23344
23350
|
}
|
|
23345
23351
|
}
|
|
23346
|
-
var home2 =
|
|
23352
|
+
var home2 = homedir92();
|
|
23347
23353
|
|
|
23348
23354
|
// src/index.ts
|
|
23349
23355
|
var SIGNET_FORGE_MARKER = "Managed by Signet (@signetai/connector-forge)";
|
|
23350
23356
|
function getHomeDir() {
|
|
23351
23357
|
const home3 = readTrimmedEnv2("HOME");
|
|
23352
|
-
return home3 ??
|
|
23358
|
+
return home3 ?? homedir6();
|
|
23353
23359
|
}
|
|
23354
23360
|
function readJsonObject(path) {
|
|
23355
23361
|
if (!existsSync2(path))
|
|
@@ -23390,11 +23396,11 @@ class ForgeConnector extends BaseConnector {
|
|
|
23390
23396
|
getForgeHome() {
|
|
23391
23397
|
const configured = readTrimmedEnv2("FORGE_CONFIG");
|
|
23392
23398
|
if (configured)
|
|
23393
|
-
return
|
|
23394
|
-
const legacyPath =
|
|
23399
|
+
return resolve3(expandHome2(configured));
|
|
23400
|
+
const legacyPath = join7(getHomeDir(), "forge");
|
|
23395
23401
|
if (existsSync2(legacyPath))
|
|
23396
23402
|
return legacyPath;
|
|
23397
|
-
return
|
|
23403
|
+
return join7(getHomeDir(), ".forge");
|
|
23398
23404
|
}
|
|
23399
23405
|
getConfigPath() {
|
|
23400
23406
|
return this.getMcpConfigPath();
|
|
@@ -23402,7 +23408,7 @@ class ForgeConnector extends BaseConnector {
|
|
|
23402
23408
|
async install(basePath) {
|
|
23403
23409
|
const filesWritten = [];
|
|
23404
23410
|
const configsPatched = [];
|
|
23405
|
-
const expandedBasePath = expandHome2(basePath ||
|
|
23411
|
+
const expandedBasePath = expandHome2(basePath || join7(getHomeDir(), ".agents"));
|
|
23406
23412
|
const identityMode = loadIdentityMode(expandedBasePath);
|
|
23407
23413
|
if (!hasValidIdentity(expandedBasePath)) {
|
|
23408
23414
|
return {
|
|
@@ -23456,7 +23462,7 @@ class ForgeConnector extends BaseConnector {
|
|
|
23456
23462
|
configsPatched
|
|
23457
23463
|
};
|
|
23458
23464
|
}
|
|
23459
|
-
const skillsSource =
|
|
23465
|
+
const skillsSource = join7(expandedBasePath, "skills");
|
|
23460
23466
|
if (existsSync2(skillsSource)) {
|
|
23461
23467
|
this.symlinkSkills(skillsSource, this.getSkillsPath());
|
|
23462
23468
|
}
|
|
@@ -23516,19 +23522,19 @@ class ForgeConnector extends BaseConnector {
|
|
|
23516
23522
|
}
|
|
23517
23523
|
static isHarnessInstalled() {
|
|
23518
23524
|
const home3 = getHomeDir();
|
|
23519
|
-
return existsSync2(readTrimmedEnv2("FORGE_CONFIG") ?? "") || existsSync2(
|
|
23525
|
+
return existsSync2(readTrimmedEnv2("FORGE_CONFIG") ?? "") || existsSync2(join7(home3, "forge", ".mcp.json")) || existsSync2(join7(home3, ".forge", ".mcp.json")) || existsSync2(join7(home3, "forge")) || existsSync2(join7(home3, ".forge"));
|
|
23520
23526
|
}
|
|
23521
23527
|
getAgentsPath() {
|
|
23522
|
-
return
|
|
23528
|
+
return join7(this.getForgeHome(), "AGENTS.md");
|
|
23523
23529
|
}
|
|
23524
23530
|
getSkillsPath() {
|
|
23525
|
-
return
|
|
23531
|
+
return join7(this.getForgeHome(), "skills");
|
|
23526
23532
|
}
|
|
23527
23533
|
getMcpConfigPath() {
|
|
23528
|
-
return
|
|
23534
|
+
return join7(this.getForgeHome(), ".mcp.json");
|
|
23529
23535
|
}
|
|
23530
23536
|
generateAgentsMd(basePath) {
|
|
23531
|
-
const sourcePath =
|
|
23537
|
+
const sourcePath = join7(basePath, "AGENTS.md");
|
|
23532
23538
|
if (!existsSync2(sourcePath))
|
|
23533
23539
|
return null;
|
|
23534
23540
|
const raw = readFileSync2(sourcePath, "utf-8");
|
|
@@ -23576,7 +23582,7 @@ ${header}${body}
|
|
|
23576
23582
|
const skillsDir = this.getSkillsPath();
|
|
23577
23583
|
if (!existsSync2(skillsDir))
|
|
23578
23584
|
return;
|
|
23579
|
-
const skillsSource =
|
|
23585
|
+
const skillsSource = resolve3(signetPath ?? resolveSignetWorkspacePath(), "skills");
|
|
23580
23586
|
let entries;
|
|
23581
23587
|
try {
|
|
23582
23588
|
entries = readdirSync(skillsDir);
|
|
@@ -23584,12 +23590,12 @@ ${header}${body}
|
|
|
23584
23590
|
return;
|
|
23585
23591
|
}
|
|
23586
23592
|
for (const entry of entries) {
|
|
23587
|
-
const entryPath =
|
|
23593
|
+
const entryPath = join7(skillsDir, entry);
|
|
23588
23594
|
try {
|
|
23589
23595
|
if (!lstatSync2(entryPath).isSymbolicLink())
|
|
23590
23596
|
continue;
|
|
23591
23597
|
const rawTarget = readlinkSync(entryPath);
|
|
23592
|
-
const target =
|
|
23598
|
+
const target = resolve3(skillsDir, rawTarget);
|
|
23593
23599
|
if (!isChildOf(target, skillsSource))
|
|
23594
23600
|
continue;
|
|
23595
23601
|
unlinkSync3(entryPath);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@signetai/connector-forge",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.179.0",
|
|
4
4
|
"description": "Signet connector for ForgeCode - installs MCP, identity, and skills integration",
|
|
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.179.0",
|
|
28
|
+
"@signetai/core": "0.179.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@types/node": "^22.0.0",
|