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.
- collimate_sdk-0.1.0/.gitignore +72 -0
- collimate_sdk-0.1.0/AUTHORS +12 -0
- collimate_sdk-0.1.0/LICENSE +21 -0
- collimate_sdk-0.1.0/PKG-INFO +158 -0
- collimate_sdk-0.1.0/README.md +134 -0
- collimate_sdk-0.1.0/THIRD_PARTY_LICENSES +99 -0
- collimate_sdk-0.1.0/build/renderer_compilers/LICENSE.esbuild +21 -0
- collimate_sdk-0.1.0/build/renderer_compilers/darwin-arm64/README.md +3 -0
- collimate_sdk-0.1.0/build/renderer_compilers/darwin-arm64/esbuild +0 -0
- collimate_sdk-0.1.0/build/renderer_compilers/darwin-x64/README.md +3 -0
- collimate_sdk-0.1.0/build/renderer_compilers/darwin-x64/esbuild +0 -0
- collimate_sdk-0.1.0/build/renderer_compilers/linux-arm64/README.md +3 -0
- collimate_sdk-0.1.0/build/renderer_compilers/linux-arm64/esbuild +0 -0
- collimate_sdk-0.1.0/build/renderer_compilers/linux-x64/README.md +3 -0
- collimate_sdk-0.1.0/build/renderer_compilers/linux-x64/esbuild +0 -0
- collimate_sdk-0.1.0/build/renderer_compilers/manifest.json +26 -0
- collimate_sdk-0.1.0/conftest.py +30 -0
- collimate_sdk-0.1.0/hatch_build.py +46 -0
- collimate_sdk-0.1.0/native-payloads/native-darwin-arm64/LICENSE.quickjs-engine +346 -0
- collimate_sdk-0.1.0/native-payloads/native-darwin-arm64/LICENSE.quickjs-ng +21 -0
- collimate_sdk-0.1.0/native-payloads/native-darwin-arm64/manifest.json +13 -0
- collimate_sdk-0.1.0/native-payloads/native-darwin-x64/LICENSE.quickjs-engine +346 -0
- collimate_sdk-0.1.0/native-payloads/native-darwin-x64/LICENSE.quickjs-ng +21 -0
- collimate_sdk-0.1.0/native-payloads/native-darwin-x64/manifest.json +13 -0
- collimate_sdk-0.1.0/native-payloads/native-linux-arm64/LICENSE.quickjs-engine +346 -0
- collimate_sdk-0.1.0/native-payloads/native-linux-arm64/LICENSE.quickjs-ng +21 -0
- collimate_sdk-0.1.0/native-payloads/native-linux-arm64/manifest.json +13 -0
- collimate_sdk-0.1.0/native-payloads/native-linux-x64/LICENSE.quickjs-engine +346 -0
- collimate_sdk-0.1.0/native-payloads/native-linux-x64/LICENSE.quickjs-ng +21 -0
- collimate_sdk-0.1.0/native-payloads/native-linux-x64/manifest.json +13 -0
- collimate_sdk-0.1.0/packages/renderer-hooks/.gitignore +3 -0
- collimate_sdk-0.1.0/packages/renderer-hooks/README.md +265 -0
- collimate_sdk-0.1.0/packages/renderer-hooks/package-lock.json +1548 -0
- collimate_sdk-0.1.0/packages/renderer-hooks/package.json +65 -0
- collimate_sdk-0.1.0/packages/renderer-hooks/platform.d.ts +117 -0
- collimate_sdk-0.1.0/packages/renderer-hooks/src/color.ts +69 -0
- collimate_sdk-0.1.0/packages/renderer-hooks/src/document-view.tsx +710 -0
- collimate_sdk-0.1.0/packages/renderer-hooks/src/index.tsx +679 -0
- collimate_sdk-0.1.0/packages/renderer-hooks/src/media.tsx +86 -0
- collimate_sdk-0.1.0/packages/renderer-hooks/src/mirror.ts +31 -0
- collimate_sdk-0.1.0/packages/renderer-hooks/src/platform.tsx +225 -0
- collimate_sdk-0.1.0/packages/renderer-hooks/src/runtime.tsx +19 -0
- collimate_sdk-0.1.0/packages/renderer-hooks/src/session.ts +251 -0
- collimate_sdk-0.1.0/packages/renderer-hooks/src/style-control.tsx +453 -0
- collimate_sdk-0.1.0/packages/renderer-hooks/src/syntax.ts +226 -0
- collimate_sdk-0.1.0/packages/renderer-hooks/src/types.ts +596 -0
- collimate_sdk-0.1.0/packages/renderer-hooks/tsconfig.json +23 -0
- collimate_sdk-0.1.0/pyproject.toml +114 -0
- collimate_sdk-0.1.0/scripts/build_outputs.py +92 -0
- collimate_sdk-0.1.0/scripts/build_renderer_runtime.mjs +96 -0
- collimate_sdk-0.1.0/scripts/build_snapshot_codecs.mjs +58 -0
- collimate_sdk-0.1.0/scripts/build_verify_prelude.mjs +63 -0
- collimate_sdk-0.1.0/scripts/bundle_renderer_test.mjs +209 -0
- collimate_sdk-0.1.0/scripts/check_native_wheels.py +103 -0
- collimate_sdk-0.1.0/scripts/esbuild-LICENSE.md +21 -0
- collimate_sdk-0.1.0/scripts/esm_lexer_oracle.mjs +52 -0
- collimate_sdk-0.1.0/scripts/package-lock.json +3106 -0
- collimate_sdk-0.1.0/scripts/package.json +27 -0
- collimate_sdk-0.1.0/scripts/prepare_renderer_compilers.py +115 -0
- collimate_sdk-0.1.0/scripts/prepare_verifier_engine.py +247 -0
- collimate_sdk-0.1.0/scripts/prove_native_verifier.py +58 -0
- collimate_sdk-0.1.0/scripts/renderer_bundle.mjs +75 -0
- collimate_sdk-0.1.0/scripts/renderer_bundle_core.d.mts +25 -0
- collimate_sdk-0.1.0/scripts/renderer_bundle_core.mjs +132 -0
- collimate_sdk-0.1.0/scripts/scan_retired_tokens.py +105 -0
- collimate_sdk-0.1.0/scripts/snapshot-codecs/embed-markdown.ts +242 -0
- collimate_sdk-0.1.0/scripts/snapshot-codecs/milkdown.ts +76 -0
- collimate_sdk-0.1.0/scripts/snapshot-codecs/snapshot-model.ts +36 -0
- collimate_sdk-0.1.0/scripts/sync_contracts.py +218 -0
- collimate_sdk-0.1.0/scripts/sync_distribution_metadata.py +46 -0
- collimate_sdk-0.1.0/scripts/sync_harness_catalog.py +214 -0
- collimate_sdk-0.1.0/scripts/sync_mirror_hosts.py +134 -0
- collimate_sdk-0.1.0/scripts/sync_skill_references.py +142 -0
- collimate_sdk-0.1.0/scripts/sync_toolchain.py +254 -0
- collimate_sdk-0.1.0/shared/contracts/channel-events.json +226 -0
- collimate_sdk-0.1.0/shared/contracts/channel-events.schema.json +505 -0
- collimate_sdk-0.1.0/shared/contracts/ipc-ops.json +165 -0
- collimate_sdk-0.1.0/shared/contracts/toolchain.json +8 -0
- collimate_sdk-0.1.0/shared/definition-packages-contract.json +128 -0
- collimate_sdk-0.1.0/shared/docs/README.md +26 -0
- collimate_sdk-0.1.0/shared/docs/agent-runtime.md +240 -0
- collimate_sdk-0.1.0/shared/docs/api-reference.md +229 -0
- collimate_sdk-0.1.0/shared/docs/authoring-best-practices.md +205 -0
- collimate_sdk-0.1.0/shared/docs/collimate-overview.md +159 -0
- collimate_sdk-0.1.0/shared/docs/generic-surface-design.md +79 -0
- collimate_sdk-0.1.0/shared/docs/how-to-write-a-generator.md +308 -0
- collimate_sdk-0.1.0/shared/docs/how-to-write-a-handler.md +116 -0
- collimate_sdk-0.1.0/shared/docs/how-to-write-a-renderer.md +2224 -0
- collimate_sdk-0.1.0/shared/docs/how-to-write-a-runner.md +213 -0
- collimate_sdk-0.1.0/shared/docs/how-to-write-a-verifier.md +60 -0
- collimate_sdk-0.1.0/shared/docs/how-to-write-options.md +53 -0
- collimate_sdk-0.1.0/shared/docs/interface.md +144 -0
- collimate_sdk-0.1.0/shared/docs/testing-generators.md +77 -0
- collimate_sdk-0.1.0/shared/docs/why-collimate.md +88 -0
- collimate_sdk-0.1.0/shared/egress-addresses.json +78 -0
- collimate_sdk-0.1.0/shared/empty-values-contract.json +52 -0
- collimate_sdk-0.1.0/shared/options-stack-contract.json +5 -0
- collimate_sdk-0.1.0/shared/permissions-contract.json +10 -0
- collimate_sdk-0.1.0/shared/renderer-runtime/common.json +1 -0
- collimate_sdk-0.1.0/shared/renderer-runtime/index.json +32 -0
- collimate_sdk-0.1.0/shared/renderer-runtime/react.js +1600 -0
- collimate_sdk-0.1.0/shared/renderer-runtime/session.js +199 -0
- collimate_sdk-0.1.0/shared/renderer-runtime/snapshot-codecs.json +9 -0
- collimate_sdk-0.1.0/shared/retired-names.json +430 -0
- collimate_sdk-0.1.0/shared/run-path-contract.json +24 -0
- collimate_sdk-0.1.0/shared/set-yaml-conditions-contract.json +189 -0
- collimate_sdk-0.1.0/shared/set-yaml-resolution-contract.json +10 -0
- collimate_sdk-0.1.0/shared/verify/definition-schemas.json +571 -0
- collimate_sdk-0.1.0/shared/verify/definition_checks.ts +149 -0
- collimate_sdk-0.1.0/shared/verify/dependency-licenses.txt +232 -0
- collimate_sdk-0.1.0/shared/verify/prelude.js +16487 -0
- collimate_sdk-0.1.0/shared/verify/prelude.json +15 -0
- collimate_sdk-0.1.0/shared/verify/prelude.ts +58 -0
- collimate_sdk-0.1.0/shared/verify/renderer-schemas.json +9 -0
- collimate_sdk-0.1.0/shared/verify/renderer_shape.ts +266 -0
- collimate_sdk-0.1.0/src/collimate/__init__.py +79 -0
- collimate_sdk-0.1.0/src/collimate/_compiler_child.py +22 -0
- collimate_sdk-0.1.0/src/collimate/_esbuild_service.py +353 -0
- collimate_sdk-0.1.0/src/collimate/_host/__init__.py +22 -0
- collimate_sdk-0.1.0/src/collimate/_host/bridge.py +1388 -0
- collimate_sdk-0.1.0/src/collimate/_host/channel_events.py +190 -0
- collimate_sdk-0.1.0/src/collimate/_host/esm_lexer.py +1187 -0
- collimate_sdk-0.1.0/src/collimate/_host/ipc.py +168 -0
- collimate_sdk-0.1.0/src/collimate/_host/module_bump.py +616 -0
- collimate_sdk-0.1.0/src/collimate/_host/module_mirror.py +1261 -0
- collimate_sdk-0.1.0/src/collimate/_host/package_hash.py +13 -0
- collimate_sdk-0.1.0/src/collimate/_host/packaging/__init__.py +41 -0
- collimate_sdk-0.1.0/src/collimate/_host/packaging/asset_cells.py +191 -0
- collimate_sdk-0.1.0/src/collimate/_host/packaging/layout.py +146 -0
- collimate_sdk-0.1.0/src/collimate/_host/packaging/models.py +32 -0
- collimate_sdk-0.1.0/src/collimate/_host/packaging/suggested.py +203 -0
- collimate_sdk-0.1.0/src/collimate/_host/renderer_bundle.py +311 -0
- collimate_sdk-0.1.0/src/collimate/_host/verification.py +139 -0
- collimate_sdk-0.1.0/src/collimate/_host/verifier_engine.py +104 -0
- collimate_sdk-0.1.0/src/collimate/_mirror.py +488 -0
- collimate_sdk-0.1.0/src/collimate/_renderer_compilers.py +35 -0
- collimate_sdk-0.1.0/src/collimate/_results.py +312 -0
- collimate_sdk-0.1.0/src/collimate/_sdk_metadata/METADATA +158 -0
- collimate_sdk-0.1.0/src/collimate/_workspace.py +500 -0
- collimate_sdk-0.1.0/src/collimate/account_taxonomy.py +492 -0
- collimate_sdk-0.1.0/src/collimate/config_values.py +556 -0
- collimate_sdk-0.1.0/src/collimate/definitions.py +97 -0
- collimate_sdk-0.1.0/src/collimate/fs.py +202 -0
- collimate_sdk-0.1.0/src/collimate/git_hosts.py +370 -0
- collimate_sdk-0.1.0/src/collimate/handlers.py +220 -0
- collimate_sdk-0.1.0/src/collimate/harness_catalog.py +376 -0
- collimate_sdk-0.1.0/src/collimate/harness_placement.py +333 -0
- collimate_sdk-0.1.0/src/collimate/host_harness.py +167 -0
- collimate_sdk-0.1.0/src/collimate/lint/__init__.py +80 -0
- collimate_sdk-0.1.0/src/collimate/lint/__main__.py +5 -0
- collimate_sdk-0.1.0/src/collimate/lint/cli.py +84 -0
- collimate_sdk-0.1.0/src/collimate/lint/conditions.py +574 -0
- collimate_sdk-0.1.0/src/collimate/lint/core.py +1852 -0
- collimate_sdk-0.1.0/src/collimate/module_mirror_contract.json +16 -0
- collimate_sdk-0.1.0/src/collimate/native.py +2702 -0
- collimate_sdk-0.1.0/src/collimate/native_verifier/darwin-arm64/LICENSE.quickjs-engine +346 -0
- collimate_sdk-0.1.0/src/collimate/native_verifier/darwin-arm64/LICENSE.quickjs-ng +21 -0
- collimate_sdk-0.1.0/src/collimate/native_verifier/darwin-arm64/_quickjs.abi3.so +0 -0
- collimate_sdk-0.1.0/src/collimate/native_verifier/darwin-arm64/manifest.json +13 -0
- collimate_sdk-0.1.0/src/collimate/native_verifier/darwin-x64/LICENSE.quickjs-engine +346 -0
- collimate_sdk-0.1.0/src/collimate/native_verifier/darwin-x64/LICENSE.quickjs-ng +21 -0
- collimate_sdk-0.1.0/src/collimate/native_verifier/darwin-x64/_quickjs.abi3.so +0 -0
- collimate_sdk-0.1.0/src/collimate/native_verifier/darwin-x64/manifest.json +13 -0
- collimate_sdk-0.1.0/src/collimate/native_verifier/linux-arm64/LICENSE.quickjs-engine +346 -0
- collimate_sdk-0.1.0/src/collimate/native_verifier/linux-arm64/LICENSE.quickjs-ng +21 -0
- collimate_sdk-0.1.0/src/collimate/native_verifier/linux-arm64/_quickjs.abi3.so +0 -0
- collimate_sdk-0.1.0/src/collimate/native_verifier/linux-arm64/manifest.json +13 -0
- collimate_sdk-0.1.0/src/collimate/native_verifier/linux-x64/LICENSE.quickjs-engine +346 -0
- collimate_sdk-0.1.0/src/collimate/native_verifier/linux-x64/LICENSE.quickjs-ng +21 -0
- collimate_sdk-0.1.0/src/collimate/native_verifier/linux-x64/_quickjs.abi3.so +0 -0
- collimate_sdk-0.1.0/src/collimate/native_verifier/linux-x64/manifest.json +13 -0
- collimate_sdk-0.1.0/src/collimate/options_stack.py +224 -0
- collimate_sdk-0.1.0/src/collimate/permissions.py +171 -0
- collimate_sdk-0.1.0/src/collimate/pointers.py +268 -0
- collimate_sdk-0.1.0/src/collimate/providers.py +110 -0
- collimate_sdk-0.1.0/src/collimate/renderer_bundle_contract.json +36 -0
- collimate_sdk-0.1.0/src/collimate/renderer_runtime.py +63 -0
- collimate_sdk-0.1.0/src/collimate/shared.py +98 -0
- collimate_sdk-0.1.0/src/collimate/surfaces.py +93 -0
- collimate_sdk-0.1.0/src/collimate/testing/__init__.py +555 -0
- collimate_sdk-0.1.0/src/collimate/testing/_bridge.py +974 -0
- collimate_sdk-0.1.0/src/collimate/testing/forward.py +346 -0
- collimate_sdk-0.1.0/src/collimate/transcript.py +266 -0
- collimate_sdk-0.1.0/src/collimate/verifier_engine_contract.json +60 -0
- collimate_sdk-0.1.0/src/collimate/wire.py +48 -0
- collimate_sdk-0.1.0/src/gen/__init__.py +35 -0
- collimate_sdk-0.1.0/src/gen/session.py +36 -0
- collimate_sdk-0.1.0/tests/__init__.py +0 -0
- collimate_sdk-0.1.0/tests/_agent_run.py +28 -0
- collimate_sdk-0.1.0/tests/_commands_matrix.py +150 -0
- collimate_sdk-0.1.0/tests/_document_view_hooks.py +215 -0
- collimate_sdk-0.1.0/tests/_git_fixtures.py +451 -0
- collimate_sdk-0.1.0/tests/_import_walk.py +140 -0
- collimate_sdk-0.1.0/tests/_node_renderer.py +61 -0
- collimate_sdk-0.1.0/tests/_ssh_keys.py +95 -0
- collimate_sdk-0.1.0/tests/_workspace.py +13 -0
- collimate_sdk-0.1.0/tests/conftest.py +174 -0
- collimate_sdk-0.1.0/tests/data/acp_registry/README.md +45 -0
- collimate_sdk-0.1.0/tests/data/acp_registry/agents.json +356 -0
- collimate_sdk-0.1.0/tests/data/acp_registry/protocol-matrix.json +2493 -0
- collimate_sdk-0.1.0/tests/data/acp_registry/quarantine.json +9 -0
- collimate_sdk-0.1.0/tests/data/fake_ssh.py +101 -0
- collimate_sdk-0.1.0/tests/data/ssh_keys/ed25519_putty.txt +9 -0
- collimate_sdk-0.1.0/tests/fixtures/esm_lexer_unit_sources.json +223 -0
- collimate_sdk-0.1.0/tests/fixtures/excalidraw-0.18.1-index.css +1 -0
- collimate_sdk-0.1.0/tests/fixtures/milkdown-snapshots.json +2468 -0
- collimate_sdk-0.1.0/tests/test_account_runtime_contract.py +86 -0
- collimate_sdk-0.1.0/tests/test_account_taxonomy.py +281 -0
- collimate_sdk-0.1.0/tests/test_acp_capture_observer_D23.py +1224 -0
- collimate_sdk-0.1.0/tests/test_acp_client.py +6562 -0
- collimate_sdk-0.1.0/tests/test_acp_transport_cleanup_P4F34.py +194 -0
- collimate_sdk-0.1.0/tests/test_adapter_artifacts.py +164 -0
- collimate_sdk-0.1.0/tests/test_added_handler_skills.py +93 -0
- collimate_sdk-0.1.0/tests/test_agent_accounts.py +690 -0
- collimate_sdk-0.1.0/tests/test_agent_annotation.py +1081 -0
- collimate_sdk-0.1.0/tests/test_agent_chat_multimodal.py +35 -0
- collimate_sdk-0.1.0/tests/test_agent_deps.py +92 -0
- collimate_sdk-0.1.0/tests/test_agent_engine.py +1370 -0
- collimate_sdk-0.1.0/tests/test_agent_entrypoint.py +2289 -0
- collimate_sdk-0.1.0/tests/test_agent_generators.py +306 -0
- collimate_sdk-0.1.0/tests/test_agent_grants.py +170 -0
- collimate_sdk-0.1.0/tests/test_agent_handler_tools.py +84 -0
- collimate_sdk-0.1.0/tests/test_agent_isolated_startup.py +15 -0
- collimate_sdk-0.1.0/tests/test_agent_matrix.py +597 -0
- collimate_sdk-0.1.0/tests/test_agent_mcp_file_tools.py +83 -0
- collimate_sdk-0.1.0/tests/test_agent_mcp_protocol.py +126 -0
- collimate_sdk-0.1.0/tests/test_agent_multimodal.py +89 -0
- collimate_sdk-0.1.0/tests/test_agent_runtime.py +461 -0
- collimate_sdk-0.1.0/tests/test_agent_schema_grants.py +40 -0
- collimate_sdk-0.1.0/tests/test_agent_tool_owners.py +30 -0
- collimate_sdk-0.1.0/tests/test_agent_validation_errors.py +89 -0
- collimate_sdk-0.1.0/tests/test_agent_workspace_tools.py +909 -0
- collimate_sdk-0.1.0/tests/test_agy_hook.py +178 -0
- collimate_sdk-0.1.0/tests/test_annotations.py +721 -0
- collimate_sdk-0.1.0/tests/test_antigravity_prepare.py +458 -0
- collimate_sdk-0.1.0/tests/test_antigravity_terminal_context.py +289 -0
- collimate_sdk-0.1.0/tests/test_ask.py +419 -0
- collimate_sdk-0.1.0/tests/test_asset_cells.py +216 -0
- collimate_sdk-0.1.0/tests/test_asset_protocol_ownership.py +82 -0
- collimate_sdk-0.1.0/tests/test_assistant_chat_queue.py +196 -0
- collimate_sdk-0.1.0/tests/test_assistant_runtime_contract.py +127 -0
- collimate_sdk-0.1.0/tests/test_assistant_transcript.py +30 -0
- collimate_sdk-0.1.0/tests/test_backend_antigravity.py +1057 -0
- collimate_sdk-0.1.0/tests/test_backend_claude_terminal.py +669 -0
- collimate_sdk-0.1.0/tests/test_backend_cline.py +827 -0
- collimate_sdk-0.1.0/tests/test_backend_codex.py +525 -0
- collimate_sdk-0.1.0/tests/test_backend_copilot.py +172 -0
- collimate_sdk-0.1.0/tests/test_backend_goose.py +863 -0
- collimate_sdk-0.1.0/tests/test_backend_hermes.py +195 -0
- collimate_sdk-0.1.0/tests/test_backend_opencode.py +933 -0
- collimate_sdk-0.1.0/tests/test_backend_pi.py +539 -0
- collimate_sdk-0.1.0/tests/test_backend_qwen.py +400 -0
- collimate_sdk-0.1.0/tests/test_backend_vibe.py +192 -0
- collimate_sdk-0.1.0/tests/test_binary_files.py +33 -0
- collimate_sdk-0.1.0/tests/test_builtin_tree.py +102 -0
- collimate_sdk-0.1.0/tests/test_capability_registry.py +221 -0
- collimate_sdk-0.1.0/tests/test_cell_attach.py +105 -0
- collimate_sdk-0.1.0/tests/test_cell_caps.py +173 -0
- collimate_sdk-0.1.0/tests/test_changed_file_callbacks.py +52 -0
- collimate_sdk-0.1.0/tests/test_channel_events.py +87 -0
- collimate_sdk-0.1.0/tests/test_chat_renderer_vocabulary.py +55 -0
- collimate_sdk-0.1.0/tests/test_chat_vocabulary.py +42 -0
- collimate_sdk-0.1.0/tests/test_claude_antigravity_generator_capture_oracle.py +437 -0
- collimate_sdk-0.1.0/tests/test_claude_terminal_context.py +462 -0
- collimate_sdk-0.1.0/tests/test_cli_container.py +370 -0
- collimate_sdk-0.1.0/tests/test_cli_host.py +125 -0
- collimate_sdk-0.1.0/tests/test_client_caps.py +182 -0
- collimate_sdk-0.1.0/tests/test_cline_commands_oracle.py +1422 -0
- collimate_sdk-0.1.0/tests/test_cline_prepare.py +183 -0
- collimate_sdk-0.1.0/tests/test_cline_terminal_context.py +333 -0
- collimate_sdk-0.1.0/tests/test_codex_prepare.py +140 -0
- collimate_sdk-0.1.0/tests/test_codex_qwen_generator_tool_oracle.py +945 -0
- collimate_sdk-0.1.0/tests/test_codex_qwen_reply_diagnostic.py +107 -0
- collimate_sdk-0.1.0/tests/test_codex_qwen_terminal_carriers.py +186 -0
- collimate_sdk-0.1.0/tests/test_codex_shell_policy_fixture.py +110 -0
- collimate_sdk-0.1.0/tests/test_codex_terminal_context.py +225 -0
- collimate_sdk-0.1.0/tests/test_commands_matrix.py +242 -0
- collimate_sdk-0.1.0/tests/test_config_folders.py +112 -0
- collimate_sdk-0.1.0/tests/test_config_values.py +253 -0
- collimate_sdk-0.1.0/tests/test_context_file.py +197 -0
- collimate_sdk-0.1.0/tests/test_contracts.py +119 -0
- collimate_sdk-0.1.0/tests/test_definition_handlers.py +244 -0
- collimate_sdk-0.1.0/tests/test_definition_packages.py +55 -0
- collimate_sdk-0.1.0/tests/test_definition_ui.py +23 -0
- collimate_sdk-0.1.0/tests/test_dev_extra_present.py +34 -0
- collimate_sdk-0.1.0/tests/test_docker_base.py +267 -0
- collimate_sdk-0.1.0/tests/test_docs_api_drift.py +436 -0
- collimate_sdk-0.1.0/tests/test_document_view_pick.py +193 -0
- collimate_sdk-0.1.0/tests/test_document_view_skin_change.py +77 -0
- collimate_sdk-0.1.0/tests/test_editor_external_content.py +59 -0
- collimate_sdk-0.1.0/tests/test_editor_visual_renderer_tokens.py +60 -0
- collimate_sdk-0.1.0/tests/test_emit_and_wait.py +501 -0
- collimate_sdk-0.1.0/tests/test_env_git_account.py +196 -0
- collimate_sdk-0.1.0/tests/test_env_git_run.py +613 -0
- collimate_sdk-0.1.0/tests/test_env_repositories.py +1876 -0
- collimate_sdk-0.1.0/tests/test_environments.py +1233 -0
- collimate_sdk-0.1.0/tests/test_esbuild_service.py +164 -0
- collimate_sdk-0.1.0/tests/test_esm_lexer.py +189 -0
- collimate_sdk-0.1.0/tests/test_esm_lexer_oracle.py +134 -0
- collimate_sdk-0.1.0/tests/test_excalidraw_renderer_theme.py +46 -0
- collimate_sdk-0.1.0/tests/test_final_output_ack.py +164 -0
- collimate_sdk-0.1.0/tests/test_forward.py +236 -0
- collimate_sdk-0.1.0/tests/test_forward_image.py +22 -0
- collimate_sdk-0.1.0/tests/test_forward_metadata.py +89 -0
- collimate_sdk-0.1.0/tests/test_fs.py +95 -0
- collimate_sdk-0.1.0/tests/test_generate.py +156 -0
- collimate_sdk-0.1.0/tests/test_generator_config_contract.py +118 -0
- collimate_sdk-0.1.0/tests/test_generator_conformance.py +325 -0
- collimate_sdk-0.1.0/tests/test_generator_internet_grants.py +213 -0
- collimate_sdk-0.1.0/tests/test_generator_removals_p1.py +28 -0
- collimate_sdk-0.1.0/tests/test_generator_surface_contract.py +48 -0
- collimate_sdk-0.1.0/tests/test_generator_test_container.py +262 -0
- collimate_sdk-0.1.0/tests/test_generator_test_tool.py +386 -0
- collimate_sdk-0.1.0/tests/test_git_checkout_handler.py +555 -0
- collimate_sdk-0.1.0/tests/test_git_generator.py +492 -0
- collimate_sdk-0.1.0/tests/test_git_hosts.py +261 -0
- collimate_sdk-0.1.0/tests/test_goose_prepare.py +89 -0
- collimate_sdk-0.1.0/tests/test_goose_terminal_context.py +145 -0
- collimate_sdk-0.1.0/tests/test_guest_session_vocabulary.py +36 -0
- collimate_sdk-0.1.0/tests/test_guide_catalog.py +64 -0
- collimate_sdk-0.1.0/tests/test_guide_contracts.py +437 -0
- collimate_sdk-0.1.0/tests/test_handler_runtime.py +54 -0
- collimate_sdk-0.1.0/tests/test_handlers.py +53 -0
- collimate_sdk-0.1.0/tests/test_harness_catalog.py +62 -0
- collimate_sdk-0.1.0/tests/test_harness_env_plane.py +135 -0
- collimate_sdk-0.1.0/tests/test_harness_host_refusals.py +77 -0
- collimate_sdk-0.1.0/tests/test_harness_pipeline.py +115 -0
- collimate_sdk-0.1.0/tests/test_harness_placement.py +180 -0
- collimate_sdk-0.1.0/tests/test_harness_registry.py +162 -0
- collimate_sdk-0.1.0/tests/test_held_mirror.py +166 -0
- collimate_sdk-0.1.0/tests/test_host_finish.py +183 -0
- collimate_sdk-0.1.0/tests/test_host_harness.py +196 -0
- collimate_sdk-0.1.0/tests/test_host_persistence.py +274 -0
- collimate_sdk-0.1.0/tests/test_html_renderer_dark.py +146 -0
- collimate_sdk-0.1.0/tests/test_html_renderer_links.py +46 -0
- collimate_sdk-0.1.0/tests/test_html_renderer_pick.py +41 -0
- collimate_sdk-0.1.0/tests/test_import_boundary.py +305 -0
- collimate_sdk-0.1.0/tests/test_imports.py +147 -0
- collimate_sdk-0.1.0/tests/test_ipc_ops.py +83 -0
- collimate_sdk-0.1.0/tests/test_layout.py +111 -0
- collimate_sdk-0.1.0/tests/test_lint.py +2210 -0
- collimate_sdk-0.1.0/tests/test_live_file_changes.py +35 -0
- collimate_sdk-0.1.0/tests/test_live_fixture_contracts.py +504 -0
- collimate_sdk-0.1.0/tests/test_live_handler_fixtures.py +65 -0
- collimate_sdk-0.1.0/tests/test_llm_summary_handler.py +47 -0
- collimate_sdk-0.1.0/tests/test_log_category.py +177 -0
- collimate_sdk-0.1.0/tests/test_login_store.py +369 -0
- collimate_sdk-0.1.0/tests/test_media_desktop_ownership.py +23 -0
- collimate_sdk-0.1.0/tests/test_media_utility_renderer_tokens.py +144 -0
- collimate_sdk-0.1.0/tests/test_mermaid_renderer_theme.py +27 -0
- collimate_sdk-0.1.0/tests/test_milkdown_refresh.py +98 -0
- collimate_sdk-0.1.0/tests/test_milkdown_renderer_model.py +31 -0
- collimate_sdk-0.1.0/tests/test_milkdown_snapshot_codec.py +85 -0
- collimate_sdk-0.1.0/tests/test_milkdown_text_input.py +48 -0
- collimate_sdk-0.1.0/tests/test_module_bump.py +406 -0
- collimate_sdk-0.1.0/tests/test_module_mirror.py +644 -0
- collimate_sdk-0.1.0/tests/test_module_snapshot.py +137 -0
- collimate_sdk-0.1.0/tests/test_monaco_renderer_theme.py +66 -0
- collimate_sdk-0.1.0/tests/test_native_bridge_fixture_discovery.py +79 -0
- collimate_sdk-0.1.0/tests/test_native_bridge_fixture_lifecycle.py +72 -0
- collimate_sdk-0.1.0/tests/test_native_contracts_p1.py +137 -0
- collimate_sdk-0.1.0/tests/test_native_install_policy.py +50 -0
- collimate_sdk-0.1.0/tests/test_native_singleton.py +1186 -0
- collimate_sdk-0.1.0/tests/test_native_verifier_resources.py +403 -0
- collimate_sdk-0.1.0/tests/test_node_renderer_contract.py +65 -0
- collimate_sdk-0.1.0/tests/test_opencode_terminal_carrier.py +138 -0
- collimate_sdk-0.1.0/tests/test_opencode_terminal_carrier_pointer.py +182 -0
- collimate_sdk-0.1.0/tests/test_options_presets.py +28 -0
- collimate_sdk-0.1.0/tests/test_options_stack.py +204 -0
- collimate_sdk-0.1.0/tests/test_p1_core_contract.py +46 -0
- collimate_sdk-0.1.0/tests/test_p4_final_harness_identity.py +86 -0
- collimate_sdk-0.1.0/tests/test_p4_utilities.py +162 -0
- collimate_sdk-0.1.0/tests/test_p6_compiler_support.py +67 -0
- collimate_sdk-0.1.0/tests/test_p6_structure_contracts.py +194 -0
- collimate_sdk-0.1.0/tests/test_p6_wire_ownership.py +44 -0
- collimate_sdk-0.1.0/tests/test_package_hash.py +62 -0
- collimate_sdk-0.1.0/tests/test_pdf_renderer_model.py +33 -0
- collimate_sdk-0.1.0/tests/test_permissions.py +253 -0
- collimate_sdk-0.1.0/tests/test_pi_native_carrier.py +105 -0
- collimate_sdk-0.1.0/tests/test_pi_native_extension.py +202 -0
- collimate_sdk-0.1.0/tests/test_pi_prepare.py +191 -0
- collimate_sdk-0.1.0/tests/test_pi_terminal_context.py +198 -0
- collimate_sdk-0.1.0/tests/test_pi_terminal_rejection_oracle.py +51 -0
- collimate_sdk-0.1.0/tests/test_plan_login_validation_owner.py +238 -0
- collimate_sdk-0.1.0/tests/test_profile_contract.py +46 -0
- collimate_sdk-0.1.0/tests/test_providers.py +34 -0
- collimate_sdk-0.1.0/tests/test_public_contracts.py +112 -0
- collimate_sdk-0.1.0/tests/test_pydantic_ai_harness.py +391 -0
- collimate_sdk-0.1.0/tests/test_python_dependency_policy.py +29 -0
- collimate_sdk-0.1.0/tests/test_qwen_acp_readiness_observer.py +355 -0
- collimate_sdk-0.1.0/tests/test_qwen_prepare.py +108 -0
- collimate_sdk-0.1.0/tests/test_qwen_terminal_context.py +205 -0
- collimate_sdk-0.1.0/tests/test_release_policy.py +58 -0
- collimate_sdk-0.1.0/tests/test_renderer_bundle.py +324 -0
- collimate_sdk-0.1.0/tests/test_renderer_bundle_portable.py +87 -0
- collimate_sdk-0.1.0/tests/test_renderer_cdn_pins.py +351 -0
- collimate_sdk-0.1.0/tests/test_renderer_compiler_resources.py +87 -0
- collimate_sdk-0.1.0/tests/test_renderer_conditions.py +40 -0
- collimate_sdk-0.1.0/tests/test_renderer_dependency_pins.py +44 -0
- collimate_sdk-0.1.0/tests/test_renderer_diff_follow.py +191 -0
- collimate_sdk-0.1.0/tests/test_renderer_document_owner.py +42 -0
- collimate_sdk-0.1.0/tests/test_renderer_example_theme.py +45 -0
- collimate_sdk-0.1.0/tests/test_renderer_frame_sandbox.py +263 -0
- collimate_sdk-0.1.0/tests/test_renderer_handler.py +176 -0
- collimate_sdk-0.1.0/tests/test_renderer_manifests.py +167 -0
- collimate_sdk-0.1.0/tests/test_renderer_mirror_url.py +78 -0
- collimate_sdk-0.1.0/tests/test_renderer_native_bundle.py +165 -0
- collimate_sdk-0.1.0/tests/test_renderer_runtime.py +667 -0
- collimate_sdk-0.1.0/tests/test_renderer_tooling.py +28 -0
- collimate_sdk-0.1.0/tests/test_retired_token_scan.py +106 -0
- collimate_sdk-0.1.0/tests/test_run_folders.py +630 -0
- collimate_sdk-0.1.0/tests/test_run_generator.py +2178 -0
- collimate_sdk-0.1.0/tests/test_run_identity.py +316 -0
- collimate_sdk-0.1.0/tests/test_run_renderer_model.py +32 -0
- collimate_sdk-0.1.0/tests/test_runner_contract.py +92 -0
- collimate_sdk-0.1.0/tests/test_sdk_runtime_metadata.py +203 -0
- collimate_sdk-0.1.0/tests/test_sdk_scale.py +579 -0
- collimate_sdk-0.1.0/tests/test_secret_hygiene.py +375 -0
- collimate_sdk-0.1.0/tests/test_selected_file.py +143 -0
- collimate_sdk-0.1.0/tests/test_serve_terminal.py +291 -0
- collimate_sdk-0.1.0/tests/test_session_connection_key.py +79 -0
- collimate_sdk-0.1.0/tests/test_shared_path.py +28 -0
- collimate_sdk-0.1.0/tests/test_shipped_config_snapshots.py +26 -0
- collimate_sdk-0.1.0/tests/test_skill_references.py +115 -0
- collimate_sdk-0.1.0/tests/test_style_control_reach.py +481 -0
- collimate_sdk-0.1.0/tests/test_suggested.py +329 -0
- collimate_sdk-0.1.0/tests/test_surface_opens.py +184 -0
- collimate_sdk-0.1.0/tests/test_surface_sessions.py +793 -0
- collimate_sdk-0.1.0/tests/test_terminal_export_owners.py +79 -0
- collimate_sdk-0.1.0/tests/test_terminal_renderer_model.py +35 -0
- collimate_sdk-0.1.0/tests/test_terminal_runner.py +363 -0
- collimate_sdk-0.1.0/tests/test_terminal_tail.py +1038 -0
- collimate_sdk-0.1.0/tests/test_terminal_vocabulary.py +60 -0
- collimate_sdk-0.1.0/tests/test_testing_harness.py +483 -0
- collimate_sdk-0.1.0/tests/test_testing_module_ownership.py +225 -0
- collimate_sdk-0.1.0/tests/test_testing_prepared_run.py +132 -0
- collimate_sdk-0.1.0/tests/test_text_renderer_model.py +20 -0
- collimate_sdk-0.1.0/tests/test_toolchain_actions.py +68 -0
- collimate_sdk-0.1.0/tests/test_toolchain_contract.py +99 -0
- collimate_sdk-0.1.0/tests/test_transcript.py +222 -0
- collimate_sdk-0.1.0/tests/test_transcript_merge.py +260 -0
- collimate_sdk-0.1.0/tests/test_upstream_record.py +167 -0
- collimate_sdk-0.1.0/tests/test_verification.py +85 -0
- collimate_sdk-0.1.0/tests/test_verify_prelude.py +117 -0
- collimate_sdk-0.1.0/tests/test_web_chrome.py +65 -0
- collimate_sdk-0.1.0/tests/test_web_generator.py +2004 -0
- collimate_sdk-0.1.0/tests/test_web_rpc_contract.py +147 -0
- collimate_sdk-0.1.0/tests/test_website_frame.py +31 -0
- collimate_sdk-0.1.0/tests/test_webview_artifact.py +131 -0
- collimate_sdk-0.1.0/tests/test_webview_buttons.py +30 -0
- collimate_sdk-0.1.0/tests/test_webview_navigation.py +36 -0
- collimate_sdk-0.1.0/tests/test_whole_file_reads.py +148 -0
- collimate_sdk-0.1.0/tests/test_workspace_containment.py +398 -0
- collimate_sdk-0.1.0/tests_live/README.md +329 -0
- collimate_sdk-0.1.0/tests_live/__init__.py +13 -0
- collimate_sdk-0.1.0/tests_live/_claude_tty.py +57 -0
- collimate_sdk-0.1.0/tests_live/_host_terminal.py +435 -0
- collimate_sdk-0.1.0/tests_live/anthropic_mock.py +137 -0
- collimate_sdk-0.1.0/tests_live/bypass/__init__.py +35 -0
- collimate_sdk-0.1.0/tests_live/bypass/antigravity.py +21 -0
- collimate_sdk-0.1.0/tests_live/bypass/copilot.py +115 -0
- collimate_sdk-0.1.0/tests_live/bypass/hermes.py +110 -0
- collimate_sdk-0.1.0/tests_live/bypass/pydantic_ai.py +10 -0
- collimate_sdk-0.1.0/tests_live/bypass/vibe.py +83 -0
- collimate_sdk-0.1.0/tests_live/conftest.py +1188 -0
- collimate_sdk-0.1.0/tests_live/fixtures/acp_capture.py +728 -0
- collimate_sdk-0.1.0/tests_live/fixtures/agy_terminal_command.py +431 -0
- collimate_sdk-0.1.0/tests_live/fixtures/cline_native_tools.mjs +54 -0
- collimate_sdk-0.1.0/tests_live/fixtures/pi_native_tools.mjs +111 -0
- collimate_sdk-0.1.0/tests_live/provider_mock.py +583 -0
- collimate_sdk-0.1.0/tests_live/test_live_acp_conformance.py +1229 -0
- collimate_sdk-0.1.0/tests_live/test_live_antigravity_commands.py +192 -0
- collimate_sdk-0.1.0/tests_live/test_live_claude_antigravity_generator_capture.py +276 -0
- collimate_sdk-0.1.0/tests_live/test_live_claude_code.py +130 -0
- collimate_sdk-0.1.0/tests_live/test_live_claude_tty_commands.py +350 -0
- collimate_sdk-0.1.0/tests_live/test_live_cline_commands.py +892 -0
- collimate_sdk-0.1.0/tests_live/test_live_cline_generator_tool_capture.py +85 -0
- collimate_sdk-0.1.0/tests_live/test_live_cline_native_intake.py +256 -0
- collimate_sdk-0.1.0/tests_live/test_live_codex_commands.py +115 -0
- collimate_sdk-0.1.0/tests_live/test_live_codex_qwen_acp_capture.py +116 -0
- collimate_sdk-0.1.0/tests_live/test_live_codex_qwen_generator_tool.py +729 -0
- collimate_sdk-0.1.0/tests_live/test_live_codex_qwen_terminal_intake.py +95 -0
- collimate_sdk-0.1.0/tests_live/test_live_codex_shell_policy.py +57 -0
- collimate_sdk-0.1.0/tests_live/test_live_container_reaper.py +76 -0
- collimate_sdk-0.1.0/tests_live/test_live_forward_image.py +48 -0
- collimate_sdk-0.1.0/tests_live/test_live_generator_tool_acp_capture.py +88 -0
- collimate_sdk-0.1.0/tests_live/test_live_generator_tool_processes.py +80 -0
- collimate_sdk-0.1.0/tests_live/test_live_goose_commands.py +109 -0
- collimate_sdk-0.1.0/tests_live/test_live_harness_conformance.py +369 -0
- collimate_sdk-0.1.0/tests_live/test_live_host_terminal.py +277 -0
- collimate_sdk-0.1.0/tests_live/test_live_model_defaults.py +25 -0
- collimate_sdk-0.1.0/tests_live/test_live_multimodal.py +164 -0
- collimate_sdk-0.1.0/tests_live/test_live_opencode_commands.py +115 -0
- collimate_sdk-0.1.0/tests_live/test_live_opencode_gemini.py +148 -0
- collimate_sdk-0.1.0/tests_live/test_live_opencode_generator_tool.py +190 -0
- collimate_sdk-0.1.0/tests_live/test_live_pi_commands.py +153 -0
- collimate_sdk-0.1.0/tests_live/test_live_pi_native_carrier.py +112 -0
- collimate_sdk-0.1.0/tests_live/test_live_pydantic_ai.py +135 -0
- collimate_sdk-0.1.0/tests_live/test_live_qwen_acp_readiness.py +246 -0
- collimate_sdk-0.1.0/tests_live/test_live_qwen_agent_deny.py +88 -0
- collimate_sdk-0.1.0/tests_live/test_live_qwen_commands.py +127 -0
- collimate_sdk-0.1.0/tests_live/test_live_qwen_native_rewrite.py +43 -0
- 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
|
+
[](https://pypi.org/project/collimate-sdk/)
|
|
28
|
+
[](LICENSE)
|
|
29
|
+
[](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
|
+
[](https://pypi.org/project/collimate-sdk/)
|
|
4
|
+
[](LICENSE)
|
|
5
|
+
[](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.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -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()
|