zoo-kcl 0.3.115__tar.gz → 0.3.116__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (271) hide show
  1. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/Cargo.lock +31 -65
  2. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/Cargo.toml +4 -2
  3. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/PKG-INFO +1 -1
  4. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-derive-docs/Cargo.toml +1 -1
  5. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-directory-test-macro/Cargo.toml +1 -1
  6. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-error/Cargo.toml +1 -1
  7. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/Cargo.toml +2 -2
  8. zoo_kcl-0.3.116/kcl-lib/src/collections.rs +3 -0
  9. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/execution/annotations.rs +11 -1
  10. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/execution/artifact/mermaid_tests.rs +14 -0
  11. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/execution/artifact.rs +25 -0
  12. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/execution/cache.rs +6 -0
  13. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/execution/cad_op.rs +36 -2
  14. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/execution/exec_ast.rs +747 -29
  15. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/execution/geometry.rs +149 -1
  16. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/execution/id_generator.rs +5 -1
  17. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/execution/kcl_value.rs +78 -2
  18. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/execution/mod.rs +86 -7
  19. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/execution/state.rs +190 -12
  20. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/execution/types.rs +59 -2
  21. zoo_kcl-0.3.115/kcl-api/src/lib.rs → zoo_kcl-0.3.116/kcl-lib/src/frontend/api.rs +99 -58
  22. zoo_kcl-0.3.116/kcl-lib/src/frontend/modify.rs +60 -0
  23. zoo_kcl-0.3.116/kcl-lib/src/frontend/sketch.rs +297 -0
  24. zoo_kcl-0.3.116/kcl-lib/src/frontend/traverse.rs +598 -0
  25. zoo_kcl-0.3.116/kcl-lib/src/frontend.rs +3175 -0
  26. zoo_kcl-0.3.116/kcl-lib/src/id.rs +42 -0
  27. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/lib.rs +24 -3
  28. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/lsp/kcl/mod.rs +11 -4
  29. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/ast/types/mod.rs +42 -7
  30. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/project/mod.rs +7 -8
  31. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/simulation_tests.rs +63 -0
  32. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/std/args.rs +25 -2
  33. zoo_kcl-0.3.116/kcl-lib/src/std/constraints.rs +1051 -0
  34. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/std/mod.rs +29 -0
  35. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/std/planes.rs +23 -2
  36. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/std/sketch.rs +13 -0
  37. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/std/utils.rs +6 -2
  38. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/walk/ast_node.rs +160 -1
  39. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/walk/mod.rs +2 -2
  40. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/std/hole.kcl +15 -33
  41. zoo_kcl-0.3.116/kcl-lib/std/sketch2.kcl +66 -0
  42. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/std/types.kcl +4 -0
  43. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-python-bindings/Cargo.toml +1 -1
  44. zoo_kcl-0.3.115/kcl-api/Cargo.toml +0 -25
  45. zoo_kcl-0.3.115/kcl-api/src/sketch.rs +0 -248
  46. zoo_kcl-0.3.115/kcl-lib/src/std/constraints.rs +0 -13
  47. zoo_kcl-0.3.115/kcl-lib/std/sketch2.kcl +0 -46
  48. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-derive-docs/src/example_tests.rs +0 -0
  49. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-derive-docs/src/lib.rs +0 -0
  50. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-derive-docs/tests/args_with_lifetime.gen +0 -0
  51. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-derive-docs/tests/args_with_refs.gen +0 -0
  52. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-derive-docs/tests/array.gen +0 -0
  53. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-derive-docs/tests/box.gen +0 -0
  54. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-derive-docs/tests/doc_comment_with_code.gen +0 -0
  55. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-derive-docs/tests/lineTo.gen +0 -0
  56. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-derive-docs/tests/min.gen +0 -0
  57. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-derive-docs/tests/option.gen +0 -0
  58. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-derive-docs/tests/option_input_format.gen +0 -0
  59. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-derive-docs/tests/return_vec_box_sketch.gen +0 -0
  60. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-derive-docs/tests/return_vec_sketch.gen +0 -0
  61. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-derive-docs/tests/show.gen +0 -0
  62. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-derive-docs/tests/test_args_with_exec_state.gen +0 -0
  63. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-directory-test-macro/src/lib.rs +0 -0
  64. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-error/src/lib.rs +0 -0
  65. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-error/src/source_range.rs +0 -0
  66. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/README.md +0 -0
  67. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/clippy.toml +0 -0
  68. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/common.kcl +0 -0
  69. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/coredump/local.rs +0 -0
  70. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/coredump/mod.rs +0 -0
  71. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/coredump/wasm.rs +0 -0
  72. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/docs/gen_std_tests/type_formatter.rs +0 -0
  73. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/docs/gen_std_tests.rs +0 -0
  74. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/docs/kcl_doc.rs +0 -0
  75. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/docs/mod.rs +0 -0
  76. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/docs/templates/const.hbs +0 -0
  77. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/docs/templates/function.hbs +0 -0
  78. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/docs/templates/index.hbs +0 -0
  79. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/docs/templates/kclType.hbs +0 -0
  80. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/docs/templates/module.hbs +0 -0
  81. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/engine/async_tasks/mod.rs +0 -0
  82. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/engine/async_tasks/tasks.rs +0 -0
  83. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/engine/async_tasks/tasks_wasm.rs +0 -0
  84. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/engine/conn.rs +0 -0
  85. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/engine/conn_mock.rs +0 -0
  86. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/engine/conn_wasm.rs +0 -0
  87. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/engine/mod.rs +0 -0
  88. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/errors.rs +0 -0
  89. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/execution/fn_call.rs +0 -0
  90. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/execution/import.rs +0 -0
  91. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/execution/import_graph.rs +0 -0
  92. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/execution/memory.rs +0 -0
  93. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/execution/modeling.rs +0 -0
  94. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/execution/typed_path.rs +0 -0
  95. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/fmt.rs +0 -0
  96. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/fs/local.rs +0 -0
  97. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/fs/mod.rs +0 -0
  98. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/fs/wasm.rs +0 -0
  99. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/lint/checks/camel_case.rs +0 -0
  100. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/lint/checks/chained_profiles.rs +0 -0
  101. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/lint/checks/default_plane.rs +0 -0
  102. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/lint/checks/mod.rs +0 -0
  103. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/lint/checks/offset_plane.rs +0 -0
  104. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/lint/mod.rs +0 -0
  105. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/lint/rule.rs +0 -0
  106. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/log.rs +0 -0
  107. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/lsp/backend.rs +0 -0
  108. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/lsp/copilot/cache.rs +0 -0
  109. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/lsp/copilot/mod.rs +0 -0
  110. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/lsp/copilot/types.rs +0 -0
  111. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/lsp/kcl/custom_notifications.rs +0 -0
  112. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/lsp/kcl/hover.rs +0 -0
  113. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/lsp/mod.rs +0 -0
  114. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/lsp/test_util.rs +0 -0
  115. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/lsp/tests.rs +0 -0
  116. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/lsp/util.rs +0 -0
  117. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/main.rs +0 -0
  118. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/modules.rs +0 -0
  119. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/ast/digest.rs +0 -0
  120. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/ast/mod.rs +0 -0
  121. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/ast/types/condition.rs +0 -0
  122. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/ast/types/literal_value.rs +0 -0
  123. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/ast/types/none.rs +0 -0
  124. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/ast/types/path.rs +0 -0
  125. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/math.rs +0 -0
  126. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/mod.rs +0 -0
  127. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/parser.rs +0 -0
  128. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__a.snap +0 -0
  129. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__b.snap +0 -0
  130. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__c.snap +0 -0
  131. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__d.snap +0 -0
  132. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__e.snap +0 -0
  133. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__f.snap +0 -0
  134. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__g.snap +0 -0
  135. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__h.snap +0 -0
  136. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__i.snap +0 -0
  137. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__j.snap +0 -0
  138. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__k.snap +0 -0
  139. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__a.snap +0 -0
  140. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__aa.snap +0 -0
  141. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ab.snap +0 -0
  142. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ac.snap +0 -0
  143. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ad.snap +0 -0
  144. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ae.snap +0 -0
  145. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__af.snap +0 -0
  146. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ag.snap +0 -0
  147. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ah.snap +0 -0
  148. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ai.snap +0 -0
  149. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__aj.snap +0 -0
  150. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ak.snap +0 -0
  151. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ap.snap +0 -0
  152. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__aq.snap +0 -0
  153. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ar.snap +0 -0
  154. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__array_ranges.snap +0 -0
  155. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__at.snap +0 -0
  156. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__au.snap +0 -0
  157. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__av.snap +0 -0
  158. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__aw.snap +0 -0
  159. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ax.snap +0 -0
  160. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ay.snap +0 -0
  161. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__az.snap +0 -0
  162. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__b.snap +0 -0
  163. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bb.snap +0 -0
  164. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bc.snap +0 -0
  165. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bd.snap +0 -0
  166. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__be.snap +0 -0
  167. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bf.snap +0 -0
  168. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bg.snap +0 -0
  169. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bh.snap +0 -0
  170. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bi.snap +0 -0
  171. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bj.snap +0 -0
  172. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bk.snap +0 -0
  173. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bl.snap +0 -0
  174. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bm.snap +0 -0
  175. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bn.snap +0 -0
  176. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__c.snap +0 -0
  177. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__d.snap +0 -0
  178. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__d2.snap +0 -0
  179. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__e.snap +0 -0
  180. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__f.snap +0 -0
  181. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__g.snap +0 -0
  182. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__h.snap +0 -0
  183. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__i.snap +0 -0
  184. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__j.snap +0 -0
  185. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__k.snap +0 -0
  186. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_all_named.snap +0 -0
  187. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_call_in_pipe.snap +0 -0
  188. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_call_multiline.snap +0 -0
  189. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_call_multiline_with_comments.snap +0 -0
  190. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_decl_all_labeled.snap +0 -0
  191. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_decl_first_unlabeled.snap +0 -0
  192. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_decl_with_default_and_type.snap +0 -0
  193. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_decl_with_default_no_type.snap +0 -0
  194. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_in_binary_op.snap +0 -0
  195. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_unnamed_first.snap +0 -0
  196. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__l.snap +0 -0
  197. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__m.snap +0 -0
  198. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__n.snap +0 -0
  199. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__o.snap +0 -0
  200. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__p.snap +0 -0
  201. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__q.snap +0 -0
  202. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__r.snap +0 -0
  203. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__s.snap +0 -0
  204. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__space_between_expr_and_array.snap +0 -0
  205. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__space_between_unary_and_operand.snap +0 -0
  206. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__t.snap +0 -0
  207. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__u.snap +0 -0
  208. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__v.snap +0 -0
  209. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__w.snap +0 -0
  210. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__x.snap +0 -0
  211. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__y.snap +0 -0
  212. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__z.snap +0 -0
  213. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/token/mod.rs +0 -0
  214. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/token/snapshots/kcl_lib__parsing__token__tokeniser__tests__program2.snap +0 -0
  215. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/parsing/token/tokeniser.rs +0 -0
  216. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/settings/generate_settings_docs.rs +0 -0
  217. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/settings/mod.rs +0 -0
  218. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/settings/templates/settings.hbs +0 -0
  219. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/settings/types/mod.rs +0 -0
  220. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/settings/types/project.rs +0 -0
  221. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/simulation_tests/kcl_samples.rs +0 -0
  222. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/std/appearance.rs +0 -0
  223. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/std/array.rs +0 -0
  224. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/std/assert.rs +0 -0
  225. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/std/axis_or_reference.rs +0 -0
  226. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/std/chamfer.rs +0 -0
  227. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/std/clone.rs +0 -0
  228. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/std/csg.rs +0 -0
  229. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/std/edge.rs +0 -0
  230. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/std/extrude.rs +0 -0
  231. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/std/fillet.rs +0 -0
  232. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/std/gdt.rs +0 -0
  233. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/std/helix.rs +0 -0
  234. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/std/loft.rs +0 -0
  235. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/std/math.rs +0 -0
  236. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/std/mirror.rs +0 -0
  237. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/std/patterns.rs +0 -0
  238. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/std/revolve.rs +0 -0
  239. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/std/segment.rs +0 -0
  240. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/std/shapes.rs +0 -0
  241. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/std/shell.rs +0 -0
  242. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/std/sweep.rs +0 -0
  243. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/std/transform.rs +0 -0
  244. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/test_server.rs +0 -0
  245. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/thread/local.rs +0 -0
  246. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/thread/mod.rs +0 -0
  247. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/thread/wasm.rs +0 -0
  248. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/unparser.rs +0 -0
  249. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/variant_name.rs +0 -0
  250. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/walk/ast_visitor.rs +0 -0
  251. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/walk/ast_walk.rs +0 -0
  252. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/src/wasm/mod.rs +0 -0
  253. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/std/appearance.kcl +0 -0
  254. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/std/array.kcl +0 -0
  255. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/std/gdt.kcl +0 -0
  256. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/std/math.kcl +0 -0
  257. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/std/prelude.kcl +0 -0
  258. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/std/sketch.kcl +0 -0
  259. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/std/solid.kcl +0 -0
  260. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/std/sweep.kcl +0 -0
  261. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/std/transform.kcl +0 -0
  262. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/std/turns.kcl +0 -0
  263. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/std/units.kcl +0 -0
  264. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-lib/std/vector.kcl +0 -0
  265. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-python-bindings/README.md +0 -0
  266. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-python-bindings/justfile +0 -0
  267. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-python-bindings/kcl.pyi +0 -0
  268. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-python-bindings/src/bin/stub_gen.rs +0 -0
  269. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-python-bindings/src/bridge.rs +0 -0
  270. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/kcl-python-bindings/src/lib.rs +0 -0
  271. {zoo_kcl-0.3.115 → zoo_kcl-0.3.116}/pyproject.toml +0 -0
