rototo 0.1.0a4__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 (484) hide show
  1. rototo-0.1.0a4/.editorconfig +15 -0
  2. rototo-0.1.0a4/.github/dependabot.yml +11 -0
  3. rototo-0.1.0a4/.github/workflows/ci.yml +52 -0
  4. rototo-0.1.0a4/.github/workflows/cloudflare-pages.yml +44 -0
  5. rototo-0.1.0a4/.github/workflows/release.yml +168 -0
  6. rototo-0.1.0a4/.gitignore +33 -0
  7. rototo-0.1.0a4/.pre-commit-config.yaml +32 -0
  8. rototo-0.1.0a4/.tool-versions +6 -0
  9. rototo-0.1.0a4/AGENTS.md +403 -0
  10. rototo-0.1.0a4/CHANGELOG.md +15 -0
  11. rototo-0.1.0a4/CLAUDE.md +403 -0
  12. rototo-0.1.0a4/CONTRIBUTING.md +65 -0
  13. rototo-0.1.0a4/Cargo.lock +2566 -0
  14. rototo-0.1.0a4/Cargo.toml +41 -0
  15. rototo-0.1.0a4/LICENSE-APACHE +201 -0
  16. rototo-0.1.0a4/LICENSE-MIT +21 -0
  17. rototo-0.1.0a4/PKG-INFO +152 -0
  18. rototo-0.1.0a4/README.md +236 -0
  19. rototo-0.1.0a4/docs/README.md +107 -0
  20. rototo-0.1.0a4/docs/src/application-integration.md +283 -0
  21. rototo-0.1.0a4/docs/src/bucketed-rollout.md +357 -0
  22. rototo-0.1.0a4/docs/src/getting-started.md +221 -0
  23. rototo-0.1.0a4/docs/src/incident-banner.md +316 -0
  24. rototo-0.1.0a4/docs/src/index.md +80 -0
  25. rototo-0.1.0a4/docs/src/modeling-runtime-configuration.md +415 -0
  26. rototo-0.1.0a4/docs/src/notification-delivery-policy.md +462 -0
  27. rototo-0.1.0a4/docs/src/onboarding-checklist.md +418 -0
  28. rototo-0.1.0a4/docs/src/operating-runtime-configuration.md +231 -0
  29. rototo-0.1.0a4/docs/src/operational-switches.md +263 -0
  30. rototo-0.1.0a4/docs/src/production-workflow.md +436 -0
  31. rototo-0.1.0a4/docs/src/reference-cli-commands.md +147 -0
  32. rototo-0.1.0a4/docs/src/reference-cli-overview.md +112 -0
  33. rototo-0.1.0a4/docs/src/reference-context.md +109 -0
  34. rototo-0.1.0a4/docs/src/reference-custom-lua-lint.md +147 -0
  35. rototo-0.1.0a4/docs/src/reference-diagnostics.md +125 -0
  36. rototo-0.1.0a4/docs/src/reference-json-output.md +143 -0
  37. rototo-0.1.0a4/docs/src/reference-lint-overview.md +107 -0
  38. rototo-0.1.0a4/docs/src/reference-predicate-operators.md +114 -0
  39. rototo-0.1.0a4/docs/src/reference-qualifier-resolution.md +119 -0
  40. rototo-0.1.0a4/docs/src/reference-qualifiers.md +110 -0
  41. rototo-0.1.0a4/docs/src/reference-resolution-output.md +165 -0
  42. rototo-0.1.0a4/docs/src/reference-resources.md +126 -0
  43. rototo-0.1.0a4/docs/src/reference-sdk-loading.md +113 -0
  44. rototo-0.1.0a4/docs/src/reference-sdk-python.md +135 -0
  45. rototo-0.1.0a4/docs/src/reference-sdk-refresh.md +160 -0
  46. rototo-0.1.0a4/docs/src/reference-sdk-resolution.md +161 -0
  47. rototo-0.1.0a4/docs/src/reference-sdk-rust.md +70 -0
  48. rototo-0.1.0a4/docs/src/reference-variable-resolution.md +131 -0
  49. rototo-0.1.0a4/docs/src/reference-variable-values.md +139 -0
  50. rototo-0.1.0a4/docs/src/reference-variables.md +162 -0
  51. rototo-0.1.0a4/docs/src/reference-workspace-layering.md +98 -0
  52. rototo-0.1.0a4/docs/src/reference-workspace-layout.md +113 -0
  53. rototo-0.1.0a4/docs/src/reference-workspace-manifest.md +135 -0
  54. rototo-0.1.0a4/docs/src/reference-workspace-sources.md +111 -0
  55. rototo-0.1.0a4/docs/src/service-degradation-policy.md +497 -0
  56. rototo-0.1.0a4/docs/src/testing-runtime-configuration.md +337 -0
  57. rototo-0.1.0a4/docs/src/workspace-layering.md +360 -0
  58. rototo-0.1.0a4/docs/theme/favicon.svg +5 -0
  59. rototo-0.1.0a4/docs/theme/rototo-docs.css +596 -0
  60. rototo-0.1.0a4/docs/theme/rototo-wordmark.svg +7 -0
  61. rototo-0.1.0a4/examples/basic/contexts/premium-enterprise.json +23 -0
  62. rototo-0.1.0a4/examples/basic/lint/checkout-redesign.lua +52 -0
  63. rototo-0.1.0a4/examples/basic/lint/premium-message.lua +25 -0
  64. rototo-0.1.0a4/examples/basic/qualifiers/admin-users.toml +8 -0
  65. rototo-0.1.0a4/examples/basic/qualifiers/beta-rollout-bucket.toml +9 -0
  66. rototo-0.1.0a4/examples/basic/qualifiers/enterprise-accounts.toml +13 -0
  67. rototo-0.1.0a4/examples/basic/qualifiers/eu-premium-users.toml +13 -0
  68. rototo-0.1.0a4/examples/basic/qualifiers/eu-users.toml +8 -0
  69. rototo-0.1.0a4/examples/basic/qualifiers/german-speakers.toml +8 -0
  70. rototo-0.1.0a4/examples/basic/qualifiers/high-value-cart.toml +8 -0
  71. rototo-0.1.0a4/examples/basic/qualifiers/internal-staff.toml +8 -0
  72. rototo-0.1.0a4/examples/basic/qualifiers/lane-dev.toml +8 -0
  73. rototo-0.1.0a4/examples/basic/qualifiers/lane-stage.toml +8 -0
  74. rototo-0.1.0a4/examples/basic/qualifiers/mobile-users.toml +8 -0
  75. rototo-0.1.0a4/examples/basic/qualifiers/premium-beta-users.toml +13 -0
  76. rototo-0.1.0a4/examples/basic/qualifiers/premium-users.toml +8 -0
  77. rototo-0.1.0a4/examples/basic/qualifiers/returning-users.toml +8 -0
  78. rototo-0.1.0a4/examples/basic/resources/checkout-redesign-objects/control.toml +5 -0
  79. rototo-0.1.0a4/examples/basic/resources/checkout-redesign-objects/premium.toml +5 -0
  80. rototo-0.1.0a4/examples/basic/resources/checkout-redesign.toml +4 -0
  81. rototo-0.1.0a4/examples/basic/resources/llm-agent-config-objects/enterprise.toml +5 -0
  82. rototo-0.1.0a4/examples/basic/resources/llm-agent-config-objects/local.toml +5 -0
  83. rototo-0.1.0a4/examples/basic/resources/llm-agent-config-objects/standard.toml +5 -0
  84. rototo-0.1.0a4/examples/basic/resources/llm-agent-config.toml +4 -0
  85. rototo-0.1.0a4/examples/basic/resources/llm-summarizer-config-objects/fast.toml +5 -0
  86. rototo-0.1.0a4/examples/basic/resources/llm-summarizer-config-objects/rich.toml +5 -0
  87. rototo-0.1.0a4/examples/basic/resources/llm-summarizer-config.toml +4 -0
  88. rototo-0.1.0a4/examples/basic/resources/product-recommendations-objects/baseline.toml +4 -0
  89. rototo-0.1.0a4/examples/basic/resources/product-recommendations-objects/enterprise.toml +4 -0
  90. rototo-0.1.0a4/examples/basic/resources/product-recommendations-objects/personalized.toml +4 -0
  91. rototo-0.1.0a4/examples/basic/resources/product-recommendations.toml +4 -0
  92. rototo-0.1.0a4/examples/basic/resources/support-banner-objects/german_hours.toml +5 -0
  93. rototo-0.1.0a4/examples/basic/resources/support-banner-objects/hidden.toml +5 -0
  94. rototo-0.1.0a4/examples/basic/resources/support-banner-objects/mobile_help.toml +5 -0
  95. rototo-0.1.0a4/examples/basic/resources/support-banner.toml +4 -0
  96. rototo-0.1.0a4/examples/basic/resources/tenant-limits-objects/enterprise.toml +10 -0
  97. rototo-0.1.0a4/examples/basic/resources/tenant-limits-objects/growth.toml +10 -0
  98. rototo-0.1.0a4/examples/basic/resources/tenant-limits-objects/starter.toml +10 -0
  99. rototo-0.1.0a4/examples/basic/resources/tenant-limits.toml +4 -0
  100. rototo-0.1.0a4/examples/basic/rototo-workspace.toml +1 -0
  101. rototo-0.1.0a4/examples/basic/schemas/checkout-page.schema.json +22 -0
  102. rototo-0.1.0a4/examples/basic/schemas/context.schema.json +49 -0
  103. rototo-0.1.0a4/examples/basic/schemas/llm-config.schema.json +25 -0
  104. rototo-0.1.0a4/examples/basic/schemas/recommendation-config.schema.json +20 -0
  105. rototo-0.1.0a4/examples/basic/schemas/support-banner.schema.json +22 -0
  106. rototo-0.1.0a4/examples/basic/schemas/tenant-limits.schema.json +46 -0
  107. rototo-0.1.0a4/examples/basic/variables/admin-navigation.toml +15 -0
  108. rototo-0.1.0a4/examples/basic/variables/checkout-redesign.toml +11 -0
  109. rototo-0.1.0a4/examples/basic/variables/enabled-payment-methods.toml +20 -0
  110. rototo-0.1.0a4/examples/basic/variables/fraud-review-routing.toml +20 -0
  111. rototo-0.1.0a4/examples/basic/variables/llm-agent-config.toml +11 -0
  112. rototo-0.1.0a4/examples/basic/variables/llm-summarizer-config.toml +11 -0
  113. rototo-0.1.0a4/examples/basic/variables/max-output-tokens.toml +24 -0
  114. rototo-0.1.0a4/examples/basic/variables/payments-risk-threshold.toml +20 -0
  115. rototo-0.1.0a4/examples/basic/variables/premium-message.toml +15 -0
  116. rototo-0.1.0a4/examples/basic/variables/product-recommendations.toml +19 -0
  117. rototo-0.1.0a4/examples/basic/variables/search-ranking-mode.toml +24 -0
  118. rototo-0.1.0a4/examples/basic/variables/shipping-discount-percent.toml +25 -0
  119. rototo-0.1.0a4/examples/basic/variables/support-banner.toml +15 -0
  120. rototo-0.1.0a4/examples/basic/variables/tenant-limits.toml +11 -0
  121. rototo-0.1.0a4/examples/basic/variables/user-is-admin.toml +15 -0
  122. rototo-0.1.0a4/examples/custom-lint/lint/operational-message.lua +24 -0
  123. rototo-0.1.0a4/examples/custom-lint/rototo-workspace.toml +1 -0
  124. rototo-0.1.0a4/examples/custom-lint/variables/operational-message.toml +10 -0
  125. rototo-0.1.0a4/examples/production/contexts/eu-enterprise.json +9 -0
  126. rototo-0.1.0a4/examples/production/qualifiers/enterprise-accounts.toml +13 -0
  127. rototo-0.1.0a4/examples/production/qualifiers/eu-enterprise-accounts.toml +13 -0
  128. rototo-0.1.0a4/examples/production/resources/agent-config-objects/enterprise.toml +5 -0
  129. rototo-0.1.0a4/examples/production/resources/agent-config-objects/local.toml +5 -0
  130. rototo-0.1.0a4/examples/production/resources/agent-config-objects/standard.toml +5 -0
  131. rototo-0.1.0a4/examples/production/resources/agent-config.toml +4 -0
  132. rototo-0.1.0a4/examples/production/rototo-workspace.toml +1 -0
  133. rototo-0.1.0a4/examples/production/schemas/agent-config.schema.json +20 -0
  134. rototo-0.1.0a4/examples/production/schemas/context.schema.json +22 -0
  135. rototo-0.1.0a4/examples/production/variables/agent-config.toml +11 -0
  136. rototo-0.1.0a4/examples/quickstart/rototo-workspace.toml +1 -0
  137. rototo-0.1.0a4/examples/quickstart/variables/summary-token-budget.toml +10 -0
  138. rototo-0.1.0a4/justfile +163 -0
  139. rototo-0.1.0a4/pyproject.toml +24 -0
  140. rototo-0.1.0a4/python/rototo/__init__.py +191 -0
  141. rototo-0.1.0a4/python/rototo/py.typed +0 -0
  142. rototo-0.1.0a4/requirements-dev.txt +2 -0
  143. rototo-0.1.0a4/rust-toolchain.toml +6 -0
  144. rototo-0.1.0a4/rustfmt.toml +1 -0
  145. rototo-0.1.0a4/sdks/python/Cargo.toml +18 -0
  146. rototo-0.1.0a4/sdks/python/README.md +137 -0
  147. rototo-0.1.0a4/sdks/python/src/lib.rs +394 -0
  148. rototo-0.1.0a4/sdks/python/tests/test_api.py +65 -0
  149. rototo-0.1.0a4/sdks/python/tests/test_contract.py +87 -0
  150. rototo-0.1.0a4/sdks/python/tests/test_packaging.py +16 -0
  151. rototo-0.1.0a4/sdks/python/tests/test_refresh.py +57 -0
  152. rototo-0.1.0a4/src/catalog.rs +44 -0
  153. rototo-0.1.0a4/src/diagnostics.rs +822 -0
  154. rototo-0.1.0a4/src/docs.rs +1294 -0
  155. rototo-0.1.0a4/src/error.rs +25 -0
  156. rototo-0.1.0a4/src/fixtures.rs +1211 -0
  157. rototo-0.1.0a4/src/inspect.rs +20 -0
  158. rototo-0.1.0a4/src/lib.rs +37 -0
  159. rototo-0.1.0a4/src/lint/builtins/graph.rs +337 -0
  160. rototo-0.1.0a4/src/lint/builtins/mod.rs +67 -0
  161. rototo-0.1.0a4/src/lint/builtins/qualifier.rs +331 -0
  162. rototo-0.1.0a4/src/lint/builtins/resource.rs +252 -0
  163. rototo-0.1.0a4/src/lint/builtins/schema.rs +486 -0
  164. rototo-0.1.0a4/src/lint/builtins/variable.rs +443 -0
  165. rototo-0.1.0a4/src/lint/builtins/workspace.rs +23 -0
  166. rototo-0.1.0a4/src/lint/custom/marshal.rs +93 -0
  167. rototo-0.1.0a4/src/lint/custom/mod.rs +11 -0
  168. rototo-0.1.0a4/src/lint/custom/registry.rs +471 -0
  169. rototo-0.1.0a4/src/lint/custom/runner.rs +114 -0
  170. rototo-0.1.0a4/src/lint/custom/targets.rs +333 -0
  171. rototo-0.1.0a4/src/lint/engine.rs +604 -0
  172. rototo-0.1.0a4/src/lint/index/gates.rs +48 -0
  173. rototo-0.1.0a4/src/lint/index/ids.rs +5 -0
  174. rototo-0.1.0a4/src/lint/index/mod.rs +27 -0
  175. rototo-0.1.0a4/src/lint/index/nodes.rs +346 -0
  176. rototo-0.1.0a4/src/lint/index/targets.rs +58 -0
  177. rototo-0.1.0a4/src/lint/input.rs +23 -0
  178. rototo-0.1.0a4/src/lint/inspect.rs +1102 -0
  179. rototo-0.1.0a4/src/lint/output.rs +30 -0
  180. rototo-0.1.0a4/src/lint/project/fields.rs +140 -0
  181. rototo-0.1.0a4/src/lint/project/manifest.rs +44 -0
  182. rototo-0.1.0a4/src/lint/project/mod.rs +84 -0
  183. rototo-0.1.0a4/src/lint/project/qualifier.rs +108 -0
  184. rototo-0.1.0a4/src/lint/project/resource.rs +48 -0
  185. rototo-0.1.0a4/src/lint/project/schema.rs +25 -0
  186. rototo-0.1.0a4/src/lint/project/variable.rs +232 -0
  187. rototo-0.1.0a4/src/lint/references.rs +593 -0
  188. rototo-0.1.0a4/src/lint/runtime.rs +501 -0
  189. rototo-0.1.0a4/src/lint/source/discover.rs +274 -0
  190. rototo-0.1.0a4/src/lint/source/line_index.rs +179 -0
  191. rototo-0.1.0a4/src/lint/source/mod.rs +165 -0
  192. rototo-0.1.0a4/src/lint/source/path.rs +132 -0
  193. rototo-0.1.0a4/src/lint/stages/diagnostics.rs +14 -0
  194. rototo-0.1.0a4/src/lint/stages/discover.rs +85 -0
  195. rototo-0.1.0a4/src/lint/stages/graph.rs +24 -0
  196. rototo-0.1.0a4/src/lint/stages/mod.rs +84 -0
  197. rototo-0.1.0a4/src/lint/stages/parse.rs +72 -0
  198. rototo-0.1.0a4/src/lint/stages/policy.rs +3 -0
  199. rototo-0.1.0a4/src/lint/stages/project.rs +31 -0
  200. rototo-0.1.0a4/src/lint/stages/reference.rs +26 -0
  201. rototo-0.1.0a4/src/lint/stages/register.rs +24 -0
  202. rototo-0.1.0a4/src/lint/stages/value.rs +24 -0
  203. rototo-0.1.0a4/src/lint/symbols/common.rs +68 -0
  204. rototo-0.1.0a4/src/lint/symbols/completion.rs +193 -0
  205. rototo-0.1.0a4/src/lint/symbols/definition.rs +225 -0
  206. rototo-0.1.0a4/src/lint/symbols/document_symbols.rs +236 -0
  207. rototo-0.1.0a4/src/lint/symbols/hover.rs +540 -0
  208. rototo-0.1.0a4/src/lint/symbols/mod.rs +102 -0
  209. rototo-0.1.0a4/src/lint/symbols/references.rs +71 -0
  210. rototo-0.1.0a4/src/lint/syntax/diagnostics.rs +111 -0
  211. rototo-0.1.0a4/src/lint/syntax/json.rs +20 -0
  212. rototo-0.1.0a4/src/lint/syntax/location.rs +74 -0
  213. rototo-0.1.0a4/src/lint/syntax/mod.rs +142 -0
  214. rototo-0.1.0a4/src/lint/syntax/toml.rs +22 -0
  215. rototo-0.1.0a4/src/lint.rs +193 -0
  216. rototo-0.1.0a4/src/lsp/convert.rs +185 -0
  217. rototo-0.1.0a4/src/lsp/mod.rs +1131 -0
  218. rototo-0.1.0a4/src/lsp/protocol.rs +117 -0
  219. rototo-0.1.0a4/src/lsp/server.rs +405 -0
  220. rototo-0.1.0a4/src/lsp/transport.rs +180 -0
  221. rototo-0.1.0a4/src/lsp/uri.rs +148 -0
  222. rototo-0.1.0a4/src/lua_lint.rs +400 -0
  223. rototo-0.1.0a4/src/main.rs +3092 -0
  224. rototo-0.1.0a4/src/model.rs +438 -0
  225. rototo-0.1.0a4/src/output.rs +653 -0
  226. rototo-0.1.0a4/src/resolve.rs +960 -0
  227. rototo-0.1.0a4/src/sdk.rs +675 -0
  228. rototo-0.1.0a4/src/source.rs +1690 -0
  229. rototo-0.1.0a4/src/testing.rs +12 -0
  230. rototo-0.1.0a4/src/workspace.rs +425 -0
  231. rototo-0.1.0a4/tests/cli.rs +294 -0
  232. rototo-0.1.0a4/tests/diagnostics.rs +192 -0
  233. rototo-0.1.0a4/tests/docs_consistency.rs +125 -0
  234. rototo-0.1.0a4/tests/fixtures/workspaces/bad-context-config/rototo-workspace.toml +2 -0
  235. rototo-0.1.0a4/tests/fixtures/workspaces/context-schema-attribute/qualifiers/missing-context-contract.toml +8 -0
  236. rototo-0.1.0a4/tests/fixtures/workspaces/context-schema-attribute/rototo-workspace.toml +1 -0
  237. rototo-0.1.0a4/tests/fixtures/workspaces/context-schema-attribute/schemas/context.schema.json +14 -0
  238. rototo-0.1.0a4/tests/fixtures/workspaces/context-schema-attribute/variables/message.toml +13 -0
  239. rototo-0.1.0a4/tests/fixtures/workspaces/context-schema-empty-path/rototo-workspace.toml +1 -0
  240. rototo-0.1.0a4/tests/fixtures/workspaces/context-schema-invalid-json/rototo-workspace.toml +1 -0
  241. rototo-0.1.0a4/tests/fixtures/workspaces/context-schema-invalid-json/schemas/context.schema.json +2 -0
  242. rototo-0.1.0a4/tests/fixtures/workspaces/context-schema-invalid-schema/rototo-workspace.toml +1 -0
  243. rototo-0.1.0a4/tests/fixtures/workspaces/context-schema-invalid-schema/schemas/context.schema.json +4 -0
  244. rototo-0.1.0a4/tests/fixtures/workspaces/context-schema-missing-field/rototo-workspace.toml +1 -0
  245. rototo-0.1.0a4/tests/fixtures/workspaces/context-schema-missing-file/rototo-workspace.toml +1 -0
  246. rototo-0.1.0a4/tests/fixtures/workspaces/context-schema-path-escape/rototo-workspace.toml +1 -0
  247. rototo-0.1.0a4/tests/fixtures/workspaces/custom-lint-contract/lint/custom-failed.lua +19 -0
  248. rototo-0.1.0a4/tests/fixtures/workspaces/custom-lint-contract/lint/custom-valid.lua +23 -0
  249. rototo-0.1.0a4/tests/fixtures/workspaces/custom-lint-contract/rototo-workspace.toml +1 -0
  250. rototo-0.1.0a4/tests/fixtures/workspaces/custom-lint-contract/variables/conflict-a.toml +10 -0
  251. rototo-0.1.0a4/tests/fixtures/workspaces/custom-lint-contract/variables/conflict-b.toml +10 -0
  252. rototo-0.1.0a4/tests/fixtures/workspaces/custom-lint-contract/variables/custom-failed.toml +10 -0
  253. rototo-0.1.0a4/tests/fixtures/workspaces/custom-lint-contract/variables/custom-invalid.toml +10 -0
  254. rototo-0.1.0a4/tests/fixtures/workspaces/custom-lint-contract/variables/custom-unknown.toml +10 -0
  255. rototo-0.1.0a4/tests/fixtures/workspaces/custom-lint-contract/variables/custom-valid.toml +10 -0
  256. rototo-0.1.0a4/tests/fixtures/workspaces/custom-register/lint/payments.lua +48 -0
  257. rototo-0.1.0a4/tests/fixtures/workspaces/custom-register/rototo-workspace.toml +1 -0
  258. rototo-0.1.0a4/tests/fixtures/workspaces/custom-register/variables/agent-config.toml +11 -0
  259. rototo-0.1.0a4/tests/fixtures/workspaces/custom-registration-contract/lint/register.lua +51 -0
  260. rototo-0.1.0a4/tests/fixtures/workspaces/custom-registration-contract/rototo-workspace.toml +1 -0
  261. rototo-0.1.0a4/tests/fixtures/workspaces/custom-targets/lint/targets.lua +128 -0
  262. rototo-0.1.0a4/tests/fixtures/workspaces/custom-targets/qualifiers/premium-users.toml +7 -0
  263. rototo-0.1.0a4/tests/fixtures/workspaces/custom-targets/resources/agent-config-objects/standard.toml +1 -0
  264. rototo-0.1.0a4/tests/fixtures/workspaces/custom-targets/resources/agent-config.toml +4 -0
  265. rototo-0.1.0a4/tests/fixtures/workspaces/custom-targets/rototo-workspace.toml +2 -0
  266. rototo-0.1.0a4/tests/fixtures/workspaces/custom-targets/schemas/config.schema.json +10 -0
  267. rototo-0.1.0a4/tests/fixtures/workspaces/custom-targets/variables/agent-config.toml +7 -0
  268. rototo-0.1.0a4/tests/fixtures/workspaces/custom-warning/lint/advisory.lua +23 -0
  269. rototo-0.1.0a4/tests/fixtures/workspaces/custom-warning/rototo-workspace.toml +1 -0
  270. rototo-0.1.0a4/tests/fixtures/workspaces/custom-warning/variables/message.toml +9 -0
  271. rototo-0.1.0a4/tests/fixtures/workspaces/invalid-workspace-file-toml/qualifiers/broken.toml +4 -0
  272. rototo-0.1.0a4/tests/fixtures/workspaces/invalid-workspace-file-toml/rototo-workspace.toml +1 -0
  273. rototo-0.1.0a4/tests/fixtures/workspaces/invalid-workspace-file-toml/variables/broken.toml +4 -0
  274. rototo-0.1.0a4/tests/fixtures/workspaces/invalid-workspace-toml/rototo-workspace.toml +4 -0
  275. rototo-0.1.0a4/tests/fixtures/workspaces/lint-failures/lint/custom-value.lua +24 -0
  276. rototo-0.1.0a4/tests/fixtures/workspaces/lint-failures/lint/custom-variable.lua +23 -0
  277. rototo-0.1.0a4/tests/fixtures/workspaces/lint-failures/qualifiers/bad-bucket.toml +9 -0
  278. rototo-0.1.0a4/tests/fixtures/workspaces/lint-failures/qualifiers/bad-reference.toml +8 -0
  279. rototo-0.1.0a4/tests/fixtures/workspaces/lint-failures/qualifiers/bad-value-shape.toml +18 -0
  280. rototo-0.1.0a4/tests/fixtures/workspaces/lint-failures/qualifiers/cycle-a.toml +8 -0
  281. rototo-0.1.0a4/tests/fixtures/workspaces/lint-failures/qualifiers/cycle-b.toml +8 -0
  282. rototo-0.1.0a4/tests/fixtures/workspaces/lint-failures/qualifiers/self-cycle.toml +8 -0
  283. rototo-0.1.0a4/tests/fixtures/workspaces/lint-failures/qualifiers/unreferenced.toml +8 -0
  284. rototo-0.1.0a4/tests/fixtures/workspaces/lint-failures/resources/bad-schema-ref-objects/default.toml +1 -0
  285. rototo-0.1.0a4/tests/fixtures/workspaces/lint-failures/resources/bad-schema-ref.toml +4 -0
  286. rototo-0.1.0a4/tests/fixtures/workspaces/lint-failures/resources/bad-schema-value-objects/broken.toml +2 -0
  287. rototo-0.1.0a4/tests/fixtures/workspaces/lint-failures/resources/bad-schema-value-objects/default.toml +2 -0
  288. rototo-0.1.0a4/tests/fixtures/workspaces/lint-failures/resources/bad-schema-value.toml +4 -0
  289. rototo-0.1.0a4/tests/fixtures/workspaces/lint-failures/rototo-workspace.toml +1 -0
  290. rototo-0.1.0a4/tests/fixtures/workspaces/lint-failures/schemas/invalid-json.schema.json +3 -0
  291. rototo-0.1.0a4/tests/fixtures/workspaces/lint-failures/schemas/invalid.schema.json +8 -0
  292. rototo-0.1.0a4/tests/fixtures/workspaces/lint-failures/schemas/panel.schema.json +13 -0
  293. rototo-0.1.0a4/tests/fixtures/workspaces/lint-failures/variables/bad-resolve.toml +15 -0
  294. rototo-0.1.0a4/tests/fixtures/workspaces/lint-failures/variables/bad-schema-ref.toml +7 -0
  295. rototo-0.1.0a4/tests/fixtures/workspaces/lint-failures/variables/bad-schema-value.toml +7 -0
  296. rototo-0.1.0a4/tests/fixtures/workspaces/lint-failures/variables/bad-type-value.toml +11 -0
  297. rototo-0.1.0a4/tests/fixtures/workspaces/lint-failures/variables/custom-lint.toml +10 -0
  298. rototo-0.1.0a4/tests/fixtures/workspaces/lint-failures/variables/custom-value-lint.toml +10 -0
  299. rototo-0.1.0a4/tests/fixtures/workspaces/lint-failures/variables/graph-warnings.toml +21 -0
  300. rototo-0.1.0a4/tests/fixtures/workspaces/lint-failures/variables/unknown-type.toml +10 -0
  301. rototo-0.1.0a4/tests/fixtures/workspaces/missing-manifest/.gitkeep +0 -0
  302. rototo-0.1.0a4/tests/fixtures/workspaces/path-safety-escapes/lint/escape.lua +2 -0
  303. rototo-0.1.0a4/tests/fixtures/workspaces/path-safety-escapes/resources/message-objects/default.toml +1 -0
  304. rototo-0.1.0a4/tests/fixtures/workspaces/path-safety-escapes/resources/message.toml +3 -0
  305. rototo-0.1.0a4/tests/fixtures/workspaces/path-safety-escapes/rototo-workspace.toml +1 -0
  306. rototo-0.1.0a4/tests/fixtures/workspaces/path-safety-escapes/variables/message.toml +6 -0
  307. rototo-0.1.0a4/tests/fixtures/workspaces/path-safety-outside.lua +2 -0
  308. rototo-0.1.0a4/tests/fixtures/workspaces/path-safety-valid/lint/ok.lua +16 -0
  309. rototo-0.1.0a4/tests/fixtures/workspaces/path-safety-valid/resources/message-objects/default.toml +1 -0
  310. rototo-0.1.0a4/tests/fixtures/workspaces/path-safety-valid/resources/message.toml +3 -0
  311. rototo-0.1.0a4/tests/fixtures/workspaces/path-safety-valid/rototo-workspace.toml +1 -0
  312. rototo-0.1.0a4/tests/fixtures/workspaces/path-safety-valid/schemas/context.schema.json +13 -0
  313. rototo-0.1.0a4/tests/fixtures/workspaces/path-safety-valid/schemas/value.schema.json +9 -0
  314. rototo-0.1.0a4/tests/fixtures/workspaces/path-safety-valid/variables/message.toml +6 -0
  315. rototo-0.1.0a4/tests/fixtures/workspaces/rule-coverage/qualifiers/missing-predicate.toml +3 -0
  316. rototo-0.1.0a4/tests/fixtures/workspaces/rule-coverage/qualifiers/missing-schema-version.toml +6 -0
  317. rototo-0.1.0a4/tests/fixtures/workspaces/rule-coverage/qualifiers/predicate-shape.toml +6 -0
  318. rototo-0.1.0a4/tests/fixtures/workspaces/rule-coverage/rototo-workspace.toml +1 -0
  319. rototo-0.1.0a4/tests/fixtures/workspaces/rule-coverage/variables/missing-schema-version.toml +8 -0
  320. rototo-0.1.0a4/tests/fixtures/workspaces/rule-coverage/variables/resolve-missing-default.toml +9 -0
  321. rototo-0.1.0a4/tests/fixtures/workspaces/rule-coverage/variables/resolve-shape.toml +9 -0
  322. rototo-0.1.0a4/tests/fixtures/workspaces/rule-coverage/variables/rule-shape.toml +12 -0
  323. rototo-0.1.0a4/tests/fixtures/workspaces/rule-coverage/variables/type-or-schema.toml +11 -0
  324. rototo-0.1.0a4/tests/fixtures/workspaces/rule-coverage/variables/values-missing.toml +7 -0
  325. rototo-0.1.0a4/tests/fixtures/workspaces/rules/discover/workspace-manifest-missing/.gitkeep +1 -0
  326. rototo-0.1.0a4/tests/fixtures/workspaces/rules/graph/qualifier-cycle/qualifiers/alpha.toml +6 -0
  327. rototo-0.1.0a4/tests/fixtures/workspaces/rules/graph/qualifier-cycle/qualifiers/beta.toml +6 -0
  328. rototo-0.1.0a4/tests/fixtures/workspaces/rules/graph/qualifier-cycle/qualifiers/self.toml +6 -0
  329. rototo-0.1.0a4/tests/fixtures/workspaces/rules/graph/qualifier-cycle/rototo-workspace.toml +1 -0
  330. rototo-0.1.0a4/tests/fixtures/workspaces/rules/graph/qualifier-cycle/variables/message.toml +13 -0
  331. rototo-0.1.0a4/tests/fixtures/workspaces/rules/graph/qualifier-predicate-duplicate/qualifiers/premium-users.toml +11 -0
  332. rototo-0.1.0a4/tests/fixtures/workspaces/rules/graph/qualifier-predicate-duplicate/rototo-workspace.toml +1 -0
  333. rototo-0.1.0a4/tests/fixtures/workspaces/rules/graph/qualifier-predicate-duplicate/schemas/context.schema.json +13 -0
  334. rototo-0.1.0a4/tests/fixtures/workspaces/rules/graph/qualifier-predicate-duplicate/variables/message.toml +13 -0
  335. rototo-0.1.0a4/tests/fixtures/workspaces/rules/graph/qualifier-unreachable/qualifiers/dead-leaf.toml +6 -0
  336. rototo-0.1.0a4/tests/fixtures/workspaces/rules/graph/qualifier-unreachable/qualifiers/dead-root.toml +6 -0
  337. rototo-0.1.0a4/tests/fixtures/workspaces/rules/graph/qualifier-unreachable/qualifiers/live.toml +6 -0
  338. rototo-0.1.0a4/tests/fixtures/workspaces/rules/graph/qualifier-unreachable/rototo-workspace.toml +1 -0
  339. rototo-0.1.0a4/tests/fixtures/workspaces/rules/graph/qualifier-unreachable/schemas/context.schema.json +13 -0
  340. rototo-0.1.0a4/tests/fixtures/workspaces/rules/graph/qualifier-unreachable/variables/message.toml +13 -0
  341. rototo-0.1.0a4/tests/fixtures/workspaces/rules/graph/qualifier-unreferenced/qualifiers/unused.toml +6 -0
  342. rototo-0.1.0a4/tests/fixtures/workspaces/rules/graph/qualifier-unreferenced/rototo-workspace.toml +1 -0
  343. rototo-0.1.0a4/tests/fixtures/workspaces/rules/graph/variable-rule-selects-default-value/qualifiers/premium-users.toml +6 -0
  344. rototo-0.1.0a4/tests/fixtures/workspaces/rules/graph/variable-rule-selects-default-value/rototo-workspace.toml +1 -0
  345. rototo-0.1.0a4/tests/fixtures/workspaces/rules/graph/variable-rule-selects-default-value/schemas/context.schema.json +13 -0
  346. rototo-0.1.0a4/tests/fixtures/workspaces/rules/graph/variable-rule-selects-default-value/variables/message.toml +12 -0
  347. rototo-0.1.0a4/tests/fixtures/workspaces/rules/graph/variable-rule-shadowed/qualifiers/premium-users.toml +6 -0
  348. rototo-0.1.0a4/tests/fixtures/workspaces/rules/graph/variable-rule-shadowed/rototo-workspace.toml +1 -0
  349. rototo-0.1.0a4/tests/fixtures/workspaces/rules/graph/variable-rule-shadowed/schemas/context.schema.json +13 -0
  350. rototo-0.1.0a4/tests/fixtures/workspaces/rules/graph/variable-rule-shadowed/variables/checkout.toml +18 -0
  351. rototo-0.1.0a4/tests/fixtures/workspaces/rules/graph/variable-value-unused/rototo-workspace.toml +1 -0
  352. rototo-0.1.0a4/tests/fixtures/workspaces/rules/graph/variable-value-unused/variables/message.toml +9 -0
  353. rototo-0.1.0a4/tests/fixtures/workspaces/rules/parse/qualifier-parse-failed/qualifiers/broken.toml +4 -0
  354. rototo-0.1.0a4/tests/fixtures/workspaces/rules/parse/qualifier-parse-failed/rototo-workspace.toml +1 -0
  355. rototo-0.1.0a4/tests/fixtures/workspaces/rules/parse/schema-parse-failed/rototo-workspace.toml +1 -0
  356. rototo-0.1.0a4/tests/fixtures/workspaces/rules/parse/schema-parse-failed/schemas/broken.schema.json +3 -0
  357. rototo-0.1.0a4/tests/fixtures/workspaces/rules/parse/variable-external-value-parse-failed/rototo-workspace.toml +1 -0
  358. rototo-0.1.0a4/tests/fixtures/workspaces/rules/parse/variable-external-value-parse-failed/variables/external-message-values/broken.toml +1 -0
  359. rototo-0.1.0a4/tests/fixtures/workspaces/rules/parse/variable-external-value-parse-failed/variables/external-message.toml +5 -0
  360. rototo-0.1.0a4/tests/fixtures/workspaces/rules/parse/variable-parse-failed/rototo-workspace.toml +1 -0
  361. rototo-0.1.0a4/tests/fixtures/workspaces/rules/parse/variable-parse-failed/variables/broken.toml +5 -0
  362. rototo-0.1.0a4/tests/fixtures/workspaces/rules/parse/workspace-manifest-parse-failed/rototo-workspace.toml +4 -0
  363. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/custom-lint-invalid-rule/lint/invalid.lua +16 -0
  364. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/custom-lint-invalid-rule/rototo-workspace.toml +1 -0
  365. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/custom-lint-rule-conflict/lint/conflict.lua +27 -0
  366. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/custom-lint-rule-conflict/rototo-workspace.toml +1 -0
  367. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/custom-lint-rule-shape/rototo-workspace.toml +1 -0
  368. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/qualifier-predicate-bucket/qualifiers/beta-bucket.toml +7 -0
  369. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/qualifier-predicate-bucket/rototo-workspace.toml +1 -0
  370. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/qualifier-predicate-bucket/variables/checkout.toml +13 -0
  371. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/qualifier-predicate-missing/qualifiers/premium-users.toml +2 -0
  372. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/qualifier-predicate-missing/rototo-workspace.toml +1 -0
  373. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/qualifier-predicate-missing/variables/checkout.toml +13 -0
  374. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/qualifier-predicate-shape/qualifiers/premium-users.toml +5 -0
  375. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/qualifier-predicate-shape/rototo-workspace.toml +1 -0
  376. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/qualifier-predicate-shape/variables/checkout.toml +13 -0
  377. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/qualifier-predicate-unknown-op/qualifiers/premium-users.toml +6 -0
  378. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/qualifier-predicate-unknown-op/rototo-workspace.toml +1 -0
  379. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/qualifier-predicate-unknown-op/variables/checkout.toml +13 -0
  380. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/qualifier-predicate-value/qualifiers/premium-users.toml +6 -0
  381. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/qualifier-predicate-value/rototo-workspace.toml +1 -0
  382. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/qualifier-predicate-value/variables/checkout.toml +13 -0
  383. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/qualifier-schema-version/qualifiers/premium-users.toml +6 -0
  384. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/qualifier-schema-version/rototo-workspace.toml +1 -0
  385. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/qualifier-schema-version/variables/checkout.toml +13 -0
  386. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/schema-invalid/rototo-workspace.toml +1 -0
  387. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/schema-invalid/schemas/broken.schema.json +3 -0
  388. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/variable-external-value-duplicate/rototo-workspace.toml +1 -0
  389. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/variable-external-value-duplicate/schemas/message.schema.json +8 -0
  390. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/variable-external-value-duplicate/variables/external-message-values/default.toml +1 -0
  391. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/variable-external-value-duplicate/variables/external-message.toml +8 -0
  392. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/variable-external-values-load-failed/rototo-workspace.toml +1 -0
  393. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/variable-external-values-load-failed/schemas/message.schema.json +8 -0
  394. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/variable-external-values-load-failed/variables/external-message-values/default.toml +1 -0
  395. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/variable-external-values-load-failed/variables/external-message.toml +6 -0
  396. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/variable-resolve-missing-default/rototo-workspace.toml +1 -0
  397. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/variable-resolve-missing-default/variables/message.toml +7 -0
  398. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/variable-resolve-shape/rototo-workspace.toml +1 -0
  399. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/variable-resolve-shape/variables/message.toml +7 -0
  400. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/variable-rule-shape/rototo-workspace.toml +1 -0
  401. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/variable-rule-shape/variables/message.toml +10 -0
  402. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/variable-schema-version/rototo-workspace.toml +1 -0
  403. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/variable-schema-version/variables/message.toml +7 -0
  404. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/variable-type-or-schema/rototo-workspace.toml +1 -0
  405. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/variable-type-or-schema/variables/message.toml +7 -0
  406. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/variable-values-missing/rototo-workspace.toml +1 -0
  407. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/variable-values-missing/variables/message.toml +5 -0
  408. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/workspace-context-schema-ref/rototo-workspace.toml +1 -0
  409. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/workspace-context-schema-ref/schemas/context.schema.json +4 -0
  410. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/workspace-context-schema-reserved-field/rototo-workspace.toml +1 -0
  411. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/workspace-context-schema-reserved-field/schemas/context.schema.json +7 -0
  412. rototo-0.1.0a4/tests/fixtures/workspaces/rules/project/workspace-manifest-schema-failed/rototo-workspace.toml +2 -0
  413. rototo-0.1.0a4/tests/fixtures/workspaces/rules/reference/qualifier-predicate-context-type-mismatch/qualifiers/boolean-in-string.toml +6 -0
  414. rototo-0.1.0a4/tests/fixtures/workspaces/rules/reference/qualifier-predicate-context-type-mismatch/qualifiers/integer-eq-string.toml +6 -0
  415. rototo-0.1.0a4/tests/fixtures/workspaces/rules/reference/qualifier-predicate-context-type-mismatch/qualifiers/object-bucket.toml +7 -0
  416. rototo-0.1.0a4/tests/fixtures/workspaces/rules/reference/qualifier-predicate-context-type-mismatch/qualifiers/string-gt-number.toml +6 -0
  417. rototo-0.1.0a4/tests/fixtures/workspaces/rules/reference/qualifier-predicate-context-type-mismatch/rototo-workspace.toml +1 -0
  418. rototo-0.1.0a4/tests/fixtures/workspaces/rules/reference/qualifier-predicate-context-type-mismatch/schemas/context.schema.json +22 -0
  419. rototo-0.1.0a4/tests/fixtures/workspaces/rules/reference/qualifier-predicate-context-type-mismatch/variables/message.toml +25 -0
  420. rototo-0.1.0a4/tests/fixtures/workspaces/rules/reference/qualifier-predicate-unknown-qualifier/qualifiers/derived.toml +6 -0
  421. rototo-0.1.0a4/tests/fixtures/workspaces/rules/reference/qualifier-predicate-unknown-qualifier/rototo-workspace.toml +1 -0
  422. rototo-0.1.0a4/tests/fixtures/workspaces/rules/reference/qualifier-predicate-unknown-qualifier/variables/message.toml +13 -0
  423. rototo-0.1.0a4/tests/fixtures/workspaces/rules/reference/schema-unreferenced/rototo-workspace.toml +1 -0
  424. rototo-0.1.0a4/tests/fixtures/workspaces/rules/reference/schema-unreferenced/schemas/unused.schema.json +3 -0
  425. rototo-0.1.0a4/tests/fixtures/workspaces/rules/reference/variable-rule-unknown-qualifier/rototo-workspace.toml +1 -0
  426. rototo-0.1.0a4/tests/fixtures/workspaces/rules/reference/variable-rule-unknown-qualifier/variables/checkout-redesign.toml +13 -0
  427. rototo-0.1.0a4/tests/fixtures/workspaces/rules/reference/variable-schema-ref/rototo-workspace.toml +1 -0
  428. rototo-0.1.0a4/tests/fixtures/workspaces/rules/reference/variable-schema-ref/variables/message.toml +8 -0
  429. rototo-0.1.0a4/tests/fixtures/workspaces/rules/reference/variable-unknown-value/qualifiers/always.toml +6 -0
  430. rototo-0.1.0a4/tests/fixtures/workspaces/rules/reference/variable-unknown-value/rototo-workspace.toml +1 -0
  431. rototo-0.1.0a4/tests/fixtures/workspaces/rules/reference/variable-unknown-value/variables/message.toml +12 -0
  432. rototo-0.1.0a4/tests/fixtures/workspaces/rules/reference/workspace-context-schema-attribute/qualifiers/missing-context.toml +6 -0
  433. rototo-0.1.0a4/tests/fixtures/workspaces/rules/reference/workspace-context-schema-attribute/rototo-workspace.toml +1 -0
  434. rototo-0.1.0a4/tests/fixtures/workspaces/rules/reference/workspace-context-schema-attribute/schemas/context.schema.json +11 -0
  435. rototo-0.1.0a4/tests/fixtures/workspaces/rules/reference/workspace-context-schema-attribute/variables/message.toml +13 -0
  436. rototo-0.1.0a4/tests/fixtures/workspaces/rules/reference/workspace-context-schema-missing/qualifiers/premium-users.toml +6 -0
  437. rototo-0.1.0a4/tests/fixtures/workspaces/rules/reference/workspace-context-schema-missing/rototo-workspace.toml +1 -0
  438. rototo-0.1.0a4/tests/fixtures/workspaces/rules/reference/workspace-context-schema-missing/variables/message.toml +13 -0
  439. rototo-0.1.0a4/tests/fixtures/workspaces/rules/register/custom-lint-failed/lint/broken.lua +3 -0
  440. rototo-0.1.0a4/tests/fixtures/workspaces/rules/register/custom-lint-failed/rototo-workspace.toml +1 -0
  441. rototo-0.1.0a4/tests/fixtures/workspaces/rules/register/custom-lint-file-unregistered/lint/empty.lua +2 -0
  442. rototo-0.1.0a4/tests/fixtures/workspaces/rules/register/custom-lint-file-unregistered/rototo-workspace.toml +1 -0
  443. rototo-0.1.0a4/tests/fixtures/workspaces/rules/register/custom-lint-registration-duplicate/lint/duplicate.lua +26 -0
  444. rototo-0.1.0a4/tests/fixtures/workspaces/rules/register/custom-lint-registration-duplicate/rototo-workspace.toml +1 -0
  445. rototo-0.1.0a4/tests/fixtures/workspaces/rules/register/custom-lint-registration-invalid/lint/invalid.lua +16 -0
  446. rototo-0.1.0a4/tests/fixtures/workspaces/rules/register/custom-lint-registration-invalid/rototo-workspace.toml +1 -0
  447. rototo-0.1.0a4/tests/fixtures/workspaces/rules/register/custom-lint-rule-unregistered/rototo-workspace.toml +1 -0
  448. rototo-0.1.0a4/tests/fixtures/workspaces/rules/register/custom-lint-unknown-rule/lint/unknown.lua +16 -0
  449. rototo-0.1.0a4/tests/fixtures/workspaces/rules/register/custom-lint-unknown-rule/rototo-workspace.toml +1 -0
  450. rototo-0.1.0a4/tests/fixtures/workspaces/rules/value/variable-unknown-type/rototo-workspace.toml +1 -0
  451. rototo-0.1.0a4/tests/fixtures/workspaces/rules/value/variable-unknown-type/variables/message.toml +8 -0
  452. rototo-0.1.0a4/tests/fixtures/workspaces/rules/value/variable-value-schema-mismatch/rototo-workspace.toml +1 -0
  453. rototo-0.1.0a4/tests/fixtures/workspaces/rules/value/variable-value-schema-mismatch/schemas/message.schema.json +7 -0
  454. rototo-0.1.0a4/tests/fixtures/workspaces/rules/value/variable-value-schema-mismatch/variables/message.toml +8 -0
  455. rototo-0.1.0a4/tests/fixtures/workspaces/rules/value/variable-value-type-mismatch/rototo-workspace.toml +1 -0
  456. rototo-0.1.0a4/tests/fixtures/workspaces/rules/value/variable-value-type-mismatch/variables/enabled.toml +8 -0
  457. rototo-0.1.0a4/tests/fixtures/workspaces/schema-contract-invalid/resources/message-objects/default.toml +1 -0
  458. rototo-0.1.0a4/tests/fixtures/workspaces/schema-contract-invalid/resources/message.toml +3 -0
  459. rototo-0.1.0a4/tests/fixtures/workspaces/schema-contract-invalid/rototo-workspace.toml +1 -0
  460. rototo-0.1.0a4/tests/fixtures/workspaces/schema-contract-invalid/schemas/value.schema.json +3 -0
  461. rototo-0.1.0a4/tests/fixtures/workspaces/schema-contract-invalid/variables/message.toml +6 -0
  462. rototo-0.1.0a4/tests/fixtures/workspaces/schema-contract-normalized/resources/direct-objects/default.toml +1 -0
  463. rototo-0.1.0a4/tests/fixtures/workspaces/schema-contract-normalized/resources/direct.toml +3 -0
  464. rototo-0.1.0a4/tests/fixtures/workspaces/schema-contract-normalized/resources/dot-segment-objects/default.toml +1 -0
  465. rototo-0.1.0a4/tests/fixtures/workspaces/schema-contract-normalized/resources/dot-segment.toml +3 -0
  466. rototo-0.1.0a4/tests/fixtures/workspaces/schema-contract-normalized/rototo-workspace.toml +1 -0
  467. rototo-0.1.0a4/tests/fixtures/workspaces/schema-contract-normalized/schemas/value.schema.json +9 -0
  468. rototo-0.1.0a4/tests/fixtures/workspaces/schema-contract-normalized/variables/direct.toml +6 -0
  469. rototo-0.1.0a4/tests/fixtures/workspaces/schema-contract-normalized/variables/dot-segment.toml +6 -0
  470. rototo-0.1.0a4/tests/fixtures/workspaces/schema-contract-parse-failed/resources/message-objects/default.toml +1 -0
  471. rototo-0.1.0a4/tests/fixtures/workspaces/schema-contract-parse-failed/resources/message.toml +3 -0
  472. rototo-0.1.0a4/tests/fixtures/workspaces/schema-contract-parse-failed/rototo-workspace.toml +1 -0
  473. rototo-0.1.0a4/tests/fixtures/workspaces/schema-contract-parse-failed/schemas/value.schema.json +2 -0
  474. rototo-0.1.0a4/tests/fixtures/workspaces/schema-contract-parse-failed/variables/message.toml +6 -0
  475. rototo-0.1.0a4/tests/fixtures/workspaces/unsupported-schema-version/rototo-workspace.toml +4 -0
  476. rototo-0.1.0a4/tests/fixtures.rs +90 -0
  477. rototo-0.1.0a4/tests/init.rs +217 -0
  478. rototo-0.1.0a4/tests/qualifier_variable.rs +473 -0
  479. rototo-0.1.0a4/tests/release_versions.rs +36 -0
  480. rototo-0.1.0a4/tests/sdk-contract/cases.jsonl +8 -0
  481. rototo-0.1.0a4/tests/sdk.rs +1093 -0
  482. rototo-0.1.0a4/tests/sdk_contract.rs +148 -0
  483. rototo-0.1.0a4/tests/workspace_inspect.rs +255 -0
  484. rototo-0.1.0a4/tests/workspace_lint.rs +2544 -0
