ei-agentic-claude 1.0.0
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.
- package/.dockerignore +13 -0
- package/.github/workflows/ci.yml +37 -0
- package/.github/workflows/npm-publish.yml +37 -0
- package/Dockerfile +44 -0
- package/Edge Impulse API.postman_collection.json +38570 -0
- package/README.md +360 -0
- package/README_PROMPTED_STEPS.md +79 -0
- package/check-keras-block-accuracy.ts +36 -0
- package/claude-config-example.json +17 -0
- package/launch-cli.mjs +14 -0
- package/package.json +39 -0
- package/scripts/apply-llm-suggestions.sh +39 -0
- package/scripts/assess.js +105 -0
- package/scripts/configure-org-projects.js +56 -0
- package/scripts/docker-test.sh +43 -0
- package/scripts/entrypoint.sh +31 -0
- package/scripts/fix-dist-imports.js +77 -0
- package/scripts/generate-integrity-dist.js +41 -0
- package/scripts/generate-prompts.js +89 -0
- package/scripts/list-apis.js +59 -0
- package/scripts/llm-integration-sim.js +120 -0
- package/scripts/llm-runner-sim.js +54 -0
- package/scripts/llm-runner.js +115 -0
- package/scripts/record-and-assess.sh +70 -0
- package/scripts/run-llm-iteration.sh +16 -0
- package/scripts/run-project-tests.sh +80 -0
- package/scripts/run-prompt-tests-sh.sh +43 -0
- package/scripts/run-prompt-tests.sh +53 -0
- package/scripts/smoke-test.js +64 -0
- package/scripts/test-apply-flow.sh +20 -0
- package/scripts/test-mcp-simple.js +50 -0
- package/scripts/test-mcp.js +76 -0
- package/scripts/test-reporter.js +175 -0
- package/setup-claude.sh +37 -0
- package/src/cli-helpers/wait-job.ts +39 -0
- package/src/cli.ts +20 -0
- package/src/mcp-server.ts +262 -0
- package/src/postman/edge-impulse/generate-cli-commands.ts +53 -0
- package/src/postman/edge-impulse/generate-clients.ts +60 -0
- package/src/postman/edge-impulse/generate-integrity.js +49 -0
- package/src/postman/edge-impulse/generated/accept_terms_of_service.ts +18 -0
- package/src/postman/edge-impulse/generated/activate_current_user.ts +18 -0
- package/src/postman/edge-impulse/generated/activate_user.ts +18 -0
- package/src/postman/edge-impulse/generated/activate_user_by_third_party_activation_code.ts +18 -0
- package/src/postman/edge-impulse/generated/add_a_collaborator_to_a_project_within_an_organisation.ts +18 -0
- package/src/postman/edge-impulse/generated/add_a_storage_bucket.ts +18 -0
- package/src/postman/edge-impulse/generated/add_api_key.ts +18 -0
- package/src/postman/edge-impulse/generated/add_collaborator.ts +18 -0
- package/src/postman/edge-impulse/generated/add_current_user_to_a_project.ts +18 -0
- package/src/postman/edge-impulse/generated/add_data_items_from_bucket.ts +18 -0
- package/src/postman/edge-impulse/generated/add_deploy_block.ts +18 -0
- package/src/postman/edge-impulse/generated/add_dsp_block.ts +18 -0
- package/src/postman/edge-impulse/generated/add_files.ts +18 -0
- package/src/postman/edge-impulse/generated/add_hmac_key.ts +18 -0
- package/src/postman/edge-impulse/generated/add_keywords_and_noise.ts +18 -0
- package/src/postman/edge-impulse/generated/add_member.ts +18 -0
- package/src/postman/edge-impulse/generated/add_new_data.ts +18 -0
- package/src/postman/edge-impulse/generated/add_note.ts +18 -0
- package/src/postman/edge-impulse/generated/add_secret.ts +18 -0
- package/src/postman/edge-impulse/generated/add_transfer_learning_block.ts +18 -0
- package/src/postman/edge-impulse/generated/add_transformation_block.ts +18 -0
- package/src/postman/edge-impulse/generated/add_user_to_a_project.ts +18 -0
- package/src/postman/edge-impulse/generated/admin_endpoint.ts +18 -0
- package/src/postman/edge-impulse/generated/anomaly_information.ts +18 -0
- package/src/postman/edge-impulse/generated/anomaly_metadata.ts +18 -0
- package/src/postman/edge-impulse/generated/anomaly_settings.ts +18 -0
- package/src/postman/edge-impulse/generated/auto_label_an_image.ts +18 -0
- package/src/postman/edge-impulse/generated/autotune_dsp_parameters.ts +18 -0
- package/src/postman/edge-impulse/generated/build_on_device_model.ts +18 -0
- package/src/postman/edge-impulse/generated/build_organizational_on_device_model.ts +18 -0
- package/src/postman/edge-impulse/generated/bulk_update_metadata.ts +18 -0
- package/src/postman/edge-impulse/generated/cancel_job.ts +18 -0
- package/src/postman/edge-impulse/generated/change_dataset.ts +18 -0
- package/src/postman/edge-impulse/generated/change_password.ts +18 -0
- package/src/postman/edge-impulse/generated/change_password_current_user.ts +18 -0
- package/src/postman/edge-impulse/generated/check_data_explorer_features.ts +18 -0
- package/src/postman/edge-impulse/generated/check_evaluate_job_result_cache.ts +18 -0
- package/src/postman/edge-impulse/generated/classify.ts +18 -0
- package/src/postman/edge-impulse/generated/classify_job_result.ts +18 -0
- package/src/postman/edge-impulse/generated/classify_sample.ts +18 -0
- package/src/postman/edge-impulse/generated/clear_checklist_for_data.ts +18 -0
- package/src/postman/edge-impulse/generated/clear_data_explorer.ts +18 -0
- package/src/postman/edge-impulse/generated/clear_dsp_block.ts +18 -0
- package/src/postman/edge-impulse/generated/clear_failed_transform_jobs.ts +18 -0
- package/src/postman/edge-impulse/generated/clear_performance_calibration_parameters.ts +18 -0
- package/src/postman/edge-impulse/generated/cli-commands/accept_terms_of_service.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/activate_current_user.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/activate_user.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/activate_user_by_third_party_activation_code.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/add_a_collaborator_to_a_project_within_an_organisation.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/add_a_storage_bucket.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/add_api_key.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/add_collaborator.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/add_current_user_to_a_project.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/add_data_items_from_bucket.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/add_deploy_block.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/add_dsp_block.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/add_files.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/add_hmac_key.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/add_keywords_and_noise.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/add_member.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/add_new_data.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/add_note.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/add_secret.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/add_transfer_learning_block.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/add_transformation_block.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/add_user_to_a_project.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/admin_endpoint.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/anomaly_information.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/anomaly_metadata.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/anomaly_settings.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/auto_label_an_image.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/autotune_dsp_parameters.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/build_on_device_model.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/build_organizational_on_device_model.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/bulk_update_metadata.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/cancel_job.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/change_dataset.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/change_password.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/change_password_current_user.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/check_data_explorer_features.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/check_evaluate_job_result_cache.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/classify.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/classify_job_result.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/classify_sample.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/clear_checklist_for_data.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/clear_data_explorer.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/clear_dsp_block.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/clear_failed_transform_jobs.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/clear_performance_calibration_parameters.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/convert_current_evaluation_user.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/count_samples.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/create_a_new_organization.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/create_a_new_white_label.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/create_developer_profile.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/create_device.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/create_evaluation_user.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/create_impulse.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/create_new_block_version.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/create_new_empty_project.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/create_new_organization.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/create_new_organization_within_white_label_context.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/create_new_project.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/create_or_login_a_user.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/create_pipeline.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/create_pre_signed_s3_upload_link.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/create_third_party_auth.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/create_trial.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/create_upload_portal.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/create_user.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/crop_sample.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/delete_a_project.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/delete_a_user.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/delete_an_organization.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/delete_create_project_file.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/delete_current_user.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/delete_data.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/delete_deploy_block.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/delete_device.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/delete_dsp_block.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/delete_eon_tuner_state.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/delete_file.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/delete_file_from_portal.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/delete_impulse.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/delete_photo.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/delete_pipeline.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/delete_theme_by_id.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/delete_third_party_auth.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/delete_transfer_learning_block.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/delete_transformation_block.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/delete_transformation_job.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/delete_upload_portal.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/delete_user.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/delete_versions.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/deletes_a_white_label.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/deploy_pretrained_model.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/deployment_targets.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/deployment_targets_data_sources.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/disable_multiple_samples.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/disable_sample.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/discourse.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/download.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/download_data.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/download_dsp_data.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/download_dsp_labels.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/download_file.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/download_file_from_portal.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/download_keras_data_export.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/download_keras_export.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/download_labels.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/download_logs.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/download_trained_model.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/edit_label.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/edit_labels_for_multiple_samples.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/enable_multiple_samples.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/enable_sample.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/evaluate.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/evaluate_job_result.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/export_data_as_wav.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/export_keras_block.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/export_keras_block_data.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/export_original_data.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/feature_importance.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/feature_labels.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/features_for_sample.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/find_a_user.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/find_segments.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/find_syntiant_posterior_parameters.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/generate_data_explorer_features.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/generate_features.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_a_white_label_project.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_a_white_label_user.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_all_organizations.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_all_organizations_within_a_white_label.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_all_projects.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_all_third_party_auth.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_all_user_ids.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_all_user_ids_active_last_30_days.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_all_users.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_all_white_label_projects.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_all_white_label_users.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_api_keys.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_buckets.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_buckets_current_user.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_config.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_current_user.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_data_axes_summary.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_data_explorer_features.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_data_explorer_predictions.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_data_explorer_settings.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_data_metadata.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_dataset.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_deploy_blocks.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_deployment_info.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_development_keys.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_device.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_downloads.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_dsp_blocks.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_global_metrics.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_global_white_label_metrics.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_ground_truth.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_hmac_keys.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_image_file.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_impulse.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_impulse_blocks.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_impulse_including_disabled_blocks.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_job_status.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_jwt_token.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_logs.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_metadata.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_notes.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_organization_information.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_organizations.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_parameter_sets.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_parameters.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_pipeline.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_pretrained_model.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_processed_sample_slice.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_project.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_project_sample_metadata.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_projects.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_public_metrics.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_raw_result.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_raw_sample.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_raw_sample_slice.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_results_from_dsp_autotuner.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_sample.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_sample_slice.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_secrets.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_socket_token.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_socket_token_for_an_organization.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_status.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_studio_api_containers_health.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_studio_web_containers_health.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_syntiant_posterior_parameters.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_tflite_profile_result.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_the_interval_in_ms_of_the_training_data.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_the_original_downsampled_data.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_theme_by_id.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_themes.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_third_party_auth.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_transfer_learning_blocks.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_transformation_blocks.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_transformation_job_status.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_trial_logs.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_url_of_export.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_user.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_user_by_third_party_activation_code.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_user_metrics.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_user_password_state.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_video_file.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_wav_file.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_white_label_domain.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_white_label_user_metrics.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/get_window_settings.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/give_access_to_project.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/hide_dataset.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/invite_member.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/job_summary.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/keras_information.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/keras_metadata.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/keras_settings.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/last_modification.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/launch_getting_started_wizard.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/list_active_jobs.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/list_active_organizations.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/list_active_projects.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/list_all_jobs.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/list_archived_pipelines.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/list_data.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/list_emails.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/list_files.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/list_files_in_portal.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/list_finished_jobs.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/list_pipelines.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/list_public_projects.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/list_public_versions.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/list_samples.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/list_storage_buckets.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/list_the_registered_white_labels.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/list_transformation_jobs.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/list_upload_portals.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/list_versions.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/lists_devices.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/make_a_version_public.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/make_version_private.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/move_multiple_samples.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/move_sample.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/object_detection_label_queue.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/object_detection_label_queue_count.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/optimize_model.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/organization_information.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/performance_calibration.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/portal_info.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/preview_file.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/profile_custom_dsp_block.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/profile_pretrained_model.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/profile_tflite_model.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/project_information.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/readme_io.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/rebalance_dataset.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/refresh_data.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/remove_all_samples.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/remove_all_samples_by_category.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/remove_collaborator.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/remove_current_user_from_a_project.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/remove_hmac_key.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/remove_member.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/remove_multiple_samples.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/remove_note.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/remove_organization.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/remove_project.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/remove_sample.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/remove_storage_bucket.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/remove_user_from_a_project.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/rename.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/rename_file_from_portal.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/rename_sample.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/request_activation_code.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/request_reset_password.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/resend_invitation.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/reset_password.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/restore_project_to_public_version.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/restore_project_to_version.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/retrain.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/retrieve_upload_portal_information.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/retrieves_available_transfer_learning_models.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/retrieves_dsp_block_parameters.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/retrieves_the_eon_tuner_state.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/retry_connection_to_dsp_block.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/retry_failed_transform_jobs.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/retry_processing.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/retry_transformation_file.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/retry_transformation_upload_job.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/revoke_api_key.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/rotate_upload_portal_token.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/run_pipelines.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/sample_of_trained_features.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/save_parameters_for_pretrained_model.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/save_performance_calibration_parameters.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/score_trial.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/search_space.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/segment_sample.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/set_bounding_boxes.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/set_compute_time_limit.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/set_config.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/set_data_explorer_settings.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/set_dsp_file_size_limit.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/set_member_datasets.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/set_member_role.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/set_password_for_sso_user.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/set_sample_metadata.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/set_syntiant_posterior_parameters.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/sets_eon_tuner_primary_model.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/split_sample_into_frames.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/start_sampling.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/start_transformation_job.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/store_the_last_segment_length.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/test_pretrained_model.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/track_objects.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/train_model_anomaly.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/train_model_keras.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/trained_features.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/trained_features_for_sample.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/transfer_ownership_organization.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/transfer_ownership_user.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/update_block_version_details.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/update_config.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/update_current_user.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/update_data_metadata.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/update_dataset.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/update_deploy_block.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/update_deployment_targets.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/update_dsp_block.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/update_job.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/update_note.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/update_organization.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/update_pipeline.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/update_project.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/update_storage_bucket.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/update_tags.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/update_theme_colors.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/update_theme_favicon.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/update_theme_logos.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/update_third_party_auth.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/update_transfer_learning_block.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/update_transformation_block.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/update_transformation_job.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/update_upload_portal.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/update_user.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/update_version.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/update_white_label_project.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/update_white_label_user.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/upload_a_custom_block.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/upload_a_data_explorer_screenshot.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/upload_a_pretrained_model.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/upload_image_for_readme.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/upload_keras_files.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/upload_organization_header_image.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/upload_organization_logo.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/upload_performance_calibration_audio_files.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/upload_photo.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/user_cdn_resource.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/verify_bucket_connectivity.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/verify_custom_dsp_block.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/verify_reset_password_code.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/verify_upload_portal_information.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/version_project.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/view_file_from_portal.ts +19 -0
- package/src/postman/edge-impulse/generated/cli-commands/wait_job.ts +22 -0
- package/src/postman/edge-impulse/generated/cli-commands/white_label_information.ts +19 -0
- package/src/postman/edge-impulse/generated/convert_current_evaluation_user.ts +18 -0
- package/src/postman/edge-impulse/generated/count_samples.ts +18 -0
- package/src/postman/edge-impulse/generated/create_a_new_organization.ts +18 -0
- package/src/postman/edge-impulse/generated/create_a_new_white_label.ts +18 -0
- package/src/postman/edge-impulse/generated/create_developer_profile.ts +18 -0
- package/src/postman/edge-impulse/generated/create_device.ts +18 -0
- package/src/postman/edge-impulse/generated/create_evaluation_user.ts +18 -0
- package/src/postman/edge-impulse/generated/create_impulse.ts +18 -0
- package/src/postman/edge-impulse/generated/create_new_block_version.ts +18 -0
- package/src/postman/edge-impulse/generated/create_new_empty_project.ts +18 -0
- package/src/postman/edge-impulse/generated/create_new_organization.ts +18 -0
- package/src/postman/edge-impulse/generated/create_new_organization_within_white_label_context.ts +18 -0
- package/src/postman/edge-impulse/generated/create_new_project.ts +18 -0
- package/src/postman/edge-impulse/generated/create_or_login_a_user.ts +18 -0
- package/src/postman/edge-impulse/generated/create_pipeline.ts +18 -0
- package/src/postman/edge-impulse/generated/create_pre_signed_s3_upload_link.ts +18 -0
- package/src/postman/edge-impulse/generated/create_third_party_auth.ts +18 -0
- package/src/postman/edge-impulse/generated/create_trial.ts +18 -0
- package/src/postman/edge-impulse/generated/create_upload_portal.ts +18 -0
- package/src/postman/edge-impulse/generated/create_user.ts +18 -0
- package/src/postman/edge-impulse/generated/crop_sample.ts +18 -0
- package/src/postman/edge-impulse/generated/delete_a_project.ts +18 -0
- package/src/postman/edge-impulse/generated/delete_a_user.ts +18 -0
- package/src/postman/edge-impulse/generated/delete_an_organization.ts +18 -0
- package/src/postman/edge-impulse/generated/delete_create_project_file.ts +18 -0
- package/src/postman/edge-impulse/generated/delete_current_user.ts +18 -0
- package/src/postman/edge-impulse/generated/delete_data.ts +18 -0
- package/src/postman/edge-impulse/generated/delete_deploy_block.ts +18 -0
- package/src/postman/edge-impulse/generated/delete_device.ts +18 -0
- package/src/postman/edge-impulse/generated/delete_dsp_block.ts +18 -0
- package/src/postman/edge-impulse/generated/delete_eon_tuner_state.ts +18 -0
- package/src/postman/edge-impulse/generated/delete_file.ts +18 -0
- package/src/postman/edge-impulse/generated/delete_file_from_portal.ts +18 -0
- package/src/postman/edge-impulse/generated/delete_impulse.ts +18 -0
- package/src/postman/edge-impulse/generated/delete_photo.ts +18 -0
- package/src/postman/edge-impulse/generated/delete_pipeline.ts +18 -0
- package/src/postman/edge-impulse/generated/delete_theme_by_id.ts +18 -0
- package/src/postman/edge-impulse/generated/delete_third_party_auth.ts +18 -0
- package/src/postman/edge-impulse/generated/delete_transfer_learning_block.ts +18 -0
- package/src/postman/edge-impulse/generated/delete_transformation_block.ts +18 -0
- package/src/postman/edge-impulse/generated/delete_transformation_job.ts +18 -0
- package/src/postman/edge-impulse/generated/delete_upload_portal.ts +18 -0
- package/src/postman/edge-impulse/generated/delete_user.ts +18 -0
- package/src/postman/edge-impulse/generated/delete_versions.ts +18 -0
- package/src/postman/edge-impulse/generated/deletes_a_white_label.ts +18 -0
- package/src/postman/edge-impulse/generated/deploy_pretrained_model.ts +18 -0
- package/src/postman/edge-impulse/generated/deployment_targets.ts +18 -0
- package/src/postman/edge-impulse/generated/deployment_targets_data_sources.ts +18 -0
- package/src/postman/edge-impulse/generated/disable_multiple_samples.ts +18 -0
- package/src/postman/edge-impulse/generated/disable_sample.ts +18 -0
- package/src/postman/edge-impulse/generated/discourse.ts +18 -0
- package/src/postman/edge-impulse/generated/download.ts +18 -0
- package/src/postman/edge-impulse/generated/download_data.ts +18 -0
- package/src/postman/edge-impulse/generated/download_dsp_data.ts +18 -0
- package/src/postman/edge-impulse/generated/download_dsp_labels.ts +18 -0
- package/src/postman/edge-impulse/generated/download_file.ts +18 -0
- package/src/postman/edge-impulse/generated/download_file_from_portal.ts +18 -0
- package/src/postman/edge-impulse/generated/download_keras_data_export.ts +18 -0
- package/src/postman/edge-impulse/generated/download_keras_export.ts +18 -0
- package/src/postman/edge-impulse/generated/download_labels.ts +18 -0
- package/src/postman/edge-impulse/generated/download_logs.ts +18 -0
- package/src/postman/edge-impulse/generated/download_trained_model.ts +18 -0
- package/src/postman/edge-impulse/generated/edit_label.ts +18 -0
- package/src/postman/edge-impulse/generated/edit_labels_for_multiple_samples.ts +18 -0
- package/src/postman/edge-impulse/generated/enable_multiple_samples.ts +18 -0
- package/src/postman/edge-impulse/generated/enable_sample.ts +18 -0
- package/src/postman/edge-impulse/generated/evaluate.ts +18 -0
- package/src/postman/edge-impulse/generated/evaluate_job_result.ts +18 -0
- package/src/postman/edge-impulse/generated/export_data_as_wav.ts +18 -0
- package/src/postman/edge-impulse/generated/export_keras_block.ts +18 -0
- package/src/postman/edge-impulse/generated/export_keras_block_data.ts +18 -0
- package/src/postman/edge-impulse/generated/export_original_data.ts +18 -0
- package/src/postman/edge-impulse/generated/feature_importance.ts +18 -0
- package/src/postman/edge-impulse/generated/feature_labels.ts +18 -0
- package/src/postman/edge-impulse/generated/features_for_sample.ts +18 -0
- package/src/postman/edge-impulse/generated/find_a_user.ts +18 -0
- package/src/postman/edge-impulse/generated/find_segments.ts +18 -0
- package/src/postman/edge-impulse/generated/find_syntiant_posterior_parameters.ts +18 -0
- package/src/postman/edge-impulse/generated/generate_data_explorer_features.ts +18 -0
- package/src/postman/edge-impulse/generated/generate_features.ts +18 -0
- package/src/postman/edge-impulse/generated/get_a_white_label_project.ts +18 -0
- package/src/postman/edge-impulse/generated/get_a_white_label_user.ts +18 -0
- package/src/postman/edge-impulse/generated/get_all_organizations.ts +18 -0
- package/src/postman/edge-impulse/generated/get_all_organizations_within_a_white_label.ts +18 -0
- package/src/postman/edge-impulse/generated/get_all_projects.ts +18 -0
- package/src/postman/edge-impulse/generated/get_all_third_party_auth.ts +18 -0
- package/src/postman/edge-impulse/generated/get_all_user_ids.ts +18 -0
- package/src/postman/edge-impulse/generated/get_all_user_ids_active_last_30_days.ts +18 -0
- package/src/postman/edge-impulse/generated/get_all_users.ts +18 -0
- package/src/postman/edge-impulse/generated/get_all_white_label_projects.ts +18 -0
- package/src/postman/edge-impulse/generated/get_all_white_label_users.ts +18 -0
- package/src/postman/edge-impulse/generated/get_api_keys.ts +18 -0
- package/src/postman/edge-impulse/generated/get_buckets.ts +18 -0
- package/src/postman/edge-impulse/generated/get_buckets_current_user.ts +18 -0
- package/src/postman/edge-impulse/generated/get_config.ts +18 -0
- package/src/postman/edge-impulse/generated/get_current_user.ts +18 -0
- package/src/postman/edge-impulse/generated/get_data_axes_summary.ts +18 -0
- package/src/postman/edge-impulse/generated/get_data_explorer_features.ts +18 -0
- package/src/postman/edge-impulse/generated/get_data_explorer_predictions.ts +18 -0
- package/src/postman/edge-impulse/generated/get_data_explorer_settings.ts +18 -0
- package/src/postman/edge-impulse/generated/get_data_metadata.ts +18 -0
- package/src/postman/edge-impulse/generated/get_dataset.ts +18 -0
- package/src/postman/edge-impulse/generated/get_deploy_blocks.ts +18 -0
- package/src/postman/edge-impulse/generated/get_deployment_info.ts +18 -0
- package/src/postman/edge-impulse/generated/get_development_keys.ts +18 -0
- package/src/postman/edge-impulse/generated/get_device.ts +18 -0
- package/src/postman/edge-impulse/generated/get_downloads.ts +18 -0
- package/src/postman/edge-impulse/generated/get_dsp_blocks.ts +18 -0
- package/src/postman/edge-impulse/generated/get_global_metrics.ts +18 -0
- package/src/postman/edge-impulse/generated/get_global_white_label_metrics.ts +18 -0
- package/src/postman/edge-impulse/generated/get_ground_truth.ts +18 -0
- package/src/postman/edge-impulse/generated/get_hmac_keys.ts +18 -0
- package/src/postman/edge-impulse/generated/get_image_file.ts +18 -0
- package/src/postman/edge-impulse/generated/get_impulse.ts +18 -0
- package/src/postman/edge-impulse/generated/get_impulse_blocks.ts +18 -0
- package/src/postman/edge-impulse/generated/get_impulse_including_disabled_blocks.ts +18 -0
- package/src/postman/edge-impulse/generated/get_job_status.ts +29 -0
- package/src/postman/edge-impulse/generated/get_jwt_token.ts +18 -0
- package/src/postman/edge-impulse/generated/get_logs.ts +18 -0
- package/src/postman/edge-impulse/generated/get_metadata.ts +18 -0
- package/src/postman/edge-impulse/generated/get_notes.ts +18 -0
- package/src/postman/edge-impulse/generated/get_organization_information.ts +18 -0
- package/src/postman/edge-impulse/generated/get_organizations.ts +18 -0
- package/src/postman/edge-impulse/generated/get_parameter_sets.ts +18 -0
- package/src/postman/edge-impulse/generated/get_parameters.ts +18 -0
- package/src/postman/edge-impulse/generated/get_pipeline.ts +18 -0
- package/src/postman/edge-impulse/generated/get_pretrained_model.ts +18 -0
- package/src/postman/edge-impulse/generated/get_processed_sample_slice.ts +18 -0
- package/src/postman/edge-impulse/generated/get_project.ts +18 -0
- package/src/postman/edge-impulse/generated/get_project_sample_metadata.ts +18 -0
- package/src/postman/edge-impulse/generated/get_projects.ts +48 -0
- package/src/postman/edge-impulse/generated/get_public_metrics.ts +18 -0
- package/src/postman/edge-impulse/generated/get_raw_result.ts +18 -0
- package/src/postman/edge-impulse/generated/get_raw_sample.ts +18 -0
- package/src/postman/edge-impulse/generated/get_raw_sample_slice.ts +18 -0
- package/src/postman/edge-impulse/generated/get_results_from_dsp_autotuner.ts +18 -0
- package/src/postman/edge-impulse/generated/get_sample.ts +18 -0
- package/src/postman/edge-impulse/generated/get_sample_slice.ts +18 -0
- package/src/postman/edge-impulse/generated/get_secrets.ts +18 -0
- package/src/postman/edge-impulse/generated/get_socket_token.ts +18 -0
- package/src/postman/edge-impulse/generated/get_socket_token_for_an_organization.ts +18 -0
- package/src/postman/edge-impulse/generated/get_status.ts +18 -0
- package/src/postman/edge-impulse/generated/get_studio_api_containers_health.ts +18 -0
- package/src/postman/edge-impulse/generated/get_studio_web_containers_health.ts +18 -0
- package/src/postman/edge-impulse/generated/get_syntiant_posterior_parameters.ts +18 -0
- package/src/postman/edge-impulse/generated/get_tflite_profile_result.ts +18 -0
- package/src/postman/edge-impulse/generated/get_the_interval_in_ms_of_the_training_data.ts +18 -0
- package/src/postman/edge-impulse/generated/get_the_original_downsampled_data.ts +18 -0
- package/src/postman/edge-impulse/generated/get_theme_by_id.ts +18 -0
- package/src/postman/edge-impulse/generated/get_themes.ts +18 -0
- package/src/postman/edge-impulse/generated/get_third_party_auth.ts +18 -0
- package/src/postman/edge-impulse/generated/get_transfer_learning_blocks.ts +18 -0
- package/src/postman/edge-impulse/generated/get_transformation_blocks.ts +18 -0
- package/src/postman/edge-impulse/generated/get_transformation_job_status.ts +18 -0
- package/src/postman/edge-impulse/generated/get_trial_logs.ts +18 -0
- package/src/postman/edge-impulse/generated/get_url_of_export.ts +18 -0
- package/src/postman/edge-impulse/generated/get_user.ts +18 -0
- package/src/postman/edge-impulse/generated/get_user_by_third_party_activation_code.ts +18 -0
- package/src/postman/edge-impulse/generated/get_user_metrics.ts +18 -0
- package/src/postman/edge-impulse/generated/get_user_password_state.ts +18 -0
- package/src/postman/edge-impulse/generated/get_video_file.ts +18 -0
- package/src/postman/edge-impulse/generated/get_wav_file.ts +18 -0
- package/src/postman/edge-impulse/generated/get_white_label_domain.ts +18 -0
- package/src/postman/edge-impulse/generated/get_white_label_user_metrics.ts +18 -0
- package/src/postman/edge-impulse/generated/get_window_settings.ts +18 -0
- package/src/postman/edge-impulse/generated/give_access_to_project.ts +18 -0
- package/src/postman/edge-impulse/generated/hide_dataset.ts +18 -0
- package/src/postman/edge-impulse/generated/invite_member.ts +18 -0
- package/src/postman/edge-impulse/generated/job_summary.ts +18 -0
- package/src/postman/edge-impulse/generated/keras_information.ts +18 -0
- package/src/postman/edge-impulse/generated/keras_metadata.ts +18 -0
- package/src/postman/edge-impulse/generated/keras_settings.ts +18 -0
- package/src/postman/edge-impulse/generated/last_modification.ts +18 -0
- package/src/postman/edge-impulse/generated/launch_getting_started_wizard.ts +18 -0
- package/src/postman/edge-impulse/generated/list_active_jobs.ts +18 -0
- package/src/postman/edge-impulse/generated/list_active_organizations.ts +18 -0
- package/src/postman/edge-impulse/generated/list_active_projects.ts +18 -0
- package/src/postman/edge-impulse/generated/list_all_jobs.ts +18 -0
- package/src/postman/edge-impulse/generated/list_archived_pipelines.ts +18 -0
- package/src/postman/edge-impulse/generated/list_data.ts +18 -0
- package/src/postman/edge-impulse/generated/list_emails.ts +18 -0
- package/src/postman/edge-impulse/generated/list_files.ts +18 -0
- package/src/postman/edge-impulse/generated/list_files_in_portal.ts +18 -0
- package/src/postman/edge-impulse/generated/list_finished_jobs.ts +18 -0
- package/src/postman/edge-impulse/generated/list_pipelines.ts +18 -0
- package/src/postman/edge-impulse/generated/list_public_projects.ts +18 -0
- package/src/postman/edge-impulse/generated/list_public_versions.ts +18 -0
- package/src/postman/edge-impulse/generated/list_samples.ts +18 -0
- package/src/postman/edge-impulse/generated/list_storage_buckets.ts +18 -0
- package/src/postman/edge-impulse/generated/list_the_registered_white_labels.ts +18 -0
- package/src/postman/edge-impulse/generated/list_transformation_jobs.ts +18 -0
- package/src/postman/edge-impulse/generated/list_upload_portals.ts +18 -0
- package/src/postman/edge-impulse/generated/list_versions.ts +18 -0
- package/src/postman/edge-impulse/generated/lists_devices.ts +18 -0
- package/src/postman/edge-impulse/generated/make_a_version_public.ts +18 -0
- package/src/postman/edge-impulse/generated/make_version_private.ts +18 -0
- package/src/postman/edge-impulse/generated/move_multiple_samples.ts +18 -0
- package/src/postman/edge-impulse/generated/move_sample.ts +18 -0
- package/src/postman/edge-impulse/generated/object_detection_label_queue.ts +18 -0
- package/src/postman/edge-impulse/generated/object_detection_label_queue_count.ts +18 -0
- package/src/postman/edge-impulse/generated/optimize_model.ts +28 -0
- package/src/postman/edge-impulse/generated/organization_information.ts +18 -0
- package/src/postman/edge-impulse/generated/performance_calibration.ts +18 -0
- package/src/postman/edge-impulse/generated/portal_info.ts +18 -0
- package/src/postman/edge-impulse/generated/preview_file.ts +18 -0
- package/src/postman/edge-impulse/generated/profile_custom_dsp_block.ts +18 -0
- package/src/postman/edge-impulse/generated/profile_pretrained_model.ts +18 -0
- package/src/postman/edge-impulse/generated/profile_tflite_model.ts +18 -0
- package/src/postman/edge-impulse/generated/project_information.ts +18 -0
- package/src/postman/edge-impulse/generated/readme_io.ts +18 -0
- package/src/postman/edge-impulse/generated/rebalance_dataset.ts +18 -0
- package/src/postman/edge-impulse/generated/refresh_data.ts +18 -0
- package/src/postman/edge-impulse/generated/remove_all_samples.ts +18 -0
- package/src/postman/edge-impulse/generated/remove_all_samples_by_category.ts +18 -0
- package/src/postman/edge-impulse/generated/remove_collaborator.ts +18 -0
- package/src/postman/edge-impulse/generated/remove_current_user_from_a_project.ts +18 -0
- package/src/postman/edge-impulse/generated/remove_hmac_key.ts +18 -0
- package/src/postman/edge-impulse/generated/remove_member.ts +18 -0
- package/src/postman/edge-impulse/generated/remove_multiple_samples.ts +18 -0
- package/src/postman/edge-impulse/generated/remove_note.ts +18 -0
- package/src/postman/edge-impulse/generated/remove_organization.ts +18 -0
- package/src/postman/edge-impulse/generated/remove_project.ts +18 -0
- package/src/postman/edge-impulse/generated/remove_sample.ts +18 -0
- package/src/postman/edge-impulse/generated/remove_storage_bucket.ts +18 -0
- package/src/postman/edge-impulse/generated/remove_user_from_a_project.ts +18 -0
- package/src/postman/edge-impulse/generated/rename.ts +18 -0
- package/src/postman/edge-impulse/generated/rename_file_from_portal.ts +18 -0
- package/src/postman/edge-impulse/generated/rename_sample.ts +18 -0
- package/src/postman/edge-impulse/generated/request_activation_code.ts +18 -0
- package/src/postman/edge-impulse/generated/request_reset_password.ts +18 -0
- package/src/postman/edge-impulse/generated/resend_invitation.ts +18 -0
- package/src/postman/edge-impulse/generated/reset_password.ts +18 -0
- package/src/postman/edge-impulse/generated/restore_project_to_public_version.ts +18 -0
- package/src/postman/edge-impulse/generated/restore_project_to_version.ts +18 -0
- package/src/postman/edge-impulse/generated/retrain.ts +32 -0
- package/src/postman/edge-impulse/generated/retrieve_upload_portal_information.ts +18 -0
- package/src/postman/edge-impulse/generated/retrieves_available_transfer_learning_models.ts +18 -0
- package/src/postman/edge-impulse/generated/retrieves_dsp_block_parameters.ts +18 -0
- package/src/postman/edge-impulse/generated/retrieves_the_eon_tuner_state.ts +18 -0
- package/src/postman/edge-impulse/generated/retry_connection_to_dsp_block.ts +18 -0
- package/src/postman/edge-impulse/generated/retry_failed_transform_jobs.ts +18 -0
- package/src/postman/edge-impulse/generated/retry_processing.ts +18 -0
- package/src/postman/edge-impulse/generated/retry_transformation_file.ts +18 -0
- package/src/postman/edge-impulse/generated/retry_transformation_upload_job.ts +18 -0
- package/src/postman/edge-impulse/generated/revoke_api_key.ts +18 -0
- package/src/postman/edge-impulse/generated/rotate_upload_portal_token.ts +18 -0
- package/src/postman/edge-impulse/generated/run_pipelines.ts +18 -0
- package/src/postman/edge-impulse/generated/sample_of_trained_features.ts +18 -0
- package/src/postman/edge-impulse/generated/save_parameters_for_pretrained_model.ts +18 -0
- package/src/postman/edge-impulse/generated/save_performance_calibration_parameters.ts +18 -0
- package/src/postman/edge-impulse/generated/score_trial.ts +18 -0
- package/src/postman/edge-impulse/generated/search_space.ts +18 -0
- package/src/postman/edge-impulse/generated/segment_sample.ts +18 -0
- package/src/postman/edge-impulse/generated/set_bounding_boxes.ts +18 -0
- package/src/postman/edge-impulse/generated/set_compute_time_limit.ts +18 -0
- package/src/postman/edge-impulse/generated/set_config.ts +18 -0
- package/src/postman/edge-impulse/generated/set_data_explorer_settings.ts +18 -0
- package/src/postman/edge-impulse/generated/set_dsp_file_size_limit.ts +18 -0
- package/src/postman/edge-impulse/generated/set_member_datasets.ts +18 -0
- package/src/postman/edge-impulse/generated/set_member_role.ts +18 -0
- package/src/postman/edge-impulse/generated/set_password_for_sso_user.ts +18 -0
- package/src/postman/edge-impulse/generated/set_sample_metadata.ts +18 -0
- package/src/postman/edge-impulse/generated/set_syntiant_posterior_parameters.ts +18 -0
- package/src/postman/edge-impulse/generated/sets_eon_tuner_primary_model.ts +18 -0
- package/src/postman/edge-impulse/generated/split_sample_into_frames.ts +18 -0
- package/src/postman/edge-impulse/generated/start_sampling.ts +18 -0
- package/src/postman/edge-impulse/generated/start_transformation_job.ts +18 -0
- package/src/postman/edge-impulse/generated/store_the_last_segment_length.ts +18 -0
- package/src/postman/edge-impulse/generated/test_pretrained_model.ts +18 -0
- package/src/postman/edge-impulse/generated/track_objects.ts +18 -0
- package/src/postman/edge-impulse/generated/train_model_anomaly.ts +18 -0
- package/src/postman/edge-impulse/generated/train_model_keras.ts +34 -0
- package/src/postman/edge-impulse/generated/trained_features.ts +18 -0
- package/src/postman/edge-impulse/generated/trained_features_for_sample.ts +18 -0
- package/src/postman/edge-impulse/generated/transfer_ownership_organization.ts +18 -0
- package/src/postman/edge-impulse/generated/transfer_ownership_user.ts +18 -0
- package/src/postman/edge-impulse/generated/update_block_version_details.ts +18 -0
- package/src/postman/edge-impulse/generated/update_config.ts +18 -0
- package/src/postman/edge-impulse/generated/update_current_user.ts +18 -0
- package/src/postman/edge-impulse/generated/update_data_metadata.ts +18 -0
- package/src/postman/edge-impulse/generated/update_dataset.ts +18 -0
- package/src/postman/edge-impulse/generated/update_deploy_block.ts +18 -0
- package/src/postman/edge-impulse/generated/update_deployment_targets.ts +18 -0
- package/src/postman/edge-impulse/generated/update_dsp_block.ts +18 -0
- package/src/postman/edge-impulse/generated/update_job.ts +18 -0
- package/src/postman/edge-impulse/generated/update_note.ts +18 -0
- package/src/postman/edge-impulse/generated/update_organization.ts +18 -0
- package/src/postman/edge-impulse/generated/update_pipeline.ts +18 -0
- package/src/postman/edge-impulse/generated/update_project.ts +18 -0
- package/src/postman/edge-impulse/generated/update_storage_bucket.ts +18 -0
- package/src/postman/edge-impulse/generated/update_tags.ts +18 -0
- package/src/postman/edge-impulse/generated/update_theme_colors.ts +18 -0
- package/src/postman/edge-impulse/generated/update_theme_favicon.ts +18 -0
- package/src/postman/edge-impulse/generated/update_theme_logos.ts +18 -0
- package/src/postman/edge-impulse/generated/update_third_party_auth.ts +18 -0
- package/src/postman/edge-impulse/generated/update_transfer_learning_block.ts +18 -0
- package/src/postman/edge-impulse/generated/update_transformation_block.ts +18 -0
- package/src/postman/edge-impulse/generated/update_transformation_job.ts +18 -0
- package/src/postman/edge-impulse/generated/update_upload_portal.ts +18 -0
- package/src/postman/edge-impulse/generated/update_user.ts +18 -0
- package/src/postman/edge-impulse/generated/update_version.ts +18 -0
- package/src/postman/edge-impulse/generated/update_white_label_project.ts +18 -0
- package/src/postman/edge-impulse/generated/update_white_label_user.ts +18 -0
- package/src/postman/edge-impulse/generated/upload_a_custom_block.ts +18 -0
- package/src/postman/edge-impulse/generated/upload_a_data_explorer_screenshot.ts +18 -0
- package/src/postman/edge-impulse/generated/upload_a_pretrained_model.ts +18 -0
- package/src/postman/edge-impulse/generated/upload_image_for_readme.ts +18 -0
- package/src/postman/edge-impulse/generated/upload_keras_files.ts +18 -0
- package/src/postman/edge-impulse/generated/upload_organization_header_image.ts +18 -0
- package/src/postman/edge-impulse/generated/upload_organization_logo.ts +18 -0
- package/src/postman/edge-impulse/generated/upload_performance_calibration_audio_files.ts +18 -0
- package/src/postman/edge-impulse/generated/upload_photo.ts +18 -0
- package/src/postman/edge-impulse/generated/user_cdn_resource.ts +18 -0
- package/src/postman/edge-impulse/generated/verify_bucket_connectivity.ts +18 -0
- package/src/postman/edge-impulse/generated/verify_custom_dsp_block.ts +18 -0
- package/src/postman/edge-impulse/generated/verify_reset_password_code.ts +18 -0
- package/src/postman/edge-impulse/generated/verify_upload_portal_information.ts +18 -0
- package/src/postman/edge-impulse/generated/version_project.ts +18 -0
- package/src/postman/edge-impulse/generated/view_file_from_portal.ts +18 -0
- package/src/postman/edge-impulse/generated/white_label_information.ts +18 -0
- package/src/postman/edge-impulse/integrity.json +367 -0
- package/src/postman/edge-impulse/projects/list-projects/client.ts +26 -0
- package/src/postman/edge-impulse/projects/upload-data/client.ts +51 -0
- package/src/postman/edge-impulse/shared/types.ts +39 -0
- package/src/postman/edge-impulse/training/start-training/client.ts +47 -0
- package/src/postman/edge-impulse/training/start-training/evaluate.ts +32 -0
- package/src/postman/edge-impulse/training/start-training/status.ts +20 -0
- package/src/register-generated-commands.ts +47 -0
- package/test/api-coverage.spec.ts +177 -0
- package/test/cli.spec.ts +29 -0
- package/test/mock-server.ts +431 -0
- package/tsconfig.json +13 -0
- package/tutorial.md +69 -0
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { execSync } from 'child_process';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import { fileURLToPath } from 'url';
|
|
6
|
+
import fs from 'fs';
|
|
7
|
+
|
|
8
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
9
|
+
const __dirname = path.dirname(__filename);
|
|
10
|
+
|
|
11
|
+
function runTests() {
|
|
12
|
+
try {
|
|
13
|
+
// Run tests with JSON reporter for programmatic output
|
|
14
|
+
const output = execSync('npm test -- --run --reporter=json', {
|
|
15
|
+
cwd: path.resolve(__dirname, '..'),
|
|
16
|
+
encoding: 'utf8',
|
|
17
|
+
stdio: 'pipe'
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
const results = JSON.parse(output);
|
|
21
|
+
|
|
22
|
+
// Transform results into a more programmatic format
|
|
23
|
+
const programmaticResults = {
|
|
24
|
+
timestamp: new Date().toISOString(),
|
|
25
|
+
framework: 'vitest',
|
|
26
|
+
version: results.config?.version || 'unknown',
|
|
27
|
+
total: {
|
|
28
|
+
files: results.numTotalTestSuites,
|
|
29
|
+
tests: results.numTotalTests,
|
|
30
|
+
passed: results.numPassedTests,
|
|
31
|
+
failed: results.numFailedTests,
|
|
32
|
+
duration: results.testResults?.[0]?.perfStats?.runtime || 0
|
|
33
|
+
},
|
|
34
|
+
files: results.testResults.map(file => ({
|
|
35
|
+
name: path.basename(file.testFilePath),
|
|
36
|
+
path: file.testFilePath,
|
|
37
|
+
status: file.status,
|
|
38
|
+
duration: file.perfStats?.runtime || 0,
|
|
39
|
+
tests: file.testResults.map(test => ({
|
|
40
|
+
name: test.title,
|
|
41
|
+
status: test.status,
|
|
42
|
+
duration: test.duration || 0,
|
|
43
|
+
error: test.failureMessages?.[0] || null
|
|
44
|
+
}))
|
|
45
|
+
}))
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
console.log(JSON.stringify(programmaticResults, null, 2));
|
|
49
|
+
return programmaticResults;
|
|
50
|
+
|
|
51
|
+
} catch (error) {
|
|
52
|
+
console.error('Failed to run tests:', error.message);
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// Alternative: Parse verbose text output and include API coverage
|
|
58
|
+
function parseVerboseOutput() {
|
|
59
|
+
try {
|
|
60
|
+
const output = execSync('npm test -- --run --reporter=verbose', {
|
|
61
|
+
cwd: path.resolve(__dirname, '..'),
|
|
62
|
+
encoding: 'utf8',
|
|
63
|
+
stdio: 'pipe'
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
const lines = output.split('\n');
|
|
67
|
+
const results = {
|
|
68
|
+
timestamp: new Date().toISOString(),
|
|
69
|
+
framework: 'vitest',
|
|
70
|
+
files: [],
|
|
71
|
+
apiCoverage: {
|
|
72
|
+
totalApis: 0,
|
|
73
|
+
categories: {},
|
|
74
|
+
allApis: []
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
const fileMap = new Map();
|
|
79
|
+
|
|
80
|
+
for (const line of lines) {
|
|
81
|
+
// Match individual test: ✓ test/cli.spec.ts > CLI smoke > shows top-level help
|
|
82
|
+
const testMatch = line.match(/^ ✓ (.+\.spec\.ts) > (.+) > (.+?)(?:\s+\d+ms)?$/);
|
|
83
|
+
if (testMatch) {
|
|
84
|
+
const [, fileName, suiteName, testName] = testMatch;
|
|
85
|
+
|
|
86
|
+
if (!fileMap.has(fileName)) {
|
|
87
|
+
fileMap.set(fileName, {
|
|
88
|
+
name: fileName,
|
|
89
|
+
suites: new Map()
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
const file = fileMap.get(fileName);
|
|
94
|
+
|
|
95
|
+
if (!file.suites.has(suiteName)) {
|
|
96
|
+
file.suites.set(suiteName, {
|
|
97
|
+
name: suiteName,
|
|
98
|
+
tests: []
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
const suite = file.suites.get(suiteName);
|
|
103
|
+
suite.tests.push({
|
|
104
|
+
name: testName,
|
|
105
|
+
status: 'passed'
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// Convert maps to arrays
|
|
111
|
+
for (const [fileName, file] of fileMap) {
|
|
112
|
+
const fileObj = {
|
|
113
|
+
name: fileName,
|
|
114
|
+
suites: Array.from(file.suites.values()).map(suite => ({
|
|
115
|
+
name: suite.name,
|
|
116
|
+
tests: suite.tests
|
|
117
|
+
}))
|
|
118
|
+
};
|
|
119
|
+
results.files.push(fileObj);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// Get API coverage information
|
|
123
|
+
const apiDir = path.resolve(__dirname, '../src/postman/edge-impulse/generated');
|
|
124
|
+
if (fs.existsSync(apiDir)) {
|
|
125
|
+
const apiFiles = fs.readdirSync(apiDir)
|
|
126
|
+
.filter(f => f.endsWith('.ts') && !f.includes('cli-commands'))
|
|
127
|
+
.map(f => f.replace('.ts', ''));
|
|
128
|
+
|
|
129
|
+
results.apiCoverage.totalApis = apiFiles.length;
|
|
130
|
+
results.apiCoverage.allApis = apiFiles;
|
|
131
|
+
|
|
132
|
+
// Categorize APIs
|
|
133
|
+
const categories = {
|
|
134
|
+
projects: apiFiles.filter(f => f.includes('project')),
|
|
135
|
+
users: apiFiles.filter(f => f.includes('user')),
|
|
136
|
+
jobs: apiFiles.filter(f => f.includes('job')),
|
|
137
|
+
training: apiFiles.filter(f => f.includes('train') || f.includes('keras') || f.includes('optimize') || f.includes('retrain')),
|
|
138
|
+
data: apiFiles.filter(f => f.includes('data') || f.includes('sample') || f.includes('dataset')),
|
|
139
|
+
organizations: apiFiles.filter(f => f.includes('organization')),
|
|
140
|
+
deployments: apiFiles.filter(f => f.includes('deploy')),
|
|
141
|
+
dsp: apiFiles.filter(f => f.includes('dsp')),
|
|
142
|
+
evaluation: apiFiles.filter(f => f.includes('evaluate')),
|
|
143
|
+
files: apiFiles.filter(f => f.includes('file') || f.includes('upload') || f.includes('download')),
|
|
144
|
+
admin: apiFiles.filter(f => f.includes('admin') || f.includes('white_label') || f.includes('theme')),
|
|
145
|
+
auth: apiFiles.filter(f => f.includes('auth') || f.includes('login') || f.includes('token')),
|
|
146
|
+
models: apiFiles.filter(f => f.includes('model') || f.includes('impulse')),
|
|
147
|
+
devices: apiFiles.filter(f => f.includes('device')),
|
|
148
|
+
pipelines: apiFiles.filter(f => f.includes('pipeline')),
|
|
149
|
+
notifications: apiFiles.filter(f => f.includes('notification') || f.includes('email')),
|
|
150
|
+
metrics: apiFiles.filter(f => f.includes('metric')),
|
|
151
|
+
other: []
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
// Add uncategorized APIs to 'other'
|
|
155
|
+
const categorized = Object.values(categories).flat();
|
|
156
|
+
categories.other = apiFiles.filter(api => !categorized.includes(api));
|
|
157
|
+
|
|
158
|
+
results.apiCoverage.categories = categories;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
console.log(JSON.stringify(results, null, 2));
|
|
162
|
+
return results;
|
|
163
|
+
|
|
164
|
+
} catch (error) {
|
|
165
|
+
console.error('Failed to parse test output:', error.message);
|
|
166
|
+
process.exit(1);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
// Run the programmatic test reporter
|
|
171
|
+
if (process.argv[2] === '--json') {
|
|
172
|
+
runTests();
|
|
173
|
+
} else {
|
|
174
|
+
parseVerboseOutput();
|
|
175
|
+
}
|
package/setup-claude.sh
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Claude Code + Edge Impulse MCP Setup Script
|
|
4
|
+
|
|
5
|
+
echo "Setting up Claude Code + Edge Impulse MCP Integration"
|
|
6
|
+
echo ""
|
|
7
|
+
|
|
8
|
+
# Load API keys from .env file if it exists
|
|
9
|
+
if [ -f .env ]; then
|
|
10
|
+
echo "Loading API keys from .env file..."
|
|
11
|
+
set -a
|
|
12
|
+
source .env
|
|
13
|
+
set +a
|
|
14
|
+
else
|
|
15
|
+
echo "No .env file found. Please create one from .env.example with your API keys."
|
|
16
|
+
echo "API keys configured (using placeholder values)"
|
|
17
|
+
fi
|
|
18
|
+
echo ""
|
|
19
|
+
|
|
20
|
+
# Test Claude Code authentication
|
|
21
|
+
echo "Testing Claude Code authentication..."
|
|
22
|
+
~/.local/bin/claude -p "Test message" --model sonnet
|
|
23
|
+
echo ""
|
|
24
|
+
|
|
25
|
+
# Test MCP server connectivity
|
|
26
|
+
echo "Testing MCP server connectivity..."
|
|
27
|
+
~/.local/bin/claude mcp list
|
|
28
|
+
echo ""
|
|
29
|
+
|
|
30
|
+
# Test Edge Impulse API access
|
|
31
|
+
echo "Testing Edge Impulse API access..."
|
|
32
|
+
~/.local/bin/claude -p "List available Edge Impulse API functions" --model sonnet
|
|
33
|
+
echo ""
|
|
34
|
+
|
|
35
|
+
echo "Setup complete! You can now use:"
|
|
36
|
+
echo " claude -p 'your Edge Impulse questions'"
|
|
37
|
+
echo " claude # for interactive mode"
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { getTrainingJobStatus } from '../postman/edge-impulse/training/start-training/status';
|
|
2
|
+
|
|
3
|
+
export async function waitJob(apiKey: string, projectId: string | number, jobId: string | number, opts?: {intervalMs?: number, timeoutMs?: number}) {
|
|
4
|
+
const intervalMs = opts?.intervalMs ?? 5000;
|
|
5
|
+
const timeoutMs = opts?.timeoutMs ?? 30 * 60 * 1000; // 30 minutes default
|
|
6
|
+
|
|
7
|
+
const start = Date.now();
|
|
8
|
+
while (true) {
|
|
9
|
+
let status;
|
|
10
|
+
try {
|
|
11
|
+
status = await getTrainingJobStatus(apiKey, String(projectId), String(jobId));
|
|
12
|
+
} catch (err) {
|
|
13
|
+
// Treat 404 as transient (job may not be visible immediately); continue polling
|
|
14
|
+
const msg = (err as any)?.message || String(err);
|
|
15
|
+
if (msg.includes('404')) {
|
|
16
|
+
console.log(`Job not found yet (404), retrying...`);
|
|
17
|
+
if (Date.now() - start > timeoutMs) throw new Error(`Timeout waiting for job ${jobId}`);
|
|
18
|
+
await new Promise(r => setTimeout(r, intervalMs));
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
throw err;
|
|
22
|
+
}
|
|
23
|
+
// Try common fields
|
|
24
|
+
const state = status?.status || status?.state || status?.job?.status || null;
|
|
25
|
+
console.log('Job status:', JSON.stringify(status, null, 2));
|
|
26
|
+
if (!state) {
|
|
27
|
+
// If response contains success/finished flags
|
|
28
|
+
if (status && (status.success === true || status.finished === true)) return status;
|
|
29
|
+
} else {
|
|
30
|
+
const s = String(state).toLowerCase();
|
|
31
|
+
if (s === 'finished' || s === 'completed' || s === 'done' || s === 'success' || s === 'succeeded') return status;
|
|
32
|
+
if (s === 'failed' || s === 'error') throw new Error(`Job ${jobId} failed: ${JSON.stringify(status)}`);
|
|
33
|
+
}
|
|
34
|
+
if (Date.now() - start > timeoutMs) throw new Error(`Timeout waiting for job ${jobId}`);
|
|
35
|
+
await new Promise(r => setTimeout(r, intervalMs));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export default waitJob;
|
package/src/cli.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
import { Command } from "commander";
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
const program = new Command();
|
|
11
|
+
program.allowUnknownOption(true);
|
|
12
|
+
|
|
13
|
+
// Dynamically import the register module so compiled (.js) and source (.ts) can both work.
|
|
14
|
+
(async () => {
|
|
15
|
+
const isTsNode = process.argv[1] && process.argv[1].endsWith('.ts');
|
|
16
|
+
const registerPath = isTsNode ? './register-generated-commands.ts' : './register-generated-commands.js';
|
|
17
|
+
const mod = await import(registerPath as any);
|
|
18
|
+
await mod.registerGeneratedCommands(program);
|
|
19
|
+
await program.parseAsync(process.argv);
|
|
20
|
+
})();
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
4
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
5
|
+
import {
|
|
6
|
+
CallToolRequestSchema,
|
|
7
|
+
ErrorCode,
|
|
8
|
+
ListToolsRequestSchema,
|
|
9
|
+
McpError,
|
|
10
|
+
} from "@modelcontextprotocol/sdk/types.js";
|
|
11
|
+
import fs from "fs";
|
|
12
|
+
import path from "path";
|
|
13
|
+
import { fileURLToPath, pathToFileURL } from "url";
|
|
14
|
+
import crypto from "crypto";
|
|
15
|
+
import vm from "vm";
|
|
16
|
+
|
|
17
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
18
|
+
const __dirname = path.dirname(__filename);
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* MCP Server for Edge Impulse API integration with Claude Code
|
|
22
|
+
* Provides access to all 365 Edge Impulse API functions as MCP tools
|
|
23
|
+
*/
|
|
24
|
+
class EdgeImpulseMCPServer {
|
|
25
|
+
private server: Server;
|
|
26
|
+
private apiFunctions: Map<string, Function> = new Map();
|
|
27
|
+
private initialized = false;
|
|
28
|
+
|
|
29
|
+
constructor() {
|
|
30
|
+
this.server = new Server(
|
|
31
|
+
{
|
|
32
|
+
name: "edge-impulse-api-server",
|
|
33
|
+
version: "1.0.0",
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
capabilities: {
|
|
37
|
+
tools: {},
|
|
38
|
+
},
|
|
39
|
+
}
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Initialize the server by loading API functions and setting up handlers
|
|
45
|
+
*/
|
|
46
|
+
async initialize() {
|
|
47
|
+
await this.loadAPIFunctions();
|
|
48
|
+
this.setupToolHandlers();
|
|
49
|
+
this.initialized = true;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Load all Edge Impulse API functions from the generated files
|
|
54
|
+
* Supports both development (src/) and production (dist/) environments
|
|
55
|
+
*/
|
|
56
|
+
private async loadAPIFunctions() {
|
|
57
|
+
// Use fs.existsSync to reliably determine which directory exists
|
|
58
|
+
const distApiDir = path.resolve(__dirname, "../src/postman/edge-impulse/generated");
|
|
59
|
+
const srcApiDir = path.resolve(__dirname, "postman/edge-impulse/generated");
|
|
60
|
+
const apiDir = fs.existsSync(srcApiDir) ? srcApiDir : distApiDir;
|
|
61
|
+
|
|
62
|
+
try {
|
|
63
|
+
const files = fs.readdirSync(apiDir).filter(f => f.endsWith('.ts') || f.endsWith('.js'));
|
|
64
|
+
|
|
65
|
+
// Load integrity hashes if available
|
|
66
|
+
const integrityPath = path.join(apiDir, 'integrity.json');
|
|
67
|
+
let expectedHashes: Record<string, string> = {};
|
|
68
|
+
if (fs.existsSync(integrityPath)) {
|
|
69
|
+
expectedHashes = JSON.parse(fs.readFileSync(integrityPath, 'utf-8'));
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
for (const file of files) {
|
|
73
|
+
const filePath = path.join(apiDir, file);
|
|
74
|
+
|
|
75
|
+
// Verify file integrity if hash is available
|
|
76
|
+
if (expectedHashes[file]) {
|
|
77
|
+
const actualHash = this.calculateSHA256(filePath);
|
|
78
|
+
if (actualHash !== expectedHashes[file]) {
|
|
79
|
+
throw new Error(`Integrity check failed for ${file}. File may be corrupted or tampered with.`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const module = await import(pathToFileURL(filePath).href);
|
|
84
|
+
|
|
85
|
+
// More robust function detection: check for default export first, then any function
|
|
86
|
+
const apiFunction = module.default || Object.values(module).find(v => typeof v === 'function') as Function;
|
|
87
|
+
|
|
88
|
+
if (apiFunction) {
|
|
89
|
+
const functionName = path.basename(file, path.extname(file));
|
|
90
|
+
this.apiFunctions.set(functionName, apiFunction);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
console.error(`Loaded ${this.apiFunctions.size} API functions with sandboxing enabled`);
|
|
95
|
+
|
|
96
|
+
// Fail fast if no functions were loaded
|
|
97
|
+
if (this.apiFunctions.size === 0) {
|
|
98
|
+
throw new Error(`No API functions found in ${apiDir}. Ensure the generated files exist.`);
|
|
99
|
+
}
|
|
100
|
+
} catch (error) {
|
|
101
|
+
console.error("Error loading API functions:", error);
|
|
102
|
+
throw error; // Re-throw to fail fast
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/** * Execute an API function in a sandboxed environment
|
|
107
|
+
*/
|
|
108
|
+
private async executeInSandbox(apiFunction: Function, params: any, apiKey: string): Promise<any> {
|
|
109
|
+
// Create a restricted context with only necessary globals
|
|
110
|
+
const sandboxContext = vm.createContext({
|
|
111
|
+
// Safe globals
|
|
112
|
+
console: { error: console.error, log: console.log },
|
|
113
|
+
JSON: JSON,
|
|
114
|
+
Promise: Promise,
|
|
115
|
+
setTimeout: setTimeout,
|
|
116
|
+
clearTimeout: clearTimeout,
|
|
117
|
+
setInterval: setInterval,
|
|
118
|
+
clearInterval: clearInterval,
|
|
119
|
+
// Safe Error constructors
|
|
120
|
+
Error: Error,
|
|
121
|
+
TypeError: TypeError,
|
|
122
|
+
RangeError: RangeError,
|
|
123
|
+
// Required for fetch
|
|
124
|
+
global: {},
|
|
125
|
+
process: { env: {} }, // Empty env to prevent access to real environment
|
|
126
|
+
Buffer: Buffer,
|
|
127
|
+
URL: URL,
|
|
128
|
+
URLSearchParams: URLSearchParams,
|
|
129
|
+
// The fetch function (available globally in Node 18+)
|
|
130
|
+
fetch: fetch,
|
|
131
|
+
// Pass the function and parameters to the sandbox
|
|
132
|
+
apiFunction: apiFunction,
|
|
133
|
+
params: params,
|
|
134
|
+
apiKey: apiKey,
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
// Create a script that calls the function with parameters
|
|
138
|
+
const script = new vm.Script(`
|
|
139
|
+
(async () => {
|
|
140
|
+
try {
|
|
141
|
+
const result = await apiFunction(params, apiKey);
|
|
142
|
+
return result;
|
|
143
|
+
} catch (error) {
|
|
144
|
+
throw new Error('Sandbox execution error: ' + error.message);
|
|
145
|
+
}
|
|
146
|
+
})()
|
|
147
|
+
`);
|
|
148
|
+
|
|
149
|
+
// Run the script in the sandbox
|
|
150
|
+
const result = await script.runInContext(sandboxContext, {
|
|
151
|
+
timeout: 30000, // 30 second timeout
|
|
152
|
+
breakOnSigint: true
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
return result;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/** * Calculate SHA256 hash of a file
|
|
159
|
+
*/
|
|
160
|
+
private calculateSHA256(filePath: string): string {
|
|
161
|
+
const fileBuffer = fs.readFileSync(filePath);
|
|
162
|
+
const hashSum = crypto.createHash('sha256');
|
|
163
|
+
hashSum.update(fileBuffer);
|
|
164
|
+
return hashSum.digest('hex');
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Set up MCP tool handlers for listing and calling API functions
|
|
169
|
+
*/
|
|
170
|
+
private setupToolHandlers() {
|
|
171
|
+
// List available tools (API functions)
|
|
172
|
+
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
173
|
+
const tools = Array.from(this.apiFunctions.entries()).map(([name, func]) => ({
|
|
174
|
+
name,
|
|
175
|
+
description: `Edge Impulse API function: ${name.replace(/_/g, ' ').replace(/\b\w/g, l => l.toUpperCase())}`,
|
|
176
|
+
inputSchema: {
|
|
177
|
+
type: "object",
|
|
178
|
+
properties: {
|
|
179
|
+
params: {
|
|
180
|
+
type: "object",
|
|
181
|
+
description: "Parameters for the API call (optional)"
|
|
182
|
+
},
|
|
183
|
+
apiKey: {
|
|
184
|
+
type: "string",
|
|
185
|
+
description: "Edge Impulse API key (required)"
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
required: ["apiKey"]
|
|
189
|
+
}
|
|
190
|
+
}));
|
|
191
|
+
|
|
192
|
+
return { tools };
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
// Handle tool calls
|
|
196
|
+
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
197
|
+
const { name, arguments: args } = request.params;
|
|
198
|
+
|
|
199
|
+
const apiFunction = this.apiFunctions.get(name);
|
|
200
|
+
if (!apiFunction) {
|
|
201
|
+
throw new McpError(
|
|
202
|
+
ErrorCode.MethodNotFound,
|
|
203
|
+
`Unknown tool: ${name}`
|
|
204
|
+
);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
try {
|
|
208
|
+
const { params = {}, apiKey } = args as { params?: any; apiKey: string };
|
|
209
|
+
|
|
210
|
+
// Validate required apiKey
|
|
211
|
+
if (!apiKey || typeof apiKey !== 'string' || apiKey.trim() === '') {
|
|
212
|
+
throw new McpError(
|
|
213
|
+
ErrorCode.InvalidParams,
|
|
214
|
+
"apiKey is required and must be a non-empty string"
|
|
215
|
+
);
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
// Call the API function in a sandboxed environment
|
|
219
|
+
const result = await this.executeInSandbox(apiFunction, params, apiKey);
|
|
220
|
+
|
|
221
|
+
return {
|
|
222
|
+
content: [
|
|
223
|
+
{
|
|
224
|
+
type: "text",
|
|
225
|
+
text: JSON.stringify(result, null, 2)
|
|
226
|
+
}
|
|
227
|
+
]
|
|
228
|
+
};
|
|
229
|
+
} catch (error) {
|
|
230
|
+
// Re-throw McpError instances as-is for consistency
|
|
231
|
+
if (error instanceof McpError) {
|
|
232
|
+
throw error;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
// Wrap other errors as McpError
|
|
236
|
+
throw new McpError(
|
|
237
|
+
ErrorCode.InternalError,
|
|
238
|
+
`Error calling ${name}: ${error instanceof Error ? error.message : String(error)}`
|
|
239
|
+
);
|
|
240
|
+
}
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
/**
|
|
245
|
+
* Start the MCP server with stdio transport
|
|
246
|
+
*/
|
|
247
|
+
async run() {
|
|
248
|
+
if (!this.initialized) {
|
|
249
|
+
throw new Error("Server must be initialized before running. Call initialize() first.");
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
const transport = new StdioServerTransport();
|
|
253
|
+
await this.server.connect(transport);
|
|
254
|
+
console.error("Edge Impulse MCP server running on stdio");
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
// Start the server
|
|
259
|
+
const server = new EdgeImpulseMCPServer();
|
|
260
|
+
server.initialize().then(() => {
|
|
261
|
+
return server.run();
|
|
262
|
+
}).catch(console.error);
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Script to generate CLI command stubs for every generated client in /generated.
|
|
7
|
+
* Each command will be placed in /generated/cli-commands/ as a .ts file.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
11
|
+
const __dirname = path.dirname(__filename);
|
|
12
|
+
const GENERATED_DIR = path.join(__dirname, 'generated');
|
|
13
|
+
const CLI_COMMANDS_DIR = path.join(GENERATED_DIR, 'cli-commands');
|
|
14
|
+
|
|
15
|
+
function sanitizeCommandName(name: string) {
|
|
16
|
+
// Remove .ts and convert underscores to dashes for CLI
|
|
17
|
+
return name.replace(/\.ts$/, '').replace(/_/g, '-');
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function main() {
|
|
21
|
+
if (!fs.existsSync(CLI_COMMANDS_DIR)) fs.mkdirSync(CLI_COMMANDS_DIR);
|
|
22
|
+
const files = fs.readdirSync(GENERATED_DIR).filter(f => f.endsWith('.ts'));
|
|
23
|
+
for (const file of files) {
|
|
24
|
+
const baseName = file.replace(/\.ts$/, '');
|
|
25
|
+
const commandName = sanitizeCommandName(file);
|
|
26
|
+
const importName = baseName;
|
|
27
|
+
|
|
28
|
+
const commandStub = `import { Command } from 'commander';
|
|
29
|
+
import { ${importName} } from '../${baseName}';
|
|
30
|
+
|
|
31
|
+
export function add${baseName.charAt(0).toUpperCase() + baseName.slice(1)}Command(program: Command) {
|
|
32
|
+
program.command('${commandName}')
|
|
33
|
+
.description('Auto-generated command for ${baseName}')
|
|
34
|
+
.requiredOption('--api-key <apiKey>', 'Edge Impulse API key')
|
|
35
|
+
.option('--params <params>', 'JSON string of parameters')
|
|
36
|
+
.action(async (opts) => {
|
|
37
|
+
try {
|
|
38
|
+
const params = opts.params ? JSON.parse(opts.params) : {};
|
|
39
|
+
const res = await ${importName}(params, opts.apiKey);
|
|
40
|
+
console.log(JSON.stringify(res, null, 2));
|
|
41
|
+
} catch (e) {
|
|
42
|
+
console.warn(\`Warning: Command '${commandName}' may need extension - \${e instanceof Error ? e.message : e}\`);
|
|
43
|
+
process.exit(0);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
`;
|
|
48
|
+
fs.writeFileSync(path.join(CLI_COMMANDS_DIR, `${baseName}.ts`), commandStub);
|
|
49
|
+
}
|
|
50
|
+
console.log(`Generated CLI command stubs for ${files.length} clients in ${CLI_COMMANDS_DIR}`);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
main();
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
|
|
2
|
+
import fs from 'fs';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { fileURLToPath } from 'url';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Script to parse the Edge Impulse Postman collection and generate TypeScript API clients and CLI command stubs for every endpoint.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
11
|
+
const __dirname = path.dirname(__filename);
|
|
12
|
+
const COLLECTION_PATH = path.join(__dirname, '../../../Edge Impulse API.postman_collection.json');
|
|
13
|
+
const OUTPUT_DIR = path.join(__dirname, 'generated');
|
|
14
|
+
|
|
15
|
+
function readCollection() {
|
|
16
|
+
const raw = fs.readFileSync(COLLECTION_PATH, 'utf-8');
|
|
17
|
+
return JSON.parse(raw);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function sanitizeName(name: string) {
|
|
21
|
+
return name
|
|
22
|
+
.replace(/[^a-zA-Z0-9]+/g, '_')
|
|
23
|
+
.replace(/^_+|_+$/g, '')
|
|
24
|
+
.replace(/_+/g, '_')
|
|
25
|
+
.toLowerCase();
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function walkItems(items: any[], parentPath: string[] = []) {
|
|
29
|
+
let endpoints: any[] = [];
|
|
30
|
+
for (const item of items) {
|
|
31
|
+
if (item.request) {
|
|
32
|
+
endpoints.push({ ...item, parentPath });
|
|
33
|
+
} else if (item.item) {
|
|
34
|
+
endpoints = endpoints.concat(walkItems(item.item, parentPath.concat(item.name)));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return endpoints;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function generateClient(endpoint: any) {
|
|
41
|
+
const method = endpoint.request.method;
|
|
42
|
+
const url = endpoint.request.url.raw.replace(/{{baseUrl}}/, 'https://studio.edgeimpulse.com');
|
|
43
|
+
const name = sanitizeName(endpoint.name || endpoint.request.url.path.join('_'));
|
|
44
|
+
const description = endpoint.request.description || '';
|
|
45
|
+
return `/**\n * ${description}\n * Method: ${method}\n * URL: ${url}\n */\nexport async function ${name}(params: any, apiKey: string) {\n // TODO: Implement parameter mapping\n const res = await fetch(\`${url}\`, {\n method: '${method}',\n headers: {\n 'x-api-key': apiKey,\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n },\n // body: JSON.stringify(params), // Uncomment for POST/PUT\n });\n return res.json();\n}\n`;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function main() {
|
|
49
|
+
if (!fs.existsSync(OUTPUT_DIR)) fs.mkdirSync(OUTPUT_DIR);
|
|
50
|
+
const collection = readCollection();
|
|
51
|
+
const endpoints = walkItems(collection.item);
|
|
52
|
+
for (const endpoint of endpoints) {
|
|
53
|
+
const clientCode = generateClient(endpoint);
|
|
54
|
+
const fileName = sanitizeName(endpoint.name || endpoint.request.url.path.join('_')) + '.ts';
|
|
55
|
+
fs.writeFileSync(path.join(OUTPUT_DIR, fileName), clientCode);
|
|
56
|
+
}
|
|
57
|
+
console.log(`Generated ${endpoints.length} client files in ${OUTPUT_DIR}`);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
main();
|