fix: centralized yamlExtraction function and all now fix character issues for windows

This commit is contained in:
Brian Madison
2025-07-02 21:08:43 -05:00
parent 405954ad92
commit e2985d6093
27 changed files with 74 additions and 78240 deletions

View File

@@ -1,6 +1,7 @@
const fs = require('fs-extra');
const path = require('path');
const yaml = require('js-yaml');
const { extractYamlFromAgent } = require('../../lib/yaml-utils');
class ConfigLoader {
constructor() {
@@ -41,9 +42,9 @@ class ConfigLoader {
const agentContent = await fs.readFile(agentPath, 'utf8');
// Extract YAML block from agent file
const yamlMatch = agentContent.match(/```yaml\n([\s\S]*?)\n```/);
if (yamlMatch) {
const yamlContent = yaml.load(yamlMatch[1]);
const yamlContentText = extractYamlFromAgent(agentContent);
if (yamlContentText) {
const yamlContent = yaml.load(yamlContentText);
const agentConfig = yamlContent.agent || {};
agents.push({

View File

@@ -3,6 +3,7 @@ const fs = require("fs-extra");
const yaml = require("js-yaml");
const fileManager = require("./file-manager");
const configLoader = require("./config-loader");
const { extractYamlFromAgent } = require("../../lib/yaml-utils");
// Dynamic import for ES module
let chalk;
@@ -100,9 +101,9 @@ class IdeSetup {
"CRITICAL: Read the full YML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode:\n\n";
mdcContent += "```yaml\n";
// Extract just the YAML content from the agent file
const yamlMatch = agentContent.match(/```ya?ml\n([\s\S]*?)```/);
if (yamlMatch) {
mdcContent += yamlMatch[1].trim();
const yamlContent = extractYamlFromAgent(agentContent);
if (yamlContent) {
mdcContent += yamlContent;
} else {
// If no YAML found, include the whole content minus the header
mdcContent += agentContent.replace(/^#.*$/m, "").trim();
@@ -182,9 +183,9 @@ class IdeSetup {
"CRITICAL: Read the full YML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode:\n\n";
mdContent += "```yaml\n";
// Extract just the YAML content from the agent file
const yamlMatch = agentContent.match(/```ya?ml\n([\s\S]*?)```/);
if (yamlMatch) {
mdContent += yamlMatch[1].trim();
const yamlContent = extractYamlFromAgent(agentContent);
if (yamlContent) {
mdContent += yamlContent;
} else {
// If no YAML found, include the whole content minus the header
mdContent += agentContent.replace(/^#.*$/m, "").trim();
@@ -430,9 +431,9 @@ class IdeSetup {
"When the user types `@" + agentId + "`, adopt this persona and follow these guidelines:\n\n";
mdContent += "```yaml\n";
// Extract just the YAML content from the agent file
const yamlMatch = agentContent.match(/```ya?ml\n([\s\S]*?)```/);
if (yamlMatch) {
mdContent += yamlMatch[1].trim();
const yamlContent = extractYamlFromAgent(agentContent);
if (yamlContent) {
mdContent += yamlContent;
} else {
// If no YAML found, include the whole content minus the header
mdContent += agentContent.replace(/^#.*$/m, "").trim();

View File

@@ -2,6 +2,7 @@ const path = require("node:path");
const fileManager = require("./file-manager");
const configLoader = require("./config-loader");
const ideSetup = require("./ide-setup");
const { extractYamlFromAgent } = require("../../lib/yaml-utils");
// Dynamic imports for ES modules
let chalk, ora, inquirer;
@@ -1222,10 +1223,10 @@ class Installer {
const agentContent = await fs.readFile(agentPath, 'utf8');
// Extract YAML frontmatter to check dependencies
const yamlMatch = agentContent.match(/```yaml\n([\s\S]*?)```/);
if (yamlMatch) {
const yamlContent = extractYamlFromAgent(agentContent);
if (yamlContent) {
try {
const agentConfig = yaml.parse(yamlMatch[1]);
const agentConfig = yaml.parse(yamlContent);
const dependencies = agentConfig.dependencies || {};
// Check for core dependencies (those that don't exist in the expansion pack)
@@ -1314,13 +1315,10 @@ class Installer {
// Now resolve this agent's dependencies too
const agentContent = await fs.readFile(coreAgentPath, 'utf8');
const yamlMatch = agentContent.match(/```ya?ml\n([\s\S]*?)```/);
const yamlContent = extractYamlFromAgent(agentContent, true);
if (yamlMatch) {
if (yamlContent) {
try {
// Clean up the YAML to handle command descriptions
let yamlContent = yamlMatch[1];
yamlContent = yamlContent.replace(/^(\s*-)(\s*"[^"]+")(\s*-\s*.*)$/gm, '$1$2');
const agentConfig = yaml.parse(yamlContent);
const dependencies = agentConfig.dependencies || {};