@ryuenn3123/agentic-senior-core 6.6.0 → 6.6.2

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-senior-core",
3
- "version": "6.6.0",
3
+ "version": "6.6.2",
4
4
  "description": "Universal AI coding rules. Because your AI writes code like it gets paid by the line.",
5
5
  "contextFileName": "rules/agentic-senior-core.md",
6
6
  "rules": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-senior-core",
3
- "version": "6.6.0",
3
+ "version": "6.6.2",
4
4
  "description": "Universal AI coding rules. Write code like a staff engineer.",
5
5
  "author": "fatidaprilian",
6
6
  "license": "MIT",
@@ -64,7 +64,7 @@ const ADAPTER_TARGETS = {
64
64
  legacyTargetPath: '.kilocode/rules/agentic-senior-core.md',
65
65
  pluginTargetPath: '.kilo/plugin/agentic-senior-core.js',
66
66
  sourcePath: '.agents/plugins/agentic-senior-core/rules/agentic-senior-core.md',
67
- pluginSourcePath: '.agents/plugins/agentic-senior-core/kilo-plugin/agentic-senior-core.js',
67
+ pluginSourcePath: 'lib/kilo-plugin/agentic-senior-core.js',
68
68
  },
69
69
  roo: {
70
70
  label: 'Roo Code',
@@ -87,6 +87,21 @@ async function pathExists(filePath) {
87
87
  }
88
88
  }
89
89
 