@@ -28,6 +28,19 @@ dependencies = [
28
28
  "cpufeatures",
29
29
  ]
30
30
 
31
+ [[package]]
32
+ name = "ahash"
33
+ version = "0.8.12"
34
+ source = "registry+https://github.com/rust-lang/crates.io-index"
35
+ checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75"
36
+ dependencies = [
37
+ "cfg-if",
38
+ "getrandom 0.3.1",
39
+ "once_cell",
40
+ "version_check",
41
+ "zerocopy",
42
+ ]
43
+
31
44
  [[package]]
32
45
  name = "aho-corasick"
33
46
  version = "1.1.3"
@@ -980,16 +993,6 @@ dependencies = [
980
993
  "windows-sys 0.59.0",
981
994
  ]
982
995
 
983
- [[package]]
984
- name = "error-stack"
985
- version = "0.5.0"
986
- source = "registry+https://github.com/rust-lang/crates.io-index"
987
- checksum = "fe413319145d1063f080f27556fd30b1d70b01e2ba10c2a6e40d4be982ffc5d1"
988
- dependencies = [
989
- "anyhow",
990
- "rustc_version",
991
- ]
992
-
993
996
  [[package]]
994
997
  name = "euler"
995
998
  version = "0.4.1"
@@ -2113,20 +2116,9 @@ dependencies = [
2113
2116
  "wasm-bindgen",
2114
2117
  ]
