@opensip-cli/checks-typescript 0.1.13 → 0.1.15

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 (100) hide show
  1. package/README.md +2 -2
  2. package/dist/__tests__/all-checks-execute.test.js +2 -1
  3. package/dist/__tests__/all-checks-execute.test.js.map +1 -1
  4. package/dist/__tests__/behavior-fixtures-6.test.js +12 -3
  5. package/dist/__tests__/behavior-fixtures-6.test.js.map +1 -1
  6. package/dist/__tests__/behavior-fixtures.test.js +4 -1
  7. package/dist/__tests__/behavior-fixtures.test.js.map +1 -1
  8. package/dist/__tests__/branch-fixtures-3.test.js +3 -1
  9. package/dist/__tests__/branch-fixtures-3.test.js.map +1 -1
  10. package/dist/__tests__/branch-fixtures.test.js +8 -2
  11. package/dist/__tests__/branch-fixtures.test.js.map +1 -1
  12. package/dist/__tests__/mcp-results-no-rerun.test.d.ts +2 -0
  13. package/dist/__tests__/mcp-results-no-rerun.test.d.ts.map +1 -0
  14. package/dist/__tests__/mcp-results-no-rerun.test.js +55 -0
  15. package/dist/__tests__/mcp-results-no-rerun.test.js.map +1 -0
  16. package/dist/__tests__/null-safety-typed.test.js +15 -5
  17. package/dist/__tests__/null-safety-typed.test.js.map +1 -1
  18. package/dist/__tests__/phantom-dependency-detection.test.js +15 -3
  19. package/dist/__tests__/phantom-dependency-detection.test.js.map +1 -1
  20. package/dist/checks/architecture/contracts-schema-consistency.d.ts.map +1 -1
  21. package/dist/checks/architecture/contracts-schema-consistency.js +4 -1
  22. package/dist/checks/architecture/contracts-schema-consistency.js.map +1 -1
  23. package/dist/checks/architecture/index.d.ts +2 -0
  24. package/dist/checks/architecture/index.d.ts.map +1 -1
  25. package/dist/checks/architecture/index.js +2 -0
  26. package/dist/checks/architecture/index.js.map +1 -1
  27. package/dist/checks/architecture/mcp-results-no-rerun.d.ts +28 -0
  28. package/dist/checks/architecture/mcp-results-no-rerun.d.ts.map +1 -0
  29. package/dist/checks/architecture/mcp-results-no-rerun.js +103 -0
  30. package/dist/checks/architecture/mcp-results-no-rerun.js.map +1 -0
  31. package/dist/checks/architecture/package-json-exports-field.d.ts.map +1 -1
  32. package/dist/checks/architecture/package-json-exports-field.js +4 -1
  33. package/dist/checks/architecture/package-json-exports-field.js.map +1 -1
  34. package/dist/checks/architecture/phantom-dependency-detection.d.ts.map +1 -1
  35. package/dist/checks/architecture/phantom-dependency-detection.js +11 -2
  36. package/dist/checks/architecture/phantom-dependency-detection.js.map +1 -1
  37. package/dist/checks/architecture/single-opts-assembly-seam.d.ts +15 -0
  38. package/dist/checks/architecture/single-opts-assembly-seam.d.ts.map +1 -0
  39. package/dist/checks/architecture/single-opts-assembly-seam.js +198 -0
  40. package/dist/checks/architecture/single-opts-assembly-seam.js.map +1 -0
  41. package/dist/checks/architecture/tsconfig-extends-validation.d.ts.map +1 -1
  42. package/dist/checks/architecture/tsconfig-extends-validation.js +4 -1
  43. package/dist/checks/architecture/tsconfig-extends-validation.js.map +1 -1
  44. package/dist/checks/quality/api/fastify-route-validation.d.ts.map +1 -1
  45. package/dist/checks/quality/api/fastify-route-validation.js +6 -1
  46. package/dist/checks/quality/api/fastify-route-validation.js.map +1 -1
  47. package/dist/checks/quality/code-structure/duplicate-utility-functions.d.ts.map +1 -1
  48. package/dist/checks/quality/code-structure/duplicate-utility-functions.js +4 -1
  49. package/dist/checks/quality/code-structure/duplicate-utility-functions.js.map +1 -1
  50. package/dist/checks/quality/code-structure/no-any-types.d.ts.map +1 -1
  51. package/dist/checks/quality/code-structure/no-any-types.js +4 -1
  52. package/dist/checks/quality/code-structure/no-any-types.js.map +1 -1
  53. package/dist/checks/quality/data-integrity/database-schema-validation.d.ts.map +1 -1
  54. package/dist/checks/quality/data-integrity/database-schema-validation.js +7 -1
  55. package/dist/checks/quality/data-integrity/database-schema-validation.js.map +1 -1
  56. package/dist/checks/quality/data-integrity/null-safety.d.ts.map +1 -1
  57. package/dist/checks/quality/data-integrity/null-safety.js +4 -1
  58. package/dist/checks/quality/data-integrity/null-safety.js.map +1 -1
  59. package/dist/checks/quality/incomplete-regex-escaping.d.ts.map +1 -1
  60. package/dist/checks/quality/incomplete-regex-escaping.js +4 -1
  61. package/dist/checks/quality/incomplete-regex-escaping.js.map +1 -1
  62. package/dist/checks/quality/observability/logger-event-name-format.d.ts.map +1 -1
  63. package/dist/checks/quality/observability/logger-event-name-format.js +4 -1
  64. package/dist/checks/quality/observability/logger-event-name-format.js.map +1 -1
  65. package/dist/checks/quality/observability/no-hardcoded-correlation-id.d.ts.map +1 -1
  66. package/dist/checks/quality/observability/no-hardcoded-correlation-id.js +4 -1
  67. package/dist/checks/quality/observability/no-hardcoded-correlation-id.js.map +1 -1
  68. package/dist/checks/quality/patterns/result-pattern-consistency.d.ts.map +1 -1
  69. package/dist/checks/quality/patterns/result-pattern-consistency.js +6 -1
  70. package/dist/checks/quality/patterns/result-pattern-consistency.js.map +1 -1
  71. package/dist/checks/quality/patterns/silent-early-returns.d.ts.map +1 -1
  72. package/dist/checks/quality/patterns/silent-early-returns.js.map +1 -1
  73. package/dist/checks/quality/patterns/throws-documentation.d.ts.map +1 -1
  74. package/dist/checks/quality/patterns/throws-documentation.js +4 -1
  75. package/dist/checks/quality/patterns/throws-documentation.js.map +1 -1
  76. package/dist/checks/quality/patterns/toctou-race-condition.d.ts.map +1 -1
  77. package/dist/checks/quality/patterns/toctou-race-condition.js +5 -1
  78. package/dist/checks/quality/patterns/toctou-race-condition.js.map +1 -1
  79. package/dist/checks/quality/stubbed-implementation-detection.d.ts.map +1 -1
  80. package/dist/checks/quality/stubbed-implementation-detection.js +4 -1
  81. package/dist/checks/quality/stubbed-implementation-detection.js.map +1 -1
  82. package/dist/checks/resilience/callback-invocation-safe.d.ts.map +1 -1
  83. package/dist/checks/resilience/callback-invocation-safe.js +4 -1
  84. package/dist/checks/resilience/callback-invocation-safe.js.map +1 -1
  85. package/dist/checks/resilience/context-leakage.d.ts.map +1 -1
  86. package/dist/checks/resilience/context-leakage.js +4 -1
  87. package/dist/checks/resilience/context-leakage.js.map +1 -1
  88. package/dist/checks/resilience/context-mutation.d.ts.map +1 -1
  89. package/dist/checks/resilience/context-mutation.js +4 -1
  90. package/dist/checks/resilience/context-mutation.js.map +1 -1
  91. package/dist/checks/resilience/detached-promises-sync-constants.d.ts.map +1 -1
  92. package/dist/checks/resilience/detached-promises-sync-constants.js +1 -0
  93. package/dist/checks/resilience/detached-promises-sync-constants.js.map +1 -1
  94. package/dist/checks/resilience/detached-promises.d.ts.map +1 -1
  95. package/dist/checks/resilience/detached-promises.js +4 -1
  96. package/dist/checks/resilience/detached-promises.js.map +1 -1
  97. package/dist/display/architecture.d.ts.map +1 -1
  98. package/dist/display/architecture.js +2 -0
  99. package/dist/display/architecture.js.map +1 -1
  100. package/package.json +5 -5
