Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cli/golem-cli/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ use std::process::Command;
static SKIP_ENV_VAR_NAME: &str = "GOLEM_BUILD_SKIP_SHADOW";
const GENERATED_TEMPLATES_DIR_NAME: &str = "templates";
const SKILL_DESTINATION: &str = ".agents/skills";
const SUPPORTED_LANGUAGES: &[&str] = &["ts", "rust", "scala", "moonbit"];
const SUPPORTED_LANGUAGES: &[&str] = &["ts", "rust", "scala", "kotlin", "moonbit"];

fn main() {
generate_embedded_templates().unwrap();
Expand Down
22 changes: 22 additions & 0 deletions cli/golem-cli/src/agent_id_display/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,17 @@

mod lexer;
mod parse_common;
mod parse_kotlin;
mod parse_moonbit;
mod parse_rust;
mod parse_scala;
mod parse_ts;
mod parse_type_kotlin;
mod parse_type_moonbit;
mod parse_type_rust;
mod parse_type_scala;
mod parse_type_ts;
mod render_kotlin;
mod render_moonbit;
mod render_rust;
mod render_scala;
Expand All @@ -45,6 +48,7 @@ pub enum SourceLanguage {
Rust,
TypeScript,
Scala,
Kotlin,
MoonBit,
Other(String),
}
Expand All @@ -63,6 +67,7 @@ impl SourceLanguage {
SourceLanguage::Rust
| SourceLanguage::TypeScript
| SourceLanguage::Scala
| SourceLanguage::Kotlin
| SourceLanguage::MoonBit
)
}
Expand All @@ -77,6 +82,8 @@ impl From<&str> for SourceLanguage {
SourceLanguage::TypeScript
} else if trimmed.eq_ignore_ascii_case("scala") {
SourceLanguage::Scala
} else if trimmed.eq_ignore_ascii_case("kotlin") {
SourceLanguage::Kotlin
} else if trimmed.eq_ignore_ascii_case("moonbit") {
SourceLanguage::MoonBit
} else {
Expand All @@ -97,6 +104,7 @@ impl std::fmt::Display for SourceLanguage {
SourceLanguage::Rust => write!(f, "rust"),
SourceLanguage::TypeScript => write!(f, "typescript"),
SourceLanguage::Scala => write!(f, "scala"),
SourceLanguage::Kotlin => write!(f, "kotlin"),
SourceLanguage::MoonBit => write!(f, "moonbit"),
SourceLanguage::Other(s) => write!(f, "{s}"),
}
Expand Down Expand Up @@ -128,6 +136,7 @@ pub fn render_schema_value(
match source_language {
SourceLanguage::Rust => render_rust::render_value_rust(graph, ty, value),
SourceLanguage::Scala => render_scala::render_value_scala(graph, ty, value),
SourceLanguage::Kotlin => render_kotlin::render_value_kotlin(graph, ty, value),
SourceLanguage::MoonBit => render_moonbit::render_value_moonbit(graph, ty, value),
SourceLanguage::TypeScript | SourceLanguage::Other(_) => {
render_ts::render_value_ts(graph, ty, value)
Expand Down Expand Up @@ -178,6 +187,7 @@ pub fn render_type_for_language(
match lang {
SourceLanguage::Rust => render_rust::render_type_rust(graph, ty, prefer_name),
SourceLanguage::Scala => render_scala::render_type_scala(graph, ty, prefer_name),
SourceLanguage::Kotlin => render_kotlin::render_type_kotlin(graph, ty, prefer_name),
SourceLanguage::MoonBit => render_moonbit::render_type_moonbit(graph, ty, prefer_name),
SourceLanguage::TypeScript | SourceLanguage::Other(_) => {
render_ts::render_type_ts(graph, ty, prefer_name)
Expand All @@ -198,10 +208,12 @@ pub fn parse_type_for_language(
SourceLanguage::Rust => parse_type_rust::parse_type_rust(input),
SourceLanguage::TypeScript => parse_type_ts::parse_type_ts(input),
SourceLanguage::Scala => parse_type_scala::parse_type_scala(input),
SourceLanguage::Kotlin => parse_type_kotlin::parse_type_kotlin(input),
SourceLanguage::MoonBit => parse_type_moonbit::parse_type_moonbit(input),
SourceLanguage::Other(_) => parse_type_ts::parse_type_ts(input)
.or_else(|_| parse_type_rust::parse_type_rust(input))
.or_else(|_| parse_type_scala::parse_type_scala(input))
.or_else(|_| parse_type_kotlin::parse_type_kotlin(input))
.or_else(|_| parse_type_moonbit::parse_type_moonbit(input))
.map_err(|_| ParseError {
position: 0,
Expand Down Expand Up @@ -239,10 +251,12 @@ pub fn parse_value_for_language(
SourceLanguage::Rust => try_parse::<parse_rust::RustDialect>(input, graph, ty),
SourceLanguage::TypeScript => try_parse::<parse_ts::TsDialect>(input, graph, ty),
SourceLanguage::Scala => try_parse::<parse_scala::ScalaDialect>(input, graph, ty),
SourceLanguage::Kotlin => try_parse::<parse_kotlin::KotlinDialect>(input, graph, ty),
SourceLanguage::MoonBit => try_parse::<parse_moonbit::MoonBitDialect>(input, graph, ty),
SourceLanguage::Other(_) => try_parse::<parse_ts::TsDialect>(input, graph, ty)
.or_else(|_| try_parse::<parse_rust::RustDialect>(input, graph, ty))
.or_else(|_| try_parse::<parse_scala::ScalaDialect>(input, graph, ty))
.or_else(|_| try_parse::<parse_kotlin::KotlinDialect>(input, graph, ty))
.or_else(|_| try_parse::<parse_moonbit::MoonBitDialect>(input, graph, ty))
.map_err(|_| ParseError {
position: 0,
Expand Down Expand Up @@ -272,6 +286,9 @@ pub fn parse_agent_id_params(
input, graph, fields,
)
}
SourceLanguage::Kotlin => parse_common::parse_input_schema_params::<
parse_kotlin::KotlinDialect,
>(input, graph, fields),
SourceLanguage::MoonBit => parse_common::parse_input_schema_params::<
parse_moonbit::MoonBitDialect,
>(input, graph, fields),
Expand All @@ -287,6 +304,11 @@ pub fn parse_agent_id_params(
input, graph, fields,
)
})
.or_else(|_| {
parse_common::parse_input_schema_params::<parse_kotlin::KotlinDialect>(
input, graph, fields,
)
})
.or_else(|_| {
parse_common::parse_input_schema_params::<parse_moonbit::MoonBitDialect>(
input, graph, fields,
Expand Down
Loading
Loading