ldcon 0.2.0__tar.gz → 0.2.1__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.
- {ldcon-0.2.0/src/ldcon.egg-info → ldcon-0.2.1}/PKG-INFO +10 -4
- {ldcon-0.2.0 → ldcon-0.2.1}/README.md +9 -3
- {ldcon-0.2.0 → ldcon-0.2.1}/docs/publishing.html +3 -3
- {ldcon-0.2.0 → ldcon-0.2.1}/pyproject.toml +1 -1
- {ldcon-0.2.0 → ldcon-0.2.1/src/ldcon.egg-info}/PKG-INFO +10 -4
- {ldcon-0.2.0 → ldcon-0.2.1}/.secrets.baseline +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/LICENSE +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/MANIFEST.in +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/package-lock.json +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/package.json +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/scripts/check_dist.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/scripts/check_secrets.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/scripts/check_tag.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/scripts/install_wheel.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/setup.cfg +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/__init__.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/_moved.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agent_tools.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/__init__.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/adjustment_guidance.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/adjustment_quality.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_adapters.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_background.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_bundle.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_cards.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_config_access.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_configuration.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_configuration_policy.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_connect.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_device_parameters.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_execution.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_history.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_inbox_watch.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_interactive.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_interactive_hooks.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_language.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_log_context.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_log_read.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_log_watch.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_metrics.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_monitor.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_opencode_http.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_opencode_mcp.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_owner_status.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_profiles.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_providers.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_repairs.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_routing.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_runtime.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_sandbox.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_startup_notice.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_task.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_tools.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_window.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/agent_workspace.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/card_fallback.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/dlc_pi_adjustment.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/dlc_pi_plan.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/dlc_pi_response_plan.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/failure_policy.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/fallback_service.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/fallback_targets.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/gateway_role.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/manual_adjustment_grant.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/measurement_grant.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/monitor_quality_binding.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/notification_policy.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/operating_mode_client.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/report_pdf.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/resident_adjustment.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/resident_agent.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/resident_quality_apply.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/task_decisions.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/teams_card.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/agents/teams_destinations.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/cld_owner.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/cli.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/__init__.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/adjustment_plan.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/adjustment_registry.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/agent_authority.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/card_admission.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/card_definition.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/card_reporting.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/configuration.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/configuration_transaction.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/contracts.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/current_settings.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/deck_yaml.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/device_conditions.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/execution_context.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/instrument_client.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/interface_cards.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/interface_schema.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/laser_assets.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/metric_quantities.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/modulation.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/operation_registry.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/paths.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/period_context.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/records.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/result_reservations.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/site_bindings.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/state_layout.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/target_policy.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/telegraf.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/telemetry.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/core/temperature_settings.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/dashboard_metrics.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/device_registry.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/drivers/__init__.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/drivers/cld1015.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/drivers/cld1015_config.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/drivers/dlcpro.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/drivers/dlcpro_analog.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/drivers/dlcpro_console.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/drivers/dlcpro_priority.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/drivers/ecdl.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/drivers/esp32_servo.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/drivers/fizeau.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/drivers/frequency_sweep.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/drivers/influx_wavelength.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/drivers/metric_sources.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/drivers/native_dither_telemetry.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/drivers/rigol_scope.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/drivers/siglent.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/drivers/staircase.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/drivers/wsu_udp.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/esp32_time_telemetry.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/example_config.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/fallback_service.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/instrument_owner.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/instrument_service.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/interface_worker.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/job_service.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/__init__.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/adaptive_pid.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/adaptive_window_session.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/adjustment_continuation.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/axis_frequency.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/axis_frequency_report.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/background_parameter_session.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/background_pid_session.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/branch_maps.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/branch_target_migration.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/card_runtime.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/change_measure.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/change_measure_adapter.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/change_measure_dlc.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/change_measure_parameters.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/change_measure_target.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/current_cards.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/current_devices.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/dashboard_api.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/device_parameters.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/dlc_pi_measurement.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/dlcpro_awg_analysis.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/dlcpro_awg_card.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/dlcpro_cards.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/ecdl_branch_hop.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/ecdl_branch_recovery.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/ecdl_devices.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/ecdl_locked_sweep_proxy.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/ecdl_mapped_recovery.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/ecdl_mode_map.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/ecdl_mode_recovery.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/ecdl_online.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/ecdl_operating_point.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/ecdl_pi_commission.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/ecdl_recovery.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/ecdl_recovery_plan.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/ecdl_recovery_test.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/ecdl_relock.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/ecdl_response_study.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/ecdl_steady.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/ecdl_thermal_context.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/ecdl_window_center.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/emission_card.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/fringe_sweep_reference.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/interface_devices.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/interface_worker.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/job_service.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/laser_live.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/learned_settling.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/lock_target.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/locked_triangle.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/measurement_acquisition.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/measurement_analysis.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/measurement_execution.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/measurement_notice.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/measurement_presets.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/measurement_report.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/measurement_statistics.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/metric_cards.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/metric_interface.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/modulation_sweep.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/native_background_session.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/native_current_acquire.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/native_current_card.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/native_current_online.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/native_ff_proxy.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/native_ff_sweep.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/online_pid.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/operating_point.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/operating_point_proxy.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/operation_execution.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/operation_history.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/optical_broker.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/pi_algorithms.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/pi_response.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/progress.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/quality_baseline.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/recovery_decisions.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/recovery_history.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/recovery_procedure.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/recovery_reference.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/recovery_stationary.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/response_algorithms.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/response_comparison.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/response_record.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/runtime_parameters.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/settling_profile.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/shot_analysis.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/simulation.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/slow_control.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/slow_current.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/study_adoption.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/study_execution.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/sweep_ff_analysis.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/sweep_ff_optimization.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/sweep_ff_plan.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/sweep_ff_report.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/sweep_ff_transport.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/sweep_tracking.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/sweep_verdict.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/target_response.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/target_response_analysis.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/target_response_control.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/target_response_decisions.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/target_response_experiment.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/target_response_feedforward.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/target_response_search.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/target_response_shift.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/target_response_thermal.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/target_response_thermal_experiment.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/target_sequence.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/temperature_identification.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/wavelength_history.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/window_actions.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/window_center.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/window_control.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/window_decisions.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/window_sampling.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/jobs/workflow_artifacts.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/migration/__init__.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/migration/migration_decks.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/migration/migration_readiness.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/migration/migration_relocation.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/monitor_owner.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owner_telemetry.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/__init__.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/adc_log_threshold.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/background_grants.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/cld_instrument_owner.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/cld_owner.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/cld_projection.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/cld_system_owner.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/current_owner.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/device_registry.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/dlcpro_awg_plan.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/dlcpro_awg_port.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/dlcpro_awg_protocol.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/dlcpro_awg_return.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/dlcpro_awg_sweep.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/dlcpro_awg_timing.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/dlcpro_awg_tracking.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/dlcpro_awg_tracking_guard.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/dlcpro_awg_tracking_report.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/dlcpro_awg_zero.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/dlcpro_deployment.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/dlcpro_ff.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/dlcpro_ff_adjustment.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/dlcpro_ff_delta_adjustment.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/dlcpro_frequency_window.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/dlcpro_observation.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/dlcpro_owner.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/dlcpro_pi_protocol.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/dlcpro_pi_trial.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/dlcpro_readback.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/dlcpro_service.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/dlcpro_target_changes.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/dlcpro_target_step.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/dlcpro_target_store.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/dlcpro_telemetry.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/ecdl_background_parameters.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/ecdl_background_pid.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/ecdl_hot_control.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/ecdl_independent_pid.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/ecdl_locked_study.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/ecdl_locked_sweep.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/ecdl_native_pid.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/ecdl_optical.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/ecdl_owner.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/ecdl_policy_reload.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/ecdl_prelock.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/ecdl_projection.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/ecdl_steady_owner.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/ecdl_steady_policy.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/ecdl_target_ff.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/ecdl_target_settling.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/ecdl_tec_pair.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/ecdl_thermal_study.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/emission.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/emission_adapters.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/esp32_native_client.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/esp32_native_owner.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/esp32_time_telemetry.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/esp32_udp_gate.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/external_sweep_guard.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/flexible_native_trial.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/fringe_peaks.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/full_data_log.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/instrument_identity.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/instrument_owner.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/instrument_projection.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/instrument_service.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/migration_physical_lock.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/monitor_owner.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/native_assembly.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/native_assembly_host.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/native_background.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/native_current_tuning.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/native_ff_proof.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/native_instrument_owner.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/native_modulation_limits.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/native_policy_reload.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/native_policy_safety.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/native_policy_update.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/native_system_owner.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/operating_mode_owner.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/owner_projection.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/owner_telemetry.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/pi_handover.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/projection_transport.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/remote_instruments.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/sdg_client.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/sdg_owner.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/tec_rate.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/owners/wsu_udp_monitor.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/report_pdf.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/resources/agent-model-options.json +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/resources/agent_contract/adjustment.txt +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/resources/agent_contract/common.txt +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/resources/agent_contract/diagnosis.txt +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/resources/agent_contract/research.txt +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/resources/agent_contract/response_optimization.txt +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/resources/examples/README.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/resources/examples/assignments/sr1092.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/resources/examples/assignments/sr422.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/resources/examples/assignments/thf685.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/resources/examples/interface-decks/dfb-dbr-ldc-tec.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/resources/examples/interface-decks/ecdl-dlcpro.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/resources/examples/interface-decks/ecdl-pzt-ldc-tec.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/resources/examples/lasers/sr1092.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/resources/examples/lasers/sr422.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/resources/examples/lasers/thf685.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/resources/report_template/ldconreport.cls +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/resources/report_template/report.tex +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/__init__.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/agent_approval_api.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/agent_settings_api.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/agent_task_api.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/control_readback.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/dashboard_activity.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/dashboard_controls_revision.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/dashboard_metrics.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/dashboard_snapshot.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/dashboard_state.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/dashboard_wavelength.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/device_parameters_api.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/dither_quality.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/dlcpro_target_api.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/dlcpro_target_query.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/failure_api.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/gateway_lan.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/grafana_activity.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/grafana_dashboard.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/grafana_dlcpro.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/grafana_quality.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/interface_projection.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/job_registry.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/job_report.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/laser_operations.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/lock_target_api.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/lock_target_queue.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/log_archive.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/metric_query_profiles.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/online_position.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/operating_mode_api.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/operation_api.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/operation_observation.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/operations_settings.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/quality_threshold_metrics.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/shot_analysis_api.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/sweep_api.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/sweep_guard.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/target_reference_panel.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/teams_destinations_api.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/web_fleet.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/web_runtime.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/web_server.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web/window_api.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/agent-settings.css +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/agent-settings.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/agent-settings.js +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/app.css +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/app.js +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/card-browser.js +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/card-guide.js +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/acquire.metrics.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/agent.history_review.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/agent.log_watch.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/agent.monitor.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/agent.request.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/agent.resident.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/agent.task.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/commission.ecdl_pi.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/identify.axis_frequency.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/identify.current_response.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/laser.emission.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/measure.batch.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/measure.change.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/measure.target_response.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/monitor.wavelength.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/notify.teams.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/optimize.settling_criteria.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/optimize.target_feedforward.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/optimize.target_step.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/optimize.target_thermal.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/plan.ecdl_recovery.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/prepare.ecdl_recovery.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/recover.ecdl_mode_hop.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/report.grafana_dashboard.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/servo.current_pid.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/servo.dlcpro_frequency.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/servo.ecdl_steady_lock.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/servo.native_current.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/study.ecdl_current_response.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/study.ecdl_locked_current_map.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/study.ecdl_mode_map.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/study.ecdl_thermal_context.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/study.target_response.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/sweep.current_modulation.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/sweep.dlcpro_frequency.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/sweep.servo_modulation.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/test.ecdl_recovery.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/tune.ecdl_initial_point.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/tune.ecdl_operating_point.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/tune.ecdl_window_center.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/tune.native_current.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/tune.pid_coordinate_search.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/tune.pid_factor_reduction.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/tune.pid_online.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/cards/tune.temperature_once.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/committing-input.js +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/configuration-editor.js +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/dashboard-state.js +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/failures.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/failures.js +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/fallback.css +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/fallback.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/fallback.js +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/fleet-settings.js +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/fleet.css +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/fleet.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/fleet.js +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/gateway-presentation.js +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/grafana-help.js +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/help.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/i18n.js +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/index.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/laser-workspace.js +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/modulation.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/modulation.js +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/reservations.html +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/reservations.js +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/teams-settings.js +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/window-actions.js +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_assets/workspace.css +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_fleet.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon/web_server.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon.egg-info/SOURCES.txt +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon.egg-info/dependency_links.txt +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon.egg-info/entry_points.txt +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon.egg-info/requires.txt +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/src/ldcon.egg-info/top_level.txt +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/__init__.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/conftest.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/dashboard_fixture.cjs +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/fixtures/dlcpro-fw19.json +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/fixtures/effective-settings/golden-sr1092.json +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/fixtures/effective-settings/golden-sr422.json +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/fixtures/effective-settings/var/device-owners/cld1015-M01343851/config.json +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/fixtures/effective-settings/var/device-owners/esp32servocon-sr1092/config.json +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/fixtures/effective-settings/var/device-owners/scope-sr422-sr1092/config.json +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/fixtures/effective-settings/var/device-owners/sr422/config.json +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/fixtures/effective-settings/var/instrument-owners/bk4054b-51524H117/config.json +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/fixtures/effective-settings/var/instrument-owners/sdg2042x-SDG2XFBCA00839/config.json +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/fixtures/effective-settings/var/instrument-owners/sdg2042x-SDG2XFBCA00845/config.json +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/fixtures/effective-settings/var/lasers/sr1092/config/assignments/sr1092.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/fixtures/effective-settings/var/lasers/sr1092/config/interface-decks/dfb-dbr-ldc-tec.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/fixtures/effective-settings/var/lasers/sr1092/config/lasers/sr1092.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/fixtures/effective-settings/var/lasers/sr1092/laser-layout.json +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/fixtures/effective-settings/var/lasers/sr422/config/assignments/sr422.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/fixtures/effective-settings/var/lasers/sr422/config/interface-decks/ecdl-pzt-ldc-tec.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/fixtures/effective-settings/var/lasers/sr422/config/lasers/sr422.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/fixtures/effective-settings/var/lasers/sr422/laser-layout.json +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/fixtures/entry-startup/assembly-definition.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/fixtures/entry-startup/sr1092-broker.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/fixtures/pi-handover-v1.json +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/legacy_mapped_recovery_fixture.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/legacy_rearm_trim_fixture.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/legacy_recovery_executor_fixture.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/legacy_recovery_plan_fixture.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/legacy_recovery_test_fixture.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/measurement_fixtures.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/recovery_legacy_fixtures.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/examples/dlcpro/assignment.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/examples/dlcpro/deck.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/examples/dlcpro/existing-ecdl-calibration.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/examples/dlcpro/laser.offline.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/examples/dlcpro/owner.offline.json +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/examples/dlcpro/pi-agent-cards.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/examples/dlcpro/thf685/laser.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/examples/dlcpro/thf685/owner.json +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/examples/measurement-decks/dfb-dbr-ldc-tec.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/examples/measurement-decks/ecdl-pzt-ldc-tec.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/jobs/examples/interface-config/assignments/sr1092.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/jobs/examples/interface-config/assignments/sr422.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/jobs/examples/interface-config/interface-decks/dfb-dbr-ldc-tec.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/jobs/examples/interface-config/interface-decks/ecdl-pzt-ldc-tec.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/jobs/examples/interface-config/lasers/sr1092.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/jobs/examples/interface-config/lasers/sr422.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/jobs/tests/fixtures/live-20261022/assignments/sr1092.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/jobs/tests/fixtures/live-20261022/assignments/sr422.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/jobs/tests/fixtures/live-20261022/interface-decks/dfb-dbr-ldc-tec.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/jobs/tests/fixtures/live-20261022/interface-decks/ecdl-pzt-ldc-tec.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/jobs/tests/fixtures/live-20261022/lasers/sr1092.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/jobs/tests/fixtures/live-20261022/lasers/sr422.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/jobs/tests/test_esp32_native_current.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/jobs/tests/test_lock_target.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/jobs/tests/test_native_ff_owner.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/jobs/tests/test_native_live_moves.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/ops/effective_settings.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/ops/inspect_dlcpro.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/ops/prepare_pi_handover.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/ops/trim_owner_config.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/ops/update_pi_handover.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/owner/tests/fake_projection.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/owner/tests/fake_rig.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/owner/tests/locked_sweep_settings.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/owner/tests/test_background_pid_owner.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/owner/tests/test_locked_sweep_owner.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/scripts/monitor_configuration.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/scripts/test_live_background_handoff.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/tests/test_ecdl_acquisition_gate_fixes.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/tests/test_learned_settling.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/web/examples/interface-config/assignments/sr1092.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/web/examples/interface-config/assignments/sr422.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/web/examples/interface-config/interface-decks/dfb-dbr-ldc-tec.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/web/examples/interface-config/interface-decks/ecdl-pzt-ldc-tec.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/web/examples/interface-config/lasers/sr1092.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/web/examples/interface-config/lasers/sr422.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/web/tests/fixtures/live-20261022/assignments/sr1092.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/web/tests/fixtures/live-20261022/assignments/sr422.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/web/tests/fixtures/live-20261022/interface-decks/dfb-dbr-ldc-tec.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/web/tests/fixtures/live-20261022/interface-decks/ecdl-pzt-ldc-tec.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/web/tests/fixtures/live-20261022/lasers/sr1092.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/support/web/tests/fixtures/live-20261022/lasers/sr422.yaml +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_adaptive_window_session.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_adjustment_continuation.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_adjustment_guidance.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_adjustment_guidance_web.cjs +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_adjustment_quality.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_adopt_after_prewrite_reject_20261028.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_agent_background_gateway.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_agent_difficulty_routing.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_agent_host_integration.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_agent_model_negotiation.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_agent_monitor_history.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_agent_providers.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_agent_routing_layout.cjs +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_agent_settings_api.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_agent_settings_ui.cjs +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_agent_task_tool_arguments.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_agent_tasks.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_approval_layout_owner.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_background_foreground_native_matrix.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_background_start_observation.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_background_window_session.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_card_browser_assets.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_card_browser_ui.cjs +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_card_readiness.cjs +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_card_start_reasons.cjs +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_change_measure.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_change_measure_adapter.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_change_measure_dlc.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_change_measure_target.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_claude_interactive_metadata.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_claude_profile_transport.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_cld_system_boundary.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_committing_input.cjs +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_config_two_layer_step34.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_configuration_numeric_roundtrip.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_configuration_review_refresh.cjs +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_controller_status_projection.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dashboard_activity.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dashboard_polish.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dashboard_workspace.cjs +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_decision_progress_prefix.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_display_state_consistency.cjs +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dither_pause_20261027.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dither_quality_review_20261028.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dither_review_aggregation_20261028.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlc_pi_adjustment.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlc_pi_target_steps.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlc_response_policy.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlc_trace_state.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_adc_authority.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_awg.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_awg_async.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_awg_card.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_awg_enable.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_awg_identity.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_awg_protocol.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_awg_return.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_awg_tracking.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_awg_tracking_failures.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_awg_tracking_guard.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_awg_zero.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_console.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_fast_servo.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_ff_adjustment.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_ff_delta_adjustment.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_frequency_window.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_grafana.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_lock_input_window.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_native_scan_frequency.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_offline.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_pi_trial.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_target_api.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_target_api_fleet.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_target_api_routing.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_telemetry.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_tracking_io_budget.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_tracking_timing_io.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_dlcpro_udp.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_ecdl_branch_hop.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_ecdl_independent_pid.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_ecdl_ldc_target_ff.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_ecdl_owner_readopt.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_ecdl_owner_startup_adoption.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_ecdl_ready_target.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_ecdl_rearm_trim.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_ecdl_recovery_card.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_ecdl_settings_adopt.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_ecdl_target_settling.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_ecdl_tec_alignment_approach.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_effective_settings.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_emission.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_emission_native.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_entry_startup.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_failure_review.cjs +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_fleet_pdf_reports.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_gateway_defaults_ui.cjs +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_gateway_lan.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_gateway_notifications.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_gateway_presentation.cjs +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_gateway_presentation.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_http_request_ids.cjs +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_job_report.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_legacy_broker_projection.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_live_control_bulk.cjs +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_lock_target_correlation.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_measurement_acquisition.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_measurement_execution_integration.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_measurement_parameter_transactions.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_measurement_plan_authority.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_measurement_presets.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_midpoint_pilot.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_monitor_readback.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_moved_modules.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_native_assembly_adoption.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_native_background.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_native_integral_hotload.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_native_modulation_limits.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_native_owner_readopt.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_native_post_retarget_recentre.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_native_system_boundary.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_native_target_policy_update.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_notification_policy.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_opencode_mcp_lifetime.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_opencode_notification_queue.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_opencode_shared.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_operating_guidance_fleet.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_operating_mode_owner.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_operating_mode_routes.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_operating_point_latency.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_operating_point_readback_failure.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_operation_execution.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_operation_gateway.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_operation_history.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_operation_observation.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_operation_record_delivery.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_owner_projection.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_package_boundary.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_parameter_workspace.cjs +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_pi_algorithm_identity.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_pi_public_retirement.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_pi_release_update.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_pi_response_workflow.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_pi_trial_envelope_20261028.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_preflight_reference_resolution.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_projection_transport.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_public_examples.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_quality_baseline.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_quality_baseline_hooks.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_quality_report_only.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_quality_threshold_layout.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_recovery_decisions.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_recovery_explicit_policy.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_recovery_history.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_recovery_reference_v2.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_recovery_without_map_lookup.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_refresh_layout.cjs +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_report_policy.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_resident_adjustment.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_resident_adjustment_web.cjs +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_resident_quality_apply.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_response_algorithm_integration.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_response_comparison.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_rollout_site_boundaries.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_settling_profile_consumer.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_single_laser_layout.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_stationary_unlimited_recovery.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_steady_planner_hold_only.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_steady_recovery_retirement.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_study_adoption.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_study_execution.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_study_history_display.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_sweep_admission.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_sweep_ff_analysis.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_sweep_ff_optimization.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_sweep_ff_report.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_sweep_ff_transport.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_target_cancel_ui.cjs +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_target_feedforward.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_target_ff_completion.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_target_response.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_target_response_control.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_target_response_experiment.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_target_response_feedforward.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_target_response_search.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_target_response_shift.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_target_response_web.cjs +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_target_sequence.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_target_step_authority.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_target_text_formats.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_task_decisions.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_task_profile_ui.cjs +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_teams_destinations.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_teams_settings_ui.cjs +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_unified_quality.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_window_hop_boundary_20261027.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_window_observable_selection.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_workspace_inventory.py +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_workspace_selector.cjs +0 -0
- {ldcon-0.2.0 → ldcon-0.2.1}/tests/test_wsu_udp_monitor.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ldcon
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Summary: Laser operations, physical owners and fleet presentation
|
|
5
5
|
Author: FanHarvard contributors
|
|
6
6
|
License-Expression: MIT
|
|
@@ -43,7 +43,7 @@ Dynamic: license-file
|
|
|
43
43
|
**Still in active development.**
|
|
44
44
|
|
|
45
45
|
Laser locking, characterization and a Web dashboard. **ECDL and DFB/DBR control
|
|
46
|
-
are implemented**,
|
|
46
|
+
are implemented**, with digital-servo PI control and TOPTICA DLCpro adapters.
|
|
47
47
|
|
|
48
48
|
```sh
|
|
49
49
|
pip install "ldcon[web,instruments,analysis]"
|
|
@@ -55,6 +55,9 @@ Python 3.10+ on Linux. `experiment-core` installs automatically. Optional agent
|
|
|
55
55
|
messaging: `pip install "ldcon[agents]"` (installs `fanharvard-agentbridge`).
|
|
56
56
|
Provider CLIs and their authentication are separate.
|
|
57
57
|
|
|
58
|
+
Supported agent interfaces: **Claude Code, Codex and OpenCode**, with a DeepSeek
|
|
59
|
+
Harness adapter for card tasks.
|
|
60
|
+
|
|
58
61
|
**Agents** monitor results, diagnose problems and run bounded characterization,
|
|
59
62
|
parameter tuning and recovery through registered control cards. **Humans** choose
|
|
60
63
|
the experiment, target, hardware configuration and physical safety limits, and
|
|
@@ -69,11 +72,14 @@ Missing data remains unknown; quality labels are distinct from physical safety.
|
|
|
69
72
|
|
|
70
73
|
| Configuration | Hardware |
|
|
71
74
|
| --- | --- |
|
|
72
|
-
| ECDL /
|
|
73
|
-
| DFB/DBR | Wavemeter, current/TEC controller (e.g. Thorlabs CLD1015);
|
|
75
|
+
| ECDL / digital servo | Wavemeter and data feed, compatible digital servo/DAC, piezo driver, current/TEC controllers and supported AWGs (e.g. Siglent SDG) |
|
|
76
|
+
| DFB/DBR | Wavemeter, current/TEC controller (e.g. Thorlabs CLD1015); compatible digital servo/DAC and modulation input for native current PI |
|
|
74
77
|
| ECDL / DLCpro | TOPTICA DLCpro, wavemeter feedback; AWG/trigger connections for configured feedforward scans |
|
|
75
78
|
| Spectral quality / studies | Fringe image source for secondary-peak analysis; scope/telemetry and AWG where required by the selected measurement |
|
|
76
79
|
|
|
80
|
+
For digital-servo hardware and integration details, please contact
|
|
81
|
+
[kenjishu@fas.harvard.edu](mailto:kenjishu@fas.harvard.edu).
|
|
82
|
+
|
|
77
83
|
Tests use simulations, fake instruments and loopback services to cover control
|
|
78
84
|
contracts, owner exclusivity, uncertain writes, cancellation/recovery, tuning,
|
|
79
85
|
sweeps, configuration, quality reporting and Web behavior. They do not certify
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
**Still in active development.**
|
|
4
4
|
|
|
5
5
|
Laser locking, characterization and a Web dashboard. **ECDL and DFB/DBR control
|
|
6
|
-
are implemented**,
|
|
6
|
+
are implemented**, with digital-servo PI control and TOPTICA DLCpro adapters.
|
|
7
7
|
|
|
8
8
|
```sh
|
|
9
9
|
pip install "ldcon[web,instruments,analysis]"
|
|
@@ -15,6 +15,9 @@ Python 3.10+ on Linux. `experiment-core` installs automatically. Optional agent
|
|
|
15
15
|
messaging: `pip install "ldcon[agents]"` (installs `fanharvard-agentbridge`).
|
|
16
16
|
Provider CLIs and their authentication are separate.
|
|
17
17
|
|
|
18
|
+
Supported agent interfaces: **Claude Code, Codex and OpenCode**, with a DeepSeek
|
|
19
|
+
Harness adapter for card tasks.
|
|
20
|
+
|
|
18
21
|
**Agents** monitor results, diagnose problems and run bounded characterization,
|
|
19
22
|
parameter tuning and recovery through registered control cards. **Humans** choose
|
|
20
23
|
the experiment, target, hardware configuration and physical safety limits, and
|
|
@@ -29,11 +32,14 @@ Missing data remains unknown; quality labels are distinct from physical safety.
|
|
|
29
32
|
|
|
30
33
|
| Configuration | Hardware |
|
|
31
34
|
| --- | --- |
|
|
32
|
-
| ECDL /
|
|
33
|
-
| DFB/DBR | Wavemeter, current/TEC controller (e.g. Thorlabs CLD1015);
|
|
35
|
+
| ECDL / digital servo | Wavemeter and data feed, compatible digital servo/DAC, piezo driver, current/TEC controllers and supported AWGs (e.g. Siglent SDG) |
|
|
36
|
+
| DFB/DBR | Wavemeter, current/TEC controller (e.g. Thorlabs CLD1015); compatible digital servo/DAC and modulation input for native current PI |
|
|
34
37
|
| ECDL / DLCpro | TOPTICA DLCpro, wavemeter feedback; AWG/trigger connections for configured feedforward scans |
|
|
35
38
|
| Spectral quality / studies | Fringe image source for secondary-peak analysis; scope/telemetry and AWG where required by the selected measurement |
|
|
36
39
|
|
|
40
|
+
For digital-servo hardware and integration details, please contact
|
|
41
|
+
[kenjishu@fas.harvard.edu](mailto:kenjishu@fas.harvard.edu).
|
|
42
|
+
|
|
37
43
|
Tests use simulations, fake instruments and loopback services to cover control
|
|
38
44
|
contracts, owner exclusivity, uncertain writes, cancellation/recovery, tuning,
|
|
39
45
|
sweeps, configuration, quality reporting and Web behavior. They do not certify
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<meta name="viewport" content="width=device-width,initial-scale=1"><title>Publishing ldcon</title>
|
|
3
3
|
<style>body{font:16px/1.7 system-ui;max-width:900px;margin:3rem auto;padding:0 1rem}pre{background:#f2f4f6;padding:1rem;overflow:auto}code{font-size:.9em}</style>
|
|
4
4
|
<h1>Publishing ldcon</h1><p>Public repository: <a href="https://github.com/FanHarvard/ldcon">FanHarvard/ldcon</a>.
|
|
5
|
-
|
|
5
|
+
Current version: 0.2.1. No production service is activated by publication.</p>
|
|
6
6
|
<h2>One-time PyPI setup</h2><p>A PyPI account owner creates a pending publisher at
|
|
7
7
|
<a href="https://pypi.org/manage/account/publishing/">PyPI publishing settings</a> with:</p>
|
|
8
8
|
<table><tr><th>Project name</th><td>ldcon</td></tr><tr><th>Owner</th><td>FanHarvard</td></tr>
|
|
@@ -18,8 +18,8 @@ python -m twine check --strict dist/*
|
|
|
18
18
|
python scripts/check_dist.py dist
|
|
19
19
|
python scripts/check_secrets.py
|
|
20
20
|
python -m pytest -q
|
|
21
|
-
git tag v0.2.
|
|
22
|
-
git push origin v0.2.
|
|
21
|
+
git tag v0.2.1
|
|
22
|
+
git push origin v0.2.1</pre>
|
|
23
23
|
<p>Create a GitHub Release for the tag to run <code>release.yml</code>, or dispatch that workflow at
|
|
24
24
|
the tag. The workflow checks the tag against package metadata, builds and audits distributions,
|
|
25
25
|
tests the wheel, and publishes through the dedicated environment. Do not reuse an uploaded PyPI version.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ldcon
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Summary: Laser operations, physical owners and fleet presentation
|
|
5
5
|
Author: FanHarvard contributors
|
|
6
6
|
License-Expression: MIT
|
|
@@ -43,7 +43,7 @@ Dynamic: license-file
|
|
|
43
43
|
**Still in active development.**
|
|
44
44
|
|
|
45
45
|
Laser locking, characterization and a Web dashboard. **ECDL and DFB/DBR control
|
|
46
|
-
are implemented**,
|
|
46
|
+
are implemented**, with digital-servo PI control and TOPTICA DLCpro adapters.
|
|
47
47
|
|
|
48
48
|
```sh
|
|
49
49
|
pip install "ldcon[web,instruments,analysis]"
|
|
@@ -55,6 +55,9 @@ Python 3.10+ on Linux. `experiment-core` installs automatically. Optional agent
|
|
|
55
55
|
messaging: `pip install "ldcon[agents]"` (installs `fanharvard-agentbridge`).
|
|
56
56
|
Provider CLIs and their authentication are separate.
|
|
57
57
|
|
|
58
|
+
Supported agent interfaces: **Claude Code, Codex and OpenCode**, with a DeepSeek
|
|
59
|
+
Harness adapter for card tasks.
|
|
60
|
+
|
|
58
61
|
**Agents** monitor results, diagnose problems and run bounded characterization,
|
|
59
62
|
parameter tuning and recovery through registered control cards. **Humans** choose
|
|
60
63
|
the experiment, target, hardware configuration and physical safety limits, and
|
|
@@ -69,11 +72,14 @@ Missing data remains unknown; quality labels are distinct from physical safety.
|
|
|
69
72
|
|
|
70
73
|
| Configuration | Hardware |
|
|
71
74
|
| --- | --- |
|
|
72
|
-
| ECDL /
|
|
73
|
-
| DFB/DBR | Wavemeter, current/TEC controller (e.g. Thorlabs CLD1015);
|
|
75
|
+
| ECDL / digital servo | Wavemeter and data feed, compatible digital servo/DAC, piezo driver, current/TEC controllers and supported AWGs (e.g. Siglent SDG) |
|
|
76
|
+
| DFB/DBR | Wavemeter, current/TEC controller (e.g. Thorlabs CLD1015); compatible digital servo/DAC and modulation input for native current PI |
|
|
74
77
|
| ECDL / DLCpro | TOPTICA DLCpro, wavemeter feedback; AWG/trigger connections for configured feedforward scans |
|
|
75
78
|
| Spectral quality / studies | Fringe image source for secondary-peak analysis; scope/telemetry and AWG where required by the selected measurement |
|
|
76
79
|
|
|
80
|
+
For digital-servo hardware and integration details, please contact
|
|
81
|
+
[kenjishu@fas.harvard.edu](mailto:kenjishu@fas.harvard.edu).
|
|
82
|
+
|
|
77
83
|
Tests use simulations, fake instruments and loopback services to cover control
|
|
78
84
|
contracts, owner exclusivity, uncertain writes, cancellation/recovery, tuning,
|
|
79
85
|
sweeps, configuration, quality reporting and Web behavior. They do not certify
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|