@@ -11,7 +11,10 @@ import { defineCheck } from '@opensip-cli/fitness';
11
11
  export const contractsSchemaConsistency = defineCheck({
12
12
  id: '3f2fb75f-27f5-4572-aa18-1947f98ac82f',
13
13
  slug: 'contracts-schema-consistency',
14
- scope: { languages: ['typescript'], concerns: ['backend', 'frontend', 'cli'] },
14
+ scope: {
15
+ languages: ['typescript'],
16
+ concerns: ['backend', 'frontend', 'cli'],
17
+ },
15
18
  contentFilter: 'strip-strings',
16
19
  confidence: 'medium',
17
20
  description: 'Validates that contracts use Zod schemas consistently: types derived from schemas via z.infer',
@@ -1 +1 @@
1
- {"version":3,"file":"contracts-schema-consistency.js","sourceRoot":"","sources":["../../../src/checks/architecture/contracts-schema-consistency.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAA0C,MAAM,sBAAsB,CAAC;AAE3F;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,WAAW,CAAC;IACpD,EAAE,EAAE,sCAAsC;IAC1C,IAAI,EAAE,8BAA8B;IACpC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE;IAC9E,aAAa,EAAE,eAAe;IAE9B,UAAU,EAAE,QAAQ;IACpB,WAAW,EACT,+FAA+F;IACjG,eAAe,EAAE;;;;;;;yFAOsE;IACvF,IAAI,EAAE,CAAC,cAAc,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,CAAC;IACzD,SAAS,EAAE,CAAC,IAAI,CAAC;IAEjB,gKAAgK;IAChK,KAAK,CAAC,UAAU,CAAC,KAAmB;QAClC,MAAM,UAAU,GAAqB,EAAE,CAAC;QAExC,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3C,uCAAuC;YACvC,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAElC,8DAA8D;YAC9D,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;YACtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,WAAW,GAAG,wCAAwC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxE,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrB,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBACzC,kDAAkD;gBAClD,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBAEzB,oEAAoE;gBACpE,MAAM,SAAS,GAAG,0CAA0C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxE,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnB,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC9B,MAAM,cAAc,GAAG,GAAG,QAAQ,QAAQ,CAAC;oBAC3C,IAAI,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;wBACjE,UAAU,CAAC,IAAI,CAAC;4BACd,QAAQ;4BACR,IAAI,EAAE,CAAC,GAAG,CAAC;4BACX,OAAO,EAAE,SAAS,QAAQ,qCAAqC,cAAc,8BAA8B;4BAC3G,QAAQ,EAAE,OAAO;4BACjB,UAAU,EAAE,0BAA0B,QAAQ,qBAAqB,cAAc,GAAG;4BACpF,IAAI,EAAE,sBAAsB;yBAC7B,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAED,wEAAwE;gBACxE,yEAAyE;gBACzE,0DAA0D;YAC5D,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"contracts-schema-consistency.js","sourceRoot":"","sources":["../../../src/checks/architecture/contracts-schema-consistency.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAA0C,MAAM,sBAAsB,CAAC;AAE3F;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,WAAW,CAAC;IACpD,EAAE,EAAE,sCAAsC;IAC1C,IAAI,EAAE,8BAA8B;IACpC,KAAK,EAAE;QACL,SAAS,EAAE,CAAC,YAAY,CAAC;QACzB,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC;KACzC;IACD,aAAa,EAAE,eAAe;IAE9B,UAAU,EAAE,QAAQ;IACpB,WAAW,EACT,+FAA+F;IACjG,eAAe,EAAE;;;;;;;yFAOsE;IACvF,IAAI,EAAE,CAAC,cAAc,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,CAAC;IACzD,SAAS,EAAE,CAAC,IAAI,CAAC;IAEjB,gKAAgK;IAChK,KAAK,CAAC,UAAU,CAAC,KAAmB;QAClC,MAAM,UAAU,GAAqB,EAAE,CAAC;QAExC,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3C,uCAAuC;YACvC,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAElC,8DAA8D;YAC9D,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;YACtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,WAAW,GAAG,wCAAwC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxE,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrB,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBACzC,kDAAkD;gBAClD,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBAEzB,oEAAoE;gBACpE,MAAM,SAAS,GAAG,0CAA0C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxE,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnB,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC9B,MAAM,cAAc,GAAG,GAAG,QAAQ,QAAQ,CAAC;oBAC3C,IAAI,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;wBACjE,UAAU,CAAC,IAAI,CAAC;4BACd,QAAQ;4BACR,IAAI,EAAE,CAAC,GAAG,CAAC;4BACX,OAAO,EAAE,SAAS,QAAQ,qCAAqC,cAAc,8BAA8B;4BAC3G,QAAQ,EAAE,OAAO;4BACjB,UAAU,EAAE,0BAA0B,QAAQ,qBAAqB,cAAc,GAAG;4BACpF,IAAI,EAAE,sBAAsB;yBAC7B,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAED,wEAAwE;gBACxE,yEAAyE;gBACzE,0DAA0D;YAC5D,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAC,CAAC"}
@@ -33,12 +33,14 @@ export * from './contracts-schema-consistency.js';
33
33
  export * from './drizzle-orm-migration-guardrails.js';
34
34
  export * from './host-tool-runtime-import-boundary.js';
35
35
  export * from './live-view-through-cli-live.js';
36
+ export * from './mcp-results-no-rerun.js';
36
37
  export * from './missing-type-exports.js';
37
38
  export * from './module-coupling-fan-out.js';
38
39
  export * from './no-bootstrap-tool-import.js';
39
40
  export * from './no-run-done-result.js';
40
41
  export * from './package-json-exports-field.js';
41
42
  export * from './phantom-dependency-detection.js';
43
+ export * from './single-opts-assembly-seam.js';
42
44
  export * from './subprocess-correlation-required.js';
43
45
  export * from './tsconfig-extends-validation.js';
44
46
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/checks/architecture/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/checks/architecture/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC"}
@@ -33,12 +33,14 @@ export * from './contracts-schema-consistency.js';
33
33
  export * from './drizzle-orm-migration-guardrails.js';
34
34
  export * from './host-tool-runtime-import-boundary.js';
35
35
  export * from './live-view-through-cli-live.js';
36
+ export * from './mcp-results-no-rerun.js';
36
37
  export * from './missing-type-exports.js';
37
38
  export * from './module-coupling-fan-out.js';
38
39
  export * from './no-bootstrap-tool-import.js';
39
40
  export * from './no-run-done-result.js';
40
41
  export * from './package-json-exports-field.js';
41
42
  export * from './phantom-dependency-detection.js';
43
+ export * from './single-opts-assembly-seam.js';
42
44
  export * from './subprocess-correlation-required.js';
43
45
  export * from './tsconfig-extends-validation.js';
44
46
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/checks/architecture/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/checks/architecture/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @fileoverview MCP result/graph tool handlers must REPLAY, never RE-RUN (ADR-0084).
3
+ *
4
+ * The MCP server (`@opensip-cli/mcp`) exposes the OpenSIP call graph + stored run
5
+ * results to coding agents. Its tool handlers are read/replay-only: a result tool
6
+ * (`get_latest_findings`, `show_run`, …) replays a persisted session through the
7
+ * injected `ResultsReadPort`, and a graph tool reads the persisted catalog through
8
+ * the injected `GraphReadPort`. A handler that imports a run-command ENTRY POINT
9
+ * (`runFit` / `runGraph` / `runSim` / `runYagni`, or a tool's `execute*` command
10
+ * handler) re-executes the underlying tool inline — the exact coupling ADR-0084
11
+ * forbids: it bypasses the replay contract, can spawn an unbounded build per
12
+ * agent query, and re-privileges a tool runtime inside MCP.
13
+ *
14
+ * The single sanctioned re-run is `refresh_graph`, and it does NOT import a run
15
+ * command: it goes through `GraphReadPort.refresh()`, whose rebuild thunk is wired
16
+ * in the MCP COMPOSITION ROOT (`packages/mcp/src/command.ts`) — the one place
17
+ * allowed to thread `runGraph`. This check is therefore path-gated to the MCP TOOL
18
+ * handlers (`packages/mcp/src/tools/`) and the results read port; the composition
19
+ * root is outside the gate by design.
20
+ *
21
+ * AST-based so a run-command symbol appearing as TEXT (a comment, a description
22
+ * string) is ignored — only a real `import` of the entry point fires.
23
+ */
24
+ import { type CheckViolation } from '@opensip-cli/fitness';
25
+ /** Pure analysis over a parsed source file. Exported for unit tests. */
26
+ export declare function analyzeMcpResultsNoRerun(content: string, filePath: string): CheckViolation[];
27
+ export declare const mcpResultsNoRerun: import("@opensip-cli/fitness").Check;
28
+ //# sourceMappingURL=mcp-results-no-rerun.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-results-no-rerun.d.ts","sourceRoot":"","sources":["../../../src/checks/architecture/mcp-results-no-rerun.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAA2B,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AA+BpF,wEAAwE;AACxE,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,EAAE,CA+B5F;AAED,eAAO,MAAM,iBAAiB,sCAe5B,CAAC"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * @fileoverview MCP result/graph tool handlers must REPLAY, never RE-RUN (ADR-0084).
3
+ *
4
+ * The MCP server (`@opensip-cli/mcp`) exposes the OpenSIP call graph + stored run
5
+ * results to coding agents. Its tool handlers are read/replay-only: a result tool
6
+ * (`get_latest_findings`, `show_run`, …) replays a persisted session through the
7
+ * injected `ResultsReadPort`, and a graph tool reads the persisted catalog through
8
+ * the injected `GraphReadPort`. A handler that imports a run-command ENTRY POINT
9
+ * (`runFit` / `runGraph` / `runSim` / `runYagni`, or a tool's `execute*` command
10
+ * handler) re-executes the underlying tool inline — the exact coupling ADR-0084
11
+ * forbids: it bypasses the replay contract, can spawn an unbounded build per
12
+ * agent query, and re-privileges a tool runtime inside MCP.
13
+ *
14
+ * The single sanctioned re-run is `refresh_graph`, and it does NOT import a run
15
+ * command: it goes through `GraphReadPort.refresh()`, whose rebuild thunk is wired
16
+ * in the MCP COMPOSITION ROOT (`packages/mcp/src/command.ts`) — the one place
17
+ * allowed to thread `runGraph`. This check is therefore path-gated to the MCP TOOL
18
+ * handlers (`packages/mcp/src/tools/`) and the results read port; the composition
19
+ * root is outside the gate by design.
20
+ *
21
+ * AST-based so a run-command symbol appearing as TEXT (a comment, a description
22
+ * string) is ignored — only a real `import` of the entry point fires.
23
+ */
24
+ // @fitness-ignore-file shipped-checks-must-be-generic -- AST-dependent dogfood check (ADR-0084): needs @opensip-cli/lang-typescript (getSharedSourceFile), which a project-local .mjs cannot import, and is path-gated to packages/mcp/. Same rationale as no-bootstrap-tool-import.
25
+ import { defineCheck, isTestFile } from '@opensip-cli/fitness';
26
+ import { getSharedSourceFile } from '@opensip-cli/lang-typescript';
27
+ import * as ts from 'typescript';
28
+ /** MCP source subtrees this check guards: the tool handlers + the results read port. */
29
+ const GUARDED_PATHS = [
30
+ 'packages/mcp/src/tools/',
31
+ 'packages/mcp/src/session-results-read-port',
32
+ ];
33
+ /**
34
+ * Run-command ENTRY POINTS — importing any of these into an MCP tool handler is a
35
+ * re-run (the replay contract violation). `run*` are the programmatic build
36
+ * entries; `execute*` are the per-tool CLI command handlers.
37
+ */
38
+ const RUN_COMMAND_SYMBOLS = new Set([
39
+ 'runFit',
40
+ 'runGraph',
41
+ 'runSim',
42
+ 'runYagni',
43
+ 'executeFit',
44
+ 'executeGraph',
45
+ 'executeSimulation',
46
+ 'executeSim',
47
+ 'executeYagni',
48
+ ]);
49
+ function normalized(path) {
50
+ return path.replaceAll('\\', '/');
51
+ }
52
+ /** Pure analysis over a parsed source file. Exported for unit tests. */
53
+ export function analyzeMcpResultsNoRerun(content, filePath) {
54
+ const violations = [];
55
+ const sourceFile = getSharedSourceFile(filePath, content);
56
+ if (!sourceFile)
57
+ return violations;
58
+ for (const stmt of sourceFile.statements) {
59
+ if (!ts.isImportDeclaration(stmt) || !ts.isStringLiteral(stmt.moduleSpecifier))
60
+ continue;
61
+ const named = stmt.importClause?.namedBindings;
62
+ if (named === undefined || !ts.isNamedImports(named))
63
+ continue;
64
+ for (const element of named.elements) {
65
+ // The ORIGINAL imported name (`{ runGraph as build }` → `runGraph`).
66
+ const imported = (element.propertyName ?? element.name).text;
67
+ if (!RUN_COMMAND_SYMBOLS.has(imported))
68
+ continue;
69
+ const line = sourceFile.getLineAndCharacterOfPosition(element.getStart(sourceFile)).line + 1;
70
+ violations.push({
71
+ filePath,
72
+ line,
73
+ message: `MCP tool handler imports the run-command entry point '${imported}' from ` +
74
+ `'${stmt.moduleSpecifier.text}'. MCP tools are replay/read-only (ADR-0084): a result ` +
75
+ `tool replays a persisted session through ResultsReadPort and a graph tool reads the ` +
76
+ `catalog through GraphReadPort — never re-running the underlying tool inline.`,
77
+ severity: 'error',
78
+ suggestion: `Read through the injected port instead (ResultsReadPort.latestFindings / showRun, or ` +
79
+ `GraphReadPort). The one sanctioned re-run is refresh_graph via GraphReadPort.refresh(), ` +
80
+ `whose rebuild thunk is wired in the MCP composition root (command.ts) — not in a tool handler.`,
81
+ });
82
+ }
83
+ }
84
+ return violations;
85
+ }
86
+ export const mcpResultsNoRerun = defineCheck({
87
+ id: 'b6f0c3d2-7a14-4e8b-9c25-3f1d6a0e7b84',
88
+ slug: 'mcp-results-no-rerun',
89
+ contentFilter: 'raw',
90
+ description: 'MCP tool handlers must replay/read through their injected port — never import a run-command entry point (runFit/runGraph/runSim/runYagni) to re-run the underlying tool (ADR-0084)',
91
+ scope: { languages: ['typescript'], concerns: ['backend'] },
92
+ tags: ['architecture'],
93
+ fileTypes: ['ts', 'tsx'],
94
+ analyze: (content, filePath) => {
95
+ const path = normalized(filePath);
96
+ if (isTestFile(path))
97
+ return [];
98
+ if (!GUARDED_PATHS.some((guarded) => path.includes(guarded)))
99
+ return [];
100
+ return analyzeMcpResultsNoRerun(content, path);
101
+ },
102
+ });
103
+ //# sourceMappingURL=mcp-results-no-rerun.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-results-no-rerun.js","sourceRoot":"","sources":["../../../src/checks/architecture/mcp-results-no-rerun.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"package-json-exports-field.d.ts","sourceRoot":"","sources":["../../../src/checks/architecture/package-json-exports-field.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,eAAO,MAAM,uBAAuB,sCAgDlC,CAAC"}
1
+ {"version":3,"file":"package-json-exports-field.d.ts","sourceRoot":"","sources":["../../../src/checks/architecture/package-json-exports-field.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,eAAO,MAAM,uBAAuB,sCAmDlC,CAAC"}
@@ -15,7 +15,10 @@ export const packageJsonExportsField = defineCheck({
15
15
  id: 'b4203be3-3308-4fb1-8b20-44e23b8e3eff',
16
16
  slug: 'package-json-exports-field',
17
17
  contentFilter: 'strip-strings',
18
- scope: { languages: ['typescript'], concerns: ['backend', 'frontend', 'cli'] },
18
+ scope: {
19
+ languages: ['typescript'],
20
+ concerns: ['backend', 'frontend', 'cli'],
21
+ },
19
22
  confidence: 'high',
20
23
  description: 'Ensures packages have an "exports" field in package.json for explicit module resolution',
21
24
  tags: ['architecture', 'esm', 'monorepo'],
@@ -1 +1 @@
1
- {"version":3,"file":"package-json-exports-field.js","sourceRoot":"","sources":["../../../src/checks/architecture/package-json-exports-field.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAA0C,MAAM,sBAAsB,CAAC;AAE3F,2EAA2E;AAC3E,+EAA+E;AAC/E,MAAM,iBAAiB,GAAG,iCAAiC,CAAC;AAC5D,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAE9C,MAAM,CAAC,MAAM,uBAAuB,GAAG,WAAW,CAAC;IACjD,EAAE,EAAE,sCAAsC;IAC1C,IAAI,EAAE,4BAA4B;IAClC,aAAa,EAAE,eAAe;IAC9B,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE;IAC9E,UAAU,EAAE,MAAM;IAClB,WAAW,EACT,yFAAyF;IAC3F,IAAI,EAAE,CAAC,cAAc,EAAE,KAAK,EAAE,UAAU,CAAC;IAEzC,KAAK,CAAC,UAAU,CAAC,KAAmB;QAClC,MAAM,UAAU,GAAqB,EAAE,CAAC;QACxC,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CACzC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAC9F,CAAC;QAEF,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3C,uCAAuC;YACvC,IAAI,CAAC,OAAO;gBAAE,SAAS;YAEvB,IAAI,MAA+B,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;gBACxD,yEAAyE;YAC3E,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YAED,uDAAuD;YACvD,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAAE,SAAS;YAE1E,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,GAAI,MAAM,CAAC,IAAe,IAAI,QAAQ,CAAC;gBACjD,UAAU,CAAC,IAAI,CAAC;oBACd,QAAQ;oBACR,IAAI,EAAE,CAAC;oBACP,OAAO,EAAE,YAAY,IAAI,mGAAmG;oBAC5H,QAAQ,EAAE,SAAS;oBACnB,UAAU,EACR,iHAAiH;oBACnH,IAAI,EAAE,uBAAuB;iBAC9B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"package-json-exports-field.js","sourceRoot":"","sources":["../../../src/checks/architecture/package-json-exports-field.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAA0C,MAAM,sBAAsB,CAAC;AAE3F,2EAA2E;AAC3E,+EAA+E;AAC/E,MAAM,iBAAiB,GAAG,iCAAiC,CAAC;AAC5D,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAE9C,MAAM,CAAC,MAAM,uBAAuB,GAAG,WAAW,CAAC;IACjD,EAAE,EAAE,sCAAsC;IAC1C,IAAI,EAAE,4BAA4B;IAClC,aAAa,EAAE,eAAe;IAC9B,KAAK,EAAE;QACL,SAAS,EAAE,CAAC,YAAY,CAAC;QACzB,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC;KACzC;IACD,UAAU,EAAE,MAAM;IAClB,WAAW,EACT,yFAAyF;IAC3F,IAAI,EAAE,CAAC,cAAc,EAAE,KAAK,EAAE,UAAU,CAAC;IAEzC,KAAK,CAAC,UAAU,CAAC,KAAmB;QAClC,MAAM,UAAU,GAAqB,EAAE,CAAC;QACxC,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CACzC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAC9F,CAAC;QAEF,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3C,uCAAuC;YACvC,IAAI,CAAC,OAAO;gBAAE,SAAS;YAEvB,IAAI,MAA+B,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;gBACxD,yEAAyE;YAC3E,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YAED,uDAAuD;YACvD,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAAE,SAAS;YAE1E,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,GAAI,MAAM,CAAC,IAAe,IAAI,QAAQ,CAAC;gBACjD,UAAU,CAAC,IAAI,CAAC;oBACd,QAAQ;oBACR,IAAI,EAAE,CAAC;oBACP,OAAO,EAAE,YAAY,IAAI,mGAAmG;oBAC5H,QAAQ,EAAE,SAAS;oBACnB,UAAU,EACR,iHAAiH;oBACnH,IAAI,EAAE,uBAAuB;iBAC9B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"phantom-dependency-detection.d.ts","sourceRoot":"","sources":["../../../src/checks/architecture/phantom-dependency-detection.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AA4UH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,0BAA0B,sCA2CrC,CAAC"}
1
+ {"version":3,"file":"phantom-dependency-detection.d.ts","sourceRoot":"","sources":["../../../src/checks/architecture/phantom-dependency-detection.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAkVH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,0BAA0B,sCA8CrC,CAAC"}
@@ -262,7 +262,13 @@ function collectFileViolations(filePath, content, cache) {
262
262
  ...pkgJson.optionalDependencies,
263
263
  };
264
264
  const allowDevDeps = allowsDevDependencies(filePath);
265
- const ctx = { pkgJson, allDeps, allowDevDeps, filePath, pkgJsonPath };
265
+ const ctx = {
266
+ pkgJson,
267
+ allDeps,
268
+ allowDevDeps,
269
+ filePath,
270
+ pkgJsonPath,
271
+ };
266
272
  const out = [];
267
273
  for (const imp of imports) {
268
274
  const violation = violationForImport(imp, ctx);
@@ -285,7 +291,10 @@ function collectFileViolations(filePath, content, cache) {
285
291
  export const phantomDependencyDetection = defineCheck({
286
292
  id: '67284374-69b8-4711-9c66-33d2ad44ef79',
287
293
  slug: 'phantom-dependency-detection',
288
- scope: { languages: ['typescript'], concerns: ['backend', 'frontend', 'cli'] },
294
+ scope: {
295
+ languages: ['typescript'],
296
+ concerns: ['backend', 'frontend', 'cli'],
297
+ },
289
298
  // AST-based: needs the real source (string stripping would blank module specifiers).
290
299
  contentFilter: 'raw',
291
300
  confidence: 'medium',
@@ -1 +1 @@
1
- {"version":3,"file":"phantom-dependency-detection.js","sourceRoot":"","sources":["../../../src/checks/architecture/phantom-dependency-detection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"phantom-dependency-detection.js","sourceRoot":"","sources":["../../../src/checks/architecture/phantom-dependency-detection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @fileoverview CommandSpec options must flow through one opts assembly seam (ADR-0093).
3
+ *
4
+ * The CLI mounts tool commands through CommandSpec, and the suite orchestrator
5
+ * re-dispatches the same specs. Both paths must use the extracted
6
+ * `assembleOptsFromSpec` builder so defaults, repeatable-array defaults, parser
7
+ * coercion, choices, and required validation cannot diverge. This check flags a
8
+ * second hand-rolled `spec.options` → `opts` projection outside the sanctioned
9
+ * shared builder and its Commander wiring sibling.
10
+ */
11
+ import { type CheckViolation } from '@opensip-cli/fitness';
12
+ /** Pure analysis over a parsed source file. Exported for unit tests. */
13
+ export declare function analyzeSingleOptsAssemblySeam(content: string, filePath: string): CheckViolation[];
14
+ export declare const singleOptsAssemblySeam: import("@opensip-cli/fitness").Check;
15
+ //# sourceMappingURL=single-opts-assembly-seam.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"single-opts-assembly-seam.d.ts","sourceRoot":"","sources":["../../../src/checks/architecture/single-opts-assembly-seam.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAA2B,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAgJpF,wEAAwE;AACxE,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,EAAE,CAyCjG;AAED,eAAO,MAAM,sBAAsB,sCAgBjC,CAAC"}
@@ -0,0 +1,198 @@
1
+ /**
2
+ * @fileoverview CommandSpec options must flow through one opts assembly seam (ADR-0093).
3
+ *
4
+ * The CLI mounts tool commands through CommandSpec, and the suite orchestrator
5
+ * re-dispatches the same specs. Both paths must use the extracted
6
+ * `assembleOptsFromSpec` builder so defaults, repeatable-array defaults, parser
7
+ * coercion, choices, and required validation cannot diverge. This check flags a
8
+ * second hand-rolled `spec.options` → `opts` projection outside the sanctioned
9
+ * shared builder and its Commander wiring sibling.
10
+ */
11
+ // @fitness-ignore-file shipped-checks-must-be-generic -- ADR-0093 dogfood check: path-gated to opensip-cli command internals and intentionally enforces a monorepo-local host seam.
12
+ import { defineCheck, isTestFile } from '@opensip-cli/fitness';
13
+ import { getSharedSourceFile } from '@opensip-cli/lang-typescript';
14
+ import * as ts from 'typescript';
15
+ const ALLOWED_FILES = [
16
+ 'packages/cli/src/commands/assemble-opts.ts',
17
+ 'packages/cli/src/commands/mount-command-spec-wiring.ts',
18
+ ];
19
+ const GUARDED_PATHS = ['packages/cli/src/commands/'];
20
+ const DEFAULT_PROPS = new Set(['default', 'arrayDefault', 'parse']);
21
+ function normalized(path) {
22
+ return path.replaceAll('\\', '/');
23
+ }
24
+ function isAllowedFile(path) {
25
+ return ALLOWED_FILES.some((allowed) => path.endsWith(allowed));
26
+ }
27
+ function unwrapExpression(expr) {
28
+ let current = expr;
29
+ while (ts.isParenthesizedExpression(current) ||
30
+ ts.isAsExpression(current) ||
31
+ ts.isTypeAssertionExpression(current) ||
32
+ ts.isNonNullExpression(current)) {
33
+ current = current.expression;
34
+ }
35
+ return current;
36
+ }
37
+ function containsOptionsSource(node) {
38
+ let found = false;
39
+ const visit = (child) => {
40
+ if (found)
41
+ return;
42
+ if ((ts.isPropertyAccessExpression(child) && child.name.text === 'options') ||
43
+ (ts.isElementAccessExpression(child) &&
44
+ ts.isStringLiteral(child.argumentExpression) &&
45
+ child.argumentExpression.text === 'options') ||
46
+ (ts.isIdentifier(child) && child.text === 'options')) {
47
+ found = true;
48
+ return;
49
+ }
50
+ ts.forEachChild(child, visit);
51
+ };
52
+ visit(node);
53
+ return found;
54
+ }
55
+ function isOptionsIteration(node) {
56
+ if (ts.isForOfStatement(node)) {
57
+ return containsOptionsSource(unwrapExpression(node.expression));
58
+ }
59
+ if (!ts.isCallExpression(node))
60
+ return false;
61
+ const callee = unwrapExpression(node.expression);
62
+ if (!ts.isPropertyAccessExpression(callee))
63
+ return false;
64
+ if (!['forEach', 'map', 'reduce'].includes(callee.name.text))
65
+ return false;
66
+ return containsOptionsSource(unwrapExpression(callee.expression));
67
+ }
68
+ function containsDefaultOrParserUse(node) {
69
+ let found = false;
70
+ const visit = (child) => {
71
+ if (found)
72
+ return;
73
+ if (ts.isPropertyAccessExpression(child) && DEFAULT_PROPS.has(child.name.text)) {
74
+ found = true;
75
+ return;
76
+ }
77
+ if (ts.isElementAccessExpression(child) &&
78
+ ts.isStringLiteral(child.argumentExpression) &&
79
+ DEFAULT_PROPS.has(child.argumentExpression.text)) {
80
+ found = true;
81
+ return;
82
+ }
83
+ ts.forEachChild(child, visit);
84
+ };
85
+ visit(node);
86
+ return found;
87
+ }
88
+ function containsOptsWrite(node) {
89
+ let found = false;
90
+ const visit = (child) => {
91
+ if (found)
92
+ return;
93
+ if (ts.isVariableDeclaration(child) &&
94
+ ts.isIdentifier(child.name) &&
95
+ child.name.text === 'opts' &&
96
+ child.initializer !== undefined) {
97
+ found = true;
98
+ return;
99
+ }
100
+ if (ts.isBinaryExpression(child) && child.operatorToken.kind === ts.SyntaxKind.EqualsToken) {
101
+ const target = unwrapExpression(child.left);
102
+ if (ts.isElementAccessExpression(target) || ts.isPropertyAccessExpression(target)) {
103
+ const base = unwrapExpression(target.expression);
104
+ if (ts.isIdentifier(base) && base.text === 'opts') {
105
+ found = true;
106
+ return;
107
+ }
108
+ }
109
+ }
110
+ ts.forEachChild(child, visit);
111
+ };
112
+ visit(node);
113
+ return found;
114
+ }
115
+ function functionName(node) {
116
+ if ((ts.isFunctionDeclaration(node) ||
117
+ ts.isFunctionExpression(node) ||
118
+ ts.isMethodDeclaration(node)) &&
119
+ node.name !== undefined) {
120
+ return node.name.getText();
121
+ }
122
+ const parent = node.parent;
123
+ if (ts.isVariableDeclaration(parent) && ts.isIdentifier(parent.name))
124
+ return parent.name.text;
125
+ return 'function';
126
+ }
127
+ function lineOf(sourceFile, node) {
128
+ return sourceFile.getLineAndCharacterOfPosition(node.getStart(sourceFile)).line + 1;
129
+ }
130
+ function functionBody(node) {
131
+ return (ts.isFunctionDeclaration(node) ||
132
+ ts.isFunctionExpression(node) ||
133
+ ts.isArrowFunction(node) ||
134
+ ts.isMethodDeclaration(node)) &&
135
+ node.body !== undefined
136
+ ? node.body
137
+ : undefined;
138
+ }
139
+ /** Pure analysis over a parsed source file. Exported for unit tests. */
140
+ export function analyzeSingleOptsAssemblySeam(content, filePath) {
141
+ const violations = [];
142
+ const sourceFile = getSharedSourceFile(filePath, content);
143
+ if (!sourceFile)
144
+ return violations;
145
+ const visit = (node) => {
146
+ const body = functionBody(node);
147
+ if (body !== undefined) {
148
+ let iteratesOptions = false;
149
+ const findIteration = (child) => {
150
+ if (iteratesOptions)
151
+ return;
152
+ if (isOptionsIteration(child)) {
153
+ iteratesOptions = true;
154
+ return;
155
+ }
156
+ ts.forEachChild(child, findIteration);
157
+ };
158
+ findIteration(body);
159
+ if (iteratesOptions && containsDefaultOrParserUse(body) && containsOptsWrite(body)) {
160
+ violations.push({
161
+ filePath,
162
+ line: lineOf(sourceFile, node),
163
+ message: `${functionName(node)} hand-rolls CommandSpec options into an opts object. ` +
164
+ `ADR-0093 requires the CLI mount path and suite re-dispatch path to share the ` +
165
+ `single assembleOptsFromSpec seam so defaults, array defaults, parser coercion, ` +
166
+ `choices, and required validation cannot diverge.`,
167
+ severity: 'error',
168
+ suggestion: `Move this projection through packages/cli/src/commands/assemble-opts.ts ` +
169
+ `(assembleOptsFromSpec). Commander construction belongs in ` +
170
+ `mount-command-spec-wiring.ts; all runtime opts assembly should call the shared seam.`,
171
+ });
172
+ }
173
+ }
174
+ ts.forEachChild(node, visit);
175
+ };
176
+ visit(sourceFile);
177
+ return violations;
178
+ }
179
+ export const singleOptsAssemblySeam = defineCheck({
180
+ id: 'f9273b4d-355e-45c6-a24c-4be6f0f179b1',
181
+ slug: 'single-opts-assembly-seam',
182
+ contentFilter: 'raw',
183
+ description: 'CommandSpec option defaults/parsers must be assembled through the single shared assembleOptsFromSpec seam',
184
+ scope: { languages: ['typescript'], concerns: ['backend'] },
185
+ tags: ['architecture'],
186
+ fileTypes: ['ts', 'tsx'],
187
+ analyze: (content, filePath) => {
188
+ const path = normalized(filePath);
189
+ if (isTestFile(path) || isAllowedFile(path))
190
+ return [];
191
+ if (!GUARDED_PATHS.some((guarded) => path.includes(guarded)))
192
+ return [];
193
+ if (!content.includes('options') || !content.includes('opts'))
194
+ return [];
195
+ return analyzeSingleOptsAssemblySeam(content, path);
196
+ },
197
+ });
198
+ //# sourceMappingURL=single-opts-assembly-seam.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"single-opts-assembly-seam.js","sourceRoot":"","sources":["../../../src/checks/architecture/single-opts-assembly-seam.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tsconfig-extends-validation.d.ts","sourceRoot":"","sources":["../../../src/checks/architecture/tsconfig-extends-validation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,eAAO,MAAM,yBAAyB,sCA2EpC,CAAC"}
1
+ {"version":3,"file":"tsconfig-extends-validation.d.ts","sourceRoot":"","sources":["../../../src/checks/architecture/tsconfig-extends-validation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,eAAO,MAAM,yBAAyB,sCA8EpC,CAAC"}
@@ -12,7 +12,10 @@ import { defineCheck } from '@opensip-cli/fitness';
12
12
  export const tsconfigExtendsValidation = defineCheck({
13
13
  id: '842e7d00-c8e8-4a57-873a-c03caec7e603',
14
14
  slug: 'tsconfig-extends-validation',
15
- scope: { languages: ['typescript'], concerns: ['backend', 'frontend', 'cli'] },
15
+ scope: {
16
+ languages: ['typescript'],
17
+ concerns: ['backend', 'frontend', 'cli'],
18
+ },
16
19
  confidence: 'high',
17
20
  description: 'Ensures all tsconfig.json files extend a shared base and the base file exists',
18
21
  tags: ['architecture', 'typescript', 'monorepo'],
@@ -1 +1 @@
1
- {"version":3,"file":"tsconfig-extends-validation.js","sourceRoot":"","sources":["../../../src/checks/architecture/tsconfig-extends-validation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAAE,WAAW,EAA0C,MAAM,sBAAsB,CAAC;AAE3F,MAAM,CAAC,MAAM,yBAAyB,GAAG,WAAW,CAAC;IACnD,EAAE,EAAE,sCAAsC;IAC1C,IAAI,EAAE,6BAA6B;IACnC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE;IAC9E,UAAU,EAAE,MAAM;IAClB,WAAW,EAAE,+EAA+E;IAC5F,IAAI,EAAE,CAAC,cAAc,EAAE,YAAY,EAAE,UAAU,CAAC;IAEhD,KAAK,CAAC,UAAU,CAAC,KAAmB;QAClC,MAAM,UAAU,GAAqB,EAAE,CAAC;QACxC,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAClE,CAAC;QAEF,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3C,uCAAuC;YACvC,IAAI,CAAC,OAAO;gBAAE,SAAS;YAEvB,IAAI,MAA+B,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;YAC1D,CAAC;YAAC,MAAM,CAAC;gBACP,UAAU,CAAC,IAAI,CAAC;oBACd,QAAQ;oBACR,IAAI,EAAE,CAAC;oBACP,OAAO,EAAE,+BAA+B;oBACxC,QAAQ,EAAE,OAAO;oBACjB,IAAI,EAAE,uBAAuB;iBAC9B,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,uCAAuC;YACvC,IACE,QAAQ,KAAK,eAAe;gBAC5B,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EACzE,CAAC;gBACD,SAAS;YACX,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC;YACpC,IAAI,CAAC,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;gBACtD,UAAU,CAAC,IAAI,CAAC;oBACd,QAAQ;oBACR,IAAI,EAAE,CAAC;oBACP,OAAO,EACL,0GAA0G;oBAC5G,QAAQ,EAAE,SAAS;oBACnB,UAAU,EACR,2FAA2F;oBAC7F,IAAI,EAAE,qBAAqB;iBAC5B,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,kCAAkC;YAClC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC9B,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;YAC/D,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,OAAO,CAAC;YAE5F,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC3D,UAAU,CAAC,IAAI,CAAC;oBACd,QAAQ;oBACR,IAAI,EAAE,CAAC;oBACP,OAAO,EAAE,0BAA0B,YAAY,oCAAoC,YAAY,EAAE;oBACjG,QAAQ,EAAE,OAAO;oBACjB,UAAU,EAAE,6DAA6D;oBACzE,IAAI,EAAE,uBAAuB;iBAC9B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"tsconfig-extends-validation.js","sourceRoot":"","sources":["../../../src/checks/architecture/tsconfig-extends-validation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fastify-route-validation.d.ts","sourceRoot":"","sources":["../../../../src/checks/quality/api/fastify-route-validation.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AAkTH;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,sCAwCjC,CAAC"}
1
+ {"version":3,"file":"fastify-route-validation.d.ts","sourceRoot":"","sources":["../../../../src/checks/quality/api/fastify-route-validation.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AAuTH;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,sCAwCjC,CAAC"}
@@ -231,7 +231,12 @@ function analyzeFile(content, filePath) {
231
231
  return [];
232
232
  const visit = (node) => {
233
233
  if (ts.isCallExpression(node)) {
234
- const violation = checkCallExpressionForViolation({ node, sourceFile, content, filePath });
234
+ const violation = checkCallExpressionForViolation({
235
+ node,
236
+ sourceFile,
237
+ content,
238
+ filePath,
239
+ });
235
240
  if (violation) {
236
241
  violations.push(violation);
237
242
  }