@nepopsx/cli 0.0.4 → 0.0.5
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 +1 -0
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +157 -18
- 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 +35 -0
- package/dist/enrichment/workflow.d.ts.map +1 -0
- package/dist/enrichment/workflow.js +305 -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 +13 -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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-renderer.d.ts","sourceRoot":"","sources":["../../src/generator/package-renderer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"package-renderer.d.ts","sourceRoot":"","sources":["../../src/generator/package-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAKlD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,cAAc,GACrB,cAAc,EAAE,CAqBlB;AAID;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,cAAc,GACrB,cAAc,EAAE,CAmElB"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Package renderer —
|
|
2
|
+
* Package renderer — maps already-rendered agent bundles into WriteOperations.
|
|
3
3
|
*
|
|
4
4
|
* Two rendering modes:
|
|
5
5
|
* renderBundleForInstall — all files land under .github/ (preserves bundle layout)
|
|
6
6
|
* renderAgentBundle — remaps schemas to openspec/ (used by sync)
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
* Decrypted templates are never written to disk — only the final rendered output is.
|
|
8
|
+
* Backend bundles are already rendered server-side. The CLI only remaps paths.
|
|
10
9
|
*/
|
|
11
10
|
import { join } from 'node:path';
|
|
12
|
-
import {
|
|
11
|
+
import { isReservedBundleRootPath } from '../agents/configuration.js';
|
|
13
12
|
// ─── Install mode ───────────────────────────────────────────
|
|
14
13
|
/**
|
|
15
14
|
* Render a downloaded agent bundle for `nepopsx install`.
|
|
@@ -20,17 +19,14 @@ import { renderTemplate, registerAgentPartialsFromMap, clearPartialNames } from
|
|
|
20
19
|
*
|
|
21
20
|
* Decrypted .hbs source is kept in memory only — never touches disk.
|
|
22
21
|
*/
|
|
23
|
-
export function renderBundleForInstall(bundle
|
|
22
|
+
export function renderBundleForInstall(bundle) {
|
|
24
23
|
const operations = [];
|
|
25
|
-
// Register partials first so they're available when rendering other templates
|
|
26
|
-
const partialNames = registerAgentPartialsFromMap(bundle.templates, config, agentMeta);
|
|
27
24
|
for (const [relativePath, rawContent] of Object.entries(bundle.templates)) {
|
|
28
|
-
|
|
25
|
+
if (isReservedBundleRootPath(relativePath))
|
|
26
|
+
continue;
|
|
29
27
|
const isHbs = relativePath.endsWith('.hbs');
|
|
30
28
|
const outputPath = isHbs ? relativePath.replace(/\.hbs$/, '') : relativePath;
|
|
31
|
-
const content =
|
|
32
|
-
? renderTemplate(rawContent, config, agentMeta)
|
|
33
|
-
: rawContent;
|
|
29
|
+
const content = rawContent;
|
|
34
30
|
if (content.trim().length === 0)
|
|
35
31
|
continue;
|
|
36
32
|
operations.push({
|
|
@@ -39,7 +35,6 @@ export function renderBundleForInstall(bundle, config, agentMeta) {
|
|
|
39
35
|
source: `remote:${bundle.agent}/${relativePath}`,
|
|
40
36
|
});
|
|
41
37
|
}
|
|
42
|
-
clearPartialNames(partialNames);
|
|
43
38
|
return operations;
|
|
44
39
|
}
|
|
45
40
|
// ─── Sync mode ──────────────────────────────────────────────
|
|
@@ -49,24 +44,24 @@ export function renderBundleForInstall(bundle, config, agentMeta) {
|
|
|
49
44
|
* Uses prefix-based remapping so schemas land in openspec/ and
|
|
50
45
|
* generated agent/prompt files land under .github/.
|
|
51
46
|
*/
|
|
52
|
-
export function renderAgentBundle(bundle
|
|
47
|
+
export function renderAgentBundle(bundle) {
|
|
53
48
|
const operations = [];
|
|
54
|
-
|
|
55
|
-
const partialNames = registerAgentPartialsFromMap(bundle.templates, config, agentMeta);
|
|
56
|
-
// Rendered template directories
|
|
49
|
+
const handledPaths = new Set();
|
|
57
50
|
const templateDirs = [
|
|
58
51
|
{ prefix: 'agents/', output: '.github/agents' },
|
|
59
52
|
{ prefix: 'prompts/', output: '.github/prompts' },
|
|
60
53
|
{ prefix: 'instructions/', output: '.github/instructions' },
|
|
54
|
+
{ prefix: 'skills/', output: '.github/skills' },
|
|
61
55
|
];
|
|
62
56
|
for (const { prefix, output } of templateDirs) {
|
|
63
57
|
for (const [relativePath, templateSource] of Object.entries(bundle.templates)) {
|
|
64
|
-
if (!relativePath.startsWith(prefix)
|
|
58
|
+
if (!relativePath.startsWith(prefix))
|
|
65
59
|
continue;
|
|
66
60
|
const outputFileName = relativePath.slice(prefix.length).replace(/\.hbs$/, '');
|
|
67
|
-
const content =
|
|
61
|
+
const content = templateSource;
|
|
68
62
|
if (content.trim().length === 0)
|
|
69
63
|
continue;
|
|
64
|
+
handledPaths.add(relativePath);
|
|
70
65
|
operations.push({
|
|
71
66
|
path: join(output, outputFileName),
|
|
72
67
|
content,
|
|
@@ -74,70 +69,55 @@ export function renderAgentBundle(bundle, config, agentMeta) {
|
|
|
74
69
|
});
|
|
75
70
|
}
|
|
76
71
|
}
|
|
77
|
-
// Write partials to .github/partials/
|
|
78
72
|
for (const [relativePath, rawContent] of Object.entries(bundle.templates)) {
|
|
79
73
|
if (!relativePath.startsWith('partials/'))
|
|
80
74
|
continue;
|
|
81
75
|
const baseName = relativePath.slice('partials/'.length);
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
if (
|
|
85
|
-
|
|
86
|
-
|
|
76
|
+
const outputFileName = baseName.replace(/\.hbs$/, '');
|
|
77
|
+
const content = rawContent;
|
|
78
|
+
if (content.trim().length === 0)
|
|
79
|
+
continue;
|
|
80
|
+
handledPaths.add(relativePath);
|
|
81
|
+
operations.push({
|
|
82
|
+
path: join('.github/partials', outputFileName),
|
|
83
|
+
content,
|
|
84
|
+
source: `remote:${bundle.agent}/${relativePath}`,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
copySyncSchemaFiles(bundle.templates, bundle.agent, operations);
|
|
88
|
+
for (const [relativePath, rawContent] of Object.entries(bundle.templates)) {
|
|
89
|
+
if (handledPaths.has(relativePath) || isReservedBundleRootPath(relativePath)) {
|
|
90
|
+
continue;
|
|
87
91
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
content = rawContent;
|
|
92
|
+
if (relativePath.startsWith('schemas/')) {
|
|
93
|
+
continue;
|
|
91
94
|
}
|
|
95
|
+
const outputPath = relativePath.replace(/\.hbs$/, '');
|
|
96
|
+
const content = rawContent;
|
|
92
97
|
if (content.trim().length === 0)
|
|
93
98
|
continue;
|
|
94
99
|
operations.push({
|
|
95
|
-
path:
|
|
100
|
+
path: outputPath,
|
|
96
101
|
content,
|
|
97
102
|
source: `remote:${bundle.agent}/${relativePath}`,
|
|
98
103
|
});
|
|
99
104
|
}
|
|
100
|
-
// Schema files → openspec/
|
|
101
|
-
copySyncSchemaFiles(bundle.templates, config, agentMeta, operations);
|
|
102
|
-
clearPartialNames(partialNames);
|
|
103
105
|
return operations;
|
|
104
106
|
}
|
|
105
107
|
// ─── Internals ──────────────────────────────────────────────
|
|
106
|
-
function copySyncSchemaFiles(templateMap,
|
|
107
|
-
const schemaContent = templateMap['schemas/schema.yaml'];
|
|
108
|
-
if (schemaContent) {
|
|
109
|
-
operations.push({
|
|
110
|
-
path: `openspec/schemas/${agentMeta.name}/schema.yaml`,
|
|
111
|
-
content: renderTemplate(schemaContent, config, agentMeta),
|
|
112
|
-
source: `remote:${agentMeta.name}/schemas/schema.yaml`,
|
|
113
|
-
});
|
|
114
|
-
}
|
|
108
|
+
function copySyncSchemaFiles(templateMap, agentName, operations) {
|
|
115
109
|
for (const [relativePath, rawContent] of Object.entries(templateMap)) {
|
|
116
|
-
if (!relativePath.startsWith('schemas/
|
|
110
|
+
if (!relativePath.startsWith('schemas/'))
|
|
111
|
+
continue;
|
|
112
|
+
const outputName = relativePath.slice('schemas/'.length).replace(/\.hbs$/, '');
|
|
113
|
+
const content = rawContent;
|
|
114
|
+
if (content.trim().length === 0)
|
|
117
115
|
continue;
|
|
118
|
-
const outputName = relativePath.slice('schemas/templates/'.length).replace(/\.hbs$/, '');
|
|
119
|
-
const content = relativePath.endsWith('.hbs')
|
|
120
|
-
? renderTemplate(rawContent, config, agentMeta)
|
|
121
|
-
: rawContent;
|
|
122
116
|
operations.push({
|
|
123
|
-
path: `openspec/schemas/${
|
|
117
|
+
path: `openspec/schemas/${agentName}/${outputName}`,
|
|
124
118
|
content,
|
|
125
|
-
source: `remote:${
|
|
119
|
+
source: `remote:${agentName}/${relativePath}`,
|
|
126
120
|
});
|
|
127
121
|
}
|
|
128
|
-
const configTemplate = `schema: {{agent.name}}\n` +
|
|
129
|
-
`context: |\n` +
|
|
130
|
-
` {{config.workspace.name}} platform services:\n` +
|
|
131
|
-
` {{#each config.services}}\n` +
|
|
132
|
-
` - {{name}} ({{language}}{{#if framework}}/{{framework}}{{/if}}) — {{path}}/ {{maturityBadge maturity}}\n` +
|
|
133
|
-
` {{/each}}\n` +
|
|
134
|
-
` {{#if config.execution_order}}\n` +
|
|
135
|
-
` Change order: {{join config.execution_order " → "}}\n` +
|
|
136
|
-
` {{/if}}\n`;
|
|
137
|
-
operations.push({
|
|
138
|
-
path: 'openspec/config.yaml',
|
|
139
|
-
content: renderTemplate(configTemplate, config, agentMeta),
|
|
140
|
-
source: `remote:${agentMeta.name}/openspec-config`,
|
|
141
|
-
});
|
|
142
122
|
}
|
|
143
123
|
//# sourceMappingURL=package-renderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-renderer.js","sourceRoot":"","sources":["../../src/generator/package-renderer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"package-renderer.js","sourceRoot":"","sources":["../../src/generator/package-renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,15 +6,12 @@
|
|
|
6
6
|
* - applyLicenseWatermark (steganographic fingerprint)
|
|
7
7
|
*/
|
|
8
8
|
import type { WorkspaceConfig, WatermarkData } from '@nepopsx/core';
|
|
9
|
-
import { renderTemplate, registerAgentPartialsFromMap, clearPartialNames, renderTemplateMap, setPhilosophyBlock, setCustomInstructions, type CustomInstruction, type RenderContext } from '@nepopsx/core';
|
|
10
|
-
export { renderTemplate, registerAgentPartialsFromMap, clearPartialNames, renderTemplateMap, setPhilosophyBlock, setCustomInstructions, type CustomInstruction, type RenderContext, };
|
|
9
|
+
import { renderTemplate, registerAgentPartialsFromMap, clearPartialNames, renderTemplateMap, setPhilosophyBlock, setCustomInstructions, type AgentRenderContext, type CustomInstruction, type RenderContext } from '@nepopsx/core';
|
|
10
|
+
export { renderTemplate, registerAgentPartialsFromMap, clearPartialNames, renderTemplateMap, setPhilosophyBlock, setCustomInstructions, type AgentRenderContext, type CustomInstruction, type RenderContext, };
|
|
11
11
|
/**
|
|
12
12
|
* Register all partials from a package's partials/ directory on disk.
|
|
13
13
|
*/
|
|
14
|
-
export declare function registerAgentPartials(partialsDir: string, config: WorkspaceConfig, agentMeta?:
|
|
15
|
-
name: string;
|
|
16
|
-
version: string;
|
|
17
|
-
}): void;
|
|
14
|
+
export declare function registerAgentPartials(partialsDir: string, config: WorkspaceConfig, agentMeta?: AgentRenderContext): void;
|
|
18
15
|
/**
|
|
19
16
|
* Unregister all partials loaded from a partials/ directory.
|
|
20
17
|
*/
|
|
@@ -22,10 +19,7 @@ export declare function clearPartials(partialsDir: string): void;
|
|
|
22
19
|
/**
|
|
23
20
|
* Render a template file from disk.
|
|
24
21
|
*/
|
|
25
|
-
export declare function renderTemplateFile(templatePath: string, config: WorkspaceConfig, agentMeta?:
|
|
26
|
-
name: string;
|
|
27
|
-
version: string;
|
|
28
|
-
}): string;
|
|
22
|
+
export declare function renderTemplateFile(templatePath: string, config: WorkspaceConfig, agentMeta?: AgentRenderContext): string;
|
|
29
23
|
export declare function setWatermarkData(data: WatermarkData | null): void;
|
|
30
|
-
export declare function applyLicenseWatermark(content: string): string;
|
|
24
|
+
export declare function applyLicenseWatermark(content: string, outputPath?: string): string;
|
|
31
25
|
//# sourceMappingURL=render.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/generator/render.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAEL,cAAc,EACd,4BAA4B,EAC5B,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/generator/render.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAEL,cAAc,EACd,4BAA4B,EAC5B,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EAErB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EACnB,MAAM,eAAe,CAAC;AAIvB,OAAO,EACL,cAAc,EACd,4BAA4B,EAC5B,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,aAAa,GACnB,CAAC;AAIF;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,eAAe,EACvB,SAAS,CAAC,EAAE,kBAAkB,GAC7B,IAAI,CAiBN;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAQvD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,eAAe,EACvB,SAAS,CAAC,EAAE,kBAAkB,GAC7B,MAAM,CAGR;AAMD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI,CAEjE;AAeD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAMlF"}
|
package/dist/generator/render.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import Handlebars from 'handlebars';
|
|
9
9
|
import { existsSync, readFileSync, readdirSync } from 'node:fs';
|
|
10
|
-
import { join } from 'node:path';
|
|
10
|
+
import { extname, join } from 'node:path';
|
|
11
11
|
import { generateWatermark, renderTemplate, registerAgentPartialsFromMap, clearPartialNames, renderTemplateMap, setPhilosophyBlock, setCustomInstructions, } from '@nepopsx/core';
|
|
12
12
|
import { applySteganography } from '../licensing/fingerprint.js';
|
|
13
13
|
// Re-export core renderer API so callers only need to import from this module
|
|
@@ -62,10 +62,20 @@ let _watermarkData = null;
|
|
|
62
62
|
export function setWatermarkData(data) {
|
|
63
63
|
_watermarkData = data;
|
|
64
64
|
}
|
|
65
|
-
|
|
65
|
+
function detectWatermarkCommentStyle(outputPath) {
|
|
66
|
+
if (!outputPath) {
|
|
67
|
+
return 'html';
|
|
68
|
+
}
|
|
69
|
+
const extension = extname(outputPath).toLowerCase();
|
|
70
|
+
if (extension === '.yaml' || extension === '.yml' || extension === '.toml' || extension === '.env') {
|
|
71
|
+
return 'hash';
|
|
72
|
+
}
|
|
73
|
+
return 'html';
|
|
74
|
+
}
|
|
75
|
+
export function applyLicenseWatermark(content, outputPath) {
|
|
66
76
|
if (!_watermarkData)
|
|
67
77
|
return content;
|
|
68
|
-
const watermarkLine = generateWatermark(_watermarkData);
|
|
78
|
+
const watermarkLine = generateWatermark(_watermarkData, detectWatermarkCommentStyle(outputPath));
|
|
69
79
|
let result = watermarkLine + '\n' + content;
|
|
70
80
|
result = applySteganography(result, _watermarkData.fingerprint);
|
|
71
81
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/generator/render.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/generator/render.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -7,12 +7,13 @@ import { activateCommand } from './commands/activate.js';
|
|
|
7
7
|
import { decodeCommand } from './commands/decode.js';
|
|
8
8
|
import { loginCommand } from './commands/login.js';
|
|
9
9
|
import { scanCommand } from './commands/scan.js';
|
|
10
|
+
import { pushLearningsCommand } from './commands/push-learnings.js';
|
|
10
11
|
import { serverClearCommand, serverSetCommand, serverShowCommand, } from './commands/server.js';
|
|
11
12
|
const program = new Command();
|
|
12
13
|
program
|
|
13
14
|
.name('nepopsx')
|
|
14
15
|
.description('NEPOPSX — AI Agent Platform for Engineering Teams')
|
|
15
|
-
.version('0.0.
|
|
16
|
+
.version('0.0.5');
|
|
16
17
|
program
|
|
17
18
|
.command('init')
|
|
18
19
|
.description('Initialize a new NEPOPSX workspace (interactive setup)')
|
|
@@ -20,7 +21,7 @@ program
|
|
|
20
21
|
.action(initCommand);
|
|
21
22
|
program
|
|
22
23
|
.command('sync')
|
|
23
|
-
.description('
|
|
24
|
+
.description('Render generated files from the current workspace config + installed agents')
|
|
24
25
|
.option('-c, --config <path>', 'Path to workspace.yaml', '.nepopsx/workspace.yaml')
|
|
25
26
|
.option('--remote', 'Fetch workspace config from backend API instead of local file')
|
|
26
27
|
.option('--workspace <slug>', 'Workspace slug to fetch (used with --remote)')
|
|
@@ -31,6 +32,7 @@ program
|
|
|
31
32
|
.command('install <agent>')
|
|
32
33
|
.description('Install an agent package (e.g., feature-factory, qa-commander)')
|
|
33
34
|
.option('--version <ver>', 'Specific version to install')
|
|
35
|
+
.option('-y, --yes', 'Skip confirmations when auto-enriching agent config')
|
|
34
36
|
.action(installCommand);
|
|
35
37
|
program
|
|
36
38
|
.command('doctor')
|
|
@@ -50,7 +52,6 @@ program
|
|
|
50
52
|
.command('login')
|
|
51
53
|
.description('Log in to NEPOPSX and save credentials to .nepopsx/config.json')
|
|
52
54
|
.option('--email <email>', 'Your NEPOPSX account email')
|
|
53
|
-
.option('--password <password>', 'Your NEPOPSX account password')
|
|
54
55
|
.action(loginCommand);
|
|
55
56
|
const serverProgram = program
|
|
56
57
|
.command('server')
|
|
@@ -70,9 +71,17 @@ serverProgram
|
|
|
70
71
|
function collectRepeatable(value, previous) {
|
|
71
72
|
return [...previous, value];
|
|
72
73
|
}
|
|
74
|
+
program
|
|
75
|
+
.command('push-learnings')
|
|
76
|
+
.description('Push local reflector learnings (customs/auto/) to the platform')
|
|
77
|
+
.option('-c, --config <path>', 'Path to workspace.yaml', '.nepopsx/workspace.yaml')
|
|
78
|
+
.option('--workspace <slug>', 'Workspace slug')
|
|
79
|
+
.option('--agent <name>', 'Only push learnings for a specific agent')
|
|
80
|
+
.option('-y, --yes', 'Skip confirmations')
|
|
81
|
+
.action(pushLearningsCommand);
|
|
73
82
|
program
|
|
74
83
|
.command('scan')
|
|
75
|
-
.description('LLM-powered
|
|
84
|
+
.description('LLM-powered analysis — enrich workspace.yaml and installed agent configs')
|
|
76
85
|
.option('-y, --yes', 'Skip all confirmations')
|
|
77
86
|
.option('--provider <name>', 'LLM provider (openai, anthropic, ollama, compatible)')
|
|
78
87
|
.option('--model <name>', 'Model override')
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,mDAAmD,CAAC;KAChE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,wDAAwD,CAAC;KACrE,MAAM,CAAC,mBAAmB,EAAE,0CAA0C,CAAC;KACvE,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* 4. writeAgentFiles — atomic write via temp + rename into .github/<relative-path>
|
|
10
10
|
*/
|
|
11
11
|
import type { License } from "@nepopsx/core";
|
|
12
|
+
import type { CustomInstruction } from "../generator/render.js";
|
|
12
13
|
export interface EncryptedBundle {
|
|
13
14
|
payload: string;
|
|
14
15
|
iv: string;
|
|
@@ -20,10 +21,17 @@ export interface EncryptedBundle {
|
|
|
20
21
|
export interface InstalledFile {
|
|
21
22
|
path: string;
|
|
22
23
|
}
|
|
24
|
+
export interface AgentBootstrapConfig {
|
|
25
|
+
agent: string;
|
|
26
|
+
version: string;
|
|
27
|
+
package: Record<string, unknown>;
|
|
28
|
+
config: Record<string, unknown>;
|
|
29
|
+
}
|
|
23
30
|
/**
|
|
24
31
|
* Download an encrypted template bundle from the NEPOPSX API.
|
|
25
32
|
*/
|
|
26
|
-
export declare function downloadBundle(cwd: string, license: License, agent: string, version: string): Promise<EncryptedBundle>;
|
|
33
|
+
export declare function downloadBundle(cwd: string, license: License, agent: string, version: string, customInstructions?: CustomInstruction[]): Promise<EncryptedBundle>;
|
|
34
|
+
export declare function downloadBootstrapConfig(cwd: string, license: License, agent: string, version: string, customInstructions?: CustomInstruction[]): Promise<AgentBootstrapConfig>;
|
|
27
35
|
/**
|
|
28
36
|
* Decrypt an AES-256-GCM bundle using the license key.
|
|
29
37
|
* Returns the raw JSON string (not yet parsed).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/licensing/installer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/licensing/installer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAIhE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAID;;GAEG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,kBAAkB,GAAE,iBAAiB,EAAO,GAC3C,OAAO,CAAC,eAAe,CAAC,CAyB1B;AAED,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,kBAAkB,GAAE,iBAAiB,EAAO,GAC3C,OAAO,CAAC,oBAAoB,CAAC,CA6B/B;AAID;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAcjF;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAOhF;AAID;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,aAAa,EAAE,CAmBjB"}
|
|
@@ -12,40 +12,54 @@ import { createDecipheriv, createHash } from "node:crypto";
|
|
|
12
12
|
import { existsSync, mkdirSync, renameSync, writeFileSync } from "node:fs";
|
|
13
13
|
import { dirname, join } from "node:path";
|
|
14
14
|
import { resolveApiBase } from "../config/api-config.js";
|
|
15
|
-
|
|
15
|
+
import { fetchWithTimeout } from "../utils/fetch.js";
|
|
16
|
+
import { DOWNLOAD_TIMEOUT_MS } from "../constants.js";
|
|
16
17
|
// ─── Download ───────────────────────────────────────────────
|
|
17
18
|
/**
|
|
18
19
|
* Download an encrypted template bundle from the NEPOPSX API.
|
|
19
20
|
*/
|
|
20
|
-
export async function downloadBundle(cwd, license, agent, version) {
|
|
21
|
+
export async function downloadBundle(cwd, license, agent, version, customInstructions = []) {
|
|
21
22
|
const apiBase = resolveApiBase(cwd);
|
|
22
23
|
const url = `${apiBase}/templates/${encodeURIComponent(agent)}/${encodeURIComponent(version)}`;
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
workspace: license.workspace ?? "",
|
|
36
|
-
}),
|
|
37
|
-
signal: controller.signal,
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
finally {
|
|
41
|
-
clearTimeout(timer);
|
|
42
|
-
}
|
|
24
|
+
const response = await fetchWithTimeout(url, {
|
|
25
|
+
method: "POST",
|
|
26
|
+
headers: {
|
|
27
|
+
Authorization: `Bearer ${license.key}`,
|
|
28
|
+
"Content-Type": "application/json",
|
|
29
|
+
},
|
|
30
|
+
body: JSON.stringify({
|
|
31
|
+
machine_id: license.machine_id,
|
|
32
|
+
workspace: license.workspace ?? "",
|
|
33
|
+
custom_instructions: customInstructions,
|
|
34
|
+
}),
|
|
35
|
+
}, DOWNLOAD_TIMEOUT_MS);
|
|
43
36
|
if (!response.ok) {
|
|
44
37
|
const body = await response.text().catch(() => "");
|
|
45
38
|
throw new Error(`Bundle download failed (${response.status}): ${body || response.statusText}`);
|
|
46
39
|
}
|
|
47
40
|
return response.json();
|
|
48
41
|
}
|
|
42
|
+
export async function downloadBootstrapConfig(cwd, license, agent, version, customInstructions = []) {
|
|
43
|
+
const apiBase = resolveApiBase(cwd);
|
|
44
|
+
const url = `${apiBase}/templates/${encodeURIComponent(agent)}/${encodeURIComponent(version)}/bootstrap-config`;
|
|
45
|
+
const response = await fetchWithTimeout(url, {
|
|
46
|
+
method: 'POST',
|
|
47
|
+
headers: {
|
|
48
|
+
Authorization: `Bearer ${license.key}`,
|
|
49
|
+
'Content-Type': 'application/json',
|
|
50
|
+
},
|
|
51
|
+
body: JSON.stringify({
|
|
52
|
+
machine_id: license.machine_id,
|
|
53
|
+
workspace: license.workspace ?? '',
|
|
54
|
+
custom_instructions: customInstructions,
|
|
55
|
+
}),
|
|
56
|
+
}, DOWNLOAD_TIMEOUT_MS);
|
|
57
|
+
if (!response.ok) {
|
|
58
|
+
const body = await response.text().catch(() => '');
|
|
59
|
+
throw new Error(`Bootstrap config download failed (${response.status}): ${body || response.statusText}`);
|
|
60
|
+
}
|
|
61
|
+
return response.json();
|
|
62
|
+
}
|
|
49
63
|
// ─── Decrypt ────────────────────────────────────────────────
|
|
50
64
|
/**
|
|
51
65
|
* Decrypt an AES-256-GCM bundle using the license key.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/licensing/installer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/licensing/installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,8 +32,14 @@ export interface TierViolation {
|
|
|
32
32
|
actual: string;
|
|
33
33
|
required_tier: LicenseTier;
|
|
34
34
|
}
|
|
35
|
+
/**
|
|
35
36
|
/**
|
|
36
37
|
* Check if the workspace config exceeds the license tier's limits.
|
|
38
|
+
*
|
|
39
|
+
* Only scale limits are enforced here — agent quality (customs, philosophy,
|
|
40
|
+
* prompts) is identical across all tiers. The differentiators are:
|
|
41
|
+
* - how many services / agent packages are allowed
|
|
42
|
+
* - access to LLM-powered scan (team+)
|
|
37
43
|
*/
|
|
38
44
|
export declare function enforceTierLimits(config: WorkspaceConfig, tier: LicenseTier): TierViolation[];
|
|
39
45
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"license-manager.d.ts","sourceRoot":"","sources":["../../src/licensing/license-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACL,KAAK,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAmB,KAAK,eAAe,EAG1F,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"license-manager.d.ts","sourceRoot":"","sources":["../../src/licensing/license-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACL,KAAK,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAmB,KAAK,eAAe,EAG1F,MAAM,eAAe,CAAC;AAUvB;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAiB3D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAUpE;AAID,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAoD3B;AAID;;;GAGG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,aAAa,CAAC,CAkIxB;AA+CD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,WAAW,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,GAAG,aAAa,EAAE,CA4B7F;AAID;;;GAGG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAEnC"}
|