collimate-sdk 0.1.0__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 (503) hide show
  1. collimate_sdk-0.1.0/.gitignore +72 -0
  2. collimate_sdk-0.1.0/AUTHORS +12 -0
  3. collimate_sdk-0.1.0/LICENSE +21 -0
  4. collimate_sdk-0.1.0/PKG-INFO +158 -0
  5. collimate_sdk-0.1.0/README.md +134 -0
  6. collimate_sdk-0.1.0/THIRD_PARTY_LICENSES +99 -0
  7. collimate_sdk-0.1.0/build/renderer_compilers/LICENSE.esbuild +21 -0
  8. collimate_sdk-0.1.0/build/renderer_compilers/darwin-arm64/README.md +3 -0
  9. collimate_sdk-0.1.0/build/renderer_compilers/darwin-arm64/esbuild +0 -0
  10. collimate_sdk-0.1.0/build/renderer_compilers/darwin-x64/README.md +3 -0
  11. collimate_sdk-0.1.0/build/renderer_compilers/darwin-x64/esbuild +0 -0
  12. collimate_sdk-0.1.0/build/renderer_compilers/linux-arm64/README.md +3 -0
  13. collimate_sdk-0.1.0/build/renderer_compilers/linux-arm64/esbuild +0 -0
  14. collimate_sdk-0.1.0/build/renderer_compilers/linux-x64/README.md +3 -0
  15. collimate_sdk-0.1.0/build/renderer_compilers/linux-x64/esbuild +0 -0
  16. collimate_sdk-0.1.0/build/renderer_compilers/manifest.json +26 -0
  17. collimate_sdk-0.1.0/conftest.py +30 -0
  18. collimate_sdk-0.1.0/hatch_build.py +46 -0
  19. collimate_sdk-0.1.0/native-payloads/native-darwin-arm64/LICENSE.quickjs-engine +346 -0
  20. collimate_sdk-0.1.0/native-payloads/native-darwin-arm64/LICENSE.quickjs-ng +21 -0
  21. collimate_sdk-0.1.0/native-payloads/native-darwin-arm64/manifest.json +13 -0
  22. collimate_sdk-0.1.0/native-payloads/native-darwin-x64/LICENSE.quickjs-engine +346 -0
  23. collimate_sdk-0.1.0/native-payloads/native-darwin-x64/LICENSE.quickjs-ng +21 -0
  24. collimate_sdk-0.1.0/native-payloads/native-darwin-x64/manifest.json +13 -0
  25. collimate_sdk-0.1.0/native-payloads/native-linux-arm64/LICENSE.quickjs-engine +346 -0
  26. collimate_sdk-0.1.0/native-payloads/native-linux-arm64/LICENSE.quickjs-ng +21 -0
  27. collimate_sdk-0.1.0/native-payloads/native-linux-arm64/manifest.json +13 -0
  28. collimate_sdk-0.1.0/native-payloads/native-linux-x64/LICENSE.quickjs-engine +346 -0
  29. collimate_sdk-0.1.0/native-payloads/native-linux-x64/LICENSE.quickjs-ng +21 -0
  30. collimate_sdk-0.1.0/native-payloads/native-linux-x64/manifest.json +13 -0
  31. collimate_sdk-0.1.0/packages/renderer-hooks/.gitignore +3 -0
  32. collimate_sdk-0.1.0/packages/renderer-hooks/README.md +265 -0
  33. collimate_sdk-0.1.0/packages/renderer-hooks/package-lock.json +1548 -0
  34. collimate_sdk-0.1.0/packages/renderer-hooks/package.json +65 -0
  35. collimate_sdk-0.1.0/packages/renderer-hooks/platform.d.ts +117 -0
  36. collimate_sdk-0.1.0/packages/renderer-hooks/src/color.ts +69 -0
  37. collimate_sdk-0.1.0/packages/renderer-hooks/src/document-view.tsx +710 -0
  38. collimate_sdk-0.1.0/packages/renderer-hooks/src/index.tsx +679 -0
  39. collimate_sdk-0.1.0/packages/renderer-hooks/src/media.tsx +86 -0
  40. collimate_sdk-0.1.0/packages/renderer-hooks/src/mirror.ts +31 -0
  41. collimate_sdk-0.1.0/packages/renderer-hooks/src/platform.tsx +225 -0
  42. collimate_sdk-0.1.0/packages/renderer-hooks/src/runtime.tsx +19 -0
  43. collimate_sdk-0.1.0/packages/renderer-hooks/src/session.ts +251 -0
  44. collimate_sdk-0.1.0/packages/renderer-hooks/src/style-control.tsx +453 -0
  45. collimate_sdk-0.1.0/packages/renderer-hooks/src/syntax.ts +226 -0
  46. collimate_sdk-0.1.0/packages/renderer-hooks/src/types.ts +596 -0
  47. collimate_sdk-0.1.0/packages/renderer-hooks/tsconfig.json +23 -0
  48. collimate_sdk-0.1.0/pyproject.toml +114 -0
  49. collimate_sdk-0.1.0/scripts/build_outputs.py +92 -0
  50. collimate_sdk-0.1.0/scripts/build_renderer_runtime.mjs +96 -0
  51. collimate_sdk-0.1.0/scripts/build_snapshot_codecs.mjs +58 -0
  52. collimate_sdk-0.1.0/scripts/build_verify_prelude.mjs +63 -0
  53. collimate_sdk-0.1.0/scripts/bundle_renderer_test.mjs +209 -0
  54. collimate_sdk-0.1.0/scripts/check_native_wheels.py +103 -0
  55. collimate_sdk-0.1.0/scripts/esbuild-LICENSE.md +21 -0
  56. collimate_sdk-0.1.0/scripts/esm_lexer_oracle.mjs +52 -0
  57. collimate_sdk-0.1.0/scripts/package-lock.json +3106 -0
  58. collimate_sdk-0.1.0/scripts/package.json +27 -0
  59. collimate_sdk-0.1.0/scripts/prepare_renderer_compilers.py +115 -0
  60. collimate_sdk-0.1.0/scripts/prepare_verifier_engine.py +247 -0
  61. collimate_sdk-0.1.0/scripts/prove_native_verifier.py +58 -0
  62. collimate_sdk-0.1.0/scripts/renderer_bundle.mjs +75 -0
  63. collimate_sdk-0.1.0/scripts/renderer_bundle_core.d.mts +25 -0
  64. collimate_sdk-0.1.0/scripts/renderer_bundle_core.mjs +132 -0
  65. collimate_sdk-0.1.0/scripts/scan_retired_tokens.py +105 -0
  66. collimate_sdk-0.1.0/scripts/snapshot-codecs/embed-markdown.ts +242 -0
  67. collimate_sdk-0.1.0/scripts/snapshot-codecs/milkdown.ts +76 -0
  68. collimate_sdk-0.1.0/scripts/snapshot-codecs/snapshot-model.ts +36 -0
  69. collimate_sdk-0.1.0/scripts/sync_contracts.py +218 -0
  70. collimate_sdk-0.1.0/scripts/sync_distribution_metadata.py +46 -0
  71. collimate_sdk-0.1.0/scripts/sync_harness_catalog.py +214 -0
  72. collimate_sdk-0.1.0/scripts/sync_mirror_hosts.py +134 -0
  73. collimate_sdk-0.1.0/scripts/sync_skill_references.py +142 -0
  74. collimate_sdk-0.1.0/scripts/sync_toolchain.py +254 -0
  75. collimate_sdk-0.1.0/shared/contracts/channel-events.json +226 -0
  76. collimate_sdk-0.1.0/shared/contracts/channel-events.schema.json +505 -0
  77. collimate_sdk-0.1.0/shared/contracts/ipc-ops.json +165 -0
  78. collimate_sdk-0.1.0/shared/contracts/toolchain.json +8 -0
  79. collimate_sdk-0.1.0/shared/definition-packages-contract.json +128 -0
  80. collimate_sdk-0.1.0/shared/docs/README.md +26 -0
  81. collimate_sdk-0.1.0/shared/docs/agent-runtime.md +240 -0
  82. collimate_sdk-0.1.0/shared/docs/api-reference.md +229 -0
  83. collimate_sdk-0.1.0/shared/docs/authoring-best-practices.md +205 -0
  84. collimate_sdk-0.1.0/shared/docs/collimate-overview.md +159 -0
  85. collimate_sdk-0.1.0/shared/docs/generic-surface-design.md +79 -0
  86. collimate_sdk-0.1.0/shared/docs/how-to-write-a-generator.md +308 -0
  87. collimate_sdk-0.1.0/shared/docs/how-to-write-a-handler.md +116 -0
  88. collimate_sdk-0.1.0/shared/docs/how-to-write-a-renderer.md +2224 -0
  89. collimate_sdk-0.1.0/shared/docs/how-to-write-a-runner.md +213 -0
  90. collimate_sdk-0.1.0/shared/docs/how-to-write-a-verifier.md +60 -0
  91. collimate_sdk-0.1.0/shared/docs/how-to-write-options.md +53 -0
  92. collimate_sdk-0.1.0/shared/docs/interface.md +144 -0
  93. collimate_sdk-0.1.0/shared/docs/testing-generators.md +77 -0
  94. collimate_sdk-0.1.0/shared/docs/why-collimate.md +88 -0
  95. collimate_sdk-0.1.0/shared/egress-addresses.json +78 -0
  96. collimate_sdk-0.1.0/shared/empty-values-contract.json +52 -0
  97. collimate_sdk-0.1.0/shared/options-stack-contract.json +5 -0
  98. collimate_sdk-0.1.0/shared/permissions-contract.json +10 -0
  99. collimate_sdk-0.1.0/shared/renderer-runtime/common.json +1 -0
  100. collimate_sdk-0.1.0/shared/renderer-runtime/index.json +32 -0
  101. collimate_sdk-0.1.0/shared/renderer-runtime/react.js +1600 -0
  102. collimate_sdk-0.1.0/shared/renderer-runtime/session.js +199 -0
  103. collimate_sdk-0.1.0/shared/renderer-runtime/snapshot-codecs.json +9 -0
  104. collimate_sdk-0.1.0/shared/retired-names.json +430 -0
  105. collimate_sdk-0.1.0/shared/run-path-contract.json +24 -0
  106. collimate_sdk-0.1.0/shared/set-yaml-conditions-contract.json +189 -0
  107. collimate_sdk-0.1.0/shared/set-yaml-resolution-contract.json +10 -0
  108. collimate_sdk-0.1.0/shared/verify/definition-schemas.json +571 -0
  109. collimate_sdk-0.1.0/shared/verify/definition_checks.ts +149 -0
  110. collimate_sdk-0.1.0/shared/verify/dependency-licenses.txt +232 -0
  111. collimate_sdk-0.1.0/shared/verify/prelude.js +16487 -0
  112. collimate_sdk-0.1.0/shared/verify/prelude.json +15 -0
  113. collimate_sdk-0.1.0/shared/verify/prelude.ts +58 -0
  114. collimate_sdk-0.1.0/shared/verify/renderer-schemas.json +9 -0
  115. collimate_sdk-0.1.0/shared/verify/renderer_shape.ts +266 -0
  116. collimate_sdk-0.1.0/src/collimate/__init__.py +79 -0
  117. collimate_sdk-0.1.0/src/collimate/_compiler_child.py +22 -0
  118. collimate_sdk-0.1.0/src/collimate/_esbuild_service.py +353 -0
  119. collimate_sdk-0.1.0/src/collimate/_host/__init__.py +22 -0
  120. collimate_sdk-0.1.0/src/collimate/_host/bridge.py +1388 -0
  121. collimate_sdk-0.1.0/src/collimate/_host/channel_events.py +190 -0
  122. collimate_sdk-0.1.0/src/collimate/_host/esm_lexer.py +1187 -0
  123. collimate_sdk-0.1.0/src/collimate/_host/ipc.py +168 -0
  124. collimate_sdk-0.1.0/src/collimate/_host/module_bump.py +616 -0
  125. collimate_sdk-0.1.0/src/collimate/_host/module_mirror.py +1261 -0
  126. collimate_sdk-0.1.0/src/collimate/_host/package_hash.py +13 -0
  127. collimate_sdk-0.1.0/src/collimate/_host/packaging/__init__.py +41 -0
  128. collimate_sdk-0.1.0/src/collimate/_host/packaging/asset_cells.py +191 -0
  129. collimate_sdk-0.1.0/src/collimate/_host/packaging/layout.py +146 -0
  130. collimate_sdk-0.1.0/src/collimate/_host/packaging/models.py +32 -0
  131. collimate_sdk-0.1.0/src/collimate/_host/packaging/suggested.py +203 -0
  132. collimate_sdk-0.1.0/src/collimate/_host/renderer_bundle.py +311 -0
  133. collimate_sdk-0.1.0/src/collimate/_host/verification.py +139 -0
  134. collimate_sdk-0.1.0/src/collimate/_host/verifier_engine.py +104 -0
  135. collimate_sdk-0.1.0/src/collimate/_mirror.py +488 -0
  136. collimate_sdk-0.1.0/src/collimate/_renderer_compilers.py +35 -0
  137. collimate_sdk-0.1.0/src/collimate/_results.py +312 -0
  138. collimate_sdk-0.1.0/src/collimate/_sdk_metadata/METADATA +158 -0
  139. collimate_sdk-0.1.0/src/collimate/_workspace.py +500 -0
  140. collimate_sdk-0.1.0/src/collimate/account_taxonomy.py +492 -0
  141. collimate_sdk-0.1.0/src/collimate/config_values.py +556 -0
  142. collimate_sdk-0.1.0/src/collimate/definitions.py +97 -0
  143. collimate_sdk-0.1.0/src/collimate/fs.py +202 -0
  144. collimate_sdk-0.1.0/src/collimate/git_hosts.py +370 -0
  145. collimate_sdk-0.1.0/src/collimate/handlers.py +220 -0
  146. collimate_sdk-0.1.0/src/collimate/harness_catalog.py +376 -0
  147. collimate_sdk-0.1.0/src/collimate/harness_placement.py +333 -0
  148. collimate_sdk-0.1.0/src/collimate/host_harness.py +167 -0
  149. collimate_sdk-0.1.0/src/collimate/lint/__init__.py +80 -0
  150. collimate_sdk-0.1.0/src/collimate/lint/__main__.py +5 -0
  151. collimate_sdk-0.1.0/src/collimate/lint/cli.py +84 -0
  152. collimate_sdk-0.1.0/src/collimate/lint/conditions.py +574 -0
  153. collimate_sdk-0.1.0/src/collimate/lint/core.py +1852 -0
  154. collimate_sdk-0.1.0/src/collimate/module_mirror_contract.json +16 -0
  155. collimate_sdk-0.1.0/src/collimate/native.py +2702 -0
  156. collimate_sdk-0.1.0/src/collimate/native_verifier/darwin-arm64/LICENSE.quickjs-engine +346 -0
  157. collimate_sdk-0.1.0/src/collimate/native_verifier/darwin-arm64/LICENSE.quickjs-ng +21 -0
  158. collimate_sdk-0.1.0/src/collimate/native_verifier/darwin-arm64/_quickjs.abi3.so +0 -0
  159. collimate_sdk-0.1.0/src/collimate/native_verifier/darwin-arm64/manifest.json +13 -0
  160. collimate_sdk-0.1.0/src/collimate/native_verifier/darwin-x64/LICENSE.quickjs-engine +346 -0
  161. collimate_sdk-0.1.0/src/collimate/native_verifier/darwin-x64/LICENSE.quickjs-ng +21 -0
  162. collimate_sdk-0.1.0/src/collimate/native_verifier/darwin-x64/_quickjs.abi3.so +0 -0
  163. collimate_sdk-0.1.0/src/collimate/native_verifier/darwin-x64/manifest.json +13 -0
  164. collimate_sdk-0.1.0/src/collimate/native_verifier/linux-arm64/LICENSE.quickjs-engine +346 -0
  165. collimate_sdk-0.1.0/src/collimate/native_verifier/linux-arm64/LICENSE.quickjs-ng +21 -0
  166. collimate_sdk-0.1.0/src/collimate/native_verifier/linux-arm64/_quickjs.abi3.so +0 -0
  167. collimate_sdk-0.1.0/src/collimate/native_verifier/linux-arm64/manifest.json +13 -0
  168. collimate_sdk-0.1.0/src/collimate/native_verifier/linux-x64/LICENSE.quickjs-engine +346 -0
  169. collimate_sdk-0.1.0/src/collimate/native_verifier/linux-x64/LICENSE.quickjs-ng +21 -0
  170. collimate_sdk-0.1.0/src/collimate/native_verifier/linux-x64/_quickjs.abi3.so +0 -0
  171. collimate_sdk-0.1.0/src/collimate/native_verifier/linux-x64/manifest.json +13 -0
  172. collimate_sdk-0.1.0/src/collimate/options_stack.py +224 -0
  173. collimate_sdk-0.1.0/src/collimate/permissions.py +171 -0
  174. collimate_sdk-0.1.0/src/collimate/pointers.py +268 -0
  175. collimate_sdk-0.1.0/src/collimate/providers.py +110 -0
  176. collimate_sdk-0.1.0/src/collimate/renderer_bundle_contract.json +36 -0
  177. collimate_sdk-0.1.0/src/collimate/renderer_runtime.py +63 -0
  178. collimate_sdk-0.1.0/src/collimate/shared.py +98 -0
  179. collimate_sdk-0.1.0/src/collimate/surfaces.py +93 -0
  180. collimate_sdk-0.1.0/src/collimate/testing/__init__.py +555 -0
  181. collimate_sdk-0.1.0/src/collimate/testing/_bridge.py +974 -0
  182. collimate_sdk-0.1.0/src/collimate/testing/forward.py +346 -0
  183. collimate_sdk-0.1.0/src/collimate/transcript.py +266 -0
  184. collimate_sdk-0.1.0/src/collimate/verifier_engine_contract.json +60 -0
  185. collimate_sdk-0.1.0/src/collimate/wire.py +48 -0
  186. collimate_sdk-0.1.0/src/gen/__init__.py +35 -0
  187. collimate_sdk-0.1.0/src/gen/session.py +36 -0
  188. collimate_sdk-0.1.0/tests/__init__.py +0 -0
  189. collimate_sdk-0.1.0/tests/_agent_run.py +28 -0
  190. collimate_sdk-0.1.0/tests/_commands_matrix.py +150 -0
  191. collimate_sdk-0.1.0/tests/_document_view_hooks.py +215 -0
  192. collimate_sdk-0.1.0/tests/_git_fixtures.py +451 -0
  193. collimate_sdk-0.1.0/tests/_import_walk.py +140 -0
  194. collimate_sdk-0.1.0/tests/_node_renderer.py +61 -0
  195. collimate_sdk-0.1.0/tests/_ssh_keys.py +95 -0
  196. collimate_sdk-0.1.0/tests/_workspace.py +13 -0
  197. collimate_sdk-0.1.0/tests/conftest.py +174 -0
  198. collimate_sdk-0.1.0/tests/data/acp_registry/README.md +45 -0
  199. collimate_sdk-0.1.0/tests/data/acp_registry/agents.json +356 -0
  200. collimate_sdk-0.1.0/tests/data/acp_registry/protocol-matrix.json +2493 -0
  201. collimate_sdk-0.1.0/tests/data/acp_registry/quarantine.json +9 -0
  202. collimate_sdk-0.1.0/tests/data/fake_ssh.py +101 -0
  203. collimate_sdk-0.1.0/tests/data/ssh_keys/ed25519_putty.txt +9 -0
  204. collimate_sdk-0.1.0/tests/fixtures/esm_lexer_unit_sources.json +223 -0
  205. collimate_sdk-0.1.0/tests/fixtures/excalidraw-0.18.1-index.css +1 -0
  206. collimate_sdk-0.1.0/tests/fixtures/milkdown-snapshots.json +2468 -0
  207. collimate_sdk-0.1.0/tests/test_account_runtime_contract.py +86 -0
  208. collimate_sdk-0.1.0/tests/test_account_taxonomy.py +281 -0
  209. collimate_sdk-0.1.0/tests/test_acp_capture_observer_D23.py +1224 -0
  210. collimate_sdk-0.1.0/tests/test_acp_client.py +6562 -0
  211. collimate_sdk-0.1.0/tests/test_acp_transport_cleanup_P4F34.py +194 -0
  212. collimate_sdk-0.1.0/tests/test_adapter_artifacts.py +164 -0
  213. collimate_sdk-0.1.0/tests/test_added_handler_skills.py +93 -0
  214. collimate_sdk-0.1.0/tests/test_agent_accounts.py +690 -0
  215. collimate_sdk-0.1.0/tests/test_agent_annotation.py +1081 -0
  216. collimate_sdk-0.1.0/tests/test_agent_chat_multimodal.py +35 -0
  217. collimate_sdk-0.1.0/tests/test_agent_deps.py +92 -0
  218. collimate_sdk-0.1.0/tests/test_agent_engine.py +1370 -0
  219. collimate_sdk-0.1.0/tests/test_agent_entrypoint.py +2289 -0
  220. collimate_sdk-0.1.0/tests/test_agent_generators.py +306 -0
  221. collimate_sdk-0.1.0/tests/test_agent_grants.py +170 -0
  222. collimate_sdk-0.1.0/tests/test_agent_handler_tools.py +84 -0
  223. collimate_sdk-0.1.0/tests/test_agent_isolated_startup.py +15 -0
  224. collimate_sdk-0.1.0/tests/test_agent_matrix.py +597 -0
  225. collimate_sdk-0.1.0/tests/test_agent_mcp_file_tools.py +83 -0
  226. collimate_sdk-0.1.0/tests/test_agent_mcp_protocol.py +126 -0
  227. collimate_sdk-0.1.0/tests/test_agent_multimodal.py +89 -0
  228. collimate_sdk-0.1.0/tests/test_agent_runtime.py +461 -0
  229. collimate_sdk-0.1.0/tests/test_agent_schema_grants.py +40 -0
  230. collimate_sdk-0.1.0/tests/test_agent_tool_owners.py +30 -0
  231. collimate_sdk-0.1.0/tests/test_agent_validation_errors.py +89 -0
  232. collimate_sdk-0.1.0/tests/test_agent_workspace_tools.py +909 -0
  233. collimate_sdk-0.1.0/tests/test_agy_hook.py +178 -0
  234. collimate_sdk-0.1.0/tests/test_annotations.py +721 -0
  235. collimate_sdk-0.1.0/tests/test_antigravity_prepare.py +458 -0
  236. collimate_sdk-0.1.0/tests/test_antigravity_terminal_context.py +289 -0
  237. collimate_sdk-0.1.0/tests/test_ask.py +419 -0
  238. collimate_sdk-0.1.0/tests/test_asset_cells.py +216 -0
  239. collimate_sdk-0.1.0/tests/test_asset_protocol_ownership.py +82 -0
  240. collimate_sdk-0.1.0/tests/test_assistant_chat_queue.py +196 -0
  241. collimate_sdk-0.1.0/tests/test_assistant_runtime_contract.py +127 -0
  242. collimate_sdk-0.1.0/tests/test_assistant_transcript.py +30 -0
  243. collimate_sdk-0.1.0/tests/test_backend_antigravity.py +1057 -0
  244. collimate_sdk-0.1.0/tests/test_backend_claude_terminal.py +669 -0
  245. collimate_sdk-0.1.0/tests/test_backend_cline.py +827 -0
  246. collimate_sdk-0.1.0/tests/test_backend_codex.py +525 -0
  247. collimate_sdk-0.1.0/tests/test_backend_copilot.py +172 -0
  248. collimate_sdk-0.1.0/tests/test_backend_goose.py +863 -0
  249. collimate_sdk-0.1.0/tests/test_backend_hermes.py +195 -0
  250. collimate_sdk-0.1.0/tests/test_backend_opencode.py +933 -0
  251. collimate_sdk-0.1.0/tests/test_backend_pi.py +539 -0
  252. collimate_sdk-0.1.0/tests/test_backend_qwen.py +400 -0
  253. collimate_sdk-0.1.0/tests/test_backend_vibe.py +192 -0
  254. collimate_sdk-0.1.0/tests/test_binary_files.py +33 -0
  255. collimate_sdk-0.1.0/tests/test_builtin_tree.py +102 -0
  256. collimate_sdk-0.1.0/tests/test_capability_registry.py +221 -0
  257. collimate_sdk-0.1.0/tests/test_cell_attach.py +105 -0
  258. collimate_sdk-0.1.0/tests/test_cell_caps.py +173 -0
  259. collimate_sdk-0.1.0/tests/test_changed_file_callbacks.py +52 -0
  260. collimate_sdk-0.1.0/tests/test_channel_events.py +87 -0
  261. collimate_sdk-0.1.0/tests/test_chat_renderer_vocabulary.py +55 -0
  262. collimate_sdk-0.1.0/tests/test_chat_vocabulary.py +42 -0
  263. collimate_sdk-0.1.0/tests/test_claude_antigravity_generator_capture_oracle.py +437 -0
  264. collimate_sdk-0.1.0/tests/test_claude_terminal_context.py +462 -0
  265. collimate_sdk-0.1.0/tests/test_cli_container.py +370 -0
  266. collimate_sdk-0.1.0/tests/test_cli_host.py +125 -0
  267. collimate_sdk-0.1.0/tests/test_client_caps.py +182 -0
  268. collimate_sdk-0.1.0/tests/test_cline_commands_oracle.py +1422 -0
  269. collimate_sdk-0.1.0/tests/test_cline_prepare.py +183 -0
  270. collimate_sdk-0.1.0/tests/test_cline_terminal_context.py +333 -0
  271. collimate_sdk-0.1.0/tests/test_codex_prepare.py +140 -0
  272. collimate_sdk-0.1.0/tests/test_codex_qwen_generator_tool_oracle.py +945 -0
  273. collimate_sdk-0.1.0/tests/test_codex_qwen_reply_diagnostic.py +107 -0
  274. collimate_sdk-0.1.0/tests/test_codex_qwen_terminal_carriers.py +186 -0
  275. collimate_sdk-0.1.0/tests/test_codex_shell_policy_fixture.py +110 -0
  276. collimate_sdk-0.1.0/tests/test_codex_terminal_context.py +225 -0
  277. collimate_sdk-0.1.0/tests/test_commands_matrix.py +242 -0
  278. collimate_sdk-0.1.0/tests/test_config_folders.py +112 -0
  279. collimate_sdk-0.1.0/tests/test_config_values.py +253 -0
  280. collimate_sdk-0.1.0/tests/test_context_file.py +197 -0
  281. collimate_sdk-0.1.0/tests/test_contracts.py +119 -0
  282. collimate_sdk-0.1.0/tests/test_definition_handlers.py +244 -0
  283. collimate_sdk-0.1.0/tests/test_definition_packages.py +55 -0
  284. collimate_sdk-0.1.0/tests/test_definition_ui.py +23 -0
  285. collimate_sdk-0.1.0/tests/test_dev_extra_present.py +34 -0
  286. collimate_sdk-0.1.0/tests/test_docker_base.py +267 -0
  287. collimate_sdk-0.1.0/tests/test_docs_api_drift.py +436 -0
  288. collimate_sdk-0.1.0/tests/test_document_view_pick.py +193 -0
  289. collimate_sdk-0.1.0/tests/test_document_view_skin_change.py +77 -0
  290. collimate_sdk-0.1.0/tests/test_editor_external_content.py +59 -0
  291. collimate_sdk-0.1.0/tests/test_editor_visual_renderer_tokens.py +60 -0
  292. collimate_sdk-0.1.0/tests/test_emit_and_wait.py +501 -0
  293. collimate_sdk-0.1.0/tests/test_env_git_account.py +196 -0
  294. collimate_sdk-0.1.0/tests/test_env_git_run.py +613 -0
  295. collimate_sdk-0.1.0/tests/test_env_repositories.py +1876 -0
  296. collimate_sdk-0.1.0/tests/test_environments.py +1233 -0
  297. collimate_sdk-0.1.0/tests/test_esbuild_service.py +164 -0
  298. collimate_sdk-0.1.0/tests/test_esm_lexer.py +189 -0
  299. collimate_sdk-0.1.0/tests/test_esm_lexer_oracle.py +134 -0
  300. collimate_sdk-0.1.0/tests/test_excalidraw_renderer_theme.py +46 -0
  301. collimate_sdk-0.1.0/tests/test_final_output_ack.py +164 -0
  302. collimate_sdk-0.1.0/tests/test_forward.py +236 -0
  303. collimate_sdk-0.1.0/tests/test_forward_image.py +22 -0
  304. collimate_sdk-0.1.0/tests/test_forward_metadata.py +89 -0
  305. collimate_sdk-0.1.0/tests/test_fs.py +95 -0
  306. collimate_sdk-0.1.0/tests/test_generate.py +156 -0
  307. collimate_sdk-0.1.0/tests/test_generator_config_contract.py +118 -0
  308. collimate_sdk-0.1.0/tests/test_generator_conformance.py +325 -0
  309. collimate_sdk-0.1.0/tests/test_generator_internet_grants.py +213 -0
  310. collimate_sdk-0.1.0/tests/test_generator_removals_p1.py +28 -0
  311. collimate_sdk-0.1.0/tests/test_generator_surface_contract.py +48 -0
  312. collimate_sdk-0.1.0/tests/test_generator_test_container.py +262 -0
  313. collimate_sdk-0.1.0/tests/test_generator_test_tool.py +386 -0
  314. collimate_sdk-0.1.0/tests/test_git_checkout_handler.py +555 -0
  315. collimate_sdk-0.1.0/tests/test_git_generator.py +492 -0
  316. collimate_sdk-0.1.0/tests/test_git_hosts.py +261 -0
  317. collimate_sdk-0.1.0/tests/test_goose_prepare.py +89 -0
  318. collimate_sdk-0.1.0/tests/test_goose_terminal_context.py +145 -0
  319. collimate_sdk-0.1.0/tests/test_guest_session_vocabulary.py +36 -0
  320. collimate_sdk-0.1.0/tests/test_guide_catalog.py +64 -0
  321. collimate_sdk-0.1.0/tests/test_guide_contracts.py +437 -0
  322. collimate_sdk-0.1.0/tests/test_handler_runtime.py +54 -0
  323. collimate_sdk-0.1.0/tests/test_handlers.py +53 -0
  324. collimate_sdk-0.1.0/tests/test_harness_catalog.py +62 -0
  325. collimate_sdk-0.1.0/tests/test_harness_env_plane.py +135 -0
  326. collimate_sdk-0.1.0/tests/test_harness_host_refusals.py +77 -0
  327. collimate_sdk-0.1.0/tests/test_harness_pipeline.py +115 -0
  328. collimate_sdk-0.1.0/tests/test_harness_placement.py +180 -0
  329. collimate_sdk-0.1.0/tests/test_harness_registry.py +162 -0
  330. collimate_sdk-0.1.0/tests/test_held_mirror.py +166 -0
  331. collimate_sdk-0.1.0/tests/test_host_finish.py +183 -0
  332. collimate_sdk-0.1.0/tests/test_host_harness.py +196 -0
  333. collimate_sdk-0.1.0/tests/test_host_persistence.py +274 -0
  334. collimate_sdk-0.1.0/tests/test_html_renderer_dark.py +146 -0
  335. collimate_sdk-0.1.0/tests/test_html_renderer_links.py +46 -0
  336. collimate_sdk-0.1.0/tests/test_html_renderer_pick.py +41 -0
  337. collimate_sdk-0.1.0/tests/test_import_boundary.py +305 -0
  338. collimate_sdk-0.1.0/tests/test_imports.py +147 -0
  339. collimate_sdk-0.1.0/tests/test_ipc_ops.py +83 -0
  340. collimate_sdk-0.1.0/tests/test_layout.py +111 -0
  341. collimate_sdk-0.1.0/tests/test_lint.py +2210 -0
  342. collimate_sdk-0.1.0/tests/test_live_file_changes.py +35 -0
  343. collimate_sdk-0.1.0/tests/test_live_fixture_contracts.py +504 -0
  344. collimate_sdk-0.1.0/tests/test_live_handler_fixtures.py +65 -0
  345. collimate_sdk-0.1.0/tests/test_llm_summary_handler.py +47 -0
  346. collimate_sdk-0.1.0/tests/test_log_category.py +177 -0
  347. collimate_sdk-0.1.0/tests/test_login_store.py +369 -0
  348. collimate_sdk-0.1.0/tests/test_media_desktop_ownership.py +23 -0
  349. collimate_sdk-0.1.0/tests/test_media_utility_renderer_tokens.py +144 -0
  350. collimate_sdk-0.1.0/tests/test_mermaid_renderer_theme.py +27 -0
  351. collimate_sdk-0.1.0/tests/test_milkdown_refresh.py +98 -0
  352. collimate_sdk-0.1.0/tests/test_milkdown_renderer_model.py +31 -0
  353. collimate_sdk-0.1.0/tests/test_milkdown_snapshot_codec.py +85 -0
  354. collimate_sdk-0.1.0/tests/test_milkdown_text_input.py +48 -0
  355. collimate_sdk-0.1.0/tests/test_module_bump.py +406 -0
  356. collimate_sdk-0.1.0/tests/test_module_mirror.py +644 -0
  357. collimate_sdk-0.1.0/tests/test_module_snapshot.py +137 -0
  358. collimate_sdk-0.1.0/tests/test_monaco_renderer_theme.py +66 -0
  359. collimate_sdk-0.1.0/tests/test_native_bridge_fixture_discovery.py +79 -0
  360. collimate_sdk-0.1.0/tests/test_native_bridge_fixture_lifecycle.py +72 -0
  361. collimate_sdk-0.1.0/tests/test_native_contracts_p1.py +137 -0
  362. collimate_sdk-0.1.0/tests/test_native_install_policy.py +50 -0
  363. collimate_sdk-0.1.0/tests/test_native_singleton.py +1186 -0
  364. collimate_sdk-0.1.0/tests/test_native_verifier_resources.py +403 -0
  365. collimate_sdk-0.1.0/tests/test_node_renderer_contract.py +65 -0
  366. collimate_sdk-0.1.0/tests/test_opencode_terminal_carrier.py +138 -0
  367. collimate_sdk-0.1.0/tests/test_opencode_terminal_carrier_pointer.py +182 -0
  368. collimate_sdk-0.1.0/tests/test_options_presets.py +28 -0
  369. collimate_sdk-0.1.0/tests/test_options_stack.py +204 -0
  370. collimate_sdk-0.1.0/tests/test_p1_core_contract.py +46 -0
  371. collimate_sdk-0.1.0/tests/test_p4_final_harness_identity.py +86 -0
  372. collimate_sdk-0.1.0/tests/test_p4_utilities.py +162 -0
  373. collimate_sdk-0.1.0/tests/test_p6_compiler_support.py +67 -0
  374. collimate_sdk-0.1.0/tests/test_p6_structure_contracts.py +194 -0
  375. collimate_sdk-0.1.0/tests/test_p6_wire_ownership.py +44 -0
  376. collimate_sdk-0.1.0/tests/test_package_hash.py +62 -0
  377. collimate_sdk-0.1.0/tests/test_pdf_renderer_model.py +33 -0
  378. collimate_sdk-0.1.0/tests/test_permissions.py +253 -0
  379. collimate_sdk-0.1.0/tests/test_pi_native_carrier.py +105 -0
  380. collimate_sdk-0.1.0/tests/test_pi_native_extension.py +202 -0
  381. collimate_sdk-0.1.0/tests/test_pi_prepare.py +191 -0
  382. collimate_sdk-0.1.0/tests/test_pi_terminal_context.py +198 -0
  383. collimate_sdk-0.1.0/tests/test_pi_terminal_rejection_oracle.py +51 -0
  384. collimate_sdk-0.1.0/tests/test_plan_login_validation_owner.py +238 -0
  385. collimate_sdk-0.1.0/tests/test_profile_contract.py +46 -0
  386. collimate_sdk-0.1.0/tests/test_providers.py +34 -0
  387. collimate_sdk-0.1.0/tests/test_public_contracts.py +112 -0
  388. collimate_sdk-0.1.0/tests/test_pydantic_ai_harness.py +391 -0
  389. collimate_sdk-0.1.0/tests/test_python_dependency_policy.py +29 -0
  390. collimate_sdk-0.1.0/tests/test_qwen_acp_readiness_observer.py +355 -0
  391. collimate_sdk-0.1.0/tests/test_qwen_prepare.py +108 -0
  392. collimate_sdk-0.1.0/tests/test_qwen_terminal_context.py +205 -0
  393. collimate_sdk-0.1.0/tests/test_release_policy.py +58 -0
  394. collimate_sdk-0.1.0/tests/test_renderer_bundle.py +324 -0
  395. collimate_sdk-0.1.0/tests/test_renderer_bundle_portable.py +87 -0
  396. collimate_sdk-0.1.0/tests/test_renderer_cdn_pins.py +351 -0
  397. collimate_sdk-0.1.0/tests/test_renderer_compiler_resources.py +87 -0
  398. collimate_sdk-0.1.0/tests/test_renderer_conditions.py +40 -0
  399. collimate_sdk-0.1.0/tests/test_renderer_dependency_pins.py +44 -0
  400. collimate_sdk-0.1.0/tests/test_renderer_diff_follow.py +191 -0
  401. collimate_sdk-0.1.0/tests/test_renderer_document_owner.py +42 -0
  402. collimate_sdk-0.1.0/tests/test_renderer_example_theme.py +45 -0
  403. collimate_sdk-0.1.0/tests/test_renderer_frame_sandbox.py +263 -0
  404. collimate_sdk-0.1.0/tests/test_renderer_handler.py +176 -0
  405. collimate_sdk-0.1.0/tests/test_renderer_manifests.py +167 -0
  406. collimate_sdk-0.1.0/tests/test_renderer_mirror_url.py +78 -0
  407. collimate_sdk-0.1.0/tests/test_renderer_native_bundle.py +165 -0
  408. collimate_sdk-0.1.0/tests/test_renderer_runtime.py +667 -0
  409. collimate_sdk-0.1.0/tests/test_renderer_tooling.py +28 -0
  410. collimate_sdk-0.1.0/tests/test_retired_token_scan.py +106 -0
  411. collimate_sdk-0.1.0/tests/test_run_folders.py +630 -0
  412. collimate_sdk-0.1.0/tests/test_run_generator.py +2178 -0
  413. collimate_sdk-0.1.0/tests/test_run_identity.py +316 -0
  414. collimate_sdk-0.1.0/tests/test_run_renderer_model.py +32 -0
  415. collimate_sdk-0.1.0/tests/test_runner_contract.py +92 -0
  416. collimate_sdk-0.1.0/tests/test_sdk_runtime_metadata.py +203 -0
  417. collimate_sdk-0.1.0/tests/test_sdk_scale.py +579 -0
  418. collimate_sdk-0.1.0/tests/test_secret_hygiene.py +375 -0
  419. collimate_sdk-0.1.0/tests/test_selected_file.py +143 -0
  420. collimate_sdk-0.1.0/tests/test_serve_terminal.py +291 -0
  421. collimate_sdk-0.1.0/tests/test_session_connection_key.py +79 -0
  422. collimate_sdk-0.1.0/tests/test_shared_path.py +28 -0
  423. collimate_sdk-0.1.0/tests/test_shipped_config_snapshots.py +26 -0
  424. collimate_sdk-0.1.0/tests/test_skill_references.py +115 -0
  425. collimate_sdk-0.1.0/tests/test_style_control_reach.py +481 -0
  426. collimate_sdk-0.1.0/tests/test_suggested.py +329 -0
  427. collimate_sdk-0.1.0/tests/test_surface_opens.py +184 -0
  428. collimate_sdk-0.1.0/tests/test_surface_sessions.py +793 -0
  429. collimate_sdk-0.1.0/tests/test_terminal_export_owners.py +79 -0
  430. collimate_sdk-0.1.0/tests/test_terminal_renderer_model.py +35 -0
  431. collimate_sdk-0.1.0/tests/test_terminal_runner.py +363 -0
  432. collimate_sdk-0.1.0/tests/test_terminal_tail.py +1038 -0
  433. collimate_sdk-0.1.0/tests/test_terminal_vocabulary.py +60 -0
  434. collimate_sdk-0.1.0/tests/test_testing_harness.py +483 -0
  435. collimate_sdk-0.1.0/tests/test_testing_module_ownership.py +225 -0
  436. collimate_sdk-0.1.0/tests/test_testing_prepared_run.py +132 -0
  437. collimate_sdk-0.1.0/tests/test_text_renderer_model.py +20 -0
  438. collimate_sdk-0.1.0/tests/test_toolchain_actions.py +68 -0
  439. collimate_sdk-0.1.0/tests/test_toolchain_contract.py +99 -0
  440. collimate_sdk-0.1.0/tests/test_transcript.py +222 -0
  441. collimate_sdk-0.1.0/tests/test_transcript_merge.py +260 -0
  442. collimate_sdk-0.1.0/tests/test_upstream_record.py +167 -0
  443. collimate_sdk-0.1.0/tests/test_verification.py +85 -0
  444. collimate_sdk-0.1.0/tests/test_verify_prelude.py +117 -0
  445. collimate_sdk-0.1.0/tests/test_web_chrome.py +65 -0
  446. collimate_sdk-0.1.0/tests/test_web_generator.py +2004 -0
  447. collimate_sdk-0.1.0/tests/test_web_rpc_contract.py +147 -0
  448. collimate_sdk-0.1.0/tests/test_website_frame.py +31 -0
  449. collimate_sdk-0.1.0/tests/test_webview_artifact.py +131 -0
  450. collimate_sdk-0.1.0/tests/test_webview_buttons.py +30 -0
  451. collimate_sdk-0.1.0/tests/test_webview_navigation.py +36 -0
  452. collimate_sdk-0.1.0/tests/test_whole_file_reads.py +148 -0
  453. collimate_sdk-0.1.0/tests/test_workspace_containment.py +398 -0
  454. collimate_sdk-0.1.0/tests_live/README.md +329 -0
  455. collimate_sdk-0.1.0/tests_live/__init__.py +13 -0
  456. collimate_sdk-0.1.0/tests_live/_claude_tty.py +57 -0
  457. collimate_sdk-0.1.0/tests_live/_host_terminal.py +435 -0
  458. collimate_sdk-0.1.0/tests_live/anthropic_mock.py +137 -0
  459. collimate_sdk-0.1.0/tests_live/bypass/__init__.py +35 -0
  460. collimate_sdk-0.1.0/tests_live/bypass/antigravity.py +21 -0
  461. collimate_sdk-0.1.0/tests_live/bypass/copilot.py +115 -0
  462. collimate_sdk-0.1.0/tests_live/bypass/hermes.py +110 -0
  463. collimate_sdk-0.1.0/tests_live/bypass/pydantic_ai.py +10 -0
  464. collimate_sdk-0.1.0/tests_live/bypass/vibe.py +83 -0
  465. collimate_sdk-0.1.0/tests_live/conftest.py +1188 -0
  466. collimate_sdk-0.1.0/tests_live/fixtures/acp_capture.py +728 -0
  467. collimate_sdk-0.1.0/tests_live/fixtures/agy_terminal_command.py +431 -0
  468. collimate_sdk-0.1.0/tests_live/fixtures/cline_native_tools.mjs +54 -0
  469. collimate_sdk-0.1.0/tests_live/fixtures/pi_native_tools.mjs +111 -0
  470. collimate_sdk-0.1.0/tests_live/provider_mock.py +583 -0
  471. collimate_sdk-0.1.0/tests_live/test_live_acp_conformance.py +1229 -0
  472. collimate_sdk-0.1.0/tests_live/test_live_antigravity_commands.py +192 -0
  473. collimate_sdk-0.1.0/tests_live/test_live_claude_antigravity_generator_capture.py +276 -0
  474. collimate_sdk-0.1.0/tests_live/test_live_claude_code.py +130 -0
  475. collimate_sdk-0.1.0/tests_live/test_live_claude_tty_commands.py +350 -0
  476. collimate_sdk-0.1.0/tests_live/test_live_cline_commands.py +892 -0
  477. collimate_sdk-0.1.0/tests_live/test_live_cline_generator_tool_capture.py +85 -0
  478. collimate_sdk-0.1.0/tests_live/test_live_cline_native_intake.py +256 -0
  479. collimate_sdk-0.1.0/tests_live/test_live_codex_commands.py +115 -0
  480. collimate_sdk-0.1.0/tests_live/test_live_codex_qwen_acp_capture.py +116 -0
  481. collimate_sdk-0.1.0/tests_live/test_live_codex_qwen_generator_tool.py +729 -0
  482. collimate_sdk-0.1.0/tests_live/test_live_codex_qwen_terminal_intake.py +95 -0
  483. collimate_sdk-0.1.0/tests_live/test_live_codex_shell_policy.py +57 -0
  484. collimate_sdk-0.1.0/tests_live/test_live_container_reaper.py +76 -0
  485. collimate_sdk-0.1.0/tests_live/test_live_forward_image.py +48 -0
  486. collimate_sdk-0.1.0/tests_live/test_live_generator_tool_acp_capture.py +88 -0
  487. collimate_sdk-0.1.0/tests_live/test_live_generator_tool_processes.py +80 -0
  488. collimate_sdk-0.1.0/tests_live/test_live_goose_commands.py +109 -0
  489. collimate_sdk-0.1.0/tests_live/test_live_harness_conformance.py +369 -0
  490. collimate_sdk-0.1.0/tests_live/test_live_host_terminal.py +277 -0
  491. collimate_sdk-0.1.0/tests_live/test_live_model_defaults.py +25 -0
  492. collimate_sdk-0.1.0/tests_live/test_live_multimodal.py +164 -0
  493. collimate_sdk-0.1.0/tests_live/test_live_opencode_commands.py +115 -0
  494. collimate_sdk-0.1.0/tests_live/test_live_opencode_gemini.py +148 -0
  495. collimate_sdk-0.1.0/tests_live/test_live_opencode_generator_tool.py +190 -0
  496. collimate_sdk-0.1.0/tests_live/test_live_pi_commands.py +153 -0
  497. collimate_sdk-0.1.0/tests_live/test_live_pi_native_carrier.py +112 -0
  498. collimate_sdk-0.1.0/tests_live/test_live_pydantic_ai.py +135 -0
  499. collimate_sdk-0.1.0/tests_live/test_live_qwen_acp_readiness.py +246 -0
  500. collimate_sdk-0.1.0/tests_live/test_live_qwen_agent_deny.py +88 -0
  501. collimate_sdk-0.1.0/tests_live/test_live_qwen_commands.py +127 -0
  502. collimate_sdk-0.1.0/tests_live/test_live_qwen_native_rewrite.py +43 -0
  503. collimate_sdk-0.1.0/tests_live/test_live_restricted_grants.py +156 -0
