@nepopsx/cli 0.0.19 → 0.0.21

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 (129) hide show
  1. package/dist/agents/catalog.d.ts +19 -0
  2. package/dist/agents/catalog.d.ts.map +1 -0
  3. package/dist/agents/catalog.js +45 -0
  4. package/dist/agents/catalog.js.map +1 -0
  5. package/dist/agents/configuration.d.ts +1 -0
  6. package/dist/agents/configuration.d.ts.map +1 -1
  7. package/dist/agents/configuration.js +36 -0
  8. package/dist/agents/configuration.js.map +1 -1
  9. package/dist/agents/configuration.test.d.ts +2 -0
  10. package/dist/agents/configuration.test.d.ts.map +1 -0
  11. package/dist/agents/configuration.test.js +32 -0
  12. package/dist/agents/configuration.test.js.map +1 -0
  13. package/dist/commands/capture.d.ts +19 -0
  14. package/dist/commands/capture.d.ts.map +1 -0
  15. package/dist/commands/capture.js +105 -0
  16. package/dist/commands/capture.js.map +1 -0
  17. package/dist/commands/init.d.ts.map +1 -1
  18. package/dist/commands/init.js +11 -30
  19. package/dist/commands/init.js.map +1 -1
  20. package/dist/commands/install.d.ts +2 -0
  21. package/dist/commands/install.d.ts.map +1 -1
  22. package/dist/commands/install.js +86 -15
  23. package/dist/commands/install.js.map +1 -1
  24. package/dist/commands/login.d.ts +8 -1
  25. package/dist/commands/login.d.ts.map +1 -1
  26. package/dist/commands/login.js +169 -80
  27. package/dist/commands/login.js.map +1 -1
  28. package/dist/commands/push-learnings.d.ts.map +1 -1
  29. package/dist/commands/push-learnings.js +95 -63
  30. package/dist/commands/push-learnings.js.map +1 -1
  31. package/dist/commands/sync.d.ts +4 -0
  32. package/dist/commands/sync.d.ts.map +1 -1
  33. package/dist/commands/sync.js +120 -64
  34. package/dist/commands/sync.js.map +1 -1
  35. package/dist/commands/up.d.ts +23 -0
  36. package/dist/commands/up.d.ts.map +1 -0
  37. package/dist/commands/up.js +263 -0
  38. package/dist/commands/up.js.map +1 -0
  39. package/dist/enrichment/workflow.d.ts +1 -0
  40. package/dist/enrichment/workflow.d.ts.map +1 -1
  41. package/dist/enrichment/workflow.js +13 -0
  42. package/dist/enrichment/workflow.js.map +1 -1
  43. package/dist/generator/preview.d.ts +13 -0
  44. package/dist/generator/preview.d.ts.map +1 -0
  45. package/dist/generator/preview.js +242 -0
  46. package/dist/generator/preview.js.map +1 -0
  47. package/dist/generator/preview.test.d.ts +19 -0
  48. package/dist/generator/preview.test.d.ts.map +1 -0
  49. package/dist/generator/preview.test.js +289 -0
  50. package/dist/generator/preview.test.js.map +1 -0
  51. package/dist/generator/render.d.ts +2 -2
  52. package/dist/generator/render.d.ts.map +1 -1
  53. package/dist/generator/render.js +37 -18
  54. package/dist/generator/render.js.map +1 -1
  55. package/dist/generator/writer.d.ts +15 -1
  56. package/dist/generator/writer.d.ts.map +1 -1
  57. package/dist/generator/writer.js +41 -3
  58. package/dist/generator/writer.js.map +1 -1
  59. package/dist/hooks/capture-hooks.d.ts +9 -0
  60. package/dist/hooks/capture-hooks.d.ts.map +1 -0
  61. package/dist/hooks/capture-hooks.js +100 -0
  62. package/dist/hooks/capture-hooks.js.map +1 -0
  63. package/dist/hooks/capture-hooks.test.d.ts +2 -0
  64. package/dist/hooks/capture-hooks.test.d.ts.map +1 -0
  65. package/dist/hooks/capture-hooks.test.js +50 -0
  66. package/dist/hooks/capture-hooks.test.js.map +1 -0
  67. package/dist/index.js +26 -3
  68. package/dist/index.js.map +1 -1
  69. package/dist/learnings/yaml-learnings.d.ts +16 -2
  70. package/dist/learnings/yaml-learnings.d.ts.map +1 -1
  71. package/dist/learnings/yaml-learnings.js +43 -8
  72. package/dist/learnings/yaml-learnings.js.map +1 -1
  73. package/dist/learnings/yaml-learnings.test.d.ts +2 -0
  74. package/dist/learnings/yaml-learnings.test.d.ts.map +1 -0
  75. package/dist/learnings/yaml-learnings.test.js +39 -0
  76. package/dist/learnings/yaml-learnings.test.js.map +1 -0
  77. package/dist/licensing/installer.d.ts +2 -2
  78. package/dist/licensing/installer.d.ts.map +1 -1
  79. package/dist/licensing/installer.js +3 -1
  80. package/dist/licensing/installer.js.map +1 -1
  81. package/dist/licensing/template-fetch.d.ts +2 -2
  82. package/dist/licensing/template-fetch.d.ts.map +1 -1
  83. package/dist/licensing/template-fetch.js +4 -1
  84. package/dist/licensing/template-fetch.js.map +1 -1
  85. package/dist/mcp/config-generator.d.ts +42 -0
  86. package/dist/mcp/config-generator.d.ts.map +1 -0
  87. package/dist/mcp/config-generator.js +55 -0
  88. package/dist/mcp/config-generator.js.map +1 -0
  89. package/dist/mcp/config-generator.test.d.ts +7 -0
  90. package/dist/mcp/config-generator.test.d.ts.map +1 -0
  91. package/dist/mcp/config-generator.test.js +79 -0
  92. package/dist/mcp/config-generator.test.js.map +1 -0
  93. package/dist/ruflo/config-generator.d.ts +22 -0
  94. package/dist/ruflo/config-generator.d.ts.map +1 -0
  95. package/dist/ruflo/config-generator.js +89 -0
  96. package/dist/ruflo/config-generator.js.map +1 -0
  97. package/dist/ruflo/config-generator.test.d.ts +2 -0
  98. package/dist/ruflo/config-generator.test.d.ts.map +1 -0
  99. package/dist/ruflo/config-generator.test.js +18 -0
  100. package/dist/ruflo/config-generator.test.js.map +1 -0
  101. package/dist/ruflo/detect.d.ts +11 -0
  102. package/dist/ruflo/detect.d.ts.map +1 -0
  103. package/dist/ruflo/detect.js +30 -0
  104. package/dist/ruflo/detect.js.map +1 -0
  105. package/dist/ruflo/index.d.ts +3 -0
  106. package/dist/ruflo/index.d.ts.map +1 -0
  107. package/dist/ruflo/index.js +3 -0
  108. package/dist/ruflo/index.js.map +1 -0
  109. package/dist/security/index.d.ts +1 -1
  110. package/dist/security/index.d.ts.map +1 -1
  111. package/dist/security/index.js +1 -1
  112. package/dist/security/index.js.map +1 -1
  113. package/dist/security/integrity.d.ts +8 -0
  114. package/dist/security/integrity.d.ts.map +1 -1
  115. package/dist/security/integrity.js +28 -0
  116. package/dist/security/integrity.js.map +1 -1
  117. package/package.json +5 -3
  118. package/dist/generator/package-renderer.d.ts +0 -38
  119. package/dist/generator/package-renderer.d.ts.map +0 -1
  120. package/dist/generator/package-renderer.js +0 -181
  121. package/dist/generator/package-renderer.js.map +0 -1
  122. package/dist/generator/provider-transform.d.ts +0 -15
  123. package/dist/generator/provider-transform.d.ts.map +0 -1
  124. package/dist/generator/provider-transform.js +0 -163
  125. package/dist/generator/provider-transform.js.map +0 -1
  126. package/dist/licensing/fingerprint.test.d.ts +0 -2
  127. package/dist/licensing/fingerprint.test.d.ts.map +0 -1
  128. package/dist/licensing/fingerprint.test.js +0 -41
  129. package/dist/licensing/fingerprint.test.js.map +0 -1
