Repository navigation
Open
Labels
P2The team intends to work on this in the near future, or at a lower priority.The team intends to work on this in the near future, or at a lower priority.component: agent sdkRelating to the agent SDK libraries in any languageRelating to the agent SDK libraries in any languagelang: dartAffects SDKs or apps in the Dart programming languageAffects SDKs or apps in the Dart programming languagetype: feature/enhancement
Description
Both the Python (a2ui-agent-sdk) and TypeScript (@a2ui/agent) agent SDKs include a skill generator that compiles an InferenceFormat and its catalogs into SKILL.md packages (Skill, SkillSet, and SkillGenerator). Dart's package:a2ui_agent does not implement this API yet and skips conformance/agent/skill.yaml.
What to add
- Add
SkillandSkillSetdomain models for serializingSKILL.mdfiles with YAML frontmatter and exporting skill directories safely to disk. - Add
SkillGeneratorto compile monolithic skills (generateSkill), core syntax skills (generateCoreSkill), per-catalog skills (generateCatalogSkill), and modular skill sets (generateSkillSet) from anInferenceFormat. - Re-export the public skill API from
package:a2ui_agent/a2ui_agent.dart. - Enable and pass all 12 test cases in
conformance/agent/skill.yamlfordart/a2ui_agent.
Implementation, blueprint, and conformance details
Blueprint and reference implementations
- Feature blueprint:
skill_generator.blueprint.mdspecifies the cross-languagePromptGeneratordecomposition,Skill,SkillSet,SkillGenerator,clean_catalog_name, andexport_to_directoryrules. - Python:
skill.py,generator.py, andtest_skill_conformance.py. - TypeScript:
skill.ts,generator.ts,index.ts, andskill-conformance.test.ts.
Dart implementation notes
- Decompose
PromptGenerator(ExpressPromptGeneratorandDirectJsonPromptGenerator) into base rules, per-catalog instructions, and per-catalog examples (see TypeScript'sPromptGenerator) soSkillGeneratorandPromptGenerator.generate()share the same rendering logic and satisfy both theconformance/test_data/skills/goldens and themonolithic_skill_equals_prompt_snippetcases. - Validate
Skill.filenameandSkillSetkeys on construction and insertion so absolute paths, empty segments,., and..throwA2uiValidationError. InSkillSet.exportToDirectory, clean only each skill's immediate directory while preserving sibling folders and root files, and verify resolved ancestor paths do not escape the output directory via symlinks. - Gate
dart:iofile-system operations behind a conditional import (if (dart.library.io)), followingcatalog_providers.dart, sopackage:a2ui_agentstays compilable on web targets. - Match the YAML frontmatter formatting expected by the golden skill files (80-column plain scalar wrapping for
name,description, and optionalmetadata, as inskill.ts). - Move
agent/skill.yamlfromunsupportedAgentSuitestoactiveAgentSuitesinunsupported_suites_test.dart, adddart/a2ui_agent/test/conformance/skill_conformance_test.dart, removedart-agentfromknownGapsunderF-AGT-06infeatures.yaml, and recordskill_generatorunderimplemented_featuresincodebase.blueprint.md.
Metadata
Metadata
Assignees
Labels
P2The team intends to work on this in the near future, or at a lower priority.The team intends to work on this in the near future, or at a lower priority.component: agent sdkRelating to the agent SDK libraries in any languageRelating to the agent SDK libraries in any languagelang: dartAffects SDKs or apps in the Dart programming languageAffects SDKs or apps in the Dart programming languagetype: feature/enhancement
Type
Projects
- StatusShow more project fieldsTodo
Activity