@dailephd/my-dev-kit-lab 0.4.5 → 0.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. package/CHANGELOG.md +26 -1
  2. package/README.md +43 -3
  3. package/dist/scripts/cli.js +9 -0
  4. package/dist/src/audits/core/typescriptJavaScriptAnalyzer.js +30 -12
  5. package/dist/src/browser/index.js +2 -0
  6. package/dist/src/browser/playwrightRuntime.js +74 -0
  7. package/dist/src/browser/types.js +10 -0
  8. package/dist/src/cli/help.js +376 -0
  9. package/dist/src/cli/index.js +2 -0
  10. package/dist/src/cli/runLabCli.js +257 -0
  11. package/dist/src/commands/runAuditCommand.js +132 -0
  12. package/dist/src/commands/runControlledExperimentCommand.js +7 -3
  13. package/dist/{scripts/experiments/describeExperiment.js → src/commands/runExperimentDescribeCommand.js} +14 -10
  14. package/dist/{scripts/experiments/listExperiments.js → src/commands/runExperimentListCommand.js} +3 -6
  15. package/dist/{scripts/experiments/runExperiment.js → src/commands/runExperimentRunCommand.js} +80 -22
  16. package/dist/src/commands/runFinalDemoCommand.js +2 -3
  17. package/dist/src/commands/runSecurityValidationCommand.js +271 -0
  18. package/dist/src/commands/runTutorialRunCommand.js +170 -0
  19. package/dist/src/commands/runTutorialValidateCommand.js +138 -0
  20. package/dist/src/core/processTree.js +52 -0
  21. package/dist/src/core/resolveCommand.js +34 -0
  22. package/dist/src/core/runMeasuredCommand.js +39 -31
  23. package/dist/src/runtime/index.js +4 -0
  24. package/dist/src/runtime/labExecutionContext.js +22 -0
  25. package/dist/src/runtime/managedProcess.js +380 -0
  26. package/dist/src/runtime/packageResource.js +22 -0
  27. package/dist/src/runtime/packageRoot.js +37 -0
  28. package/dist/src/screenshot/captureReportScreenshot.js +30 -27
  29. package/dist/src/securityValidation/packageChecks/requiredPackageContents.js +14 -1
  30. package/dist/src/tutorial/index.js +16 -0
  31. package/dist/src/tutorial/loadTutorialContracts.js +60 -0
  32. package/dist/src/tutorial/markdownTutorialWriter.js +53 -0
  33. package/dist/src/tutorial/runTutorial.js +465 -0
  34. package/dist/src/tutorial/scenarioValidation.js +383 -0
  35. package/dist/src/tutorial/subtitleWriter.js +88 -0
  36. package/dist/src/tutorial/targetContractValidation.js +212 -0
  37. package/dist/src/tutorial/tutorialActions.js +110 -0
  38. package/dist/src/tutorial/tutorialArtifacts.js +176 -0
  39. package/dist/src/tutorial/tutorialAssertions.js +249 -0
  40. package/dist/src/tutorial/tutorialCursor.js +149 -0
  41. package/dist/src/tutorial/tutorialLocators.js +37 -0
  42. package/dist/src/tutorial/tutorialManifest.js +74 -0
  43. package/dist/src/tutorial/tutorialOverlay.js +180 -0
  44. package/dist/src/tutorial/tutorialPaths.js +86 -0
  45. package/dist/src/tutorial/tutorialSession.js +398 -0
  46. package/dist/src/tutorial/types.js +48 -0
  47. package/dist/src/tutorial/validationPrimitives.js +141 -0
  48. package/examples/tutorial-browser/index.html +47 -0
  49. package/examples/tutorial-browser/prepare.mjs +14 -0
  50. package/examples/tutorial-browser/scenario.json +17 -0
  51. package/examples/tutorial-browser/server.mjs +14 -0
  52. package/package.json +13 -9
  53. package/dist/scripts/audits/runAudit.js +0 -135
  54. package/dist/scripts/build-gallery.js +0 -3
  55. package/dist/scripts/capture-demo-report.js +0 -3
  56. package/dist/scripts/evaluate-token-savings.js +0 -2
  57. package/dist/scripts/generate-experiment-plots.js +0 -3
  58. package/dist/scripts/generate-prompt-variants.js +0 -2
  59. package/dist/scripts/render-experiment-report.js +0 -2
  60. package/dist/scripts/report-context-integrity-smoke.js +0 -70
  61. package/dist/scripts/run-agent-prompt.js +0 -2
  62. package/dist/scripts/run-controlled-experiment.js +0 -2
  63. package/dist/scripts/run-lab-demo.js +0 -5
  64. package/dist/scripts/run-visualization-demos.js +0 -3
  65. package/dist/scripts/security/resolveToolRoot.js +0 -16
  66. package/dist/scripts/security/runCodeql.js +0 -58
  67. package/dist/scripts/security/runDependencyChecks.js +0 -58
  68. package/dist/scripts/security/runFuzzSmoke.js +0 -29
  69. package/dist/scripts/security/runPackageChecks.js +0 -57
  70. package/dist/scripts/security/runSemgrep.js +0 -64
  71. package/dist/scripts/security/validate.js +0 -266
  72. package/dist/scripts/verify-benchmarks.js +0 -202
  73. package/examples/demo-report-input.json +0 -78
  74. package/examples/lab-demo-cases.json +0 -35
  75. package/examples/real-agent-campaign-cases.json +0 -118
  76. package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-a/src/debug/res/xml/ambiguous_backup_rules.xml +0 -4
  77. package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-a/src/main/res/xml/ambiguous_backup_rules.xml +0 -4
  78. package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-a/src/main/res/xml/backup_rules.xml +0 -5
  79. package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-a/src/main/res/xml/broad_backup_rules.xml +0 -4
  80. package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-a/src/main/res/xml/data_extraction_rules.xml +0 -10
  81. package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-a/src/main/res/xml/unsupported_domain_rules.xml +0 -4
  82. package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-b/src/main/res/xml/malformed_backup_rules.xml +0 -4
  83. package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-b/src/main/res/xml/unsupported_root.xml +0 -4
  84. package/tests/fixtures/android/advanced-security-fixtures/network-security/module-a/src/debug/res/xml/ambiguous_config.xml +0 -4
  85. package/tests/fixtures/android/advanced-security-fixtures/network-security/module-a/src/main/res/xml/ambiguous_config.xml +0 -4
  86. package/tests/fixtures/android/advanced-security-fixtures/network-security/module-a/src/main/res/xml/base_cleartext_false.xml +0 -8
  87. package/tests/fixtures/android/advanced-security-fixtures/network-security/module-a/src/main/res/xml/broad_and_duplicate_domains.xml +0 -8
  88. package/tests/fixtures/android/advanced-security-fixtures/network-security/module-a/src/main/res/xml/empty_domain.xml +0 -6
  89. package/tests/fixtures/android/advanced-security-fixtures/network-security/module-a/src/main/res/xml/malformed_pin.xml +0 -11
  90. package/tests/fixtures/android/advanced-security-fixtures/network-security/module-a/src/main/res/xml/network_security_config.xml +0 -26
  91. package/tests/fixtures/android/advanced-security-fixtures/network-security/module-b/src/main/res/xml/malformed_network_security_config.xml +0 -6
  92. package/tests/fixtures/android/advanced-security-fixtures/network-security/module-b/src/main/res/xml/unsupported_root.xml +0 -4
  93. package/tests/fixtures/android/advanced-security-fixtures/release-configuration/groovy-release-debuggable-dynamic.gradle +0 -7
  94. package/tests/fixtures/android/advanced-security-fixtures/release-configuration/groovy-release-debuggable-false.gradle +0 -9
  95. package/tests/fixtures/android/advanced-security-fixtures/release-configuration/groovy-release-debuggable-true.gradle +0 -13
  96. package/tests/fixtures/android/advanced-security-fixtures/release-configuration/kotlin-release-debuggable-false.gradle.kts +0 -7
  97. package/tests/fixtures/android/advanced-security-fixtures/release-configuration/kotlin-release-debuggable-true.gradle.kts +0 -10
  98. package/tests/fixtures/android/advanced-security-fixtures/release-configuration/missing-release-build-type.gradle.kts +0 -7
  99. package/tests/fixtures/android/advanced-security-fixtures/resource-resolution/module-a/src/debug/res/xml/network_security_config.xml +0 -8
  100. package/tests/fixtures/android/advanced-security-fixtures/resource-resolution/module-a/src/main/res/xml/backup_rules.xml +0 -4
  101. package/tests/fixtures/android/advanced-security-fixtures/resource-resolution/module-a/src/main/res/xml/network_security_config.xml +0 -8
  102. package/tests/fixtures/android/advanced-security-fixtures/resource-resolution/module-b/src/main/res/xml/malformed_network_security_config.xml +0 -7
  103. package/tests/fixtures/android/advanced-security-fixtures/secret-candidates/SampleActivity.java +0 -8
  104. package/tests/fixtures/android/advanced-security-fixtures/secret-candidates/SampleActivity.kt +0 -9
  105. package/tests/fixtures/android/advanced-security-fixtures/secret-candidates/build.gradle +0 -11
  106. package/tests/fixtures/android/advanced-security-fixtures/secret-candidates/build.gradle.kts +0 -11
  107. package/tests/fixtures/android/advanced-security-fixtures/secret-candidates/google-services.json +0 -16
  108. package/tests/fixtures/android/advanced-security-fixtures/secret-candidates/local.properties +0 -3
  109. package/tests/fixtures/android/advanced-security-fixtures/secret-candidates-bounds/module/binary.properties +0 -0
  110. package/tests/fixtures/android/advanced-security-fixtures/secret-candidates-bounds/module/oversized.json +0 -1
  111. package/tests/fixtures/android/advanced-security-fixtures/signing-configuration/app/fake-release-keystore.jks +0 -1
  112. package/tests/fixtures/android/advanced-security-fixtures/signing-configuration/build/generated-fake.keystore +0 -1
  113. package/tests/fixtures/android/compose-app/app/build.gradle.kts +0 -21
  114. package/tests/fixtures/android/compose-app/app/src/main/AndroidManifest.xml +0 -22
  115. package/tests/fixtures/android/compose-app/app/src/main/java/com/example/composeapp/MainActivity.kt +0 -11
  116. package/tests/fixtures/android/compose-app/build.gradle.kts +0 -4
  117. package/tests/fixtures/android/compose-app/gradle/wrapper/gradle-wrapper.properties +0 -4
  118. package/tests/fixtures/android/compose-app/settings.gradle.kts +0 -2
  119. package/tests/fixtures/android/gradle-metadata-fixtures/catalog-only-plugin/build.gradle.kts +0 -3
  120. package/tests/fixtures/android/gradle-metadata-fixtures/catalog-only-plugin/gradle/libs.versions.toml +0 -5
  121. package/tests/fixtures/android/gradle-metadata-fixtures/comment-safety.gradle.kts +0 -21
  122. package/tests/fixtures/android/gradle-metadata-fixtures/dynamic-values.gradle.kts +0 -17
  123. package/tests/fixtures/android/gradle-metadata-fixtures/groovy-literal.gradle +0 -23
  124. package/tests/fixtures/android/gradle-metadata-fixtures/wrapper-malformed.properties +0 -4
  125. package/tests/fixtures/android/gradle-metadata-fixtures/wrapper-missing-url.properties +0 -3
  126. package/tests/fixtures/android/gradle-metadata-fixtures/wrapper-with-checksum.properties +0 -5
  127. package/tests/fixtures/android/java-app/app/build.gradle +0 -16
  128. package/tests/fixtures/android/java-app/app/src/main/AndroidManifest.xml +0 -19
  129. package/tests/fixtures/android/java-app/app/src/main/java/com/example/javaapp/MainActivity.java +0 -4
  130. package/tests/fixtures/android/java-app/build.gradle +0 -3
  131. package/tests/fixtures/android/java-app/gradle/wrapper/gradle-wrapper.properties +0 -4
  132. package/tests/fixtures/android/java-app/settings.gradle +0 -2
  133. package/tests/fixtures/android/library/build.gradle.kts +0 -3
  134. package/tests/fixtures/android/library/gradle/wrapper/gradle-wrapper.properties +0 -4
  135. package/tests/fixtures/android/library/mylibrary/build.gradle.kts +0 -13
  136. package/tests/fixtures/android/library/mylibrary/src/main/AndroidManifest.xml +0 -2
  137. package/tests/fixtures/android/library/settings.gradle.kts +0 -2
  138. package/tests/fixtures/android/manifest-audit-fixtures/incomplete-intent-filter.xml +0 -14
  139. package/tests/fixtures/android/manifest-audit-fixtures/malformed-exported.xml +0 -10
  140. package/tests/fixtures/android/manifest-audit-fixtures/malformed.xml +0 -5
  141. package/tests/fixtures/android/manifest-audit-fixtures/missing-application.xml +0 -7
  142. package/tests/fixtures/android/manifest-audit-fixtures/missing-component-name.xml +0 -11
  143. package/tests/fixtures/android/manifest-audit-fixtures/permission-coverage.xml +0 -29
  144. package/tests/fixtures/android/manifest-audit-fixtures/risky-components.xml +0 -62
  145. package/tests/fixtures/android/manifest-audit-fixtures/risky-deep-links.xml +0 -45
  146. package/tests/fixtures/android/manifest-audit-fixtures/unresolved-placeholder.xml +0 -14
  147. package/tests/fixtures/android/manifest-audit-fixtures/unusual-namespace-prefix.xml +0 -11
  148. package/tests/fixtures/android/multi-module/app/build.gradle.kts +0 -22
  149. package/tests/fixtures/android/multi-module/app/src/androidTest/java/com/example/multimodule/app/ExampleInstrumentedTest.kt +0 -3
  150. package/tests/fixtures/android/multi-module/app/src/main/AndroidManifest.xml +0 -11
  151. package/tests/fixtures/android/multi-module/app/src/test/java/com/example/multimodule/app/ExampleUnitTest.kt +0 -3
  152. package/tests/fixtures/android/multi-module/build.gradle.kts +0 -5
  153. package/tests/fixtures/android/multi-module/core/build.gradle.kts +0 -14
  154. package/tests/fixtures/android/multi-module/core/src/main/AndroidManifest.xml +0 -2
  155. package/tests/fixtures/android/multi-module/feature-login/build.gradle.kts +0 -18
  156. package/tests/fixtures/android/multi-module/feature-login/src/main/AndroidManifest.xml +0 -2
  157. package/tests/fixtures/android/multi-module/gradle/libs.versions.toml +0 -8
  158. package/tests/fixtures/android/multi-module/gradle/wrapper/gradle-wrapper.properties +0 -4
  159. package/tests/fixtures/android/multi-module/settings.gradle.kts +0 -4
  160. package/tests/fixtures/android/non-android-gradle/build.gradle.kts +0 -3
  161. package/tests/fixtures/android/non-android-gradle/core/build.gradle.kts +0 -3
  162. package/tests/fixtures/android/non-android-gradle/core/src/main/java/com/example/core/Core.java +0 -4
  163. package/tests/fixtures/android/non-android-gradle/gradle/wrapper/gradle-wrapper.properties +0 -4
  164. package/tests/fixtures/android/non-android-gradle/settings.gradle.kts +0 -2
  165. package/tests/fixtures/android/partial/app/build.gradle.kts +0 -7
  166. package/tests/fixtures/android/partial/settings.gradle.kts +0 -2
  167. package/tests/fixtures/android/xml-view-app/app/build.gradle.kts +0 -17
  168. package/tests/fixtures/android/xml-view-app/app/src/main/AndroidManifest.xml +0 -31
  169. package/tests/fixtures/android/xml-view-app/app/src/main/kotlin/com/example/xmlviewapp/MainActivity.kt +0 -7
  170. package/tests/fixtures/android/xml-view-app/app/src/main/res/layout/activity_main.xml +0 -4
  171. package/tests/fixtures/android/xml-view-app/build.gradle.kts +0 -4
  172. package/tests/fixtures/android/xml-view-app/gradle/wrapper/gradle-wrapper.properties +0 -4
  173. package/tests/fixtures/android/xml-view-app/settings.gradle.kts +0 -2
  174. package/tests/fixtures/audits/mixed-language/mixed-docs-claims/README.md +0 -16
  175. package/tests/fixtures/audits/mixed-language/mixed-docs-claims/build.gradle.kts +0 -4
  176. package/tests/fixtures/audits/mixed-language/mixed-docs-claims/src/main/java/com/example/Widget.java +0 -7
  177. package/tests/fixtures/audits/mixed-language/mixed-docs-claims/src/main/kotlin/com/example/Gadget.kt +0 -7
  178. package/tests/fixtures/audits/mixed-language/mixed-generated-vendor/README.md +0 -10
  179. package/tests/fixtures/audits/mixed-language/mixed-generated-vendor/build/Main.class +0 -1
  180. package/tests/fixtures/audits/mixed-language/mixed-generated-vendor/dist/index.js +0 -1
  181. package/tests/fixtures/audits/mixed-language/mixed-generated-vendor/generated/schema.ts +0 -1
  182. package/tests/fixtures/audits/mixed-language/mixed-generated-vendor/src/index.ts +0 -3
  183. package/tests/fixtures/audits/mixed-language/mixed-generated-vendor/vendor/lib.py +0 -2
  184. package/tests/fixtures/audits/mixed-language/mixed-java-kotlin/README.md +0 -10
  185. package/tests/fixtures/audits/mixed-language/mixed-java-kotlin/build.gradle.kts +0 -8
  186. package/tests/fixtures/audits/mixed-language/mixed-java-kotlin/settings.gradle.kts +0 -1
  187. package/tests/fixtures/audits/mixed-language/mixed-java-kotlin/src/main/java/com/example/FooService.java +0 -7
  188. package/tests/fixtures/audits/mixed-language/mixed-java-kotlin/src/main/kotlin/com/example/BarService.kt +0 -7
  189. package/tests/fixtures/audits/mixed-language/mixed-java-kotlin/src/test/java/com/example/FooServiceTest.java +0 -8
  190. package/tests/fixtures/audits/mixed-language/mixed-java-kotlin/src/test/kotlin/com/example/BarServiceTest.kt +0 -8
  191. package/tests/fixtures/audits/mixed-language/mixed-python-ts/README.md +0 -8
  192. package/tests/fixtures/audits/mixed-language/mixed-python-ts/src/app.py +0 -7
  193. package/tests/fixtures/audits/mixed-language/mixed-python-ts/src/index.ts +0 -3
  194. package/tests/fixtures/audits/mixed-language/mixed-python-ts/tests/test_app.py +0 -5
  195. package/tests/fixtures/audits/mixed-language/mixed-ts-js/README.md +0 -7
  196. package/tests/fixtures/audits/mixed-language/mixed-ts-js/src/helper.js +0 -5
  197. package/tests/fixtures/audits/mixed-language/mixed-ts-js/src/index.ts +0 -3
  198. package/tests/fixtures/audits/mixed-language/mixed-ts-js/tests/index.sample.ts +0 -5
  199. package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/README.md +0 -10
  200. package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/build.gradle.kts +0 -4
  201. package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/pytests/test_app.py +0 -5
  202. package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/src/app.py +0 -2
  203. package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/src/helper.js +0 -5
  204. package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/src/index.ts +0 -3
  205. package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/src/main/java/com/example/Multiplier.java +0 -7
  206. package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/src/main/kotlin/com/example/Divider.kt +0 -7
  207. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/corrected-replay/derived/run-integrity-evidence.json +0 -99
  208. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/corrected-replay/producer/implementation-audit.json +0 -1585
  209. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/corrected-replay/producer/implementation-capsule.json +0 -11455
  210. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/00-request.txt +0 -1
  211. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/architecture-context-packet.txt +0 -82
  212. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/behavior-model.txt +0 -104
  213. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/final-report.txt +0 -41
  214. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/implementation-context-packet.txt +0 -114
  215. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/implementation-report.txt +0 -92
  216. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/judge-report.txt +0 -34
  217. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/pseudocode-packet.txt +0 -244
  218. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/request-brief.txt +0 -40
  219. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/test-context-packet.txt +0 -93
  220. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/test-implementation-report.txt +0 -69
  221. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/test-strategy-packet.txt +0 -354
  222. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/artifacts/verification-report.txt +0 -85
  223. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/derived/run-integrity-evidence.json +0 -98
  224. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/producer/architecture-audit.json +0 -1169
  225. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/producer/architecture-request.json +0 -29
  226. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/producer/implementation-audit.json +0 -1494
  227. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/producer/implementation-capsule.json +0 -11364
  228. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/producer/implementation-request.json +0 -33
  229. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/producer/test-request.json +0 -74
  230. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/reports/architecture-context-retrieval-report.txt +0 -58
  231. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/reports/implementation-context-retrieval-report.txt +0 -75
  232. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/reports/test-context-retrieval-report.txt +0 -84
  233. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/run.json +0 -62
  234. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/tool-versions/my-dev-kit-version.txt +0 -1
  235. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/failed-run/tool-versions/orchestrator-version.txt +0 -1
  236. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/manifests/corrected-replay-manifest.json +0 -19
  237. package/tests/fixtures/ecosystem/context-integrity/v0.4.5/manifests/failed-run-manifest.json +0 -56
  238. package/tests/fixtures/fake-adversarial-cli.js +0 -152
  239. package/tests/fixtures/fake-my-dev-kit-cli.js +0 -83
  240. package/tests/fixtures/full-workflow-library/complete-v1.0.0.json +0 -24
  241. package/tests/fixtures/full-workflow-library/future-minor-v1.1.0-additive.json +0 -25
  242. package/tests/fixtures/stage-context-expectations/complete-v1.0.0.json +0 -230
  243. package/tests/fixtures/stage-context-expectations/future-minor-v1.1.0-additive.json +0 -232
  244. package/tests/fixtures/stage-context-expectations/invalid/malformed-json.txt +0 -1
  245. package/tests/fixtures/stage-context-expectations/invalid/non-object-root.json +0 -1
  246. package/tests/fixtures/stage-context-expectations/minimal-v1.0.0.json +0 -18
  247. package/tests/fixtures/upstream-artifacts/invalid/malformed-json.txt +0 -1
  248. package/tests/fixtures/upstream-artifacts/invalid/non-object-root.json +0 -1
  249. package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.2/context-capsule/complete-v1.0.0.json +0 -504
  250. package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.2/context-capsule/future-minor-v1.1.0-additive.json +0 -955
  251. package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.2/retrieval-audit-record/complete-v1.0.0.json +0 -190
  252. package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.2/retrieval-audit-record/future-minor-v1.1.0-additive.json +0 -327
  253. package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.4/PROVENANCE.txt +0 -18
  254. package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.4/context-capsule/complete-v1.0.0.json +0 -556
  255. package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.4/retrieval-audit-record/complete-v1.0.0.json +0 -238
  256. package/tests/fixtures/upstream-artifacts/my-dev-kit-1.10.2-identity/PROVENANCE.txt +0 -13
  257. package/tests/fixtures/upstream-artifacts/my-dev-kit-1.10.2-identity/context-capsule.json +0 -7874
  258. package/tests/fixtures/upstream-artifacts/my-dev-kit-1.10.2-identity/retrieval-audit-record.json +0 -1076
  259. package/tests/fixtures/upstream-artifacts/my-dev-kit-orchestrator/1.2.1/workflow-instruction-packet/complete-v1.0.0.json +0 -160
  260. package/tests/fixtures/upstream-artifacts/my-dev-kit-orchestrator/1.2.1/workflow-instruction-packet/future-minor-v1.1.0-additive.json +0 -186
  261. package/tests/fixtures/upstream-artifacts/my-dev-kit-orchestrator/1.2.3/run-integrity/PROVENANCE.txt +0 -31
  262. package/tests/fixtures/upstream-artifacts/my-dev-kit-orchestrator/1.2.3/run-integrity/ready-pass-final-pass.json +0 -132
  263. package/tests/fixtures/upstream-artifacts/my-dev-kit-orchestrator/1.2.3/run-integrity/refresh-required-need-context.json +0 -146