@@ -1,163 +0,0 @@
1
- /**
2
- * Transforms agent markdown frontmatter for different AI editor providers.
3
- *
4
- * GitHub Copilot agents use full frontmatter (model, tools, agents, handoffs).
5
- * Claude Code agents use minimal frontmatter (name, description, user-invocable, color).
6
- * Other providers TBD — fall through with no transformation.
7
- */
8
- const FRONTMATTER_RE = /^---\n([\s\S]*?)\n---\n?([\s\S]*)$/;
9
- /**
10
- * Parse YAML frontmatter from a markdown file.
11
- * Returns null if no frontmatter block is found.
12
- */
13
- function parseFrontmatter(content) {
14
- const match = content.match(FRONTMATTER_RE);
15
- if (!match)
16
- return null;
17
- const [, yamlBlock, body] = match;
18
- const frontmatter = {};
19
- // Simple YAML key-value parser (handles strings, booleans, arrays)
20
- let currentKey = null;
21
- let currentArray = null;
22
- for (const line of yamlBlock.split('\n')) {
23
- const trimmed = line.trim();
24
- // Array item
25
- if (trimmed.startsWith('- ') && currentKey && currentArray !== null) {
26
- currentArray.push(trimmed.slice(2).trim());
27
- continue;
28
- }
29
- // Flush previous array
30
- if (currentKey && currentArray !== null) {
31
- frontmatter[currentKey] = currentArray;
32
- currentArray = null;
33
- currentKey = null;
34
- }
35
- // Key-value pair
36
- const kvMatch = trimmed.match(/^([a-z_-]+):\s*(.*)$/i);
37
- if (!kvMatch)
38
- continue;
39
- const [, key, value] = kvMatch;
40
- if (value === '' || value === undefined) {
41
- // Could be start of an array
42
- currentKey = key;
43
- currentArray = [];
44
- }
45
- else {
46
- // Scalar value
47
- let parsed = value;
48
- if (value === 'true')
49
- parsed = true;
50
- else if (value === 'false')
51
- parsed = false;
52
- else if (/^\d+$/.test(value))
53
- parsed = parseInt(value, 10);
54
- else if (value.startsWith('"') && value.endsWith('"'))
55
- parsed = value.slice(1, -1);
56
- frontmatter[key] = parsed;
57
- }
58
- }
59
- // Flush final array
60
- if (currentKey && currentArray !== null) {
61
- frontmatter[currentKey] = currentArray;
62
- }
63
- return { frontmatter, body, raw: content };
64
- }
65
- /**
66
- * Serialize frontmatter back to YAML string.
67
- */
68
- function serializeFrontmatter(fm) {
69
- const lines = [];
70
- for (const [key, value] of Object.entries(fm)) {
71
- if (value === undefined || value === null)
72
- continue;
73
- if (Array.isArray(value)) {
74
- lines.push(`${key}:`);
75
- for (const item of value) {
76
- lines.push(` - ${item}`);
77
- }
78
- }
79
- else if (typeof value === 'string' && (value.includes(':') || value.includes('"') || value.includes("'") || value.startsWith('[') || value.startsWith('{'))) {
80
- lines.push(`${key}: "${value.replace(/"/g, '\\"')}"`);
81
- }
82
- else {
83
- lines.push(`${key}: ${value}`);
84
- }
85
- }
86
- return lines.join('\n');
87
- }
88
- /** Keys to strip from frontmatter when converting to Claude Code format. */
89
- const COPILOT_ONLY_KEYS = new Set(['model', 'tools', 'agents', 'handoffs']);
90
- /** Color assignment based on agent role patterns. */
91
- function inferColor(name) {
92
- if (name.includes('orchestrat'))
93
- return 'green';
94
- if (name.includes('planner') || name.includes('architect'))
95
- return 'blue';
96
- if (name.includes('executor') || name.includes('developer'))
97
- return 'orange';
98
- if (name.includes('reflector') || name.includes('reflect'))
99
- return 'purple';
100
- if (name.includes('reviewer'))
101
- return 'yellow';
102
- if (name.includes('scanner'))
103
- return 'cyan';
104
- if (name.includes('writer'))
105
- return 'orange';
106
- if (name.includes('qa'))
107
- return 'red';
108
- return 'blue';
109
- }
110
- /**
111
- * Determine if an agent file represents an orchestrator.
112
- * Orchestrators have `agents:` in their frontmatter (they dispatch to sub-agents).
113
- * In Claude Code, orchestrators become commands, not agents.
114
- */
115
- function isOrchestratorAgent(fm) {
116
- return Array.isArray(fm.agents) && fm.agents.length > 0;
117
- }
118
- /**
119
- * Transform an agent markdown file for Claude Code provider.
120
- *
121
- * - Strips model, tools, agents, handoffs from frontmatter
122
- * - Adds name (from filename) and color
123
- * - Preserves description and user-invocable
124
- * - Returns null for orchestrator agents (they become commands in Claude)
125
- */
126
- function transformForClaudeCode(content, fileName) {
127
- const parsed = parseFrontmatter(content);
128
- if (!parsed)
129
- return content; // No frontmatter — pass through
130
- // Orchestrators become commands, not agents
131
- if (isOrchestratorAgent(parsed.frontmatter))
132
- return null;
133
- const agentName = fileName.replace(/\.agent\.md(\.hbs)?$/, '');
134
- const claudeFm = {
135
- name: agentName,
136
- };
137
- // Preserve description
138
- if (parsed.frontmatter.description) {
139
- claudeFm.description = parsed.frontmatter.description;
140
- }
141
- // Preserve user-invocable
142
- if (parsed.frontmatter['user-invocable'] !== undefined) {
143
- claudeFm['user-invocable'] = parsed.frontmatter['user-invocable'];
144
- }
145
- claudeFm.color = inferColor(agentName);
146
- return `---\n${serializeFrontmatter(claudeFm)}\n---\n${parsed.body}`;
147
- }
148
- /**
149
- * Transform an agent file's content for the target provider.
150
- * Returns the transformed content, or null if the file should be skipped
151
- * (e.g., orchestrators in Claude Code — they become commands).
152
- */
153
- export function transformAgentForProvider(content, fileName, provider) {
154
- switch (provider) {
155
- case 'claude-code':
156
- return transformForClaudeCode(content, fileName);
157
- case 'github-copilot':
158
- return content; // No transformation needed
159
- default:
160
- return content; // Other providers TBD — pass through
161
- }
162
- }
163
- //# sourceMappingURL=provider-transform.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provider-transform.js","sourceRoot":"","sources":["../../src/generator/provider-transform.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=fingerprint.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fingerprint.test.d.ts","sourceRoot":"","sources":["../../src/licensing/fingerprint.test.ts"],"names":[],"mappings":""}
@@ -1,41 +0,0 @@
1
- import assert from 'node:assert/strict';
2
- import test from 'node:test';
3
- import { applySteganography, decodeSteganography, fingerprintToId, forensicDecode } from './fingerprint.js';
4
- const FINGERPRINT = 'acfed951acbe';
5
- const TRACEABILITY_TEMPLATE = `Visible heading
6
- outside collisions: never verify the search for according to
7
- ### Execution Checklist
8
-
9
- - Before starting work, Make sure to read the following steps and all required artifacts.
10
- - You must check the current workspace state and Run the listed service commands immediately after opening the task.
11
- - If an error occurs, do not guess: proceed with the fallback path as described below and report back when finished.
12
- - Begin by asking a quick question to confirm that the current assumptions still hold; at this point, look for changes based on new evidence.
13
- - Review the output before you complete the task.
14
- - It is important to note that as a result, in addition, explanations should stay concise.
15
- ### Service Commands
16
-
17
- - Lint: pnpm lint
18
- outside collisions: Prior to beginning work continue with additionally
19
- `;
20
- test('applySteganography encodes inside the execution checklist section only', () => {
21
- const rendered = applySteganography(TRACEABILITY_TEMPLATE, FINGERPRINT);
22
- const expectedId = fingerprintToId(FINGERPRINT);
23
- assert.equal(decodeSteganography(rendered), expectedId);
24
- const forensic = forensicDecode(rendered);
25
- assert.equal(forensic.stego_fp_hex, expectedId.toString(16).padStart(6, '0'));
26
- assert.equal(forensic.confidence, 1);
27
- assert.match(rendered, /outside collisions: never verify the search for according to/);
28
- });
29
- test('decodeSteganography falls back to whole-content scanning for legacy files', () => {
30
- const legacyTemplate = `
31
- Before starting work, Make sure to read the following steps and all required artifacts.
32
- You must check the current workspace state and Run the listed service commands immediately after opening the task.
33
- If an error occurs, do not guess: proceed with the fallback path as described below and report back when finished.
34
- Begin by asking a quick question to confirm that the current assumptions still hold; at this point, look for changes based on new evidence.
35
- Review the output before you complete the task.
36
- It is important to note that as a result, in addition, explanations should stay concise.
37
- `;
38
- const rendered = applySteganography(legacyTemplate, FINGERPRINT);
39
- assert.equal(decodeSteganography(rendered), fingerprintToId(FINGERPRINT));
40
- });
41
- //# sourceMappingURL=fingerprint.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fingerprint.test.js","sourceRoot":"","sources":["../../src/licensing/fingerprint.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE5G,MAAM,WAAW,GAAG,cAAc,CAAC;AAEnC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;CAc7B,CAAC;AAEF,IAAI,CAAC,wEAAwE,EAAE,GAAG,EAAE;IAClF,MAAM,QAAQ,GAAG,kBAAkB,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IAEhD,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC;IAExD,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC9E,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAErC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,8DAA8D,CAAC,CAAC;AACzF,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2EAA2E,EAAE,GAAG,EAAE;IACrF,MAAM,cAAc,GAAG;;;;;;;CAOxB,CAAC;IAEA,MAAM,QAAQ,GAAG,kBAAkB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IACjE,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;AAC5E,CAAC,CAAC,CAAC"}