@@ -0,0 +1,72 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.so
6
+ *.egg
7
+ *.egg-info/
8
+ .eggs/
9
+ # Root-anchored on purpose: generators legitimately ship folders named
10
+ # `build` (runner Docker build contexts, config-folder samples) and an
11
+ # unanchored `build/` silently keeps them out of git — tests then pass
12
+ # only on machines where the untracked files happen to exist.
13
+ /build/
14
+ /dist/
15
+ /wheels/
16
+ pip-wheel-metadata/
17
+ MANIFEST
18
+
19
+ # Virtual environments
20
+ .venv/
21
+ venv/
22
+ env/
23
+ .python-version
24
+
25
+ # Packaging / build caches
26
+ .hatch/
27
+ .tox/
28
+ .nox/
29
+ # uv resolves its own lock on-demand; libraries published to PyPI
30
+ # don't need a committed lockfile (consumers resolve against their
31
+ # own environment). Keeps stray `uv run` / `uv sync` invocations
32
+ # from polluting the tree.
33
+ uv.lock
34
+
35
+ # Testing / coverage
36
+ .pytest_cache/
37
+ .coverage
38
+ .coverage.*
39
+ htmlcov/
40
+ coverage.xml
41
+ .mypy_cache/
42
+ .ruff_cache/
43
+
44
+ # Editors / OS
45
+ .idea/
46
+ .vscode/
47
+ *.swp
48
+ *.swo
49
+ .DS_Store
50
+ Thumbs.db
51
+
52
+ # Local dev workspaces / artifacts
53
+ test_workspace/
54
+
55
+ # Node (for renderer authoring)
56
+ node_modules/
57
+
58
+ # Local scratch (pytest temp root, ad-hoc work)
59
+ /tmp/
60
+
61
+ # Explicitly prepared private engine payloads; included only by packaging hooks.
62
+ /src/collimate/native_verifier/
63
+
64
+ # Built from their sources by scripts/build_outputs.py (prepare_sdk_checkout.sh,
65
+ # hatch_build.py, generate.py), pinned by the committed manifests
66
+ # shared/renderer-runtime/index.json and shared/verify/prelude.json; the wheel
67
+ # and the sdist carry them.
68
+ /shared/renderer-runtime/react.js
69
+ /shared/renderer-runtime/session.js
70
+ /shared/renderer-runtime/common.json
71
+ /shared/renderer-runtime/snapshot-codecs.json
72
+ /shared/verify/prelude.js
@@ -0,0 +1,12 @@
1
+ # Authors
2
+
3
+ This is the list of significant contributors to the Collimate SDK.
4
+ Names are added in order of first contribution.
5
+
6
+ For the full commit-by-commit contributor list, run:
7
+
8
+ git log --format='%aN <%aE>' | sort -u
9
+
10
+ ---
11
+
12
+ Michael <michael@collimate.dev>
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Michael Morgan
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,158 @@
1
+ Metadata-Version: 2.5
2
+ Name: collimate-sdk
3
+ Version: 0.1.0
4
+ Summary: SDK for building Collimate generators and renderers
5
+ Project-URL: Homepage, https://github.com/mike-droptables/collimate
6
+ Project-URL: Repository, https://github.com/mike-droptables/collimate/tree/main/sdk
7
+ Project-URL: Issues, https://github.com/mike-droptables/collimate/issues
8
+ Project-URL: Documentation, https://github.com/mike-droptables/collimate-sdk/tree/main/shared/docs
9
+ Author: Collimate SDK contributors
10
+ License-Expression: MIT
11
+ License-File: LICENSE
12
+ Keywords: codegen,collimate,generator,llm,renderer,sdk
13
+ Classifier: Development Status :: 3 - Alpha
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Topic :: Software Development :: Code Generators
20
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
21
+ Requires-Python: >=3.12
22
+ Requires-Dist: pyyaml>=6.0
23
+ Description-Content-Type: text/markdown
24
+
25
+ # Collimate SDK
26
+
27
+ [![PyPI](https://img.shields.io/pypi/v/collimate-sdk.svg)](https://pypi.org/project/collimate-sdk/)
28
+ [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
29
+ [![Python](https://img.shields.io/badge/python-3.12%2B-blue)](https://www.python.org/downloads/)
30
+
31
+ Build **generators** (Python scripts that read files, run logic, and write files — often with an LLM in the loop) and **renderers** (ES-module UIs that display those files) for the [Collimate](https://collimate.dev) platform.
32
+
33
+ The SDK handles the messy parts — workspace isolation, implicit commits, chat-history plumbing, progress reporting, lifecycle signals — so generators stay focused on logic and renderers stay focused on UI.
34
+
35
+ ## Install
36
+
37
+ ```bash
38
+ pip install collimate-sdk
39
+ ```
40
+
41
+ Requires ordinary GIL-enabled CPython 3.12+. Published wheels carry the private verifier binding for glibc Linux and macOS 11+ on x64 and ARM64; installation needs no C compiler or Xcode.
42
+
43
+ ## Quick start — a generator
44
+
45
+ The runtime API is a single top-level package, `gen`. The host sets it up before your `run()` is called — there is no class to instantiate and no `ctx` argument:
46
+
47
+ ```python
48
+ import gen
49
+
50
+ async def run():
51
+ files = {path: gen.read_file(path) for path in gen.list_files()} # this cell
52
+ text = files.get("input.txt", "hello world")
53
+ gen.update_file("output.txt", str(text).upper())
54
+ await gen.commit(name="Uppercase")
55
+ # Staged writes are committed when run() returns.
56
+
57
+ if __name__ == "__main__":
58
+ gen.main(run)
59
+ ```
60
+
61
+ Run a generator locally against a scratch workspace — with `COLLIMATE_IPC_PORT` unset the SDK runs in dev mode with an unrestricted grant, logging cell/chat operations instead of committing them:
62
+
63
+ ```bash
64
+ mkdir scratch && cd scratch
65
+ COLLIMATE_WORKSPACE=. python ../my_generator.py
66
+ ```
67
+
68
+ For tests, `collimate.testing.run_generator` runs a generator in-process and returns what it produced (see [`shared/docs/testing-generators.md`](shared/docs/testing-generators.md)).
69
+
70
+ Validate manifests with the shipped linter:
71
+
72
+ ```bash
73
+ collimate-lint content/generators content/renderers builtins
74
+ ```
75
+
76
+ See [`shared/docs/how-to-write-a-generator.md`](shared/docs/how-to-write-a-generator.md) for the full generator API.
77
+
78
+ ## Quick start — a renderer
79
+
80
+ ```tsx
81
+ import React from 'https://esm.sh/react@18?target=es2022';
82
+ import { defineRenderer, useCollimateFile } from '/api/sdk/react.js';
83
+
84
+ function TextEditor() {
85
+ const { content, saveContent, isReadOnly, fileName } = useCollimateFile();
86
+ // Native renderers run in Shadow DOM — use inline styles, not classes.
87
+ return (
88
+ <div style={{ height: '100%', padding: 16, boxSizing: 'border-box', display: 'flex', flexDirection: 'column' }}>
89
+ <h1>{fileName}</h1>
90
+ <textarea
91
+ value={content}
92
+ disabled={isReadOnly}
93
+ onChange={e => saveContent(e.target.value)}
94
+ style={{ flex: 1, width: '100%', resize: 'none' }}
95
+ />
96
+ </div>
97
+ );
98
+ }
99
+
100
+ export default defineRenderer({ component: TextEditor });
101
+ ```
102
+
103
+ See [`shared/docs/how-to-write-a-renderer.md`](shared/docs/how-to-write-a-renderer.md) for the full renderer API, including diff views and sibling-file loading.
104
+
105
+ ## What's in this repo
106
+
107
+ Paths are from the repository root.
108
+
109
+ | Path | Contents |
110
+ | -------------------------- | ------------------------------------------------------------------------------ |
111
+ | `sdk/src/collimate/` | The Python SDK (the `gen` runtime API, lint, testing; plumbing in `_host/`). |
112
+ | `sdk/shared/docs/` | Generator and renderer authoring guides. |
113
+ | `content/generators/` | The shipped generators (the Agent cell's `agent`; `git` for GitHub, GitLab and any Git server; `launch`; `web`), their named configs and shared cells. |
114
+ | `content/renderers/` | Optional cells a channel seeds: renderers (milkdown, monaco, excalidraw, image, table…) and the `.llm_summary` handler the Agent writes summaries with. |
115
+ | `content/suggested/` | Suggested channel setups (`<id>.json`: its generator, renderer and tutorial cells) and the tutorial cells. |
116
+ | `builtins/` | The app's built-in cells: the definition handlers, the live surfaces (run, chat, terminal, website, webview) and the text renderer. |
117
+ | `module-snapshot/` | The shipped renderers' frozen module graph, which the app's module mirror serves: `index.json` committed, its bodies (`modules/`) on the orphan branch `module-snapshot`. |
118
+
119
+ ## Shipping generators and renderers
120
+
121
+ The `content/` trees (`generators/`, `renderers/`, `suggested/`), `builtins/` and `module-snapshot/` ship in the app's `collimate` wheel, not in this one, as the package data `collimate_content/`, `collimate_builtins/` and `collimate_module_snapshot/`; the app reads them where they are installed, and a checkout reads the workspace trees in place. The host reads a tree's cells with the SDK's asset-tree reader: each parent folder is a cell, described by its optional `cell.yaml` (see [`src/collimate/_host/packaging/layout.py`](src/collimate/_host/packaging/layout.py)). A new channel starts from a suggestion: `suggested/*.json`, each naming the generator, renderer and tutorial cells it seeds as `[name, folder]` pairs (see [`src/collimate/_host/packaging/suggested.py`](src/collimate/_host/packaging/suggested.py)). A runner package inside a suggested generator cell is offered as a draft runner. Suggestions use `quick_fields` to identify inline controls by runner ID, for example `{"agent-chat": [{"account": "model"}]}`; omit runners without inline controls. No suggestion lists `builtins/`: the app serves its cells for every channel. The release is the wheel and sdist, built with `python -m build`.
122
+
123
+ ## Development
124
+
125
+ The SDK is the `sdk/` member of the [Collimate](https://github.com/mike-droptables/collimate) uv workspace, beside the app. From the repository root, with Node >=24.15.0 <25 and uv:
126
+
127
+ ```bash
128
+ bash build/prepare_sdk_checkout.sh # tooling: npm ci in sdk/scripts and sdk/packages/renderer-hooks,
129
+ # the built renderer runtime and verifier prelude, the compiler
130
+ # and verifier payloads (both Linux targets plus this host),
131
+ # uv sync --all-packages --all-groups, then the module
132
+ # snapshot's bodies (python3 build/snapshot_store.py fetch)
133
+ python3 scripts/generate.py --check # every committed generated file matches its source
134
+ uv run pytest sdk/tests -q
135
+ uv run ruff check sdk
136
+ ```
137
+
138
+ `scripts/generate.py` is the one command for generated files, and its `--check` is CI's first step. Its steps, in order, are the harness catalog, the runtime metadata, the skill references, the app's built-in list, the contracts, the toolchain pins, the mirror hosts, the app's constants and case-fold table, the renderer runtime and the verifier prelude, then four checks only: the native payloads, the module snapshot's bodies, its graph and the retired-token scan. The renderer runtime and the verifier prelude are build outputs, git-ignored: their committed manifests (`shared/renderer-runtime/index.json`, `shared/verify/prelude.json`) pin their sources and bytes, and the build hook and the preparation build them (`scripts/build_outputs.py`). The module snapshot's bodies are git-ignored too, stored on the orphan branch `module-snapshot`: after a freeze, `python3 build/snapshot_store.py publish` commits the new ones there, and the branch is pushed with main. After editing a source of any of them (a guide in `shared/docs`, a contract, a harness adapter, `packages/renderer-hooks`), `python3 scripts/generate.py` writes every step in order and then checks them all; `--only <step>` runs one and `--list` prints each step's commands. The preparation writes no committed file, so the check reads the tree as committed.
139
+
140
+ Preparation is explicit and verifies pinned archive/resource hashes; editable installs and build hooks never download or compile an engine. On Intel macOS, provision the prepared private payload from a published SDK wheel before the editable install, then rerun normal preparation to stage Linux payloads for containers:
141
+
142
+ ```bash
143
+ pip download --only-binary=:all: --no-deps --dest build/sdk-wheel collimate-sdk==0.1.0
144
+ python scripts/prepare_verifier_engine.py --from-sdk-wheel build/sdk-wheel/collimate_sdk-0.1.0-cp312-abi3-macosx_11_0_x86_64.whl
145
+ python scripts/prepare_verifier_engine.py
146
+ ```
147
+
148
+ For an unpublished candidate, use its CI-built wheel with the same command. Missing or mismatched payloads fail early with a preparation diagnostic. Only native release CI explicitly builds the missing Intel Mac binding from the pinned source; routine source setup never invokes that build. A complete source distribution contains all four prepared payloads and can assemble its host wheel without a native compiler or Node.
149
+
150
+ ## Contributing
151
+
152
+ Issues and pull requests are welcome.
153
+
154
+ Report security issues privately to <michael@collimate.dev> rather than filing them publicly.
155
+
156
+ ## License
157
+
158
+ MIT — see [`LICENSE`](LICENSE), a byte-identical copy of the repository's one license.
@@ -0,0 +1,134 @@
1
+ # Collimate SDK
2
+
3
+ [![PyPI](https://img.shields.io/pypi/v/collimate-sdk.svg)](https://pypi.org/project/collimate-sdk/)
4
+ [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
5
+ [![Python](https://img.shields.io/badge/python-3.12%2B-blue)](https://www.python.org/downloads/)
6
+
7
+ Build **generators** (Python scripts that read files, run logic, and write files — often with an LLM in the loop) and **renderers** (ES-module UIs that display those files) for the [Collimate](https://collimate.dev) platform.
8
+
9
+ The SDK handles the messy parts — workspace isolation, implicit commits, chat-history plumbing, progress reporting, lifecycle signals — so generators stay focused on logic and renderers stay focused on UI.
10
+
11
+ ## Install
12
+
13
+ ```bash
14
+ pip install collimate-sdk
15
+ ```
16
+
17
+ Requires ordinary GIL-enabled CPython 3.12+. Published wheels carry the private verifier binding for glibc Linux and macOS 11+ on x64 and ARM64; installation needs no C compiler or Xcode.
18
+
19
+ ## Quick start — a generator
20
+
21
+ The runtime API is a single top-level package, `gen`. The host sets it up before your `run()` is called — there is no class to instantiate and no `ctx` argument:
22
+
23
+ ```python
24
+ import gen
25
+
26
+ async def run():
27
+ files = {path: gen.read_file(path) for path in gen.list_files()} # this cell
28
+ text = files.get("input.txt", "hello world")
29
+ gen.update_file("output.txt", str(text).upper())
30
+ await gen.commit(name="Uppercase")
31
+ # Staged writes are committed when run() returns.
32
+
33
+ if __name__ == "__main__":
34
+ gen.main(run)
35
+ ```
36
+
37
+ Run a generator locally against a scratch workspace — with `COLLIMATE_IPC_PORT` unset the SDK runs in dev mode with an unrestricted grant, logging cell/chat operations instead of committing them:
38
+
39
+ ```bash
40
+ mkdir scratch && cd scratch
41
+ COLLIMATE_WORKSPACE=. python ../my_generator.py
42
+ ```
43
+
44
+ For tests, `collimate.testing.run_generator` runs a generator in-process and returns what it produced (see [`shared/docs/testing-generators.md`](shared/docs/testing-generators.md)).
45
+
46
+ Validate manifests with the shipped linter:
47
+
48
+ ```bash
49
+ collimate-lint content/generators content/renderers builtins
50
+ ```
51
+
52
+ See [`shared/docs/how-to-write-a-generator.md`](shared/docs/how-to-write-a-generator.md) for the full generator API.
53
+
54
+ ## Quick start — a renderer
55
+
56
+ ```tsx
57
+ import React from 'https://esm.sh/react@18?target=es2022';
58
+ import { defineRenderer, useCollimateFile } from '/api/sdk/react.js';
59
+
60
+ function TextEditor() {
61
+ const { content, saveContent, isReadOnly, fileName } = useCollimateFile();
62
+ // Native renderers run in Shadow DOM — use inline styles, not classes.
63
+ return (
64
+ <div style={{ height: '100%', padding: 16, boxSizing: 'border-box', display: 'flex', flexDirection: 'column' }}>
65
+ <h1>{fileName}</h1>
66
+ <textarea
67
+ value={content}
68
+ disabled={isReadOnly}
69
+ onChange={e => saveContent(e.target.value)}
70
+ style={{ flex: 1, width: '100%', resize: 'none' }}
71
+ />
72
+ </div>
73
+ );
74
+ }
75
+
76
+ export default defineRenderer({ component: TextEditor });
77
+ ```
78
+
79
+ See [`shared/docs/how-to-write-a-renderer.md`](shared/docs/how-to-write-a-renderer.md) for the full renderer API, including diff views and sibling-file loading.
80
+
81
+ ## What's in this repo
82
+
83
+ Paths are from the repository root.
84
+
85
+ | Path | Contents |
86
+ | -------------------------- | ------------------------------------------------------------------------------ |
87
+ | `sdk/src/collimate/` | The Python SDK (the `gen` runtime API, lint, testing; plumbing in `_host/`). |
88
+ | `sdk/shared/docs/` | Generator and renderer authoring guides. |
89
+ | `content/generators/` | The shipped generators (the Agent cell's `agent`; `git` for GitHub, GitLab and any Git server; `launch`; `web`), their named configs and shared cells. |
90
+ | `content/renderers/` | Optional cells a channel seeds: renderers (milkdown, monaco, excalidraw, image, table…) and the `.llm_summary` handler the Agent writes summaries with. |
91
+ | `content/suggested/` | Suggested channel setups (`<id>.json`: its generator, renderer and tutorial cells) and the tutorial cells. |
92
+ | `builtins/` | The app's built-in cells: the definition handlers, the live surfaces (run, chat, terminal, website, webview) and the text renderer. |
93
+ | `module-snapshot/` | The shipped renderers' frozen module graph, which the app's module mirror serves: `index.json` committed, its bodies (`modules/`) on the orphan branch `module-snapshot`. |
94
+
95
+ ## Shipping generators and renderers
96
+
97
+ The `content/` trees (`generators/`, `renderers/`, `suggested/`), `builtins/` and `module-snapshot/` ship in the app's `collimate` wheel, not in this one, as the package data `collimate_content/`, `collimate_builtins/` and `collimate_module_snapshot/`; the app reads them where they are installed, and a checkout reads the workspace trees in place. The host reads a tree's cells with the SDK's asset-tree reader: each parent folder is a cell, described by its optional `cell.yaml` (see [`src/collimate/_host/packaging/layout.py`](src/collimate/_host/packaging/layout.py)). A new channel starts from a suggestion: `suggested/*.json`, each naming the generator, renderer and tutorial cells it seeds as `[name, folder]` pairs (see [`src/collimate/_host/packaging/suggested.py`](src/collimate/_host/packaging/suggested.py)). A runner package inside a suggested generator cell is offered as a draft runner. Suggestions use `quick_fields` to identify inline controls by runner ID, for example `{"agent-chat": [{"account": "model"}]}`; omit runners without inline controls. No suggestion lists `builtins/`: the app serves its cells for every channel. The release is the wheel and sdist, built with `python -m build`.
98
+
99
+ ## Development
100
+
101
+ The SDK is the `sdk/` member of the [Collimate](https://github.com/mike-droptables/collimate) uv workspace, beside the app. From the repository root, with Node >=24.15.0 <25 and uv:
102
+
103
+ ```bash
104
+ bash build/prepare_sdk_checkout.sh # tooling: npm ci in sdk/scripts and sdk/packages/renderer-hooks,
105
+ # the built renderer runtime and verifier prelude, the compiler
106
+ # and verifier payloads (both Linux targets plus this host),
107
+ # uv sync --all-packages --all-groups, then the module
108
+ # snapshot's bodies (python3 build/snapshot_store.py fetch)
109
+ python3 scripts/generate.py --check # every committed generated file matches its source
110
+ uv run pytest sdk/tests -q
111
+ uv run ruff check sdk
112
+ ```
113
+
114
+ `scripts/generate.py` is the one command for generated files, and its `--check` is CI's first step. Its steps, in order, are the harness catalog, the runtime metadata, the skill references, the app's built-in list, the contracts, the toolchain pins, the mirror hosts, the app's constants and case-fold table, the renderer runtime and the verifier prelude, then four checks only: the native payloads, the module snapshot's bodies, its graph and the retired-token scan. The renderer runtime and the verifier prelude are build outputs, git-ignored: their committed manifests (`shared/renderer-runtime/index.json`, `shared/verify/prelude.json`) pin their sources and bytes, and the build hook and the preparation build them (`scripts/build_outputs.py`). The module snapshot's bodies are git-ignored too, stored on the orphan branch `module-snapshot`: after a freeze, `python3 build/snapshot_store.py publish` commits the new ones there, and the branch is pushed with main. After editing a source of any of them (a guide in `shared/docs`, a contract, a harness adapter, `packages/renderer-hooks`), `python3 scripts/generate.py` writes every step in order and then checks them all; `--only <step>` runs one and `--list` prints each step's commands. The preparation writes no committed file, so the check reads the tree as committed.
115
+
116
+ Preparation is explicit and verifies pinned archive/resource hashes; editable installs and build hooks never download or compile an engine. On Intel macOS, provision the prepared private payload from a published SDK wheel before the editable install, then rerun normal preparation to stage Linux payloads for containers:
117
+
118
+ ```bash
119
+ pip download --only-binary=:all: --no-deps --dest build/sdk-wheel collimate-sdk==0.1.0
120
+ python scripts/prepare_verifier_engine.py --from-sdk-wheel build/sdk-wheel/collimate_sdk-0.1.0-cp312-abi3-macosx_11_0_x86_64.whl
121
+ python scripts/prepare_verifier_engine.py
122
+ ```
123
+
124
+ For an unpublished candidate, use its CI-built wheel with the same command. Missing or mismatched payloads fail early with a preparation diagnostic. Only native release CI explicitly builds the missing Intel Mac binding from the pinned source; routine source setup never invokes that build. A complete source distribution contains all four prepared payloads and can assemble its host wheel without a native compiler or Node.
125
+
126
+ ## Contributing
127
+
128
+ Issues and pull requests are welcome.
129
+
130
+ Report security issues privately to <michael@collimate.dev> rather than filing them publicly.
131
+
132
+ ## License
133
+
134
+ MIT — see [`LICENSE`](LICENSE), a byte-identical copy of the repository's one license.
@@ -0,0 +1,99 @@
1
+ Third-Party Licenses
2
+ ====================
3
+
4
+ This project makes use of the following open source packages. Their licenses
5
+ are reproduced at the linked upstream locations.
6
+
7
+ -------------------------------------------------------------------------------
8
+
9
+ RUNTIME DEPENDENCIES
10
+ ====================
11
+
12
+ pydantic
13
+ License: MIT
14
+ https://github.com/pydantic/pydantic
15
+
16
+ pyyaml
17
+ License: MIT
18
+ https://github.com/yaml/pyyaml
19
+
20
+ -------------------------------------------------------------------------------
21
+
22
+ DEV DEPENDENCIES
23
+ ================
24
+
25
+ pytest
26
+ License: MIT
27
+ https://github.com/pytest-dev/pytest
28
+
29
+ ruff
30
+ License: MIT
31
+ https://github.com/astral-sh/ruff
32
+
33
+ build (pypa/build)
34
+ License: MIT
35
+ https://github.com/pypa/build
36
+
37
+ hatchling (build backend, declared in [build-system])
38
+ License: MIT
39
+ https://github.com/pypa/hatch
40
+
41
+ -------------------------------------------------------------------------------
42
+
43
+ BUNDLED GENERATORS — INLINE DEPENDENCIES
44
+ ========================================
45
+
46
+ The generators under generators/ each declare their own inline runtime
47
+ dependencies via PEP-723 metadata in the entrypoint script's
48
+ # /// script header. The generators install these on first run (via uv) —
49
+ they do not ship inside the SDK wheel. The complete list across the bundled
50
+ generators:
51
+
52
+ pyyaml
53
+ License: MIT
54
+ https://github.com/yaml/pyyaml
55
+
56
+ google-genai
57
+ License: Apache-2.0
58
+ https://github.com/googleapis/python-genai
59
+
60
+ anthropic
61
+ License: MIT
62
+ https://github.com/anthropics/anthropic-sdk-python
63
+
64
+ docker (docker-py)
65
+ License: Apache-2.0
66
+ https://github.com/docker/docker-py
67
+
68
+ -------------------------------------------------------------------------------
69
+
70
+ BUNDLED RENDERERS — RUNTIME (CDN-LOADED)
71
+ ========================================
72
+
73
+ The renderers under renderers/ and builtin/ load their heavy libraries from public CDNs
74
+ (https://esm.sh/…, jsdelivr) at runtime rather than vendoring them. The SDK
75
+ neither modifies nor redistributes their source. A user-friendly list with
76
+ upstream links lives in renderers/CREDITS.md; notable components:
77
+
78
+ Monaco Editor Microsoft MIT
79
+ Milkdown / Crepe Milkdown community MIT
80
+ Excalidraw Excalidraw Authors MIT
81
+ Mermaid Mermaid contributors MIT
82
+ KaTeX KaTeX contributors MIT
83
+ React, ReactDOM Facebook / Meta MIT
84
+
85
+ See renderers/CREDITS.md for the full list with repository URLs and
86
+ manifest entries.
87
+
88
+ -------------------------------------------------------------------------------
89
+
90
+ NOTES ON COMPATIBILITY
91
+ ======================
92
+
93
+ All direct and bundled-generator dependencies listed above are permissive
94
+ (MIT / BSD / Apache-2.0). The SDK itself is Apache-2.0. No GPL, AGPL, LGPL,
95
+ or MPL components are shipped in the wheel. CDN-loaded renderer components
96
+ retain their own licenses at the consumer's end — they are not bundled
97
+ into the SDK distribution.
98
+
99
+ -------------------------------------------------------------------------------
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2020 Evan Wallace
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,3 @@
1
+ # esbuild
2
+
3
+ This is the macOS ARM 64-bit binary for esbuild, a JavaScript bundler and minifier. See https://github.com/evanw/esbuild for details.
@@ -0,0 +1,3 @@
1
+ # esbuild
2
+
3
+ This is the macOS 64-bit binary for esbuild, a JavaScript bundler and minifier. See https://github.com/evanw/esbuild for details.
@@ -0,0 +1,3 @@
1
+ # esbuild
2
+
3
+ This is the Linux ARM 64-bit binary for esbuild, a JavaScript bundler and minifier. See https://github.com/evanw/esbuild for details.
@@ -0,0 +1,3 @@
1
+ # esbuild
2
+
3
+ This is the Linux 64-bit binary for esbuild, a JavaScript bundler and minifier. See https://github.com/evanw/esbuild for details.
@@ -0,0 +1,26 @@
1
+ {
2
+ "schema": 1,
3
+ "targets": {
4
+ "darwin-arm64": {
5
+ "file": "darwin-arm64/esbuild",
6
+ "integrity": "sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==",
7
+ "sha256": "10b6243df618d374bb2d5c9cfbe7052e1405f6aa4e53a6164f11a91b9f2e1384"
8
+ },
9
+ "darwin-x64": {
10
+ "file": "darwin-x64/esbuild",
11
+ "integrity": "sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==",
12
+ "sha256": "7fe5c9c905fff0a05d92db98929434ab4d3b6dd92d7a7688922db74380c75df3"
13
+ },
14
+ "linux-arm64": {
15
+ "file": "linux-arm64/esbuild",
16
+ "integrity": "sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==",
17
+ "sha256": "90bd269553d258e80b19e3ccab4f98f0831f87442a2f056510ce24fd1b425fc2"
18
+ },
19
+ "linux-x64": {
20
+ "file": "linux-x64/esbuild",
21
+ "integrity": "sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==",
22
+ "sha256": "e1698a3d5c6c0798fee4fd3b5cc816651f460c63d390a7a26ea4beb0b1884100"
23
+ }
24
+ },
25
+ "version": "0.28.2"
26
+ }
@@ -0,0 +1,30 @@
1
+ # SPDX-License-Identifier: MIT
2
+ """Repo-wide pytest setup, shared by ``tests/`` and ``tests_live/``."""
3
+ from __future__ import annotations
4
+
5
+ import os
6
+ from pathlib import Path
7
+
8
+ import pytest
9
+
10
+ # Test scratch goes to the repo's git-ignored ``tmp/``, not the machine's
11
+ # /tmp (often a small RAM-backed tmpfs). Pytest still numbers its runs and
12
+ # keeps only the last three there, so concurrent suites stay safe.
13
+ _TEMPROOT = Path(__file__).resolve().parent / "tmp"
14
+ _TEMPROOT.mkdir(exist_ok=True)
15
+ os.environ.setdefault("PYTEST_DEBUG_TEMPROOT", str(_TEMPROOT))
16
+
17
+
18
+ @pytest.fixture
19
+ def native_bridge(tmp_path):
20
+ """Bind a host-free bridge for either suite, then clear and close it."""
21
+ from collimate import native
22
+ from collimate.testing import make_test_bridge
23
+
24
+ bridge = make_test_bridge(tmp_path)
25
+ native.set_bridge(bridge)
26
+ try:
27
+ yield bridge
28
+ finally:
29
+ native._clear_bridge()
30
+ bridge.close()