pass thru the kcl version (#5366)

Signed-off-by: Jess Frazelle <github@jessfraz.com>
This commit is contained in:
Jess Frazelle
2025-02-12 15:55:34 -08:00
committed by GitHub
parent 59d0e079a1
commit 0874891dd0
7 changed files with 40 additions and 0 deletions

View File

@ -16,6 +16,7 @@ import {
clearSceneAndBustCache, clearSceneAndBustCache,
emptyExecState, emptyExecState,
ExecState, ExecState,
getKclVersion,
initPromise, initPromise,
KclValue, KclValue,
parse, parse,
@ -74,6 +75,7 @@ export class KclManager {
private _hasErrors = false private _hasErrors = false
private _switchedFiles = false private _switchedFiles = false
private _fileSettings: KclSettingsAnnotation = {} private _fileSettings: KclSettingsAnnotation = {}
private _kclVersion: string | undefined = undefined
engineCommandManager: EngineCommandManager engineCommandManager: EngineCommandManager
@ -118,6 +120,16 @@ export class KclManager {
return this._execState return this._execState
} }
// Get the kcl version from the wasm module
// and store it in the singleton
// so we don't waste time getting it multiple times
get kclVersion() {
if (this._kclVersion === undefined) {
this._kclVersion = getKclVersion()
}
return this._kclVersion
}
get errors() { get errors() {
return this._errors return this._errors
} }

View File

@ -9,6 +9,7 @@ import {
modify_ast_for_sketch_wasm, modify_ast_for_sketch_wasm,
is_points_ccw, is_points_ccw,
get_tangential_arc_to_info, get_tangential_arc_to_info,
get_kcl_version,
make_default_planes, make_default_planes,
coredump, coredump,
toml_stringify, toml_stringify,
@ -766,3 +767,10 @@ export function unitAngToUnitAngle(input: UnitAng): UnitAngle {
return 'degrees' return 'degrees'
} }
} }
/**
* Get the KCL version currently being used.
*/
export function getKclVersion(): string {
return get_kcl_version()
}

View File

@ -161,6 +161,7 @@ See later source ranges for more context. about the sweep`,
source_ranges: ranges, source_ranges: ranges,
project_name: project_name:
projectName !== '' && projectName !== 'browser' ? projectName : undefined, projectName !== '' && projectName !== 'browser' ? projectName : undefined,
kcl_version: kclManager.kclVersion,
} }
const url = VITE_KC_API_BASE_URL + '/ml/text-to-cad/iteration' const url = VITE_KC_API_BASE_URL + '/ml/text-to-cad/iteration'
const data: Models['TextToCadIteration_type'] | Error = const data: Models['TextToCadIteration_type'] | Error =

View File

@ -16,6 +16,7 @@ import { commandBarMachine } from 'machines/commandBarMachine'
import { getNextFileName } from './desktopFS' import { getNextFileName } from './desktopFS'
import { reportRejection } from './trap' import { reportRejection } from './trap'
import { toSync } from './utils' import { toSync } from './utils'
import { kclManager } from './singletons'
async function submitTextToCadPrompt( async function submitTextToCadPrompt(
prompt: string, prompt: string,
@ -26,6 +27,7 @@ async function submitTextToCadPrompt(
prompt, prompt,
project_name: project_name:
projectName !== '' && projectName !== 'browser' ? projectName : undefined, projectName !== '' && projectName !== 'browser' ? projectName : undefined,
kcl_version: kclManager.kclVersion,
} }
// Glb has a smaller footprint than gltf, should we want to render it. // Glb has a smaller footprint than gltf, should we want to render it.
const url = VITE_KC_API_BASE_URL + '/ai/text-to-cad/glb?kcl=true' const url = VITE_KC_API_BASE_URL + '/ai/text-to-cad/glb?kcl=true'

View File

@ -28,6 +28,7 @@ import {
clear_scene_and_bust_cache as ClearSceneAndBustCache, clear_scene_and_bust_cache as ClearSceneAndBustCache,
kcl_settings as KclSettings, kcl_settings as KclSettings,
change_kcl_settings as ChangeKclSettings, change_kcl_settings as ChangeKclSettings,
get_kcl_version as GetKclVersion,
} from '../wasm-lib/pkg/wasm_lib' } from '../wasm-lib/pkg/wasm_lib'
type ModuleType = typeof import('../wasm-lib/pkg/wasm_lib') type ModuleType = typeof import('../wasm-lib/pkg/wasm_lib')
@ -118,3 +119,6 @@ export const kcl_settings: typeof KclSettings = (...args) => {
export const change_kcl_settings: typeof ChangeKclSettings = (...args) => { export const change_kcl_settings: typeof ChangeKclSettings = (...args) => {
return getModule().change_kcl_settings(...args) return getModule().change_kcl_settings(...args)
} }
export const get_kcl_version: typeof GetKclVersion = () => {
return getModule().get_kcl_version()
}

View File

@ -236,6 +236,11 @@ fn try_f64_to_i64(f: f64) -> Option<i64> {
} }
} }
/// Get the version of the KCL library.
pub fn version() -> &'static str {
env!("CARGO_PKG_VERSION")
}
#[cfg(test)] #[cfg(test)]
mod test { mod test {
use super::*; use super::*;

View File

@ -569,3 +569,11 @@ pub fn change_kcl_settings(code: &str, settings_str: &str) -> Result<String, Str
Ok(formatted) Ok(formatted)
} }
/// Get the version of the kcl library.
#[wasm_bindgen]
pub fn get_kcl_version() -> String {
console_error_panic_hook::set_once();
kcl_lib::version().to_string()
}