claudekit-cli 3.41.4-dev.13 → 3.41.4-dev.14

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 (2) hide show
  1. package/dist/index.js +162 -1
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -11492,6 +11492,49 @@ var init_provider_registry = __esm(() => {
11492
11492
  join(home, ".kilocode/skills")
11493
11493
  ])
11494
11494
  },
11495
+ kiro: {
11496
+ name: "kiro",
11497
+ displayName: "Kiro IDE",
11498
+ subagents: "none",
11499
+ agents: {
11500
+ projectPath: ".kiro/steering",
11501
+ globalPath: null,
11502
+ format: "md-to-kiro-steering",
11503
+ writeStrategy: "per-file",
11504
+ fileExtension: ".md"
11505
+ },
11506
+ commands: null,
11507
+ skills: {
11508
+ projectPath: ".kiro/skills",
11509
+ globalPath: null,
11510
+ format: "direct-copy",
11511
+ writeStrategy: "per-file",
11512
+ fileExtension: ".md"
11513
+ },
11514
+ config: {
11515
+ projectPath: ".kiro/steering/project.md",
11516
+ globalPath: null,
11517
+ format: "md-to-kiro-steering",
11518
+ writeStrategy: "single-file",
11519
+ fileExtension: ".md"
11520
+ },
11521
+ rules: {
11522
+ projectPath: ".kiro/steering",
11523
+ globalPath: null,
11524
+ format: "md-to-kiro-steering",
11525
+ writeStrategy: "per-file",
11526
+ fileExtension: ".md"
11527
+ },
11528
+ hooks: null,
11529
+ settingsJsonPath: null,
11530
+ detect: async () => hasAnyInstallSignal([
11531
+ join(cwd, ".kiro/steering"),
11532
+ join(cwd, ".kiro/skills"),
11533
+ join(cwd, ".kiro/hooks"),
11534
+ join(cwd, ".kiro/agents"),
11535
+ join(cwd, ".kiro/settings/mcp.json")
11536
+ ])
11537
+ },
11495
11538
  windsurf: {
11496
11539
  name: "windsurf",
11497
11540
  displayName: "Windsurf",
@@ -12089,6 +12132,120 @@ var init_md_strip = __esm(() => {
12089
12132
  init_provider_registry();
12090
12133
  });
12091
12134
 
12135
+ // src/commands/portable/converters/md-to-kiro-steering.ts
12136
+ function detectLanguageGlob(itemName) {
12137
+ const normalized = itemName.toLowerCase();
12138
+ const sortedLangs = Object.keys(LANGUAGE_GLOB_MAP).sort((a3, b3) => b3.length - a3.length);
12139
+ for (const lang of sortedLangs) {
12140
+ const patterns = [
12141
+ new RegExp(`^${lang}$`),
12142
+ new RegExp(`^${lang}[-_]`),
12143
+ new RegExp(`[-_]${lang}$`),
12144
+ new RegExp(`[-_]${lang}[-_]`)
12145
+ ];
12146
+ if (patterns.some((p) => p.test(normalized))) {
12147
+ return LANGUAGE_GLOB_MAP[lang];
12148
+ }
12149
+ }
12150
+ return null;
12151
+ }
12152
+ function determineInclusionMode(item) {
12153
+ const languageGlob = detectLanguageGlob(item.name);
12154
+ if (languageGlob) {
12155
+ return { mode: "fileMatch", fileMatch: languageGlob };
12156
+ }
12157
+ const fmDescription = String(item.frontmatter.description || "").toLowerCase();
12158
+ const sortedLangs = Object.keys(LANGUAGE_GLOB_MAP).sort((a3, b3) => b3.length - a3.length);
12159
+ for (const lang of sortedLangs) {
12160
+ if (fmDescription.includes(` ${lang} `) || fmDescription.startsWith(`${lang} `) || fmDescription.endsWith(` ${lang}`)) {
12161
+ return { mode: "fileMatch", fileMatch: LANGUAGE_GLOB_MAP[lang] };
12162
+ }
12163
+ }
12164
+ return { mode: "always" };
12165
+ }
12166
+ function buildSteeringFrontmatter(mode, fileMatch) {
12167
+ const lines = ["---"];
12168
+ lines.push(`inclusion: ${mode}`);
12169
+ if (mode === "fileMatch" && fileMatch) {
12170
+ lines.push(`fileMatch: "${fileMatch}"`);
12171
+ }
12172
+ lines.push("---");
12173
+ return lines.join(`
12174
+ `);
12175
+ }
12176
+ function checkUnsupportedFields(item) {
12177
+ const warnings = [];
12178
+ const presentFields = UNSUPPORTED_AGENT_FIELDS.filter((field) => item.frontmatter[field] !== undefined);
12179
+ if (presentFields.length > 0) {
12180
+ warnings.push(`Agent metadata not supported by Kiro (dropped): ${presentFields.join(", ")}`);
12181
+ }
12182
+ return warnings;
12183
+ }
12184
+ function bodyStartsWithHeading(body) {
12185
+ const trimmed = body.trimStart();
12186
+ return /^#{1,6}\s+/.test(trimmed);
12187
+ }
12188
+ function convertMdToKiroSteering(item, provider) {
12189
+ const warnings = [];
12190
+ if (item.type === "agent") {
12191
+ warnings.push(...checkUnsupportedFields(item));
12192
+ }
12193
+ const stripped = stripClaudeRefs(item.body, { provider });
12194
+ warnings.push(...stripped.warnings);
12195
+ const { mode, fileMatch } = determineInclusionMode(item);
12196
+ const frontmatter = buildSteeringFrontmatter(mode, fileMatch);
12197
+ const heading = item.frontmatter.name || item.name;
12198
+ const hasExistingHeading = bodyStartsWithHeading(stripped.content);
12199
+ let content;
12200
+ if (hasExistingHeading) {
12201
+ content = `${frontmatter}
12202
+
12203
+ ${stripped.content}
12204
+ `;
12205
+ } else {
12206
+ content = `${frontmatter}
12207
+
12208
+ # ${heading}
12209
+
12210
+ ${stripped.content}
12211
+ `;
12212
+ }
12213
+ if (mode === "fileMatch" && fileMatch) {
12214
+ warnings.push(`Using fileMatch mode with pattern: ${fileMatch}`);
12215
+ }
12216
+ return {
12217
+ content,
12218
+ filename: `${item.name}.md`,
12219
+ warnings
12220
+ };
12221
+ }
12222
+ var LANGUAGE_GLOB_MAP, UNSUPPORTED_AGENT_FIELDS;
12223
+ var init_md_to_kiro_steering = __esm(() => {
12224
+ init_md_strip();
12225
+ LANGUAGE_GLOB_MAP = {
12226
+ typescript: "**/*.{ts,tsx}",
12227
+ javascript: "**/*.{js,jsx,mjs,cjs}",
12228
+ python: "**/*.py",
12229
+ rust: "**/*.rs",
12230
+ go: "**/*.go",
12231
+ java: "**/*.java",
12232
+ kotlin: "**/*.kt",
12233
+ swift: "**/*.swift",
12234
+ ruby: "**/*.rb",
12235
+ php: "**/*.php",
12236
+ css: "**/*.{css,scss,sass,less}",
12237
+ html: "**/*.{html,htm}",
12238
+ markdown: "**/*.md",
12239
+ json: "**/*.json",
12240
+ yaml: "**/*.{yml,yaml}",
12241
+ shell: "**/*.{sh,bash,zsh}",
12242
+ react: "**/*.{tsx,jsx}",
12243
+ vue: "**/*.vue",
12244
+ svelte: "**/*.svelte"
12245
+ };
12246
+ UNSUPPORTED_AGENT_FIELDS = ["model", "tools", "memory", "argumentHint"];
12247
+ });
12248
+
12092
12249
  // src/commands/portable/converters/md-to-mdc.ts
12093
12250
  function convertMdToMdc(item, provider) {
12094
12251
  const stripped = stripClaudeRefs(item.body, { provider });
@@ -12159,6 +12316,8 @@ function convertItem(item, format, provider) {
12159
12316
  return convertMdStrip(item, provider);
12160
12317
  case "md-to-mdc":
12161
12318
  return convertMdToMdc(item, provider);
12319
+ case "md-to-kiro-steering":
12320
+ return convertMdToKiroSteering(item, provider);
12162
12321
  case "fm-to-codex-toml":
12163
12322
  return convertFmToCodexToml(item);
12164
12323
  default: {
@@ -12187,6 +12346,7 @@ var init_converters = __esm(() => {
12187
12346
  init_fm_to_json();
12188
12347
  init_fm_to_yaml();
12189
12348
  init_md_strip();
12349
+ init_md_to_kiro_steering();
12190
12350
  init_md_to_mdc();
12191
12351
  init_skill_md();
12192
12352
  });
@@ -14300,6 +14460,7 @@ var init_types2 = __esm(() => {
14300
14460
  "github-copilot",
14301
14461
  "amp",
14302
14462
  "kilo",
14463
+ "kiro",
14303
14464
  "roo",
14304
14465
  "windsurf",
14305
14466
  "cline",
@@ -59762,7 +59923,7 @@ var package_default;
59762
59923
  var init_package = __esm(() => {
59763
59924
  package_default = {
59764
59925
  name: "claudekit-cli",
59765
- version: "3.41.4-dev.13",
59926
+ version: "3.41.4-dev.14",
59766
59927
  description: "CLI tool for bootstrapping and updating ClaudeKit projects",
59767
59928
  type: "module",
59768
59929
  repository: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claudekit-cli",
3
- "version": "3.41.4-dev.13",
3
+ "version": "3.41.4-dev.14",
4
4
  "description": "CLI tool for bootstrapping and updating ClaudeKit projects",
5
5
  "type": "module",
6
6
  "repository": {