@@ -1,152 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Deterministic fake CLI for the security-validation adversarial harness.
4
- *
5
- * Simulates a "well-behaved" my-dev-kit-style CLI for CI tests that cannot
6
- * depend on a globally installed package.
7
- *
8
- * Supported flags:
9
- * --root <dir> Source root (treated as read-only; not validated for traversal)
10
- * --out <dir> Output directory for generated artifacts
11
- * --index <dir> Index artifact directory (also written with fake manifest)
12
- * --file <path> Path to read (simulates source retrieval)
13
- * --path <path> Graph path argument (logged only)
14
- * --node <id> Graph node argument (logged only)
15
- * --query <q> Search query (logged only)
16
- * --format <f> Output format: "json" | "text" (default: text)
17
- * --emit-stderr <msg> Write msg to stderr (simulates a warning)
18
- * --escape-to <dir> [HARNESS TESTING ONLY] Write an escape sentinel file here
19
- * Used to verify the harness can detect writes outside workspace.
20
- * --fail Exit with code 1 (simulates a CLI error)
21
- *
22
- * On success: writes a fake manifest.json to --out and/or --index, exits 0.
23
- * On --fail: emits an error message and exits 1.
24
- * Does NOT modify any files in --root.
25
- * Does NOT write anywhere other than --out and --index (unless --escape-to is set).
26
- */
27
-
28
- import { mkdirSync, writeFileSync } from "node:fs";
29
- import path from "node:path";
30
-
31
- function parseArgs(argv) {
32
- const args = argv.slice(2);
33
- const result = {
34
- root: null,
35
- out: null,
36
- index: null,
37
- file: null,
38
- path: null,
39
- node: null,
40
- query: null,
41
- format: "text",
42
- emitStderr: null,
43
- escapeTo: null,
44
- fail: false,
45
- };
46
- for (let i = 0; i < args.length; i++) {
47
- const a = args[i];
48
- if (a === "--root") result.root = args[++i];
49
- else if (a === "--out") result.out = args[++i];
50
- else if (a === "--index") result.index = args[++i];
51
- else if (a === "--file") result.file = args[++i];
52
- else if (a === "--path") result.path = args[++i];
53
- else if (a === "--node") result.node = args[++i];
54
- else if (a === "--query") result.query = args[++i];
55
- else if (a === "--format") result.format = args[++i];
56
- else if (a === "--emit-stderr") result.emitStderr = args[++i];
57
- else if (a === "--escape-to") result.escapeTo = args[++i];
58
- else if (a === "--fail") result.fail = true;
59
- }
60
- return result;
61
- }
62
-
63
- function fakeManifest(root) {
64
- return JSON.stringify(
65
- {
66
- schemaVersion: 1,
67
- version: "0.0.0-fake",
68
- generatedAt: new Date().toISOString(),
69
- root: root ?? "",
70
- files: [],
71
- },
72
- null,
73
- 2
74
- );
75
- }
76
-
77
- function run() {
78
- const opts = parseArgs(process.argv);
79
-
80
- if (opts.emitStderr) {
81
- process.stderr.write(`[fake-cli] warning: ${opts.emitStderr}\n`);
82
- }
83
-
84
- if (opts.fail) {
85
- if (opts.format === "json") {
86
- process.stdout.write(
87
- JSON.stringify({ error: "fake-cli: --fail was requested" }) + "\n"
88
- );
89
- } else {
90
- process.stderr.write("fake-cli: --fail was requested\n");
91
- }
92
- process.exit(1);
93
- }
94
-
95
- const manifest = fakeManifest(opts.root);
96
-
97
- if (opts.out) {
98
- try {
99
- mkdirSync(opts.out, { recursive: true });
100
- writeFileSync(path.join(opts.out, "manifest.json"), manifest, "utf8");
101
- } catch (err) {
102
- process.stderr.write(`fake-cli: failed to write --out: ${err.message}\n`);
103
- process.exit(1);
104
- }
105
- }
106
-
107
- if (opts.index) {
108
- try {
109
- mkdirSync(opts.index, { recursive: true });
110
- writeFileSync(path.join(opts.index, "manifest.json"), manifest, "utf8");
111
- } catch (err) {
112
- process.stderr.write(`fake-cli: failed to write --index: ${err.message}\n`);
113
- process.exit(1);
114
- }
115
- }
116
-
117
- // FOR HARNESS TESTING ONLY: deliberately write outside declared paths.
118
- // This flag exists solely so the harness can verify its own detection logic.
119
- if (opts.escapeTo) {
120
- try {
121
- mkdirSync(opts.escapeTo, { recursive: true });
122
- writeFileSync(
123
- path.join(opts.escapeTo, "escape-sentinel.txt"),
124
- "harness-escape-detection-test\n",
125
- "utf8"
126
- );
127
- } catch (err) {
128
- process.stderr.write(`fake-cli: --escape-to failed: ${err.message}\n`);
129
- }
130
- }
131
-
132
- if (opts.format === "json") {
133
- process.stdout.write(
134
- JSON.stringify({
135
- status: "ok",
136
- root: opts.root,
137
- out: opts.out,
138
- index: opts.index,
139
- }) + "\n"
140
- );
141
- } else {
142
- if (opts.out || opts.index) {
143
- process.stdout.write("fake-cli: artifacts written\n");
144
- } else {
145
- process.stdout.write("fake-cli: ok (no output requested)\n");
146
- }
147
- }
148
-
149
- process.exit(0);
150
- }
151
-
152
- run();
@@ -1,83 +0,0 @@
1
- #!/usr/bin/env node
2
- import fs from "node:fs";
3
- import path from "node:path";
4
-
5
- function argValue(flag) {
6
- const index = process.argv.indexOf(flag);
7
- return index >= 0 ? process.argv[index + 1] : undefined;
8
- }
9
-
10
- function benchmarkProjectFromIndexPath(indexPath) {
11
- const normalized = String(indexPath || "").replace(/\\/g, "/");
12
- if (normalized.includes("todo-ts")) return "todo-ts";
13
- if (normalized.includes("todo-python")) return "todo-python";
14
- if (normalized.includes("todo-js")) return "todo-js";
15
- if (normalized.includes("todo-mixed-ts-py")) return "todo-mixed-ts-py";
16
- return "unknown";
17
- }
18
-
19
- const command = process.argv[2];
20
- if (command === "index") {
21
- const outDir = argValue("--out");
22
- if (outDir) {
23
- fs.mkdirSync(outDir, { recursive: true });
24
- fs.writeFileSync(path.join(outDir, "fake-index.json"), JSON.stringify({ ok: true }));
25
- fs.writeFileSync(path.join(outDir, "manifest.json"), JSON.stringify({ ok: true, fake: true }));
26
- }
27
- console.log(JSON.stringify({ ok: true, command: "index", outDir }));
28
- process.exit(0);
29
- }
30
-
31
- if (command === "search") {
32
- const indexPath = argValue("--index");
33
- const project = benchmarkProjectFromIndexPath(indexPath);
34
- const mapping = {
35
- "todo-ts": { nodeId: "todo-ts:createTask", file: "src/taskService.ts", symbol: "createTask" },
36
- "todo-python": { nodeId: "todo-python:complete_task", file: "src/task_service.py", symbol: "complete_task" },
37
- "todo-js": { nodeId: "todo-js:listOpenTasks", file: "src/taskService.js", symbol: "listOpenTasks" },
38
- "todo-mixed-ts-py": { nodeId: "todo-mixed:summarize_tasks", file: "python/task_service.py", symbol: "summarize_tasks" }
39
- };
40
- console.log(JSON.stringify({ results: [mapping[project] || { nodeId: "unknown", file: "unknown", symbol: "unknown" }] }));
41
- process.exit(0);
42
- }
43
-
44
- if (command === "lookup") {
45
- const node = argValue("--node");
46
- console.log(JSON.stringify({ nodeId: node, summary: `lookup for ${node}` }));
47
- process.exit(0);
48
- }
49
-
50
- if (command === "slice") {
51
- const node = argValue("--node");
52
- console.log(JSON.stringify({ nodeId: node, slice: `slice for ${node}` }));
53
- process.exit(0);
54
- }
55
-
56
- if (command === "source") {
57
- const node = argValue("--node");
58
- const sourceMap = {
59
- "todo-ts:createTask": "1 export class TaskService {\n2 createTask(title: string) {\n3 return this.store.create(title.trim());\n4 }\n5 }",
60
- "todo-python:complete_task": "1 class TaskService:\n2 def complete_task(self, task_id: str) -> dict:\n3 return self._store.update(task_id, lambda task: {**task, 'completed': True})",
61
- "todo-js:listOpenTasks": "1 export class TaskService {\n2 listOpenTasks() {\n3 return this.store.list().filter((task) => !task.completed);\n4 }\n5 }",
62
- "todo-mixed:summarize_tasks": "1 def summarize_tasks(self) -> dict:\n2 completed = len([task for task in self._tasks if task['completed']])\n3 return {'total': len(self._tasks), 'open': len(self._tasks) - completed, 'completed': completed}"
63
- };
64
- process.stdout.write(sourceMap[node] || `1 source for ${node}`);
65
- process.exit(0);
66
- }
67
-
68
- if (command === "view") {
69
- const graph = argValue("--graph") || "unknown";
70
- const outPath = argValue("--out");
71
- if (outPath) {
72
- fs.mkdirSync(path.dirname(outPath), { recursive: true });
73
- fs.writeFileSync(
74
- outPath,
75
- `<svg xmlns="http://www.w3.org/2000/svg" width="320" height="160"><text x="20" y="40">fake ${graph}</text><circle cx="80" cy="90" r="18" fill="#2563eb" /><circle cx="200" cy="90" r="18" fill="#16a34a" /><line x1="98" y1="90" x2="182" y2="90" stroke="#344054" /></svg>\n`
76
- );
77
- }
78
- console.log(JSON.stringify({ ok: true, command: "view", graph, outPath }));
79
- process.exit(0);
80
- }
81
-
82
- process.stderr.write(`Unsupported fake my-dev-kit command: ${command}`);
83
- process.exit(1);
@@ -1,24 +0,0 @@
1
- {
2
- "schemaVersion": "1.0.0",
3
- "fixtureId": "FULL-WORKFLOW-LIBRARY-V043-001",
4
- "title": "Complete workflow instruction library",
5
- "description": "Deterministic full-workflow-library fixture for v0.4.3 strategy execution.",
6
- "workflowIds": ["workflow.feature", "workflow.release"],
7
- "stageIds": [
8
- "stage.feature.architecture",
9
- "stage.feature.implementation",
10
- "stage.feature.test-implementation",
11
- "stage.release.readiness"
12
- ],
13
- "commandIds": [
14
- "command.context.inspect",
15
- "command.test.focused",
16
- "command.test.full",
17
- "command.release.publish"
18
- ],
19
- "ruleIds": ["rule.scope.bounded", "rule.testing.required", "rule.release.publish-last"],
20
- "reportContractIds": ["report.implementation", "report.release"],
21
- "provenanceEvidenceIds": ["provenance.workflow.feature", "provenance.workflow.release"],
22
- "rawText": "A deterministic complete workflow instruction library fixture containing architecture, implementation, test, validation, release, and reporting instructions.",
23
- "warnings": []
24
- }
@@ -1,25 +0,0 @@
1
- {
2
- "schemaVersion": "1.1.0",
3
- "fixtureId": "FULL-WORKFLOW-LIBRARY-V043-001",
4
- "title": "Complete workflow instruction library",
5
- "description": "Deterministic full-workflow-library fixture for v0.4.3 strategy execution.",
6
- "futureMinorRootField": "preserved",
7
- "workflowIds": ["workflow.feature", "workflow.release"],
8
- "stageIds": [
9
- "stage.feature.architecture",
10
- "stage.feature.implementation",
11
- "stage.feature.test-implementation",
12
- "stage.release.readiness"
13
- ],
14
- "commandIds": [
15
- "command.context.inspect",
16
- "command.test.focused",
17
- "command.test.full",
18
- "command.release.publish"
19
- ],
20
- "ruleIds": ["rule.scope.bounded", "rule.testing.required", "rule.release.publish-last"],
21
- "reportContractIds": ["report.implementation", "report.release"],
22
- "provenanceEvidenceIds": ["provenance.workflow.feature", "provenance.workflow.release"],
23
- "rawText": "A deterministic complete workflow instruction library fixture containing architecture, implementation, test, validation, release, and reporting instructions.",
24
- "warnings": []
25
- }
@@ -1,230 +0,0 @@
1
- {
2
- "schemaVersion": "1.0.0",
3
- "caseId": "CASE-STAGE-CONTEXT-002",
4
- "title": "Complete stage-context expectation",
5
- "description": "Complete valid expectation fixture covering every expectation category.",
6
- "expectedEvidence": [
7
- {
8
- "expectationId": "REQ-FILE-001",
9
- "inclusion": "required",
10
- "sourceArtifact": "context-capsule",
11
- "category": "file",
12
- "match": { "path": "src/example.ts" },
13
- "notes": []
14
- },
15
- {
16
- "expectationId": "REQ-SYMBOL-001",
17
- "inclusion": "required",
18
- "sourceArtifact": "context-capsule",
19
- "category": "symbol",
20
- "match": { "symbolId": "symbol:src/example.ts#Example" },
21
- "notes": []
22
- },
23
- {
24
- "expectationId": "REQ-SOURCE-RANGE-001",
25
- "inclusion": "required",
26
- "sourceArtifact": "context-capsule",
27
- "category": "source-range",
28
- "match": { "filePath": "src/example.ts", "startLine": 1, "endLine": 10 },
29
- "notes": []
30
- },
31
- {
32
- "expectationId": "ALLOW-CONTRACT-001",
33
- "inclusion": "allowed",
34
- "sourceArtifact": "context-capsule",
35
- "category": "contract",
36
- "match": { "symbolId": "contract:src/example.ts#ExampleContract" },
37
- "notes": []
38
- },
39
- {
40
- "expectationId": "ALLOW-VALIDATOR-001",
41
- "inclusion": "allowed",
42
- "sourceArtifact": "context-capsule",
43
- "category": "validator",
44
- "match": { "symbolId": "validator:src/example.ts#validateExample" },
45
- "notes": []
46
- },
47
- {
48
- "expectationId": "ALLOW-CONSTANT-001",
49
- "inclusion": "allowed",
50
- "sourceArtifact": "context-capsule",
51
- "category": "constant",
52
- "match": { "symbolId": "constant:src/example.ts#EXAMPLE_CONST" },
53
- "notes": []
54
- },
55
- {
56
- "expectationId": "FORBID-ERROR-001",
57
- "inclusion": "forbidden",
58
- "sourceArtifact": "context-capsule",
59
- "category": "error",
60
- "match": { "symbolId": "error:src/example.ts#ExampleError" },
61
- "notes": []
62
- },
63
- {
64
- "expectationId": "ALLOW-SCHEMA-001",
65
- "inclusion": "allowed",
66
- "sourceArtifact": "context-capsule",
67
- "category": "schema-or-serializer",
68
- "match": { "symbolId": "schema:src/example.ts#ExampleSchema" },
69
- "notes": []
70
- },
71
- {
72
- "expectationId": "REQ-RESPONSIBILITY-001",
73
- "inclusion": "required",
74
- "sourceArtifact": "context-capsule",
75
- "category": "production-responsibility",
76
- "match": { "responsibilityId": "fixture.responsibility.001" },
77
- "notes": []
78
- },
79
- {
80
- "expectationId": "ALLOW-RESPONSIBILITY-001",
81
- "inclusion": "allowed",
82
- "sourceArtifact": "retrieval-audit-record",
83
- "category": "production-responsibility",
84
- "match": { "responsibilityId": "fixture.responsibility.002" },
85
- "notes": []
86
- },
87
- {
88
- "expectationId": "REQ-TEST-FILE-001",
89
- "inclusion": "required",
90
- "sourceArtifact": "context-capsule",
91
- "category": "test-file",
92
- "match": { "path": "tests/example.spec.ts" },
93
- "notes": []
94
- },
95
- {
96
- "expectationId": "ALLOW-FIXTURE-001",
97
- "inclusion": "allowed",
98
- "sourceArtifact": "context-capsule",
99
- "category": "fixture",
100
- "match": { "path": "tests/fixtures/example.json" },
101
- "notes": []
102
- },
103
- {
104
- "expectationId": "ALLOW-FACTORY-001",
105
- "inclusion": "allowed",
106
- "sourceArtifact": "context-capsule",
107
- "category": "factory",
108
- "match": { "path": "tests/factories/exampleFactory.ts" },
109
- "notes": []
110
- },
111
- {
112
- "expectationId": "FORBID-MOCK-001",
113
- "inclusion": "forbidden",
114
- "sourceArtifact": "context-capsule",
115
- "category": "mock",
116
- "match": { "path": "tests/mocks/exampleMock.ts" },
117
- "notes": []
118
- },
119
- {
120
- "expectationId": "ALLOW-SETUP-FILE-001",
121
- "inclusion": "allowed",
122
- "sourceArtifact": "context-capsule",
123
- "category": "setup-file",
124
- "match": { "path": "tests/setup.ts" },
125
- "notes": []
126
- },
127
- {
128
- "expectationId": "REQ-TEST-CONFIGURATION-001",
129
- "inclusion": "required",
130
- "sourceArtifact": "context-capsule",
131
- "category": "test-configuration",
132
- "match": { "path": "vitest.config.ts" },
133
- "notes": []
134
- },
135
- {
136
- "expectationId": "REQ-PACKAGE-SCRIPT-001",
137
- "inclusion": "required",
138
- "sourceArtifact": "context-capsule",
139
- "category": "package-script",
140
- "match": { "name": "test" },
141
- "notes": []
142
- },
143
- {
144
- "expectationId": "ALLOW-TEST-COMMAND-001",
145
- "inclusion": "allowed",
146
- "sourceArtifact": "context-capsule",
147
- "category": "test-command",
148
- "match": { "commandText": "vitest run tests/example.spec.ts" },
149
- "notes": []
150
- },
151
- {
152
- "expectationId": "REQ-WORKFLOW-001",
153
- "inclusion": "required",
154
- "sourceArtifact": "workflow-instruction-packet",
155
- "category": "workflow",
156
- "match": { "id": "workflow.feature" },
157
- "notes": []
158
- },
159
- {
160
- "expectationId": "REQ-STAGE-001",
161
- "inclusion": "required",
162
- "sourceArtifact": "workflow-instruction-packet",
163
- "category": "stage",
164
- "match": { "id": "stage.feature.implementation" },
165
- "notes": []
166
- },
167
- {
168
- "expectationId": "ALLOW-COMMAND-001",
169
- "inclusion": "allowed",
170
- "sourceArtifact": "workflow-instruction-packet",
171
- "category": "command",
172
- "match": { "id": "command.repo.lint" },
173
- "notes": []
174
- },
175
- {
176
- "expectationId": "ALLOW-RULE-001",
177
- "inclusion": "allowed",
178
- "sourceArtifact": "full-workflow-library",
179
- "category": "rule",
180
- "match": { "id": "rule.quality.prefer-tests" },
181
- "notes": []
182
- },
183
- {
184
- "expectationId": "FORBID-REPORT-CONTRACT-001",
185
- "inclusion": "forbidden",
186
- "sourceArtifact": "workflow-instruction-packet",
187
- "category": "report-contract",
188
- "match": { "id": "report.other-summary" },
189
- "notes": []
190
- },
191
- {
192
- "expectationId": "REQ-PROVENANCE-001",
193
- "inclusion": "required",
194
- "sourceArtifact": "workflow-instruction-packet",
195
- "category": "provenance",
196
- "match": { "evidenceId": "symbol:src/example.ts#Example" },
197
- "notes": []
198
- }
199
- ],
200
- "expectedStates": {
201
- "contextCapsule": {
202
- "contextAdequacyStatus": "context sufficient with listed assumptions",
203
- "roleAdequacyStatus": "context sufficient with listed assumptions",
204
- "freshnessState": "fresh",
205
- "truncated": false,
206
- "fullFileFallbackUsed": 0,
207
- "unresolvedItemIds": ["fixture.unresolved.001"],
208
- "warningCount": 1
209
- },
210
- "retrievalAuditRecord": {
211
- "contextAdequacyStatus": "context sufficient with listed assumptions",
212
- "roleAdequacyStatus": "context sufficient with listed assumptions",
213
- "freshnessState": "fresh",
214
- "truncated": false,
215
- "fullFileFallbackUsed": 1,
216
- "unresolvedItemIds": [],
217
- "warningCount": 1
218
- },
219
- "workflowInstructionPacket": {
220
- "adequacyStatus": "adequate",
221
- "truncated": false,
222
- "unresolvedReferences": ["command.repo.unresolved-example"],
223
- "warningCount": 0
224
- },
225
- "targetImmutability": {
226
- "newMutationCount": 0
227
- }
228
- },
229
- "warnings": []
230
- }