@@ -0,0 +1,15 @@
1
+ root = true
2
+
3
+ [*]
4
+ charset = utf-8
5
+ end_of_line = lf
6
+ insert_final_newline = true
7
+ trim_trailing_whitespace = true
8
+ indent_style = space
9
+ indent_size = 4
10
+
11
+ [*.{md,toml,yml,yaml}]
12
+ indent_size = 2
13
+
14
+ [Makefile]
15
+ indent_style = tab
@@ -0,0 +1,11 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: cargo
4
+ directory: /
5
+ schedule:
6
+ interval: weekly
7
+
8
+ - package-ecosystem: github-actions
9
+ directory: /
10
+ schedule:
11
+ interval: weekly
@@ -0,0 +1,52 @@
1
+ name: CI
2
+
3
+ on:
4
+ pull_request:
5
+ branches:
6
+ - main
7
+ push:
8
+ branches:
9
+ - main
10
+
11
+ permissions:
12
+ contents: read
13
+
14
+ concurrency:
15
+ group: ci-${{ github.head_ref || github.ref }}
16
+ cancel-in-progress: true
17
+
18
+ jobs:
19
+ check:
20
+ name: just check
21
+ runs-on: ubuntu-latest
22
+
23
+ steps:
24
+ - name: Checkout
25
+ uses: actions/checkout@v5
26
+
27
+ - name: Install Rust toolchain
28
+ uses: dtolnay/rust-toolchain@stable
29
+
30
+ - name: Install just
31
+ run: cargo install just --locked
32
+
33
+ - name: Cache cargo registry and git deps
34
+ uses: actions/cache@v4
35
+ with:
36
+ path: |
37
+ ~/.cargo/registry
38
+ ~/.cargo/git
39
+ key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
40
+ restore-keys: |
41
+ ${{ runner.os }}-cargo-
42
+
43
+ - name: Cache cargo build
44
+ uses: actions/cache@v4
45
+ with:
46
+ path: target
47
+ key: ${{ runner.os }}-cargo-target-${{ hashFiles('**/Cargo.lock', '**/*.rs', '**/Cargo.toml') }}
48
+ restore-keys: |
49
+ ${{ runner.os }}-cargo-target-
50
+
51
+ - name: Check
52
+ run: just check
@@ -0,0 +1,44 @@
1
+ name: Cloudflare Pages
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ workflow_dispatch:
8
+
9
+ permissions:
10
+ contents: read
11
+ deployments: write
12
+
13
+ concurrency:
14
+ group: cloudflare-pages
15
+ cancel-in-progress: false
16
+
17
+ env:
18
+ CLOUDFLARE_PAGES_PROJECT: rototo-docs
19
+
20
+ jobs:
21
+ deploy:
22
+ name: Deploy documentation
23
+ runs-on: ubuntu-latest
24
+ environment:
25
+ name: cloudflare-pages
26
+ url: https://docs.rototo.pirogram.com
27
+
28
+ steps:
29
+ - name: Checkout
30
+ uses: actions/checkout@v5
31
+
32
+ - name: Install Rust toolchain
33
+ uses: dtolnay/rust-toolchain@stable
34
+
35
+ - name: Export static docs
36
+ run: cargo run --locked -- docs --export site
37
+
38
+ - name: Deploy to Cloudflare Pages
39
+ uses: cloudflare/wrangler-action@v3
40
+ with:
41
+ apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
42
+ accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
43
+ command: pages deploy site --project-name=${{ env.CLOUDFLARE_PAGES_PROJECT }} --branch=main
44
+ gitHubToken: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,168 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*.*.*"
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ concurrency:
12
+ group: release-${{ github.ref }}
13
+ cancel-in-progress: false
14
+
15
+ jobs:
16
+ validate:
17
+ name: Validate release
18
+ runs-on: ubuntu-latest
19
+
20
+ steps:
21
+ - name: Checkout
22
+ uses: actions/checkout@v5
23
+
24
+ - name: Install Rust toolchain
25
+ uses: dtolnay/rust-toolchain@stable
26
+
27
+ - name: Set up Python
28
+ uses: actions/setup-python@v6
29
+ with:
30
+ python-version: "3.10"
31
+
32
+ - name: Install just
33
+ run: cargo install just --locked
34
+
35
+ - name: Validate release version and generated package content
36
+ run: just release-check "${GITHUB_REF_NAME#v}"
37
+
38
+ - name: Run release gate
39
+ run: just check
40
+
41
+ - name: Verify Rust package
42
+ run: cargo publish --package rototo --dry-run --locked
43
+
44
+ python-sdist:
45
+ name: Build Python sdist
46
+ needs: validate
47
+ runs-on: ubuntu-latest
48
+
49
+ steps:
50
+ - name: Checkout
51
+ uses: actions/checkout@v5
52
+
53
+ - name: Set up Python
54
+ uses: actions/setup-python@v6
55
+ with:
56
+ python-version: "3.10"
57
+
58
+ - name: Build source distribution
59
+ uses: PyO3/maturin-action@v1
60
+ with:
61
+ command: sdist
62
+ args: --out dist
63
+ maturin-version: v1.13.3
64
+ working-directory: sdks/python
65
+
66
+ - name: Upload source distribution
67
+ uses: actions/upload-artifact@v4
68
+ with:
69
+ name: python-sdist
70
+ path: sdks/python/dist/*.tar.gz
71
+ if-no-files-found: error
72
+
73
+ python-wheels:
74
+ name: Build Python wheel (${{ matrix.target }})
75
+ needs: validate
76
+ runs-on: ${{ matrix.os }}
77
+ strategy:
78
+ fail-fast: false
79
+ matrix:
80
+ include:
81
+ - os: ubuntu-22.04
82
+ target: x86_64
83
+ artifact: linux-x86_64
84
+ manylinux: "2_28"
85
+ - os: ubuntu-22.04
86
+ target: aarch64
87
+ artifact: linux-aarch64
88
+ manylinux: "2_28"
89
+ - os: macos-15-intel
90
+ target: x86_64
91
+ artifact: macos-x86_64
92
+ manylinux: auto
93
+ - os: macos-15
94
+ target: aarch64
95
+ artifact: macos-aarch64
96
+ manylinux: auto
97
+ - os: windows-latest
98
+ target: x64
99
+ artifact: windows-x64
100
+ manylinux: auto
101
+
102
+ steps:
103
+ - name: Checkout
104
+ uses: actions/checkout@v5
105
+
106
+ - name: Set up Python
107
+ uses: actions/setup-python@v6
108
+ with:
109
+ python-version: "3.10"
110
+
111
+ - name: Build wheel
112
+ uses: PyO3/maturin-action@v1
113
+ with:
114
+ args: --release --locked --out dist --compatibility pypi
115
+ manylinux: ${{ matrix.manylinux }}
116
+ maturin-version: v1.13.3
117
+ target: ${{ matrix.target }}
118
+ working-directory: sdks/python
119
+
120
+ - name: Upload wheel
121
+ uses: actions/upload-artifact@v4
122
+ with:
123
+ name: python-wheel-${{ matrix.artifact }}
124
+ path: sdks/python/dist/*.whl
125
+ if-no-files-found: error
126
+
127
+ publish:
128
+ name: Publish crates.io and PyPI
129
+ needs:
130
+ - validate
131
+ - python-sdist
132
+ - python-wheels
133
+ runs-on: ubuntu-latest
134
+ environment: release
135
+ permissions:
136
+ contents: read
137
+ id-token: write
138
+
139
+ steps:
140
+ - name: Checkout
141
+ uses: actions/checkout@v5
142
+
143
+ - name: Install Rust toolchain
144
+ uses: dtolnay/rust-toolchain@stable
145
+
146
+ - name: Authenticate to crates.io
147
+ id: auth
148
+ uses: rust-lang/crates-io-auth-action@v1
149
+
150
+ - name: Publish Rust crate
151
+ run: cargo publish --package rototo --locked
152
+ env:
153
+ CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }}
154
+
155
+ - name: Download Python distributions
156
+ uses: actions/download-artifact@v4
157
+ with:
158
+ pattern: python-*
159
+ path: python-dist
160
+ merge-multiple: true
161
+
162
+ - name: List Python distributions
163
+ run: ls -la python-dist
164
+
165
+ - name: Publish Python SDK
166
+ uses: pypa/gh-action-pypi-publish@release/v1
167
+ with:
168
+ packages-dir: python-dist
@@ -0,0 +1,33 @@
1
+ # Generated by Cargo
2
+ # will have compiled files and executables
3
+ debug
4
+ target
5
+
6
+ # Generated documentation export
7
+ site/
8
+
9
+ # Generated by Wrangler during Cloudflare Pages deploys
10
+ .wrangler/
11
+
12
+ # These are backup files generated by rustfmt
13
+ **/*.rs.bk
14
+
15
+ # MSVC Windows builds of rustc generate these, which store debugging information
16
+ *.pdb
17
+
18
+ # Generated by cargo mutants
19
+ # Contains mutation testing data
20
+ **/mutants.out*/
21
+
22
+ # Generated by Python SDK builds and tests
23
+ __pycache__/
24
+ *.py[cod]
25
+ sdks/python/python/rototo/*.so
26
+ sdks/python/.venv/
27
+
28
+ # RustRover
29
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
30
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
31
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
32
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
33
+ #.idea/
@@ -0,0 +1,32 @@
1
+ # Local pre-commit hooks for rototo. `just setup-min` installs pre-commit
2
+ # from requirements-dev.txt and registers both commit and push hooks.
3
+ repos:
4
+ - repo: https://github.com/pre-commit/pre-commit-hooks
5
+ rev: v6.0.0
6
+ hooks:
7
+ - id: trailing-whitespace
8
+ - id: end-of-file-fixer
9
+ - id: check-yaml
10
+ - id: check-toml
11
+ exclude: 'tests/fixtures/(workspaces/invalid-(workspace-toml|resource-toml)|packages/invalid-toml)/'
12
+ - id: mixed-line-ending
13
+ args: [--fix=lf]
14
+ exclude: '\.(bat|cmd)$'
15
+
16
+ - repo: local
17
+ hooks:
18
+ - id: cargo-fmt
19
+ name: cargo fmt
20
+ description: Check Rust formatting.
21
+ entry: cargo fmt --all -- --check
22
+ language: system
23
+ types: [rust]
24
+ pass_filenames: false
25
+
26
+ - id: check
27
+ name: just check
28
+ description: Run the local CI-equivalent gate before push.
29
+ entry: just check
30
+ language: system
31
+ pass_filenames: false
32
+ stages: [pre-push]
@@ -0,0 +1,6 @@
1
+ # Non-Rust tool versions for local development.
2
+ #
3
+ # Rust is pinned in rust-toolchain.toml and applied by rustup.
4
+ python 3.13
5
+ node 24
6
+ npm:wrangler 4