90
+ async function copyDirRecursive(src, dest, ignoreNames = []) {
91
+ await fs.mkdir(dest, { recursive: true });
92
+ const entries = await fs.readdir(src, { withFileTypes: true });
93
+ for (const entry of entries) {
94
+ if (ignoreNames.includes(entry.name)) continue;
95
+ const srcPath = path.join(src, entry.name);
96
+ const destPath = path.join(dest, entry.name);
97
+ if (entry.isDirectory()) {
98
+ await copyDirRecursive(srcPath, destPath, ignoreNames);
99
+ } else {
100
+ await fs.copyFile(srcPath, destPath);
101
+ }
102
+ }
103
+ }
104
+
90
105
  async function generateAdapter(targetDirectory, adapterKey) {
91
106
  const adapter = ADAPTER_TARGETS[adapterKey];
92
107
  if (!adapter) {
@@ -130,6 +145,11 @@ async function generateAdapter(targetDirectory, adapterKey) {
130
145
  await fs.copyFile(pluginSource, pluginTarget);
131
146
  }
132
147
  }
148
+ const skillsSource = path.join(REPOSITORY_ROOT, '.agents', 'plugins', 'agentic-senior-core', 'skills');
149
+ const localSkillsTarget = path.join(targetDirectory, '.kilo', 'skills');
150
+ if (await pathExists(skillsSource)) {
151
+ await copyDirRecursive(skillsSource, localSkillsTarget);
152
+ }
133
153
  if (adapter.legacyTargetPath) {
134
154
  const legacyTarget = path.join(targetDirectory, adapter.legacyTargetPath);
135
155
  await fs.mkdir(path.dirname(legacyTarget), { recursive: true });
@@ -58,7 +58,7 @@ const GLOBAL_TARGETS = {
58
58
  label: 'Kilo Code',
59
59
  kind: 'kilo-global',
60
60
  rulesSourcePath: '.agents/plugins/agentic-senior-core/rules/agentic-senior-core.md',
61
- pluginSourcePath: '.agents/plugins/agentic-senior-core/kilo-plugin/agentic-senior-core.js',
61
+ pluginSourcePath: 'lib/kilo-plugin/agentic-senior-core.js',
62
62
  targetPath: () => path.join(HOME, '.config', 'kilo', 'rules', 'agentic-senior-core.md'),
63
63
  legacyTargetPath: () => path.join(HOME, '.kilocode', 'rules', 'agentic-senior-core.md'),
64
64
  pluginTargetPath: () => path.join(HOME, '.config', 'kilo', 'plugin', 'agentic-senior-core.js'),
@@ -181,11 +181,17 @@ async function installCodexGlobal(target) {
181
181
 
182
182
  // Copy plugin bundle & marketplace catalog (~/.agents/plugins/)
183
183
  await fs.mkdir(pluginTarget, { recursive: true });
184
- await copyDirRecursive(pluginSource, pluginTarget);
184
+ await copyDirRecursive(pluginSource, pluginTarget, ['kilo-plugin']);
185
185
 
186
186
  // Copy direct plugin bundle to ~/.codex/plugins/agentic-senior-core/ for instant Codex discovery
187
187
  await fs.mkdir(codexDirectPluginTarget, { recursive: true });
188
- await copyDirRecursive(singlePluginSource, codexDirectPluginTarget);
188
+ await copyDirRecursive(singlePluginSource, codexDirectPluginTarget, ['kilo-plugin']);
189
+
190
+ // Clean up legacy kilo-plugin folder if present in Codex targets
191
+ const legacyKiloCodex1 = path.join(pluginTarget, 'agentic-senior-core', 'kilo-plugin');
192
+ const legacyKiloCodex2 = path.join(codexDirectPluginTarget, 'kilo-plugin');
193
+ if (await pathExists(legacyKiloCodex1)) await fs.rm(legacyKiloCodex1, { recursive: true, force: true });
194
+ if (await pathExists(legacyKiloCodex2)) await fs.rm(legacyKiloCodex2, { recursive: true, force: true });
189
195
 
190
196
  // Clean up standalone skill directories so skills remain 100% unified inside the plugin bundle
191
197
  const agentsSkillsTarget = path.join(HOME, '.agents', 'skills');
@@ -227,6 +233,12 @@ async function installKiloGlobal(target) {
227
233
  await fs.copyFile(pluginSource, pluginTarget);
228
234
  }
229
235
 
236
+ const skillsSource = path.join(REPOSITORY_ROOT, '.agents', 'plugins', 'agentic-senior-core', 'skills');
237
+ const globalSkillsTarget = path.join(HOME, '.kilo', 'skills');
238
+ if (await pathExists(skillsSource)) {
239
+ await copyDirRecursive(skillsSource, globalSkillsTarget);
240
+ }
241
+
230
242
  if (process.env.APPDATA) {
231
243
  const appDataKiloPlugin = path.join(process.env.APPDATA, 'kilo', 'plugin', 'agentic-senior-core.js');
232
244
  const appDataKiloRules = path.join(process.env.APPDATA, 'kilo', 'rules', 'agentic-senior-core.md');
@@ -240,7 +252,7 @@ async function installKiloGlobal(target) {
240
252
  } catch (_) {}
241
253
  }
242
254
 
243
- console.log(` ${target.label}: ${rulesTarget} & ${pluginTarget} ... OK`);
255
+ console.log(` ${target.label}: ${rulesTarget}, ${pluginTarget} & ${globalSkillsTarget} ... OK`);
244
256
  return true;
245
257
  }
246
258
 
@@ -255,12 +267,17 @@ async function installAntigravityIde(target) {
255
267
  return false;
256
268
  }
257
269
 
258
- // Filter out .codex-plugin and .app.json so ~/.gemini/ remains 100% clean without Codex-specific files/folders
270
+ // Filter out .codex-plugin, kilo-plugin, and .app.json so ~/.gemini/ remains 100% clean without Codex/Kilo-specific files/folders
259
271
  await fs.mkdir(path.dirname(pluginTargetPath), { recursive: true });
260
- await copyDirRecursive(pluginSource, pluginTargetPath, ['.codex-plugin', '.app.json']);
272
+ await copyDirRecursive(pluginSource, pluginTargetPath, ['.codex-plugin', '.app.json', 'kilo-plugin']);
261
273
 
262
274
  await fs.mkdir(path.dirname(cliTargetPath), { recursive: true });
263
- await copyDirRecursive(pluginSource, cliTargetPath, ['.codex-plugin', '.app.json']);
275
+ await copyDirRecursive(pluginSource, cliTargetPath, ['.codex-plugin', '.app.json', 'kilo-plugin']);
276
+
277
+ const legacyKilo1 = path.join(pluginTargetPath, 'kilo-plugin');
278
+ const legacyKilo2 = path.join(cliTargetPath, 'kilo-plugin');
279
+ if (await pathExists(legacyKilo1)) await fs.rm(legacyKilo1, { recursive: true, force: true });
280
+ if (await pathExists(legacyKilo2)) await fs.rm(legacyKilo2, { recursive: true, force: true });
264
281
 
265
282
  // Antigravity CLI enforces strict plugin.json schema (additionalProperties: false).
266
283
  // Only name, description, $schema are valid. Extra fields (version, rules, skills, hooks)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ryuenn3123/agentic-senior-core",
3
- "version": "6.6.0",
3
+ "version": "6.6.2",
4
4
  "type": "module",
5
5
  "description": "Agentic Senior Core: Universal AI coding rules and workflows. Write code like a staff engineer, not a junior.",
6
6
  "bin": {
package/plugin.yaml CHANGED
@@ -1,5 +1,5 @@
1
1
  name: agentic-senior-core
2
- version: 6.6.0
2
+ version: 6.6.2
3
3
  description: Universal AI coding rules. Write code like a staff engineer.
4
4
  author: fatidaprilian
5
5
  provides_hooks: