@dailephd/my-dev-kit-lab 0.4.4 → 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.
Files changed (225) hide show
  1. package/CHANGELOG.md +484 -0
  2. package/README.md +39 -3
  3. package/dist/scripts/cli.js +9 -0
  4. package/dist/src/audits/core/typescriptJavaScriptAnalyzer.js +30 -12
  5. package/dist/src/cli/help.js +300 -0
  6. package/dist/src/cli/index.js +2 -0
  7. package/dist/src/cli/runLabCli.js +229 -0
  8. package/dist/src/commands/runAuditCommand.js +132 -0
  9. package/dist/src/commands/runControlledExperimentCommand.js +7 -3
  10. package/dist/{scripts/experiments/describeExperiment.js → src/commands/runExperimentDescribeCommand.js} +14 -10
  11. package/dist/{scripts/experiments/listExperiments.js → src/commands/runExperimentListCommand.js} +3 -6
  12. package/dist/{scripts/experiments/runExperiment.js → src/commands/runExperimentRunCommand.js} +80 -22
  13. package/dist/src/commands/runFinalDemoCommand.js +2 -3
  14. package/dist/src/commands/runSecurityValidationCommand.js +271 -0
  15. package/dist/src/evaluation/ecosystemFixtures/index.js +3 -0
  16. package/dist/src/evaluation/ecosystemFixtures/loadContextIntegrityFixture.js +102 -0
  17. package/dist/src/evaluation/ecosystemFixtures/manifestTypes.js +1 -0
  18. package/dist/src/evaluation/ecosystemFixtures/validateManifest.js +82 -0
  19. package/dist/src/evaluation/ecosystemFixtures/verifyFixtureHashes.js +45 -0
  20. package/dist/src/evaluation/stageContextMetrics/calculateAllocationMetrics.js +169 -0
  21. package/dist/src/evaluation/stageContextMetrics/calculateConditionCoverageMetrics.js +74 -0
  22. package/dist/src/evaluation/stageContextMetrics/calculateProducerConditionAgreement.js +113 -0
  23. package/dist/src/evaluation/stageContextMetrics/calculateReadinessAgreement.js +60 -0
  24. package/dist/src/evaluation/stageContextMetrics/calculateRunIntegrityAgreement.js +309 -0
  25. package/dist/src/evaluation/stageContextMetrics/calculateSupplementalRawAgreement.js +12 -2
  26. package/dist/src/evaluation/stageContextMetrics/calculateTruncationClassification.js +100 -0
  27. package/dist/src/evaluation/stageContextMetrics/evaluateProducerReadinessBridge.js +76 -5
  28. package/dist/src/evaluation/stageContextMetrics/index.js +4 -0
  29. package/dist/src/evaluation/stageContextMetrics/runIntegrityAgreementTypes.js +1 -0
  30. package/dist/src/evaluation/stageContextSelectors/contextArtifactConsistency.js +7 -0
  31. package/dist/src/evaluation/stageContextSelectors/index.js +1 -0
  32. package/dist/src/evaluation/stageContextSelectors/orchestratorRunIntegritySelectors.js +64 -0
  33. package/dist/src/evaluation/upstreamArtifacts/index.js +2 -0
  34. package/dist/src/evaluation/upstreamArtifacts/orchestratorRunIntegrityV1.js +33 -0
  35. package/dist/src/evaluation/upstreamArtifacts/readOrchestratorRunIntegrityV1.js +9 -0
  36. package/dist/src/evaluation/upstreamArtifacts/validateMyDevKitContextCapsuleV1.js +59 -2
  37. package/dist/src/evaluation/upstreamArtifacts/validateMyDevKitRetrievalAuditRecordV1.js +6 -1
  38. package/dist/src/evaluation/upstreamArtifacts/validateOrchestratorRunIntegrityV1.js +177 -0
  39. package/dist/src/report/experiments/buildContextIntegrityReport.js +204 -0
  40. package/dist/src/report/experiments/contextIntegrityReportModel.js +1 -0
  41. package/dist/src/report/experiments/index.js +5 -0
  42. package/dist/src/report/experiments/renderContextIntegrityHtml.js +98 -0
  43. package/dist/src/report/experiments/renderContextIntegrityJsonReport.js +3 -0
  44. package/dist/src/report/experiments/renderContextIntegrityText.js +111 -0
  45. package/dist/src/runtime/index.js +3 -0
  46. package/dist/src/runtime/labExecutionContext.js +22 -0
  47. package/dist/src/runtime/packageResource.js +22 -0
  48. package/dist/src/runtime/packageRoot.js +37 -0
  49. package/dist/src/securityValidation/packageChecks/requiredPackageContents.js +46 -0
  50. package/dist/src/securityValidation/packageChecks/runPackageChecks.js +11 -5
  51. package/docs/METRICS.md +83 -0
  52. package/package.json +10 -8
  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/run-agent-prompt.js +0 -2
  61. package/dist/scripts/run-controlled-experiment.js +0 -2
  62. package/dist/scripts/run-lab-demo.js +0 -5
  63. package/dist/scripts/run-visualization-demos.js +0 -3
  64. package/dist/scripts/security/resolveToolRoot.js +0 -16
  65. package/dist/scripts/security/runCodeql.js +0 -58
  66. package/dist/scripts/security/runDependencyChecks.js +0 -58
  67. package/dist/scripts/security/runFuzzSmoke.js +0 -29
  68. package/dist/scripts/security/runPackageChecks.js +0 -57
  69. package/dist/scripts/security/runSemgrep.js +0 -64
  70. package/dist/scripts/security/validate.js +0 -266
  71. package/dist/scripts/verify-benchmarks.js +0 -202
  72. package/examples/demo-report-input.json +0 -78
  73. package/examples/lab-demo-cases.json +0 -35
  74. package/examples/real-agent-campaign-cases.json +0 -118
  75. package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-a/src/debug/res/xml/ambiguous_backup_rules.xml +0 -4
  76. package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-a/src/main/res/xml/ambiguous_backup_rules.xml +0 -4
  77. package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-a/src/main/res/xml/backup_rules.xml +0 -5
  78. package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-a/src/main/res/xml/broad_backup_rules.xml +0 -4
  79. package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-a/src/main/res/xml/data_extraction_rules.xml +0 -10
  80. package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-a/src/main/res/xml/unsupported_domain_rules.xml +0 -4
  81. package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-b/src/main/res/xml/malformed_backup_rules.xml +0 -4
  82. package/tests/fixtures/android/advanced-security-fixtures/backup-configuration/module-b/src/main/res/xml/unsupported_root.xml +0 -4
  83. package/tests/fixtures/android/advanced-security-fixtures/network-security/module-a/src/debug/res/xml/ambiguous_config.xml +0 -4
  84. package/tests/fixtures/android/advanced-security-fixtures/network-security/module-a/src/main/res/xml/ambiguous_config.xml +0 -4
  85. package/tests/fixtures/android/advanced-security-fixtures/network-security/module-a/src/main/res/xml/base_cleartext_false.xml +0 -8
  86. package/tests/fixtures/android/advanced-security-fixtures/network-security/module-a/src/main/res/xml/broad_and_duplicate_domains.xml +0 -8
  87. package/tests/fixtures/android/advanced-security-fixtures/network-security/module-a/src/main/res/xml/empty_domain.xml +0 -6
  88. package/tests/fixtures/android/advanced-security-fixtures/network-security/module-a/src/main/res/xml/malformed_pin.xml +0 -11
  89. package/tests/fixtures/android/advanced-security-fixtures/network-security/module-a/src/main/res/xml/network_security_config.xml +0 -26
  90. package/tests/fixtures/android/advanced-security-fixtures/network-security/module-b/src/main/res/xml/malformed_network_security_config.xml +0 -6
  91. package/tests/fixtures/android/advanced-security-fixtures/network-security/module-b/src/main/res/xml/unsupported_root.xml +0 -4
  92. package/tests/fixtures/android/advanced-security-fixtures/release-configuration/groovy-release-debuggable-dynamic.gradle +0 -7
  93. package/tests/fixtures/android/advanced-security-fixtures/release-configuration/groovy-release-debuggable-false.gradle +0 -9
  94. package/tests/fixtures/android/advanced-security-fixtures/release-configuration/groovy-release-debuggable-true.gradle +0 -13
  95. package/tests/fixtures/android/advanced-security-fixtures/release-configuration/kotlin-release-debuggable-false.gradle.kts +0 -7
  96. package/tests/fixtures/android/advanced-security-fixtures/release-configuration/kotlin-release-debuggable-true.gradle.kts +0 -10
  97. package/tests/fixtures/android/advanced-security-fixtures/release-configuration/missing-release-build-type.gradle.kts +0 -7
  98. package/tests/fixtures/android/advanced-security-fixtures/resource-resolution/module-a/src/debug/res/xml/network_security_config.xml +0 -8
  99. package/tests/fixtures/android/advanced-security-fixtures/resource-resolution/module-a/src/main/res/xml/backup_rules.xml +0 -4
  100. package/tests/fixtures/android/advanced-security-fixtures/resource-resolution/module-a/src/main/res/xml/network_security_config.xml +0 -8
  101. package/tests/fixtures/android/advanced-security-fixtures/resource-resolution/module-b/src/main/res/xml/malformed_network_security_config.xml +0 -7
  102. package/tests/fixtures/android/advanced-security-fixtures/secret-candidates/SampleActivity.java +0 -8
  103. package/tests/fixtures/android/advanced-security-fixtures/secret-candidates/SampleActivity.kt +0 -9
  104. package/tests/fixtures/android/advanced-security-fixtures/secret-candidates/build.gradle +0 -11
  105. package/tests/fixtures/android/advanced-security-fixtures/secret-candidates/build.gradle.kts +0 -11
  106. package/tests/fixtures/android/advanced-security-fixtures/secret-candidates/google-services.json +0 -16
  107. package/tests/fixtures/android/advanced-security-fixtures/secret-candidates/local.properties +0 -3
  108. package/tests/fixtures/android/advanced-security-fixtures/secret-candidates-bounds/module/binary.properties +0 -0
  109. package/tests/fixtures/android/advanced-security-fixtures/secret-candidates-bounds/module/oversized.json +0 -1
  110. package/tests/fixtures/android/advanced-security-fixtures/signing-configuration/app/fake-release-keystore.jks +0 -1
  111. package/tests/fixtures/android/advanced-security-fixtures/signing-configuration/build/generated-fake.keystore +0 -1
  112. package/tests/fixtures/android/compose-app/app/build.gradle.kts +0 -21
  113. package/tests/fixtures/android/compose-app/app/src/main/AndroidManifest.xml +0 -22
  114. package/tests/fixtures/android/compose-app/app/src/main/java/com/example/composeapp/MainActivity.kt +0 -11
  115. package/tests/fixtures/android/compose-app/build.gradle.kts +0 -4
  116. package/tests/fixtures/android/compose-app/gradle/wrapper/gradle-wrapper.properties +0 -4
  117. package/tests/fixtures/android/compose-app/settings.gradle.kts +0 -2
  118. package/tests/fixtures/android/gradle-metadata-fixtures/catalog-only-plugin/build.gradle.kts +0 -3
  119. package/tests/fixtures/android/gradle-metadata-fixtures/catalog-only-plugin/gradle/libs.versions.toml +0 -5
  120. package/tests/fixtures/android/gradle-metadata-fixtures/comment-safety.gradle.kts +0 -21
  121. package/tests/fixtures/android/gradle-metadata-fixtures/dynamic-values.gradle.kts +0 -17
  122. package/tests/fixtures/android/gradle-metadata-fixtures/groovy-literal.gradle +0 -23
  123. package/tests/fixtures/android/gradle-metadata-fixtures/wrapper-malformed.properties +0 -4
  124. package/tests/fixtures/android/gradle-metadata-fixtures/wrapper-missing-url.properties +0 -3
  125. package/tests/fixtures/android/gradle-metadata-fixtures/wrapper-with-checksum.properties +0 -5
  126. package/tests/fixtures/android/java-app/app/build.gradle +0 -16
  127. package/tests/fixtures/android/java-app/app/src/main/AndroidManifest.xml +0 -19
  128. package/tests/fixtures/android/java-app/app/src/main/java/com/example/javaapp/MainActivity.java +0 -4
  129. package/tests/fixtures/android/java-app/build.gradle +0 -3
  130. package/tests/fixtures/android/java-app/gradle/wrapper/gradle-wrapper.properties +0 -4
  131. package/tests/fixtures/android/java-app/settings.gradle +0 -2
  132. package/tests/fixtures/android/library/build.gradle.kts +0 -3
  133. package/tests/fixtures/android/library/gradle/wrapper/gradle-wrapper.properties +0 -4
  134. package/tests/fixtures/android/library/mylibrary/build.gradle.kts +0 -13
  135. package/tests/fixtures/android/library/mylibrary/src/main/AndroidManifest.xml +0 -2
  136. package/tests/fixtures/android/library/settings.gradle.kts +0 -2
  137. package/tests/fixtures/android/manifest-audit-fixtures/incomplete-intent-filter.xml +0 -14
  138. package/tests/fixtures/android/manifest-audit-fixtures/malformed-exported.xml +0 -10
  139. package/tests/fixtures/android/manifest-audit-fixtures/malformed.xml +0 -5
  140. package/tests/fixtures/android/manifest-audit-fixtures/missing-application.xml +0 -7
  141. package/tests/fixtures/android/manifest-audit-fixtures/missing-component-name.xml +0 -11
  142. package/tests/fixtures/android/manifest-audit-fixtures/permission-coverage.xml +0 -29
  143. package/tests/fixtures/android/manifest-audit-fixtures/risky-components.xml +0 -62
  144. package/tests/fixtures/android/manifest-audit-fixtures/risky-deep-links.xml +0 -45
  145. package/tests/fixtures/android/manifest-audit-fixtures/unresolved-placeholder.xml +0 -14
  146. package/tests/fixtures/android/manifest-audit-fixtures/unusual-namespace-prefix.xml +0 -11
  147. package/tests/fixtures/android/multi-module/app/build.gradle.kts +0 -22
  148. package/tests/fixtures/android/multi-module/app/src/androidTest/java/com/example/multimodule/app/ExampleInstrumentedTest.kt +0 -3
  149. package/tests/fixtures/android/multi-module/app/src/main/AndroidManifest.xml +0 -11
  150. package/tests/fixtures/android/multi-module/app/src/test/java/com/example/multimodule/app/ExampleUnitTest.kt +0 -3
  151. package/tests/fixtures/android/multi-module/build.gradle.kts +0 -5
  152. package/tests/fixtures/android/multi-module/core/build.gradle.kts +0 -14
  153. package/tests/fixtures/android/multi-module/core/src/main/AndroidManifest.xml +0 -2
  154. package/tests/fixtures/android/multi-module/feature-login/build.gradle.kts +0 -18
  155. package/tests/fixtures/android/multi-module/feature-login/src/main/AndroidManifest.xml +0 -2
  156. package/tests/fixtures/android/multi-module/gradle/libs.versions.toml +0 -8
  157. package/tests/fixtures/android/multi-module/gradle/wrapper/gradle-wrapper.properties +0 -4
  158. package/tests/fixtures/android/multi-module/settings.gradle.kts +0 -4
  159. package/tests/fixtures/android/non-android-gradle/build.gradle.kts +0 -3
  160. package/tests/fixtures/android/non-android-gradle/core/build.gradle.kts +0 -3
  161. package/tests/fixtures/android/non-android-gradle/core/src/main/java/com/example/core/Core.java +0 -4
  162. package/tests/fixtures/android/non-android-gradle/gradle/wrapper/gradle-wrapper.properties +0 -4
  163. package/tests/fixtures/android/non-android-gradle/settings.gradle.kts +0 -2
  164. package/tests/fixtures/android/partial/app/build.gradle.kts +0 -7
  165. package/tests/fixtures/android/partial/settings.gradle.kts +0 -2
  166. package/tests/fixtures/android/xml-view-app/app/build.gradle.kts +0 -17
  167. package/tests/fixtures/android/xml-view-app/app/src/main/AndroidManifest.xml +0 -31
  168. package/tests/fixtures/android/xml-view-app/app/src/main/kotlin/com/example/xmlviewapp/MainActivity.kt +0 -7
  169. package/tests/fixtures/android/xml-view-app/app/src/main/res/layout/activity_main.xml +0 -4
  170. package/tests/fixtures/android/xml-view-app/build.gradle.kts +0 -4
  171. package/tests/fixtures/android/xml-view-app/gradle/wrapper/gradle-wrapper.properties +0 -4
  172. package/tests/fixtures/android/xml-view-app/settings.gradle.kts +0 -2
  173. package/tests/fixtures/audits/mixed-language/mixed-docs-claims/README.md +0 -16
  174. package/tests/fixtures/audits/mixed-language/mixed-docs-claims/build.gradle.kts +0 -4
  175. package/tests/fixtures/audits/mixed-language/mixed-docs-claims/src/main/java/com/example/Widget.java +0 -7
  176. package/tests/fixtures/audits/mixed-language/mixed-docs-claims/src/main/kotlin/com/example/Gadget.kt +0 -7
  177. package/tests/fixtures/audits/mixed-language/mixed-generated-vendor/README.md +0 -10
  178. package/tests/fixtures/audits/mixed-language/mixed-generated-vendor/build/Main.class +0 -1
  179. package/tests/fixtures/audits/mixed-language/mixed-generated-vendor/dist/index.js +0 -1
  180. package/tests/fixtures/audits/mixed-language/mixed-generated-vendor/generated/schema.ts +0 -1
  181. package/tests/fixtures/audits/mixed-language/mixed-generated-vendor/src/index.ts +0 -3
  182. package/tests/fixtures/audits/mixed-language/mixed-generated-vendor/vendor/lib.py +0 -2
  183. package/tests/fixtures/audits/mixed-language/mixed-java-kotlin/README.md +0 -10
  184. package/tests/fixtures/audits/mixed-language/mixed-java-kotlin/build.gradle.kts +0 -8
  185. package/tests/fixtures/audits/mixed-language/mixed-java-kotlin/settings.gradle.kts +0 -1
  186. package/tests/fixtures/audits/mixed-language/mixed-java-kotlin/src/main/java/com/example/FooService.java +0 -7
  187. package/tests/fixtures/audits/mixed-language/mixed-java-kotlin/src/main/kotlin/com/example/BarService.kt +0 -7
  188. package/tests/fixtures/audits/mixed-language/mixed-java-kotlin/src/test/java/com/example/FooServiceTest.java +0 -8
  189. package/tests/fixtures/audits/mixed-language/mixed-java-kotlin/src/test/kotlin/com/example/BarServiceTest.kt +0 -8
  190. package/tests/fixtures/audits/mixed-language/mixed-python-ts/README.md +0 -8
  191. package/tests/fixtures/audits/mixed-language/mixed-python-ts/src/app.py +0 -7
  192. package/tests/fixtures/audits/mixed-language/mixed-python-ts/src/index.ts +0 -3
  193. package/tests/fixtures/audits/mixed-language/mixed-python-ts/tests/test_app.py +0 -5
  194. package/tests/fixtures/audits/mixed-language/mixed-ts-js/README.md +0 -7
  195. package/tests/fixtures/audits/mixed-language/mixed-ts-js/src/helper.js +0 -5
  196. package/tests/fixtures/audits/mixed-language/mixed-ts-js/src/index.ts +0 -3
  197. package/tests/fixtures/audits/mixed-language/mixed-ts-js/tests/index.sample.ts +0 -5
  198. package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/README.md +0 -10
  199. package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/build.gradle.kts +0 -4
  200. package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/pytests/test_app.py +0 -5
  201. package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/src/app.py +0 -2
  202. package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/src/helper.js +0 -5
  203. package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/src/index.ts +0 -3
  204. package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/src/main/java/com/example/Multiplier.java +0 -7
  205. package/tests/fixtures/audits/mixed-language/mixed-ts-python-jvm/src/main/kotlin/com/example/Divider.kt +0 -7
  206. package/tests/fixtures/fake-adversarial-cli.js +0 -152
  207. package/tests/fixtures/fake-my-dev-kit-cli.js +0 -83
  208. package/tests/fixtures/full-workflow-library/complete-v1.0.0.json +0 -24
  209. package/tests/fixtures/full-workflow-library/future-minor-v1.1.0-additive.json +0 -25
  210. package/tests/fixtures/stage-context-expectations/complete-v1.0.0.json +0 -230
  211. package/tests/fixtures/stage-context-expectations/future-minor-v1.1.0-additive.json +0 -232
  212. package/tests/fixtures/stage-context-expectations/invalid/malformed-json.txt +0 -1
  213. package/tests/fixtures/stage-context-expectations/invalid/non-object-root.json +0 -1
  214. package/tests/fixtures/stage-context-expectations/minimal-v1.0.0.json +0 -18
  215. package/tests/fixtures/upstream-artifacts/invalid/malformed-json.txt +0 -1
  216. package/tests/fixtures/upstream-artifacts/invalid/non-object-root.json +0 -1
  217. package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.2/context-capsule/complete-v1.0.0.json +0 -504
  218. package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.2/context-capsule/future-minor-v1.1.0-additive.json +0 -955
  219. package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.2/retrieval-audit-record/complete-v1.0.0.json +0 -190
  220. package/tests/fixtures/upstream-artifacts/my-dev-kit/1.10.2/retrieval-audit-record/future-minor-v1.1.0-additive.json +0 -327
  221. package/tests/fixtures/upstream-artifacts/my-dev-kit-1.10.2-identity/PROVENANCE.txt +0 -13
  222. package/tests/fixtures/upstream-artifacts/my-dev-kit-1.10.2-identity/context-capsule.json +0 -7874
  223. package/tests/fixtures/upstream-artifacts/my-dev-kit-1.10.2-identity/retrieval-audit-record.json +0 -1076
  224. package/tests/fixtures/upstream-artifacts/my-dev-kit-orchestrator/1.2.1/workflow-instruction-packet/complete-v1.0.0.json +0 -160
  225. package/tests/fixtures/upstream-artifacts/my-dev-kit-orchestrator/1.2.1/workflow-instruction-packet/future-minor-v1.1.0-additive.json +0 -186
