@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.
Files changed (103) hide show
  1. package/dist/agents/configuration.d.ts +9 -0
  2. package/dist/agents/configuration.d.ts.map +1 -0
  3. package/dist/agents/configuration.js +57 -0
  4. package/dist/agents/configuration.js.map +1 -0
  5. package/dist/agents/remote-config.d.ts +30 -0
  6. package/dist/agents/remote-config.d.ts.map +1 -0
  7. package/dist/agents/remote-config.js +102 -0
  8. package/dist/agents/remote-config.js.map +1 -0
  9. package/dist/commands/activate.d.ts.map +1 -1
  10. package/dist/commands/activate.js +4 -3
  11. package/dist/commands/activate.js.map +1 -1
  12. package/dist/commands/decode.js +2 -2
  13. package/dist/commands/decode.js.map +1 -1
  14. package/dist/commands/doctor.js +16 -16
  15. package/dist/commands/doctor.js.map +1 -1
  16. package/dist/commands/init.d.ts.map +1 -1
  17. package/dist/commands/init.js +353 -18
  18. package/dist/commands/init.js.map +1 -1
  19. package/dist/commands/install.d.ts +1 -0
  20. package/dist/commands/install.d.ts.map +1 -1
  21. package/dist/commands/install.js +157 -18
  22. package/dist/commands/install.js.map +1 -1
  23. package/dist/commands/login.d.ts +0 -1
  24. package/dist/commands/login.d.ts.map +1 -1
  25. package/dist/commands/login.js +3 -3
  26. package/dist/commands/login.js.map +1 -1
  27. package/dist/commands/push-learnings.d.ts +14 -0
  28. package/dist/commands/push-learnings.d.ts.map +1 -0
  29. package/dist/commands/push-learnings.js +186 -0
  30. package/dist/commands/push-learnings.js.map +1 -0
  31. package/dist/commands/scan.d.ts.map +1 -1
  32. package/dist/commands/scan.js +130 -15
  33. package/dist/commands/scan.js.map +1 -1
  34. package/dist/commands/sync.d.ts.map +1 -1
  35. package/dist/commands/sync.js +159 -138
  36. package/dist/commands/sync.js.map +1 -1
  37. package/dist/config/api-config.d.ts.map +1 -1
  38. package/dist/config/api-config.js +4 -0
  39. package/dist/config/api-config.js.map +1 -1
  40. package/dist/constants.d.ts +7 -0
  41. package/dist/constants.d.ts.map +1 -0
  42. package/dist/constants.js +7 -0
  43. package/dist/constants.js.map +1 -0
  44. package/dist/customs/instructions.d.ts +3 -0
  45. package/dist/customs/instructions.d.ts.map +1 -0
  46. package/dist/customs/instructions.js +51 -0
  47. package/dist/customs/instructions.js.map +1 -0
  48. package/dist/enrichment/confirm.d.ts +17 -0
  49. package/dist/enrichment/confirm.d.ts.map +1 -0
  50. package/dist/enrichment/confirm.js +44 -0
  51. package/dist/enrichment/confirm.js.map +1 -0
  52. package/dist/enrichment/state.d.ts +8 -0
  53. package/dist/enrichment/state.d.ts.map +1 -0
  54. package/dist/enrichment/state.js +107 -0
  55. package/dist/enrichment/state.js.map +1 -0
  56. package/dist/enrichment/types.d.ts +13 -0
  57. package/dist/enrichment/types.d.ts.map +1 -0
  58. package/dist/enrichment/types.js +2 -0
  59. package/dist/enrichment/types.js.map +1 -0
  60. package/dist/enrichment/workflow.d.ts +35 -0
  61. package/dist/enrichment/workflow.d.ts.map +1 -0
  62. package/dist/enrichment/workflow.js +305 -0
  63. package/dist/enrichment/workflow.js.map +1 -0
  64. package/dist/generator/package-renderer.d.ts +4 -12
  65. package/dist/generator/package-renderer.d.ts.map +1 -1
  66. package/dist/generator/package-renderer.js +41 -61
  67. package/dist/generator/package-renderer.js.map +1 -1
  68. package/dist/generator/render.d.ts +5 -11
  69. package/dist/generator/render.d.ts.map +1 -1
  70. package/dist/generator/render.js +13 -3
  71. package/dist/generator/render.js.map +1 -1
  72. package/dist/index.js +13 -4
  73. package/dist/index.js.map +1 -1
  74. package/dist/licensing/installer.d.ts +9 -1
  75. package/dist/licensing/installer.d.ts.map +1 -1
  76. package/dist/licensing/installer.js +36 -22
  77. package/dist/licensing/installer.js.map +1 -1
  78. package/dist/licensing/license-manager.d.ts +6 -0
  79. package/dist/licensing/license-manager.d.ts.map +1 -1
  80. package/dist/licensing/license-manager.js +12 -35
  81. package/dist/licensing/license-manager.js.map +1 -1
  82. package/dist/licensing/template-fetch.d.ts +3 -2
  83. package/dist/licensing/template-fetch.d.ts.map +1 -1
  84. package/dist/licensing/template-fetch.js +10 -41
  85. package/dist/licensing/template-fetch.js.map +1 -1
  86. package/dist/scan/auto-bootstrap.d.ts +3 -0
  87. package/dist/scan/auto-bootstrap.d.ts.map +1 -0
  88. package/dist/scan/auto-bootstrap.js +30 -0
  89. package/dist/scan/auto-bootstrap.js.map +1 -0
  90. package/dist/scan/llm/anthropic.d.ts.map +1 -1
  91. package/dist/scan/llm/anthropic.js +1 -10
  92. package/dist/scan/llm/anthropic.js.map +1 -1
  93. package/dist/scan/llm/ollama.d.ts.map +1 -1
  94. package/dist/scan/llm/ollama.js +1 -10
  95. package/dist/scan/llm/ollama.js.map +1 -1
  96. package/dist/scan/llm/openai.d.ts.map +1 -1
  97. package/dist/scan/llm/openai.js +1 -10
  98. package/dist/scan/llm/openai.js.map +1 -1
  99. package/dist/utils/fetch.d.ts +9 -0
  100. package/dist/utils/fetch.d.ts.map +1 -0
  101. package/dist/utils/fetch.js +18 -0
  102. package/dist/utils/fetch.js.map +1 -0
  103. 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;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIlD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,EACvB,SAAS,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3C,cAAc,EAAE,CA0BlB;AAID;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,EACvB,SAAS,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3C,cAAc,EAAE,CA4DlB"}
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 — renders agent template bundles into WriteOperations.
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
- * Both render .hbs templates with Handlebars and strip the .hbs extension.
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 { renderTemplate, registerAgentPartialsFromMap, clearPartialNames } from './render.js';
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, config, agentMeta) {
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
- // Partials are registered above but also written to disk
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 = isHbs
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, config, agentMeta) {
47
+ export function renderAgentBundle(bundle) {
53
48
  const operations = [];
54
- // Register partials first so they're available when rendering agent/prompt templates
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) || !relativePath.endsWith('.hbs'))
58
+ if (!relativePath.startsWith(prefix))
65
59
  continue;
