@dailephd/my-dev-kit-lab 0.4.5 → 0.4.6
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/CHANGELOG.md +16 -0
- package/README.md +37 -3
- package/dist/scripts/cli.js +9 -0
- package/dist/src/audits/core/typescriptJavaScriptAnalyzer.js +30 -12
- package/dist/src/cli/help.js +300 -0
- package/dist/src/cli/index.js +2 -0
- package/dist/src/cli/runLabCli.js +229 -0
- package/dist/src/commands/runAuditCommand.js +132 -0
- package/dist/src/commands/runControlledExperimentCommand.js +7 -3
- package/dist/{scripts/experiments/describeExperiment.js → src/commands/runExperimentDescribeCommand.js} +14 -10
- package/dist/{scripts/experiments/listExperiments.js → src/commands/runExperimentListCommand.js} +3 -6
- package/dist/{scripts/experiments/runExperiment.js → src/commands/runExperimentRunCommand.js} +80 -22
- package/dist/src/commands/runFinalDemoCommand.js +2 -3
- package/dist/src/commands/runSecurityValidationCommand.js +271 -0
- package/dist/src/runtime/index.js +3 -0
- package/dist/src/runtime/labExecutionContext.js +22 -0
- package/dist/src/runtime/packageResource.js +22 -0
- package/dist/src/runtime/packageRoot.js +37 -0
- package/dist/src/securityValidation/packageChecks/requiredPackageContents.js +14 -1
- package/package.json +7 -7
- package/dist/scripts/audits/runAudit.js +0 -135
- package/dist/scripts/build-gallery.js +0 -3
- package/dist/scripts/capture-demo-report.js +0 -3
- package/dist/scripts/evaluate-token-savings.js +0 -2
- package/dist/scripts/generate-experiment-plots.js +0 -3
- package/dist/scripts/generate-prompt-variants.js +0 -2
- package/dist/scripts/render-experiment-report.js +0 -2
- package/dist/scripts/report-context-integrity-smoke.js +0 -70
- package/dist/scripts/run-agent-prompt.js +0 -2
- package/dist/scripts/run-controlled-experiment.js +0 -2
- package/dist/scripts/run-lab-demo.js +0 -5
- package/dist/scripts/run-visualization-demos.js +0 -3
- package/dist/scripts/security/resolveToolRoot.js +0 -16
- package/dist/scripts/security/runCodeql.js +0 -58
- package/dist/scripts/security/runDependencyChecks.js +0 -58
- package/dist/scripts/security/runFuzzSmoke.js +0 -29
- package/dist/scripts/security/runPackageChecks.js +0 -57
- package/dist/scripts/security/runSemgrep.js +0 -64
- package/dist/scripts/security/validate.js +0 -266
- package/dist/scripts/verify-benchmarks.js +0 -202
- package/examples/demo-report-input.json +0 -78
- package/examples/lab-demo-cases.json +0 -35
- package/examples/real-agent-campaign-cases.json +0 -118
- package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-a/src/debug/res/xml/ambiguous_backup_rules.xml +0 -4
- package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-a/src/main/res/xml/ambiguous_backup_rules.xml +0 -4
- package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-a/src/main/res/xml/backup_rules.xml +0 -5
- package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-a/src/main/res/xml/broad_backup_rules.xml +0 -4
- package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-a/src/main/res/xml/data_extraction_rules.xml +0 -10
- package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-a/src/main/res/xml/unsupported_domain_rules.xml +0 -4
- package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-b/src/main/res/xml/malformed_backup_rules.xml +0 -4
- package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-b/src/main/res/xml/unsupported_root.xml +0 -4
- package/tests/fixtures/android/advanced-security-fixtures/network-security/module-a/src/debug/res/xml/ambiguous_config.xml +0 -4
- package/tests/fixtures/android/advanced-security-fixtures/network-security/module-a/src/main/res/xml/ambiguous_config.xml +0 -4
- package/tests/fixtures/android/advanced-security-fixtures/network-security/module-a/src/main/res/xml/base_cleartext_false.xml +0 -8
- package/tests/fixtures/android/advanced-security-fixtures/network-security/module-a/src/main/res/xml/broad_and_duplicate_domains.xml +0 -8
- package/tests/fixtures/android/advanced-security-fixtures/network-security/module-a/src/main/res/xml/empty_domain.xml +0 -6
- package/tests/fixtures/android/advanced-security-fixtures/network-security/module-a/src/main/res/xml/malformed_pin.xml +0 -11
- package/tests/fixtures/android/advanced-security-fixtures/network-security/module-a/src/main/res/xml/network_security_config.xml +0 -26
- package/tests/fixtures/android/advanced-security-fixtures/network-security/module-b/src/main/res/xml/malformed_network_security_config.xml +0 -6
- package/tests/fixtures/android/advanced-security-fixtures/network-security/module-b/src/main/res/xml/unsupported_root.xml +0 -4
- package/tests/fixtures/android/advanced-security-fixtures/release-configuration/groovy-release-debuggable-dynamic.gradle +0 -7
- package/tests/fixtures/android/advanced-security-fixtures/release-configuration/groovy-release-debuggable-false.gradle +0 -9
- package/tests/fixtures/android/advanced-security-fixtures/release-configuration/groovy-release-debuggable-true.gradle +0 -13
- package/tests/fixtures/android/advanced-security-fixtures/release-configuration/kotlin-release-debuggable-false.gradle.kts +0 -7
- package/tests/fixtures/android/advanced-security-fixtures/release-configuration/kotlin-release-debuggable-true.gradle.kts +0 -10
- package/tests/fixtures/android/advanced-security-fixtures/release-configuration/missing-release-build-type.gradle.kts +0 -7
- package/tests/fixtures/android/advanced-security-fixtures/resource-resolution/module-a/src/debug/res/xml/network_security_config.xml +0 -8
- package/tests/fixtures/android/advanced-security-fixtures/resource-resolution/module-a/src/main/res/xml/backup_rules.xml +0 -4
- package/tests/fixtures/android/advanced-security-fixtures/resource-resolution/module-a/src/main/res/xml/network_security_config.xml +0 -8
- package/tests/fixtures/android/advanced-security-fixtures/resource-resolution/module-b/src/main/res/xml/malformed_network_security_config.xml +0 -7
- package/tests/fixtures/android/advanced-security-fixtures/secret-candidates/SampleActivity.java +0 -8
- package/tests/fixtures/android/advanced-security-fixtures/secret-candidates/SampleActivity.kt +0 -9
- package/tests/fixtures/android/advanced-security-fixtures/secret-candidates/build.gradle +0 -11
- package/tests/fixtures/android/advanced-security-fixtures/secret-candidates/build.gradle.kts +0 -11
- package/tests/fixtures/android/advanced-security-fixtures/secret-candidates/google-services.json +0 -16
- package/tests/fixtures/android/advanced-security-fixtures/secret-candidates/local.properties +0 -3
- package/tests/fixtures/android/advanced-security-fixtures/secret-candidates-bounds/module/binary.properties +0 -0
- package/tests/fixtures/android/advanced-security-fixtures/secret-candidates-bounds/module/oversized.json +0 -1
- package/tests/fixtures/android/advanced-security-fixtures/signing-configuration/app/fake-release-keystore.jks +0 -1
- package/tests/fixtures/android/advanced-security-fixtures/signing-configuration/build/generated-fake.keystore +0 -1
- package/tests/fixtures/android/compose-app/app/build.gradle.kts +0 -21
- package/tests/fixtures/android/compose-app/app/src/main/AndroidManifest.xml +0 -22
- package/tests/fixtures/android/compose-app/app/src/main/java/com/example/composeapp/MainActivity.kt +0 -11
- package/tests/fixtures/android/compose-app/build.gradle.kts +0 -4
- package/tests/fixtures/android/compose-app/gradle/wrapper/gradle-wrapper.properties +0 -4
- package/tests/fixtures/android/compose-app/settings.gradle.kts +0 -2
- package/tests/fixtures/android/gradle-metadata-fixtures/catalog-only-plugin/build.gradle.kts +0 -3
- package/tests/fixtures/android/gradle-metadata-fixtures/catalog-only-plugin/gradle/libs.versions.toml +0 -5
- package/tests/fixtures/android/gradle-metadata-fixtures/comment-safety.gradle.kts +0 -21
- package/tests/fixtures/android/gradle-metadata-fixtures/dynamic-values.gradle.kts +0 -17
- package/tests/fixtures/android/gradle-metadata-fixtures/groovy-literal.gradle +0 -23
- package/tests/fixtures/android/gradle-metadata-fixtures/wrapper-malformed.properties +0 -4
- package/tests/fixtures/android/gradle-metadata-fixtures/wrapper-missing-url.properties +0 -3
- package/tests/fixtures/android/gradle-metadata-fixtures/wrapper-with-checksum.properties +0 -5
- package/tests/fixtures/android/java-app/app/build.gradle +0 -16
- package/tests/fixtures/android/java-app/app/src/main/AndroidManifest.xml +0 -19
- package/tests/fixtures/android/java-app/app/src/main/java/com/example/javaapp/MainActivity.java +0 -4
- package/tests/fixtures/android/java-app/build.gradle +0 -3
- package/tests/fixtures/android/java-app/gradle/wrapper/gradle-wrapper.properties +0 -4
- package/tests/fixtures/android/java-app/settings.gradle +0 -2
- package/tests/fixtures/android/library/build.gradle.kts +0 -3
- package/tests/fixtures/android/library/gradle/wrapper/gradle-wrapper.properties +0 -4
- package/tests/fixtures/android/library/mylibrary/build.gradle.kts +0 -13
- package/tests/fixtures/android/library/mylibrary/src/main/AndroidManifest.xml +0 -2
- package/tests/fixtures/android/library/settings.gradle.kts +0 -2
- package/tests/fixtures/android/manifest-audit-fixtures/incomplete-intent-filter.xml +0 -14
- package/tests/fixtures/android/manifest-audit-fixtures/malformed-exported.xml +0 -10
- package/tests/fixtures/android/manifest-audit-fixtures/malformed.xml +0 -5
- package/tests/fixtures/android/manifest-audit-fixtures/missing-application.xml +0 -7
- package/tests/fixtures/android/manifest-audit-fixtures/missing-component-name.xml +0 -11
- package/tests/fixtures/android/manifest-audit-fixtures/permission-coverage.xml +0 -29
- package/tests/fixtures/android/manifest-audit-fixtures/risky-components.xml +0 -62
- package/tests/fixtures/android/manifest-audit-fixtures/risky-deep-links.xml +0 -45
- package/tests/fixtures/android/manifest-audit-fixtures/unresolved-placeholder.xml +0 -14
- package/tests/fixtures/android/manifest-audit-fixtures/unusual-namespace-prefix.xml +0 -11
- package/tests/fixtures/android/multi-module/app/build.gradle.kts +0 -22
- package/tests/fixtures/android/multi-module/app/src/androidTest/java/com/example/multimodule/app/ExampleInstrumentedTest.kt +0 -3
- package/tests/fixtures/android/multi-module/app/src/main/AndroidManifest.xml +0 -11
- package/tests/fixtures/android/multi-module/app/src/test/java/com/example/multimodule/app/ExampleUnitTest.kt +0 -3
- package/tests/fixtures/android/multi-module/build.gradle.kts +0 -5
- package/tests/fixtures/android/multi-module/core/build.gradle.kts +0 -14
- package/tests/fixtures/android/multi-module/core/src/main/AndroidManifest.xml +0 -2
- package/tests/fixtures/android/multi-module/feature-login/build.gradle.kts +0 -18
- package/tests/fixtures/android/multi-module/feature-login/src/main/AndroidManifest.xml +0 -2
- package/tests/fixtures/android/multi-module/gradle/libs.versions.toml +0 -8
- package/tests/fixtures/android/multi-module/gradle/wrapper/gradle-wrapper.properties +0 -4
- package/tests/fixtures/android/multi-module/settings.gradle.kts +0 -4
- package/tests/fixtures/android/non-android-gradle/build.gradle.kts +0 -3
- package/tests/fixtures/android/non-android-gradle/core/build.gradle.kts +0 -3
- package/tests/fixtures/android/non-android-gradle/core/src/main/java/com/example/core/Core.java +0 -4
- package/tests/fixtures/android/non-android-gradle/gradle/wrapper/gradle-wrapper.properties +0 -4
- package/tests/fixtures/android/non-android-gradle/settings.gradle.kts +0 -2
- package/tests/fixtures/android/partial/app/build.gradle.kts +0 -7
- package/tests/fixtures/android/partial/settings.gradle.kts +0 -2
- package/tests/fixtures/android/xml-view-app/app/build.gradle.kts +0 -17
- package/tests/fixtures/android/xml-view-app/app/src/main/AndroidManifest.xml +0 -31
- package/tests/fixtures/android/xml-view-app/app/src/main/kotlin/com/example/xmlviewapp/MainActivity.kt +0 -7
- package/tests/fixtures/android/xml-view-app/app/src/main/res/layout/activity_main.xml +0 -4
- package/tests/fixtures/android/xml-view-app/build.gradle.kts +0 -4
- package/tests/fixtures/android/xml-view-app/gradle/wrapper/gradle-wrapper.properties +0 -4
- package/tests/fixtures/android/xml-view-app/settings.gradle.kts +0 -2
- package/tests/fixtures/audits/mixed-language/mixed-docs-claims/README.md +0 -16
- package/tests/fixtures/audits/mixed-language/mixed-docs-claims/build.gradle.kts +0 -4
- package/tests/fixtures/audits/mixed-language/mixed-docs-claims/src/main/java/com/example/Widget.java +0 -7
- package/tests/fixtures/audits/mixed-language/mixed-docs-claims/src/main/kotlin/com/example/Gadget.kt +0 -7
- package/tests/fixtures/audits/mixed-language/mixed-generated-vendor/README.md +0 -10
- package/tests/fixtures/audits/mixed-language/mixed-generated-vendor/build/Main.class +0 -1
- package/tests/fixtures/audits/mixed-language/mixed-generated-vendor/dist/index.js +0 -1
- package/tests/fixtures/audits/mixed-language/mixed-generated-vendor/generated/schema.ts +0 -1
- package/tests/fixtures/audits/mixed-language/mixed-generated-vendor/src/index.ts +0 -3
- package/tests/fixtures/audits/mixed-language/mixed-generated-vendor/vendor/lib.py +0 -2
- package/tests/fixtures/audits/mixed-language/mixed-java-kotlin/README.md +0 -10
- package/tests/fixtures/audits/mixed-language/mixed-java-kotlin/build.gradle.kts +0 -8
- package/tests/fixtures/audits/mixed-language/mixed-java-kotlin/settings.gradle.kts +0 -1
- package/tests/fixtures/audits/mixed-language/mixed-java-kotlin/src/main/java/com/example/FooService.java +0 -7
- package/tests/fixtures/audits/mixed-language/mixed-java-kotlin/src/main/kotlin/com/example/BarService.kt +0 -7
- package/tests/fixtures/audits/mixed-language/mixed-java-kotlin/src/test/java/com/example/FooServiceTest.java +0 -8
- package/tests/fixtures/audits/mixed-language/mixed-java-kotlin/src/test/kotlin/com/example/BarServiceTest.kt +0 -8
- package/tests/fixtures/audits/mixed-language/mixed-python-ts/README.md +0 -8
- package/tests/fixtures/audits/mixed-language/mixed-python-ts/src/app.py +0 -7
- package/tests/fixtures/audits/mixed-language/mixed-python-ts/src/index.ts +0 -3
- package/tests/fixtures/audits/mixed-language/mixed-python-ts/tests/test_app.py +0 -5
- package/tests/fixtures/audits/mixed-language/mixed-ts-js/README.md +0 -7
- package/tests/fixtures/audits/mixed-language/mixed-ts-js/src/helper.js +0 -5
- package/tests/fixtures/audits/mixed-language/mixed-ts-js/src/index.ts +0 -3
- package/tests/fixtures/audits/mixed-language/mixed-ts-js/tests/index.sample.ts +0 -5
- package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/README.md +0 -10
- package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/build.gradle.kts +0 -4
- package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/pytests/test_app.py +0 -5
- package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/src/app.py +0 -2
- package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/src/helper.js +0 -5
- package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/src/index.ts +0 -3
- package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/src/main/java/com/example/Multiplier.java +0 -7
- package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/src/main/kotlin/com/example/Divider.kt +0 -7
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/corrected-replay/derived/run-integrity-evidence.json +0 -99
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/corrected-replay/producer/implementation-audit.json +0 -1585
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/corrected-replay/producer/implementation-capsule.json +0 -11455
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/00-request.txt +0 -1
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/architecture-context-packet.txt +0 -82
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/behavior-model.txt +0 -104
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/final-report.txt +0 -41
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/implementation-context-packet.txt +0 -114
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/implementation-report.txt +0 -92
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/judge-report.txt +0 -34
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/pseudocode-packet.txt +0 -244
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/request-brief.txt +0 -40
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/test-context-packet.txt +0 -93
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/test-implementation-report.txt +0 -69
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/test-strategy-packet.txt +0 -354
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/verification-report.txt +0 -85
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/derived/run-integrity-evidence.json +0 -98
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/producer/architecture-audit.json +0 -1169
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/producer/architecture-request.json +0 -29
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/producer/implementation-audit.json +0 -1494
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/producer/implementation-capsule.json +0 -11364
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/producer/implementation-request.json +0 -33
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/producer/test-request.json +0 -74
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/reports/architecture-context-retrieval-report.txt +0 -58
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/reports/implementation-context-retrieval-report.txt +0 -75
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/reports/test-context-retrieval-report.txt +0 -84
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/run.json +0 -62
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/tool-versions/my-dev-kit-version.txt +0 -1
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/tool-versions/orchestrator-version.txt +0 -1
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/manifests/corrected-replay-manifest.json +0 -19
- package/tests/fixtures/ecosystem/context-integrity/v0.4.5/manifests/failed-run-manifest.json +0 -56
- package/tests/fixtures/fake-adversarial-cli.js +0 -152
- package/tests/fixtures/fake-my-dev-kit-cli.js +0 -83
- package/tests/fixtures/full-workflow-library/complete-v1.0.0.json +0 -24
- package/tests/fixtures/full-workflow-library/future-minor-v1.1.0-additive.json +0 -25
- package/tests/fixtures/stage-context-expectations/complete-v1.0.0.json +0 -230
- package/tests/fixtures/stage-context-expectations/future-minor-v1.1.0-additive.json +0 -232
- package/tests/fixtures/stage-context-expectations/invalid/malformed-json.txt +0 -1
- package/tests/fixtures/stage-context-expectations/invalid/non-object-root.json +0 -1
- package/tests/fixtures/stage-context-expectations/minimal-v1.0.0.json +0 -18
- package/tests/fixtures/upstream-artifacts/invalid/malformed-json.txt +0 -1
- package/tests/fixtures/upstream-artifacts/invalid/non-object-root.json +0 -1
- package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.2/context-capsule/complete-v1.0.0.json +0 -504
- package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.2/context-capsule/future-minor-v1.1.0-additive.json +0 -955
- package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.2/retrieval-audit-record/complete-v1.0.0.json +0 -190
- package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.2/retrieval-audit-record/future-minor-v1.1.0-additive.json +0 -327
- package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.4/PROVENANCE.txt +0 -18
- package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.4/context-capsule/complete-v1.0.0.json +0 -556
- package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.4/retrieval-audit-record/complete-v1.0.0.json +0 -238
- package/tests/fixtures/upstream-artifacts/my-dev-kit-1.10.2-identity/PROVENANCE.txt +0 -13
- package/tests/fixtures/upstream-artifacts/my-dev-kit-1.10.2-identity/context-capsule.json +0 -7874
- package/tests/fixtures/upstream-artifacts/my-dev-kit-1.10.2-identity/retrieval-audit-record.json +0 -1076
- package/tests/fixtures/upstream-artifacts/my-dev-kit-orchestrator/1.2.1/workflow-instruction-packet/complete-v1.0.0.json +0 -160
- package/tests/fixtures/upstream-artifacts/my-dev-kit-orchestrator/1.2.1/workflow-instruction-packet/future-minor-v1.1.0-additive.json +0 -186
- package/tests/fixtures/upstream-artifacts/my-dev-kit-orchestrator/1.2.3/run-integrity/PROVENANCE.txt +0 -31
- package/tests/fixtures/upstream-artifacts/my-dev-kit-orchestrator/1.2.3/run-integrity/ready-pass-final-pass.json +0 -132
- package/tests/fixtures/upstream-artifacts/my-dev-kit-orchestrator/1.2.3/run-integrity/refresh-required-need-context.json +0 -146
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to my-dev-kit-lab are documented here.
|
|
4
4
|
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.4.6] - 2026-08-29
|
|
8
|
+
|
|
9
|
+
Installed-package CLI and runtime-boundary correction. `@dailephd/my-dev-kit-lab` now ships a supported, cross-platform installed CLI (`my-dev-kit-lab`) alongside the existing contributor npm scripts.
|
|
10
|
+
|
|
11
|
+
- Added a compiled, cross-platform installed CLI router (`dist/scripts/cli.js`, `src/cli/runLabCli.ts`) exposing `my-dev-kit-lab --help`/`--version`, `security validate`, `audit`, the `experiment` family (`list`/`describe`/`run`/`controlled`), `report render`, `plots generate`, `gallery build`, and `demo final`, plus the historical direct final-demo invocation form for backward compatibility. A global `--workspace <path>` option is supported before any subcommand.
|
|
12
|
+
- Added a `LabExecutionContext` runtime foundation (`src/runtime/`) distinguishing `invocationCwd`, read-only `packageRoot` (discovered independent of `process.cwd()`), writable `workspaceRoot` (default `<home>/.my-dev-kit-lab`, overridable with `--workspace`), `resourceRoot`, and the separately resolved inspected target root, plus cwd-independent, containment-checked package-resource resolution.
|
|
13
|
+
- `security validate`, `audit`, and `experiment` npm scripts now delegate to shared `src/commands/` owners also used by the installed CLI, so both surfaces run the same implementation. Installed `audit`/`security validate` default implicit report output under the writable workspace instead of the package root; installed `experiment run`'s implicit output is under the workspace's `lab-output/experiments/` tree. Explicit output paths and all target-resolution semantics are unchanged.
|
|
14
|
+
- Added a permanent packed-tarball installation/execution acceptance gate (`npm run verify:packed-package`): builds, runs a real `npm pack`, installs the exact tarball into a clean temporary consumer project, executes the installed binary, and verifies default/explicit workspace output and target/installed-package immutability via recursive SHA-256 snapshot comparison.
|
|
15
|
+
- Fixed an installed-runtime defect the acceptance gate surfaced: the TypeScript/JavaScript audit source-facts analyzer imported the `typescript` devDependency eagerly at module load, so even `--help` required it in a clean install; it now loads lazily, only when a source file is actually analyzed. Detector output is unchanged.
|
|
16
|
+
- Reconciled the npm package `files` allowlist against proven installed-runtime requirements: narrowed `dist/scripts/` to the two files the installed CLI and legacy bin target need, narrowed `examples/` to the one file an installed command reads by default, and removed `tests/fixtures/` (developer/test-only, not read by any installed command). `benchmarks/` and `docs/METRICS.md` remain packaged.
|
|
17
|
+
- Raised `engines.node` to `>=24`. Standardized GitHub Actions CI on Node `24` and `latest` across Ubuntu/macOS/Windows, and switched the pre-release readiness workflow from a hard-coded Node version to Node `latest`; both workflows run the packed-package acceptance gate.
|
|
18
|
+
- Resolved a transitive devDependency vulnerability (nanoid, GHSA-2v37-7h3g-55p8) via a lockfile-only update; the published runtime dependency tree was unaffected throughout.
|
|
19
|
+
- No security check, security verdict rule, audit detector, Android behavior, experiment scoring, report schema, or existing CLI syntax changed.
|
|
20
|
+
|
|
5
21
|
## [0.4.5] - 2026-08-01
|
|
6
22
|
|
|
7
23
|
Context-integrity validation for the published my-dev-kit v1.10.4 and my-dev-kit-orchestrator v1.2.3 contracts.
|
package/README.md
CHANGED
|
@@ -4,7 +4,9 @@ my-dev-kit-lab is the experiment, audit, and evidence companion for [my-dev-kit]
|
|
|
4
4
|
|
|
5
5
|
my-dev-kit provides local repository indexing and graph-guided retrieval. my-dev-kit-lab supplies the controlled benchmarks, agent adapters, metrics, security checks, and reports needed to evaluate when that retrieval is useful. Results are evidence for a specific target and configuration; they do not guarantee token savings or security.
|
|
6
6
|
|
|
7
|
-
The latest published release is v0.4.
|
|
7
|
+
The latest published release is v0.4.6 (installed-package CLI and runtime-boundary correction), compatible with published `@dailephd/my-dev-kit@1.10.4` and `@dailephd/my-dev-kit-orchestrator@1.2.3`. See [docs/CURRENT_STATE.md](docs/CURRENT_STATE.md).
|
|
8
|
+
|
|
9
|
+
v0.4.6 adds a supported `my-dev-kit-lab` installed CLI router (`--help`, `--version`, `security validate`, `audit`, the `experiment` family, `report render`, `plots generate`, `gallery build`, `demo final`, and the historical direct final-demo invocation form), a writable lab workspace model kept separate from the installed package and the inspected target, and a permanent packed-tarball installation/execution acceptance gate (`npm run verify:packed-package`). See [docs/ROADMAP.md](docs/ROADMAP.md) and [docs/CURRENT_STATE.md](docs/CURRENT_STATE.md) for status detail and [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) for the runtime path model. The "Installed CLI" section below documents the shipped command surface; the source-checkout `npm run` workflow in Quickstart remains available for contributors.
|
|
8
10
|
|
|
9
11
|
## Current capabilities
|
|
10
12
|
|
|
@@ -17,7 +19,39 @@ The latest published release is v0.4.5 (context-integrity validation), compatibl
|
|
|
17
19
|
- **Evaluate the producer-readiness bridge (v0.4.4):** optionally extend `combined-bounded-stage-context` with the frozen my-dev-kit-orchestrator supplemental implementation/test-context packet and retrieval-report documents plus an observed readiness result, all supplied programmatically (there is no CLI flag), to measure owner, allocation, truncation-cause, supplemental/raw agreement, readiness-agreement, and criticality-overlay evidence without reimplementing upstream owner-selection, allocation, producer-parity, or readiness policy.
|
|
18
20
|
- **Evaluate context integrity (v0.4.5):** compare condition-aware producer evidence from my-dev-kit v1.10.4 (role condition coverage, allocation/spillover, required-evidence-loss) against my-dev-kit-orchestrator v1.2.3 run-integrity evidence (run-integrity gate, judge integrity, final-report eligibility, artifact lifecycle state), reporting agreement or contradiction between them rather than re-deriving a verdict. Evaluation runs against a frozen, hash-verified regression fixture pair — a byte-exact real historical failed run and a hand-distilled corrected-replay counterpart representing the same validated contracts — and is programmatic/test-driven only. `npm run report:context-integrity-smoke` renders both fixtures' reports for manual inspection; it takes no arguments and is a developer convenience, not a configurable evaluation CLI.
|
|
19
21
|
|
|
20
|
-
##
|
|
22
|
+
## Installed CLI
|
|
23
|
+
|
|
24
|
+
Installing or invoking the package (for example via `npm install -g @dailephd/my-dev-kit-lab` or `npx @dailephd/my-dev-kit-lab@<version>`) exposes one `my-dev-kit-lab` binary. Users do not need to clone this repository to use these commands. The installed CLI requires Node `>=24`.
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
my-dev-kit-lab --help
|
|
28
|
+
my-dev-kit-lab --version
|
|
29
|
+
|
|
30
|
+
my-dev-kit-lab security validate [options]
|
|
31
|
+
my-dev-kit-lab audit [options]
|
|
32
|
+
|
|
33
|
+
my-dev-kit-lab experiment list
|
|
34
|
+
my-dev-kit-lab experiment describe --experiment <id>
|
|
35
|
+
my-dev-kit-lab experiment run --experiment <id> [options]
|
|
36
|
+
my-dev-kit-lab experiment controlled [options]
|
|
37
|
+
|
|
38
|
+
my-dev-kit-lab report render [options]
|
|
39
|
+
my-dev-kit-lab plots generate [options]
|
|
40
|
+
my-dev-kit-lab gallery build [options]
|
|
41
|
+
my-dev-kit-lab demo final [options]
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
A global `--workspace <path>` option, placed before the command, selects the writable lab workspace. The default workspace, used when `--workspace` is omitted, is `<home>/.my-dev-kit-lab`. Generated reports and experiment output are written under the workspace by default, never under the installed package directory or an inspected `--target` project. Explicit output paths (`--out`, and similar flags) keep their existing resolution behavior and are never redirected under the workspace.
|
|
45
|
+
|
|
46
|
+
The historical direct final-demo invocation form — the same flags `demo final` accepts, without the `demo final` prefix — continues to work for backward compatibility.
|
|
47
|
+
|
|
48
|
+
Low-level developer helpers (`security:deps`, `security:package`, `security:codeql`, `security:semgrep`, fuzz smoke, visualization demos, build/test/verify) are not part of the installed CLI. They remain source-checkout contributor workflows; see below.
|
|
49
|
+
|
|
50
|
+
See [docs/COMMANDS.md](docs/COMMANDS.md) for full command syntax and flags.
|
|
51
|
+
|
|
52
|
+
## Quickstart (contributor / source-checkout workflow)
|
|
53
|
+
|
|
54
|
+
The commands in this section run from a cloned repository checkout and are the contributor/development workflow. They are not required to use the installed CLI documented above.
|
|
21
55
|
|
|
22
56
|
### Install
|
|
23
57
|
|
|
@@ -174,7 +208,7 @@ See [docs/METRICS.md](docs/METRICS.md) for full metric definitions.
|
|
|
174
208
|
|
|
175
209
|
## Security validation
|
|
176
210
|
|
|
177
|
-
`npm run security:validate`
|
|
211
|
+
`npm run security:validate` (contributor/source-checkout) and `my-dev-kit-lab security validate` (installed CLI) both call the same standalone security-validation command owner. It checks local CLI/package boundaries and can inspect another local project with `--target <path>`. The generic audit command can reuse those results through `--types security`, but it does not replace the standalone validator or its reports.
|
|
178
212
|
|
|
179
213
|
Android validation uses `--profile android`. Its default path is static and non-destructive: it starts zero Gradle processes, zero external tools, and zero network operations. Only confirmed `SecurityFinding` records can become audit issues; Android `CandidateEvidence` remains review-only evidence.
|
|
180
214
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import ts from "typescript";
|
|
2
1
|
// ---------------------------------------------------------------------------
|
|
3
2
|
// v0.3.1 Batch 3 -- TypeScript/JavaScript source analyzer.
|
|
4
3
|
//
|
|
@@ -36,7 +35,25 @@ export const TYPESCRIPT_JAVASCRIPT_ANALYZER = {
|
|
|
36
35
|
supportedExtensions: SUPPORTED_EXTENSIONS,
|
|
37
36
|
analyzeFile,
|
|
38
37
|
};
|
|
39
|
-
|
|
38
|
+
// v0.4.6 Batch 5 -- the `typescript` package is a devDependency, not a
|
|
39
|
+
// runtime dependency: an installed my-dev-kit-lab consumer does not have it.
|
|
40
|
+
// The compiler API is loaded lazily (once, memoized) only when a file is
|
|
41
|
+
// actually analyzed, rather than imported at module scope, so merely
|
|
42
|
+
// loading this module (which happens on every CLI invocation, since the
|
|
43
|
+
// language analyzer registry is wired in unconditionally) never requires
|
|
44
|
+
// `typescript` to be present. Only the *type* import above is needed at the
|
|
45
|
+
// top level -- type-only imports are erased entirely at compile time.
|
|
46
|
+
let cachedTypeScriptModule;
|
|
47
|
+
async function loadTypeScript() {
|
|
48
|
+
if (!cachedTypeScriptModule) {
|
|
49
|
+
const imported = await import("typescript");
|
|
50
|
+
cachedTypeScriptModule =
|
|
51
|
+
imported.default ??
|
|
52
|
+
imported;
|
|
53
|
+
}
|
|
54
|
+
return cachedTypeScriptModule;
|
|
55
|
+
}
|
|
56
|
+
async function analyzeFile(input) {
|
|
40
57
|
const { relativePath, language, role, content, inventoryEntry } = input;
|
|
41
58
|
if (Buffer.byteLength(content, "utf8") > MAX_ANALYZABLE_BYTES) {
|
|
42
59
|
return {
|
|
@@ -61,17 +78,18 @@ function analyzeFile(input) {
|
|
|
61
78
|
],
|
|
62
79
|
};
|
|
63
80
|
}
|
|
64
|
-
const
|
|
81
|
+
const ts = await loadTypeScript();
|
|
82
|
+
const scriptKind = resolveScriptKind(ts, inventoryEntry.extension);
|
|
65
83
|
const sourceFile = ts.createSourceFile(relativePath, content, ts.ScriptTarget.Latest, true, scriptKind);
|
|
66
|
-
const diagnostics = getSyntaxDiagnostics(relativePath, sourceFile);
|
|
84
|
+
const diagnostics = getSyntaxDiagnostics(ts, relativePath, sourceFile);
|
|
67
85
|
const imports = [];
|
|
68
86
|
const exports = [];
|
|
69
87
|
const declarations = [];
|
|
70
88
|
const references = [];
|
|
71
89
|
const lineOf = (node) => sourceFile.getLineAndCharacterOfPosition(node.getStart(sourceFile)).line + 1;
|
|
72
90
|
function pushDeclaration(node, name, kind) {
|
|
73
|
-
const isExported = hasModifier(node, ts.SyntaxKind.ExportKeyword);
|
|
74
|
-
const isDefault = hasModifier(node, ts.SyntaxKind.DefaultKeyword);
|
|
91
|
+
const isExported = hasModifier(ts, node, ts.SyntaxKind.ExportKeyword);
|
|
92
|
+
const isDefault = hasModifier(ts, node, ts.SyntaxKind.DefaultKeyword);
|
|
75
93
|
if (name) {
|
|
76
94
|
declarations.push({ name, kind, exported: isExported, line: lineOf(node) });
|
|
77
95
|
}
|
|
@@ -141,7 +159,7 @@ function analyzeFile(input) {
|
|
|
141
159
|
exports.push({ name, kind: "default", line: lineOf(node) });
|
|
142
160
|
}
|
|
143
161
|
function handleVariableStatement(node) {
|
|
144
|
-
const isExported = hasModifier(node, ts.SyntaxKind.ExportKeyword);
|
|
162
|
+
const isExported = hasModifier(ts, node, ts.SyntaxKind.ExportKeyword);
|
|
145
163
|
const isConst = (node.declarationList.flags & ts.NodeFlags.Const) !== 0;
|
|
146
164
|
for (const decl of node.declarationList.declarations) {
|
|
147
165
|
// Destructuring patterns (`const { a, b } = x`) are conservatively
|
|
@@ -247,7 +265,7 @@ function analyzeFile(input) {
|
|
|
247
265
|
diagnostics,
|
|
248
266
|
};
|
|
249
267
|
}
|
|
250
|
-
function resolveScriptKind(extension) {
|
|
268
|
+
function resolveScriptKind(ts, extension) {
|
|
251
269
|
switch (extension) {
|
|
252
270
|
case ".tsx":
|
|
253
271
|
return ts.ScriptKind.TSX;
|
|
@@ -264,7 +282,7 @@ function resolveScriptKind(extension) {
|
|
|
264
282
|
return ts.ScriptKind.TS;
|
|
265
283
|
}
|
|
266
284
|
}
|
|
267
|
-
function hasModifier(node, kind) {
|
|
285
|
+
function hasModifier(ts, node, kind) {
|
|
268
286
|
if (!ts.canHaveModifiers(node))
|
|
269
287
|
return false;
|
|
270
288
|
const modifiers = ts.getModifiers(node);
|
|
@@ -280,11 +298,11 @@ function hasModifier(node, kind) {
|
|
|
280
298
|
// transpileModule() over this repo's own ~375 TS/JS files, which matters
|
|
281
299
|
// because collectSourceFacts.ts calls this analyzer once per eligible file
|
|
282
300
|
// on every audit run (including this repo's own self-audit).
|
|
283
|
-
function getSyntaxDiagnostics(relativePath, sourceFile) {
|
|
301
|
+
function getSyntaxDiagnostics(ts, relativePath, sourceFile) {
|
|
284
302
|
const parseDiagnostics = sourceFile.parseDiagnostics ?? [];
|
|
285
|
-
return parseDiagnostics.map((diagnostic) => toSourceFactDiagnostic(relativePath, diagnostic));
|
|
303
|
+
return parseDiagnostics.map((diagnostic) => toSourceFactDiagnostic(ts, relativePath, diagnostic));
|
|
286
304
|
}
|
|
287
|
-
function toSourceFactDiagnostic(relativePath, diagnostic) {
|
|
305
|
+
function toSourceFactDiagnostic(ts, relativePath, diagnostic) {
|
|
288
306
|
const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n");
|
|
289
307
|
const line = diagnostic.file && diagnostic.start !== undefined
|
|
290
308
|
? diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start).line + 1
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
export function renderTopLevelHelp() {
|
|
2
|
+
return [
|
|
3
|
+
"my-dev-kit-lab - benchmark, evidence, and evaluation companion for my-dev-kit.",
|
|
4
|
+
"",
|
|
5
|
+
"Usage:",
|
|
6
|
+
" my-dev-kit-lab --help",
|
|
7
|
+
" my-dev-kit-lab --version",
|
|
8
|
+
" my-dev-kit-lab [--workspace <path>] security validate [options]",
|
|
9
|
+
" my-dev-kit-lab [--workspace <path>] audit [options]",
|
|
10
|
+
" my-dev-kit-lab [--workspace <path>] experiment list",
|
|
11
|
+
" my-dev-kit-lab [--workspace <path>] experiment describe --experiment <id>",
|
|
12
|
+
" my-dev-kit-lab [--workspace <path>] experiment run --experiment <id> [options]",
|
|
13
|
+
" my-dev-kit-lab [--workspace <path>] experiment controlled --cases <path> --out <dir> [options]",
|
|
14
|
+
" my-dev-kit-lab [--workspace <path>] report render --experiment <dir> --out <dir> [options]",
|
|
15
|
+
" my-dev-kit-lab [--workspace <path>] plots generate --experiment <dir> --out <dir>",
|
|
16
|
+
" my-dev-kit-lab [--workspace <path>] gallery build --out <dir> [options]",
|
|
17
|
+
" my-dev-kit-lab demo final --cases <path> --out <dir> --kit-command <command> [options]",
|
|
18
|
+
"",
|
|
19
|
+
"Options:",
|
|
20
|
+
" -h, --help Show this help message",
|
|
21
|
+
" -V, --version Show the installed my-dev-kit-lab package version",
|
|
22
|
+
" --workspace <path> Writable my-dev-kit-lab workspace root (default: <home>/.my-dev-kit-lab).",
|
|
23
|
+
" Must appear before the command when used.",
|
|
24
|
+
"",
|
|
25
|
+
"Commands:",
|
|
26
|
+
" security validate Run security validation",
|
|
27
|
+
" audit Run a project audit",
|
|
28
|
+
" experiment list List registered experiment plugins",
|
|
29
|
+
" experiment describe Describe a registered experiment plugin",
|
|
30
|
+
" experiment run Run a registered experiment plugin",
|
|
31
|
+
" experiment controlled Run a controlled context-strategy-comparison experiment",
|
|
32
|
+
" report render Render an experiment report from controlled-experiment artifacts",
|
|
33
|
+
" plots generate Generate experiment plot artifacts",
|
|
34
|
+
" gallery build Build a gallery manifest/index",
|
|
35
|
+
" demo final Run the full final demo workflow",
|
|
36
|
+
"",
|
|
37
|
+
"Run \"my-dev-kit-lab <command> --help\" (or \"my-dev-kit-lab <family> <command> --help\") for details.",
|
|
38
|
+
"",
|
|
39
|
+
"Note: the historical direct invocation form (flags without \"demo final\", e.g.",
|
|
40
|
+
"\"my-dev-kit-lab --cases <path> --out <dir> --kit-command <command>\") remains",
|
|
41
|
+
"supported for backward compatibility."
|
|
42
|
+
].join("\n");
|
|
43
|
+
}
|
|
44
|
+
export function renderDemoHelp() {
|
|
45
|
+
return [
|
|
46
|
+
"my-dev-kit-lab demo - demo command family",
|
|
47
|
+
"",
|
|
48
|
+
"Usage:",
|
|
49
|
+
" my-dev-kit-lab demo final [options]",
|
|
50
|
+
" my-dev-kit-lab demo --help",
|
|
51
|
+
"",
|
|
52
|
+
"Commands:",
|
|
53
|
+
" final Run the full final demo. Run \"my-dev-kit-lab demo final --help\" for details."
|
|
54
|
+
].join("\n");
|
|
55
|
+
}
|
|
56
|
+
export function renderFinalDemoHelp() {
|
|
57
|
+
return [
|
|
58
|
+
"my-dev-kit-lab demo final - run the full final demo workflow",
|
|
59
|
+
"",
|
|
60
|
+
"Usage:",
|
|
61
|
+
" my-dev-kit-lab demo final --cases <path> --out <dir> --kit-command <command> [options]",
|
|
62
|
+
"",
|
|
63
|
+
"Required:",
|
|
64
|
+
" --cases <path> Path to the evaluation cases file",
|
|
65
|
+
" --out <dir> Output directory for demo artifacts",
|
|
66
|
+
" --kit-command <command> Command used to invoke my-dev-kit for the visualization demos",
|
|
67
|
+
"",
|
|
68
|
+
"Options:",
|
|
69
|
+
" --agents <list> Comma-separated agent ids (default: fake-agent)",
|
|
70
|
+
" --strategies <list> Comma-separated strategies: raw-full-file,my-dev-kit-guided (default: both)",
|
|
71
|
+
" --complexities <list> Comma-separated complexity levels: short,medium,long,multi-step (default: short)",
|
|
72
|
+
" --case <ids> Comma-separated case ids to run",
|
|
73
|
+
" --benchmark-project <ids> Comma-separated benchmark project ids to run",
|
|
74
|
+
" --max-runs <n> Maximum number of runs",
|
|
75
|
+
" --screenshot / --no-screenshot Enable/disable report screenshot capture (default: disabled)",
|
|
76
|
+
" --include-real-agents Allow real agent ids (codex, claude)",
|
|
77
|
+
" --continue-on-failure / --no-continue-on-failure Continue after a failed run (default: continue-on-failure)",
|
|
78
|
+
" --timeout-ms <ms> Per-run timeout in milliseconds",
|
|
79
|
+
"",
|
|
80
|
+
"The legacy direct invocation form (the same flags without a leading \"demo final\")",
|
|
81
|
+
"remains supported for backward compatibility."
|
|
82
|
+
].join("\n");
|
|
83
|
+
}
|
|
84
|
+
export function renderExperimentHelp() {
|
|
85
|
+
return [
|
|
86
|
+
"my-dev-kit-lab experiment - experiment command family",
|
|
87
|
+
"",
|
|
88
|
+
"Usage:",
|
|
89
|
+
" my-dev-kit-lab experiment list",
|
|
90
|
+
" my-dev-kit-lab experiment describe --experiment <id>",
|
|
91
|
+
" my-dev-kit-lab experiment run --experiment <id> [options]",
|
|
92
|
+
" my-dev-kit-lab experiment controlled [options]",
|
|
93
|
+
" my-dev-kit-lab experiment --help",
|
|
94
|
+
"",
|
|
95
|
+
"Commands:",
|
|
96
|
+
" list List registered experiment plugins.",
|
|
97
|
+
" Run \"my-dev-kit-lab experiment list --help\" for details.",
|
|
98
|
+
" describe Describe a registered experiment plugin.",
|
|
99
|
+
" Run \"my-dev-kit-lab experiment describe --help\" for details.",
|
|
100
|
+
" run Run a registered experiment plugin through the generic runner.",
|
|
101
|
+
" Run \"my-dev-kit-lab experiment run --help\" for details.",
|
|
102
|
+
" controlled Run a controlled context-strategy-comparison experiment.",
|
|
103
|
+
" Run \"my-dev-kit-lab experiment controlled --help\" for details."
|
|
104
|
+
].join("\n");
|
|
105
|
+
}
|
|
106
|
+
export function renderExperimentListHelp() {
|
|
107
|
+
return [
|
|
108
|
+
"my-dev-kit-lab experiment list - list registered experiment plugins",
|
|
109
|
+
"",
|
|
110
|
+
"Usage:",
|
|
111
|
+
" my-dev-kit-lab experiment list [--json]",
|
|
112
|
+
"",
|
|
113
|
+
"Options:",
|
|
114
|
+
" --json Print the experiment list as JSON instead of a human-readable summary"
|
|
115
|
+
].join("\n");
|
|
116
|
+
}
|
|
117
|
+
export function renderExperimentDescribeHelp() {
|
|
118
|
+
return [
|
|
119
|
+
"my-dev-kit-lab experiment describe - describe a registered experiment plugin",
|
|
120
|
+
"",
|
|
121
|
+
"Usage:",
|
|
122
|
+
" my-dev-kit-lab experiment describe --experiment <id> [--json]",
|
|
123
|
+
"",
|
|
124
|
+
"Required:",
|
|
125
|
+
" --experiment <id> Registered experiment plugin id (see \"my-dev-kit-lab experiment list\")",
|
|
126
|
+
"",
|
|
127
|
+
"Options:",
|
|
128
|
+
" --json Print the description as JSON instead of a human-readable summary"
|
|
129
|
+
].join("\n");
|
|
130
|
+
}
|
|
131
|
+
export function renderExperimentRunHelp() {
|
|
132
|
+
return [
|
|
133
|
+
"my-dev-kit-lab experiment run - run a registered experiment plugin through the generic runner",
|
|
134
|
+
"",
|
|
135
|
+
"Usage:",
|
|
136
|
+
" my-dev-kit-lab experiment run --experiment <id> [options]",
|
|
137
|
+
"",
|
|
138
|
+
"Required:",
|
|
139
|
+
" --experiment <id> Registered experiment plugin id (see \"my-dev-kit-lab experiment list\")",
|
|
140
|
+
"",
|
|
141
|
+
"Options:",
|
|
142
|
+
" --target <path> Local target project path (default: self)",
|
|
143
|
+
" --out <dir> Output directory for experiment artifacts",
|
|
144
|
+
" (default: beneath the workspace when installed)",
|
|
145
|
+
" --cases <path> Path to the evaluation cases file",
|
|
146
|
+
" (default: the bundled package resource)",
|
|
147
|
+
" --project-profiles <path> Path to the benchmark project profiles file",
|
|
148
|
+
" (default: the bundled package resource)",
|
|
149
|
+
" --case <ids> Comma-separated case ids to run",
|
|
150
|
+
" --benchmark-project <ids> Comma-separated benchmark project ids to run",
|
|
151
|
+
" --agents <list> Comma-separated agent ids (default: fake-agent)",
|
|
152
|
+
" --strategies <list> Comma-separated strategies: raw-full-file,my-dev-kit-guided",
|
|
153
|
+
" --complexities <list> Comma-separated complexity levels: short,medium,long,multi-step",
|
|
154
|
+
" --timeout-ms <ms> Per-run timeout in milliseconds",
|
|
155
|
+
" --max-runs <n> Maximum number of runs",
|
|
156
|
+
" --continue-on-failure / --no-continue-on-failure Continue after a failed run (default: continue-on-failure)",
|
|
157
|
+
" --require-agents Fail if no real agent command templates are configured",
|
|
158
|
+
" --include-real-agents Allow real agent ids (codex, claude)",
|
|
159
|
+
" --command-template-codex <template> Command template used to invoke the codex agent",
|
|
160
|
+
" --command-template-claude <template> Command template used to invoke the claude agent",
|
|
161
|
+
" --no-screenshot Accepted for compatibility; the plugin-aware report",
|
|
162
|
+
" path does not capture screenshots yet"
|
|
163
|
+
].join("\n");
|
|
164
|
+
}
|
|
165
|
+
export function renderExperimentControlledHelp() {
|
|
166
|
+
return [
|
|
167
|
+
"my-dev-kit-lab experiment controlled - run a controlled context-strategy-comparison experiment",
|
|
168
|
+
"",
|
|
169
|
+
"Usage:",
|
|
170
|
+
" my-dev-kit-lab experiment controlled --cases <path> --out <dir> [options]",
|
|
171
|
+
"",
|
|
172
|
+
"Required:",
|
|
173
|
+
" --cases <path> Path to the evaluation cases file",
|
|
174
|
+
" --out <dir> Output directory for experiment artifacts",
|
|
175
|
+
"",
|
|
176
|
+
"Options:",
|
|
177
|
+
" --project-profiles <path> Path to the benchmark project profiles file",
|
|
178
|
+
" (default: the bundled package resource)",
|
|
179
|
+
" --case <ids> Comma-separated case ids to run",
|
|
180
|
+
" --benchmark-project <ids> Comma-separated benchmark project ids to run",
|
|
181
|
+
" --agents <list> Comma-separated agent ids (default: fake-agent)",
|
|
182
|
+
" --strategies <list> Comma-separated strategies: raw-full-file,my-dev-kit-guided",
|
|
183
|
+
" --complexities <list> Comma-separated complexity levels: short,medium,long,multi-step",
|
|
184
|
+
" --timeout-ms <ms> Per-run timeout in milliseconds",
|
|
185
|
+
" --max-runs <n> Maximum number of runs",
|
|
186
|
+
" --continue-on-failure / --no-continue-on-failure Continue after a failed run (default: continue-on-failure)",
|
|
187
|
+
" --require-agents Fail if no real agent command templates are configured",
|
|
188
|
+
" --include-real-agents Allow real agent ids (codex, claude)",
|
|
189
|
+
" --command-template-codex <template> Command template used to invoke the codex agent",
|
|
190
|
+
" --command-template-claude <template> Command template used to invoke the claude agent"
|
|
191
|
+
].join("\n");
|
|
192
|
+
}
|
|
193
|
+
export function renderReportHelp() {
|
|
194
|
+
return [
|
|
195
|
+
"my-dev-kit-lab report - report command family",
|
|
196
|
+
"",
|
|
197
|
+
"Usage:",
|
|
198
|
+
" my-dev-kit-lab report render [options]",
|
|
199
|
+
" my-dev-kit-lab report --help",
|
|
200
|
+
"",
|
|
201
|
+
"Commands:",
|
|
202
|
+
" render Render an HTML/JSON experiment report from controlled-experiment artifacts.",
|
|
203
|
+
" Run \"my-dev-kit-lab report render --help\" for details."
|
|
204
|
+
].join("\n");
|
|
205
|
+
}
|
|
206
|
+
export function renderReportRenderHelp() {
|
|
207
|
+
return [
|
|
208
|
+
"my-dev-kit-lab report render - render an HTML/JSON experiment report from controlled-experiment artifacts",
|
|
209
|
+
"",
|
|
210
|
+
"Usage:",
|
|
211
|
+
" my-dev-kit-lab report render --experiment <dir> --out <dir> [options]",
|
|
212
|
+
"",
|
|
213
|
+
"Required:",
|
|
214
|
+
" --experiment <dir> Path to a controlled-experiment output directory",
|
|
215
|
+
" --out <dir> Output directory for the rendered report",
|
|
216
|
+
"",
|
|
217
|
+
"Options:",
|
|
218
|
+
" --title <title> Report title",
|
|
219
|
+
" --subtitle <subtitle> Report subtitle",
|
|
220
|
+
" --screenshot / --no-screenshot Enable/disable PNG screenshot capture (default: disabled)",
|
|
221
|
+
" --require-screenshot Fail unless a screenshot was captured (implies --screenshot)",
|
|
222
|
+
" --max-prompt-chars <n> Maximum characters of prompt text to include",
|
|
223
|
+
" --max-file-tree-entries <n> Maximum file tree entries to include",
|
|
224
|
+
" --plots <dir> Optional plots directory to include in the report",
|
|
225
|
+
" --visualizations <dir> Optional visualization-demos directory to include in the report"
|
|
226
|
+
].join("\n");
|
|
227
|
+
}
|
|
228
|
+
export function renderPlotsHelp() {
|
|
229
|
+
return [
|
|
230
|
+
"my-dev-kit-lab plots - plots command family",
|
|
231
|
+
"",
|
|
232
|
+
"Usage:",
|
|
233
|
+
" my-dev-kit-lab plots generate [options]",
|
|
234
|
+
" my-dev-kit-lab plots --help",
|
|
235
|
+
"",
|
|
236
|
+
"Commands:",
|
|
237
|
+
" generate Generate experiment plot artifacts from controlled-experiment artifacts.",
|
|
238
|
+
" Run \"my-dev-kit-lab plots generate --help\" for details."
|
|
239
|
+
].join("\n");
|
|
240
|
+
}
|
|
241
|
+
export function renderPlotsGenerateHelp() {
|
|
242
|
+
return [
|
|
243
|
+
"my-dev-kit-lab plots generate - generate chart/plot artifacts from controlled-experiment artifacts",
|
|
244
|
+
"",
|
|
245
|
+
"Usage:",
|
|
246
|
+
" my-dev-kit-lab plots generate --experiment <dir> --out <dir>",
|
|
247
|
+
"",
|
|
248
|
+
"Required:",
|
|
249
|
+
" --experiment <dir> Path to a controlled-experiment output directory",
|
|
250
|
+
" --out <dir> Output directory for plot artifacts"
|
|
251
|
+
].join("\n");
|
|
252
|
+
}
|
|
253
|
+
export function renderGalleryHelp() {
|
|
254
|
+
return [
|
|
255
|
+
"my-dev-kit-lab gallery - gallery command family",
|
|
256
|
+
"",
|
|
257
|
+
"Usage:",
|
|
258
|
+
" my-dev-kit-lab gallery build [options]",
|
|
259
|
+
" my-dev-kit-lab gallery --help",
|
|
260
|
+
"",
|
|
261
|
+
"Commands:",
|
|
262
|
+
" build Build a gallery manifest/index from report, plots, and visualization artifacts.",
|
|
263
|
+
" Run \"my-dev-kit-lab gallery build --help\" for details."
|
|
264
|
+
].join("\n");
|
|
265
|
+
}
|
|
266
|
+
export function renderGalleryBuildHelp() {
|
|
267
|
+
return [
|
|
268
|
+
"my-dev-kit-lab gallery build - build a gallery manifest/index from existing artifacts",
|
|
269
|
+
"",
|
|
270
|
+
"Usage:",
|
|
271
|
+
" my-dev-kit-lab gallery build --out <dir> [options]",
|
|
272
|
+
"",
|
|
273
|
+
"Required:",
|
|
274
|
+
" --out <dir> Output directory for the gallery manifest and index",
|
|
275
|
+
"",
|
|
276
|
+
"Options:",
|
|
277
|
+
" --report <dir> Path to a rendered report directory",
|
|
278
|
+
" --plots <dir> Path to a plots output directory",
|
|
279
|
+
" --visualizations <dir> Path to a visualization-demos output directory",
|
|
280
|
+
" --experiment <dir> Path to a controlled-experiment output directory"
|
|
281
|
+
].join("\n");
|
|
282
|
+
}
|
|
283
|
+
export function renderSecurityHelp() {
|
|
284
|
+
return [
|
|
285
|
+
"my-dev-kit-lab security - security command family",
|
|
286
|
+
"",
|
|
287
|
+
"Usage:",
|
|
288
|
+
" my-dev-kit-lab security validate [options]",
|
|
289
|
+
" my-dev-kit-lab security --help",
|
|
290
|
+
"",
|
|
291
|
+
"Commands:",
|
|
292
|
+
" validate Run security validation. Run \"my-dev-kit-lab security validate --help\" for details."
|
|
293
|
+
].join("\n");
|
|
294
|
+
}
|
|
295
|
+
export function renderUnknownCommandError(command) {
|
|
296
|
+
return [
|
|
297
|
+
`Unknown command: ${command}`,
|
|
298
|
+
"Run \"my-dev-kit-lab --help\" for usage."
|
|
299
|
+
].join("\n");
|
|
300
|
+
}
|