@@ -1,504 +0,0 @@
1
- {
2
- "schemaVersion": "1.0.0",
3
- "generatedAt": "2026-07-21T00:00:00.000Z",
4
- "tool": { "name": "my-dev-kit", "version": "1.10.2" },
5
- "request": {
6
- "originalQuery": "Inspect task implementation and tests",
7
- "normalizedQuery": "Inspect task implementation and tests",
8
- "mode": "feature-add",
9
- "requestedOutputPath": "Z:/fixture/project/.my-dev-kit/context-capsule.json",
10
- "role": "implementation",
11
- "requestFilePath": null
12
- },
13
- "index": {
14
- "indexPath": "Z:/fixture/project/.my-dev-kit",
15
- "manifestPath": "Z:/fixture/project/.my-dev-kit/manifest.json",
16
- "manifestSchemaVersion": "1.0.0",
17
- "projectRoot": "Z:/fixture/project",
18
- "artifactRefs": [
19
- { "name": "symbolIndex", "path": "Z:/fixture/project/.my-dev-kit/symbol-index.json" },
20
- { "name": "codeGraph", "path": "Z:/fixture/project/.my-dev-kit/code-graph.json" }
21
- ]
22
- },
23
- "limits": {
24
- "maxCandidateFiles": 50,
25
- "maxSourceSlices": 20,
26
- "maxGraphNodes": null,
27
- "maxGraphEdges": 100
28
- },
29
- "requiredContext": [
30
- {
31
- "id": "fixture.context.required.001",
32
- "kind": "request-summary",
33
- "title": "Request summary",
34
- "reason": "Captures the literal task query for downstream planning.",
35
- "evidenceRefs": [{ "path": "Z:/fixture/project/src/example.ts" }],
36
- "classificationRefs": [{ "filePath": "Z:/fixture/project/src/example.ts", "symbolId": null, "line": 1, "endLine": 10, "source": "static", "analyzer": "syntax-analyzer" }],
37
- "classificationRoles": [{ "role": "implementation-target", "subtype": null, "confidence": "likely" }],
38
- "warnings": []
39
- }
40
- ],
41
- "optionalSupportContext": [
42
- {
43
- "id": "fixture.context.optional.001",
44
- "kind": "artifact-summary",
45
- "title": "Artifact: symbolIndex",
46
- "reason": "Lists an artifact available in this index for later batches to consume.",
47
- "evidenceRefs": [{ "path": "Z:/fixture/project/.my-dev-kit/symbol-index.json" }],
48
- "warnings": []
49
- }
50
- ],
51
- "droppedContext": [
52
- { "id": "fixture.context.dropped.001", "kind": "placeholder", "title": "Dropped placeholder", "reason": "Exceeded retention cap." }
53
- ],
54
- "warnings": ["Fixture warning: synthetic data only."],
55
- "contextAdequacy": {
56
- "status": "context sufficient with listed assumptions",
57
- "summary": "A best-effort focus node was selected; some ambiguity or thin graph/source/metadata evidence remains.",
58
- "assumptions": ["Fixture assumption."],
59
- "gaps": ["Fixture gap."]
60
- },
61
- "queryPlan": {
62
- "originalQuery": "Inspect task implementation and tests",
63
- "normalizedQuery": "Inspect task implementation and tests",
64
- "mode": "feature-add",
65
- "searchQueries": ["Inspect task implementation and tests"],
66
- "terms": {
67
- "raw": ["inspect", "task", "implementation", "tests"],
68
- "quotedPhrases": [],
69
- "pathLike": ["src/example.ts"],
70
- "symbolLike": ["exampleFunction"],
71
- "routeLike": [],
72
- "commandLike": [],
73
- "artifactLike": [],
74
- "classificationLike": []
75
- }
76
- },
77
- "candidateFiles": [
78
- {
79
- "path": "src/example.ts",
80
- "score": 12.5,
81
- "baseScore": 10,
82
- "modeAdjustment": 2.5,
83
- "reasons": ["matched query term"],
84
- "matchedTerms": ["example"],
85
- "semanticRoles": [
86
- {
87
- "role": "canonical-type",
88
- "subtype": "canonical-type",
89
- "confidence": "explicit",
90
- "source": "syntax-analyzer",
91
- "artifactRefs": [{ "artifact": "symbolIndex", "artifactKind": "symbol-index", "id": "symbol:src/example.ts#Example", "path": "src/example.ts" }],
92
- "evidenceRefs": [{ "filePath": "src/example.ts", "symbolId": "symbol:src/example.ts#Example", "line": 1, "endLine": 10, "source": "static", "analyzer": "syntax-analyzer" }],
93
- "warnings": []
94
- }
95
- ],
96
- "artifactRefs": [{ "artifact": "symbolIndex", "artifactKind": "symbol-index", "id": "symbol:src/example.ts#Example", "path": "src/example.ts" }],
97
- "classificationRoles": [{ "role": "implementation-target", "editGuidance": "safe-primary-edit-target", "readiness": "ready", "uncertainty": "likely" }],
98
- "classificationRefs": [{ "artifact": "classification", "artifactKind": "unknown", "id": "classification:src/example.ts", "path": "src/example.ts" }],
99
- "retained": true,
100
- "roleScoreAdjustment": 1.5,
101
- "contextRole": "implementation",
102
- "focusMatch": true,
103
- "changedSurfaceMatch": false,
104
- "changedStatus": "modified"
105
- }
106
- ],
107
- "candidateNodes": [
108
- {
109
- "nodeId": "symbol:src/example.ts#Example",
110
- "kind": "symbol",
111
- "label": "Example",
112
- "filePath": "src/example.ts",
113
- "score": 12.5,
114
- "baseScore": 10,
115
- "modeAdjustment": 2.5,
116
- "reasons": ["matched query term"],
117
- "matchedTerms": ["example"],
118
- "semanticRoles": [],
119
- "artifactRefs": [],
120
- "classificationRoles": [],
121
- "classificationRefs": [],
122
- "androidArtifactId": "android:fixture:1",
123
- "androidMetadata": { "packageName": "com.fixture.app", "minSdk": 21, "usesCleartextTraffic": false, "notes": null },
124
- "retained": true,
125
- "droppedReason": "not dropped",
126
- "roleScoreAdjustment": 1.5,
127
- "contextRole": "implementation",
128
- "focusMatch": true,
129
- "changedSurfaceMatch": false,
130
- "changedStatus": "modified",
131
- "synthesized": false
132
- }
133
- ],
134
- "focus": {
135
- "focusNodeId": "symbol:src/example.ts#Example",
136
- "focusFilePath": "src/example.ts",
137
- "selectionMode": "single-best",
138
- "confidence": "high",
139
- "reasons": ["unambiguous top-ranked candidate"],
140
- "ambiguityNotes": [],
141
- "warnings": []
142
- },
143
- "selectedGraph": {
144
- "nodes": [
145
- { "nodeId": "symbol:src/example.ts#Example", "kind": "symbol", "label": "Example", "filePath": "src/example.ts", "reasons": ["primary focus"] },
146
- { "nodeId": "file:src/example.ts", "kind": "file", "label": "example.ts", "reasons": ["containing file"] }
147
- ],
148
- "edges": [
149
- { "from": "file:src/example.ts", "to": "symbol:src/example.ts#Example", "kind": "defines", "reasons": ["structural containment"] }
150
- ],
151
- "omittedNodeCount": 0,
152
- "omittedEdgeCount": 0,
153
- "warnings": []
154
- },
155
- "retention": {
156
- "retainedCandidateCount": 1,
157
- "droppedCandidateCount": 0,
158
- "retainedGraphNodeCount": 2,
159
- "droppedGraphNodeCount": 0,
160
- "retainedGraphEdgeCount": 1,
161
- "droppedGraphEdgeCount": 0,
162
- "capSettings": { "maxCandidateFiles": 50, "maxGraphNodes": null, "maxGraphEdges": 100 }
163
- },
164
- "selectedSource": {
165
- "slices": [
166
- {
167
- "id": "fixture.slice.001",
168
- "kind": "symbol",
169
- "filePath": "src/example.ts",
170
- "startLine": 1,
171
- "endLine": 10,
172
- "nodeId": "symbol:src/example.ts#Example",
173
- "symbolName": "Example",
174
- "reason": "primary focus source",
175
- "sourceRetrievalMethod": "symbol",
176
- "includedBy": "primary-focus",
177
- "truncated": false,
178
- "continuationAvailable": true,
179
- "continuationUsed": false,
180
- "localExpansionUsed": false,
181
- "classificationRefs": [],
182
- "semanticRefs": [],
183
- "warnings": []
184
- }
185
- ],
186
- "omittedSliceCount": 0,
187
- "totalSelectedLines": 10,
188
- "maxSourceSlices": 20,
189
- "warnings": [],
190
- "skipped": [
191
- { "id": "fixture.skipped.001", "kind": "symbol", "filePath": "src/other.ts", "reason": "exceeded cap", "capType": "maxSourceSlices", "candidateScore": 3.2 }
192
- ]
193
- },
194
- "selectedSourceBundles": {
195
- "bundles": [
196
- {
197
- "id": "fixture.bundle.001",
198
- "title": "Example bundle",
199
- "focusNodeId": "symbol:src/example.ts#Example",
200
- "focusFilePath": "src/example.ts",
201
- "reason": "primary focus bundle",
202
- "blocks": [
203
- {
204
- "id": "fixture.block.001",
205
- "kind": "symbol",
206
- "filePath": "src/example.ts",
207
- "startLine": 1,
208
- "endLine": 10,
209
- "symbolName": "Example",
210
- "reason": "primary focus source",
211
- "includedBy": "primary-focus",
212
- "truncated": false,
213
- "warnings": []
214
- }
215
- ],
216
- "totalLines": 10,
217
- "maxLines": 200,
218
- "skippedBlocks": [
219
- { "id": "fixture.skippedBlock.001", "kind": "symbol", "filePath": "src/other.ts", "reason": "exceeded cap", "capType": "maxLines", "candidateScore": 2.1 }
220
- ],
221
- "warnings": []
222
- }
223
- ],
224
- "omittedBundleCount": 0,
225
- "totalSelectedLines": 10,
226
- "warnings": []
227
- },
228
- "semanticSummary": {
229
- "available": true,
230
- "roles": [
231
- { "role": "canonical-type", "subtype": null, "confidence": "explicit", "source": "syntax-analyzer", "artifactRefs": [], "evidenceRefs": [], "warnings": [] }
232
- ],
233
- "artifactRefs": [],
234
- "evidenceRefs": [],
235
- "summariesByNode": {
236
- "symbol:src/example.ts#Example": { "roles": [], "artifactRefs": [], "evidenceRefs": [] }
237
- },
238
- "summariesByFile": {
239
- "src/example.ts": { "roles": [], "artifactRefs": [], "evidenceRefs": [] }
240
- },
241
- "warnings": []
242
- },
243
- "classificationSummary": {
244
- "available": true,
245
- "classificationArtifactPath": null,
246
- "roles": [{ "role": "implementation-target", "subtype": null, "confidence": "likely" }],
247
- "refs": [{ "filePath": "src/example.ts", "symbolId": null, "line": 1, "endLine": 10, "source": "static", "analyzer": "syntax-analyzer" }],
248
- "editGuidance": ["safe-primary-edit-target"],
249
- "readiness": ["ready"],
250
- "riskLabels": ["requires-test-validation"],
251
- "uncertainty": ["likely"],
252
- "summariesByNode": {
253
- "symbol:src/example.ts#Example": {
254
- "classifications": [{ "role": "implementation-target", "subtype": null, "confidence": "likely" }],
255
- "editGuidance": "safe-primary-edit-target",
256
- "readiness": "ready",
257
- "risks": ["requires-test-validation"],
258
- "uncertainty": "likely",
259
- "warnings": []
260
- }
261
- },
262
- "summariesByFile": {},
263
- "warnings": []
264
- },
265
- "artifactReferenceSummary": [
266
- { "artifactKind": "symbol-index", "artifactPath": "Z:/fixture/project/.my-dev-kit/symbol-index.json", "available": true, "reason": "artifact present in manifest", "warnings": [] },
267
- { "artifactKind": "frontend-semantic", "artifactPath": null, "available": false, "reason": "artifact not generated for this project", "warnings": [] }
268
- ],
269
- "pruning": {
270
- "policyVersion": "1.0.0",
271
- "retainedCounts": { "candidateFiles": 1, "candidateNodes": 1, "graphNodes": 2, "graphEdges": 1, "sourceSlices": 1, "sourceBundles": 1 },
272
- "droppedCounts": { "candidateFiles": 0, "candidateNodes": 0, "graphNodes": 0, "graphEdges": 0, "sourceSlices": 0, "sourceBundles": 0 },
273
- "capSettings": { "maxCandidateFiles": 50, "maxGraphNodes": null, "maxGraphEdges": 100, "maxSourceSlices": 20 },
274
- "retainedReasons": ["high relevance score"],
275
- "droppedReasons": [],
276
- "warnings": []
277
- },
278
- "conflicts": {
279
- "status": "conflict",
280
- "conflicts": [
281
- {
282
- "id": "fixture.conflict.001",
283
- "status": "conflict",
284
- "reason": "Static edit-guidance evidence conflicts for the selected focus.",
285
- "evidenceRefs": ["src/example.ts"],
286
- "affectedFiles": ["src/example.ts"],
287
- "affectedNodes": ["symbol:src/example.ts#Example"],
288
- "candidates": [
289
- { "nodeId": "symbol:src/example.ts#Example", "filePath": "src/example.ts", "score": 12.5, "editGuidance": ["safe-primary-edit-target", "inspect-before-edit"] }
290
- ],
291
- "recommendedNextAction": "Review classification evidence before editing."
292
- }
293
- ],
294
- "warnings": []
295
- },
296
- "modeEffects": {
297
- "mode": "feature-add",
298
- "applied": true,
299
- "effects": [{ "candidateId": "src/example.ts", "adjustment": 2.5, "reasons": ["feature-add mode boost"] }],
300
- "warnings": []
301
- },
302
- "sourceControl": { "enabled": true, "reason": "Git repository detected." },
303
- "deferredRequestFields": ["upstreamArtifactRefs"],
304
- "roleContext": {
305
- "role": "implementation",
306
- "focus": {
307
- "focusFiles": [{ "path": "src/example.ts", "resolved": true, "matchedFilePaths": ["src/example.ts"], "containedSymbolIds": ["symbol:src/example.ts#Example"] }],
308
- "focusSymbols": [{ "symbol": "Example", "resolved": true, "ambiguous": false, "matchedNodeIds": ["symbol:src/example.ts#Example"] }],
309
- "unresolvedFocusFiles": [],
310
- "unresolvedFocusSymbols": [],
311
- "ambiguousFocusSymbols": [],
312
- "warnings": []
313
- },
314
- "changedSurface": {
315
- "available": true,
316
- "diffRequested": true,
317
- "files": [{ "path": "src/example.ts", "status": "modified", "provenance": "both" }],
318
- "symbols": [{ "symbolId": "symbol:src/example.ts#Example", "status": "modified", "provenance": "graph-diff", "filePath": "src/example.ts", "name": "Example", "kind": "symbol" }],
319
- "conflicts": [],
320
- "warnings": []
321
- },
322
- "requestedEvidenceKinds": ["owner", "dependencies"],
323
- "unsupportedRequestedEvidenceKinds": ["responsibility-mappings"],
324
- "warnings": []
325
- },
326
- "evidenceGroups": [
327
- {
328
- "id": "implementation-owners",
329
- "kind": "owners",
330
- "role": "implementation",
331
- "title": "Owners",
332
- "required": true,
333
- "items": [
334
- {
335
- "id": "src/example.ts",
336
- "itemKind": "file",
337
- "path": "src/example.ts",
338
- "symbolId": "symbol:src/example.ts#Example",
339
- "nodeId": "symbol:src/example.ts#Example",
340
- "sourceLocation": { "filePath": "src/example.ts", "line": 1 },
341
- "relationship": "owner",
342
- "basis": "candidate-ranking",
343
- "provenance": "candidate-ranking",
344
- "metadata": { "score": 12.5, "retained": true, "note": null }
345
- }
346
- ],
347
- "unresolved": [
348
- { "evidenceKind": "dependencies", "role": "implementation", "basis": "graph-neighborhood", "reason": "no dependency edges found", "blocking": false }
349
- ],
350
- "warnings": [],
351
- "limit": null,
352
- "availableCount": 1,
353
- "usedCount": 1,
354
- "truncated": false,
355
- "droppedCount": 0,
356
- "provenance": "candidate-ranking"
357
- }
358
- ],
359
- "selectedOwners": [
360
- { "id": "src/example.ts", "itemKind": "file", "path": "src/example.ts", "relationship": "owner", "basis": "candidate-ranking", "provenance": "candidate-ranking" }
361
- ],
362
- "selectedContracts": [],
363
- "selectedTests": [
364
- { "id": "tests/example.spec.ts", "itemKind": "test-file", "path": "tests/example.spec.ts", "relationship": "closest-test", "basis": "path-proximity", "provenance": "test-directory-walk" }
365
- ],
366
- "testInfrastructure": {
367
- "relatedTests": [{ "id": "tests/example.spec.ts", "itemKind": "test-file", "path": "tests/example.spec.ts", "relationship": "closest-test", "basis": "path-proximity", "provenance": "test-directory-walk" }],
368
- "fixtures": [],
369
- "factories": [],
370
- "mocks": [],
371
- "setupFiles": [],
372
- "testConfigurations": [
373
- { "path": "vitest.config.ts", "framework": "vitest", "supported": true, "fields": { "testDir": "tests", "include": ["tests/**/*.spec.ts"], "timeout": 5000, "watch": false, "reporter": null }, "warnings": [] }
374
- ],
375
- "packageScripts": [
376
- { "name": "test", "command": "vitest run", "reason": "primary test entrypoint", "packageJsonPath": "package.json" }
377
- ],
378
- "testCommands": [
379
- { "commandText": "vitest run tests/example.spec.ts", "commandSource": "package-script", "testFiles": ["tests/example.spec.ts"], "framework": "vitest", "scope": "file", "basis": "path-proximity" },
380
- { "commandText": null, "commandSource": "unresolved", "testFiles": [], "framework": null, "scope": "full-project", "basis": "fallback", "unresolvedReason": "no matching test command found" }
381
- ],
382
- "unresolved": [],
383
- "warnings": []
384
- },
385
- "unresolvedItems": [
386
- { "evidenceKind": "contracts", "role": "implementation", "basis": "graph-neighborhood", "reason": "no contract evidence found", "blocking": false }
387
- ],
388
- "groupTruncation": [
389
- { "groupId": "implementation-owners", "limit": null, "availableCount": 1, "usedCount": 1, "truncated": false, "droppedCount": 0 }
390
- ],
391
- "responsibilityMappings": {
392
- "requested": true,
393
- "operational": true,
394
- "mappings": [
395
- {
396
- "responsibilityId": "fixture.responsibility.001",
397
- "behavior": "Example behaves correctly.",
398
- "invariant": null,
399
- "criticality": "critical",
400
- "productionSymbols": [{ "id": "symbol:src/example.ts#Example", "itemKind": "symbol", "symbolId": "symbol:src/example.ts#Example", "relationship": "production-symbol", "basis": "candidate-ranking", "provenance": "candidate-ranking" }],
401
- "contracts": [],
402
- "validators": [],
403
- "constants": [],
404
- "errors": [],
405
- "sideEffectEvidence": [],
406
- "proposedOrExistingTestFiles": [{ "id": "tests/example.spec.ts", "itemKind": "test-file", "path": "tests/example.spec.ts", "relationship": "proposed-test", "basis": "path-proximity", "provenance": "test-directory-walk" }],
407
- "reusableHelpers": [],
408
- "oracleEvidence": [],
409
- "testCommands": [],
410
- "mappingStatus": "mapped",
411
- "unresolvedReasons": [],
412
- "provenance": [
413
- { "id": "fixture.provenance.mapping.001", "category": "code-graph", "sourcePath": "src/example.ts", "sourceId": null, "evidenceId": "symbol:src/example.ts#Example", "relationshipBasis": "candidate-ranking", "role": "implementation", "requestField": null, "derivedByModule": "responsibilityMapping.ts" }
414
- ],
415
- "warnings": []
416
- }
417
- ],
418
- "unknownResponsibilityIds": [],
419
- "duplicateResponsibilityIds": [],
420
- "limit": null,
421
- "availableCount": 1,
422
- "usedCount": 1,
423
- "truncated": false,
424
- "droppedCount": 0,
425
- "criticalDropped": false,
426
- "warnings": []
427
- },
428
- "roleAdequacy": {
429
- "role": "implementation",
430
- "status": "context sufficient with listed assumptions",
431
- "requiredConditions": ["single high-confidence focus node"],
432
- "satisfiedConditions": ["single high-confidence focus node"],
433
- "missingConditions": [],
434
- "blockingConditions": [],
435
- "warnings": [],
436
- "supportingEvidence": ["symbol:src/example.ts#Example"],
437
- "affectedResponsibilityIds": ["fixture.responsibility.001"],
438
- "truncationImpact": false,
439
- "freshnessImpact": false
440
- },
441
- "freshness": {
442
- "state": "fresh",
443
- "role": "implementation",
444
- "evidenceUsed": ["code-graph"],
445
- "evidenceUnavailable": ["before-index"],
446
- "comparedIdentities": [
447
- { "label": "index-manifest-hash", "value": "fixture-hash-001" },
448
- { "label": "before-index-manifest-hash", "value": null }
449
- ],
450
- "reason": "Active index manifest hash matches the most recent recorded identity.",
451
- "relevantChangedPaths": ["src/example.ts"],
452
- "warnings": []
453
- },
454
- "budget": {
455
- "limits": [
456
- { "name": "candidates", "declaredValue": 50, "usedValue": 1, "availableCount": 49, "droppedCount": 0, "truncated": false, "requiredEvidenceAffected": false, "adequacyImpact": null }
457
- ],
458
- "characters": { "measured": 1200, "limit": 8000, "truncated": false },
459
- "warnings": []
460
- },
461
- "truncation": {
462
- "truncated": false,
463
- "records": [
464
- {
465
- "id": "fixture.truncation.001",
466
- "affectedGroup": "implementation-owners",
467
- "limit": 10,
468
- "used": 1,
469
- "available": 1,
470
- "droppedCount": 0,
471
- "droppedEvidenceIds": [],
472
- "requiredEvidenceLost": false,
473
- "adequacyImpact": null,
474
- "reason": "within declared limit"
475
- }
476
- ],
477
- "warnings": []
478
- },
479
- "fullFileFallback": {
480
- "enabled": true,
481
- "limit": null,
482
- "used": 0,
483
- "fallbacks": [
484
- {
485
- "id": "fixture.fallback.001",
486
- "filePath": "src/other.ts",
487
- "reason": "bounded retrieval insufficient",
488
- "requestedEvidenceKind": null,
489
- "boundedRetrievalAttempted": true,
490
- "sourceRangesAttempted": 2,
491
- "includedLineCount": 40,
492
- "includedCharacterCount": 900,
493
- "role": "implementation",
494
- "responsibilityIdsAffected": [],
495
- "allowed": false,
496
- "provenance": "full-file-fallback"
497
- }
498
- ],
499
- "warnings": []
500
- },
501
- "provenance": [
502
- { "id": "fixture.provenance.001", "category": "code-graph", "sourcePath": "src/example.ts", "sourceId": null, "evidenceId": "symbol:src/example.ts#Example", "relationshipBasis": "candidate-ranking", "role": "implementation", "requestField": null, "derivedByModule": "candidateRanking.ts" }
503
- ]
504
- }