AX Agent 코워크·코드 흐름과 컨텍스트 관리를 claude-code 기준으로 대폭 정리
- 코워크·코드 프롬프트, 도구 선택, 문서 생성/검증 흐름을 claude-code 동등 품질 기준으로 재정렬함 - OpenAI/vLLM 경로의 오래된 tool history를 평탄화하고 최근 이력만 구조화해 컨텍스트 직렬화를 경량화함 - AX Agent UI를 테마 기준으로 재구성하고 플랜 승인/오버레이/이벤트 렌더링/명령 입력 상호작용을 개선함 - 파일 후보 제안, 반복 경로 정체 복구, LSP 보강, 문서·PPT 처리 개선, 설정/서비스 인터페이스 정리를 함께 반영함 - README.md 및 docs/DEVELOPMENT.md를 작업 시점별로 갱신함 - 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0, 오류 0)
This commit is contained in:
@@ -17,7 +17,9 @@ public class ExcelSkill : IAgentTool
|
||||
"Supports: header styling (bold white text on colored background), " +
|
||||
"striped rows, column auto-width, formulas (=SUM, =AVERAGE, etc), " +
|
||||
"cell merge, freeze panes (freeze header row), number formatting, " +
|
||||
"themes (professional/modern/dark/minimal), column alignments, and multi-sheet workbooks.";
|
||||
"themes (professional/modern/dark/minimal), column alignments, and multi-sheet workbooks. " +
|
||||
"Inline icons: use {icon:name} in cell text (e.g. '{icon:checkmark} 완료', '{icon:warning} 주의'). " +
|
||||
"170+ built-in icons: checkmark, warning, star, rocket, chart_up, chart_down, etc.";
|
||||
|
||||
public ToolParameterSchema Parameters => new()
|
||||
{
|
||||
@@ -340,12 +342,16 @@ public class ExcelSkill : IAgentTool
|
||||
|
||||
var strVal = cellVal.ToString();
|
||||
|
||||
// {icon:name} 인라인 아이콘 → 유니코드 심볼로 치환
|
||||
if (strVal.Contains("{icon:"))
|
||||
strVal = ResolveInlineIcons(strVal);
|
||||
|
||||
if (strVal.StartsWith('='))
|
||||
{
|
||||
cell.CellFormula = new CellFormula(strVal);
|
||||
cell.DataType = null;
|
||||
}
|
||||
else if (cellVal.ValueKind == JsonValueKind.Number)
|
||||
else if (cellVal.ValueKind == JsonValueKind.Number && !strVal.Contains("{icon:"))
|
||||
{
|
||||
cell.DataType = CellValues.Number;
|
||||
cell.CellValue = new CellValue(cellVal.GetDouble().ToString());
|
||||
@@ -500,18 +506,18 @@ public class ExcelSkill : IAgentTool
|
||||
var fonts = new Fonts(
|
||||
new Font( // 0: default
|
||||
new FontSize { Val = 11 },
|
||||
new FontName { Val = "맑은 고딕" }
|
||||
new FontName { Val = "Noto Sans KR" }
|
||||
),
|
||||
new Font( // 1: bold white (header)
|
||||
new Bold(),
|
||||
new FontSize { Val = 11 },
|
||||
new Color { Rgb = theme.HeaderFg },
|
||||
new FontName { Val = "맑은 고딕" }
|
||||
new FontName { Val = "Noto Sans KR" }
|
||||
),
|
||||
new Font( // 2: bold (summary row)
|
||||
new Bold(),
|
||||
new FontSize { Val = 11 },
|
||||
new FontName { Val = "맑은 고딕" }
|
||||
new FontName { Val = "Noto Sans KR" }
|
||||
)
|
||||
);
|
||||
stylesheet.Append(fonts);
|
||||
@@ -799,4 +805,12 @@ public class ExcelSkill : IAgentTool
|
||||
|
||||
private static string GetCellReference(int colIndex, int rowIndex)
|
||||
=> $"{GetColumnLetter(colIndex)}{rowIndex + 1}";
|
||||
|
||||
/// <summary>{icon:name} 패턴을 유니코드 심볼로 치환합니다.</summary>
|
||||
private static string ResolveInlineIcons(string text)
|
||||
=> System.Text.RegularExpressions.Regex.Replace(text, @"\{icon:(\w+)\}", m =>
|
||||
{
|
||||
var name = m.Groups[1].Value;
|
||||
return IconLibrary.Contains(name) ? IconLibrary.Resolve(name) : m.Value;
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user