@agents-inc/cli 0.86.0 → 0.88.0
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.
- package/CHANGELOG.md +20 -0
- package/dist/{chunk-GED2F75H.js → chunk-23M3SPXX.js} +180 -124
- package/dist/chunk-23M3SPXX.js.map +1 -0
- package/dist/{chunk-ZOWRO7UQ.js → chunk-2DRPZXXK.js} +3 -3
- package/dist/{chunk-5M6Q5UQO.js → chunk-57KI55GJ.js} +2 -2
- package/dist/{chunk-HH3AWXF4.js → chunk-5IYZGJDW.js} +3 -3
- package/dist/{chunk-Q4DMIPZB.js → chunk-6YR2NEW3.js} +2 -2
- package/dist/{chunk-HU6XQVZL.js → chunk-AP4DLJDP.js} +1 -1
- package/dist/{chunk-HU6XQVZL.js.map → chunk-AP4DLJDP.js.map} +1 -1
- package/dist/{chunk-SGZOFIFF.js → chunk-ATPHV3MD.js} +2 -2
- package/dist/{chunk-HSLVCKVQ.js → chunk-DDCW4SKN.js} +3 -3
- package/dist/{chunk-TMTUTUEV.js → chunk-EADZIYQW.js} +12 -7
- package/dist/chunk-EADZIYQW.js.map +1 -0
- package/dist/{chunk-BV2MIQ3O.js → chunk-I5AZKNNL.js} +1 -1
- package/dist/chunk-I5AZKNNL.js.map +1 -0
- package/dist/{chunk-HZ2IBXVQ.js → chunk-ITBSJNIC.js} +3 -3
- package/dist/chunk-J6PI73YV.js +68 -0
- package/dist/chunk-J6PI73YV.js.map +1 -0
- package/dist/{chunk-BEFYAFGV.js → chunk-JNUFQBXX.js} +2 -2
- package/dist/chunk-LHUK5L6P.js +564 -0
- package/dist/chunk-LHUK5L6P.js.map +1 -0
- package/dist/{chunk-LZ7XQ3IU.js → chunk-MY4TVLRB.js} +2 -2
- package/dist/{chunk-I44YG6VI.js → chunk-PZBLGD7O.js} +5 -19
- package/dist/chunk-PZBLGD7O.js.map +1 -0
- package/dist/{chunk-HZQOFFKA.js → chunk-REZZSDXG.js} +10 -10
- package/dist/{chunk-O27WJ5KS.js → chunk-RWVF6DQE.js} +3 -3
- package/dist/{chunk-B6MYECV6.js → chunk-STMRDPGZ.js} +2 -2
- package/dist/{chunk-MMTMXLI4.js → chunk-TAPEVEET.js} +2 -2
- package/dist/{chunk-CXWBVBDM.js → chunk-VWTZOBBQ.js} +2 -2
- package/dist/{chunk-UNEJKTLP.js → chunk-WTPPVXJP.js} +3 -3
- package/dist/{chunk-FBZR46GC.js → chunk-YM3V4Q3W.js} +4 -4
- package/dist/{chunk-C5IYJ42F.js → chunk-ZFQTKY2S.js} +2 -2
- package/dist/{chunk-NUU3U43A.js → chunk-ZTRQO5CX.js} +2 -2
- package/dist/chunk-ZTRQO5CX.js.map +1 -0
- package/dist/commands/build/marketplace.js +3 -3
- package/dist/commands/build/plugins.js +5 -5
- package/dist/commands/build/stack.js +5 -5
- package/dist/commands/compile.js +31 -25
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/config/index.js +5 -5
- package/dist/commands/config/path.js +4 -4
- package/dist/commands/config/show.js +5 -5
- package/dist/commands/diff.js +685 -86
- package/dist/commands/diff.js.map +1 -1
- package/dist/commands/doctor.js +35 -63
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/edit.js +180 -48
- package/dist/commands/edit.js.map +1 -1
- package/dist/commands/eject.js +182 -32
- package/dist/commands/eject.js.map +1 -1
- package/dist/commands/import/skill.js +200 -36
- package/dist/commands/import/skill.js.map +1 -1
- package/dist/commands/info.js +46 -39
- package/dist/commands/info.js.map +1 -1
- package/dist/commands/init.js +19 -22
- package/dist/commands/list.js +4 -4
- package/dist/commands/new/agent.js +144 -48
- package/dist/commands/new/agent.js.map +1 -1
- package/dist/commands/new/marketplace.js +9 -9
- package/dist/commands/new/marketplace.js.map +1 -1
- package/dist/commands/new/skill.js +198 -34
- package/dist/commands/new/skill.js.map +1 -1
- package/dist/commands/outdated.js +6 -8
- package/dist/commands/outdated.js.map +1 -1
- package/dist/commands/search.js +165 -68
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/uninstall.js +263 -65
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.js +236 -167
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/validate.js +4 -4
- package/dist/components/skill-search/skill-search.js +1 -1
- package/dist/components/wizard/category-grid.test.js +7 -7
- package/dist/components/wizard/domain-selection.js +5 -5
- package/dist/components/wizard/help-modal.js +5 -5
- package/dist/components/wizard/source-grid.test.js +7 -7
- package/dist/components/wizard/stack-selection.js +5 -5
- package/dist/components/wizard/step-agents.js +5 -5
- package/dist/components/wizard/step-agents.test.js +8 -8
- package/dist/components/wizard/step-build.js +5 -5
- package/dist/components/wizard/step-build.test.js +7 -7
- package/dist/components/wizard/step-confirm.test.js +5 -5
- package/dist/components/wizard/step-settings.js +4 -4
- package/dist/components/wizard/step-settings.test.js +7 -7
- package/dist/components/wizard/step-sources.js +5 -5
- package/dist/components/wizard/step-sources.test.js +8 -8
- package/dist/components/wizard/step-stack.js +6 -6
- package/dist/components/wizard/step-stack.test.js +7 -7
- package/dist/components/wizard/wizard-layout.js +6 -6
- package/dist/components/wizard/wizard.js +14 -14
- package/dist/hooks/init.js +18 -20
- package/dist/hooks/init.js.map +1 -1
- package/dist/{loader-GSEGPK64.js → loader-SQOK2BF7.js} +3 -3
- package/dist/{source-loader-OGFTIRIX.js → source-loader-CCECAU5L.js} +4 -4
- package/dist/{source-manager-FMMDDVZA.js → source-manager-4P7MTZRR.js} +4 -4
- package/dist/stores/wizard-store.js +4 -4
- package/dist/stores/wizard-store.test.js +7 -7
- package/package.json +1 -1
- package/dist/chunk-BV2MIQ3O.js.map +0 -1
- package/dist/chunk-DCVCFBQ7.js +0 -1800
- package/dist/chunk-DCVCFBQ7.js.map +0 -1
- package/dist/chunk-GED2F75H.js.map +0 -1
- package/dist/chunk-I44YG6VI.js.map +0 -1
- package/dist/chunk-NUU3U43A.js.map +0 -1
- package/dist/chunk-O5ZWS26C.js +0 -166
- package/dist/chunk-O5ZWS26C.js.map +0 -1
- package/dist/chunk-TMTUTUEV.js.map +0 -1
- package/dist/chunk-XQK4S22C.js +0 -202
- package/dist/chunk-XQK4S22C.js.map +0 -1
- /package/dist/{chunk-ZOWRO7UQ.js.map → chunk-2DRPZXXK.js.map} +0 -0
- /package/dist/{chunk-5M6Q5UQO.js.map → chunk-57KI55GJ.js.map} +0 -0
- /package/dist/{chunk-HH3AWXF4.js.map → chunk-5IYZGJDW.js.map} +0 -0
- /package/dist/{chunk-Q4DMIPZB.js.map → chunk-6YR2NEW3.js.map} +0 -0
- /package/dist/{chunk-SGZOFIFF.js.map → chunk-ATPHV3MD.js.map} +0 -0
- /package/dist/{chunk-HSLVCKVQ.js.map → chunk-DDCW4SKN.js.map} +0 -0
- /package/dist/{chunk-HZ2IBXVQ.js.map → chunk-ITBSJNIC.js.map} +0 -0
- /package/dist/{chunk-BEFYAFGV.js.map → chunk-JNUFQBXX.js.map} +0 -0
- /package/dist/{chunk-LZ7XQ3IU.js.map → chunk-MY4TVLRB.js.map} +0 -0
- /package/dist/{chunk-HZQOFFKA.js.map → chunk-REZZSDXG.js.map} +0 -0
- /package/dist/{chunk-O27WJ5KS.js.map → chunk-RWVF6DQE.js.map} +0 -0
- /package/dist/{chunk-B6MYECV6.js.map → chunk-STMRDPGZ.js.map} +0 -0
- /package/dist/{chunk-MMTMXLI4.js.map → chunk-TAPEVEET.js.map} +0 -0
- /package/dist/{chunk-CXWBVBDM.js.map → chunk-VWTZOBBQ.js.map} +0 -0
- /package/dist/{chunk-UNEJKTLP.js.map → chunk-WTPPVXJP.js.map} +0 -0
- /package/dist/{chunk-FBZR46GC.js.map → chunk-YM3V4Q3W.js.map} +0 -0
- /package/dist/{chunk-C5IYJ42F.js.map → chunk-ZFQTKY2S.js.map} +0 -0
- /package/dist/{loader-GSEGPK64.js.map → loader-SQOK2BF7.js.map} +0 -0
- /package/dist/{source-loader-OGFTIRIX.js.map → source-loader-CCECAU5L.js.map} +0 -0
- /package/dist/{source-manager-FMMDDVZA.js.map → source-manager-4P7MTZRR.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/cli/commands/compile.ts"],"sourcesContent":["import { Flags } from \"@oclif/core\";\nimport os from \"os\";\nimport { BaseCommand } from \"../base-command\";\nimport { setVerbose, verbose } from \"../utils/logger\";\nimport {\n detectBothInstallations,\n loadAgentDefs,\n compileAgents,\n discoverInstalledSkills,\n type DiscoveredSkills,\n} from \"../lib/operations\";\nimport { resolveSource } from \"../lib/configuration\";\nimport { CLI_BIN_NAME } from \"../consts\";\nimport { EXIT_CODES } from \"../lib/exit-codes\";\nimport { ERROR_MESSAGES, STATUS_MESSAGES, INFO_MESSAGES } from \"../utils/messages\";\nimport { type Installation } from \"../lib/installation\";\n\nexport default class Compile extends BaseCommand {\n static summary = \"Compile agents using local skills and agent definitions\";\n\n static description =\n \"Compile agents with resolved skill references. Compiles to the Claude plugin directory.\";\n\n static examples = [\n \"<%= config.bin %> <%= command.id %>\",\n \"<%= config.bin %> <%= command.id %> --verbose\",\n ];\n\n static flags = {\n ...BaseCommand.baseFlags,\n verbose: Flags.boolean({\n char: \"v\",\n description: \"Enable verbose logging\",\n default: false,\n }),\n \"agent-source\": Flags.string({\n description: \"Remote agent partials source (default: local CLI)\",\n }),\n };\n\n async run(): Promise<void> {\n const { flags } = await this.parse(Compile);\n\n setVerbose(flags.verbose);\n\n const cwd = process.cwd();\n const homeDir = os.homedir();\n\n const {\n global: globalInstallation,\n project: projectInstallation,\n hasBoth: hasBothScopes,\n } = await detectBothInstallations(cwd);\n\n if (!globalInstallation && !projectInstallation) {\n this.error(ERROR_MESSAGES.NO_INSTALLATION, {\n exit: EXIT_CODES.ERROR,\n });\n }\n\n // Resolve source\n this.log(STATUS_MESSAGES.RESOLVING_SOURCE);\n try {\n const sourceConfig = await resolveSource(flags.source);\n this.log(`Source: ${sourceConfig.sourceOrigin}`);\n } catch (error) {\n this.log(ERROR_MESSAGES.FAILED_RESOLVE_SOURCE);\n this.handleError(error);\n }\n\n // Load agent definitions\n this.log(\n flags[\"agent-source\"]\n ? STATUS_MESSAGES.FETCHING_AGENT_PARTIALS\n : STATUS_MESSAGES.LOADING_AGENT_PARTIALS,\n );\n let agentDefs;\n try {\n const defs = await loadAgentDefs(flags[\"agent-source\"], { projectDir: cwd });\n this.log(flags[\"agent-source\"] ? \"Agent partials fetched\" : \"Agent partials loaded\");\n verbose(` Agents: ${defs.agentSourcePaths.agentsDir}`);\n verbose(` Templates: ${defs.agentSourcePaths.templatesDir}`);\n agentDefs = defs;\n } catch (error) {\n this.log(ERROR_MESSAGES.FAILED_LOAD_AGENT_PARTIALS);\n return this.handleError(error);\n }\n\n let totalPassesWithSkills = 0;\n\n // When both installations exist, filter each pass to its own scope to prevent\n // the project pass from overwriting global agents with zero-skill versions\n // (the project config's stack only has project agent entries).\n if (globalInstallation) {\n const hadSkills = await this.runCompilePass({\n label: \"Global\",\n projectDir: homeDir,\n installation: globalInstallation,\n sourcePath: agentDefs.sourcePath,\n scopeFilter: hasBothScopes ? \"global\" : undefined,\n });\n if (hadSkills) totalPassesWithSkills++;\n }\n\n if (projectInstallation) {\n const hadSkills = await this.runCompilePass({\n label: \"Project\",\n projectDir: cwd,\n installation: projectInstallation,\n sourcePath: agentDefs.sourcePath,\n scopeFilter: hasBothScopes ? \"project\" : undefined,\n });\n if (hadSkills) totalPassesWithSkills++;\n }\n\n if (totalPassesWithSkills === 0) {\n this.error(\n `No skills found. Add skills with '${CLI_BIN_NAME} add <skill>' or create in .claude/skills/.`,\n { exit: EXIT_CODES.ERROR },\n );\n }\n }\n\n private async discoverAllSkills(projectDir: string): Promise<DiscoveredSkills> {\n this.log(STATUS_MESSAGES.DISCOVERING_SKILLS);\n const result = await discoverInstalledSkills(projectDir);\n\n if (result.totalSkillCount === 0) {\n return result;\n }\n\n if (result.pluginSkillCount > 0 && result.totalSkillCount > result.pluginSkillCount) {\n const localCount = result.totalSkillCount - result.pluginSkillCount;\n this.log(\n `Discovered ${result.totalSkillCount} skills (${result.pluginSkillCount} from plugins, ${localCount} local)`,\n );\n } else if (result.pluginSkillCount > 0) {\n this.log(`Discovered ${result.pluginSkillCount} skills from plugins`);\n } else {\n this.log(`Discovered ${result.totalSkillCount} local skills`);\n }\n\n return result;\n }\n\n private async runCompilePass(params: {\n label: string;\n projectDir: string;\n installation: Installation;\n sourcePath: string;\n scopeFilter?: \"project\" | \"global\";\n }): Promise<boolean> {\n const { label, projectDir, installation, sourcePath, scopeFilter } = params;\n\n this.log(\"\");\n this.log(`Compiling ${label.toLowerCase()} agents...`);\n this.log(\"\");\n\n verbose(` Project: ${projectDir}`);\n verbose(` Agents: ${installation.agentsDir}`);\n\n const { allSkills, totalSkillCount } = await this.discoverAllSkills(projectDir);\n\n if (totalSkillCount === 0) {\n this.log(`No skills found for ${label.toLowerCase()} pass, skipping`);\n return false;\n }\n\n this.log(STATUS_MESSAGES.RECOMPILING_AGENTS);\n try {\n const recompileResult = await compileAgents({\n projectDir,\n sourcePath,\n skills: allSkills,\n pluginDir: projectDir,\n outputDir: installation.agentsDir,\n scopeFilter,\n });\n\n if (recompileResult.failed.length > 0) {\n this.log(\n `Recompiled ${recompileResult.compiled.length} ${label.toLowerCase()} agents (${recompileResult.failed.length} failed)`,\n );\n for (const warning of recompileResult.warnings) {\n this.warn(warning);\n }\n } else if (recompileResult.compiled.length > 0) {\n this.log(`Recompiled ${recompileResult.compiled.length} ${label.toLowerCase()} agents`);\n } else {\n this.log(INFO_MESSAGES.NO_AGENTS_TO_RECOMPILE);\n }\n\n if (recompileResult.compiled.length > 0) {\n verbose(` Compiled: ${recompileResult.compiled.join(\", \")}`);\n }\n } catch (error) {\n this.log(ERROR_MESSAGES.FAILED_COMPILE_AGENTS);\n this.handleError(error);\n }\n\n this.log(\"\");\n this.logSuccess(`${label} compile complete!`);\n this.log(\"\");\n\n return true;\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/cli/commands/compile.ts"],"sourcesContent":["import { Flags } from \"@oclif/core\";\nimport os from \"os\";\nimport { BaseCommand } from \"../base-command\";\nimport { setVerbose, verbose } from \"../utils/logger\";\nimport {\n detectBothInstallations,\n type BothInstallations,\n loadAgentDefs,\n type AgentDefs,\n compileAgents,\n discoverInstalledSkills,\n type DiscoveredSkills,\n} from \"../lib/operations\";\nimport { resolveSource } from \"../lib/configuration\";\nimport { CLI_BIN_NAME } from \"../consts\";\nimport { EXIT_CODES } from \"../lib/exit-codes\";\nimport { ERROR_MESSAGES, STATUS_MESSAGES, INFO_MESSAGES } from \"../utils/messages\";\nimport { type Installation } from \"../lib/installation\";\n\nexport default class Compile extends BaseCommand {\n static summary = \"Compile agents using local skills and agent definitions\";\n\n static description =\n \"Compile agents with resolved skill references. Compiles to the Claude plugin directory.\";\n\n static examples = [\n \"<%= config.bin %> <%= command.id %>\",\n \"<%= config.bin %> <%= command.id %> --verbose\",\n ];\n\n static flags = {\n ...BaseCommand.baseFlags,\n verbose: Flags.boolean({\n char: \"v\",\n description: \"Enable verbose logging\",\n default: false,\n }),\n \"agent-source\": Flags.string({\n description: \"Remote agent partials source (default: local CLI)\",\n }),\n };\n\n async run(): Promise<void> {\n const { flags } = await this.parse(Compile);\n setVerbose(flags.verbose);\n const cwd = process.cwd();\n\n const installations = await this.detectInstallations(cwd);\n await this.resolveAndLogSource(flags.source);\n const agentDefs = await this.loadAgentDefsOrFail(flags, cwd);\n await this.compileAllScopes(installations, agentDefs, cwd);\n }\n\n private async detectInstallations(cwd: string): Promise<BothInstallations> {\n const installations = await detectBothInstallations(cwd);\n\n if (!installations.global && !installations.project) {\n this.error(ERROR_MESSAGES.NO_INSTALLATION, {\n exit: EXIT_CODES.ERROR,\n });\n }\n\n return installations;\n }\n\n private async resolveAndLogSource(sourceFlag?: string): Promise<void> {\n this.log(STATUS_MESSAGES.RESOLVING_SOURCE);\n try {\n const sourceConfig = await resolveSource(sourceFlag);\n this.log(`Source: ${sourceConfig.sourceOrigin}`);\n } catch (error) {\n this.log(ERROR_MESSAGES.FAILED_RESOLVE_SOURCE);\n this.handleError(error);\n }\n }\n\n private async loadAgentDefsOrFail(\n flags: { \"agent-source\"?: string },\n cwd: string,\n ): Promise<AgentDefs> {\n this.log(\n flags[\"agent-source\"]\n ? STATUS_MESSAGES.FETCHING_AGENT_PARTIALS\n : STATUS_MESSAGES.LOADING_AGENT_PARTIALS,\n );\n try {\n const defs = await loadAgentDefs(flags[\"agent-source\"], { projectDir: cwd });\n this.log(flags[\"agent-source\"] ? \"Agent partials fetched\" : \"Agent partials loaded\");\n verbose(` Agents: ${defs.agentSourcePaths.agentsDir}`);\n verbose(` Templates: ${defs.agentSourcePaths.templatesDir}`);\n return defs;\n } catch (error) {\n this.log(ERROR_MESSAGES.FAILED_LOAD_AGENT_PARTIALS);\n this.handleError(error);\n }\n }\n\n private async compileAllScopes(\n installations: BothInstallations,\n agentDefs: AgentDefs,\n cwd: string,\n ): Promise<void> {\n const homeDir = os.homedir();\n let totalPassesWithSkills = 0;\n\n // When both installations exist, filter each pass to its own scope to prevent\n // the project pass from overwriting global agents with zero-skill versions\n // (the project config's stack only has project agent entries).\n if (installations.global) {\n const hadSkills = await this.runCompilePass({\n label: \"Global\",\n projectDir: homeDir,\n installation: installations.global,\n sourcePath: agentDefs.sourcePath,\n scopeFilter: installations.hasBoth ? \"global\" : undefined,\n });\n if (hadSkills) totalPassesWithSkills++;\n }\n\n if (installations.project) {\n const hadSkills = await this.runCompilePass({\n label: \"Project\",\n projectDir: cwd,\n installation: installations.project,\n sourcePath: agentDefs.sourcePath,\n scopeFilter: installations.hasBoth ? \"project\" : undefined,\n });\n if (hadSkills) totalPassesWithSkills++;\n }\n\n if (totalPassesWithSkills === 0) {\n this.error(\n `No skills found. Add skills with '${CLI_BIN_NAME} add <skill>' or create in .claude/skills/.`,\n { exit: EXIT_CODES.ERROR },\n );\n }\n }\n\n private async discoverAllSkills(projectDir: string): Promise<DiscoveredSkills> {\n this.log(STATUS_MESSAGES.DISCOVERING_SKILLS);\n const result = await discoverInstalledSkills(projectDir);\n\n if (result.totalSkillCount === 0) {\n return result;\n }\n\n if (result.pluginSkillCount > 0 && result.totalSkillCount > result.pluginSkillCount) {\n const localCount = result.totalSkillCount - result.pluginSkillCount;\n this.log(\n `Discovered ${result.totalSkillCount} skills (${result.pluginSkillCount} from plugins, ${localCount} local)`,\n );\n } else if (result.pluginSkillCount > 0) {\n this.log(`Discovered ${result.pluginSkillCount} skills from plugins`);\n } else {\n this.log(`Discovered ${result.totalSkillCount} local skills`);\n }\n\n return result;\n }\n\n private async runCompilePass(params: {\n label: string;\n projectDir: string;\n installation: Installation;\n sourcePath: string;\n scopeFilter?: \"project\" | \"global\";\n }): Promise<boolean> {\n const { label, projectDir, installation, sourcePath, scopeFilter } = params;\n\n this.log(\"\");\n this.log(`Compiling ${label.toLowerCase()} agents...`);\n this.log(\"\");\n\n verbose(` Project: ${projectDir}`);\n verbose(` Agents: ${installation.agentsDir}`);\n\n const { allSkills, totalSkillCount } = await this.discoverAllSkills(projectDir);\n\n if (totalSkillCount === 0) {\n this.log(`No skills found for ${label.toLowerCase()} pass, skipping`);\n return false;\n }\n\n this.log(STATUS_MESSAGES.RECOMPILING_AGENTS);\n try {\n const recompileResult = await compileAgents({\n projectDir,\n sourcePath,\n skills: allSkills,\n pluginDir: projectDir,\n outputDir: installation.agentsDir,\n scopeFilter,\n });\n\n if (recompileResult.failed.length > 0) {\n this.log(\n `Recompiled ${recompileResult.compiled.length} ${label.toLowerCase()} agents (${recompileResult.failed.length} failed)`,\n );\n for (const warning of recompileResult.warnings) {\n this.warn(warning);\n }\n } else if (recompileResult.compiled.length > 0) {\n this.log(`Recompiled ${recompileResult.compiled.length} ${label.toLowerCase()} agents`);\n } else {\n this.log(INFO_MESSAGES.NO_AGENTS_TO_RECOMPILE);\n }\n\n if (recompileResult.compiled.length > 0) {\n verbose(` Compiled: ${recompileResult.compiled.join(\", \")}`);\n }\n } catch (error) {\n this.log(ERROR_MESSAGES.FAILED_COMPILE_AGENTS);\n this.handleError(error);\n }\n\n this.log(\"\");\n this.logSuccess(`${label} compile complete!`);\n this.log(\"\");\n\n return true;\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
ConfigShow
|
|
4
|
-
} from "../../chunk-
|
|
5
|
-
import "../../chunk-
|
|
6
|
-
import "../../chunk-
|
|
4
|
+
} from "../../chunk-ITBSJNIC.js";
|
|
5
|
+
import "../../chunk-EADZIYQW.js";
|
|
6
|
+
import "../../chunk-STMRDPGZ.js";
|
|
7
7
|
import "../../chunk-ANXHMG32.js";
|
|
8
|
-
import "../../chunk-
|
|
9
|
-
import "../../chunk-
|
|
8
|
+
import "../../chunk-TAPEVEET.js";
|
|
9
|
+
import "../../chunk-ZTRQO5CX.js";
|
|
10
10
|
import "../../chunk-6XWHJHNZ.js";
|
|
11
11
|
import "../../chunk-6PGL2XMY.js";
|
|
12
12
|
import "../../chunk-NPMMU4GY.js";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
getProjectConfigPath
|
|
4
|
-
} from "../../chunk-
|
|
5
|
-
import "../../chunk-
|
|
4
|
+
} from "../../chunk-EADZIYQW.js";
|
|
5
|
+
import "../../chunk-STMRDPGZ.js";
|
|
6
6
|
import "../../chunk-ANXHMG32.js";
|
|
7
7
|
import {
|
|
8
8
|
BaseCommand
|
|
9
|
-
} from "../../chunk-
|
|
10
|
-
import "../../chunk-
|
|
9
|
+
} from "../../chunk-TAPEVEET.js";
|
|
10
|
+
import "../../chunk-ZTRQO5CX.js";
|
|
11
11
|
import "../../chunk-6XWHJHNZ.js";
|
|
12
12
|
import "../../chunk-6PGL2XMY.js";
|
|
13
13
|
import "../../chunk-NPMMU4GY.js";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
ConfigShow
|
|
4
|
-
} from "../../chunk-
|
|
5
|
-
import "../../chunk-
|
|
6
|
-
import "../../chunk-
|
|
4
|
+
} from "../../chunk-ITBSJNIC.js";
|
|
5
|
+
import "../../chunk-EADZIYQW.js";
|
|
6
|
+
import "../../chunk-STMRDPGZ.js";
|
|
7
7
|
import "../../chunk-ANXHMG32.js";
|
|
8
|
-
import "../../chunk-
|
|
9
|
-
import "../../chunk-
|
|
8
|
+
import "../../chunk-TAPEVEET.js";
|
|
9
|
+
import "../../chunk-ZTRQO5CX.js";
|
|
10
10
|
import "../../chunk-6XWHJHNZ.js";
|
|
11
11
|
import "../../chunk-6PGL2XMY.js";
|
|
12
12
|
import "../../chunk-NPMMU4GY.js";
|