Skip to content

Commit e99a373

Browse files
committed
feat: add Jinja2 generator templates for Agentic types
Add asset and attribute method templates for Skill, SkillArtifact, ContextRepository, and ContextArtifact so the code generator can reproduce the hand-written creators.
1 parent 7a75390 commit e99a373

8 files changed

Lines changed: 111 additions & 0 deletions

File tree

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
2+
@classmethod
3+
@init_guid
4+
def creator(
5+
cls,
6+
*,
7+
name: str,
8+
context_repository_qualified_name: str,
9+
file_type: FileType,
10+
) -> ContextArtifact:
11+
validate_required_fields(
12+
["name", "context_repository_qualified_name", "file_type"],
13+
[name, context_repository_qualified_name, file_type],
14+
)
15+
return ContextArtifact(
16+
attributes=ContextArtifact.Attributes.creator(
17+
name=name,
18+
context_repository_qualified_name=context_repository_qualified_name,
19+
file_type=file_type,
20+
)
21+
)
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
2+
@classmethod
3+
@init_guid
4+
def creator(cls, *, name: str) -> ContextRepository:
5+
validate_required_fields(["name"], [name])
6+
return ContextRepository(
7+
attributes=ContextRepository.Attributes.creator(name=name)
8+
)
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
2+
@classmethod
3+
@init_guid
4+
def creator(cls, *, name: str) -> Skill:
5+
validate_required_fields(["name"], [name])
6+
return Skill(attributes=Skill.Attributes.creator(name=name))
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
2+
@classmethod
3+
@init_guid
4+
def creator(
5+
cls, *, name: str, skill_qualified_name: str, file_type: FileType
6+
) -> SkillArtifact:
7+
validate_required_fields(
8+
["name", "skill_qualified_name", "file_type"],
9+
[name, skill_qualified_name, file_type],
10+
)
11+
return SkillArtifact(
12+
attributes=SkillArtifact.Attributes.creator(
13+
name=name,
14+
skill_qualified_name=skill_qualified_name,
15+
file_type=file_type,
16+
)
17+
)
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
@classmethod
2+
@init_guid
3+
def creator(
4+
cls,
5+
*,
6+
name: str,
7+
context_repository_qualified_name: str,
8+
file_type: FileType,
9+
) -> ContextArtifact.Attributes:
10+
validate_required_fields(
11+
["name", "context_repository_qualified_name", "file_type"],
12+
[name, context_repository_qualified_name, file_type],
13+
)
14+
return ContextArtifact.Attributes(
15+
name=name,
16+
qualified_name=(
17+
f"{context_repository_qualified_name}/artifact/"
18+
f"{file_type.value}/{generate_nanoid()}"
19+
),
20+
file_type=file_type,
21+
context_repository_qualified_name=context_repository_qualified_name,
22+
context_repository=ContextRepository.ref_by_qualified_name(
23+
context_repository_qualified_name
24+
),
25+
)
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
@classmethod
2+
@init_guid
3+
def creator(cls, *, name: str) -> ContextRepository.Attributes:
4+
validate_required_fields(["name"], [name])
5+
return ContextRepository.Attributes(
6+
name=name,
7+
qualified_name=f"default/context/{generate_nanoid()}",
8+
)
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
@classmethod
2+
@init_guid
3+
def creator(cls, *, name: str) -> Skill.Attributes:
4+
validate_required_fields(["name"], [name])
5+
return Skill.Attributes(
6+
name=name,
7+
qualified_name=f"default/skill/{generate_nanoid()}",
8+
)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
@classmethod
2+
@init_guid
3+
def creator(
4+
cls, *, name: str, skill_qualified_name: str, file_type: FileType
5+
) -> SkillArtifact.Attributes:
6+
validate_required_fields(
7+
["name", "skill_qualified_name", "file_type"],
8+
[name, skill_qualified_name, file_type],
9+
)
10+
return SkillArtifact.Attributes(
11+
name=name,
12+
qualified_name=(
13+
f"{skill_qualified_name}/artifact/{file_type.value}"
14+
f"/{generate_nanoid()}"
15+
),
16+
file_type=file_type,
17+
skill_source=Skill.ref_by_qualified_name(skill_qualified_name),
18+
)

0 commit comments

Comments
 (0)