clawmagic 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +49 -0
- package/configs/base/AGENTS.md +93 -0
- package/configs/base/HEARTBEAT.md +58 -0
- package/configs/base/MEMORY.md +20 -0
- package/configs/base/SESSION_HANDOFF.md +18 -0
- package/configs/base/TOOLS.md +22 -0
- package/configs/base/USER.md +10 -0
- package/configs/creator/SOUL.md +55 -0
- package/configs/developer/SOUL.md +39 -0
- package/configs/pro/SOUL.md +50 -0
- package/configs/realestate/SOUL.md +46 -0
- package/configs/standard/SOUL.md +37 -0
- package/dist/configure.d.ts +5 -0
- package/dist/configure.d.ts.map +1 -0
- package/dist/configure.js +268 -0
- package/dist/configure.js.map +1 -0
- package/dist/detect.d.ts +4 -0
- package/dist/detect.d.ts.map +1 -0
- package/dist/detect.js +156 -0
- package/dist/detect.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +542 -0
- package/dist/index.js.map +1 -0
- package/dist/license.d.ts +6 -0
- package/dist/license.d.ts.map +1 -0
- package/dist/license.js +125 -0
- package/dist/license.js.map +1 -0
- package/dist/security.d.ts +3 -0
- package/dist/security.d.ts.map +1 -0
- package/dist/security.js +100 -0
- package/dist/security.js.map +1 -0
- package/dist/server.d.ts +12 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +227 -0
- package/dist/server.js.map +1 -0
- package/dist/types.d.ts +42 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +46 -0
- package/dist/types.js.map +1 -0
- package/dist/validate-keys.d.ts +6 -0
- package/dist/validate-keys.d.ts.map +1 -0
- package/dist/validate-keys.js +83 -0
- package/dist/validate-keys.js.map +1 -0
- package/package.json +47 -0
- package/src/web/index.html +746 -0
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.generateConfig = generateConfig;
|
|
37
|
+
exports.installWorkspaceFiles = installWorkspaceFiles;
|
|
38
|
+
exports.backupConfig = backupConfig;
|
|
39
|
+
const fs = __importStar(require("fs"));
|
|
40
|
+
const path = __importStar(require("path"));
|
|
41
|
+
const crypto = __importStar(require("crypto"));
|
|
42
|
+
const types_1 = require("./types");
|
|
43
|
+
const CONFIGS_DIR = path.join(__dirname, '..', 'configs');
|
|
44
|
+
function getConfigsDir() {
|
|
45
|
+
if (fs.existsSync(CONFIGS_DIR))
|
|
46
|
+
return CONFIGS_DIR;
|
|
47
|
+
throw new Error('Config templates not found. Package may be corrupted — reinstall clawmagic.');
|
|
48
|
+
}
|
|
49
|
+
function generateConfig(options) {
|
|
50
|
+
const { flavor, apiKeys, existingConfig } = options;
|
|
51
|
+
const flavorInfo = types_1.FLAVORS.find(f => f.value === flavor) || types_1.FLAVORS[0];
|
|
52
|
+
// Build providers from validated API keys
|
|
53
|
+
const providers = {};
|
|
54
|
+
const providerOrder = [];
|
|
55
|
+
for (const key of apiKeys) {
|
|
56
|
+
if (!key.validated)
|
|
57
|
+
continue;
|
|
58
|
+
switch (key.provider) {
|
|
59
|
+
case 'anthropic':
|
|
60
|
+
providers.anthropic = {
|
|
61
|
+
apiKey: key.key,
|
|
62
|
+
baseUrl: 'https://api.anthropic.com',
|
|
63
|
+
models: [],
|
|
64
|
+
};
|
|
65
|
+
providerOrder.push('anthropic');
|
|
66
|
+
break;
|
|
67
|
+
case 'openai':
|
|
68
|
+
providers.openai = {
|
|
69
|
+
apiKey: key.key,
|
|
70
|
+
baseUrl: 'https://api.openai.com/v1',
|
|
71
|
+
models: [],
|
|
72
|
+
};
|
|
73
|
+
providerOrder.push('openai');
|
|
74
|
+
break;
|
|
75
|
+
case 'google':
|
|
76
|
+
providers.google = {
|
|
77
|
+
apiKey: key.key,
|
|
78
|
+
baseUrl: 'https://generativelanguage.googleapis.com/v1beta',
|
|
79
|
+
models: [],
|
|
80
|
+
};
|
|
81
|
+
providerOrder.push('google');
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// Determine default model based on available providers
|
|
86
|
+
let defaultModel = flavorInfo.defaultModel;
|
|
87
|
+
if (!providers.anthropic && providers.openai) {
|
|
88
|
+
defaultModel = 'openai/gpt-4o';
|
|
89
|
+
}
|
|
90
|
+
else if (!providers.anthropic && !providers.openai && providers.google) {
|
|
91
|
+
defaultModel = 'google/gemini-2.5-flash';
|
|
92
|
+
}
|
|
93
|
+
// Build fallback chain
|
|
94
|
+
const fallbackModels = [];
|
|
95
|
+
if (providers.anthropic)
|
|
96
|
+
fallbackModels.push('anthropic/claude-sonnet-4-20250514');
|
|
97
|
+
if (providers.openai)
|
|
98
|
+
fallbackModels.push('openai/gpt-4o');
|
|
99
|
+
if (providers.google)
|
|
100
|
+
fallbackModels.push('google/gemini-2.5-flash');
|
|
101
|
+
// Generate gateway auth token
|
|
102
|
+
const gatewayToken = crypto.randomBytes(32).toString('hex');
|
|
103
|
+
const config = {
|
|
104
|
+
models: {
|
|
105
|
+
default: defaultModel,
|
|
106
|
+
providers,
|
|
107
|
+
},
|
|
108
|
+
agents: {
|
|
109
|
+
defaults: {
|
|
110
|
+
workspace: '~/.openclaw/workspace',
|
|
111
|
+
contextTokens: 200000,
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
tools: {
|
|
115
|
+
profile: flavorInfo.toolsProfile,
|
|
116
|
+
web: {
|
|
117
|
+
search: {
|
|
118
|
+
provider: 'brave',
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
gateway: {
|
|
123
|
+
host: '127.0.0.1',
|
|
124
|
+
port: 18789,
|
|
125
|
+
auth: {
|
|
126
|
+
token: gatewayToken,
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
heartbeat: {
|
|
130
|
+
enabled: true,
|
|
131
|
+
intervalMinutes: 30,
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
// Add model fallback if multiple providers
|
|
135
|
+
if (fallbackModels.length > 1) {
|
|
136
|
+
config.models.fallback = fallbackModels.slice(1);
|
|
137
|
+
}
|
|
138
|
+
// Merge with existing config (preserve user customizations)
|
|
139
|
+
if (existingConfig) {
|
|
140
|
+
// Preserve existing gateway port if set
|
|
141
|
+
if (existingConfig.gateway?.port) {
|
|
142
|
+
config.gateway.port = existingConfig.gateway.port;
|
|
143
|
+
}
|
|
144
|
+
// Preserve existing gateway host if not loopback default
|
|
145
|
+
if (existingConfig.gateway?.host && existingConfig.gateway.host !== '0.0.0.0') {
|
|
146
|
+
config.gateway.host = existingConfig.gateway.host;
|
|
147
|
+
}
|
|
148
|
+
// Preserve existing auth token if present
|
|
149
|
+
if (existingConfig.gateway?.auth?.token) {
|
|
150
|
+
config.gateway.auth.token = existingConfig.gateway.auth.token;
|
|
151
|
+
}
|
|
152
|
+
// Preserve channels
|
|
153
|
+
if (existingConfig.channels) {
|
|
154
|
+
config.channels = existingConfig.channels;
|
|
155
|
+
}
|
|
156
|
+
// Preserve cron
|
|
157
|
+
if (existingConfig.cron) {
|
|
158
|
+
config.cron = existingConfig.cron;
|
|
159
|
+
}
|
|
160
|
+
// Preserve skills entries
|
|
161
|
+
if (existingConfig.skills) {
|
|
162
|
+
config.skills = existingConfig.skills;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return config;
|
|
166
|
+
}
|
|
167
|
+
function installWorkspaceFiles(flavor, workspacePath) {
|
|
168
|
+
const installed = [];
|
|
169
|
+
const skipped = [];
|
|
170
|
+
const configsDir = getConfigsDir();
|
|
171
|
+
// Ensure workspace exists
|
|
172
|
+
if (!fs.existsSync(workspacePath)) {
|
|
173
|
+
fs.mkdirSync(workspacePath, { recursive: true });
|
|
174
|
+
}
|
|
175
|
+
// Copy base files (don't overwrite existing)
|
|
176
|
+
const baseDir = path.join(configsDir, 'base');
|
|
177
|
+
if (fs.existsSync(baseDir)) {
|
|
178
|
+
const baseFiles = fs.readdirSync(baseDir);
|
|
179
|
+
for (const file of baseFiles) {
|
|
180
|
+
const dest = path.join(workspacePath, file);
|
|
181
|
+
if (fs.existsSync(dest)) {
|
|
182
|
+
skipped.push(file);
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
fs.copyFileSync(path.join(baseDir, file), dest);
|
|
186
|
+
installed.push(file);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
console.warn(' ⚠ Base config templates not found — workspace files will not be installed.');
|
|
191
|
+
console.warn(' Reinstall clawmagic or check your installation.');
|
|
192
|
+
}
|
|
193
|
+
// Copy flavor-specific SOUL.md
|
|
194
|
+
const flavorDir = path.join(configsDir, flavor);
|
|
195
|
+
if (fs.existsSync(flavorDir)) {
|
|
196
|
+
const soulSrc = path.join(flavorDir, 'SOUL.md');
|
|
197
|
+
const soulDest = path.join(workspacePath, 'SOUL.md');
|
|
198
|
+
if (fs.existsSync(soulSrc)) {
|
|
199
|
+
if (!fs.existsSync(soulDest)) {
|
|
200
|
+
fs.copyFileSync(soulSrc, soulDest);
|
|
201
|
+
installed.push('SOUL.md');
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
skipped.push('SOUL.md (exists)');
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
// Create memory directory structure
|
|
209
|
+
const memoryDir = path.join(workspacePath, 'memory');
|
|
210
|
+
if (!fs.existsSync(memoryDir)) {
|
|
211
|
+
fs.mkdirSync(memoryDir, { recursive: true });
|
|
212
|
+
installed.push('memory/');
|
|
213
|
+
// Create heartbeat state
|
|
214
|
+
const heartbeatState = {
|
|
215
|
+
lastChecks: {
|
|
216
|
+
email: null,
|
|
217
|
+
calendar: null,
|
|
218
|
+
weather: null,
|
|
219
|
+
},
|
|
220
|
+
};
|
|
221
|
+
fs.writeFileSync(path.join(memoryDir, 'heartbeat-state.json'), JSON.stringify(heartbeatState, null, 2));
|
|
222
|
+
installed.push('memory/heartbeat-state.json');
|
|
223
|
+
}
|
|
224
|
+
// Create life/ PARA structure
|
|
225
|
+
const lifeDirs = [
|
|
226
|
+
'life',
|
|
227
|
+
'life/projects',
|
|
228
|
+
'life/areas',
|
|
229
|
+
'life/resources',
|
|
230
|
+
'life/archive',
|
|
231
|
+
];
|
|
232
|
+
for (const dir of lifeDirs) {
|
|
233
|
+
const fullPath = path.join(workspacePath, dir);
|
|
234
|
+
if (!fs.existsSync(fullPath)) {
|
|
235
|
+
fs.mkdirSync(fullPath, { recursive: true });
|
|
236
|
+
installed.push(`${dir}/`);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
// Create life/index.md if not exists
|
|
240
|
+
const indexPath = path.join(workspacePath, 'life', 'index.md');
|
|
241
|
+
if (!fs.existsSync(indexPath)) {
|
|
242
|
+
fs.writeFileSync(indexPath, `# Entity Index\n\n_No entities tracked yet. Facts will be added as you interact with your agent._\n`);
|
|
243
|
+
installed.push('life/index.md');
|
|
244
|
+
}
|
|
245
|
+
// Create docs directory
|
|
246
|
+
const docsDir = path.join(workspacePath, 'docs');
|
|
247
|
+
if (!fs.existsSync(docsDir)) {
|
|
248
|
+
fs.mkdirSync(docsDir, { recursive: true });
|
|
249
|
+
installed.push('docs/');
|
|
250
|
+
}
|
|
251
|
+
return installed;
|
|
252
|
+
}
|
|
253
|
+
function backupConfig(configPath) {
|
|
254
|
+
if (!fs.existsSync(configPath))
|
|
255
|
+
return null;
|
|
256
|
+
try {
|
|
257
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-').slice(0, 19);
|
|
258
|
+
const backupPath = `${configPath}.backup-${timestamp}`;
|
|
259
|
+
fs.copyFileSync(configPath, backupPath);
|
|
260
|
+
return backupPath;
|
|
261
|
+
}
|
|
262
|
+
catch (err) {
|
|
263
|
+
console.warn(` ⚠ Could not back up config: ${err.message || 'unknown error'}`);
|
|
264
|
+
console.warn(' Continuing without backup.');
|
|
265
|
+
return null;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
//# sourceMappingURL=configure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"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"}
|
package/dist/detect.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../src/detect.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,wBAAgB,cAAc,IAAI,YAAY,GAAG,IAAI,CA+CpD;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAuElF"}
|
package/dist/detect.js
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.detectOpenClaw = detectOpenClaw;
|
|
37
|
+
exports.calculateSecurityScore = calculateSecurityScore;
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
const os = __importStar(require("os"));
|
|
41
|
+
const child_process_1 = require("child_process");
|
|
42
|
+
function detectOpenClaw() {
|
|
43
|
+
// Try to find openclaw binary
|
|
44
|
+
let version = '';
|
|
45
|
+
try {
|
|
46
|
+
const whichResult = (0, child_process_1.execSync)('which openclaw 2>/dev/null', { encoding: 'utf-8', timeout: 5000 }).trim();
|
|
47
|
+
if (!whichResult)
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
// Try common locations
|
|
52
|
+
const commonPaths = [
|
|
53
|
+
'/usr/local/bin/openclaw',
|
|
54
|
+
'/usr/bin/openclaw',
|
|
55
|
+
path.join(os.homedir(), '.local', 'bin', 'openclaw'),
|
|
56
|
+
];
|
|
57
|
+
const found = commonPaths.find(p => fs.existsSync(p));
|
|
58
|
+
if (!found)
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
// Get version
|
|
62
|
+
try {
|
|
63
|
+
version = (0, child_process_1.execSync)('openclaw --version 2>/dev/null', { encoding: 'utf-8', timeout: 5000 }).trim();
|
|
64
|
+
// Extract version number if prefixed
|
|
65
|
+
const match = version.match(/[\d]+\.[\d]+\.[\d]+/);
|
|
66
|
+
if (match)
|
|
67
|
+
version = match[0];
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
version = 'unknown';
|
|
71
|
+
}
|
|
72
|
+
// Find config
|
|
73
|
+
const configPath = path.join(os.homedir(), '.openclaw', 'openclaw.json');
|
|
74
|
+
const workspacePath = path.join(os.homedir(), '.openclaw', 'workspace');
|
|
75
|
+
let currentConfig = null;
|
|
76
|
+
if (fs.existsSync(configPath)) {
|
|
77
|
+
try {
|
|
78
|
+
const raw = fs.readFileSync(configPath, 'utf-8');
|
|
79
|
+
currentConfig = JSON.parse(raw);
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
currentConfig = null;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
version,
|
|
87
|
+
configPath,
|
|
88
|
+
workspacePath,
|
|
89
|
+
currentConfig,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
function calculateSecurityScore(config, workspacePath) {
|
|
93
|
+
let score = 0;
|
|
94
|
+
if (!config)
|
|
95
|
+
return 0;
|
|
96
|
+
// Gateway auth enabled (+15)
|
|
97
|
+
if (config.gateway?.auth?.token || config.gateway?.auth?.enabled) {
|
|
98
|
+
score += 15;
|
|
99
|
+
}
|
|
100
|
+
// HTTPS/TLS configured (+10)
|
|
101
|
+
if (config.gateway?.tls?.cert || config.gateway?.tls?.enabled) {
|
|
102
|
+
score += 10;
|
|
103
|
+
}
|
|
104
|
+
// File permissions correct (+10)
|
|
105
|
+
if (workspacePath) {
|
|
106
|
+
try {
|
|
107
|
+
const configPath = path.join(path.dirname(workspacePath), 'openclaw.json');
|
|
108
|
+
if (fs.existsSync(configPath)) {
|
|
109
|
+
const stat = fs.statSync(configPath);
|
|
110
|
+
const mode = stat.mode & 0o777;
|
|
111
|
+
if (mode <= 0o600)
|
|
112
|
+
score += 10;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
catch { }
|
|
116
|
+
}
|
|
117
|
+
// API keys not in plaintext config (+15)
|
|
118
|
+
// Check if keys use env vars or external refs
|
|
119
|
+
const configStr = JSON.stringify(config);
|
|
120
|
+
const hasPlaintextKeys = /sk-[a-zA-Z0-9]{20,}/.test(configStr) || /sk-ant-[a-zA-Z0-9]{20,}/.test(configStr);
|
|
121
|
+
if (!hasPlaintextKeys) {
|
|
122
|
+
score += 15;
|
|
123
|
+
}
|
|
124
|
+
// Heartbeat configured (+5)
|
|
125
|
+
if (config.heartbeat?.enabled !== false && config.heartbeat) {
|
|
126
|
+
score += 5;
|
|
127
|
+
}
|
|
128
|
+
// Memory system active (+10)
|
|
129
|
+
if (workspacePath && fs.existsSync(path.join(workspacePath, 'MEMORY.md'))) {
|
|
130
|
+
score += 10;
|
|
131
|
+
}
|
|
132
|
+
// Model fallback chain (+10)
|
|
133
|
+
const providers = config.models?.providers;
|
|
134
|
+
if (providers && Object.keys(providers).length >= 2) {
|
|
135
|
+
score += 10;
|
|
136
|
+
}
|
|
137
|
+
// Skills configured (+10)
|
|
138
|
+
if (config.skills?.entries && Object.keys(config.skills.entries).length > 0) {
|
|
139
|
+
score += 10;
|
|
140
|
+
}
|
|
141
|
+
else if (config.tools?.profile === 'full') {
|
|
142
|
+
score += 5;
|
|
143
|
+
}
|
|
144
|
+
// Workspace files present (+10)
|
|
145
|
+
if (workspacePath) {
|
|
146
|
+
const requiredFiles = ['AGENTS.md', 'SOUL.md', 'MEMORY.md'];
|
|
147
|
+
const present = requiredFiles.filter(f => fs.existsSync(path.join(workspacePath, f)));
|
|
148
|
+
score += Math.floor((present.length / requiredFiles.length) * 10);
|
|
149
|
+
}
|
|
150
|
+
// Cron jobs configured (+5)
|
|
151
|
+
if (config.cron?.jobs && config.cron.jobs.length > 0) {
|
|
152
|
+
score += 5;
|
|
153
|
+
}
|
|
154
|
+
return Math.min(score, 100);
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=detect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../src/detect.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|