@nepopsx/cli 0.0.19 → 0.0.20
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/catalog.d.ts +19 -0
- package/dist/agents/catalog.d.ts.map +1 -0
- package/dist/agents/catalog.js +45 -0
- package/dist/agents/catalog.js.map +1 -0
- package/dist/agents/configuration.d.ts +1 -0
- package/dist/agents/configuration.d.ts.map +1 -1
- package/dist/agents/configuration.js +36 -0
- package/dist/agents/configuration.js.map +1 -1
- package/dist/agents/configuration.test.d.ts +2 -0
- package/dist/agents/configuration.test.d.ts.map +1 -0
- package/dist/agents/configuration.test.js +32 -0
- package/dist/agents/configuration.test.js.map +1 -0
- package/dist/commands/capture.d.ts +19 -0
- package/dist/commands/capture.d.ts.map +1 -0
- package/dist/commands/capture.js +105 -0
- package/dist/commands/capture.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +11 -30
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/install.d.ts +2 -0
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +86 -15
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/login.d.ts +8 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +169 -80
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/push-learnings.d.ts.map +1 -1
- package/dist/commands/push-learnings.js +93 -62
- package/dist/commands/push-learnings.js.map +1 -1
- package/dist/commands/sync.d.ts +4 -0
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +120 -64
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/up.d.ts +23 -0
- package/dist/commands/up.d.ts.map +1 -0
- package/dist/commands/up.js +263 -0
- package/dist/commands/up.js.map +1 -0
- package/dist/enrichment/workflow.d.ts +1 -0
- package/dist/enrichment/workflow.d.ts.map +1 -1
- package/dist/enrichment/workflow.js +13 -0
- package/dist/enrichment/workflow.js.map +1 -1
- package/dist/generator/preview.d.ts +13 -0
- package/dist/generator/preview.d.ts.map +1 -0
- package/dist/generator/preview.js +242 -0
- package/dist/generator/preview.js.map +1 -0
- package/dist/generator/preview.test.d.ts +19 -0
- package/dist/generator/preview.test.d.ts.map +1 -0
- package/dist/generator/preview.test.js +289 -0
- package/dist/generator/preview.test.js.map +1 -0
- package/dist/generator/render.d.ts +2 -2
- package/dist/generator/render.d.ts.map +1 -1
- package/dist/generator/render.js +37 -18
- package/dist/generator/render.js.map +1 -1
- package/dist/generator/writer.d.ts +15 -1
- package/dist/generator/writer.d.ts.map +1 -1
- package/dist/generator/writer.js +41 -3
- package/dist/generator/writer.js.map +1 -1
- package/dist/hooks/capture-hooks.d.ts +9 -0
- package/dist/hooks/capture-hooks.d.ts.map +1 -0
- package/dist/hooks/capture-hooks.js +100 -0
- package/dist/hooks/capture-hooks.js.map +1 -0
- package/dist/hooks/capture-hooks.test.d.ts +2 -0
- package/dist/hooks/capture-hooks.test.d.ts.map +1 -0
- package/dist/hooks/capture-hooks.test.js +50 -0
- package/dist/hooks/capture-hooks.test.js.map +1 -0
- package/dist/index.js +26 -3
- package/dist/index.js.map +1 -1
- package/dist/learnings/yaml-learnings.d.ts +16 -2
- package/dist/learnings/yaml-learnings.d.ts.map +1 -1
- package/dist/learnings/yaml-learnings.js +43 -8
- package/dist/learnings/yaml-learnings.js.map +1 -1
- package/dist/learnings/yaml-learnings.test.d.ts +2 -0
- package/dist/learnings/yaml-learnings.test.d.ts.map +1 -0
- package/dist/learnings/yaml-learnings.test.js +39 -0
- package/dist/learnings/yaml-learnings.test.js.map +1 -0
- package/dist/licensing/installer.d.ts +2 -2
- package/dist/licensing/installer.d.ts.map +1 -1
- package/dist/licensing/installer.js +3 -1
- package/dist/licensing/installer.js.map +1 -1
- package/dist/licensing/template-fetch.d.ts +2 -2
- package/dist/licensing/template-fetch.d.ts.map +1 -1
- package/dist/licensing/template-fetch.js +4 -1
- package/dist/licensing/template-fetch.js.map +1 -1
- package/dist/mcp/config-generator.d.ts +42 -0
- package/dist/mcp/config-generator.d.ts.map +1 -0
- package/dist/mcp/config-generator.js +55 -0
- package/dist/mcp/config-generator.js.map +1 -0
- package/dist/mcp/config-generator.test.d.ts +7 -0
- package/dist/mcp/config-generator.test.d.ts.map +1 -0
- package/dist/mcp/config-generator.test.js +79 -0
- package/dist/mcp/config-generator.test.js.map +1 -0
- package/dist/ruflo/config-generator.d.ts +22 -0
- package/dist/ruflo/config-generator.d.ts.map +1 -0
- package/dist/ruflo/config-generator.js +89 -0
- package/dist/ruflo/config-generator.js.map +1 -0
- package/dist/ruflo/config-generator.test.d.ts +2 -0
- package/dist/ruflo/config-generator.test.d.ts.map +1 -0
- package/dist/ruflo/config-generator.test.js +18 -0
- package/dist/ruflo/config-generator.test.js.map +1 -0
- package/dist/ruflo/detect.d.ts +11 -0
- package/dist/ruflo/detect.d.ts.map +1 -0
- package/dist/ruflo/detect.js +30 -0
- package/dist/ruflo/detect.js.map +1 -0
- package/dist/ruflo/index.d.ts +3 -0
- package/dist/ruflo/index.d.ts.map +1 -0
- package/dist/ruflo/index.js +3 -0
- package/dist/ruflo/index.js.map +1 -0
- package/dist/security/index.d.ts +1 -1
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/index.js +1 -1
- package/dist/security/index.js.map +1 -1
- package/dist/security/integrity.d.ts +8 -0
- package/dist/security/integrity.d.ts.map +1 -1
- package/dist/security/integrity.js +28 -0
- package/dist/security/integrity.js.map +1 -1
- package/package.json +5 -3
- package/dist/generator/package-renderer.d.ts +0 -38
- package/dist/generator/package-renderer.d.ts.map +0 -1
- package/dist/generator/package-renderer.js +0 -181
- package/dist/generator/package-renderer.js.map +0 -1
- package/dist/generator/provider-transform.d.ts +0 -15
- package/dist/generator/provider-transform.d.ts.map +0 -1
- package/dist/generator/provider-transform.js +0 -163
- package/dist/generator/provider-transform.js.map +0 -1
- package/dist/licensing/fingerprint.test.d.ts +0 -2
- package/dist/licensing/fingerprint.test.d.ts.map +0 -1
- package/dist/licensing/fingerprint.test.js +0 -41
- package/dist/licensing/fingerprint.test.js.map +0 -1
package/dist/commands/install.js
CHANGED
|
@@ -4,16 +4,19 @@ import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
|
4
4
|
import { resolve } from "node:path";
|
|
5
5
|
import { cwd } from "node:process";
|
|
6
6
|
import { parse, stringify } from "yaml";
|
|
7
|
-
import { validateWorkspaceConfig, generateFingerprint, TIER_LIMITS, DEFAULT_PROVIDERS, } from "@nepopsx/core";
|
|
7
|
+
import { validateWorkspaceConfig, generateFingerprint, TIER_LIMITS, DEFAULT_PROVIDERS, IMPLEMENTED_PROVIDERS, } from "@nepopsx/core";
|
|
8
8
|
import { readLicense } from "../licensing/license-manager.js";
|
|
9
9
|
import { fetchRemoteTemplates } from "../licensing/index.js";
|
|
10
10
|
import { downloadBundle, downloadBootstrapConfig, decryptBundle, verifyBundleSha, } from "../licensing/installer.js";
|
|
11
|
-
import {
|
|
11
|
+
import { detectRuflo, generateRufloConfig, buildRufloBinding } from "../ruflo/index.js";
|
|
12
|
+
import { generateCaptureHooks } from "../hooks/capture-hooks.js";
|
|
13
|
+
import { resolveApiBase } from "../config/api-config.js";
|
|
14
|
+
import { generateMcpConfig } from "../mcp/config-generator.js";
|
|
15
|
+
import { getAgentConfigPath, getAgentSupportOperations, bundleToOperations, } from "../agents/configuration.js";
|
|
12
16
|
import { loadLocalAgentConfig, pushRemoteAgentConfig, pushRemoteWorkspaceConfig, fetchRemoteEnrichmentState, } from '../agents/remote-config.js';
|
|
13
17
|
import { loadCustomInstructions } from '../customs/instructions.js';
|
|
14
18
|
import { createEnrichmentMetadata, hashRecord, readLocalEnrichmentState, retargetEnrichmentMetadata, writeLocalEnrichmentState, } from '../enrichment/state.js';
|
|
15
19
|
import { checkEnrichmentGate, checkAgentEnrichmentGate, enrichSingleAgent, parseAgentEnrichmentResponse, writeAgentConfigFile, writeAgentEnrichmentPromptFiles, } from '../enrichment/workflow.js';
|
|
16
|
-
import { renderBundleForInstall, renderAgentBundle } from "../generator/package-renderer.js";
|
|
17
20
|
import { setWatermarkData, applyLicenseWatermark, } from "../generator/render.js";
|
|
18
21
|
import { writeGeneratedFiles, printWriteResult } from "../generator/writer.js";
|
|
19
22
|
import { generateManifest } from "../security/index.js";
|
|
@@ -25,7 +28,15 @@ function resolveProviders(cliProviders, agentConfig) {
|
|
|
25
28
|
if (!raw || raw.length === 0)
|
|
26
29
|
return DEFAULT_PROVIDERS;
|
|
27
30
|
const valid = raw.filter((p) => VALID_PROVIDERS.has(p));
|
|
28
|
-
|
|
31
|
+
// Drop (and warn about) providers that are declared but not yet rendered, so the
|
|
32
|
+
// user gets a clear message instead of an install that silently writes nothing.
|
|
33
|
+
const unimplemented = valid.filter((p) => !IMPLEMENTED_PROVIDERS.includes(p));
|
|
34
|
+
if (unimplemented.length > 0) {
|
|
35
|
+
console.warn(chalk.yellow(`⚠ Provider(s) not yet supported, skipping: ${unimplemented.join(", ")}. ` +
|
|
36
|
+
`Supported: ${IMPLEMENTED_PROVIDERS.join(", ")}.`));
|
|
37
|
+
}
|
|
38
|
+
const implemented = valid.filter((p) => IMPLEMENTED_PROVIDERS.includes(p));
|
|
39
|
+
return implemented.length > 0 ? implemented : DEFAULT_PROVIDERS;
|
|
29
40
|
}
|
|
30
41
|
export async function installCommand(agent, options) {
|
|
31
42
|
if (!AGENT_NAME_RE.test(agent)) {
|
|
@@ -132,7 +143,7 @@ export async function installCommand(agent, options) {
|
|
|
132
143
|
localState = readLocalEnrichmentState(rootDir);
|
|
133
144
|
}
|
|
134
145
|
else {
|
|
135
|
-
const result = await enrichSingleAgent(rootDir, activeLicense, agent, requestedVersion ?? 'latest', gateResult.config, localState, workspaceEnrichment, { yes: options.yes });
|
|
146
|
+
const result = await enrichSingleAgent(rootDir, activeLicense, agent, requestedVersion ?? 'latest', gateResult.config, localState, workspaceEnrichment, { yes: options.yes, system: options.system });
|
|
136
147
|
agentEnrichment = result.enrichment;
|
|
137
148
|
// Re-read local state since enrichSingleAgent writes it
|
|
138
149
|
localState = readLocalEnrichmentState(rootDir);
|
|
@@ -140,6 +151,13 @@ export async function installCommand(agent, options) {
|
|
|
140
151
|
}
|
|
141
152
|
catch (error) {
|
|
142
153
|
console.error(chalk.red('Agent enrichment failed:'), error instanceof Error ? error.message : String(error));
|
|
154
|
+
console.log(chalk.dim('\n No LLM key needed — install with default config: ' +
|
|
155
|
+
chalk.cyan(`nepopsx install ${agent} --system`) +
|
|
156
|
+
'\n or enrich via your own Copilot/Claude: ' +
|
|
157
|
+
chalk.cyan(`nepopsx install ${agent} --agent`) +
|
|
158
|
+
'\n Or just run ' +
|
|
159
|
+
chalk.cyan('nepopsx up') +
|
|
160
|
+
' for one-command setup.'));
|
|
143
161
|
process.exit(1);
|
|
144
162
|
return;
|
|
145
163
|
}
|
|
@@ -161,7 +179,7 @@ export async function installCommand(agent, options) {
|
|
|
161
179
|
localState = readLocalEnrichmentState(rootDir);
|
|
162
180
|
}
|
|
163
181
|
else {
|
|
164
|
-
const result = await enrichSingleAgent(rootDir, activeLicense, agent, requestedVersion ?? 'latest', gateResult.config, localState, workspaceEnrichment, { yes: options.yes });
|
|
182
|
+
const result = await enrichSingleAgent(rootDir, activeLicense, agent, requestedVersion ?? 'latest', gateResult.config, localState, workspaceEnrichment, { yes: options.yes, system: options.system });
|
|
165
183
|
agentEnrichment = result.enrichment;
|
|
166
184
|
localState = readLocalEnrichmentState(rootDir);
|
|
167
185
|
}
|
|
@@ -173,6 +191,15 @@ export async function installCommand(agent, options) {
|
|
|
173
191
|
}
|
|
174
192
|
}
|
|
175
193
|
const rawConfig = parse(readFileSync(configPath, "utf-8"));
|
|
194
|
+
// ── Ruflo detection (drives memory-augmented rendering) ─────────
|
|
195
|
+
// Detect Ruflo up-front so the `ruflo` binding is baked into the workspace
|
|
196
|
+
// config BEFORE it is validated, pushed, and rendered server-side. Without
|
|
197
|
+
// this, the `{{#if config.ruflo}}` memory blocks in agent templates never
|
|
198
|
+
// activate. The local `.claude-flow/` runtime config is still written below.
|
|
199
|
+
const ruflo = detectRuflo(rootDir);
|
|
200
|
+
if (ruflo.available) {
|
|
201
|
+
rawConfig.ruflo = buildRufloBinding(activeLicense.org, activeLicense.workspace);
|
|
202
|
+
}
|
|
176
203
|
const validation = validateWorkspaceConfig(rawConfig);
|
|
177
204
|
if (!validation.valid) {
|
|
178
205
|
console.error(chalk.red("Invalid workspace config:"));
|
|
@@ -182,6 +209,8 @@ export async function installCommand(agent, options) {
|
|
|
182
209
|
process.exit(1);
|
|
183
210
|
}
|
|
184
211
|
const config = validation.config;
|
|
212
|
+
// Resolve target providers once (warns about + drops any declared-but-unimplemented providers).
|
|
213
|
+
const providers = resolveProviders(options.providers, config.agents?.[agent]);
|
|
185
214
|
// ── Plan limit checks ──────────────────────────────────────────
|
|
186
215
|
const limits = TIER_LIMITS[activeLicense.tier];
|
|
187
216
|
// Agent count: count currently installed agents from the config
|
|
@@ -215,7 +244,7 @@ export async function installCommand(agent, options) {
|
|
|
215
244
|
// Download → decrypt → verify
|
|
216
245
|
let encBundle = null;
|
|
217
246
|
try {
|
|
218
|
-
encBundle = await downloadBundle(rootDir, activeLicense, agent, requestedVersion ?? "latest", customInstructions);
|
|
247
|
+
encBundle = await downloadBundle(rootDir, activeLicense, agent, requestedVersion ?? "latest", customInstructions, providers);
|
|
219
248
|
}
|
|
220
249
|
catch (err) {
|
|
221
250
|
console.error(chalk.red("Download failed:"), err instanceof Error ? err.message : String(err));
|
|
@@ -279,9 +308,11 @@ export async function installCommand(agent, options) {
|
|
|
279
308
|
templates,
|
|
280
309
|
source: "remote",
|
|
281
310
|
};
|
|
311
|
+
// Server returns FINAL per-provider files; getAgentSupportOperations still reads
|
|
312
|
+
// the bundle's reserved metadata for the local .nepopsx/ config.
|
|
282
313
|
const operations = [
|
|
283
314
|
...getAgentSupportOperations(rootDir, bundle, agent, config.agents?.[agent]),
|
|
284
|
-
...
|
|
315
|
+
...bundleToOperations(bundle),
|
|
285
316
|
];
|
|
286
317
|
// On first install, also render workspace-core templates (AGENTS.md, copilot-instructions,
|
|
287
318
|
// language instructions). Sync always does this; install skips it for speed but that means
|
|
@@ -290,17 +321,18 @@ export async function installCommand(agent, options) {
|
|
|
290
321
|
if (!existsSync(coreMarker) && activeLicense) {
|
|
291
322
|
const customsDir = resolve(rootDir, config.customs_dir ?? 'customs');
|
|
292
323
|
const customs = loadCustomInstructions(customsDir);
|
|
293
|
-
const coreBundle = await fetchRemoteTemplates(rootDir, activeLicense, 'workspace-core', 'latest', customs);
|
|
324
|
+
const coreBundle = await fetchRemoteTemplates(rootDir, activeLicense, 'workspace-core', 'latest', customs, providers);
|
|
294
325
|
if (coreBundle) {
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
}
|
|
299
|
-
operations.push(...coreOps);
|
|
326
|
+
// Watermarked once, below — applySteganography is not idempotent, so we must
|
|
327
|
+
// never stamp the same op twice.
|
|
328
|
+
operations.push(...bundleToOperations(coreBundle));
|
|
300
329
|
}
|
|
301
330
|
}
|
|
302
|
-
// Apply watermark to all rendered files
|
|
331
|
+
// Apply the license watermark to all rendered files exactly once. SKILL.md must
|
|
332
|
+
// keep its frontmatter at line 1, so it is never watermarked (matches sync.ts).
|
|
303
333
|
for (const op of operations) {
|
|
334
|
+
if (op.path.startsWith('.claude/skills/'))
|
|
335
|
+
continue;
|
|
304
336
|
op.content = applyLicenseWatermark(op.content, op.path);
|
|
305
337
|
}
|
|
306
338
|
// Reset global watermark state
|
|
@@ -320,6 +352,45 @@ export async function installCommand(agent, options) {
|
|
|
320
352
|
const allFiles = operations.map((op) => ({ path: op.path, content: op.content }));
|
|
321
353
|
const manifest = generateManifest(rootDir, allFiles);
|
|
322
354
|
console.log(chalk.dim(`Integrity manifest: ${manifest.length} file(s) hashed → .nepopsx/manifest.sha256`));
|
|
355
|
+
// ── Ruflo integration (optional) ──────────────────────────────
|
|
356
|
+
// `ruflo` was detected up-front (above) and, when available, baked into the
|
|
357
|
+
// workspace config so the backend rendered memory-aware agent files. Here we
|
|
358
|
+
// additionally write the local `.claude-flow/` runtime config + MCP server.
|
|
359
|
+
if (ruflo.available) {
|
|
360
|
+
console.log(chalk.dim(`\n Ruflo ${ruflo.version} detected — configuring memory layer...`));
|
|
361
|
+
const apiUrl = resolveApiBase(rootDir);
|
|
362
|
+
const rufloFiles = generateRufloConfig({
|
|
363
|
+
rootDir,
|
|
364
|
+
orgSlug: activeLicense.org,
|
|
365
|
+
workspaceSlug: activeLicense.workspace,
|
|
366
|
+
agent,
|
|
367
|
+
providers,
|
|
368
|
+
apiUrl,
|
|
369
|
+
licenseKey: activeLicense.key,
|
|
370
|
+
});
|
|
371
|
+
for (const f of rufloFiles) {
|
|
372
|
+
console.log(chalk.dim(` ✓ ${f}`));
|
|
373
|
+
}
|
|
374
|
+
console.log(chalk.dim(" Memory namespace: ") + chalk.cyan(`${activeLicense.org}/${activeLicense.workspace}`));
|
|
375
|
+
}
|
|
376
|
+
else if (!ruflo.hasLocalConfig) {
|
|
377
|
+
console.log(chalk.dim("\n 💡 Install Ruflo for memory-powered agents: ") + chalk.cyan("npx ruflo@latest init"));
|
|
378
|
+
}
|
|
379
|
+
// Register our own provider-agnostic MCP server (nepopsx-memory) so Claude
|
|
380
|
+
// Code / Copilot can call learning_search + learning_store for governed team
|
|
381
|
+
// recall. Independent of Ruflo; uses a ${NEPOPSX_LICENSE_KEY} env placeholder
|
|
382
|
+
// so the committed .mcp.json never carries the raw license key.
|
|
383
|
+
const mcpFiles = generateMcpConfig({ rootDir, apiUrl: resolveApiBase(rootDir) });
|
|
384
|
+
if (mcpFiles.length > 0) {
|
|
385
|
+
console.log(chalk.dim(` MCP recall server (nepopsx-memory): ${mcpFiles.join(", ")}`) +
|
|
386
|
+
chalk.dim(`\n → export ${"NEPOPSX_LICENSE_KEY"}=<your license key> to authenticate recall`));
|
|
387
|
+
}
|
|
388
|
+
// Set up session-end capture hooks so reflector learnings auto-sync to the
|
|
389
|
+
// backend (`nepopsx capture` → /learnings/auto) — native on each chosen provider.
|
|
390
|
+
const hookFiles = generateCaptureHooks(rootDir, providers);
|
|
391
|
+
if (hookFiles.length > 0) {
|
|
392
|
+
console.log(chalk.dim(` Capture hooks (learnings auto-sync on session end): ${hookFiles.join(", ")}`));
|
|
393
|
+
}
|
|
323
394
|
console.log(chalk.bold.green(`\n✅ Installed ${agent}@${resolvedVersion}\n`));
|
|
324
395
|
}
|
|
325
396
|
async function handleAgentAssistedEnrichment(rootDir, license, agent, requestedVersion, workspaceConfig, localState, options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/login.d.ts
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
interface LoginOptions {
|
|
2
|
-
|
|
2
|
+
config?: string;
|
|
3
|
+
browser?: boolean;
|
|
3
4
|
}
|
|
5
|
+
/**
|
|
6
|
+
* `nepopsx login` — OAuth device-authorization grant. No password in the
|
|
7
|
+
* terminal and no license key to copy-paste: the CLI shows a short code, the
|
|
8
|
+
* already-signed-in dashboard approves it, and the backend hands back the org's
|
|
9
|
+
* license (provisioned via the normal activation path) + a device token.
|
|
10
|
+
*/
|
|
4
11
|
export declare function loginCommand(options: LoginOptions): Promise<void>;
|
|
5
12
|
export {};
|
|
6
13
|
//# sourceMappingURL=login.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAgBA,UAAU,YAAY;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA2BD;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA+FvE"}
|
package/dist/commands/login.js
CHANGED
|
@@ -1,108 +1,197 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
|
-
import {
|
|
3
|
-
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
4
|
-
import {
|
|
2
|
+
import { spawn } from "node:child_process";
|
|
3
|
+
import { chmodSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
4
|
+
import { hostname, platform } from "node:os";
|
|
5
|
+
import { join, resolve } from "node:path";
|
|
5
6
|
import { cwd } from "node:process";
|
|
7
|
+
import { parse } from "yaml";
|
|
8
|
+
import { validateWorkspaceConfig } from "@nepopsx/core";
|
|
6
9
|
import { resolveApiBase } from "../config/api-config.js";
|
|
7
10
|
import { API_TIMEOUT_MS } from "../constants.js";
|
|
11
|
+
import { activateLicense } from "../licensing/index.js";
|
|
8
12
|
const NEPOPSX_DIR = ".nepopsx";
|
|
9
13
|
const CONFIG_FILE = "config.json";
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
14
|
+
const WORKSPACE_CONFIG = ".nepopsx/workspace.yaml";
|
|
15
|
+
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
16
|
+
/**
|
|
17
|
+
* `nepopsx login` — OAuth device-authorization grant. No password in the
|
|
18
|
+
* terminal and no license key to copy-paste: the CLI shows a short code, the
|
|
19
|
+
* already-signed-in dashboard approves it, and the backend hands back the org's
|
|
20
|
+
* license (provisioned via the normal activation path) + a device token.
|
|
21
|
+
*/
|
|
22
|
+
export async function loginCommand(options) {
|
|
23
|
+
const rootDir = cwd();
|
|
24
|
+
const apiBase = resolveApiBase(rootDir);
|
|
25
|
+
const label = `${hostname()} (${platform()})`;
|
|
26
|
+
console.log(chalk.bold.cyan("\n🔐 NEPOPSX login\n"));
|
|
27
|
+
// 1. Begin the grant.
|
|
28
|
+
let start;
|
|
29
|
+
try {
|
|
30
|
+
start = await postJson(`${apiBase}/auth/device/start`, { label });
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
console.error(chalk.red("Could not start login:"), errMsg(err));
|
|
34
|
+
process.exit(1);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
// 2. Show the code + open the browser.
|
|
38
|
+
console.log(" Confirm this code in your browser to authorize this machine:\n");
|
|
39
|
+
console.log(" " + chalk.bold.yellow(formatUserCode(start.user_code)) + "\n");
|
|
40
|
+
console.log(" " + chalk.dim(start.verification_uri_complete) + "\n");
|
|
41
|
+
if (options.browser !== false) {
|
|
42
|
+
openBrowser(start.verification_uri_complete);
|
|
43
|
+
}
|
|
44
|
+
// 3. Poll until approved or the code expires.
|
|
45
|
+
process.stdout.write(chalk.dim(" Waiting for authorization"));
|
|
46
|
+
const deadline = Date.now() + start.expires_in * 1000;
|
|
47
|
+
const intervalMs = Math.max(1, start.interval) * 1000;
|
|
48
|
+
let approved = null;
|
|
49
|
+
while (Date.now() < deadline) {
|
|
50
|
+
await sleep(intervalMs);
|
|
51
|
+
process.stdout.write(chalk.dim("."));
|
|
52
|
+
let poll;
|
|
53
|
+
try {
|
|
54
|
+
poll = await postJson(`${apiBase}/auth/device/token`, {
|
|
55
|
+
device_code: start.device_code,
|
|
41
56
|
});
|
|
42
57
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
58
|
+
catch (err) {
|
|
59
|
+
// 400 = invalid/expired code; anything else = transient — keep waiting.
|
|
60
|
+
if (isHttpStatus(err, 400)) {
|
|
61
|
+
process.stdout.write("\n");
|
|
62
|
+
console.error(chalk.red("\n This login code expired. Run `nepopsx login` again."));
|
|
63
|
+
process.exit(1);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
continue;
|
|
48
67
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
const configPath = join(rootDir, NEPOPSX_DIR, CONFIG_FILE);
|
|
53
|
-
let existing = {};
|
|
54
|
-
if (existsSync(configPath)) {
|
|
55
|
-
try {
|
|
56
|
-
existing = JSON.parse(readFileSync(configPath, "utf-8"));
|
|
57
|
-
}
|
|
58
|
-
catch {
|
|
59
|
-
/* start fresh */
|
|
68
|
+
if (poll.status === "approved") {
|
|
69
|
+
approved = poll;
|
|
70
|
+
break;
|
|
60
71
|
}
|
|
61
72
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
export async function loginCommand(options) {
|
|
67
|
-
const rootDir = cwd();
|
|
68
|
-
const email = options.email ?? (await prompt("Email: "));
|
|
69
|
-
const password = await prompt("Password: ", true);
|
|
70
|
-
if (!email || !password) {
|
|
71
|
-
console.error(chalk.red("Email and password are required."));
|
|
73
|
+
process.stdout.write("\n");
|
|
74
|
+
if (!approved) {
|
|
75
|
+
console.error(chalk.red("\n Timed out waiting for authorization. Run `nepopsx login` again."));
|
|
72
76
|
process.exit(1);
|
|
77
|
+
return;
|
|
73
78
|
}
|
|
74
|
-
|
|
79
|
+
// 4. Persist the device identity token (for `whoami`/future device-only auth).
|
|
80
|
+
writeConfig(rootDir, {
|
|
81
|
+
auth: {
|
|
82
|
+
token: approved.device_token,
|
|
83
|
+
email: "",
|
|
84
|
+
org: approved.org?.slug ?? "",
|
|
85
|
+
},
|
|
86
|
+
});
|
|
87
|
+
// 5. Provision the org license through the normal activation path so every
|
|
88
|
+
// existing command (templates decrypt, sync, learnings) keeps working.
|
|
89
|
+
if (!approved.license) {
|
|
90
|
+
console.warn(chalk.yellow("\n ✓ Signed in, but your org has no active plan yet."));
|
|
91
|
+
console.log(chalk.dim(" Request a plan from the dashboard, then run `nepopsx login` again.\n"));
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
const workspaceName = readWorkspaceName(rootDir, options.config);
|
|
95
|
+
const result = await activateLicense(rootDir, approved.license.key, workspaceName);
|
|
96
|
+
if (!result.success) {
|
|
97
|
+
console.error(chalk.red(`\n Signed in, but provisioning the license failed: ${result.error}`));
|
|
98
|
+
process.exit(1);
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
const license = result.license;
|
|
102
|
+
console.log(chalk.bold.green(`\n✅ Logged in — ${license.org} (${license.tier})`));
|
|
103
|
+
console.log(chalk.dim(` License provisioned for this machine. Next: `) + chalk.cyan("nepopsx up") + "\n");
|
|
104
|
+
}
|
|
105
|
+
// ─── helpers ────────────────────────────────────────────────────────────────
|
|
106
|
+
async function postJson(url, body) {
|
|
75
107
|
const controller = new AbortController();
|
|
76
108
|
const timer = setTimeout(() => controller.abort(), API_TIMEOUT_MS);
|
|
77
|
-
let response;
|
|
78
109
|
try {
|
|
79
|
-
|
|
110
|
+
const res = await fetch(url, {
|
|
80
111
|
method: "POST",
|
|
81
112
|
headers: { "Content-Type": "application/json" },
|
|
82
|
-
body: JSON.stringify(
|
|
113
|
+
body: JSON.stringify(body),
|
|
83
114
|
signal: controller.signal,
|
|
84
115
|
});
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
116
|
+
if (!res.ok) {
|
|
117
|
+
const text = await res.text().catch(() => "");
|
|
118
|
+
throw new HttpError(res.status, text || res.statusText);
|
|
119
|
+
}
|
|
120
|
+
return (await res.json());
|
|
89
121
|
}
|
|
90
122
|
finally {
|
|
91
123
|
clearTimeout(timer);
|
|
92
124
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
125
|
+
}
|
|
126
|
+
class HttpError extends Error {
|
|
127
|
+
status;
|
|
128
|
+
constructor(status, message) {
|
|
129
|
+
super(message);
|
|
130
|
+
this.status = status;
|
|
97
131
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
132
|
+
}
|
|
133
|
+
function isHttpStatus(err, status) {
|
|
134
|
+
return err instanceof HttpError && err.status === status;
|
|
135
|
+
}
|
|
136
|
+
function errMsg(err) {
|
|
137
|
+
return err instanceof Error ? err.message : String(err);
|
|
138
|
+
}
|
|
139
|
+
function formatUserCode(code) {
|
|
140
|
+
// Group an even-length code into two halves (XXXXX-XXXXX) for readability.
|
|
141
|
+
if (code.length >= 6 && code.length % 2 === 0) {
|
|
142
|
+
const half = code.length / 2;
|
|
143
|
+
return `${code.slice(0, half)}-${code.slice(half)}`;
|
|
144
|
+
}
|
|
145
|
+
return code;
|
|
146
|
+
}
|
|
147
|
+
function openBrowser(url) {
|
|
148
|
+
const isWin = process.platform === "win32";
|
|
149
|
+
const cmd = process.platform === "darwin" ? "open" : isWin ? "cmd" : "xdg-open";
|
|
150
|
+
const args = isWin ? ["/c", "start", "", url] : [url];
|
|
151
|
+
try {
|
|
152
|
+
const child = spawn(cmd, args, { stdio: "ignore", detached: true });
|
|
153
|
+
child.on("error", () => { });
|
|
154
|
+
child.unref();
|
|
155
|
+
}
|
|
156
|
+
catch {
|
|
157
|
+
/* best-effort; the URL is printed above */
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
function readWorkspaceName(rootDir, configRel) {
|
|
161
|
+
const configPath = resolve(rootDir, configRel ?? WORKSPACE_CONFIG);
|
|
162
|
+
if (!existsSync(configPath))
|
|
163
|
+
return "unknown";
|
|
164
|
+
try {
|
|
165
|
+
const validation = validateWorkspaceConfig(parse(readFileSync(configPath, "utf-8")));
|
|
166
|
+
return validation.valid ? validation.config.workspace.name : "unknown";
|
|
167
|
+
}
|
|
168
|
+
catch {
|
|
169
|
+
return "unknown";
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
function writeConfig(rootDir, patch) {
|
|
173
|
+
const configPath = join(rootDir, NEPOPSX_DIR, CONFIG_FILE);
|
|
174
|
+
let existing = {};
|
|
175
|
+
if (existsSync(configPath)) {
|
|
176
|
+
try {
|
|
177
|
+
existing = JSON.parse(readFileSync(configPath, "utf-8"));
|
|
178
|
+
}
|
|
179
|
+
catch {
|
|
180
|
+
/* start fresh */
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
mkdirSync(join(rootDir, NEPOPSX_DIR), { recursive: true });
|
|
184
|
+
writeFileSync(configPath, JSON.stringify({ ...existing, ...patch }, null, 2) + "\n", {
|
|
185
|
+
encoding: "utf-8",
|
|
186
|
+
mode: 0o600,
|
|
105
187
|
});
|
|
106
|
-
|
|
188
|
+
// mode on writeFileSync only applies on create; enforce on existing files too —
|
|
189
|
+
// this file now holds the device token.
|
|
190
|
+
try {
|
|
191
|
+
chmodSync(configPath, 0o600);
|
|
192
|
+
}
|
|
193
|
+
catch {
|
|
194
|
+
/* best-effort (e.g. non-POSIX fs) */
|
|
195
|
+
}
|
|
107
196
|
}
|
|
108
197
|
//# sourceMappingURL=login.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
|