2115
2118
 
2116
- [[package]]
2117
- name = "kcl-api"
2118
- version = "0.1.115"
2119
- dependencies = [
2120
- "indexmap 2.12.1",
2121
- "kcl-error",
2122
- "serde",
2123
- "ts-rs",
2124
- "wasm-bindgen",
2125
- ]
2126
-
2127
2119
  [[package]]
2128
2120
  name = "kcl-bumper"
2129
- version = "0.1.115"
2121
+ version = "0.1.116"
2130
2122
  dependencies = [
2131
2123
  "anyhow",
2132
2124
  "clap",
@@ -2137,7 +2129,7 @@ dependencies = [
2137
2129
 
2138
2130
  [[package]]
2139
2131
  name = "kcl-derive-docs"
2140
- version = "0.1.115"
2132
+ version = "0.1.116"
2141
2133
  dependencies = [
2142
2134
  "proc-macro2",
2143
2135
  "quote",
@@ -2146,7 +2138,7 @@ dependencies = [
2146
2138
 
2147
2139
  [[package]]
2148
2140
  name = "kcl-directory-test-macro"
2149
- version = "0.1.115"
2141
+ version = "0.1.116"
2150
2142
  dependencies = [
2151
2143
  "convert_case",
2152
2144
  "proc-macro2",
@@ -2156,7 +2148,7 @@ dependencies = [
2156
2148
 
2157
2149
  [[package]]
2158
2150
  name = "kcl-error"
2159
- version = "0.1.115"
2151
+ version = "0.1.116"
2160
2152
  dependencies = [
2161
2153
  "miette",
2162
2154
  "serde",
@@ -2166,22 +2158,21 @@ dependencies = [
2166
2158
 
2167
2159
  [[package]]
2168
2160
  name = "kcl-ezpz"
2169
- version = "0.1.5"
2161
+ version = "0.2.2"
2170
2162
  source = "registry+https://github.com/rust-lang/crates.io-index"
2171
- checksum = "ae79e38dd74d57483135a0c29e9be71cd445e6381a2fb99ea683b637cc0934d8"
2163
+ checksum = "990cb34e933e0ee5fdfe3c919500419fe5aa49e13bb14ca96ba4bb2bdc6d2f7b"
2172
2164
  dependencies = [
2173
2165
  "faer",
2174
2166
  "getrandom 0.2.16",
2175
2167
  "indexmap 2.12.1",
2176
2168
  "libm",
2177
- "newtonls_faer",
2178
2169
  "thiserror 2.0.17",
2179
2170
  "winnow",
2180
2171
  ]
2181
2172
 
2182
2173
  [[package]]
2183
2174
  name = "kcl-language-server"
2184
- version = "0.2.115"
2175
+ version = "0.2.116"
2185
2176
  dependencies = [
2186
2177
  "anyhow",
2187
2178
  "clap",
@@ -2202,7 +2193,7 @@ dependencies = [
2202
2193
 
2203
2194
  [[package]]
2204
2195
  name = "kcl-language-server-release"
2205
- version = "0.1.115"
2196
+ version = "0.1.116"
2206
2197
  dependencies = [
2207
2198
  "anyhow",
2208
2199
  "clap",
@@ -2222,8 +2213,9 @@ dependencies = [
2222
2213
 
2223
2214
  [[package]]
2224
2215
  name = "kcl-lib"
2225
- version = "0.2.115"
2216
+ version = "0.2.116"
2226
2217
  dependencies = [
2218
+ "ahash",
2227
2219
  "anyhow",
2228
2220
  "approx 0.5.1",
2229
2221
  "async-recursion",
@@ -2251,7 +2243,6 @@ dependencies = [
2251
2243
  "insta",
2252
2244
  "itertools 0.14.0",
2253
2245
  "js-sys",
2254
- "kcl-api",
2255
2246
  "kcl-derive-docs",
2256
2247
  "kcl-directory-test-macro",
2257
2248
  "kcl-error",
@@ -2304,7 +2295,7 @@ dependencies = [
2304
2295
 
2305
2296
  [[package]]
2306
2297
  name = "kcl-python-bindings"
2307
- version = "0.3.115"
2298
+ version = "0.3.116"
2308
2299
  dependencies = [
2309
2300
  "anyhow",
2310
2301
  "kcl-lib",
@@ -2320,7 +2311,7 @@ dependencies = [
2320
2311
 
2321
2312
  [[package]]
2322
2313
  name = "kcl-test-server"
2323
- version = "0.1.115"
2314
+ version = "0.1.116"
2324
2315
  dependencies = [
2325
2316
  "anyhow",
2326
2317
  "hyper 0.14.32",
@@ -2333,7 +2324,7 @@ dependencies = [
2333
2324
 
2334
2325
  [[package]]
2335
2326
  name = "kcl-to-core"
2336
- version = "0.1.115"
2327
+ version = "0.1.116"
2337
2328
  dependencies = [
2338
2329
  "anyhow",
2339
2330
  "async-trait",
@@ -2347,7 +2338,7 @@ dependencies = [
2347
2338
 
2348
2339
  [[package]]
2349
2340
  name = "kcl-wasm-lib"
2350
- version = "0.1.115"
2341
+ version = "0.1.116"
2351
2342
  dependencies = [
2352
2343
  "anyhow",
2353
2344
  "console_error_panic_hook",
@@ -2357,7 +2348,6 @@ dependencies = [
2357
2348
  "getrandom 0.3.1",
2358
2349
  "gloo-utils",
2359
2350
  "js-sys",
2360
- "kcl-api",
2361
2351
  "kcl-lib",
2362
2352
  "kittycad",
2363
2353
  "kittycad-modeling-cmds",
@@ -2872,21 +2862,6 @@ dependencies = [
2872
2862
  "unicode-segmentation",
2873
2863
  ]
2874
2864
 
2875
- [[package]]
2876
- name = "newtonls_faer"
2877
- version = "0.1.3"
2878
- source = "registry+https://github.com/rust-lang/crates.io-index"
2879
- checksum = "8245825be07ab6cd8121fc12aa8bbfe7d8fe94512298382a222f0104105e3cfe"
2880
- dependencies = [
2881
- "dyn-stack",
2882
- "error-stack",
2883
- "faer",
2884
- "faer-traits",
2885
- "num-complex",
2886
- "num-traits 0.2.19",
2887
- "rayon",
2888
- ]
2889
-
2890
2865
  [[package]]
2891
2866
  name = "nom"
2892
2867
  version = "7.1.3"
@@ -3950,15 +3925,6 @@ version = "2.1.1"
3950
3925
  source = "registry+https://github.com/rust-lang/crates.io-index"
3951
3926
  checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d"
3952
3927
 
3953
- [[package]]
3954
- name = "rustc_version"
3955
- version = "0.4.1"
3956
- source = "registry+https://github.com/rust-lang/crates.io-index"
3957
- checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
3958
- dependencies = [
3959
- "semver",
3960
- ]
3961
-
3962
3928
  [[package]]
3963
3929
  name = "rustix"
3964
3930
  version = "0.38.44"
@@ -5789,18 +5755,18 @@ dependencies = [
5789
5755
 
5790
5756
  [[package]]
5791
5757
  name = "zerocopy"
5792
- version = "0.8.23"
5758
+ version = "0.8.31"
5793
5759
  source = "registry+https://github.com/rust-lang/crates.io-index"
5794
- checksum = "fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6"
5760
+ checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3"
5795
5761
  dependencies = [
5796
5762
  "zerocopy-derive",
5797
5763
  ]
5798
5764
 
5799
5765
  [[package]]
5800
5766
  name = "zerocopy-derive"
5801
- version = "0.8.23"
5767
+ version = "0.8.31"
5802
5768
  source = "registry+https://github.com/rust-lang/crates.io-index"
5803
- checksum = "6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154"
5769
+ checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a"
5804
5770
  dependencies = [
5805
5771
  "proc-macro2",
5806
5772
  "quote",
@@ -1,8 +1,9 @@
1
1
  [workspace]
2
2
  resolver = "2"
3
- members = ["kcl-api", "kcl-derive-docs", "kcl-directory-test-macro", "kcl-error", "kcl-lib", "kcl-python-bindings"]
3
+ members = ["kcl-derive-docs", "kcl-directory-test-macro", "kcl-error", "kcl-lib", "kcl-python-bindings"]
4
4
 
5
5
  [workspace.dependencies]
6
+ ahash = "0.8.11"
6
7
  anyhow = { version = "1" }
7
8
  async-trait = "0.1.89"
8
9
  clap = { version = "4.5.53", features = ["derive"] }
@@ -10,7 +11,7 @@ console_error_panic_hook = "0.1.7"
10
11
  dashmap = { version = "6.1.0" }
11
12
  http = "1"
12
13
  indexmap = "2.12.1"
13
- kcl-ezpz = "0.1.5"
14
+ kcl-ezpz = "0.2.2"
14
15
  kittycad = { version = "0.4.2", default-features = false, features = [
15
16
  "js",
16
17
  "requests",
@@ -72,6 +73,7 @@ debug = "line-tables-only"
72
73
 
73
74
  #Example: how to point modeling-app at a different repo (e.g. a branch or a local clone)
74
75
  # [patch.crates-io]
76
+ # kcl-ezpz = { path = "../../ezpz/kcl-ezpz" }
75
77
  # kittycad-modeling-cmds = { git = "https://github.com/KittyCAD/modeling-api.git", branch = "ben/chamfer_angle" }
76
78
  # kittycad-modeling-session = { git = "https://github.com/KittyCAD/modeling-api.git", branch = "ben/chamfer_angle" }
77
79
  # #kittycad-modeling-session = { path = "../../modeling-api/modeling-session" }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: zoo-kcl
3
- Version: 0.3.115
3
+ Version: 0.3.116
4
4
  Classifier: Programming Language :: Rust
5
5
  Classifier: Programming Language :: Python :: Implementation :: CPython
6
6
  Classifier: Programming Language :: Python :: Implementation :: PyPy
@@ -1,7 +1,7 @@
1
1
  [package]
2
2
  name = "kcl-derive-docs"
3
3
  description = "A tool for generating documentation from Rust derive macros"
4
- version = "0.1.115"
4
+ version = "0.1.116"
5
5
  edition = "2021"
6
6
  license = "MIT"
7
7
  repository = "https://github.com/KittyCAD/modeling-app"
@@ -1,7 +1,7 @@
1
1
  [package]
2
2
  name = "kcl-directory-test-macro"
3
3
  description = "A tool for generating tests from a directory of kcl files"
4
- version = "0.1.115"
4
+ version = "0.1.116"
5
5
  edition = "2021"
6
6
  license = "MIT"
7
7
  repository = "https://github.com/KittyCAD/modeling-app"
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "kcl-error"
3
- version = "0.1.115"
3
+ version = "0.1.116"
4
4
  edition = "2024"
5
5
  description = "KCL error definitions"
6
6
  license = "MIT"
@@ -1,7 +1,7 @@
1
1
  [package]
2
2
  name = "kcl-lib"
3
3
  description = "KittyCAD Language implementation and tools"
4
- version = "0.2.115"
4
+ version = "0.2.116"
5
5
  edition = "2024"
6
6
  license = "MIT"
7
7
  repository = "https://github.com/KittyCAD/modeling-app"
@@ -42,6 +42,7 @@ lsp-test-util = []
42
42
  tabled = ["dep:tabled"]
43
43
 
44
44
  [dependencies]
45
+ ahash = { workspace = true }
45
46
  anyhow = { workspace = true, features = ["backtrace"] }
46
47
  async-recursion = "1.1.1"
47
48
  async-trait = { workspace = true }
@@ -64,7 +65,6 @@ http = { workspace = true }
64
65
  image = { version = "0.25.9", default-features = false, features = ["png"] }
65
66
  indexmap = { workspace = true, features = ["serde", "rayon"] }
66
67
  itertools = "0.14.0"
67
- kcl-api = { version = "0.1", path = "../kcl-api" }
68
68
  kcl-derive-docs = { version = "0.1", path = "../kcl-derive-docs" }
69
69
  kcl-error = { version = "0.1", path = "../kcl-error" }
70
70
  kcl-ezpz = { workspace = true }
@@ -0,0 +1,3 @@
1
+ use indexmap::IndexSet;
2
+
3
+ pub type AhashIndexSet<T> = IndexSet<T, ahash::RandomState>;
@@ -35,9 +35,17 @@ pub(crate) const IMPL: &str = "impl";
35
35
  pub(crate) const IMPL_RUST: &str = "std_rust";
36
36
  pub(crate) const IMPL_CONSTRAINT: &str = "std_rust_constraint";
37
37
  pub(crate) const IMPL_CONSTRAINABLE: &str = "std_constrainable";
38
+ pub(crate) const IMPL_RUST_CONSTRAINABLE: &str = "std_rust_constrainable";
38
39
  pub(crate) const IMPL_KCL: &str = "kcl";
39
40
  pub(crate) const IMPL_PRIMITIVE: &str = "primitive";
40
- pub(super) const IMPL_VALUES: [&str; 5] = [IMPL_RUST, IMPL_KCL, IMPL_PRIMITIVE, IMPL_CONSTRAINT, IMPL_CONSTRAINABLE];
41
+ pub(super) const IMPL_VALUES: [&str; 6] = [
42
+ IMPL_RUST,
43
+ IMPL_KCL,
44
+ IMPL_PRIMITIVE,
45
+ IMPL_CONSTRAINT,
46
+ IMPL_CONSTRAINABLE,
47
+ IMPL_RUST_CONSTRAINABLE,
48
+ ];
41
49
 
42
50
  pub(crate) const WARNINGS: &str = "warnings";
43
51
  pub(crate) const WARN_ALLOW: &str = "allow";
@@ -110,6 +118,7 @@ pub enum Impl {
110
118
  Kcl,
111
119
  KclConstrainable,
112
120
  Rust,
121
+ RustConstrainable,
113
122
  RustConstraint,
114
123
  Primitive,
115
124
  }
@@ -122,6 +131,7 @@ impl FromStr for Impl {
122
131
  IMPL_RUST => Ok(Self::Rust),
123
132
  IMPL_CONSTRAINT => Ok(Self::RustConstraint),
124
133
  IMPL_CONSTRAINABLE => Ok(Self::KclConstrainable),
134
+ IMPL_RUST_CONSTRAINABLE => Ok(Self::RustConstrainable),
125
135
  IMPL_KCL => Ok(Self::Kcl),
126
136
  IMPL_PRIMITIVE => Ok(Self::Primitive),
127
137
  _ => Err(()),
@@ -87,6 +87,7 @@ impl Artifact {
87
87
  Artifact::Solid2d(a) => vec![a.path_id],
88
88
  Artifact::StartSketchOnFace(a) => vec![a.face_id],
89
89
  Artifact::StartSketchOnPlane(a) => vec![a.plane_id],
90
+ Artifact::SketchBlock(a) => a.plane_id.map(|id| vec![id]).unwrap_or_default(),
90
91
  Artifact::PlaneOfFace(a) => vec![a.face_id],
91
92
  Artifact::Sweep(a) => vec![a.path_id],
92
93
  Artifact::Wall(a) => vec![a.seg_id, a.sweep_id],
@@ -152,6 +153,10 @@ impl Artifact {
152
153
  // Note: Don't include these since they're parents: plane_id.
153
154
  Vec::new()
154
155
  }
156
+ Artifact::SketchBlock { .. } => {
157
+ // Note: Don't include these since they're parents: plane_id (if present).
158
+ Vec::new()
159
+ }
155
160
  Artifact::PlaneOfFace { .. } => {
156
161
  // Note: Don't include these since they're parents: face_id.
157
162
  Vec::new()
@@ -267,6 +272,7 @@ impl ArtifactGraph {
267
272
  }
268
273
  Artifact::StartSketchOnFace { .. }
269
274
  | Artifact::StartSketchOnPlane { .. }
275
+ | Artifact::SketchBlock { .. }
270
276
  | Artifact::PlaneOfFace { .. }
271
277
  | Artifact::Sweep(_)
272
278
  | Artifact::Wall(_)
@@ -382,6 +388,14 @@ impl ArtifactGraph {
382
388
  )?;
383
389
  node_path_display(output, prefix, None, code_ref)?;
384
390
  }
391
+ Artifact::SketchBlock(SketchBlock { code_ref, .. }) => {
392
+ writeln!(
393
+ output,
394
+ "{prefix}{id}[\"SketchBlock<br>{:?}\"]",
395
+ code_ref_display(code_ref)
396
+ )?;
397
+ node_path_display(output, prefix, None, code_ref)?;
398
+ }
385
399
  Artifact::PlaneOfFace(PlaneOfFace { code_ref, .. }) => {
386
400
  writeln!(
387
401
  output,
@@ -13,6 +13,7 @@ use crate::{
13
13
  KclError, NodePath, SourceRange,
14
14
  errors::KclErrorDetails,
15
15
  execution::ArtifactId,
16
+ front::ObjectId,
16
17
  parsing::ast::types::{Node, Program},
17
18
  };
18
19
 
@@ -215,6 +216,19 @@ pub struct StartSketchOnPlane {
215
216
  pub code_ref: CodeRef,
216
217
  }
217
218
 
219
+ #[derive(Debug, Clone, Serialize, PartialEq, ts_rs::TS)]
220
+ #[ts(export_to = "Artifact.ts")]
221
+ #[serde(rename_all = "camelCase")]
222
+ pub struct SketchBlock {
223
+ pub id: ArtifactId,
224
+ /// The plane ID if the sketch block is on a specific plane, None if it's on a default plane.
225
+ #[serde(default, skip_serializing_if = "Option::is_none")]
226
+ pub plane_id: Option<ArtifactId>,
227
+ pub code_ref: CodeRef,
228
+ /// The sketch ID (ObjectId) for the sketch scene object.
229
+ pub sketch_id: ObjectId,
230
+ }
231
+
218
232
  #[derive(Debug, Clone, Serialize, PartialEq, ts_rs::TS)]
219
233
  #[ts(export_to = "Artifact.ts")]
220
234
  #[serde(rename_all = "camelCase")]
@@ -351,6 +365,7 @@ pub enum Artifact {
351
365
  PlaneOfFace(PlaneOfFace),
352
366
  StartSketchOnFace(StartSketchOnFace),
353
367
  StartSketchOnPlane(StartSketchOnPlane),
368
+ SketchBlock(SketchBlock),
354
369
  Sweep(Sweep),
355
370
  Wall(Wall),
356
371
  Cap(Cap),
@@ -370,6 +385,7 @@ impl Artifact {
370
385
  Artifact::Solid2d(a) => a.id,
371
386
  Artifact::StartSketchOnFace(a) => a.id,
372
387
  Artifact::StartSketchOnPlane(a) => a.id,
388
+ Artifact::SketchBlock(a) => a.id,
373
389
  Artifact::PlaneOfFace(a) => a.id,
374
390
  Artifact::Sweep(a) => a.id,
375
391
  Artifact::Wall(a) => a.id,
@@ -392,6 +408,7 @@ impl Artifact {
392
408
  Artifact::Solid2d(_) => None,
393
409
  Artifact::StartSketchOnFace(a) => Some(&a.code_ref),
394
410
  Artifact::StartSketchOnPlane(a) => Some(&a.code_ref),
411
+ Artifact::SketchBlock(a) => Some(&a.code_ref),
395
412
  Artifact::PlaneOfFace(a) => Some(&a.code_ref),
396
413
  Artifact::Sweep(a) => Some(&a.code_ref),
397
414
  Artifact::Wall(_) => None,
@@ -415,6 +432,7 @@ impl Artifact {
415
432
  | Artifact::StartSketchOnFace(_)
416
433
  | Artifact::PlaneOfFace(_)
417
434
  | Artifact::StartSketchOnPlane(_)
435
+ | Artifact::SketchBlock(_)
418
436
  | Artifact::Sweep(_) => None,
419
437
  Artifact::Wall(a) => Some(&a.face_code_ref),
420
438
  Artifact::Cap(a) => Some(&a.face_code_ref),
@@ -433,6 +451,7 @@ impl Artifact {
433
451
  Artifact::Solid2d(_) => Some(new),
434
452
  Artifact::StartSketchOnFace { .. } => Some(new),
435
453
  Artifact::StartSketchOnPlane { .. } => Some(new),
454
+ Artifact::SketchBlock { .. } => Some(new),
436
455
  Artifact::PlaneOfFace { .. } => Some(new),
437
456
  Artifact::Sweep(a) => a.merge(new),
438
457
  Artifact::Wall(a) => a.merge(new),
@@ -668,6 +687,12 @@ fn fill_in_node_paths(artifact: &mut Artifact, programs: &crate::execution::Prog
668
687
  NodePath::from_range(programs, cached_body_items, plane.code_ref.range).unwrap_or_default();
669
688
  }
670
689
  }
690
+ Artifact::SketchBlock(block) => {
691
+ if block.code_ref.node_path.is_empty() {
692
+ block.code_ref.node_path =
693
+ NodePath::from_range(programs, cached_body_items, block.code_ref.range).unwrap_or_default();
694
+ }
695
+ }
671
696
  _ => {}
672
697
  }
673
698
  }
@@ -111,6 +111,12 @@ impl GlobalState {
111
111
  operations: self.exec_state.root_module_artifacts.operations,
112
112
  #[cfg(feature = "artifact-graph")]
113
113
  artifact_graph: self.exec_state.artifacts.graph,
114
+ #[cfg(feature = "artifact-graph")]
115
+ scene_objects: self.exec_state.root_module_artifacts.scene_objects,
116
+ #[cfg(feature = "artifact-graph")]
117
+ source_range_to_object: self.exec_state.root_module_artifacts.source_range_to_object,
118
+ #[cfg(feature = "artifact-graph")]
119
+ var_solutions: self.exec_state.root_module_artifacts.var_solutions,
114
120
  errors: self.exec_state.errors,
115
121
  default_planes: ctx.engine.get_default_planes().read().await.clone(),
116
122
  }
@@ -2,7 +2,7 @@ use indexmap::IndexMap;
2
2
  use serde::Serialize;
3
3
 
4
4
  use super::{ArtifactId, KclValue, types::NumericType};
5
- use crate::{ModuleId, NodePath, SourceRange, parsing::ast::types::ItemVisibility};
5
+ use crate::{ModuleId, NodePath, SourceRange, front::ObjectId, parsing::ast::types::ItemVisibility};
6
6
 
7
7
  /// A CAD modeling operation for display in the feature tree, AKA operations
8
8
  /// timeline.
@@ -54,6 +54,16 @@ pub enum Operation {
54
54
  source_range: SourceRange,
55
55
  },
56
56
  GroupEnd,
57
+ #[allow(dead_code)]
58
+ #[serde(rename_all = "camelCase")]
59
+ SketchSolve {
60
+ /// The ID of the sketch being modified.
61
+ sketch_id: ObjectId,
62
+ /// The node path of the operation in the source code.
63
+ node_path: NodePath,
64
+ /// The source range of the operation in the source code.
65
+ source_range: SourceRange,
66
+ },
57
67
  }
58
68
 
59
69
  impl Operation {
@@ -61,7 +71,7 @@ impl Operation {
61
71
  pub(crate) fn set_std_lib_call_is_error(&mut self, is_err: bool) {
62
72
  match self {
63
73
  Self::StdLibCall { is_error, .. } => *is_error = is_err,
64
- Self::VariableDeclaration { .. } | Self::GroupBegin { .. } | Self::GroupEnd => {}
74
+ Self::VariableDeclaration { .. } | Self::GroupBegin { .. } | Self::GroupEnd | Self::SketchSolve { .. } => {}
65
75
  }
66
76
  }
67
77
 
@@ -94,6 +104,13 @@ impl Operation {
94
104
  node_path.fill_placeholder(programs, cached_body_items, *source_range);
95
105
  }
96
106
  Operation::GroupEnd => {}
107
+ Operation::SketchSolve {
108
+ node_path,
109
+ source_range,
110
+ ..
111
+ } => {
112
+ node_path.fill_placeholder(programs, cached_body_items, *source_range);
113
+ }
97
114
  }
98
115
  }
99
116
  }
@@ -250,6 +267,10 @@ impl From<&KclValue> for OpKclValue {
250
267
  value: value.initial_value,
251
268
  ty: value.ty,
252
269
  },
270
+ KclValue::SketchConstraint { .. } => {
271
+ debug_assert!(false, "Sketch constraint cannot be represented in operations");
272
+ Self::KclNone {}
273
+ }
253
274
  KclValue::Tuple { value, .. } | KclValue::HomArray { value, .. } => {
254
275
  let value = value.iter().map(Self::from).collect();
255
276
  Self::Array { value }
@@ -274,6 +295,19 @@ impl From<&KclValue> for OpKclValue {
274
295
  KclValue::Face { value } => Self::Face {
275
296
  artifact_id: value.artifact_id,
276
297
  },
298
+ KclValue::Segment { value } => match &value.repr {
299
+ crate::execution::geometry::SegmentRepr::Unsolved { .. } => {
300
+ // Arguments to constraint functions will be unsolved.
301
+ Self::KclNone {}
302
+ }
303
+ crate::execution::geometry::SegmentRepr::Solved { .. } => {
304
+ debug_assert!(
305
+ false,
306
+ "Solved segment not sent to the engine cannot be represented in operations"
307
+ );
308
+ Self::KclNone {}
309
+ }
310
+ },
277
311
  KclValue::Sketch { value } => Self::Sketch {
278
312
  value: Box::new(OpSketch {
279
313
  artifact_id: value.artifact_id,