@nepopsx/cli 0.0.4 → 0.0.6
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/agents/configuration.d.ts +9 -0
- package/dist/agents/configuration.d.ts.map +1 -0
- package/dist/agents/configuration.js +57 -0
- package/dist/agents/configuration.js.map +1 -0
- package/dist/agents/remote-config.d.ts +30 -0
- package/dist/agents/remote-config.d.ts.map +1 -0
- package/dist/agents/remote-config.js +102 -0
- package/dist/agents/remote-config.js.map +1 -0
- package/dist/commands/activate.d.ts.map +1 -1
- package/dist/commands/activate.js +4 -3
- package/dist/commands/activate.js.map +1 -1
- package/dist/commands/decode.js +2 -2
- package/dist/commands/decode.js.map +1 -1
- package/dist/commands/doctor.js +16 -16
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +353 -18
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/install.d.ts +3 -0
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +215 -19
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/login.d.ts +0 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +3 -3
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/push-learnings.d.ts +14 -0
- package/dist/commands/push-learnings.d.ts.map +1 -0
- package/dist/commands/push-learnings.js +186 -0
- package/dist/commands/push-learnings.js.map +1 -0
- package/dist/commands/scan.d.ts.map +1 -1
- package/dist/commands/scan.js +130 -15
- package/dist/commands/scan.js.map +1 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +159 -138
- package/dist/commands/sync.js.map +1 -1
- package/dist/config/api-config.d.ts.map +1 -1
- package/dist/config/api-config.js +4 -0
- package/dist/config/api-config.js.map +1 -1
- package/dist/constants.d.ts +7 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +7 -0
- package/dist/constants.js.map +1 -0
- package/dist/customs/instructions.d.ts +3 -0
- package/dist/customs/instructions.d.ts.map +1 -0
- package/dist/customs/instructions.js +51 -0
- package/dist/customs/instructions.js.map +1 -0
- package/dist/enrichment/confirm.d.ts +17 -0
- package/dist/enrichment/confirm.d.ts.map +1 -0
- package/dist/enrichment/confirm.js +44 -0
- package/dist/enrichment/confirm.js.map +1 -0
- package/dist/enrichment/state.d.ts +8 -0
- package/dist/enrichment/state.d.ts.map +1 -0
- package/dist/enrichment/state.js +107 -0
- package/dist/enrichment/state.js.map +1 -0
- package/dist/enrichment/types.d.ts +13 -0
- package/dist/enrichment/types.d.ts.map +1 -0
- package/dist/enrichment/types.js +2 -0
- package/dist/enrichment/types.js.map +1 -0
- package/dist/enrichment/workflow.d.ts +41 -0
- package/dist/enrichment/workflow.d.ts.map +1 -0
- package/dist/enrichment/workflow.js +354 -0
- package/dist/enrichment/workflow.js.map +1 -0
- package/dist/generator/package-renderer.d.ts +4 -12
- package/dist/generator/package-renderer.d.ts.map +1 -1
- package/dist/generator/package-renderer.js +41 -61
- package/dist/generator/package-renderer.js.map +1 -1
- package/dist/generator/render.d.ts +5 -11
- package/dist/generator/render.d.ts.map +1 -1
- package/dist/generator/render.js +13 -3
- package/dist/generator/render.js.map +1 -1
- package/dist/index.js +15 -4
- package/dist/index.js.map +1 -1
- package/dist/licensing/installer.d.ts +9 -1
- package/dist/licensing/installer.d.ts.map +1 -1
- package/dist/licensing/installer.js +36 -22
- package/dist/licensing/installer.js.map +1 -1
- package/dist/licensing/license-manager.d.ts +6 -0
- package/dist/licensing/license-manager.d.ts.map +1 -1
- package/dist/licensing/license-manager.js +12 -35
- package/dist/licensing/license-manager.js.map +1 -1
- package/dist/licensing/template-fetch.d.ts +3 -2
- package/dist/licensing/template-fetch.d.ts.map +1 -1
- package/dist/licensing/template-fetch.js +10 -41
- package/dist/licensing/template-fetch.js.map +1 -1
- package/dist/scan/auto-bootstrap.d.ts +3 -0
- package/dist/scan/auto-bootstrap.d.ts.map +1 -0
- package/dist/scan/auto-bootstrap.js +30 -0
- package/dist/scan/auto-bootstrap.js.map +1 -0
- package/dist/scan/llm/anthropic.d.ts.map +1 -1
- package/dist/scan/llm/anthropic.js +1 -10
- package/dist/scan/llm/anthropic.js.map +1 -1
- package/dist/scan/llm/ollama.d.ts.map +1 -1
- package/dist/scan/llm/ollama.js +1 -10
- package/dist/scan/llm/ollama.js.map +1 -1
- package/dist/scan/llm/openai.d.ts.map +1 -1
- package/dist/scan/llm/openai.js +1 -10
- package/dist/scan/llm/openai.js.map +1 -1
- package/dist/utils/fetch.d.ts +9 -0
- package/dist/utils/fetch.d.ts.map +1 -0
- package/dist/utils/fetch.js +18 -0
- package/dist/utils/fetch.js.map +1 -0
- package/package.json +2 -2
|
@@ -6,10 +6,10 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
|
6
6
|
import { join } from 'node:path';
|
|
7
7
|
import { TIER_LIMITS, generateMachineId, generateFingerprint, checkExpiry, } from '@nepopsx/core';
|
|
8
8
|
import { resolveApiBase } from '../config/api-config.js';
|
|
9
|
+
import { fetchWithTimeout } from '../utils/fetch.js';
|
|
10
|
+
import { API_TIMEOUT_MS } from '../constants.js';
|
|
9
11
|
const LICENSE_DIR = '.nepopsx';
|
|
10
12
|
const LICENSE_FILE = 'license.json';
|
|
11
|
-
// ─── API configuration ──────────────────────────────────────
|
|
12
|
-
const REQUEST_TIMEOUT_MS = 10_000;
|
|
13
13
|
// ─── License file operations ────────────────────────────────
|
|
14
14
|
/**
|
|
15
15
|
* Read the local license file. Returns null if not found or invalid.
|
|
@@ -57,7 +57,7 @@ export async function activateLicense(rootDir, licenseKey, workspaceName) {
|
|
|
57
57
|
machine_id: machineId,
|
|
58
58
|
workspace: workspaceName,
|
|
59
59
|
}),
|
|
60
|
-
});
|
|
60
|
+
}, API_TIMEOUT_MS);
|
|
61
61
|
if (!response.ok) {
|
|
62
62
|
const body = await response.text();
|
|
63
63
|
return {
|
|
@@ -84,7 +84,7 @@ export async function activateLicense(rootDir, licenseKey, workspaceName) {
|
|
|
84
84
|
// Network failure — might be offline
|
|
85
85
|
return {
|
|
86
86
|
success: false,
|
|
87
|
-
error: `Cannot reach NEPOPSX API: ${err.message}. Check your internet connection.`,
|
|
87
|
+
error: `Cannot reach NEPOPSX API: ${err instanceof Error ? err.message : String(err)}. Check your internet connection.`,
|
|
88
88
|
};
|
|
89
89
|
}
|
|
90
90
|
}
|
|
@@ -134,7 +134,7 @@ export async function validateLicense(rootDir, config) {
|
|
|
134
134
|
machine_id: license.machine_id,
|
|
135
135
|
workspace: license.workspace,
|
|
136
136
|
}),
|
|
137
|
-
});
|
|
137
|
+
}, API_TIMEOUT_MS);
|
|
138
138
|
if (response.ok) {
|
|
139
139
|
const data = await response.json();
|
|
140
140
|
if (data.valid) {
|
|
@@ -223,7 +223,7 @@ async function refreshLicense(rootDir, license) {
|
|
|
223
223
|
refresh_token: license.refresh_token,
|
|
224
224
|
machine_id: license.machine_id,
|
|
225
225
|
}),
|
|
226
|
-
});
|
|
226
|
+
}, API_TIMEOUT_MS);
|
|
227
227
|
if (!response.ok)
|
|
228
228
|
return null;
|
|
229
229
|
const data = await response.json();
|
|
@@ -242,8 +242,14 @@ async function refreshLicense(rootDir, license) {
|
|
|
242
242
|
return null;
|
|
243
243
|
}
|
|
244
244
|
}
|
|
245
|
+
/**
|
|
245
246
|
/**
|
|
246
247
|
* Check if the workspace config exceeds the license tier's limits.
|
|
248
|
+
*
|
|
249
|
+
* Only scale limits are enforced here — agent quality (customs, philosophy,
|
|
250
|
+
* prompts) is identical across all tiers. The differentiators are:
|
|
251
|
+
* - how many services / agent packages are allowed
|
|
252
|
+
* - access to LLM-powered scan (team+)
|
|
247
253
|
*/
|
|
248
254
|
export function enforceTierLimits(config, tier) {
|
|
249
255
|
const limits = TIER_LIMITS[tier];
|
|
@@ -269,24 +275,6 @@ export function enforceTierLimits(config, tier) {
|
|
|
269
275
|
});
|
|
270
276
|
}
|
|
271
277
|
}
|
|
272
|
-
// Customs
|
|
273
|
-
if (config.customs_dir && !limits.customs_allowed) {
|
|
274
|
-
violations.push({
|
|
275
|
-
feature: 'customs',
|
|
276
|
-
limit: 'not available',
|
|
277
|
-
actual: 'customs_dir configured',
|
|
278
|
-
required_tier: 'team',
|
|
279
|
-
});
|
|
280
|
-
}
|
|
281
|
-
// Philosophy
|
|
282
|
-
if (config.philosophy && !limits.philosophy_allowed) {
|
|
283
|
-
violations.push({
|
|
284
|
-
feature: 'philosophy',
|
|
285
|
-
limit: 'not available',
|
|
286
|
-
actual: 'philosophy configured',
|
|
287
|
-
required_tier: 'team',
|
|
288
|
-
});
|
|
289
|
-
}
|
|
290
278
|
return violations;
|
|
291
279
|
}
|
|
292
280
|
// ─── Dev mode bypass ────────────────────────────────────────
|
|
@@ -297,15 +285,4 @@ export function enforceTierLimits(config, tier) {
|
|
|
297
285
|
export function isDevMode() {
|
|
298
286
|
return process.env.NEPOPSX_DEV === '1';
|
|
299
287
|
}
|
|
300
|
-
// ─── Utilities ──────────────────────────────────────────────
|
|
301
|
-
async function fetchWithTimeout(url, init) {
|
|
302
|
-
const controller = new AbortController();
|
|
303
|
-
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS);
|
|
304
|
-
try {
|
|
305
|
-
return await fetch(url, { ...init, signal: controller.signal });
|
|
306
|
-
}
|
|
307
|
-
finally {
|
|
308
|
-
clearTimeout(timeout);
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
288
|
//# sourceMappingURL=license-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"license-manager.js","sourceRoot":"","sources":["../../src/licensing/license-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAW,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAEL,WAAW,EACX,iBAAiB,EAAE,mBAAmB,EAAE,WAAW,GACpD,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"license-manager.js","sourceRoot":"","sources":["../../src/licensing/license-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,12 +11,13 @@
|
|
|
11
11
|
* In dev mode (NEPOPSX_DEV=1) or for free tier, falls back to local templates.
|
|
12
12
|
*/
|
|
13
13
|
import type { License } from '@nepopsx/core';
|
|
14
|
+
import type { CustomInstruction } from '../generator/render.js';
|
|
14
15
|
export interface TemplateBundle {
|
|
15
16
|
/** Agent name (e.g., "feature-factory") */
|
|
16
17
|
agent: string;
|
|
17
18
|
/** Agent version */
|
|
18
19
|
version: string;
|
|
19
|
-
/** Map of relative path →
|
|
20
|
+
/** Map of relative path → rendered file content */
|
|
20
21
|
templates: Record<string, string>;
|
|
21
22
|
/** Whether this came from remote or local fallback */
|
|
22
23
|
source: 'remote' | 'local';
|
|
@@ -27,5 +28,5 @@ export interface TemplateBundle {
|
|
|
27
28
|
*
|
|
28
29
|
* @returns TemplateBundle on success, null on failure (caller should use local fallback)
|
|
29
30
|
*/
|
|
30
|
-
export declare function fetchRemoteTemplates(rootDir: string, license: License, agentName: string, agentVersion: string): Promise<TemplateBundle | null>;
|
|
31
|
+
export declare function fetchRemoteTemplates(rootDir: string, license: License, agentName: string, agentVersion: string, customInstructions?: CustomInstruction[]): Promise<TemplateBundle | null>;
|
|
31
32
|
//# sourceMappingURL=template-fetch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-fetch.d.ts","sourceRoot":"","sources":["../../src/licensing/template-fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"template-fetch.d.ts","sourceRoot":"","sources":["../../src/licensing/template-fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAK7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAIhE,MAAM,WAAW,cAAc;IAC7B,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,sDAAsD;IACtD,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC5B;AAMD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,kBAAkB,GAAE,iBAAiB,EAAO,GAC3C,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAsChC"}
|
|
@@ -10,9 +10,11 @@
|
|
|
10
10
|
*
|
|
11
11
|
* In dev mode (NEPOPSX_DEV=1) or for free tier, falls back to local templates.
|
|
12
12
|
*/
|
|
13
|
-
import { createDecipheriv, createHash } from 'node:crypto';
|
|
14
13
|
import { resolveApiBase } from '../config/api-config.js';
|
|
15
|
-
|
|
14
|
+
import { fetchWithTimeout } from '../utils/fetch.js';
|
|
15
|
+
import { decryptBundle as decryptBundleRaw } from './installer.js';
|
|
16
|
+
import { DOWNLOAD_TIMEOUT_MS } from '../constants.js';
|
|
17
|
+
// EncryptedBundle is imported from installer.ts
|
|
16
18
|
// ─── Public API ─────────────────────────────────────────────
|
|
17
19
|
/**
|
|
18
20
|
* Fetch agent templates from the remote NEPOPSX API.
|
|
@@ -20,7 +22,7 @@ const REQUEST_TIMEOUT_MS = 30_000;
|
|
|
20
22
|
*
|
|
21
23
|
* @returns TemplateBundle on success, null on failure (caller should use local fallback)
|
|
22
24
|
*/
|
|
23
|
-
export async function fetchRemoteTemplates(rootDir, license, agentName, agentVersion) {
|
|
25
|
+
export async function fetchRemoteTemplates(rootDir, license, agentName, agentVersion, customInstructions = []) {
|
|
24
26
|
const apiBase = resolveApiBase(rootDir);
|
|
25
27
|
try {
|
|
26
28
|
const response = await fetchWithTimeout(`${apiBase}/templates/${agentName}/${agentVersion}`, {
|
|
@@ -32,13 +34,14 @@ export async function fetchRemoteTemplates(rootDir, license, agentName, agentVer
|
|
|
32
34
|
body: JSON.stringify({
|
|
33
35
|
machine_id: license.machine_id,
|
|
34
36
|
workspace: license.workspace,
|
|
37
|
+
custom_instructions: customInstructions,
|
|
35
38
|
}),
|
|
36
|
-
});
|
|
39
|
+
}, DOWNLOAD_TIMEOUT_MS);
|
|
37
40
|
if (!response.ok) {
|
|
38
41
|
return null;
|
|
39
42
|
}
|
|
40
43
|
const encrypted = await response.json();
|
|
41
|
-
const templates =
|
|
44
|
+
const templates = JSON.parse(decryptBundleRaw(encrypted, license.key));
|
|
42
45
|
return {
|
|
43
46
|
agent: agentName,
|
|
44
47
|
version: agentVersion,
|
|
@@ -52,41 +55,7 @@ export async function fetchRemoteTemplates(rootDir, license, agentName, agentVer
|
|
|
52
55
|
}
|
|
53
56
|
}
|
|
54
57
|
// ─── Decryption ─────────────────────────────────────────────
|
|
55
|
-
|
|
56
|
-
* Derive the AES-256 key from the license key.
|
|
57
|
-
* Key = SHA-256(license_key + "nepopsx-template-key")
|
|
58
|
-
*/
|
|
59
|
-
function deriveKey(licenseKey) {
|
|
60
|
-
return createHash('sha256')
|
|
61
|
-
.update(`${licenseKey}:nepopsx-template-key`)
|
|
62
|
-
.digest();
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Decrypt an AES-256-GCM encrypted template bundle.
|
|
66
|
-
* Returns the template map (path → content).
|
|
67
|
-
*/
|
|
68
|
-
function decryptBundle(bundle, licenseKey) {
|
|
69
|
-
const key = deriveKey(licenseKey);
|
|
70
|
-
const iv = Buffer.from(bundle.iv, 'base64');
|
|
71
|
-
const tag = Buffer.from(bundle.tag, 'base64');
|
|
72
|
-
const encrypted = Buffer.from(bundle.payload, 'base64');
|
|
73
|
-
const decipher = createDecipheriv('aes-256-gcm', key, iv);
|
|
74
|
-
decipher.setAuthTag(tag);
|
|
75
|
-
const decrypted = Buffer.concat([
|
|
76
|
-
decipher.update(encrypted),
|
|
77
|
-
decipher.final(),
|
|
78
|
-
]);
|
|
79
|
-
return JSON.parse(decrypted.toString('utf-8'));
|
|
80
|
-
}
|
|
58
|
+
// decryptBundle is imported from installer.ts
|
|
81
59
|
// ─── Utilities ──────────────────────────────────────────────
|
|
82
|
-
|
|
83
|
-
const controller = new AbortController();
|
|
84
|
-
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS);
|
|
85
|
-
try {
|
|
86
|
-
return await fetch(url, { ...init, signal: controller.signal });
|
|
87
|
-
}
|
|
88
|
-
finally {
|
|
89
|
-
clearTimeout(timeout);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
60
|
+
// fetchWithTimeout is imported from shared utils/fetch.ts
|
|
92
61
|
//# sourceMappingURL=template-fetch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-fetch.js","sourceRoot":"","sources":["../../src/licensing/template-fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"template-fetch.js","sourceRoot":"","sources":["../../src/licensing/template-fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,aAAa,IAAI,gBAAgB,EAAwB,MAAM,gBAAgB,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAgBtD,gDAAgD;AAEhD,+DAA+D;AAE/D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAe,EACf,OAAgB,EAChB,SAAiB,EACjB,YAAoB,EACpB,qBAA0C,EAAE;IAE5C,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAExC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CACrC,GAAG,OAAO,cAAc,SAAS,IAAI,YAAY,EAAE,EACnD;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,eAAe,EAAE,UAAU,OAAO,CAAC,GAAG,EAAE;aACzC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,mBAAmB,EAAE,kBAAkB;aACxC,CAAC;SACH,EACD,mBAAmB,CACpB,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAqB,CAAC;QAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAA2B,CAAC;QAEjG,OAAO;YACL,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,YAAY;YACrB,SAAS;YACT,MAAM,EAAE,QAAQ;SACjB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,+DAA+D;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,+DAA+D;AAE/D,8CAA8C;AAE9C,+DAA+D;AAE/D,0DAA0D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-bootstrap.d.ts","sourceRoot":"","sources":["../../src/scan/auto-bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAczE,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,GAAG,IAAI,GACtB,OAAO,CAAC,OAAO,CAAC,CAwBlB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { TIER_LIMITS, readScanState } from '@nepopsx/core';
|
|
3
|
+
import { scanCommand } from '../commands/scan.js';
|
|
4
|
+
const AUTO_SCAN_MAX_AGE_DAYS = 7;
|
|
5
|
+
function getScanAgeDays(lastRunAt) {
|
|
6
|
+
const lastRun = new Date(lastRunAt).getTime();
|
|
7
|
+
if (Number.isNaN(lastRun)) {
|
|
8
|
+
return Number.POSITIVE_INFINITY;
|
|
9
|
+
}
|
|
10
|
+
return (Date.now() - lastRun) / (1000 * 60 * 60 * 24);
|
|
11
|
+
}
|
|
12
|
+
export async function ensureFreshWorkspaceScan(rootDir, license) {
|
|
13
|
+
if (!license || !TIER_LIMITS[license.tier].scan_allowed) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
const scanState = readScanState(rootDir);
|
|
17
|
+
if (!scanState) {
|
|
18
|
+
console.log(chalk.yellow('\nNo scan state found. Running required bootstrap scan before backend sync...'));
|
|
19
|
+
await scanCommand({ yes: true, resume: true });
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
const ageDays = getScanAgeDays(scanState.lastRunAt);
|
|
23
|
+
if (ageDays <= AUTO_SCAN_MAX_AGE_DAYS) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
console.log(chalk.yellow(`\nScan state is stale (${Math.floor(ageDays)} day(s) old). Running required refresh scan before backend sync...`));
|
|
27
|
+
await scanCommand({ yes: true, resume: true });
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=auto-bootstrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-bootstrap.js","sourceRoot":"","sources":["../../src/scan/auto-bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,aAAa,EAAgB,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAEjC,SAAS,cAAc,CAAC,SAAiB;IACvC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;IAC9C,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,iBAAiB,CAAC;IAClC,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAAe,EACf,OAAuB;IAEvB,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;QACxD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,+EAA+E,CAAC,CAAC,CAAC;QAC3G,MAAM,WAAW,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACpD,IAAI,OAAO,IAAI,sBAAsB,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,0BAA0B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,oEAAoE,CAClH,CACF,CAAC;IACF,MAAM,WAAW,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../src/scan/llm/anthropic.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../src/scan/llm/anthropic.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AASvE,qBAAa,iBAAkB,YAAW,WAAW;IAKjD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IALxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,gBAAgB,QAAQ;gBAGd,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,MAAsB;IAKhD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI9B,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;CAkFtD"}
|
|
@@ -1,18 +1,9 @@
|
|
|
1
|
+
import { fetchWithTimeout } from '../../utils/fetch.js';
|
|
1
2
|
const DEFAULT_MODEL = 'claude-3-5-sonnet-20241022';
|
|
2
3
|
const ENDPOINT = 'https://api.anthropic.com/v1/messages';
|
|
3
4
|
const TIMEOUT_MS = 120_000;
|
|
4
5
|
const MAX_RETRIES = 3;
|
|
5
6
|
const ANTHROPIC_VERSION = '2023-06-01';
|
|
6
|
-
async function fetchWithTimeout(url, init, ms) {
|
|
7
|
-
const controller = new AbortController();
|
|
8
|
-
const timer = setTimeout(() => controller.abort(), ms);
|
|
9
|
-
try {
|
|
10
|
-
return await fetch(url, { ...init, signal: controller.signal });
|
|
11
|
-
}
|
|
12
|
-
finally {
|
|
13
|
-
clearTimeout(timer);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
7
|
export class AnthropicProvider {
|
|
17
8
|
apiKey;
|
|
18
9
|
model;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/scan/llm/anthropic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/scan/llm/anthropic.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../../src/scan/llm/ollama.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../../src/scan/llm/ollama.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAQvE,qBAAa,cAAe,YAAW,WAAW;IAK9C,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IALxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,gBAAgB,SAAS;gBAGf,OAAO,GAAE,MAAyB,EAClC,KAAK,GAAE,MAAsB;IAKhD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI9B,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;CAyDtD"}
|
package/dist/scan/llm/ollama.js
CHANGED
|
@@ -1,17 +1,8 @@
|
|
|
1
|
+
import { fetchWithTimeout } from '../../utils/fetch.js';
|
|
1
2
|
const DEFAULT_MODEL = 'llama3.2';
|
|
2
3
|
const DEFAULT_BASE_URL = 'http://localhost:11434';
|
|
3
4
|
const TIMEOUT_MS = 180_000; // Local models can be slower
|
|
4
5
|
const MAX_RETRIES = 5; // Higher retry budget for local models
|
|
5
|
-
async function fetchWithTimeout(url, init, ms) {
|
|
6
|
-
const controller = new AbortController();
|
|
7
|
-
const timer = setTimeout(() => controller.abort(), ms);
|
|
8
|
-
try {
|
|
9
|
-
return await fetch(url, { ...init, signal: controller.signal });
|
|
10
|
-
}
|
|
11
|
-
finally {
|
|
12
|
-
clearTimeout(timer);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
6
|
export class OllamaProvider {
|
|
16
7
|
baseUrl;
|
|
17
8
|
model;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../../src/scan/llm/ollama.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../../src/scan/llm/ollama.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/scan/llm/openai.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/scan/llm/openai.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAQvE,qBAAa,cAAe,YAAW,WAAW;IAK9C,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAN3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,gBAAgB,QAAQ;gBAGd,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,MAAsB,EAC7B,QAAQ,GAAE,MAAyB;IAKtD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI9B,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;CAqEtD"}
|
package/dist/scan/llm/openai.js
CHANGED
|
@@ -1,17 +1,8 @@
|
|
|
1
|
+
import { fetchWithTimeout } from '../../utils/fetch.js';
|
|
1
2
|
const DEFAULT_MODEL = 'gpt-4o';
|
|
2
3
|
const DEFAULT_ENDPOINT = 'https://api.openai.com/v1';
|
|
3
4
|
const TIMEOUT_MS = 120_000;
|
|
4
5
|
const MAX_RETRIES = 3;
|
|
5
|
-
async function fetchWithTimeout(url, init, ms) {
|
|
6
|
-
const controller = new AbortController();
|
|
7
|
-
const timer = setTimeout(() => controller.abort(), ms);
|
|
8
|
-
try {
|
|
9
|
-
return await fetch(url, { ...init, signal: controller.signal });
|
|
10
|
-
}
|
|
11
|
-
finally {
|
|
12
|
-
clearTimeout(timer);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
6
|
export class OpenAiProvider {
|
|
16
7
|
apiKey;
|
|
17
8
|
model;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/scan/llm/openai.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/scan/llm/openai.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* fetch() with an AbortController-based timeout.
|
|
3
|
+
*
|
|
4
|
+
* @param url Request URL
|
|
5
|
+
* @param init Standard RequestInit options
|
|
6
|
+
* @param ms Timeout in milliseconds
|
|
7
|
+
*/
|
|
8
|
+
export declare function fetchWithTimeout(url: string, init: RequestInit, ms: number): Promise<Response>;
|
|
9
|
+
//# sourceMappingURL=fetch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/utils/fetch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,WAAW,EACjB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,QAAQ,CAAC,CAQnB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* fetch() with an AbortController-based timeout.
|
|
3
|
+
*
|
|
4
|
+
* @param url Request URL
|
|
5
|
+
* @param init Standard RequestInit options
|
|
6
|
+
* @param ms Timeout in milliseconds
|
|
7
|
+
*/
|
|
8
|
+
export async function fetchWithTimeout(url, init, ms) {
|
|
9
|
+
const controller = new AbortController();
|
|
10
|
+
const timer = setTimeout(() => controller.abort(), ms);
|
|
11
|
+
try {
|
|
12
|
+
return await fetch(url, { ...init, signal: controller.signal });
|
|
13
|
+
}
|
|
14
|
+
finally {
|
|
15
|
+
clearTimeout(timer);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/utils/fetch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAW,EACX,IAAiB,EACjB,EAAU;IAEV,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACvD,IAAI,CAAC;QACH,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IAClE,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nepopsx/cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.6",
|
|
4
4
|
"description": "NEPOPSX CLI — generate AI agent workspaces from configuration",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"type": "module",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"inquirer": "^12.3.2",
|
|
28
28
|
"ora": "^8.2.0",
|
|
29
29
|
"yaml": "^2.7.0",
|
|
30
|
-
"@nepopsx/core": "0.0.
|
|
30
|
+
"@nepopsx/core": "0.0.6"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/archiver": "^7.0.0",
|