66
60
  const outputFileName = relativePath.slice(prefix.length).replace(/\.hbs$/, '');
67
- const content = renderTemplate(templateSource, config, agentMeta);
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
- let outputFileName;
83
- let content;
84
- if (relativePath.endsWith('.hbs')) {
85
- outputFileName = baseName.replace(/\.hbs$/, '');
86
- content = renderTemplate(rawContent, config, agentMeta);
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
- else {
89
- outputFileName = baseName;
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: join('.github/partials', outputFileName),
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, config, agentMeta, operations) {
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/templates/'))
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/${agentMeta.name}/templates/${outputName}`,
117
+ path: `openspec/schemas/${agentName}/${outputName}`,
124
118
  content,
125
- source: `remote:${agentMeta.name}/${relativePath}`,
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":"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"}
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,EACrB,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,iBAAiB,EACtB,KAAK,aAAa,GACnB,CAAC;AAIF;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,eAAe,EACvB,SAAS,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC5C,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;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC5C,MAAM,CAGR;AAMD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI,CAEjE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM7D"}
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"}
@@ -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
- export function applyLicenseWatermark(content) {
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":"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"}
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.3');
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('Generate .github/ files from workspace config + installed agents')
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 workspace analysis — enrich workspace.yaml with discovered metadata')
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,kEAAkE,CAAC;KAC/E,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,EAAE,yBAAyB,CAAC;KAClF,MAAM,CAAC,UAAU,EAAE,+DAA+D,CAAC;KACnF,MAAM,CAAC,oBAAoB,EAAE,8CAA8C,CAAC;KAC5E,MAAM,CAAC,WAAW,EAAE,uCAAuC,CAAC;KAC5D,MAAM,CAAC,OAAO,EAAE,iEAAiE,CAAC;KAClF,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,iBAAiB,CAAC;KAC1B,WAAW,CAAC,gEAAgE,CAAC;KAC7E,MAAM,CAAC,iBAAiB,EAAE,6BAA6B,CAAC;KACxD,MAAM,CAAC,cAAc,CAAC,CAAC;AAE1B,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,EAAE,yBAAyB,CAAC;KAClF,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,EAAE,yBAAyB,CAAC;KAClF,MAAM,CAAC,eAAe,CAAC,CAAC;AAE3B,OAAO;KACJ,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,6DAA6D,CAAC;KAC1E,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,gEAAgE,CAAC;KAC7E,MAAM,CAAC,iBAAiB,EAAE,4BAA4B,CAAC;KACvD,MAAM,CAAC,uBAAuB,EAAE,+BAA+B,CAAC;KAChE,MAAM,CAAC,YAAY,CAAC,CAAC;AAExB,MAAM,aAAa,GAAG,OAAO;KAC1B,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,0DAA0D,CAAC,CAAC;AAE3E,aAAa;KACV,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,+CAA+C,CAAC;KAC5D,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAE7B,aAAa;KACV,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,+DAA+D,CAAC;KAC5E,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAE5B,aAAa;KACV,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,0DAA0D,CAAC;KACvE,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAE9B,SAAS,iBAAiB,CAAC,KAAa,EAAE,QAAkB;IAC1D,OAAO,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,iFAAiF,CAAC;KAC9F,MAAM,CAAC,WAAW,EAAE,wBAAwB,CAAC;KAC7C,MAAM,CAAC,mBAAmB,EAAE,sDAAsD,CAAC;KACnF,MAAM,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;KAC1C,MAAM,CAAC,kBAAkB,EAAE,4DAA4D,CAAC;KACxF,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,EAAE,OAAO,CAAC;KAChE,MAAM,CAAC,yBAAyB,EAAE,qCAAqC,EAAE,OAAO,CAAC;KACjF,MAAM,CAAC,gBAAgB,EAAE,6BAA6B,EAAE,GAAG,CAAC;KAC5D,MAAM,CAAC,WAAW,EAAE,yCAAyC,CAAC;KAC9D,MAAM,CAAC,WAAW,EAAE,wCAAwC,CAAC;KAC7D,MAAM,CAAC,eAAe,EAAE,oCAAoC,CAAC;KAC7D,MAAM,CAAC,kBAAkB,EAAE,+BAA+B,EAAE,iBAAiB,EAAE,EAAE,CAAC;KAClF,MAAM,CAAC,SAAS,EAAE,2DAA2D,CAAC;KAC9E,MAAM,CAAC,gBAAgB,EAAE,qDAAqD,CAAC;KAC/E,MAAM,CAAC,UAAU,EAAE,mEAAmE,CAAC;KACvF,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO,CAAC,KAAK,EAAE,CAAC"}
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,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,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,6EAA6E,CAAC;KAC1F,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,EAAE,yBAAyB,CAAC;KAClF,MAAM,CAAC,UAAU,EAAE,+DAA+D,CAAC;KACnF,MAAM,CAAC,oBAAoB,EAAE,8CAA8C,CAAC;KAC5E,MAAM,CAAC,WAAW,EAAE,uCAAuC,CAAC;KAC5D,MAAM,CAAC,OAAO,EAAE,iEAAiE,CAAC;KAClF,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,iBAAiB,CAAC;KAC1B,WAAW,CAAC,gEAAgE,CAAC;KAC7E,MAAM,CAAC,iBAAiB,EAAE,6BAA6B,CAAC;KACxD,MAAM,CAAC,WAAW,EAAE,qDAAqD,CAAC;KAC1E,MAAM,CAAC,cAAc,CAAC,CAAC;AAE1B,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,EAAE,yBAAyB,CAAC;KAClF,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,EAAE,yBAAyB,CAAC;KAClF,MAAM,CAAC,eAAe,CAAC,CAAC;AAE3B,OAAO;KACJ,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,6DAA6D,CAAC;KAC1E,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,gEAAgE,CAAC;KAC7E,MAAM,CAAC,iBAAiB,EAAE,4BAA4B,CAAC;KACvD,MAAM,CAAC,YAAY,CAAC,CAAC;AAExB,MAAM,aAAa,GAAG,OAAO;KAC1B,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,0DAA0D,CAAC,CAAC;AAE3E,aAAa;KACV,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,+CAA+C,CAAC;KAC5D,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAE7B,aAAa;KACV,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,+DAA+D,CAAC;KAC5E,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAE5B,aAAa;KACV,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,0DAA0D,CAAC;KACvE,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAE9B,SAAS,iBAAiB,CAAC,KAAa,EAAE,QAAkB;IAC1D,OAAO,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,gEAAgE,CAAC;KAC7E,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,EAAE,yBAAyB,CAAC;KAClF,MAAM,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;KAC9C,MAAM,CAAC,gBAAgB,EAAE,0CAA0C,CAAC;KACpE,MAAM,CAAC,WAAW,EAAE,oBAAoB,CAAC;KACzC,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAEhC,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,0EAA0E,CAAC;KACvF,MAAM,CAAC,WAAW,EAAE,wBAAwB,CAAC;KAC7C,MAAM,CAAC,mBAAmB,EAAE,sDAAsD,CAAC;KACnF,MAAM,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;KAC1C,MAAM,CAAC,kBAAkB,EAAE,4DAA4D,CAAC;KACxF,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,EAAE,OAAO,CAAC;KAChE,MAAM,CAAC,yBAAyB,EAAE,qCAAqC,EAAE,OAAO,CAAC;KACjF,MAAM,CAAC,gBAAgB,EAAE,6BAA6B,EAAE,GAAG,CAAC;KAC5D,MAAM,CAAC,WAAW,EAAE,yCAAyC,CAAC;KAC9D,MAAM,CAAC,WAAW,EAAE,wCAAwC,CAAC;KAC7D,MAAM,CAAC,eAAe,EAAE,oCAAoC,CAAC;KAC7D,MAAM,CAAC,kBAAkB,EAAE,+BAA+B,EAAE,iBAAiB,EAAE,EAAE,CAAC;KAClF,MAAM,CAAC,SAAS,EAAE,2DAA2D,CAAC;KAC9E,MAAM,CAAC,gBAAgB,EAAE,qDAAqD,CAAC;KAC/E,MAAM,CAAC,UAAU,EAAE,mEAAmE,CAAC;KACvF,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -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;AAMH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAM7C,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;AAID;;GAEG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,eAAe,CAAC,CAiC1B;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"}
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
- const REQUEST_TIMEOUT_MS = 30_000;
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 controller = new AbortController();
24
- const timer = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS);
25
- let response;
26
- try {
27
- response = await fetch(url, {
28
- method: "POST",
29
- headers: {
30
- Authorization: license.key,
31
- "Content-Type": "application/json",
32
- },
33
- body: JSON.stringify({
34
- machine_id: license.machine_id,
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":"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"}
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;AAYvB;;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;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,GAAG,aAAa,EAAE,CAgD7F;AAID;;;GAGG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAEnC"}
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"}